pqb 0.65.0 → 0.65.2

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
@@ -3919,7 +3919,7 @@ declare class Where {
3919
3919
  *
3920
3920
  * @param args - same arguments as in {@link where}, joined with `OR`
3921
3921
  */
3922
- whereOneOf<T extends PickQuerySelectableRelations>(this: T, ...args: WhereArgs<T>): T;
3922
+ whereOneOf<T extends PickQuerySelectableRelations>(this: T, ...args: WhereArgs<T>): T & QueryHasWhere;
3923
3923
  /**
3924
3924
  * Negative {@link whereOneOf}:
3925
3925
  *
@@ -7217,11 +7217,10 @@ declare class QueryCreateFrom {
7217
7217
  interface CreateSelf extends IsQuery, PickQueryHasSelect, PickQueryDefaults, PickQueryResult, PickQueryRelations, PickQueryWithData, PickQueryReturnType, PickQueryShape, PickQueryUniqueProperties, PickQueryInputType {}
7218
7218
  type CreateData<T extends CreateSelf> = EmptyObject extends T['relations'] ? CreateDataWithDefaults<T, keyof T['__defaults']> : CreateRelationsData<T>;
7219
7219
  type CreateDataWithDefaults<T extends CreateSelf, Defaults extends PropertyKey> = { [K in keyof T['inputType'] as K extends Defaults ? never : K]: K extends Defaults ? never : CreateColumn<T, K> } & { [K in Defaults]?: K extends keyof T['inputType'] ? CreateColumn<T, K> : never };
7220
- type CreateDataWithDefaultsForRelations<T extends CreateSelf, Defaults extends keyof T['inputType'], OmitFKeys extends PropertyKey> = { [K in keyof T['inputType'] as K extends Defaults | OmitFKeys ? never : K]: K extends Defaults | OmitFKeys ? never : CreateColumn<T, K> } & { [K in Defaults as K extends OmitFKeys ? never : K]?: CreateColumn<T, K> };
7220
+ type CreateDataWithDefaultsForRelations<T extends CreateSelf, Defaults extends keyof T['inputType'], OmitFKeys extends PropertyKey> = { [K in keyof T['inputType'] as K extends Defaults | OmitFKeys ? never : K]: K extends Defaults | OmitFKeys ? never : CreateColumn<T, K> } & { [K in keyof T['inputType'] & (Defaults | OmitFKeys)]?: CreateColumn<T, K> };
7221
7221
  type CreateColumn<T extends CreateSelf, K extends keyof T['inputType']> = T['inputType'][K] | ((q: T) => QueryOrExpression<T['inputType'][K]>);
7222
- type CreateRelationsData<T extends CreateSelf> = CreateDataWithDefaultsForRelations<T, keyof T['__defaults'], T['relations'][keyof T['relations']]['omitForeignKeyInCreate']> & CreateBelongsToData<T> & T['relations'][keyof T['relations']]['optionalDataForCreate'];
7223
- type CreateBelongsToData<T extends CreateSelf> = [T['relations'][keyof T['relations']]['dataForCreate']] extends [never] ? EmptyObject : CreateRelationsDataOmittingFKeys<T, T['relations'][keyof T['relations']]['dataForCreate']>;
7224
- type CreateRelationsDataOmittingFKeys<T extends CreateSelf, Union> = (Union extends RelationConfigDataForCreate ? (u: Union['columns'] extends keyof T['__defaults'] ? { [P in Exclude<Union['columns'] & keyof T['inputType'], keyof T['__defaults']>]: CreateColumn<T, P> } & { [P in keyof T['__defaults'] & Union['columns']]?: CreateColumn<T, P> } & Partial<Union['nested']> : { [P in Union['columns'] & keyof T['inputType']]: CreateColumn<T, P> } | Union['nested']) => void : never) extends ((u: infer Obj) => void) ? Obj : never;
7222
+ type CreateRelationsData<T extends CreateSelf> = CreateDataWithDefaultsForRelations<T, keyof T['__defaults'], T['relations'][keyof T['relations']]['columnsForCreate']> & CreateBelongsToData<T> & T['relations'][keyof T['relations']]['optionalDataForCreate'];
7223
+ type CreateBelongsToData<T extends CreateSelf> = [T['relations'][keyof T['relations']]['dataForCreate']] extends [never] ? EmptyObject : T['relations'][keyof T['relations']]['dataForCreate'];
7225
7224
  type CreateResult<T extends CreateSelf, Data> = T extends {
7226
7225
  isCount: true;
7227
7226
  } ? T : T['returnType'] extends undefined | 'all' ? SetQueryReturnsOneResult<T, NarrowCreateResult<T, Data>> : T['returnType'] extends 'pluck' ? SetQueryReturnsColumnResult<T, NarrowCreateResult<T, Data>> : SetQueryResult<T, NarrowCreateResult<T, Data>>;
@@ -7236,10 +7235,7 @@ type InsertManyResult<T extends CreateSelf> = T['__hasSelect'] extends true ? T[
7236
7235
  *
7237
7236
  * The same should work as well with any non-null columns passed to `create`, but it's to be implemented later.
7238
7237
  */
7239
- type NarrowCreateResult<T extends CreateSelf, Data> = EmptyObject extends T['relations'] ? T['result'] : { [K in keyof T['result']]: true extends { [R in keyof T['relations']]: K extends T['relations'][R]['omitForeignKeyInCreate'] ? T['relations'][R]['dataForCreate'] extends {
7240
- columns: unknown;
7241
- nested: unknown;
7242
- } ? keyof T['relations'][R]['dataForCreate']['nested'] extends keyof Data ? true : T['relations'][R]['dataForCreate']['columns'] extends keyof Data ? null | undefined extends Data[T['relations'][R]['dataForCreate']['columns']] ? never : true : never : never : never }[keyof T['relations']] ? Column.Pick.QueryColumnOfTypeAndOps<string, Exclude<T['result'][K]['outputType'], null>, T['result'][K]['operators']> : T['result'][K] };
7238
+ type NarrowCreateResult<T extends CreateSelf, Data> = EmptyObject extends T['relations'] ? T['result'] : { [K in keyof T['result']]: true extends { [R in keyof T['relations']]: K extends T['relations'][R]['columnsForCreate'] ? R extends keyof Data ? true : T['relations'][R]['columnsForCreate'] extends keyof Data ? null | undefined extends Data[T['relations'][R]['columnsForCreate']] ? never : true : never : never }[keyof T['relations']] ? Column.Pick.QueryColumnOfTypeAndOps<string, Exclude<T['result'][K]['outputType'], null>, T['result'][K]['operators']> : T['result'][K] };
7243
7239
  type IgnoreResult<T extends CreateSelf> = T['returnType'] extends 'oneOrThrow' ? QueryTakeOptional<T> : T['returnType'] extends 'valueOrThrow' ? SetQueryReturnsColumnOptional<T, T['result']['value']> : T;
7244
7240
  type OnConflictArg<T extends PickQueryUniqueProperties> = T['internal']['uniqueColumnNames'] | T['internal']['uniqueColumnTuples'] | Expression | {
7245
7241
  constraint: T['internal']['uniqueConstraints'];
@@ -7266,7 +7262,8 @@ declare const _queryDefaults: <T extends CreateSelf, Data extends Partial<Create
7266
7262
  */
7267
7263
  type CreateMethodsNames = 'create' | 'insert' | 'createMany' | 'insertMany' | CreateFromMethodNames;
7268
7264
  type CreateManyMethodsNames = 'createMany' | 'insertMany' | CreateManyFromMethodNames;
7269
- type ExtraPropertiesAreNotAllowed<T extends CreateSelf, Data> = keyof Data extends keyof T['inputType'] | keyof T['relations'] ? Data : `Extra properties are not allowed: ${Exclude<keyof Data, keyof T['inputType'] | keyof T['relations']> & string}`;
7265
+ type CollectMissingColumns<T extends CreateSelf, Data> = { [K in T['relations'][keyof T['relations']]['columnsForCreate']]: null | undefined extends T['inputType'][K & keyof T['inputType']] ? false : K extends keyof T['__defaults'] ? false : true extends { [Rel in keyof T['relations']]: K extends T['relations'][Rel]['columnsForCreate'] ? Rel extends keyof Data ? undefined extends Data[Rel] ? false : true : false : false }[keyof T['relations']] ? false : K extends keyof Data ? undefined extends Data[K] ? K : false : K }[T['relations'][keyof T['relations']]['columnsForCreate']];
7266
+ type ExtraPropertiesAreNotAllowed<T extends CreateSelf, Data> = keyof Data extends keyof T['inputType'] | keyof T['relations'] ? CollectMissingColumns<T, Data> extends false ? Data : `Missing ${CollectMissingColumns<T, Data> & string}` : `Extra properties are not allowed: ${Exclude<keyof Data, keyof T['inputType'] | keyof T['relations']> & string}`;
7270
7267
  declare class QueryCreate {
7271
7268
  /**
7272
7269
  * `create` and `insert` create a single record.
@@ -10078,17 +10075,13 @@ interface RelationConfigBase extends IsQuery {
10078
10075
  queryRelated(params: unknown): unknown;
10079
10076
  modifyRelatedQuery?(relatedQuery: IsQuery): (query: IsQuery) => void;
10080
10077
  maybeSingle: PickQuerySelectableReturnType;
10081
- omitForeignKeyInCreate: PropertyKey;
10082
- dataForCreate?: RelationConfigDataForCreate;
10078
+ columnsForCreate: PropertyKey;
10079
+ dataForCreate: RecordUnknown;
10083
10080
  optionalDataForCreate: unknown;
10084
10081
  dataForUpdate: unknown;
10085
10082
  dataForUpdateOne: unknown;
10086
10083
  primaryKeys: string[];
10087
10084
  }
10088
- interface RelationConfigDataForCreate {
10089
- columns: PropertyKey;
10090
- nested: RecordUnknown;
10091
- }
10092
10085
  interface RelationsBase {
10093
10086
  [K: string]: RelationConfigBase;
10094
10087
  }