orchid-orm 1.9.10 → 1.9.12

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
@@ -150,7 +150,7 @@ type Table = {
150
150
  noPrimaryKey?: boolean;
151
151
  filePath: string;
152
152
  };
153
- declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snakeCase, filePath, }?: {
153
+ declare const createBaseTable: <CT extends Record<string, orchid_core.AnyColumnTypeCreator>>({ columnTypes, snakeCase, filePath, }?: {
154
154
  columnTypes?: CT | ((t: DefaultColumnTypes) => CT) | undefined;
155
155
  snakeCase?: boolean | undefined;
156
156
  filePath?: string | undefined;
@@ -161,7 +161,7 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
161
161
  schema?: string | undefined;
162
162
  noPrimaryKey?: boolean | undefined;
163
163
  snakeCase: boolean | undefined;
164
- columnTypes: ColumnTypesBase extends CT ? {
164
+ columnTypes: Record<string, orchid_core.AnyColumnTypeCreator> extends CT ? {
165
165
  timestamps: <T extends orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>(this: {
166
166
  name(name: string): {
167
167
  timestamp(): T;
@@ -182,49 +182,49 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
182
182
  };
183
183
  name: typeof orchid_core.name;
184
184
  raw: (sql: string, values?: false | Record<string, unknown> | undefined) => orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>;
185
- smallint(this: ColumnTypesBase): pqb.SmallIntColumn;
186
- integer(this: ColumnTypesBase): pqb.IntegerColumn;
187
- bigint(this: ColumnTypesBase): pqb.BigIntColumn;
188
- numeric<Precision extends number | undefined = undefined, Scale extends number | undefined = undefined>(this: ColumnTypesBase, precision?: Precision | undefined, scale?: Scale | undefined): pqb.DecimalColumn<Precision, Scale>;
189
- decimal<Precision_1 extends number | undefined = undefined, Scale_1 extends number | undefined = undefined>(this: ColumnTypesBase, precision?: Precision_1 | undefined, scale?: Scale_1 | undefined): pqb.DecimalColumn<Precision_1, Scale_1>;
190
- real(this: ColumnTypesBase): pqb.RealColumn;
191
- doublePrecision(this: ColumnTypesBase): pqb.DoublePrecisionColumn;
192
- identity(this: ColumnTypesBase, options?: pqb.TableData.Identity | undefined): pqb.IntegerColumn;
193
- smallSerial(this: ColumnTypesBase): pqb.SmallSerialColumn;
194
- serial(this: ColumnTypesBase): pqb.SerialColumn;
195
- bigSerial(this: ColumnTypesBase): pqb.BigSerialColumn;
196
- money(this: ColumnTypesBase): pqb.MoneyColumn;
197
- varchar<Limit extends number | undefined = undefined>(this: ColumnTypesBase, limit?: Limit | undefined): pqb.VarCharColumn<Limit>;
198
- char<Limit_1 extends number | undefined = undefined>(this: ColumnTypesBase, limit?: Limit_1 | undefined): pqb.CharColumn<Limit_1>;
199
- text: (this: ColumnTypesBase, min: number, max: number) => pqb.TextColumn;
200
- string: (this: ColumnTypesBase, min: number, max: number) => pqb.TextColumn;
201
- citext(this: ColumnTypesBase, min: number, max: number): pqb.CitextColumn;
202
- bytea(this: ColumnTypesBase): pqb.ByteaColumn;
203
- date(this: ColumnTypesBase): pqb.DateColumn;
204
- timestampWithoutTimeZone<Precision_2 extends number>(this: ColumnTypesBase, precision?: Precision_2 | undefined): pqb.TimestampColumn<Precision_2>;
205
- timestamp<Precision_3 extends number | undefined = undefined>(this: ColumnTypesBase, precision?: Precision_3 | undefined): pqb.TimestampTzColumn<number>;
206
- time<Precision_4 extends number | undefined = undefined>(this: ColumnTypesBase, precision?: Precision_4 | undefined): pqb.TimeColumn<Precision_4>;
207
- interval<Fields extends string | undefined = undefined, Precision_5 extends number | undefined = undefined>(this: ColumnTypesBase, fields?: Fields | undefined, precision?: Precision_5 | undefined): pqb.IntervalColumn<Fields, Precision_5>;
208
- boolean(this: ColumnTypesBase): pqb.BooleanColumn;
209
- enum<U extends string, T_2 extends [U, ...U[]]>(this: ColumnTypesBase, dataType: string, type: T_2): pqb.EnumColumn<U, T_2>;
210
- point(this: ColumnTypesBase): pqb.PointColumn;
211
- line(this: ColumnTypesBase): pqb.LineColumn;
212
- lseg(this: ColumnTypesBase): pqb.LsegColumn;
213
- box(this: ColumnTypesBase): pqb.BoxColumn;
214
- path(this: ColumnTypesBase): pqb.PathColumn;
215
- polygon(this: ColumnTypesBase): pqb.PolygonColumn;
216
- circle(this: ColumnTypesBase): pqb.CircleColumn;
217
- cidr(this: ColumnTypesBase): pqb.CidrColumn;
218
- inet(this: ColumnTypesBase): pqb.InetColumn;
219
- macaddr(this: ColumnTypesBase): pqb.MacAddrColumn;
220
- macaddr8(this: ColumnTypesBase): pqb.MacAddr8Column;
221
- bit<Length extends number>(this: ColumnTypesBase, length: Length): pqb.BitColumn<Length>;
222
- bitVarying<Length_1 extends number | undefined = undefined>(this: ColumnTypesBase, length?: Length_1 | undefined): pqb.BitVaryingColumn<Length_1>;
223
- tsvector(this: ColumnTypesBase): pqb.TsVectorColumn;
224
- tsquery(this: ColumnTypesBase): pqb.TsQueryColumn;
225
- uuid(this: ColumnTypesBase): pqb.UUIDColumn;
226
- xml(this: ColumnTypesBase): pqb.XMLColumn;
227
- json<Type extends orchid_core.JSONTypeAny>(this: ColumnTypesBase, schemaOrFn: Type | ((j: {
185
+ smallint(): pqb.SmallIntColumn;
186
+ integer(): pqb.IntegerColumn;
187
+ bigint(): pqb.BigIntColumn;
188
+ numeric<Precision extends number | undefined = undefined, Scale extends number | undefined = undefined>(precision?: Precision | undefined, scale?: Scale | undefined): pqb.DecimalColumn<Precision, Scale>;
189
+ decimal<Precision_1 extends number | undefined = undefined, Scale_1 extends number | undefined = undefined>(precision?: Precision_1 | undefined, scale?: Scale_1 | undefined): pqb.DecimalColumn<Precision_1, Scale_1>;
190
+ real(): pqb.RealColumn;
191
+ doublePrecision(): pqb.DoublePrecisionColumn;
192
+ identity(options?: pqb.TableData.Identity | undefined): pqb.IntegerColumn;
193
+ smallSerial(): pqb.SmallSerialColumn;
194
+ serial(): pqb.SerialColumn;
195
+ bigSerial(): pqb.BigSerialColumn;
196
+ money(): pqb.MoneyColumn;
197
+ varchar<Limit extends number | undefined = undefined>(limit?: Limit | undefined): pqb.VarCharColumn<Limit>;
198
+ char<Limit_1 extends number | undefined = undefined>(limit?: Limit_1 | undefined): pqb.CharColumn<Limit_1>;
199
+ text: (min: number, max: number) => pqb.TextColumn;
200
+ string: (min: number, max: number) => pqb.TextColumn;
201
+ citext(min: number, max: number): pqb.CitextColumn;
202
+ bytea(): pqb.ByteaColumn;
203
+ date(): pqb.DateColumn;
204
+ timestampWithoutTimeZone<Precision_2 extends number>(precision?: Precision_2 | undefined): pqb.TimestampColumn<Precision_2>;
205
+ timestamp<Precision_3 extends number | undefined = undefined>(precision?: Precision_3 | undefined): pqb.TimestampTzColumn<number>;
206
+ time<Precision_4 extends number | undefined = undefined>(precision?: Precision_4 | undefined): pqb.TimeColumn<Precision_4>;
207
+ interval<Fields extends string | undefined = undefined, Precision_5 extends number | undefined = undefined>(fields?: Fields | undefined, precision?: Precision_5 | undefined): pqb.IntervalColumn<Fields, Precision_5>;
208
+ boolean(): pqb.BooleanColumn;
209
+ enum<U extends string, T_2 extends [U, ...U[]]>(dataType: string, type: T_2): pqb.EnumColumn<U, T_2>;
210
+ point(): pqb.PointColumn;
211
+ line(): pqb.LineColumn;
212
+ lseg(): pqb.LsegColumn;
213
+ box(): pqb.BoxColumn;
214
+ path(): pqb.PathColumn;
215
+ polygon(): pqb.PolygonColumn;
216
+ circle(): pqb.CircleColumn;
217
+ cidr(): pqb.CidrColumn;
218
+ inet(): pqb.InetColumn;
219
+ macaddr(): pqb.MacAddrColumn;
220
+ macaddr8(): pqb.MacAddr8Column;
221
+ bit<Length extends number>(length: Length): pqb.BitColumn<Length>;
222
+ bitVarying<Length_1 extends number | undefined = undefined>(length?: Length_1 | undefined): pqb.BitVaryingColumn<Length_1>;
223
+ tsvector(): pqb.TsVectorColumn;
224
+ tsquery(): pqb.TsQueryColumn;
225
+ uuid(): pqb.UUIDColumn;
226
+ xml(): pqb.XMLColumn;
227
+ json<Type extends orchid_core.JSONTypeAny>(schemaOrFn: Type | ((j: {
228
228
  set: <Value extends orchid_core.JSONTypeAny>(valueType: Value) => orchid_core.JSONSet<Value>;
229
229
  tuple: <T_3 extends [] | orchid_core.JSONTupleItems, Rest extends orchid_core.JSONTypeAny | null = null>(items: T_3, rest?: Rest) => orchid_core.JSONTuple<T_3, Rest>;
230
230
  union: <T_4 extends [orchid_core.JSONTypeAny, orchid_core.JSONTypeAny, ...orchid_core.JSONTypeAny[]]>(types: T_4) => orchid_core.JSONUnion<T_4>;
@@ -257,10 +257,10 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
257
257
  optional: <T_17 extends orchid_core.JSONTypeAny>(type: T_17) => orchid_core.JSONOptional<T_17>;
258
258
  record: typeof orchid_core.record;
259
259
  }) => Type)): pqb.JSONColumn<Type>;
260
- jsonText(this: ColumnTypesBase): pqb.JSONTextColumn;
261
- array<Item extends pqb.ColumnType<unknown, orchid_core.BaseOperators, unknown>>(this: ColumnTypesBase, item: Item): pqb.ArrayColumn<Item>;
262
- type(this: ColumnTypesBase, dataType: string): pqb.CustomTypeColumn;
263
- domain(this: ColumnTypesBase, dataType: string): pqb.DomainColumn;
260
+ jsonText(): pqb.JSONTextColumn;
261
+ array<Item extends pqb.ColumnType<unknown, orchid_core.BaseOperators, unknown>>(item: Item): pqb.ArrayColumn<Item>;
262
+ type(dataType: string): pqb.CustomTypeColumn;
263
+ domain(dataType: string): pqb.DomainColumn;
264
264
  primaryKey(columns: string[], options?: {
265
265
  name?: string | undefined;
266
266
  } | undefined): {};
@@ -279,7 +279,7 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
279
279
  check(check: orchid_core.RawExpression): {};
280
280
  } : CT;
281
281
  filePath: string;
282
- setColumns<T_18 extends ColumnsShape>(fn: (t: ColumnTypesBase extends CT ? {
282
+ setColumns<T_18 extends ColumnsShape>(fn: (t: Record<string, orchid_core.AnyColumnTypeCreator> extends CT ? {
283
283
  timestamps: <T extends orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>(this: {
284
284
  name(name: string): {
285
285
  timestamp(): T;
@@ -300,49 +300,49 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
300
300
  };
301
301
  name: typeof orchid_core.name;
302
302
  raw: (sql: string, values?: false | Record<string, unknown> | undefined) => orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>;
303
- smallint(this: ColumnTypesBase): pqb.SmallIntColumn;
304
- integer(this: ColumnTypesBase): pqb.IntegerColumn;
305
- bigint(this: ColumnTypesBase): pqb.BigIntColumn;
306
- numeric<Precision extends number | undefined = undefined, Scale extends number | undefined = undefined>(this: ColumnTypesBase, precision?: Precision | undefined, scale?: Scale | undefined): pqb.DecimalColumn<Precision, Scale>;
307
- decimal<Precision_1 extends number | undefined = undefined, Scale_1 extends number | undefined = undefined>(this: ColumnTypesBase, precision?: Precision_1 | undefined, scale?: Scale_1 | undefined): pqb.DecimalColumn<Precision_1, Scale_1>;
308
- real(this: ColumnTypesBase): pqb.RealColumn;
309
- doublePrecision(this: ColumnTypesBase): pqb.DoublePrecisionColumn;
310
- identity(this: ColumnTypesBase, options?: pqb.TableData.Identity | undefined): pqb.IntegerColumn;
311
- smallSerial(this: ColumnTypesBase): pqb.SmallSerialColumn;
312
- serial(this: ColumnTypesBase): pqb.SerialColumn;
313
- bigSerial(this: ColumnTypesBase): pqb.BigSerialColumn;
314
- money(this: ColumnTypesBase): pqb.MoneyColumn;
315
- varchar<Limit extends number | undefined = undefined>(this: ColumnTypesBase, limit?: Limit | undefined): pqb.VarCharColumn<Limit>;
316
- char<Limit_1 extends number | undefined = undefined>(this: ColumnTypesBase, limit?: Limit_1 | undefined): pqb.CharColumn<Limit_1>;
317
- text: (this: ColumnTypesBase, min: number, max: number) => pqb.TextColumn;
318
- string: (this: ColumnTypesBase, min: number, max: number) => pqb.TextColumn;
319
- citext(this: ColumnTypesBase, min: number, max: number): pqb.CitextColumn;
320
- bytea(this: ColumnTypesBase): pqb.ByteaColumn;
321
- date(this: ColumnTypesBase): pqb.DateColumn;
322
- timestampWithoutTimeZone<Precision_2 extends number>(this: ColumnTypesBase, precision?: Precision_2 | undefined): pqb.TimestampColumn<Precision_2>;
323
- timestamp<Precision_3 extends number | undefined = undefined>(this: ColumnTypesBase, precision?: Precision_3 | undefined): pqb.TimestampTzColumn<number>;
324
- time<Precision_4 extends number | undefined = undefined>(this: ColumnTypesBase, precision?: Precision_4 | undefined): pqb.TimeColumn<Precision_4>;
325
- interval<Fields extends string | undefined = undefined, Precision_5 extends number | undefined = undefined>(this: ColumnTypesBase, fields?: Fields | undefined, precision?: Precision_5 | undefined): pqb.IntervalColumn<Fields, Precision_5>;
326
- boolean(this: ColumnTypesBase): pqb.BooleanColumn;
327
- enum<U extends string, T_2 extends [U, ...U[]]>(this: ColumnTypesBase, dataType: string, type: T_2): pqb.EnumColumn<U, T_2>;
328
- point(this: ColumnTypesBase): pqb.PointColumn;
329
- line(this: ColumnTypesBase): pqb.LineColumn;
330
- lseg(this: ColumnTypesBase): pqb.LsegColumn;
331
- box(this: ColumnTypesBase): pqb.BoxColumn;
332
- path(this: ColumnTypesBase): pqb.PathColumn;
333
- polygon(this: ColumnTypesBase): pqb.PolygonColumn;
334
- circle(this: ColumnTypesBase): pqb.CircleColumn;
335
- cidr(this: ColumnTypesBase): pqb.CidrColumn;
336
- inet(this: ColumnTypesBase): pqb.InetColumn;
337
- macaddr(this: ColumnTypesBase): pqb.MacAddrColumn;
338
- macaddr8(this: ColumnTypesBase): pqb.MacAddr8Column;
339
- bit<Length extends number>(this: ColumnTypesBase, length: Length): pqb.BitColumn<Length>;
340
- bitVarying<Length_1 extends number | undefined = undefined>(this: ColumnTypesBase, length?: Length_1 | undefined): pqb.BitVaryingColumn<Length_1>;
341
- tsvector(this: ColumnTypesBase): pqb.TsVectorColumn;
342
- tsquery(this: ColumnTypesBase): pqb.TsQueryColumn;
343
- uuid(this: ColumnTypesBase): pqb.UUIDColumn;
344
- xml(this: ColumnTypesBase): pqb.XMLColumn;
345
- json<Type extends orchid_core.JSONTypeAny>(this: ColumnTypesBase, schemaOrFn: Type | ((j: {
303
+ smallint(): pqb.SmallIntColumn;
304
+ integer(): pqb.IntegerColumn;
305
+ bigint(): pqb.BigIntColumn;
306
+ numeric<Precision extends number | undefined = undefined, Scale extends number | undefined = undefined>(precision?: Precision | undefined, scale?: Scale | undefined): pqb.DecimalColumn<Precision, Scale>;
307
+ decimal<Precision_1 extends number | undefined = undefined, Scale_1 extends number | undefined = undefined>(precision?: Precision_1 | undefined, scale?: Scale_1 | undefined): pqb.DecimalColumn<Precision_1, Scale_1>;
308
+ real(): pqb.RealColumn;
309
+ doublePrecision(): pqb.DoublePrecisionColumn;
310
+ identity(options?: pqb.TableData.Identity | undefined): pqb.IntegerColumn;
311
+ smallSerial(): pqb.SmallSerialColumn;
312
+ serial(): pqb.SerialColumn;
313
+ bigSerial(): pqb.BigSerialColumn;
314
+ money(): pqb.MoneyColumn;
315
+ varchar<Limit extends number | undefined = undefined>(limit?: Limit | undefined): pqb.VarCharColumn<Limit>;
316
+ char<Limit_1 extends number | undefined = undefined>(limit?: Limit_1 | undefined): pqb.CharColumn<Limit_1>;
317
+ text: (min: number, max: number) => pqb.TextColumn;
318
+ string: (min: number, max: number) => pqb.TextColumn;
319
+ citext(min: number, max: number): pqb.CitextColumn;
320
+ bytea(): pqb.ByteaColumn;
321
+ date(): pqb.DateColumn;
322
+ timestampWithoutTimeZone<Precision_2 extends number>(precision?: Precision_2 | undefined): pqb.TimestampColumn<Precision_2>;
323
+ timestamp<Precision_3 extends number | undefined = undefined>(precision?: Precision_3 | undefined): pqb.TimestampTzColumn<number>;
324
+ time<Precision_4 extends number | undefined = undefined>(precision?: Precision_4 | undefined): pqb.TimeColumn<Precision_4>;
325
+ interval<Fields extends string | undefined = undefined, Precision_5 extends number | undefined = undefined>(fields?: Fields | undefined, precision?: Precision_5 | undefined): pqb.IntervalColumn<Fields, Precision_5>;
326
+ boolean(): pqb.BooleanColumn;
327
+ enum<U extends string, T_2 extends [U, ...U[]]>(dataType: string, type: T_2): pqb.EnumColumn<U, T_2>;
328
+ point(): pqb.PointColumn;
329
+ line(): pqb.LineColumn;
330
+ lseg(): pqb.LsegColumn;
331
+ box(): pqb.BoxColumn;
332
+ path(): pqb.PathColumn;
333
+ polygon(): pqb.PolygonColumn;
334
+ circle(): pqb.CircleColumn;
335
+ cidr(): pqb.CidrColumn;
336
+ inet(): pqb.InetColumn;
337
+ macaddr(): pqb.MacAddrColumn;
338
+ macaddr8(): pqb.MacAddr8Column;
339
+ bit<Length extends number>(length: Length): pqb.BitColumn<Length>;
340
+ bitVarying<Length_1 extends number | undefined = undefined>(length?: Length_1 | undefined): pqb.BitVaryingColumn<Length_1>;
341
+ tsvector(): pqb.TsVectorColumn;
342
+ tsquery(): pqb.TsQueryColumn;
343
+ uuid(): pqb.UUIDColumn;
344
+ xml(): pqb.XMLColumn;
345
+ json<Type extends orchid_core.JSONTypeAny>(schemaOrFn: Type | ((j: {
346
346
  set: <Value extends orchid_core.JSONTypeAny>(valueType: Value) => orchid_core.JSONSet<Value>;
347
347
  tuple: <T_3 extends [] | orchid_core.JSONTupleItems, Rest extends orchid_core.JSONTypeAny | null = null>(items: T_3, rest?: Rest) => orchid_core.JSONTuple<T_3, Rest>;
348
348
  union: <T_4 extends [orchid_core.JSONTypeAny, orchid_core.JSONTypeAny, ...orchid_core.JSONTypeAny[]]>(types: T_4) => orchid_core.JSONUnion<T_4>;
@@ -375,10 +375,10 @@ declare const createBaseTable: <CT extends ColumnTypesBase>({ columnTypes, snake
375
375
  optional: <T_17 extends orchid_core.JSONTypeAny>(type: T_17) => orchid_core.JSONOptional<T_17>;
376
376
  record: typeof orchid_core.record;
377
377
  }) => Type)): pqb.JSONColumn<Type>;
378
- jsonText(this: ColumnTypesBase): pqb.JSONTextColumn;
379
- array<Item extends pqb.ColumnType<unknown, orchid_core.BaseOperators, unknown>>(this: ColumnTypesBase, item: Item): pqb.ArrayColumn<Item>;
380
- type(this: ColumnTypesBase, dataType: string): pqb.CustomTypeColumn;
381
- domain(this: ColumnTypesBase, dataType: string): pqb.DomainColumn;
378
+ jsonText(): pqb.JSONTextColumn;
379
+ array<Item extends pqb.ColumnType<unknown, orchid_core.BaseOperators, unknown>>(item: Item): pqb.ArrayColumn<Item>;
380
+ type(dataType: string): pqb.CustomTypeColumn;
381
+ domain(dataType: string): pqb.DomainColumn;
382
382
  primaryKey(columns: string[], options?: {
383
383
  name?: string | undefined;
384
384
  } | undefined): {};
package/dist/index.js CHANGED
@@ -118,8 +118,8 @@ const create = (columnTypes, filePath, snakeCase) => {
118
118
  };
119
119
 
120
120
  class BelongsToVirtualColumn extends pqb.VirtualColumn {
121
- constructor(types, key, state) {
122
- super(types);
121
+ constructor(key, state) {
122
+ super();
123
123
  this.key = key;
124
124
  this.state = state;
125
125
  this.nestedInsert = nestedInsert$3(this.state);
@@ -172,7 +172,7 @@ const makeBelongsToMethod = (relation, relationName, query) => {
172
172
  method: (params) => {
173
173
  return query.findBy({ [primaryKey]: params[foreignKey] });
174
174
  },
175
- virtualColumn: new BelongsToVirtualColumn(orchidCore.emptyObject, relationName, state),
175
+ virtualColumn: new BelongsToVirtualColumn(relationName, state),
176
176
  joinQuery(fromQuery, toQuery) {
177
177
  return pqb.addQueryOn(toQuery, fromQuery, toQuery, primaryKey, foreignKey);
178
178
  },
@@ -373,8 +373,8 @@ var __spreadValues$7 = (a, b) => {
373
373
  };
374
374
  var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
375
375
  class HasOneVirtualColumn extends pqb.VirtualColumn {
376
- constructor(types, key, state) {
377
- super(types);
376
+ constructor(key, state) {
377
+ super();
378
378
  this.key = key;
379
379
  this.state = state;
380
380
  this.nestedInsert = nestedInsert$2(state);
@@ -459,7 +459,7 @@ const makeHasOneMethod = (table, relation, relationName, query) => {
459
459
  const values = { [foreignKey]: params[primaryKey] };
460
460
  return query.where(values)._defaults(values);
461
461
  },
462
- virtualColumn: new HasOneVirtualColumn(orchidCore.emptyObject, relationName, state),
462
+ virtualColumn: new HasOneVirtualColumn(relationName, state),
463
463
  joinQuery(fromQuery, toQuery) {
464
464
  return pqb.addQueryOn(toQuery, fromQuery, toQuery, foreignKey, primaryKey);
465
465
  },
@@ -570,8 +570,8 @@ var __spreadValues$6 = (a, b) => {
570
570
  };
571
571
  var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
572
572
  class HasManyVirtualColumn extends pqb.VirtualColumn {
573
- constructor(types, key, state) {
574
- super(types);
573
+ constructor(key, state) {
574
+ super();
575
575
  this.key = key;
576
576
  this.state = state;
577
577
  this.nestedInsert = nestedInsert$1(state);
@@ -655,7 +655,7 @@ const makeHasManyMethod = (table, relation, relationName, query) => {
655
655
  const values = { [foreignKey]: params[primaryKey] };
656
656
  return query.where(values)._defaults(values);
657
657
  },
658
- virtualColumn: new HasManyVirtualColumn(orchidCore.emptyObject, relationName, state),
658
+ virtualColumn: new HasManyVirtualColumn(relationName, state),
659
659
  joinQuery(fromQuery, toQuery) {
660
660
  return pqb.addQueryOn(toQuery, fromQuery, toQuery, foreignKey, primaryKey);
661
661
  },
@@ -819,8 +819,8 @@ var __spreadValues$5 = (a, b) => {
819
819
  };
820
820
  var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
821
821
  class HasAndBelongsToManyVirtualColumn extends pqb.VirtualColumn {
822
- constructor(types, key, state) {
823
- super(types);
822
+ constructor(key, state) {
823
+ super();
824
824
  this.key = key;
825
825
  this.state = state;
826
826
  this.nestedInsert = nestedInsert(state);
@@ -898,11 +898,7 @@ const makeHasAndBelongsToManyMethod = (table, qb, relation, relationName, query)
898
898
  })
899
899
  );
900
900
  },
901
- virtualColumn: new HasAndBelongsToManyVirtualColumn(
902
- orchidCore.emptyObject,
903
- relationName,
904
- state
905
- ),
901
+ virtualColumn: new HasAndBelongsToManyVirtualColumn(relationName, state),
906
902
  // joinQuery can be a property of RelationQuery and be used by whereExists and other stuff which needs it
907
903
  // and the chained query itself may be a query around this joinQuery
908
904
  joinQuery(fromQuery, toQuery) {
@@ -1229,7 +1225,9 @@ const delayRelation = (delayedRelations, table, relationName, data) => {
1229
1225
  };
1230
1226
  const applyRelation = (qb, { relationName, relation, dbTable, otherDbTable }, delayedRelations) => {
1231
1227
  var _a;
1232
- const query = (relation.options.scope ? relation.options.scope(otherDbTable) : otherDbTable).as(relationName);
1228
+ const baseQuery = Object.create(otherDbTable);
1229
+ baseQuery.baseQuery = baseQuery;
1230
+ const query = (relation.options.scope ? relation.options.scope(baseQuery) : baseQuery).as(relationName);
1233
1231
  const definedAs = query.definedAs;
1234
1232
  if (!definedAs) {
1235
1233
  throw new Error(
@@ -1262,6 +1260,7 @@ const applyRelation = (qb, { relationName, relation, dbTable, otherDbTable }, de
1262
1260
  dbTable.shape[relationName] = dbTable.query.shape[relationName] = data.virtualColumn;
1263
1261
  }
1264
1262
  makeRelationQuery(dbTable, definedAs, relationName, data);
1263
+ baseQuery.joinQuery = data.joinQuery;
1265
1264
  dbTable.relations[relationName] = {
1266
1265
  type,
1267
1266
  key: relationName,
@@ -1271,6 +1270,7 @@ const applyRelation = (qb, { relationName, relation, dbTable, otherDbTable }, de
1271
1270
  primaryKey: data.primaryKey,
1272
1271
  options: relation.options
1273
1272
  };
1273
+ dbTable.relationsQueries[relationName] = query;
1274
1274
  const tableRelations = delayedRelations.get(dbTable);
1275
1275
  if (!tableRelations)
1276
1276
  return;