@visorcraft/mongreldb-kit 0.7.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 (65) hide show
  1. package/dist/constraints.d.ts +35 -0
  2. package/dist/constraints.d.ts.map +1 -0
  3. package/dist/constraints.js +404 -0
  4. package/dist/constraints.js.map +1 -0
  5. package/dist/db.d.ts +135 -0
  6. package/dist/db.d.ts.map +1 -0
  7. package/dist/db.js +495 -0
  8. package/dist/db.js.map +1 -0
  9. package/dist/defaults.d.ts +26 -0
  10. package/dist/defaults.d.ts.map +1 -0
  11. package/dist/defaults.js +56 -0
  12. package/dist/defaults.js.map +1 -0
  13. package/dist/errors.d.ts +54 -0
  14. package/dist/errors.d.ts.map +1 -0
  15. package/dist/errors.js +104 -0
  16. package/dist/errors.js.map +1 -0
  17. package/dist/index.d.ts +13 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +13 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/internalTables.d.ts +63 -0
  22. package/dist/internalTables.d.ts.map +1 -0
  23. package/dist/internalTables.js +60 -0
  24. package/dist/internalTables.js.map +1 -0
  25. package/dist/keys.d.ts +7 -0
  26. package/dist/keys.d.ts.map +1 -0
  27. package/dist/keys.js +84 -0
  28. package/dist/keys.js.map +1 -0
  29. package/dist/migrate.d.ts +132 -0
  30. package/dist/migrate.d.ts.map +1 -0
  31. package/dist/migrate.js +1004 -0
  32. package/dist/migrate.js.map +1 -0
  33. package/dist/packing.d.ts +12 -0
  34. package/dist/packing.d.ts.map +1 -0
  35. package/dist/packing.js +137 -0
  36. package/dist/packing.js.map +1 -0
  37. package/dist/query.d.ts +423 -0
  38. package/dist/query.d.ts.map +1 -0
  39. package/dist/query.js +1645 -0
  40. package/dist/query.js.map +1 -0
  41. package/dist/remote.d.ts +29 -0
  42. package/dist/remote.d.ts.map +1 -0
  43. package/dist/remote.js +42 -0
  44. package/dist/remote.js.map +1 -0
  45. package/dist/rows.d.ts +5 -0
  46. package/dist/rows.d.ts.map +1 -0
  47. package/dist/rows.js +38 -0
  48. package/dist/rows.js.map +1 -0
  49. package/dist/schema.d.ts +91 -0
  50. package/dist/schema.d.ts.map +1 -0
  51. package/dist/schema.js +206 -0
  52. package/dist/schema.js.map +1 -0
  53. package/dist/tsv.d.ts +4 -0
  54. package/dist/tsv.d.ts.map +1 -0
  55. package/dist/tsv.js +102 -0
  56. package/dist/tsv.js.map +1 -0
  57. package/dist/types.d.ts +99 -0
  58. package/dist/types.d.ts.map +1 -0
  59. package/dist/types.js +2 -0
  60. package/dist/types.js.map +1 -0
  61. package/dist/validation.d.ts +3 -0
  62. package/dist/validation.d.ts.map +1 -0
  63. package/dist/validation.js +98 -0
  64. package/dist/validation.js.map +1 -0
  65. package/package.json +50 -0
