@inflector/optima 1.0.1 → 1.0.3

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/index.d.ts CHANGED
@@ -1,3 +1,323 @@
1
- export * from "./database";
2
- export * from "./schema";
3
- export { eq, ne, gt, gte, lt, lte, inOp, notIn, between, notBetween, is, isNot, like, notLike, startsWith, endsWith, contains, regexp, notRegexp, cond, type ConditionBuilder } from "./table";
1
+ import { DuckDBConnection, DuckDBInstance } from '@duckdb/node-api';
2
+ import * as z from 'zod';
3
+ export * from 'zod';
4
+
5
+ type SetFlag$1<C extends ColumnConfig, K extends keyof ColumnConfig> = Omit<C, K> & {
6
+ [P in K]: true;
7
+ };
8
+ type Prettify$1<T> = {
9
+ [K in keyof T]: T[K];
10
+ } & {};
11
+ type Restrict<K extends keyof ColumnConfig> = {
12
+ [P in keyof ColumnConfig]: P extends K ? true : false;
13
+ };
14
+ type One<T> = T & {
15
+ readonly __refKind: "one";
16
+ };
17
+ type Many<T> = T & {
18
+ readonly __refKind: "many";
19
+ };
20
+ declare const refHelpers: {
21
+ one: <T>(ref: T) => One<T>;
22
+ many: <T>(ref: T) => Many<T>;
23
+ };
24
+ type InferColumnType<T> = T extends ColumnBuilder<infer U, any, any> ? U : never;
25
+ type Infer<T extends Record<string, any>> = Prettify$1<{
26
+ [K in keyof T as K extends `__${string}` ? never : T[K] extends ColumnBuilder<any, infer C, any> ? C["notnull"] extends true ? K : never : never]: T[K] extends ColumnBuilder<infer U, any, any> ? U : never;
27
+ } & // 2. Handle Optional Keys (notnull: false)
28
+ {
29
+ [K in keyof T as K extends `__${string}` ? never : T[K] extends ColumnBuilder<any, infer C, any> ? C["notnull"] extends true ? never : K : never]: T[K] extends ColumnBuilder<infer U, any, any> ? U | null : never;
30
+ }>;
31
+ type InferAdd<T extends Record<string, any>> = Prettify$1<{
32
+ [K in keyof T as K extends `__${string}` ? never : T[K] extends ColumnBuilder<any, infer C, any> ? C["notnull"] extends true ? K : never : never]: T[K] extends ColumnBuilder<infer U, any, any> ? U : never;
33
+ } & // 2. Handle Optional Keys (notnull: false)
34
+ {
35
+ [K in keyof T as K extends `__${string}` ? never : T[K] extends ColumnBuilder<any, infer C, any> ? C["notnull"] extends true ? never : K : never]?: T[K] extends ColumnBuilder<infer U, any, any> ? U | null : never;
36
+ }>;
37
+ type ColumnConfig = {
38
+ SQlType: boolean;
39
+ primaryKey: boolean;
40
+ notnull: boolean;
41
+ unique: boolean;
42
+ default: boolean;
43
+ defaultNow: boolean;
44
+ reference: boolean;
45
+ validate: boolean;
46
+ transform: boolean;
47
+ deprecated: boolean;
48
+ STRUCTType: boolean;
49
+ };
50
+ type ColumnBuilder<Type, Config extends ColumnConfig, RefSchema = never> = {
51
+ [K in keyof ColumnConfig as K extends "STRUCTType" ? never : Config[K] extends true ? never : K]: K extends "SQlType" ? (val: string) => ColumnBuilder<Type, SetFlag$1<Config, "SQlType">, RefSchema> : K extends "primaryKey" ? () => ColumnBuilder<Type, SetFlag$1<Config, "primaryKey">, RefSchema> : K extends "notnull" ? () => ColumnBuilder<Type, SetFlag$1<Config, "notnull">, RefSchema> : K extends "unique" ? () => ColumnBuilder<Type, SetFlag$1<Config, "unique">, RefSchema> : K extends "default" ? (val: Type | (() => Type)) => ColumnBuilder<Type, SetFlag$1<Config, "default">, RefSchema> : K extends "defaultNow" ? () => ColumnBuilder<Type, SetFlag$1<Config, "defaultNow">, RefSchema> : K extends "reference" ? <TRef>(ref: (helpers: typeof refHelpers) => TRef) => ColumnBuilder<Type, SetFlag$1<Config, "reference">, TRef> : K extends "validate" ? (fn: (val: Type) => boolean) => ColumnBuilder<Type, SetFlag$1<Config, "validate">, RefSchema> : K extends "transform" ? (fn: (val: Type) => Type) => ColumnBuilder<Type, SetFlag$1<Config, "transform">, RefSchema> : K extends "deprecated" ? () => ColumnBuilder<Type, SetFlag$1<Config, "deprecated">, RefSchema> : never;
52
+ };
53
+ declare const Int: () => ColumnBuilder<number, SetFlag$1<Restrict<"defaultNow">, "SQlType">, never>;
54
+ declare const BigInt: () => ColumnBuilder<bigint, SetFlag$1<Restrict<"defaultNow">, "SQlType">, never>;
55
+ declare const Float: () => ColumnBuilder<number, SetFlag$1<Restrict<"defaultNow">, "SQlType">, never>;
56
+ declare const Boolean: () => ColumnBuilder<boolean, SetFlag$1<Restrict<"primaryKey" | "unique" | "defaultNow">, "SQlType">, never>;
57
+ declare const Text: () => ColumnBuilder<string, SetFlag$1<Restrict<"defaultNow">, "SQlType">, never>;
58
+ declare const Uuid: () => ColumnBuilder<string, SetFlag$1<Restrict<"defaultNow">, "SQlType">, never>;
59
+ declare const DateType: () => ColumnBuilder<Date, SetFlag$1<Restrict<"default">, "SQlType">, never>;
60
+ declare const Timestamp: () => ColumnBuilder<Date, SetFlag$1<Restrict<"default">, "SQlType">, never>;
61
+ declare const Enum: <T extends string | number>(vals: readonly T[]) => ColumnBuilder<T, SetFlag$1<SetFlag$1<Restrict<"defaultNow">, "validate">, "SQlType">, never>;
62
+
63
+ declare const Json: <T extends z.ZodRawShape>(obj: T) => ColumnBuilder<z.core.$InferObjectOutput<T, {}>, SetFlag$1<Restrict<"primaryKey" | "unique" | "defaultNow">, "SQlType">, never>;
64
+ declare const Array$1: <T extends z.ZodTypeAny>(schema: T) => ColumnBuilder<z.core.output<T>[], SetFlag$1<Restrict<"primaryKey" | "unique" | "defaultNow">, "SQlType">, never>;
65
+ declare const Email: () => ColumnBuilder<string, SetFlag$1<SetFlag$1<Restrict<"defaultNow">, "SQlType">, "validate">, never>;
66
+ declare const Slug: () => ColumnBuilder<string, SetFlag$1<SetFlag$1<Restrict<"defaultNow">, "SQlType">, "validate">, never>;
67
+ declare const Color: () => ColumnBuilder<string, SetFlag$1<SetFlag$1<Restrict<"defaultNow">, "SQlType">, "validate">, never>;
68
+ declare const Bytes: () => ColumnBuilder<Uint8Array<ArrayBufferLike>, SetFlag$1<Restrict<"primaryKey" | "defaultNow">, "SQlType">, never>;
69
+ declare const Password: () => ColumnBuilder<string, SetFlag$1<Restrict<"primaryKey" | "unique" | "defaultNow">, "SQlType">, never>;
70
+ declare const GeoPoint: () => ColumnBuilder<{
71
+ latitude: number;
72
+ longitude: number;
73
+ }, SetFlag$1<Restrict<"primaryKey" | "defaultNow">, "SQlType">, never>;
74
+ declare const GeoArea: () => ColumnBuilder<{
75
+ latitude: number;
76
+ longitude: number;
77
+ radius: number;
78
+ }, SetFlag$1<Restrict<"primaryKey" | "defaultNow">, "SQlType">, never>;
79
+ declare const Table: <Name extends string, T extends Record<string, ColumnBuilder<any, any>>>(name: Name, fields: T) => T & {
80
+ __tableName: Name;
81
+ };
82
+ declare class SQLBuilder {
83
+ static BuildField(name: string, f: ColumnBuilder<any, any>): {
84
+ sql: string;
85
+ ref: boolean;
86
+ };
87
+ static BuildTable(name: string, t: Record<string, any>): string;
88
+ }
89
+
90
+ type Prettify<T> = {
91
+ [K in keyof T]: T[K];
92
+ } & {};
93
+ type SetFlag<State, Key extends keyof State> = {
94
+ [P in keyof State]: P extends Key ? true : State[P];
95
+ };
96
+ type MapToFalse<T> = {
97
+ [K in keyof T]: false;
98
+ };
99
+ type QueryMethods<TDef extends Record<string, any>> = {
100
+ limit: [n: number];
101
+ offset: [n: number];
102
+ orderBy: [col: keyof TDef | Array<keyof TDef>, dir?: "ASC" | "DESC"];
103
+ where: [w: Where<Infer<TDef>>];
104
+ };
105
+ type QueryOneMethods<TDef extends Record<string, any>> = {
106
+ where: [w: Where<Infer<TDef>>];
107
+ };
108
+ type FluentQueryBuilder<TDef extends Record<string, any>, Result, State extends Record<keyof QueryMethods<TDef> | "extended", boolean>> = {
109
+ [K in keyof QueryMethods<TDef> as State[K] extends true ? never : K]: (...args: QueryMethods<TDef>[K]) => FluentQueryBuilder<TDef, Result, SetFlag<State, K>>;
110
+ } & {
111
+ [K in "extend" as State["extended"] extends true ? never : K]: <ExtTable extends OptimaTable<any>>(table: ExtTable) => FluentQueryBuilder<TDef, Prettify<Result & Extension<TDef, ExtTable>>, SetFlag<State, "extended">>;
112
+ } & PromiseLike<Result[]>;
113
+ type FluentQueryBuilderOne<TDef extends Record<string, any>, Result, State extends Record<keyof QueryOneMethods<TDef> | "extended", boolean>> = {
114
+ [K in keyof QueryOneMethods<TDef> as State[K] extends true ? never : K]: (...args: QueryOneMethods<TDef>[K]) => FluentQueryBuilderOne<TDef, Result, SetFlag<State, K>>;
115
+ } & {
116
+ [K in "extend" as State["extended"] extends true ? never : K]: <ExtTable extends OptimaTable<any>>(table: ExtTable) => FluentQueryBuilderOne<TDef, Prettify<Result & Extension<TDef, ExtTable>>, SetFlag<State, "extended">>;
117
+ } & PromiseLike<Result | undefined>;
118
+
119
+ declare const OPS: readonly ["eq", "ne", "gt", "gte", "lt", "lte", "like", "notLike", "in", "notIn", "is", "isNot", "between", "notBetween", "startsWith", "endsWith", "contains", "regexp", "notRegexp"];
120
+ type OpKey = (typeof OPS)[number];
121
+ type ConditionNode = {
122
+ type: "condition" | "and" | "or";
123
+ op?: OpKey;
124
+ value?: any;
125
+ left?: ConditionNode;
126
+ right?: ConditionNode;
127
+ };
128
+ interface ConditionBuilder<T> {
129
+ eq(value: T): ConditionBuilder<T>;
130
+ ne(value: T): ConditionBuilder<T>;
131
+ gt(value: T): ConditionBuilder<T>;
132
+ gte(value: T): ConditionBuilder<T>;
133
+ lt(value: T): ConditionBuilder<T>;
134
+ lte(value: T): ConditionBuilder<T>;
135
+ in(value: T[]): ConditionBuilder<T>;
136
+ notIn(value: T[]): ConditionBuilder<T>;
137
+ between(value: [T, T]): ConditionBuilder<T>;
138
+ notBetween(value: [T, T]): ConditionBuilder<T>;
139
+ is(value: T | null): ConditionBuilder<T>;
140
+ isNot(value: T | null): ConditionBuilder<T>;
141
+ like(value: string): ConditionBuilder<T>;
142
+ notLike(value: string): ConditionBuilder<T>;
143
+ startsWith(value: string): ConditionBuilder<T>;
144
+ endsWith(value: string): ConditionBuilder<T>;
145
+ contains(value: string): ConditionBuilder<T>;
146
+ regexp(value: string): ConditionBuilder<T>;
147
+ notRegexp(value: string): ConditionBuilder<T>;
148
+ and(other: ConditionBuilder<T>): ConditionBuilder<T>;
149
+ or(other: ConditionBuilder<T>): ConditionBuilder<T>;
150
+ __getNode(): ConditionNode;
151
+ }
152
+ declare function cond<T>(): ConditionBuilder<T>;
153
+ declare const eq: <T>(value: T) => ConditionBuilder<T>;
154
+ declare const ne: <T>(value: T) => ConditionBuilder<T>;
155
+ declare const gt: <T>(value: T) => ConditionBuilder<T>;
156
+ declare const gte: <T>(value: T) => ConditionBuilder<T>;
157
+ declare const lt: <T>(value: T) => ConditionBuilder<T>;
158
+ declare const lte: <T>(value: T) => ConditionBuilder<T>;
159
+ declare const inOp: <T>(value: T[]) => ConditionBuilder<T>;
160
+ declare const notIn: <T>(value: T[]) => ConditionBuilder<T>;
161
+ declare const between: <T>(value: [T, T]) => ConditionBuilder<T>;
162
+ declare const notBetween: <T>(value: [T, T]) => ConditionBuilder<T>;
163
+ declare const is: <T>(value: T | null) => ConditionBuilder<T>;
164
+ declare const isNot: <T>(value: T | null) => ConditionBuilder<T>;
165
+ declare const like: <T>(value: string) => ConditionBuilder<T>;
166
+ declare const notLike: <T>(value: string) => ConditionBuilder<T>;
167
+ declare const startsWith: <T>(value: string) => ConditionBuilder<T>;
168
+ declare const endsWith: <T>(value: string) => ConditionBuilder<T>;
169
+ declare const contains: <T>(value: string) => ConditionBuilder<T>;
170
+ declare const regexp: <T>(value: string) => ConditionBuilder<T>;
171
+ declare const notRegexp: <T>(value: string) => ConditionBuilder<T>;
172
+ type FieldQuery<T> = T extends ConditionBuilder<infer U> ? T : T extends Array<any> ? T | ConditionBuilder<T> : T extends Date ? T | ConditionBuilder<T> : T extends object ? {
173
+ [K in keyof T]?: FieldQuery<T[K]>;
174
+ } | ConditionBuilder<T> : // Primitives
175
+ T | ConditionBuilder<T>;
176
+ type Where<Schema> = {
177
+ [K in keyof Schema]?: FieldQuery<Schema[K]>;
178
+ };
179
+ type GetRefSchema<Col> = Col extends ColumnBuilder<any, any, infer Ref> ? Ref : Col extends {
180
+ config: {
181
+ reference?: {
182
+ ref: string;
183
+ isMany: boolean;
184
+ };
185
+ };
186
+ } ? never : never;
187
+ type IsManyRef<RS> = RS extends {
188
+ readonly __refKind: "many";
189
+ } ? true : false;
190
+ type HasAnyManyRef<TDef> = true extends {
191
+ [K in keyof TDef]: GetRefSchema<TDef[K]> extends never ? never : IsManyRef<GetRefSchema<TDef[K]>>;
192
+ }[keyof TDef] ? true : false;
193
+ type Extension<SourceDef, TargetTable> = TargetTable extends OptimaTable<infer TargetDef> ? TargetDef extends {
194
+ __tableName: infer Name;
195
+ } ? Name extends string ? HasAnyManyRef<SourceDef> extends true ? {
196
+ [K in `$${Name}`]: Infer<TargetDef>[];
197
+ } : {
198
+ [K in `$${Name}`]: Infer<TargetDef>;
199
+ } : {} : {} : {};
200
+ type Unsubscribe = () => void;
201
+ declare class OptimaTable<TDef extends Record<string, any> = any> {
202
+ private Name;
203
+ private Connection;
204
+ private Columns;
205
+ private listeners;
206
+ private constructor();
207
+ protected notifyChange(change: any): void;
208
+ /**
209
+ * Subscribe to changes to the table.
210
+ * The callback receives the latest change as its argument.
211
+ * Returns an unsubscribe function.
212
+ */
213
+ Subscribe(fn: (change: {
214
+ event: "Add" | "AddMany" | "Delete" | "Update";
215
+ data: Partial<Infer<TDef>>;
216
+ time: Date;
217
+ }) => void): Unsubscribe;
218
+ private InitTable;
219
+ static create<T extends Record<string, ColumnBuilder<any, any>>>(name: string, Columns: T, Connection: DuckDBConnection): Promise<OptimaTable<T>>;
220
+ Get(): FluentQueryBuilder<TDef, Infer<TDef>, MapToFalse<QueryMethods<TDef>> & {
221
+ extended: false;
222
+ }>;
223
+ GetOne(): FluentQueryBuilderOne<TDef, Infer<TDef>, MapToFalse<QueryOneMethods<TDef>> & {
224
+ extended: false;
225
+ }>;
226
+ Exist(): {
227
+ where: Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T ? { [K in keyof T]: T[K]; } : never> extends boolean ? () => {} & PromiseLike<boolean> : Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never> extends any[] ? (...args: any[] & Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_2 ? { [K in keyof T_2]: T_2[K]; } : never>) => {} & PromiseLike<boolean> : (arg: Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_2 ? { [K in keyof T_2]: T_2[K]; } : never>) => {} & PromiseLike<boolean>;
228
+ } & PromiseLike<boolean>;
229
+ /**
230
+ * Add a single record.
231
+ * Returns: TSchema[] (containing the inserted record if returning is true)
232
+ */
233
+ Add(record: InferAdd<TDef>): {
234
+ returning: () => {} & PromiseLike<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T ? { [K in keyof T]: T[K]; } : never>;
235
+ } & PromiseLike<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T ? { [K in keyof T]: T[K]; } : never>;
236
+ /**
237
+ * Add multiple records.
238
+ * Returns: TSchema[]
239
+ */
240
+ AddMany(records: InferAdd<TDef>[]): {
241
+ returning: () => {} & PromiseLike<({ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T ? { [K in keyof T]: T[K]; } : never)[]>;
242
+ } & PromiseLike<({ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T ? { [K in keyof T]: T[K]; } : never)[]>;
243
+ /**
244
+ * Update records.
245
+ * Returns: TSchema[]
246
+ */
247
+ Update(record: Partial<Infer<TDef>>): {
248
+ where: Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T ? { [K in keyof T]: T[K]; } : never> extends boolean ? () => {
249
+ returning: () => {} & PromiseLike<({ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never)[]>;
250
+ } & PromiseLike<({ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never)[]> : Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never> extends any[] ? (...args: any[] & Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_2 ? { [K in keyof T_2]: T_2[K]; } : never>) => {
251
+ returning: () => {} & PromiseLike<({ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_3 ? { [K in keyof T_3]: T_3[K]; } : never)[]>;
252
+ } & PromiseLike<({ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_3 ? { [K in keyof T_3]: T_3[K]; } : never)[]> : (arg: Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_2 ? { [K in keyof T_2]: T_2[K]; } : never>) => {
253
+ returning: () => {} & PromiseLike<({ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_3 ? { [K in keyof T_3]: T_3[K]; } : never)[]>;
254
+ } & PromiseLike<({ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_3 ? { [K in keyof T_3]: T_3[K]; } : never)[]>;
255
+ returning: () => {
256
+ where: Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_2 ? { [K in keyof T_2]: T_2[K]; } : never> extends boolean ? () => {} & PromiseLike<({ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_3 ? { [K in keyof T_3]: T_3[K]; } : never)[]> : Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_3 ? { [K in keyof T_3]: T_3[K]; } : never> extends any[] ? (...args: any[] & Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_4 ? { [K in keyof T_4]: T_4[K]; } : never>) => {} & PromiseLike<({ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_5 ? { [K in keyof T_5]: T_5[K]; } : never)[]> : (arg: Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_4 ? { [K in keyof T_4]: T_4[K]; } : never>) => {} & PromiseLike<({ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_5 ? { [K in keyof T_5]: T_5[K]; } : never)[]>;
257
+ } & PromiseLike<({ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_4 ? { [K in keyof T_4]: T_4[K]; } : never)[]>;
258
+ } & PromiseLike<({ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_2 ? { [K in keyof T_2]: T_2[K]; } : never)[]>;
259
+ /**
260
+ * Delete records.
261
+ * Returns: TSchema | undefined (The code logic returns index [0], implies single delete or returning first)
262
+ */
263
+ Delete(): {
264
+ where: Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T ? { [K in keyof T]: T[K]; } : never> extends boolean ? () => {
265
+ returning: () => {} & PromiseLike<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never>;
266
+ } & PromiseLike<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never> : Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never> extends any[] ? (...args: any[] & Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_2 ? { [K in keyof T_2]: T_2[K]; } : never>) => {
267
+ returning: () => {} & PromiseLike<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_3 ? { [K in keyof T_3]: T_3[K]; } : never>;
268
+ } & PromiseLike<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_3 ? { [K in keyof T_3]: T_3[K]; } : never> : (arg: Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_2 ? { [K in keyof T_2]: T_2[K]; } : never>) => {
269
+ returning: () => {} & PromiseLike<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_3 ? { [K in keyof T_3]: T_3[K]; } : never>;
270
+ } & PromiseLike<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_3 ? { [K in keyof T_3]: T_3[K]; } : never>;
271
+ returning: () => {
272
+ where: Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_2 ? { [K in keyof T_2]: T_2[K]; } : never> extends boolean ? () => {} & PromiseLike<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_3 ? { [K in keyof T_3]: T_3[K]; } : never> : Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_3 ? { [K in keyof T_3]: T_3[K]; } : never> extends any[] ? (...args: any[] & Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_4 ? { [K in keyof T_4]: T_4[K]; } : never>) => {} & PromiseLike<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_5 ? { [K in keyof T_5]: T_5[K]; } : never> : (arg: Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_4 ? { [K in keyof T_4]: T_4[K]; } : never>) => {} & PromiseLike<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_5 ? { [K in keyof T_5]: T_5[K]; } : never>;
273
+ } & PromiseLike<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_4 ? { [K in keyof T_4]: T_4[K]; } : never>;
274
+ } & PromiseLike<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_2 ? { [K in keyof T_2]: T_2[K]; } : never>;
275
+ Count(): {
276
+ where: Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T ? { [K in keyof T]: T[K]; } : never> extends boolean ? () => {} & PromiseLike<number> : Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never> extends any[] ? (...args: any[] & Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_2 ? { [K in keyof T_2]: T_2[K]; } : never>) => {} & PromiseLike<number> : (arg: Where<{ [K_1 in keyof TDef as K_1 extends `__${string}` ? never : TDef[K_1] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? K_1 : never : never]: TDef[K_1] extends ColumnBuilder<infer U, any, any> ? U : never; } & { [K_2 in keyof TDef as K_2 extends `__${string}` ? never : TDef[K_2] extends ColumnBuilder<any, infer C extends ColumnConfig, any> ? C["notnull"] extends true ? never : K_2 : never]: TDef[K_2] extends ColumnBuilder<infer U, any, any> ? U : never; } extends infer T_2 ? { [K in keyof T_2]: T_2[K]; } : never>) => {} & PromiseLike<number>;
277
+ } & PromiseLike<number>;
278
+ /**
279
+ * Auto-resolves relationships based on schema 'reference'
280
+ */
281
+ private ResolveJoin;
282
+ private Validate;
283
+ private Transform;
284
+ private BuildWhereClause;
285
+ private BuildSelect;
286
+ private BuildInsert;
287
+ private BuildUpdate;
288
+ private BuildDelete;
289
+ private parseRecursive;
290
+ private FormatOut;
291
+ }
292
+
293
+ type DBRow = Record<string, unknown>;
294
+ type SchemaConfig = Record<string, any>;
295
+ declare class OptimaDB<T extends Record<string, OptimaTable>> {
296
+ private instance;
297
+ private connection;
298
+ Tables: T;
299
+ constructor(instance: DuckDBInstance, connection: DuckDBConnection, tables: T);
300
+ /**
301
+ * Initializes the database, connects, detects schema changes,
302
+ * runs migrations, and returns the DB instance.
303
+ */
304
+ static Open<TSchema extends SchemaConfig>(name: string, schema: TSchema, options?: {
305
+ MemoryLimit?: string;
306
+ ThreadCount?: number;
307
+ }): Promise<OptimaDB<{
308
+ [K in keyof TSchema]: OptimaTable<TSchema[K]>;
309
+ }>>;
310
+ /**
311
+ * Executes a raw SQL query and returns rows as objects.
312
+ */
313
+ execute(sql: string): Promise<DBRow[]>;
314
+ getTables(): Promise<string[]>;
315
+ getDiskSize(): Promise<unknown>;
316
+ /**
317
+ * Runs a function within a transaction.
318
+ * Re-throws error after rollback so caller handles logic failure.
319
+ */
320
+ transaction<R>(fn: () => Promise<R>): Promise<R>;
321
+ }
322
+
323
+ export { Array$1 as Array, BigInt, Boolean, Bytes, Color, type ColumnBuilder, type ColumnConfig, type ConditionBuilder, DateType, Email, Enum, Float, GeoArea, GeoPoint, type Infer, type InferAdd, type InferColumnType, Int, Json, type Many, type One, OptimaDB, Password, type Prettify$1 as Prettify, type Restrict, SQLBuilder, Slug, Table, Text, Timestamp, Uuid, between, cond, contains, endsWith, eq, gt, gte, inOp, is, isNot, like, lt, lte, ne, notBetween, notIn, notLike, notRegexp, refHelpers, regexp, startsWith };