pqb 0.65.3 → 0.65.4

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
@@ -7284,10 +7284,11 @@ declare class QueryCreateFrom {
7284
7284
  interface CreateSelf extends IsQuery, PickQueryHasSelect, PickQueryDefaults, PickQueryResult, PickQueryRelations, PickQueryWithData, PickQueryReturnType, PickQueryShape, PickQueryUniqueProperties, PickQueryInputType {}
7285
7285
  type CreateData<T extends CreateSelf> = EmptyObject extends T['relations'] ? CreateDataWithDefaults<T, keyof T['__defaults']> : CreateRelationsData<T>;
7286
7286
  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 };
7287
- 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> };
7287
+ 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> };
7288
7288
  type CreateColumn<T extends CreateSelf, K extends keyof T['inputType']> = T['inputType'][K] | ((q: T) => QueryOrExpression<T['inputType'][K]>);
7289
- type CreateRelationsData<T extends CreateSelf> = CreateDataWithDefaultsForRelations<T, keyof T['__defaults'], T['relations'][keyof T['relations']]['columnsForCreate']> & CreateBelongsToData<T> & T['relations'][keyof T['relations']]['optionalDataForCreate'];
7290
- type CreateBelongsToData<T extends CreateSelf> = [T['relations'][keyof T['relations']]['dataForCreate']] extends [never] ? EmptyObject : T['relations'][keyof T['relations']]['dataForCreate'];
7289
+ type CreateRelationsData<T extends CreateSelf> = CreateDataWithDefaultsForRelations<T, keyof T['__defaults'], T['relations'][keyof T['relations']]['omitForeignKeyInCreate']> & CreateBelongsToData<T> & T['relations'][keyof T['relations']]['optionalDataForCreate'];
7290
+ type CreateBelongsToData<T extends CreateSelf> = [T['relations'][keyof T['relations']]['dataForCreate']] extends [never] ? EmptyObject : CreateRelationsDataOmittingFKeys<T, T['relations'][keyof T['relations']]['dataForCreate']>;
7291
+ 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;
7291
7292
  type CreateResult<T extends CreateSelf, Data> = T extends {
7292
7293
  isCount: true;
7293
7294
  } ? 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>>;
@@ -7302,7 +7303,7 @@ type InsertManyResult<T extends CreateSelf> = T['__hasSelect'] extends true ? T[
7302
7303
  *
7303
7304
  * The same should work as well with any non-null columns passed to `create`, but it's to be implemented later.
7304
7305
  */
7305
- 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] };
7306
+ 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'] ? R extends keyof Data ? true : T['relations'][R]['omitForeignKeyInCreate'] extends keyof Data ? null | undefined extends Data[T['relations'][R]['omitForeignKeyInCreate']] ? never : true : never : never }[keyof T['relations']] ? Column.Pick.QueryColumnOfTypeAndOps<string, Exclude<T['result'][K]['outputType'], null>, T['result'][K]['operators']> : T['result'][K] };
7306
7307
  type IgnoreResult<T extends CreateSelf> = T['returnType'] extends 'oneOrThrow' ? QueryTakeOptional<T> : T['returnType'] extends 'valueOrThrow' ? SetQueryReturnsColumnOptional<T, T['result']['value']> : T;
7307
7308
  type OnConflictArg<T extends PickQueryUniqueProperties> = T['internal']['uniqueColumnNames'] | T['internal']['uniqueColumnTuples'] | Expression | {
7308
7309
  constraint: T['internal']['uniqueConstraints'];
@@ -7329,8 +7330,7 @@ declare const _queryDefaults: <T extends CreateSelf, Data extends Partial<Create
7329
7330
  */
7330
7331
  type CreateMethodsNames = 'create' | 'insert' | 'createMany' | 'insertMany' | CreateFromMethodNames;
7331
7332
  type CreateManyMethodsNames = 'createMany' | 'insertMany' | CreateManyFromMethodNames;
7332
- 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']];
7333
- 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}`;
7333
+ 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}`;
7334
7334
  declare class QueryCreate {
7335
7335
  /**
7336
7336
  * `create` and `insert` create a single record.
@@ -10142,13 +10142,17 @@ interface RelationConfigBase extends IsQuery {
10142
10142
  queryRelated(params: unknown): unknown;
10143
10143
  modifyRelatedQuery?(relatedQuery: IsQuery): (query: IsQuery) => void;
10144
10144
  maybeSingle: PickQuerySelectableReturnType;
10145
- columnsForCreate: PropertyKey;
10146
- dataForCreate: RecordUnknown;
10145
+ omitForeignKeyInCreate: PropertyKey;
10146
+ dataForCreate?: RelationConfigDataForCreate;
10147
10147
  optionalDataForCreate: unknown;
10148
10148
  dataForUpdate: unknown;
10149
10149
  dataForUpdateOne: unknown;
10150
10150
  primaryKeys: string[];
10151
10151
  }
10152
+ interface RelationConfigDataForCreate {
10153
+ columns: PropertyKey;
10154
+ nested: RecordUnknown;
10155
+ }
10152
10156
  interface RelationsBase {
10153
10157
  [K: string]: RelationConfigBase;
10154
10158
  }