oakbun 0.1.1 → 0.2.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.
- package/dist/cli/bin.d.ts +0 -1
- package/dist/cli/bin.js +1 -2
- package/dist/db/index.d.ts +238 -26
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/migrations/diff.d.ts +1 -1
- package/dist/db/migrations/diff.d.ts.map +1 -1
- package/dist/db/migrations/generator.d.ts +1 -1
- package/dist/db/migrations/generator.d.ts.map +1 -1
- package/dist/db/sql.d.ts +70 -2
- package/dist/db/sql.d.ts.map +1 -1
- package/dist/{db-XTXH6OKV.js → db-YSUNURBB.js} +706 -45
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +900 -146
- package/dist/index.js.map +1 -1
- package/dist/schema/table.d.ts +108 -4
- package/dist/schema/table.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cli/bin.d.ts
CHANGED
package/dist/cli/bin.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
-
#!/usr/bin/env bun
|
|
3
2
|
import "../chunk-FJSYS3BT.js";
|
|
4
3
|
|
|
5
4
|
// src/cli/config/loader.ts
|
|
@@ -431,7 +430,7 @@ async function tinker(_args, config) {
|
|
|
431
430
|
const serviceDefs = await discoverServices(config);
|
|
432
431
|
const tables = {};
|
|
433
432
|
for (const t of tableList) tables[t.name] = t;
|
|
434
|
-
const { VelnDB } = await import("../db-
|
|
433
|
+
const { VelnDB } = await import("../db-YSUNURBB.js");
|
|
435
434
|
const { HookExecutor } = await import("../executor-BM3A6AGL.js");
|
|
436
435
|
const { RequestEventQueue, EventBus } = await import("../events-LDXSK7ME.js");
|
|
437
436
|
const { createSystemCtx } = await import("../system-ctx-GPF44QCE.js");
|
package/dist/db/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { VelnAdapter, BindingValue, QueryLogEntry } from '../adapter/types';
|
|
2
|
-
import type { SchemaMap, TableDef, InferInsert } from '../schema/table';
|
|
2
|
+
import type { SchemaMap, TableDef, InferInsert, InferUpdate, RelationsMap, WithRelations } from '../schema/table';
|
|
3
3
|
import type { HookExecutor } from '../hooks/executor';
|
|
4
4
|
import { RequestEventQueue } from '../events/index';
|
|
5
|
-
import type { JoinClause, SelectOptions, WhereInput, SqlDialect } from './sql';
|
|
5
|
+
import type { JoinClause, SelectOptions, WhereInput, SqlDialect, SubqueryResult } from './sql';
|
|
6
6
|
export interface QueryLog {
|
|
7
7
|
/** Total number of queries executed during this request. */
|
|
8
8
|
queries: number;
|
|
@@ -39,11 +39,12 @@ export declare class BoundVelnDB {
|
|
|
39
39
|
private readonly hooks;
|
|
40
40
|
private readonly ctx;
|
|
41
41
|
private readonly queue?;
|
|
42
|
+
private readonly dialect;
|
|
42
43
|
/** Per-request query counter — incremented for every query() and execute() call on this instance. */
|
|
43
44
|
_queryCount: number;
|
|
44
45
|
private readonly adapter;
|
|
45
|
-
constructor(adapter: VelnAdapter, hooks: HookExecutor, ctx: unknown, queue?: RequestEventQueue, queryLog?: QueryLog);
|
|
46
|
-
from<T, S extends SchemaMap>(table: TableDef<T, S>): SelectBuilder<T, S>;
|
|
46
|
+
constructor(adapter: VelnAdapter, hooks: HookExecutor, ctx: unknown, queue?: RequestEventQueue, queryLog?: QueryLog, dialect?: SqlDialect);
|
|
47
|
+
from<T, S extends SchemaMap, TRelations extends RelationsMap>(table: TableDef<T, S, any, TRelations>): SelectBuilder<T, S, TRelations>;
|
|
47
48
|
/**
|
|
48
49
|
* Start a JOIN query from the given table name.
|
|
49
50
|
* Returns a JoinBuilder — call .join()/.leftJoin() etc. to add clauses,
|
|
@@ -63,22 +64,36 @@ export declare class BoundVelnDB {
|
|
|
63
64
|
* Returns a Map keyed by the foreign-key value; each entry is an array of
|
|
64
65
|
* matching child rows (for one-to-many relations).
|
|
65
66
|
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
67
|
+
* Two call forms:
|
|
68
|
+
*
|
|
69
|
+
* @example — explicit (original)
|
|
68
70
|
* const authorMap = await db.loadRelation(posts, 'authorId', usersTable, 'id')
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
+
*
|
|
72
|
+
* @example — name-based (reads relation metadata declared on the table)
|
|
73
|
+
* const authorMap = await db.loadRelation(posts, 'author', postsTable)
|
|
71
74
|
*/
|
|
72
75
|
loadRelation<TParent extends Record<string, unknown>, TChild, TFk extends keyof TParent & string, TPk extends keyof TChild & string>(parents: TParent[], foreignKey: TFk, childTable: TableDef<TChild>, primaryKey: TPk): Promise<Map<TParent[TFk], TChild[]>>;
|
|
76
|
+
loadRelation<TParent extends Record<string, unknown>>(parents: TParent[], relationName: string, sourceTable: TableDef<any>): Promise<Map<unknown, unknown>>;
|
|
73
77
|
/**
|
|
74
78
|
* Convenience variant of loadRelation for belongs-to (many-to-one) relations.
|
|
75
79
|
* Returns Map<fkValue, TChild> — single child per key instead of an array.
|
|
76
80
|
*
|
|
77
|
-
*
|
|
81
|
+
* Two call forms:
|
|
82
|
+
*
|
|
83
|
+
* @example — explicit (original)
|
|
78
84
|
* const authorMap = await db.loadRelationOne(posts, 'authorId', usersTable, 'id')
|
|
79
|
-
*
|
|
85
|
+
*
|
|
86
|
+
* @example — name-based
|
|
87
|
+
* const authorMap = await db.loadRelationOne(posts, 'author', postsTable)
|
|
80
88
|
*/
|
|
81
89
|
loadRelationOne<TParent extends Record<string, unknown>, TChild, TFk extends keyof TParent & string, TPk extends keyof TChild & string>(parents: TParent[], foreignKey: TFk, childTable: TableDef<TChild>, primaryKey: TPk): Promise<Map<TParent[TFk], TChild>>;
|
|
90
|
+
loadRelationOne<TParent extends Record<string, unknown>>(parents: TParent[], relationName: string, sourceTable: TableDef<any>): Promise<Map<unknown, unknown>>;
|
|
91
|
+
/**
|
|
92
|
+
* Shared implementation for name-based loadRelation / loadRelationOne.
|
|
93
|
+
* Reads RelationMeta from sourceTable.relations, validates the kind,
|
|
94
|
+
* and delegates to the explicit overload.
|
|
95
|
+
*/
|
|
96
|
+
private _loadRelationByName;
|
|
82
97
|
transaction<T>(fn: (db: BoundVelnDB) => Promise<T>): Promise<TransactionResult<T>>;
|
|
83
98
|
/**
|
|
84
99
|
* Execute raw SQL and return typed rows.
|
|
@@ -99,7 +114,7 @@ export declare class BoundVelnDB {
|
|
|
99
114
|
parse: (row: unknown) => T;
|
|
100
115
|
}): Promise<T[]>;
|
|
101
116
|
}
|
|
102
|
-
export declare class SelectBuilder<T, S extends SchemaMap> {
|
|
117
|
+
export declare class SelectBuilder<T, S extends SchemaMap, TRelations extends RelationsMap = RelationsMap> {
|
|
103
118
|
private readonly adapter;
|
|
104
119
|
private readonly hooks;
|
|
105
120
|
private readonly ctx;
|
|
@@ -109,12 +124,39 @@ export declare class SelectBuilder<T, S extends SchemaMap> {
|
|
|
109
124
|
private readonly _options;
|
|
110
125
|
private readonly _rawWhere;
|
|
111
126
|
private readonly _dialect;
|
|
112
|
-
|
|
127
|
+
private readonly _withRelations;
|
|
128
|
+
private readonly _includeDeleted;
|
|
129
|
+
constructor(adapter: VelnAdapter, hooks: HookExecutor, ctx: unknown, queue: RequestEventQueue | undefined, table: TableDef<T, S, any, TRelations>, conditions: WhereInput<T>, _options?: SelectOptions, _rawWhere?: {
|
|
113
130
|
sql: string;
|
|
114
131
|
params: BindingValue[];
|
|
115
|
-
}[], _dialect?: SqlDialect);
|
|
132
|
+
}[], _dialect?: SqlDialect, _withRelations?: string[], _includeDeleted?: boolean);
|
|
116
133
|
private _cloneWith;
|
|
117
134
|
private _clone;
|
|
135
|
+
/**
|
|
136
|
+
* Eager-load relations alongside the main query.
|
|
137
|
+
* One additional IN-query per relation — never N+1 regardless of row count.
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* const posts = await db.from(postsTable).with({ author: true }).select()
|
|
141
|
+
* posts[0].author // → User | null (fully typed)
|
|
142
|
+
* posts[0].title // → string (original fields preserved)
|
|
143
|
+
*/
|
|
144
|
+
with<Keys extends keyof TRelations & string>(relations: {
|
|
145
|
+
[K in Keys]: true;
|
|
146
|
+
}): SelectBuilder<WithRelations<T, {
|
|
147
|
+
relations: TRelations;
|
|
148
|
+
}, Keys>, S, TRelations>;
|
|
149
|
+
/**
|
|
150
|
+
* Include soft-deleted rows in the query result.
|
|
151
|
+
* By default, tables with `.withSoftDelete()` automatically exclude rows
|
|
152
|
+
* where the soft-delete column is not null.
|
|
153
|
+
*
|
|
154
|
+
* Has no effect on tables without soft delete configured.
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* const allUsers = await db.from(usersTable).withDeleted().select()
|
|
158
|
+
*/
|
|
159
|
+
withDeleted(): SelectBuilder<T, S, TRelations>;
|
|
118
160
|
/**
|
|
119
161
|
* Add WHERE conditions. Accepts:
|
|
120
162
|
* - Plain equality map: `.where({ role: 'admin' })`
|
|
@@ -124,7 +166,7 @@ export declare class SelectBuilder<T, S extends SchemaMap> {
|
|
|
124
166
|
*
|
|
125
167
|
* Multiple `.where()` calls are combined with AND.
|
|
126
168
|
*/
|
|
127
|
-
where(conditions: WhereInput<T>): SelectBuilder<T, S>;
|
|
169
|
+
where(conditions: WhereInput<T>): SelectBuilder<T, S, TRelations>;
|
|
128
170
|
/**
|
|
129
171
|
* Append a raw SQL WHERE fragment, combined with AND.
|
|
130
172
|
* Use for conditions the builder cannot express.
|
|
@@ -133,31 +175,61 @@ export declare class SelectBuilder<T, S extends SchemaMap> {
|
|
|
133
175
|
* .whereRaw('"score" > "threshold"', [])
|
|
134
176
|
* .whereRaw('"created_at" > ?', ['2024-01-01'])
|
|
135
177
|
*/
|
|
136
|
-
whereRaw(sql: string, params: BindingValue[]): SelectBuilder<T, S>;
|
|
178
|
+
whereRaw(sql: string, params: BindingValue[]): SelectBuilder<T, S, TRelations>;
|
|
179
|
+
/**
|
|
180
|
+
* Apply SELECT DISTINCT — deduplicate rows in the result set.
|
|
181
|
+
* Combine with `.columns()` to deduplicate on specific columns.
|
|
182
|
+
*
|
|
183
|
+
* @example
|
|
184
|
+
* await db.from(usersTable).columns('name').distinct().select()
|
|
185
|
+
* // → SELECT DISTINCT "name" FROM "users"
|
|
186
|
+
*/
|
|
187
|
+
distinct(): SelectBuilder<T, S, TRelations>;
|
|
137
188
|
/** Limit the number of rows returned. Bound as a parameter — never interpolated. */
|
|
138
|
-
limit(n: number): SelectBuilder<T, S>;
|
|
189
|
+
limit(n: number): SelectBuilder<T, S, TRelations>;
|
|
139
190
|
/** Skip the first n rows. Bound as a parameter — never interpolated. */
|
|
140
|
-
offset(n: number): SelectBuilder<T, S>;
|
|
191
|
+
offset(n: number): SelectBuilder<T, S, TRelations>;
|
|
141
192
|
/** Add an ORDER BY clause. Multiple calls accumulate in order. */
|
|
142
|
-
orderBy(col: keyof T & string, dir?: 'ASC' | 'DESC'): SelectBuilder<T, S>;
|
|
193
|
+
orderBy(col: keyof T & string, dir?: 'ASC' | 'DESC'): SelectBuilder<T, S, TRelations>;
|
|
143
194
|
/**
|
|
144
195
|
* Convenience helper for cursor-based pagination.
|
|
145
196
|
* page(1, 10) → LIMIT 10 OFFSET 0
|
|
146
197
|
* page(2, 10) → LIMIT 10 OFFSET 10
|
|
147
198
|
*/
|
|
148
|
-
page(page: number, size: number): SelectBuilder<T, S>;
|
|
199
|
+
page(page: number, size: number): SelectBuilder<T, S, TRelations>;
|
|
149
200
|
/**
|
|
150
201
|
* Restrict which columns are returned.
|
|
151
|
-
* SELECT "id", "name" FROM "table" — instead of SELECT *
|
|
152
202
|
*
|
|
153
|
-
*
|
|
203
|
+
* Single-column form returns a ColumnRestrictedBuilder, enabling .subquery():
|
|
204
|
+
* db.from(usersTable).columns('id').subquery() // → SubqueryResult<'id', number>
|
|
205
|
+
*
|
|
206
|
+
* Multi-column form returns a narrowed SelectBuilder:
|
|
207
|
+
* db.from(usersTable).columns('id', 'name') // → SelectBuilder<Pick<User, 'id'|'name'>, ...>
|
|
208
|
+
*/
|
|
209
|
+
columns<K extends keyof T & string>(col: K): ColumnRestrictedBuilder<K, T[K], S, TRelations>;
|
|
210
|
+
columns<K extends keyof T & string>(...cols: K[]): SelectBuilder<Pick<T, K>, S, TRelations>;
|
|
211
|
+
/**
|
|
212
|
+
* Build SELECT SQL + params without executing the query.
|
|
213
|
+
* Used internally by ColumnRestrictedBuilder.subquery().
|
|
214
|
+
*/
|
|
215
|
+
/** Internal accessor for ColumnRestrictedBuilder / UnionBuilder — returns the adapter. */
|
|
216
|
+
_getAdapter(): VelnAdapter;
|
|
217
|
+
/** Internal accessor for ColumnRestrictedBuilder / UnionBuilder — returns the SQL dialect. */
|
|
218
|
+
_getDialect(): SqlDialect;
|
|
219
|
+
/**
|
|
220
|
+
* Returns the effective WHERE conditions, injecting the soft-delete IS NULL
|
|
221
|
+
* filter when the table has a soft-delete column and .withDeleted() was not called.
|
|
154
222
|
*/
|
|
155
|
-
|
|
223
|
+
private _effectiveConditions;
|
|
224
|
+
_buildSelectSQL(): {
|
|
225
|
+
sql: string;
|
|
226
|
+
params: BindingValue[];
|
|
227
|
+
};
|
|
156
228
|
/**
|
|
157
229
|
* Add a GROUP BY clause. Multiple columns are comma-separated.
|
|
158
230
|
* Combine with .aggregate() to get grouped aggregate results.
|
|
159
231
|
*/
|
|
160
|
-
groupBy(...cols: (keyof T & string)[]): SelectBuilder<T, S>;
|
|
232
|
+
groupBy(...cols: (keyof T & string)[]): SelectBuilder<T, S, TRelations>;
|
|
161
233
|
/**
|
|
162
234
|
* Add a HAVING clause — filters aggregate groups.
|
|
163
235
|
* Uses the same WhereInput system as .where() (supports operators, OR/AND).
|
|
@@ -165,7 +237,7 @@ export declare class SelectBuilder<T, S extends SchemaMap> {
|
|
|
165
237
|
* @example
|
|
166
238
|
* .groupBy('role').aggregate({ cnt: { fn: 'COUNT' } }).having({ cnt: { op: '>', value: 1 } })
|
|
167
239
|
*/
|
|
168
|
-
having(conditions: WhereInput<Record<string, unknown>>): SelectBuilder<T, S>;
|
|
240
|
+
having(conditions: WhereInput<Record<string, unknown>>): SelectBuilder<T, S, TRelations>;
|
|
169
241
|
/**
|
|
170
242
|
* Execute a GROUP BY + aggregate query.
|
|
171
243
|
* Returns typed rows with group-by columns + aggregate aliases.
|
|
@@ -196,8 +268,133 @@ export declare class SelectBuilder<T, S extends SchemaMap> {
|
|
|
196
268
|
private _scalarAggregateRaw;
|
|
197
269
|
select(): Promise<T[]>;
|
|
198
270
|
first(): Promise<T | null>;
|
|
271
|
+
private _executeWith;
|
|
272
|
+
private _attachBelongsTo;
|
|
273
|
+
private _attachHasMany;
|
|
199
274
|
update(patch: Partial<T>): Promise<T>;
|
|
275
|
+
/**
|
|
276
|
+
* Update multiple rows atomically inside a single transaction.
|
|
277
|
+
* Each row must include the primary key. beforeUpdate and afterUpdate hooks
|
|
278
|
+
* run per row. If any row fails, the entire transaction rolls back.
|
|
279
|
+
*
|
|
280
|
+
* @example
|
|
281
|
+
* const updated = await db.from(usersTable).updateMany([
|
|
282
|
+
* { id: 1, name: 'Alice Updated' },
|
|
283
|
+
* { id: 2, role: 'admin' },
|
|
284
|
+
* ])
|
|
285
|
+
*/
|
|
286
|
+
updateMany(rows: InferUpdate<S>[]): Promise<T[]>;
|
|
200
287
|
delete(): Promise<T>;
|
|
288
|
+
/**
|
|
289
|
+
* Soft-delete rows by setting the soft-delete column to the current timestamp.
|
|
290
|
+
* The table must have `.withSoftDelete()` configured — throws otherwise (at execute() time).
|
|
291
|
+
*
|
|
292
|
+
* Does NOT call beforeUpdate/afterUpdate hooks.
|
|
293
|
+
* Without .where(), all rows in the table are soft-deleted.
|
|
294
|
+
*
|
|
295
|
+
* @example
|
|
296
|
+
* await db.from(usersTable).softDelete().where({ id: 1 }).execute()
|
|
297
|
+
*/
|
|
298
|
+
softDelete(): SoftDeleteBuilder<T, S>;
|
|
299
|
+
/**
|
|
300
|
+
* Restore soft-deleted rows by setting the soft-delete column back to null.
|
|
301
|
+
* The table must have `.withSoftDelete()` configured — throws otherwise (at execute() time).
|
|
302
|
+
*
|
|
303
|
+
* @example
|
|
304
|
+
* await db.from(usersTable).restore().where({ id: 1 }).execute()
|
|
305
|
+
*/
|
|
306
|
+
restore(): SoftDeleteBuilder<T, S>;
|
|
307
|
+
}
|
|
308
|
+
export declare class ColumnRestrictedBuilder<Col extends string, TCol, S extends SchemaMap, TRelations extends RelationsMap> {
|
|
309
|
+
private readonly _builder;
|
|
310
|
+
private readonly _col;
|
|
311
|
+
constructor(_builder: SelectBuilder<unknown, S, TRelations>, _col: Col);
|
|
312
|
+
where(conditions: WhereInput<Record<string, unknown>>): ColumnRestrictedBuilder<Col, TCol, S, TRelations>;
|
|
313
|
+
limit(n: number): ColumnRestrictedBuilder<Col, TCol, S, TRelations>;
|
|
314
|
+
orderBy(col: Col, dir?: 'ASC' | 'DESC'): ColumnRestrictedBuilder<Col, TCol, S, TRelations>;
|
|
315
|
+
/**
|
|
316
|
+
* Build the SQL for this query as a subquery fragment.
|
|
317
|
+
* The result can be used directly in WHERE IN / NOT IN conditions.
|
|
318
|
+
*
|
|
319
|
+
* @example
|
|
320
|
+
* const activeIds = db.from(usersTable).columns('id').where({ active: true }).subquery()
|
|
321
|
+
* // → SubqueryResult<'id', number>
|
|
322
|
+
*
|
|
323
|
+
* const posts = await db.from(postsTable)
|
|
324
|
+
* .where({ authorId: { op: 'IN', value: activeIds } })
|
|
325
|
+
* .select()
|
|
326
|
+
*/
|
|
327
|
+
subquery(): SubqueryResult<Col, TCol>;
|
|
328
|
+
/** Build raw SELECT SQL + params without parentheses (for UNION). */
|
|
329
|
+
_buildRawSQL(): {
|
|
330
|
+
sql: string;
|
|
331
|
+
params: BindingValue[];
|
|
332
|
+
};
|
|
333
|
+
/**
|
|
334
|
+
* Combine this query with another same-type column query via UNION (deduplicates).
|
|
335
|
+
* Both sides must produce the same column type — enforced at compile time.
|
|
336
|
+
*
|
|
337
|
+
* @example
|
|
338
|
+
* db.from(usersTable).columns('id')
|
|
339
|
+
* .union(db.from(adminsTable).columns('id'))
|
|
340
|
+
* .select()
|
|
341
|
+
*/
|
|
342
|
+
union(other: ColumnRestrictedBuilder<string, TCol, SchemaMap, RelationsMap>): UnionBuilder<TCol>;
|
|
343
|
+
/**
|
|
344
|
+
* Combine via UNION ALL — keeps duplicate rows.
|
|
345
|
+
*/
|
|
346
|
+
unionAll(other: ColumnRestrictedBuilder<string, TCol, SchemaMap, RelationsMap>): UnionBuilder<TCol>;
|
|
347
|
+
}
|
|
348
|
+
export declare class SoftDeleteBuilder<T, S extends SchemaMap> {
|
|
349
|
+
private readonly adapter;
|
|
350
|
+
private readonly table;
|
|
351
|
+
private readonly _value;
|
|
352
|
+
private readonly _dialect;
|
|
353
|
+
private _conditions;
|
|
354
|
+
constructor(adapter: VelnAdapter, table: TableDef<T, S>, _value: Date | null, _dialect?: SqlDialect);
|
|
355
|
+
/**
|
|
356
|
+
* Add WHERE conditions to scope which rows are soft-deleted / restored.
|
|
357
|
+
* Multiple calls accumulate with AND.
|
|
358
|
+
* Without .where(), all rows in the table are affected.
|
|
359
|
+
*/
|
|
360
|
+
where(conditions: WhereInput<T>): this;
|
|
361
|
+
/**
|
|
362
|
+
* Execute the soft-delete or restore UPDATE.
|
|
363
|
+
* Throws if the table has no softDeleteColumn configured.
|
|
364
|
+
*/
|
|
365
|
+
execute(): Promise<void>;
|
|
366
|
+
}
|
|
367
|
+
export declare class UnionBuilder<T> {
|
|
368
|
+
private readonly _parts;
|
|
369
|
+
private readonly _kind;
|
|
370
|
+
private readonly _adapter;
|
|
371
|
+
private readonly _dialect;
|
|
372
|
+
private _orderBy?;
|
|
373
|
+
private _limit?;
|
|
374
|
+
constructor(_parts: Array<{
|
|
375
|
+
sql: string;
|
|
376
|
+
params: BindingValue[];
|
|
377
|
+
}>, _kind: 'UNION' | 'UNION ALL', _adapter: VelnAdapter, _dialect: SqlDialect);
|
|
378
|
+
/** Append another UNION (deduplicating) leg. */
|
|
379
|
+
union(other: ColumnRestrictedBuilder<string, T, SchemaMap, RelationsMap>): UnionBuilder<T>;
|
|
380
|
+
/** Append another UNION ALL (keep duplicates) leg. */
|
|
381
|
+
unionAll(other: ColumnRestrictedBuilder<string, T, SchemaMap, RelationsMap>): UnionBuilder<T>;
|
|
382
|
+
/** Add ORDER BY to the entire UNION result. */
|
|
383
|
+
orderBy(col: string, dir?: 'ASC' | 'DESC'): UnionBuilder<T>;
|
|
384
|
+
/** Add LIMIT to the entire UNION result. */
|
|
385
|
+
limit(n: number): UnionBuilder<T>;
|
|
386
|
+
/** Execute the UNION query and return typed rows. */
|
|
387
|
+
select(): Promise<Record<string, T>[]>;
|
|
388
|
+
/**
|
|
389
|
+
* Build the UNION as a subquery — wrapped in parentheses.
|
|
390
|
+
* Usable in WHERE IN / NOT IN conditions.
|
|
391
|
+
*
|
|
392
|
+
* @example
|
|
393
|
+
* const adminOrModIds = db.from(usersTable).columns('id').where({ role: 'admin' })
|
|
394
|
+
* .union(db.from(usersTable).columns('id').where({ role: 'mod' }))
|
|
395
|
+
* .subquery()
|
|
396
|
+
*/
|
|
397
|
+
subquery(): SubqueryResult<string, T>;
|
|
201
398
|
}
|
|
202
399
|
export declare class InsertBuilder<T, S extends SchemaMap> {
|
|
203
400
|
private readonly adapter;
|
|
@@ -205,9 +402,24 @@ export declare class InsertBuilder<T, S extends SchemaMap> {
|
|
|
205
402
|
private readonly ctx;
|
|
206
403
|
private readonly queue;
|
|
207
404
|
private readonly table;
|
|
208
|
-
|
|
405
|
+
private readonly dialect;
|
|
406
|
+
constructor(adapter: VelnAdapter, hooks: HookExecutor, ctx: unknown, queue: RequestEventQueue | undefined, table: TableDef<T, S>, dialect?: SqlDialect);
|
|
209
407
|
insert(data: InferInsert<S>): Promise<T>;
|
|
210
|
-
/**
|
|
408
|
+
/**
|
|
409
|
+
* Insert multiple rows in a single SQL statement.
|
|
410
|
+
* beforeInsert and afterInsert hooks run per row.
|
|
411
|
+
* Defaults (defaultFn / defaultValue) are applied per row.
|
|
412
|
+
*
|
|
413
|
+
* MySQL is not yet supported (no RETURNING *) — throws an informative error.
|
|
414
|
+
*
|
|
415
|
+
* @example
|
|
416
|
+
* const users = await db.into(usersTable).insertMany([
|
|
417
|
+
* { name: 'Alice', email: 'alice@example.com' },
|
|
418
|
+
* { name: 'Bob', email: 'bob@example.com' },
|
|
419
|
+
* ])
|
|
420
|
+
*/
|
|
421
|
+
insertMany(data: InferInsert<S>[]): Promise<T[]>;
|
|
422
|
+
/** Serialize values for storage. Date → ISO string. Drops undefined values. */
|
|
211
423
|
private _serializeForInsert;
|
|
212
424
|
}
|
|
213
425
|
export declare class JoinBuilder {
|
package/dist/db/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TableDef as TableDefSchema } from '../../schema/table';
|
|
2
2
|
import type { SchemaMap } from '../../schema/table';
|
|
3
3
|
import type { SchemaDiff, TableDiff } from './types';
|
|
4
|
-
export declare function compareSchemas(current: Map<string, TableDiff>, target: TableDefSchema<
|
|
4
|
+
export declare function compareSchemas(current: Map<string, TableDiff>, target: TableDefSchema<any, SchemaMap>[]): SchemaDiff;
|
|
5
5
|
//# sourceMappingURL=diff.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/diff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EAKV,MAAM,SAAS,CAAA;AAyChB,wBAAgB,cAAc,CAC5B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/diff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EAKV,MAAM,SAAS,CAAA;AAyChB,wBAAgB,cAAc,CAC5B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAE/B,MAAM,EAAG,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,GACxC,UAAU,CAyEZ"}
|
|
@@ -2,7 +2,7 @@ import type { VelnAdapter } from '../../adapter/types';
|
|
|
2
2
|
import type { TableDef } from '../../schema/table';
|
|
3
3
|
import type { SchemaMap } from '../../schema/table';
|
|
4
4
|
export interface GenerateOptions {
|
|
5
|
-
tables: TableDef<
|
|
5
|
+
tables: TableDef<any, SchemaMap>[];
|
|
6
6
|
adapter: VelnAdapter;
|
|
7
7
|
migrationsDir: string;
|
|
8
8
|
name?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAKnD,MAAM,WAAW,eAAe;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAKnD,MAAM,WAAW,eAAe;IAE9B,MAAM,EAAS,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAA;IACzC,OAAO,EAAQ,WAAW,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,IAAI,CAAC,EAAU,MAAM,CAAA;IACrB;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAO,MAAM,CAAA;IAChB,OAAO,EAAG,OAAO,CAAA;CAClB;AA0GD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAoBzF"}
|
package/dist/db/sql.d.ts
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
import type { BindingValue } from '../adapter/types';
|
|
2
2
|
import type { TableDef, SchemaMap } from '../schema/table';
|
|
3
|
+
/**
|
|
4
|
+
* Phantom-typed wrapper for a subquery SQL fragment.
|
|
5
|
+
* Col and T are used only at compile time — _phantom is never read at runtime.
|
|
6
|
+
*
|
|
7
|
+
* Produced by SelectBuilder.columns(col).subquery().
|
|
8
|
+
* Accepted by WhereOp IN / NOT IN in place of an array.
|
|
9
|
+
*/
|
|
10
|
+
export interface SubqueryResult<Col extends string, T> {
|
|
11
|
+
readonly _sql: string;
|
|
12
|
+
readonly _params: BindingValue[];
|
|
13
|
+
readonly _phantom: {
|
|
14
|
+
col: Col;
|
|
15
|
+
type: T;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Build a SubqueryResult from a complete SELECT SQL string + params.
|
|
20
|
+
* Wraps the SQL in parentheses (required by SQL syntax).
|
|
21
|
+
*
|
|
22
|
+
* The T generic is a phantom — it is never instantiated at runtime.
|
|
23
|
+
* The only permitted cast in this file is `undefined as unknown as T`.
|
|
24
|
+
*/
|
|
25
|
+
export declare function buildSubquery<Col extends string, T>(sql: string, params: BindingValue[], col: Col): SubqueryResult<Col, T>;
|
|
3
26
|
export interface JoinClause {
|
|
4
27
|
type: 'INNER' | 'LEFT' | 'RIGHT' | 'FULL';
|
|
5
28
|
table: string;
|
|
@@ -8,6 +31,8 @@ export interface JoinClause {
|
|
|
8
31
|
export declare function validateAndQuoteOnClause(on: string): string;
|
|
9
32
|
/** SQL dialect — used for ILIKE fallback on non-Postgres adapters. */
|
|
10
33
|
export type SqlDialect = 'sqlite' | 'postgres' | 'mysql';
|
|
34
|
+
/** Accepted value for IN / NOT IN — either a plain array or a typed subquery. */
|
|
35
|
+
export type InValue<T> = T[] | SubqueryResult<string, T>;
|
|
11
36
|
/** Explicit operator condition for a single column. */
|
|
12
37
|
export type WhereOp<T> = {
|
|
13
38
|
op: '=';
|
|
@@ -29,10 +54,10 @@ export type WhereOp<T> = {
|
|
|
29
54
|
value: T;
|
|
30
55
|
} | {
|
|
31
56
|
op: 'IN';
|
|
32
|
-
value: T
|
|
57
|
+
value: InValue<T>;
|
|
33
58
|
} | {
|
|
34
59
|
op: 'NOT IN';
|
|
35
|
-
value: T
|
|
60
|
+
value: InValue<T>;
|
|
36
61
|
} | {
|
|
37
62
|
op: 'LIKE';
|
|
38
63
|
value: string;
|
|
@@ -90,6 +115,29 @@ export declare function buildInsert(tableName: string, data: Record<string, unkn
|
|
|
90
115
|
sql: string;
|
|
91
116
|
params: BindingValue[];
|
|
92
117
|
};
|
|
118
|
+
/**
|
|
119
|
+
* Build a multi-row INSERT statement.
|
|
120
|
+
* INSERT INTO "table" ("col1", "col2") VALUES (?, ?), (?, ?) RETURNING *
|
|
121
|
+
*
|
|
122
|
+
* Column order is derived from rows[0] — all subsequent rows must have the same keys.
|
|
123
|
+
* Pass returning: false for databases that do not support RETURNING (MySQL).
|
|
124
|
+
* Throws if rows is empty or any row contains undefined values.
|
|
125
|
+
*/
|
|
126
|
+
export declare function buildInsertMany(tableName: string, rows: Record<string, BindingValue>[], returning?: boolean): {
|
|
127
|
+
sql: string;
|
|
128
|
+
params: BindingValue[];
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* Build a soft-delete or restore UPDATE statement.
|
|
132
|
+
* UPDATE "table" SET "col" = ? [WHERE ...]
|
|
133
|
+
*
|
|
134
|
+
* value is the new column value: Date (serialized to ISO string) for soft delete,
|
|
135
|
+
* null for restore.
|
|
136
|
+
*/
|
|
137
|
+
export declare function buildSoftDeleteUpdate(tableName: string, col: string, value: Date | null, where: WhereInput<Record<string, unknown>>, dialect?: SqlDialect): {
|
|
138
|
+
sql: string;
|
|
139
|
+
params: BindingValue[];
|
|
140
|
+
};
|
|
93
141
|
/**
|
|
94
142
|
* Build an UPDATE statement.
|
|
95
143
|
* UPDATE "table" SET "col1" = ?, "col2" = ? WHERE "pk" = ?
|
|
@@ -130,9 +178,29 @@ export interface SelectOptions {
|
|
|
130
178
|
groupBy?: string[];
|
|
131
179
|
aggregates?: AggregateClause[];
|
|
132
180
|
having?: WhereInput<Record<string, unknown>>;
|
|
181
|
+
distinct?: boolean;
|
|
133
182
|
}
|
|
134
183
|
/** Build the SELECT column list from options. Exported for use in SelectBuilder's raw-where path. */
|
|
135
184
|
export declare function buildSelectListFromOptions(options?: SelectOptions): string;
|
|
185
|
+
/**
|
|
186
|
+
* Build a UNION or UNION ALL query from two or more SELECT SQL fragments.
|
|
187
|
+
* Optionally appends ORDER BY + LIMIT to the combined query.
|
|
188
|
+
*
|
|
189
|
+
* Throws if fewer than 2 parts are provided.
|
|
190
|
+
*/
|
|
191
|
+
export declare function buildUnion(parts: Array<{
|
|
192
|
+
sql: string;
|
|
193
|
+
params: BindingValue[];
|
|
194
|
+
}>, kind: 'UNION' | 'UNION ALL', options?: {
|
|
195
|
+
orderBy?: {
|
|
196
|
+
col: string;
|
|
197
|
+
dir: 'ASC' | 'DESC';
|
|
198
|
+
};
|
|
199
|
+
limit?: number;
|
|
200
|
+
}): {
|
|
201
|
+
sql: string;
|
|
202
|
+
params: BindingValue[];
|
|
203
|
+
};
|
|
136
204
|
/**
|
|
137
205
|
* Build a SELECT statement.
|
|
138
206
|
* SELECT [cols] FROM "table" [WHERE ...] [GROUP BY ...] [HAVING ...] [ORDER BY ...] [LIMIT n] [OFFSET n]
|
package/dist/db/sql.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../src/db/sql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAM1D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IACzC,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,MAAM,CAAA;CACX;AASD,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAY3D;AAID,sEAAsE;AACtE,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAA;AAExD,uDAAuD;AACvD,MAAM,MAAM,OAAO,CAAC,CAAC,IACjB;IAAE,EAAE,EAAE,GAAG,CAAC;IAAU,KAAK,EAAE,CAAC,CAAA;CAAE,GAC9B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAS,KAAK,EAAE,CAAC,CAAA;CAAE,GAC9B;IAAE,EAAE,EAAE,GAAG,CAAC;IAAU,KAAK,EAAE,CAAC,CAAA;CAAE,GAC9B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAS,KAAK,EAAE,CAAC,CAAA;CAAE,GAC9B;IAAE,EAAE,EAAE,GAAG,CAAC;IAAU,KAAK,EAAE,CAAC,CAAA;CAAE,GAC9B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAS,KAAK,EAAE,CAAC,CAAA;CAAE,GAC9B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAS,KAAK,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../src/db/sql.ts"],"names":[],"mappings":"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"}
|