pqb 0.71.0 → 0.71.1

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.
@@ -737,7 +737,7 @@ declare namespace TableData$1 {
737
737
  name?: string;
738
738
  }
739
739
  export interface ColumnIndex {
740
- options: Index.ColumnArg & Index.Options;
740
+ options: Index.ColumnOptionsData;
741
741
  }
742
742
  export interface ColumnExclude extends ColumnIndex {
743
743
  with: string;
@@ -788,7 +788,11 @@ declare namespace TableData$1 {
788
788
  order?: string;
789
789
  weight?: SearchWeight$1;
790
790
  }
791
- export interface UniqueOptionsArg<Name extends string = string> {
791
+ /**
792
+ * Controls when Postgres checks a unique constraint.
793
+ */
794
+ export type UniqueDeferrable = false | 'immediate' | 'deferred';
795
+ export interface BaseUniqueOptionsArg<Name extends string = string> {
792
796
  name?: Name;
793
797
  nullsNotDistinct?: boolean;
794
798
  using?: string;
@@ -798,23 +802,45 @@ declare namespace TableData$1 {
798
802
  where?: string;
799
803
  dropMode?: DropMode;
800
804
  }
801
- export interface OptionsArg extends UniqueOptionsArg {
805
+ export interface UniqueOptionsArg<Name extends string = string> extends BaseUniqueOptionsArg<Name> {
806
+ /**
807
+ * Makes this unique definition a deferrable Postgres constraint.
808
+ */
809
+ deferrable?: UniqueDeferrable;
810
+ }
811
+ export interface NonUniqueIndexOptionsArg<Name extends string = string> extends BaseUniqueOptionsArg<Name> {
812
+ unique?: false;
813
+ deferrable?: never;
814
+ }
815
+ export interface UniqueIndexOptionsArg<Name extends string = string> extends UniqueOptionsArg<Name> {
816
+ unique: true;
817
+ }
818
+ export type OptionsArg<Name extends string = string> = NonUniqueIndexOptionsArg<Name> | UniqueIndexOptionsArg<Name>;
819
+ export type TsVectorArg = OptionsArg & TsVectorOptions;
820
+ export interface Options extends UniqueOptionsArg, TsVectorOptions {
802
821
  unique?: boolean;
803
822
  }
804
- export interface TsVectorArg extends OptionsArg, TsVectorOptions {}
805
- export type Options = TsVectorArg;
806
823
  export interface UniqueColumnArg<Name extends string = string> extends ColumnOptions, UniqueOptionsArg<Name> {
807
824
  expression?: string;
808
825
  }
809
- export interface ColumnArg extends UniqueColumnArg {
810
- unique?: boolean;
826
+ export interface NonUniqueColumnArg<Name extends string = string> extends ColumnOptions, BaseUniqueOptionsArg<Name> {
827
+ expression?: string;
828
+ unique?: false;
829
+ deferrable?: never;
830
+ }
831
+ export interface UniqueIndexColumnArg<Name extends string = string> extends UniqueColumnArg<Name> {
832
+ unique: true;
833
+ }
834
+ export interface ColumnOptionsData extends ColumnOptions, Options {
835
+ expression?: string;
811
836
  }
837
+ export type ColumnArg<Name extends string = string> = NonUniqueColumnArg<Name> | UniqueIndexColumnArg<Name>;
812
838
  interface TsVectorOptions {
813
839
  language?: string;
814
840
  languageColumn?: string;
815
841
  tsVector?: boolean;
816
842
  }
817
- export interface TsVectorColumnArg extends ColumnArg, TsVectorOptions {}
843
+ export type TsVectorColumnArg = ColumnArg & TsVectorOptions;
818
844
  export interface ExpressionOptions extends ColumnOptions {
819
845
  expression: string;
820
846
  }
@@ -8231,7 +8257,7 @@ declare abstract class Column$1 {
8231
8257
  data: Column['data'];
8232
8258
  dataType: string;
8233
8259
  }>(this: T, ...args: [options?: TableData$1.Index.TsVectorColumnArg]): T;
8234
- unique<T extends Column.Pick.Data, const Options extends TableData$1.Index.ColumnArg>(this: T, ...args: [options?: Options]): T & Column.Modifiers.IsUnique<Options['name'] & string>;
8260
+ unique<T extends Column.Pick.Data, const Options extends TableData$1.Index.UniqueColumnArg>(this: T, ...args: [options?: Options]): T & Column.Modifiers.IsUnique<Options['name'] & string>;
8235
8261
  /**
8236
8262
  * Add [EXCLUDE constraint](https://www.postgresql.org/docs/current/sql-createtable.html#SQL-CREATETABLE-EXCLUDE) to the column.
8237
8263
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pqb",
3
- "version": "0.71.0",
3
+ "version": "0.71.1",
4
4
  "description": "Postgres query builder",
5
5
  "keywords": [
6
6
  "pg",