orchid-orm 1.6.39 → 1.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.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as pqb from 'pqb';
2
- import { BelongsToRelation, HasManyRelation, HasOneRelation, Db, Adapter, FromArgs, Query, FromResult, AdapterOptions, QueryLogOptions, NoPrimaryKeyOption, HasAndBelongsToManyRelation, SetQueryTableAlias, defaultsKey, BaseRelation, RelationQuery, SetQueryReturnsOne, SetQueryReturnsOneOptional, SetQueryReturnsAll, DefaultColumnTypes, ColumnsShape, WhereResult, MergeQuery, SetQueryReturns, QueryReturnType } from 'pqb';
2
+ import { BelongsToRelation, HasManyRelation, HasOneRelation, Db, IsolationLevel, TransactionOptions, Adapter, FromArgs, Query, FromResult, AdapterOptions, QueryLogOptions, NoPrimaryKeyOption, HasAndBelongsToManyRelation, SetQueryTableAlias, defaultsKey, BaseRelation, RelationQuery, SetQueryReturnsOne, SetQueryReturnsOneOptional, SetQueryReturnsAll, DefaultColumnTypes, ColumnsShape, WhereResult, MergeQuery, SetQueryReturns, QueryReturnType } from 'pqb';
3
3
  export { OrchidOrmError, OrchidOrmInternalError, columnTypes } from 'pqb';
4
4
  import * as orchid_core from 'orchid-core';
5
5
  import { StringKey, EmptyObject, ColumnTypesBase, ColumnShapeOutput, SetOptional } from 'orchid-core';
@@ -10,7 +10,7 @@ interface BelongsTo extends RelationThunkBase {
10
10
  returns: 'one';
11
11
  options: BelongsToRelation['options'];
12
12
  }