@@ -0,0 +1,423 @@
1
+ import { type Table as ArrowTable } from 'apache-arrow';
2
+ import { KitDatabase } from './db.js';
3
+ import type { TableSpec, ColumnSpec } from './types.js';
4
+ import type { Row, Insert, Update } from './types.js';
5
+ declare module './db.js' {
6
+ interface KitDatabase {
7
+ selectFrom<T extends TableSpec>(table: T): SelectBuilder<T>;
8
+ insertInto<T extends TableSpec>(table: T): InsertBuilder<T>;
9
+ updateTable<T extends TableSpec>(table: T): UpdateBuilder<T>;
10
+ deleteFrom<T extends TableSpec>(table: T): DeleteBuilder<T>;
11
+ truncateTable(tableName: string): void;
12
+ /**
13
+ * Materialize `builder` as a named CTE and return a scope whose
14
+ * `selectFrom(name)` reads those rows in memory. Chain `.with(...)` for
15
+ * additional CTEs.
16
+ */
17
+ with(name: string, builder: {
18
+ _materialize(): {
19
+ rows: Record<string, unknown>[];
20
+ columns: ColumnSpec[];
21
+ };
22
+ }): CteScope;
23
+ /**
24
+ * Incrementally-maintained aggregate (`count`/`sum`/`min`/`max`/`avg`)
25
+ * over `table`, optionally filtered by an exact `where` predicate. The
26
+ * `value` is always exact; `incremental` reports whether the engine folded
27
+ * in only the delta of newly-committed rows. `column` is required for
28
+ * sum/min/max/avg. A filter with a residual (e.g. `contains`/`like`) is
29
+ * rejected — it would aggregate the wrong rows.
30
+ */
31
+ incrementalAggregate(table: string, agg: 'count' | 'sum' | 'min' | 'max' | 'avg', column?: string, filter?: Predicate): IncrementalAggregate;
32
+ }
33
+ }
34
+ /** The result of `KitDatabase.incrementalAggregate`. */
35
+ export interface IncrementalAggregate {
36
+ /** Exact aggregate value: a JSON number, or `null` when no rows matched. */
37
+ value: number | null;
38
+ /** True when computed by merging only newly-committed rows (fast path). */
39
+ incremental: boolean;
40
+ /** Rows processed in the delta pass (0 for a full recompute). */
41
+ delta_rows: number;
42
+ }
43
+ type ApplicationTypeMap = {
44
+ bool: boolean;
45
+ int64: bigint;
46
+ float64: number;
47
+ timestamp: string;
48
+ date: string;
49
+ text: string;
50
+ bytes: unknown;
51
+ json: unknown;
52
+ };
53
+ export type ColumnValue<T extends ColumnSpec> = T['applicationType'] extends keyof ApplicationTypeMap ? ApplicationTypeMap[T['applicationType']] : unknown;
54
+ /**
55
+ * Minimal contract a {@link SelectBuilder} satisfies so it can supply the value
56
+ * set / existence test for `inSubquery` / `exists` / `notExists`. Decoupled from
57
+ * the builder's generic parameters so `Predicate` need not depend on them.
58
+ */
59
+ export interface Subquery {
60
+ /** Values of the subquery's single selected column (for `IN (...)`). */
61
+ scalarValuesSync(): unknown[];
62
+ /** True when the subquery matches at least one row (for `EXISTS`). */
63
+ hasRowsSync(): boolean;
64
+ }
65
+ export type Predicate = {
66
+ kind: 'and';
67
+ predicates: Predicate[];
68
+ } | {
69
+ kind: 'or';
70
+ predicates: Predicate[];
71
+ } | {
72
+ kind: 'not';
73
+ predicate: Predicate;
74
+ } | {
75
+ kind: 'eq';
76
+ column: ColumnSpec;
77
+ value: unknown;
78
+ } | {
79
+ kind: 'ne';
80
+ column: ColumnSpec;
81
+ value: unknown;
82
+ } | {
83
+ kind: 'gt';
84
+ column: ColumnSpec;
85
+ value: unknown;
86
+ } | {
87
+ kind: 'gte';
88
+ column: ColumnSpec;
89
+ value: unknown;
90
+ } | {
91
+ kind: 'lt';
92
+ column: ColumnSpec;
93
+ value: unknown;
94
+ } | {
95
+ kind: 'lte';
96
+ column: ColumnSpec;
97
+ value: unknown;
98
+ } | {
99
+ kind: 'null';
100
+ column: ColumnSpec;
101
+ not: boolean;
102
+ } | {
103
+ kind: 'in';
104
+ column: ColumnSpec;
105
+ values: unknown[];
106
+ } | {
107
+ kind: 'notIn';
108
+ column: ColumnSpec;
109
+ values: unknown[];
110
+ } | {
111
+ kind: 'like';
112
+ column: ColumnSpec;
113
+ pattern: string;
114
+ } | {
115
+ kind: 'contains';
116
+ column: ColumnSpec;
117
+ substr: string;
118
+ } | {
119
+ kind: 'inSub';
120
+ column: ColumnSpec;
121
+ subquery: Subquery;
122
+ } | {
123
+ kind: 'exists';
124
+ subquery: Subquery;
125
+ negate: boolean;
126
+ };
127
+ export type OrderBy = {
128
+ column: ColumnSpec;
129
+ direction: 'asc' | 'desc';
130
+ };
131
+ type MatchedRow = {
132
+ rowId: bigint;
133
+ row: Record<string, unknown>;
134
+ };
135
+ /** Scalar aggregate kinds computed over a value set (count is handled apart). */
136
+ type ScalarAggKind = 'sum' | 'min' | 'max' | 'avg';
137
+ /** Result row of a join: keyed by table name, each side a row or null. */
138
+ export type JoinRow = Record<string, Record<string, unknown> | null>;
139
+ /** Join condition / post-join filter evaluated in JS over a {@link JoinRow}. */
140
+ export type JoinPredicate = (row: JoinRow) => boolean;
141
+ /** The column-equality a {@link joinEq} predicate carries so the join builder
142
+ * can probe the right table by index instead of full-scanning it. */
143
+ export interface JoinEqKey {
144
+ leftTable: string;
145
+ leftColumn: ColumnSpec;
146
+ rightTable: string;
147
+ rightColumn: ColumnSpec;
148
+ }
149
+ /**
150
+ * A declarative join predicate equating `leftTable.leftColumn` with
151
+ * `rightTable.rightColumn`. Behaves like the closure form, but the builder can
152
+ * introspect the equality to fetch the right table by an index probe over the
153
+ * distinct left keys instead of a full scan. Prefer this over a hand-written
154
+ * closure for FK joins.
155
+ */
156
+ export declare function joinEq(leftTable: TableSpec, leftColumn: ColumnSpec, rightTable: TableSpec, rightColumn: ColumnSpec): JoinPredicate;
157
+ /** A single column aggregate used inside `GroupBuilder.aggregate`. `distinct`
158
+ * de-duplicates the column's values (e.g. `COUNT(DISTINCT col)`); it requires a
159
+ * `column` and is a no-op for `min`/`max`. */
160
+ export type AggregateSpec = {
161
+ fn: 'count' | ScalarAggKind;
162
+ column?: ColumnSpec;
163
+ distinct?: boolean;
164
+ };
165
+ /** One result row from a grouped query: group columns plus aggregate aliases. */
166
+ export type GroupRow = Record<string, unknown>;
167
+ export declare function eq<T extends ColumnSpec>(column: T, value: ColumnValue<T>): Predicate;
168
+ export declare function ne<T extends ColumnSpec>(column: T, value: ColumnValue<T>): Predicate;
169
+ export declare function gt<T extends ColumnSpec>(column: T, value: ColumnValue<T>): Predicate;
170
+ export declare function gte<T extends ColumnSpec>(column: T, value: ColumnValue<T>): Predicate;
171
+ export declare function lt<T extends ColumnSpec>(column: T, value: ColumnValue<T>): Predicate;
172
+ export declare function lte<T extends ColumnSpec>(column: T, value: ColumnValue<T>): Predicate;
173
+ export declare function isNull(column: ColumnSpec): Predicate;
174
+ export declare function isNotNull(column: ColumnSpec): Predicate;
175
+ export declare function inList<T extends ColumnSpec>(column: T, values: ColumnValue<T>[]): Predicate;
176
+ export declare function and(...predicates: Predicate[]): Predicate;
177
+ export declare function or(...predicates: Predicate[]): Predicate;
178
+ export declare function asc(column: ColumnSpec): OrderBy;
179
+ export declare function desc(column: ColumnSpec): OrderBy;
180
+ /** Negates a predicate (logical NOT). */
181
+ export declare function not(predicate: Predicate): Predicate;
182
+ /** `column NOT IN (values)`. */
183
+ export declare function notInList<T extends ColumnSpec>(column: T, values: ColumnValue<T>[]): Predicate;
184
+ /**
185
+ * SQL `LIKE` against a text column. `%` matches any run of characters and `_`
186
+ * matches a single character; all other characters are literal. Case-sensitive.
187
+ */
188
+ export declare function like<T extends ColumnSpec>(column: T, pattern: string): Predicate;
189
+ /** Case-sensitive substring match: `column LIKE '%substr%'` with no wildcards. */
190
+ export declare function contains<T extends ColumnSpec>(column: T, substr: string): Predicate;
191
+ /** `column IN (subquery)`. The subquery must select exactly one column. */
192
+ export declare function inSubquery<T extends ColumnSpec>(column: T, subquery: Subquery): Predicate;
193
+ /**
194
+ * `EXISTS (subquery)`. The subquery is uncorrelated: it is evaluated once and
195
+ * gates the whole outer scan.
196
+ * // ponytail: no correlated-subquery support; correlation would require
197
+ * // re-binding the outer row into the subquery per candidate.
198
+ */
199
+ export declare function exists(subquery: Subquery): Predicate;
200
+ /** `NOT EXISTS (subquery)`. Uncorrelated, like {@link exists}. */
201
+ export declare function notExists(subquery: Subquery): Predicate;
202
+ /** Aggregate descriptor: `COUNT(*)` for a group. */
203
+ export declare function count(): AggregateSpec;
204
+ /** Aggregate descriptor: `COUNT(column)` — non-null values in a group. */
205
+ export declare function countColumn(column: ColumnSpec): AggregateSpec;
206
+ /** Aggregate descriptor: `COUNT(DISTINCT column)` — unique non-null values. */
207
+ export declare function countDistinct(column: ColumnSpec): AggregateSpec;
208
+ /** Aggregate descriptor: `SUM(column)` for a group. */
209
+ export declare function sum(column: ColumnSpec): AggregateSpec;
210
+ /** Aggregate descriptor: `MIN(column)` for a group. */
211
+ export declare function min(column: ColumnSpec): AggregateSpec;
212
+ /** Aggregate descriptor: `MAX(column)` for a group. */
213
+ export declare function max(column: ColumnSpec): AggregateSpec;
214
+ /** Aggregate descriptor: `AVG(column)` for a group (always a float). */
215
+ export declare function avg(column: ColumnSpec): AggregateSpec;
216
+ /** How a `where` predicate would execute: which native conditions push down. */
217
+ export type ExplainPlan = {
218
+ indexAccelerated: boolean;
219
+ exact: boolean;
220
+ pushedConditions: string[];
221
+ };
222
+ /** SUM over an int64 column yields bigint; over a float64 column yields number. */
223
+ type SumResult<C extends ColumnSpec> = C['applicationType'] extends 'int64' ? bigint : number;
224
+ export declare class SelectBuilder<T extends TableSpec, TResult = Row<T>[]> implements Subquery {
225
+ private readonly kit;
226
+ private readonly table;
227
+ private _where?;
228
+ private _orderBy;
229
+ private _limit?;
230
+ private _offset?;
231
+ private _columns?;
232
+ private _count;
233
+ private _distinct;
234
+ private _aggregate?;
235
+ private _ann?;
236
+ private _sparse?;
237
+ /** Internal: in-memory rows backing a CTE source instead of a native table. */
238
+ _source?: MatchedRow[];
239
+ constructor(kit: KitDatabase, table: T);
240
+ where(predicate: Predicate): SelectBuilder<T, TResult>;
241
+ orderBy(...orders: OrderBy[]): SelectBuilder<T, TResult>;
242
+ limit(n: number): SelectBuilder<T, TResult>;
243
+ offset(n: number): SelectBuilder<T, TResult>;
244
+ /** Remove duplicate result rows (over the selected columns). */
245
+ distinct(): SelectBuilder<T, TResult>;
246
+ select<C extends ColumnSpec>(columns: C[]): SelectBuilder<T, Pick<Row<T>, C['name']>>;
247
+ private cloneScalar;
248
+ selectCount(): SelectBuilder<T, bigint>;
249
+ selectSum<C extends ColumnSpec>(column: C): SelectBuilder<T, SumResult<C>>;
250
+ selectAvg(column: ColumnSpec): SelectBuilder<T, number | null>;
251
+ selectMin<C extends ColumnSpec>(column: C): SelectBuilder<T, ColumnValue<C> | null>;
252
+ selectMax<C extends ColumnSpec>(column: C): SelectBuilder<T, ColumnValue<C> | null>;
253
+ /** Start an INNER JOIN. The `on` predicate runs in JS over the joined row. */
254
+ innerJoin(table: TableSpec, on: JoinPredicate): JoinBuilder;
255
+ /** Start a LEFT JOIN; unmatched right side is null in the result row. */
256
+ leftJoin(table: TableSpec, on: JoinPredicate): JoinBuilder;
257
+ /** Start a CROSS JOIN (cartesian product; no predicate). */
258
+ crossJoin(table: TableSpec): JoinBuilder;
259
+ private startJoin;
260
+ /** Group matched rows by the given columns and compute aggregates per group. */
261
+ groupBy(...columns: ColumnSpec[]): GroupBuilder<T>;
262
+ private resolveMatched;
263
+ /** Bind an in-memory source (used by CTE materialization). Internal. */
264
+ _bindSource(rows: MatchedRow[]): this;
265
+ /** Run the query and capture its rows + output columns for CTE materialization. */
266
+ _materialize(): {
267
+ rows: Record<string, unknown>[];
268
+ columns: ColumnSpec[];
269
+ };
270
+ scalarValuesSync(): unknown[];
271
+ hasRowsSync(): boolean;
272
+ /**
273
+ * Approximate nearest-neighbour search: return the `k` rows whose `column`
274
+ * (an `embedding`) is closest to `vector`, resolved by the column's ANN
275
+ * index. Terminal — call `executeSync()`/`execute()` next.
276
+ */
277
+ annSearch(column: ColumnSpec, vector: number[], k: number): SelectBuilder<T, Row<T>[]>;
278
+ /**
279
+ * Learned-sparse (SPLADE) retrieval: return the `k` rows whose `column` (a
280
+ * sparse token vector) best matches the weighted `query` `[token, weight]`
281
+ * pairs. Terminal — call `executeSync()`/`execute()` next.
282
+ */
283
+ sparseMatch(column: ColumnSpec, query: [number, number][], k: number): SelectBuilder<T, Row<T>[]>;
284
+ executeSync(): TResult;
285
+ execute(): Promise<TResult>;
286
+ /**
287
+ * Execute against the native engine and return the matching rows as an Arrow
288
+ * (columnar) table — zero-copy from the engine. TypeScript-only: the
289
+ * Rust/Python kit returns row maps.
290
+ *
291
+ * The native Arrow path is index-driven and needs at least one pushed-down
292
+ * condition, so a `where`/`annSearch`/`sparseMatch` clause is required. It
293
+ * applies only the pushed-down predicate (exact for `=`/range/`in`, a
294
+ * superset for `contains`/`like`) and returns every column — `orderBy`,
295
+ * `limit`, `offset`, and column projection are NOT applied. Use
296
+ * {@link executeSync} for full query semantics.
297
+ */
298
+ executeArrow(): ArrowTable;
299
+ /**
300
+ * Describe how this query's `where`/`annSearch`/`sparseMatch` clause would
301
+ * push down to native index conditions — a diagnostic that plans but does
302
+ * not run the query. `exact` is true when the whole predicate translated (no
303
+ * JS residual re-filtering).
304
+ */
305
+ explain(): ExplainPlan;
306
+ }
307
+ /**
308
+ * Nested-loop join executed entirely in JS. The result is a {@link JoinRow}
309
+ * keyed by table name — e.g. `{ users: { ... }, orders: { ... } }`. For a LEFT
310
+ * JOIN with no match, the joined side is `null`.
311
+ */
312
+ export declare class JoinBuilder {
313
+ private readonly kit;
314
+ private readonly baseTable;
315
+ private readonly baseWhere?;
316
+ private readonly baseSource?;
317
+ private readonly clauses;
318
+ private _where?;
319
+ private _limit?;
320
+ private _offset?;
321
+ constructor(kit: KitDatabase, baseTable: TableSpec, baseWhere?: Predicate | undefined, baseSource?: MatchedRow[] | undefined);
322
+ innerJoin(table: TableSpec, on: JoinPredicate): this;
323
+ leftJoin(table: TableSpec, on: JoinPredicate): this;
324
+ crossJoin(table: TableSpec): this;
325
+ /** Post-join filter over the assembled {@link JoinRow}. */
326
+ where(predicate: JoinPredicate): this;
327
+ limit(n: number): this;
328
+ offset(n: number): this;
329
+ executeSync(): JoinRow[];
330
+ execute(): Promise<JoinRow[]>;
331
+ }
332
+ /**
333
+ * Grouped aggregation executed in JS. Each result row carries the group-by
334
+ * column values plus one entry per named aggregate.
335
+ */
336
+ export declare class GroupBuilder<T extends TableSpec> {
337
+ private readonly kit;
338
+ private readonly table;
339
+ private readonly groupColumns;
340
+ private readonly _where?;
341
+ private readonly _source?;
342
+ private _aggregates;
343
+ private _having?;
344
+ constructor(kit: KitDatabase, table: T, groupColumns: ColumnSpec[], _where?: Predicate | undefined, _source?: MatchedRow[] | undefined);
345
+ /** Declare the named aggregates to compute per group. */
346
+ aggregate(spec: Record<string, AggregateSpec>): this;
347
+ /** Filter groups after aggregation (HAVING), over the assembled group row. */
348
+ having(predicate: (row: GroupRow) => boolean): this;
349
+ executeSync(): GroupRow[];
350
+ execute(): Promise<GroupRow[]>;
351
+ }
352
+ /**
353
+ * A scope of materialized common table expressions (CTEs). Each `with` runs its
354
+ * builder eagerly and stores the result rows in memory so a later `selectFrom`
355
+ * can read them as if they were a table.
356
+ * // ponytail: full in-memory materialization — CTEs are not lazy/recursive.
357
+ */
358
+ export declare class CteScope {
359
+ private readonly kit;
360
+ private readonly ctes;
361
+ constructor(kit: KitDatabase);
362
+ with(name: string, builder: {
363
+ _materialize(): {
364
+ rows: Record<string, unknown>[];
365
+ columns: ColumnSpec[];
366
+ };
367
+ }): CteScope;
368
+ selectFrom(name: string): SelectBuilder<TableSpec, Record<string, unknown>[]>;
369
+ }
370
+ export declare class InsertBuilder<T extends TableSpec, TResult = Row<T>> {
371
+ private readonly kit;
372
+ private readonly table;
373
+ private _row?;
374
+ private _returning?;
375
+ private _onConflict?;
376
+ constructor(kit: KitDatabase, table: T);
377
+ values(row: Insert<T>): this;
378
+ /**
379
+ * Insert many rows in a single transaction. Each row still passes through
380
+ * defaults, validation, and constraint checks, but the whole batch commits
381
+ * once — far faster than a row-at-a-time loop for bulk loads.
382
+ */
383
+ valuesMany(rows: Insert<T>[]): InsertManyBuilder<T>;
384
+ returning<C extends ColumnSpec[]>(...columns: [...C]): InsertBuilder<T, Pick<Row<T>, C[number]['name']>>;
385
+ onConflictDoNothing(): InsertBuilder<T, TResult>;
386
+ onConflictDoUpdate(patch: Partial<Row<T>>): InsertBuilder<T, TResult>;
387
+ executeSync(): TResult;
388
+ execute(): Promise<TResult>;
389
+ }
390
+ export declare class InsertManyBuilder<T extends TableSpec> {
391
+ private readonly kit;
392
+ private readonly table;
393
+ private readonly rows;
394
+ constructor(kit: KitDatabase, table: T, rows: Insert<T>[]);
395
+ executeSync(): Row<T>[];
396
+ execute(): Promise<Row<T>[]>;
397
+ }
398
+ export declare class UpdateBuilder<T extends TableSpec, TResult = Row<T>[]> {
399
+ private readonly kit;
400
+ private readonly table;
401
+ private _patch?;
402
+ private _where?;
403
+ private _returning?;
404
+ constructor(kit: KitDatabase, table: T);
405
+ set(patch: Update<T>): this;
406
+ where(predicate: Predicate): this;
407
+ returning<C extends ColumnSpec[]>(...columns: [...C]): UpdateBuilder<T, Pick<Row<T>, C[number]['name']>[]>;
408
+ executeSync(): TResult;
409
+ execute(): Promise<TResult>;
410
+ }
411
+ export declare class DeleteBuilder<T extends TableSpec, TResult = bigint> {
412
+ private readonly kit;
413
+ private readonly table;
414
+ private _where?;
415
+ private _returning?;
416
+ constructor(kit: KitDatabase, table: T);
417
+ where(predicate: Predicate): this;
418
+ returning<C extends ColumnSpec[]>(...columns: [...C]): DeleteBuilder<T, Pick<Row<T>, C[number]['name']>[]>;
419
+ executeSync(): TResult;
420
+ execute(): Promise<TResult>;
421
+ }
422
+ export {};
423
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}