13
- declare type BelongsToInfo<T extends Table, Relation extends BelongsTo, FK extends string = Relation['options']['foreignKey']> = {
13
+ type BelongsToInfo<T extends Table, Relation extends BelongsTo, FK extends string = Relation['options']['foreignKey']> = {
14
14
  params: Record<FK, T['columns']['shape'][FK]['type']>;
15
15
  populate: never;
16
16
  chainedCreate: false;
@@ -22,7 +22,7 @@ interface HasMany extends RelationThunkBase {
22
22
  returns: 'many';
23
23
  options: HasManyRelation['options'];
24
24
  }
25
- declare type HasManyInfo<T extends Table, Relations extends RelationThunks, Relation extends HasMany> = {
25
+ type HasManyInfo<T extends Table, Relations extends RelationThunks, Relation extends HasMany> = {
26
26
  params: Relation['options'] extends {
27
27
  primaryKey: string;
28
28
  } ? Record<Relation['options']['primaryKey'], T['columns']['shape'][Relation['options']['primaryKey']]['type']> : Relation['options'] extends {
@@ -42,7 +42,7 @@ interface HasOne extends RelationThunkBase {
42
42
  returns: 'one';
43
43
  options: HasOneRelation['options'];
44
44
  }
45
- declare type HasOneInfo<T extends Table, Relations extends RelationThunks, Relation extends HasOne> = {
45
+ type HasOneInfo<T extends Table, Relations extends RelationThunks, Relation extends HasOne> = {
46
46
  params: Relation['options'] extends {
47
47
  primaryKey: string;
48
48
  } ? Record<Relation['options']['primaryKey'], T['columns']['shape'][Relation['options']['primaryKey']]['type']> : Relation['options'] extends {
@@ -59,9 +59,12 @@ declare type HasOneInfo<T extends Table, Relations extends RelationThunks, Relat
59
59
 
60
60
  declare function transaction<T extends {
61
61
  $queryBuilder: Db;
62
- }, Result>(this: T, fn: (db: T) => Promise<Result>): Promise<Result>;
62
+ }, Result>(this: T, fn: () => Promise<Result>): Promise<Result>;
63
+ declare function transaction<T extends {
64
+ $queryBuilder: Db;
65
+ }, Result>(this: T, options: IsolationLevel | TransactionOptions, fn: () => Promise<Result>): Promise<Result>;
63
66
 
64
- declare type OrchidORM<T extends TableClasses> = {
67
+ type OrchidORM<T extends TableClasses> = {
65
68
  [K in keyof T]: DbTable<T[K]>;
66
69
  } & {
67
70
  $transaction: typeof transaction;
@@ -82,7 +85,7 @@ interface HasAndBelongsToMany extends RelationThunkBase {
82
85
  returns: 'many';
83
86
  options: HasAndBelongsToManyRelation['options'];
84
87
  }
85
- declare type HasAndBelongsToManyInfo<T extends Table, Relation extends HasAndBelongsToMany> = {
88
+ type HasAndBelongsToManyInfo<T extends Table, Relation extends HasAndBelongsToMany> = {
86
89
  params: Record<Relation['options']['primaryKey'], T['columns']['shape'][Relation['options']['primaryKey']]['type']>;
87
90
  populate: never;
88
91
  chainedCreate: true;
@@ -95,9 +98,9 @@ interface RelationThunkBase {
95
98
  fn(): TableClass;
96
99
  options: BaseRelation['options'];
97
100
  }
98
- declare type RelationThunk = BelongsTo | HasOne | HasMany | HasAndBelongsToMany;
99
- declare type RelationThunks = Record<string, RelationThunk>;
100
- declare type Relation<T extends Table, Relations extends RelationThunks, K extends StringKey<keyof Relations>, M extends Query = SetQueryTableAlias<DbTable<ReturnType<Relations[K]['fn']>>, K>, Info extends RelationInfo = RelationInfo<T, Relations, Relations[K]>> = {
101
+ type RelationThunk = BelongsTo | HasOne | HasMany | HasAndBelongsToMany;
102
+ type RelationThunks = Record<string, RelationThunk>;
103
+ type Relation<T extends Table, Relations extends RelationThunks, K extends StringKey<keyof Relations>, M extends Query = SetQueryTableAlias<DbTable<ReturnType<Relations[K]['fn']>>, K>, Info extends RelationInfo = RelationInfo<T, Relations, Relations[K]>> = {
101
104
  type: Relations[K]['type'];
102
105
  returns: Relations[K]['returns'];
103
106
  key: K;
@@ -111,33 +114,33 @@ declare type Relation<T extends Table, Relations extends RelationThunks, K exten
111
114
  primaryKey: string;
112
115
  options: Relations[K]['options'];
113
116
  };
114
- declare type RelationScopeOrTable<Relation extends RelationThunkBase> = Relation['options']['scope'] extends (q: Query) => Query ? ReturnType<Relation['options']['scope']> : DbTable<ReturnType<Relation['fn']>>;
115
- declare type RelationInfo<T extends Table = Table, Relations extends RelationThunks = RelationThunks, Relation extends RelationThunk = RelationThunk> = Relation extends BelongsTo ? BelongsToInfo<T, Relation> : Relation extends HasOne ? HasOneInfo<T, Relations, Relation> : Relation extends HasMany ? HasManyInfo<T, Relations, Relation> : Relation extends HasAndBelongsToMany ? HasAndBelongsToManyInfo<T, Relation> : never;
116
- declare type MapRelation<T extends Table, Relations extends RelationThunks, RelationName extends keyof Relations, Relation extends RelationThunk = Relations[RelationName], RelatedQuery extends Query = RelationScopeOrTable<Relation>, Info extends {
117
+ type RelationScopeOrTable<Relation extends RelationThunkBase> = Relation['options']['scope'] extends (q: Query) => Query ? ReturnType<Relation['options']['scope']> : DbTable<ReturnType<Relation['fn']>>;
118
+ type RelationInfo<T extends Table = Table, Relations extends RelationThunks = RelationThunks, Relation extends RelationThunk = RelationThunk> = Relation extends BelongsTo ? BelongsToInfo<T, Relation> : Relation extends HasOne ? HasOneInfo<T, Relations, Relation> : Relation extends HasMany ? HasManyInfo<T, Relations, Relation> : Relation extends HasAndBelongsToMany ? HasAndBelongsToManyInfo<T, Relation> : never;
119
+ type MapRelation<T extends Table, Relations extends RelationThunks, RelationName extends keyof Relations, Relation extends RelationThunk = Relations[RelationName], RelatedQuery extends Query = RelationScopeOrTable<Relation>, Info extends {
117
120
  params: Record<string, unknown>;
118
121
  populate: string;
119
122
  chainedCreate: boolean;
120
123
  chainedDelete: boolean;
121
124
  } = RelationInfo<T, Relations, Relation>> = RelationQuery<RelationName, Info['params'], Info['populate'], Relation['returns'] extends 'one' ? Relation['options']['required'] extends true ? SetQueryReturnsOne<RelatedQuery> : SetQueryReturnsOneOptional<RelatedQuery> : SetQueryReturnsAll<RelatedQuery>, Relation['options']['required'] extends boolean ? Relation['options']['required'] : false, Info['chainedCreate'], Info['chainedDelete']>;
122
- declare type MapRelations<T extends Table> = 'relations' extends keyof T ? T['relations'] extends RelationThunks ? {
125
+ type MapRelations<T extends Table> = 'relations' extends keyof T ? T['relations'] extends RelationThunks ? {
123
126
  [K in keyof T['relations']]: MapRelation<T, T['relations'], K>;
124
127
  } : EmptyObject : EmptyObject;
125
128
 
126
- declare type TableClass<T extends Table = Table> = new () => T;
127
- declare type TableClasses = Record<string, TableClass>;
128
- declare type TableToDb<T extends Table> = Db<T['table'], T['columns']['shape'], 'relations' extends keyof T ? T['relations'] extends RelationThunks ? {
129
+ type TableClass<T extends Table = Table> = new () => T;
130
+ type TableClasses = Record<string, TableClass>;
131
+ type TableToDb<T extends Table> = Db<T['table'], T['columns']['shape'], 'relations' extends keyof T ? T['relations'] extends RelationThunks ? {
129
132
  [K in StringKey<keyof T['relations']>]: Relation<T, T['relations'], K>;
130
133
  } : Query['relations'] : Query['relations'], T['columnTypes']> & {
131
134
  definedAs: string;
132
135
  db: OrchidORM<TableClasses>;
133
136
  };
134
- declare type DbTable<T extends TableClass> = TableToDb<InstanceType<T>> & Omit<MapRelations<InstanceType<T>>, keyof Query>;
135
- declare type TableConfig = {
137
+ type DbTable<T extends TableClass> = TableToDb<InstanceType<T>> & Omit<MapRelations<InstanceType<T>>, keyof Query>;
138
+ type TableConfig = {
136
139
  shape: ColumnsShape;
137
140
  type: unknown;
138
141
  };
139
- declare type ScopeFn<Related extends TableClass, Scope extends Query> = (q: DbTable<Related>) => Scope;
140
- declare type Table = {
142
+ type ScopeFn<Related extends TableClass, Scope extends Query> = (q: DbTable<Related>) => Scope;
143
+ type Table = {
141
144
  table: string;
142
145
  columns: TableConfig;
143
146
  schema?: string;
@@ -159,8 +162,8 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
159
162
  };
160
163
  timestamp(): T;
161
164
  }) => {
162
- createdAt: orchid_core.ColumnWithDefault<T, orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>>;
163
- updatedAt: orchid_core.ColumnWithDefault<T, orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>>;
165
+ createdAt: orchid_core.ColumnWithDefault<T, orchid_core.RawExpression>;
166
+ updatedAt: orchid_core.ColumnWithDefault<T, orchid_core.RawExpression>;
164
167
  };
165
168
  timestampsSnakeCase: <T_1 extends orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>(this: {
166
169
  name(name: string): {
@@ -168,8 +171,8 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
168
171
  };
169
172
  timestamp(): T_1;
170
173
  }) => {
171
- createdAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>>;
172
- updatedAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>>;
174
+ createdAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawExpression>;
175
+ updatedAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawExpression>;
173
176
  };
174
177
  name: typeof orchid_core.name;
175
178
  raw: (sql: string, values?: false | Record<string, unknown> | undefined) => orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>;
@@ -240,12 +243,12 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
240
243
  nativeEnum: <T_9 extends orchid_core.EnumLike>(givenEnum: T_9) => orchid_core.JSONNativeEnum<T_9>;
241
244
  nullable: <T_10 extends orchid_core.JSONTypeAny>(type: T_10) => orchid_core.JSONNullable<T_10>;
242
245
  nullish: <T_11 extends orchid_core.JSONTypeAny>(type: T_11) => orchid_core.JSONNullish<T_11>;
243
- object: <T_12 extends orchid_core.JSONObjectShape, UnknownKeys extends orchid_core.UnknownKeysParam = "strip", Catchall extends orchid_core.JSONTypeAny = orchid_core.JSONTypeAny>(shape: T_12) => orchid_core.JSONObject<T_12, UnknownKeys, Catchall, orchid_core.JSONTypeAny extends Catchall ? orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_13 extends object ? { [k in keyof T_13]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never : (orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_13 extends object ? { [k in keyof T_13]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never) & {
246
+ object: <T_12 extends orchid_core.JSONObjectShape, UnknownKeys extends orchid_core.UnknownKeysParam = "strip", Catchall extends orchid_core.JSONTypeAny = orchid_core.JSONTypeAny>(shape: T_12) => orchid_core.JSONObject<T_12, UnknownKeys, Catchall, orchid_core.JSONTypeAny extends Catchall ? orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_13 extends object ? { [k in keyof T_13]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never : (orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_16 extends object ? { [k in keyof T_16]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never) & {
244
247
  [k: string]: Catchall["type"];
245
- } extends infer T_14 extends object ? { [k_2 in keyof T_14]: ((orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_13 extends object ? { [k in keyof T_13]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never) & {
248
+ } extends infer T_14 extends object ? { [k_2 in keyof T_14]: ((orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_15 extends object ? { [k in keyof T_15]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never) & {
246
249
  [k: string]: Catchall["type"];
247
250
  })[k_2]; } : never>;
248
- optional: <T_15 extends orchid_core.JSONTypeAny>(type: T_15) => orchid_core.JSONOptional<T_15>;
251
+ optional: <T_17 extends orchid_core.JSONTypeAny>(type: T_17) => orchid_core.JSONOptional<T_17>;
249
252
  record: typeof orchid_core.record;
250
253
  }) => Type)): pqb.JSONColumn<Type>;
251
254
  jsonText(this: ColumnTypesBase): pqb.JSONTextColumn;
@@ -257,29 +260,29 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
257
260
  } | undefined): {};
258
261
  index(columns: orchid_core.MaybeArray<string | pqb.IndexColumnOptions>, options?: pqb.IndexOptions): {};
259
262
  unique(columns: orchid_core.MaybeArray<string | pqb.IndexColumnOptions>, options?: pqb.IndexOptions): {};
260
- constraint<Table_1 extends string | (() => pqb.ForeignKeyTable), Columns extends Table_1 extends () => pqb.ForeignKeyTable ? [Exclude<keyof InstanceType<ReturnType<Table_1>>["columns"]["shape"], number | symbol>, ...Exclude<keyof InstanceType<ReturnType<Table_1>>["columns"]["shape"], number | symbol>[]] : [string, ...string[]]>({ name, references, check, dropMode, }: {
263
+ constraint<Table_1 extends string | (() => pqb.ForeignKeyTable), Columns extends Table_1 extends () => pqb.ForeignKeyTable ? [pqb.ColumnNameOfTable<ReturnType<Table_1>>, ...pqb.ColumnNameOfTable<ReturnType<Table_1>>[]] : [string, ...string[]]>({ name, references, check, dropMode, }: {
261
264
  name?: string | undefined;
262
265
  references?: [columns: string[], fnOrTable: Table_1, foreignColumns: Columns, options?: pqb.ForeignKeyOptions | undefined] | undefined;
263
- check?: orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>> | undefined;
266
+ check?: orchid_core.RawExpression | undefined;
264
267
  dropMode?: pqb.DropMode | undefined;
265
268
  }): {};
266
- foreignKey<Table_2 extends string | (() => pqb.ForeignKeyTable), Columns_1 extends Table_2 extends () => pqb.ForeignKeyTable ? [Exclude<keyof InstanceType<ReturnType<Table_2>>["columns"]["shape"], number | symbol>, ...Exclude<keyof InstanceType<ReturnType<Table_2>>["columns"]["shape"], number | symbol>[]] : [string, ...string[]]>(columns: string[], fnOrTable: Table_2, foreignColumns: Columns_1, options?: (pqb.ForeignKeyOptions & {
269
+ foreignKey<Table_2 extends string | (() => pqb.ForeignKeyTable), Columns_1 extends Table_2 extends () => pqb.ForeignKeyTable ? [pqb.ColumnNameOfTable<ReturnType<Table_2>>, ...pqb.ColumnNameOfTable<ReturnType<Table_2>>[]] : [string, ...string[]]>(columns: string[], fnOrTable: Table_2, foreignColumns: Columns_1, options?: (pqb.ForeignKeyOptions & {
267
270
  name?: string | undefined;
268
271
  dropMode?: pqb.DropMode | undefined;
269
272
  }) | undefined): {};
270
- check(check: orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>): {};
273
+ check(check: orchid_core.RawExpression): {};
271
274
  } : CT;
272
275
  noPrimaryKey?: boolean | undefined;
273
276
  snakeCase: boolean | undefined;
274
- setColumns: <T_16 extends ColumnsShape>(fn: (t: ColumnTypesBase extends CT ? {
277
+ setColumns: <T_18 extends ColumnsShape>(fn: (t: ColumnTypesBase extends CT ? {
275
278
  timestamps: <T extends orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>(this: {
276
279
  name(name: string): {
277
280
  timestamp(): T;
278
281
  };
279
282
  timestamp(): T;
280
283
  }) => {
281
- createdAt: orchid_core.ColumnWithDefault<T, orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>>;
282
- updatedAt: orchid_core.ColumnWithDefault<T, orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>>;
284
+ createdAt: orchid_core.ColumnWithDefault<T, orchid_core.RawExpression>;
285
+ updatedAt: orchid_core.ColumnWithDefault<T, orchid_core.RawExpression>;
283
286
  };
284
287
  timestampsSnakeCase: <T_1 extends orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>(this: {
285
288
  name(name: string): {
@@ -287,8 +290,8 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
287
290
  };
288
291
  timestamp(): T_1;
289
292
  }) => {
290
- createdAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>>;
291
- updatedAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>>;
293
+ createdAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawExpression>;
294
+ updatedAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawExpression>;
292
295
  };
293
296
  name: typeof orchid_core.name;
294
297
  raw: (sql: string, values?: false | Record<string, unknown> | undefined) => orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>;
@@ -359,12 +362,12 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
359
362
  nativeEnum: <T_9 extends orchid_core.EnumLike>(givenEnum: T_9) => orchid_core.JSONNativeEnum<T_9>;
360
363
  nullable: <T_10 extends orchid_core.JSONTypeAny>(type: T_10) => orchid_core.JSONNullable<T_10>;
361
364
  nullish: <T_11 extends orchid_core.JSONTypeAny>(type: T_11) => orchid_core.JSONNullish<T_11>;
362
- object: <T_12 extends orchid_core.JSONObjectShape, UnknownKeys extends orchid_core.UnknownKeysParam = "strip", Catchall extends orchid_core.JSONTypeAny = orchid_core.JSONTypeAny>(shape: T_12) => orchid_core.JSONObject<T_12, UnknownKeys, Catchall, orchid_core.JSONTypeAny extends Catchall ? orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_13 extends object ? { [k in keyof T_13]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never : (orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_13 extends object ? { [k in keyof T_13]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never) & {
365
+ object: <T_12 extends orchid_core.JSONObjectShape, UnknownKeys extends orchid_core.UnknownKeysParam = "strip", Catchall extends orchid_core.JSONTypeAny = orchid_core.JSONTypeAny>(shape: T_12) => orchid_core.JSONObject<T_12, UnknownKeys, Catchall, orchid_core.JSONTypeAny extends Catchall ? orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_19 extends object ? { [k in keyof T_19]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never : (orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_22 extends object ? { [k in keyof T_22]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never) & {
363
366
  [k: string]: Catchall["type"];
364
- } extends infer T_14 extends object ? { [k_2 in keyof T_14]: ((orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_13 extends object ? { [k in keyof T_13]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never) & {
367
+ } extends infer T_20 extends object ? { [k_2 in keyof T_20]: ((orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_21 extends object ? { [k in keyof T_21]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never) & {
365
368
  [k: string]: Catchall["type"];
366
369
  })[k_2]; } : never>;
367
- optional: <T_15 extends orchid_core.JSONTypeAny>(type: T_15) => orchid_core.JSONOptional<T_15>;
370
+ optional: <T_17 extends orchid_core.JSONTypeAny>(type: T_17) => orchid_core.JSONOptional<T_17>;
368
371
  record: typeof orchid_core.record;
369
372
  }) => Type)): pqb.JSONColumn<Type>;
370
373
  jsonText(this: ColumnTypesBase): pqb.JSONTextColumn;
@@ -376,20 +379,20 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
376
379
  } | undefined): {};
377
380
  index(columns: orchid_core.MaybeArray<string | pqb.IndexColumnOptions>, options?: pqb.IndexOptions): {};
378
381
  unique(columns: orchid_core.MaybeArray<string | pqb.IndexColumnOptions>, options?: pqb.IndexOptions): {};
379
- constraint<Table_1 extends string | (() => pqb.ForeignKeyTable), Columns extends Table_1 extends () => pqb.ForeignKeyTable ? [Exclude<keyof InstanceType<ReturnType<Table_1>>["columns"]["shape"], number | symbol>, ...Exclude<keyof InstanceType<ReturnType<Table_1>>["columns"]["shape"], number | symbol>[]] : [string, ...string[]]>({ name, references, check, dropMode, }: {
382
+ constraint<Table_1 extends string | (() => pqb.ForeignKeyTable), Columns extends Table_1 extends () => pqb.ForeignKeyTable ? [pqb.ColumnNameOfTable<ReturnType<Table_1>>, ...pqb.ColumnNameOfTable<ReturnType<Table_1>>[]] : [string, ...string[]]>({ name, references, check, dropMode, }: {
380
383
  name?: string | undefined;
381
384
  references?: [columns: string[], fnOrTable: Table_1, foreignColumns: Columns, options?: pqb.ForeignKeyOptions | undefined] | undefined;
382
- check?: orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>> | undefined;
385
+ check?: orchid_core.RawExpression | undefined;
383
386
  dropMode?: pqb.DropMode | undefined;
384
387
  }): {};
385
- foreignKey<Table_2 extends string | (() => pqb.ForeignKeyTable), Columns_1 extends Table_2 extends () => pqb.ForeignKeyTable ? [Exclude<keyof InstanceType<ReturnType<Table_2>>["columns"]["shape"], number | symbol>, ...Exclude<keyof InstanceType<ReturnType<Table_2>>["columns"]["shape"], number | symbol>[]] : [string, ...string[]]>(columns: string[], fnOrTable: Table_2, foreignColumns: Columns_1, options?: (pqb.ForeignKeyOptions & {
388
+ foreignKey<Table_2 extends string | (() => pqb.ForeignKeyTable), Columns_1 extends Table_2 extends () => pqb.ForeignKeyTable ? [pqb.ColumnNameOfTable<ReturnType<Table_2>>, ...pqb.ColumnNameOfTable<ReturnType<Table_2>>[]] : [string, ...string[]]>(columns: string[], fnOrTable: Table_2, foreignColumns: Columns_1, options?: (pqb.ForeignKeyOptions & {
386
389
  name?: string | undefined;
387
390
  dropMode?: pqb.DropMode | undefined;
388
391
  }) | undefined): {};
389
- check(check: orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>): {};
390
- } : CT) => T_16) => {
391
- shape: T_16;
392
- type: ColumnShapeOutput<T_16>;
392
+ check(check: orchid_core.RawExpression): {};
393
+ } : CT) => T_18) => {
394
+ shape: T_18;
395
+ type: ColumnShapeOutput<T_18>;
393
396
  };
394
397
  belongsTo<Self extends any, Related extends TableClass<Table>, Scope extends Query, Options extends {
395
398
  primaryKey: keyof InstanceType<Related>["columns"]["shape"];
@@ -449,20 +452,20 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
449
452
  };
450
453
  };
451
454
 
452
- declare type QueryMethods<T extends Query> = Record<string, (q: T, ...args: any[]) => any>;
453
- declare type QueryOne<T extends Query> = SetQueryReturns<T, Exclude<QueryReturnType, 'all'>>;
454
- declare type MethodsBase<T extends Query> = {
455
+ type QueryMethods<T extends Query> = Record<string, (q: T, ...args: any[]) => any>;
456
+ type QueryOne<T extends Query> = SetQueryReturns<T, Exclude<QueryReturnType, 'all'>>;
457
+ type MethodsBase<T extends Query> = {
455
458
  queryMethods?: QueryMethods<T>;
456
459
  queryOneMethods?: QueryMethods<QueryOne<T>>;
457
460
  queryWithWhereMethods?: QueryMethods<WhereResult<T>>;
458
461
  queryOneWithWhereMethods?: QueryMethods<QueryOne<WhereResult<T>>>;
459
462
  methods?: Record<string, unknown>;
460
463
  };
461
- declare type MapQueryMethods<T extends Query, BaseQuery extends Query, Methods> = Methods extends QueryMethods<T> ? {
464
+ type MapQueryMethods<T extends Query, BaseQuery extends Query, Methods> = Methods extends QueryMethods<T> ? {
462
465
  [K in keyof Methods]: Methods[K] extends (q: any, ...args: infer Args) => infer Result ? <T extends BaseQuery>(this: T, ...args: Args) => Result extends Query ? MergeQuery<T, Result> : Result : never;
463
466
  } : EmptyObject;
464
- declare type MapMethods<T extends Query, Methods extends MethodsBase<T>> = MapQueryMethods<T, Query, Methods['queryMethods']> & MapQueryMethods<QueryOne<T>, QueryOne<Query>, Methods['queryOneMethods']> & MapQueryMethods<WhereResult<T>, WhereResult<Query>, Methods['queryWithWhereMethods']> & MapQueryMethods<QueryOne<WhereResult<T>>, QueryOne<WhereResult<Query>>, Methods['queryOneWithWhereMethods']> & (Methods['methods'] extends Record<string, unknown> ? Methods['methods'] : EmptyObject);
465
- declare type Repo<T extends Query, Methods extends MethodsBase<T>, Mapped = MapMethods<T, Methods>> = (<Q extends {
467
+ type MapMethods<T extends Query, Methods extends MethodsBase<T>> = MapQueryMethods<T, Query, Methods['queryMethods']> & MapQueryMethods<QueryOne<T>, QueryOne<Query>, Methods['queryOneMethods']> & MapQueryMethods<WhereResult<T>, WhereResult<Query>, Methods['queryWithWhereMethods']> & MapQueryMethods<QueryOne<WhereResult<T>>, QueryOne<WhereResult<Query>>, Methods['queryOneWithWhereMethods']> & (Methods['methods'] extends Record<string, unknown> ? Methods['methods'] : EmptyObject);
468
+ type Repo<T extends Query, Methods extends MethodsBase<T>, Mapped = MapMethods<T, Methods>> = (<Q extends {
466
469
  table: T['table'];
467
470
  shape: T['shape'];
468
471
  }>(q: Q) => Q & Mapped) & T & Mapped;
@@ -470,7 +473,7 @@ declare const createRepo: <T extends Query, Methods extends MethodsBase<T>>(tabl
470
473
 
471
474
  declare class AppCodeUpdaterError extends Error {
472
475
  }
473
- declare type AppCodeUpdaterConfig = {
476
+ type AppCodeUpdaterConfig = {
474
477
  tablePath(tableName: string): string;
475
478
  baseTablePath: string;
476
479
  baseTableName: string;