pqb 0.17.6 → 0.17.8

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
@@ -2863,24 +2863,24 @@ type JoinArgs<T extends QueryBase, Arg extends JoinFirstArg<T>> = Arg extends Qu
2863
2863
  */
2864
2864
  type JoinSelectable<Q extends Query> = keyof Q['result'] | `${AliasOrTable<Q>}.${StringKey<keyof Q['result']>}`;
2865
2865
  type JoinQueryArgs<T extends QueryBase, Q extends Query> = [
2866
- conditions: Record<JoinSelectable<Q>, Selectable<T> | Expression> | Expression | true
2866
+ conditions: Record<JoinSelectable<Q>, keyof T['selectable'] | Expression> | Expression | true
2867
2867
  ] | [
2868
2868
  leftColumn: JoinSelectable<Q> | Expression,
2869
- rightColumn: Selectable<T> | Expression
2869
+ rightColumn: keyof T['selectable'] | Expression
2870
2870
  ] | [
2871
2871
  leftColumn: JoinSelectable<Q> | Expression,
2872
2872
  op: string,
2873
- rightColumn: Selectable<T> | Expression
2873
+ rightColumn: keyof T['selectable'] | Expression
2874
2874
  ];
2875
2875
  type JoinWithArgs<T extends QueryBase, W extends keyof T['withData']> = [
2876
- conditions: Record<WithSelectable<T, W>, Selectable<T> | Expression> | Expression
2876
+ conditions: Record<WithSelectable<T, W>, keyof T['selectable'] | Expression> | Expression
2877
2877
  ] | [
2878
2878
  leftColumn: WithSelectable<T, W> | Expression,
2879
- rightColumn: Selectable<T> | Expression
2879
+ rightColumn: keyof T['selectable'] | Expression
2880
2880
  ] | [
2881
2881
  leftColumn: WithSelectable<T, W> | Expression,
2882
2882
  op: string,
2883
- rightColumn: Selectable<T> | Expression
2883
+ rightColumn: keyof T['selectable'] | Expression
2884
2884
  ];
2885
2885
  /**
2886
2886
  * Result of all `join` methods, not `joinLateral`.
@@ -5672,7 +5672,6 @@ type Query = QueryBase & QueryMethods<ColumnTypesBase> & {
5672
5672
  shape: ColumnsShape;
5673
5673
  singlePrimaryKey: string;
5674
5674
  primaryKeys: string[];
5675
- type: Record<string, unknown>;
5676
5675
  inputType: Record<string, unknown>;
5677
5676
  q: QueryData;
5678
5677
  result: ColumnsShapeBase;
@@ -5686,7 +5685,6 @@ type Query = QueryBase & QueryMethods<ColumnTypesBase> & {
5686
5685
  error: new (message: string, length: number, name: QueryErrorName) => QueryError;
5687
5686
  isSubQuery: boolean;
5688
5687
  };
5689
- type Selectable<T extends QueryBase> = StringKey<keyof T['selectable']>;
5690
5688
  type SelectableOfType<T extends QueryBase, Type> = StringKey<{
5691
5689
  [K in keyof T['selectable']]: T['selectable'][K]['column']['type'] extends Type | null ? K : never;
5692
5690
  }[keyof T['selectable']]>;
@@ -6767,9 +6765,7 @@ type ForeignKeyAction = 'NO ACTION' | 'RESTRICT' | 'CASCADE' | 'SET NULL' | 'SET
6767
6765
  type ForeignKey<Table extends string, Columns extends string[]> = ({
6768
6766
  fn(): new () => {
6769
6767
  table: Table;
6770
- columns: {
6771
- shape: ColumnsShape;
6772
- };
6768
+ columns: ColumnsShape;
6773
6769
  };
6774
6770
  } | {
6775
6771
  table: Table;
@@ -7135,9 +7131,26 @@ type Arg = {
7135
7131
  $queryBuilder: Query;
7136
7132
  } | Query;
7137
7133
  declare const testTransaction: {
7134
+ /**
7135
+ * Start a test transaction.
7136
+ * The returned promise is resolved immediately when transaction starts, not waiting for it to end.
7137
+ *
7138
+ * @param arg - ORM instance or a queryable instance (such as db.someTable).
7139
+ */
7138
7140
  start(arg: Arg): Promise<void>;
7141
+ /**
7142
+ * Rollback a test transaction.
7143
+ *
7144
+ * @param arg - the same ORM or query argument passed into the `testTransaction.start`.
7145
+ */
7139
7146
  rollback(arg: Arg): Promise<void> | undefined;
7147
+ /**
7148
+ * Will roll back the current `testTransaction` (won't have any effect if it was rolled back already),
7149
+ * and if there's no nested test transactions left, it will close the db connection.
7150
+ *
7151
+ * @param arg - the same ORM or query argument passed into the `testTransaction.start`.
7152
+ */
7140
7153
  close(arg: Arg): Promise<void>;
7141
7154
  };
7142
7155
 
7143
- export { Adapter, AdapterConfig, AdapterOptions, AddQuerySelect, AddQueryWith, AfterHook, AggregateMethods, AggregateOptions, AliasOrTable, ArrayColumn, ArrayData, ArrayOfColumnsObjects, AsMethods, BaseOperators, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanNullable, BoxColumn, ByteaColumn, CharColumn, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, ColumnData, ColumnExpression, ColumnFromDbParams, ColumnInfo, ColumnInfoMethods, ColumnInfoQueryData, ColumnOperators, ColumnType, ColumnTypes, ColumnsObject, ColumnsShape, CommonQueryData, CopyMethods, CopyOptions, CopyQueryData, Create, CreateCtx, CreateData, CreateKind, CreateMethodsNames, CustomTypeColumn, DateBaseColumn, DateColumn, DateTimeBaseClass, DateTimeTzBaseClass, Db, DbOptions, DbResult, DbTableOptions, DecimalBaseColumn, DecimalColumn, DefaultColumnTypes, Delete, DeleteMethodsNames, DeleteQueryData, DomainColumn, DoublePrecisionColumn, DropMode, EnumColumn, ExpressionOutput, FnExpression, FnExpressionArg, For, ForeignKey, ForeignKeyAction, ForeignKeyMatch, ForeignKeyOptions, From, FromArgs, FromResult, GetArg, GetQueryResult, GetStringArg, Having, HavingItem, HookAction, HookSelect, IdentityColumn, IndexColumnOptions, IndexOptions, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, IsolationLevel, JSONColumn, JSONTextColumn, Join, JoinArgs, JoinCallback, JoinFirstArg, JoinItem, JoinLateralCallback, JoinLateralItem, JoinLateralResult, JoinOverrides, JoinResult, JoinedParsers, JoinedShapes, JsonItem, JsonMethods, JsonModifiers, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, NumberColumn, NumberColumnData, OnConflictItem, OnConflictMergeUpdate, OnConflictQueryBuilder, OnQueryBuilder, Operator, Operators, OrchidOrmError, OrchidOrmInternalError, OrderArg, OrderArgs, OrderItem, OrderTsQueryConfig, Over, PathColumn, PluckResultColumnType, PointColumn, PolygonColumn, Query, QueryAfterHook, QueryArraysResult, QueryBase, QueryBeforeHook, QueryData, QueryError, QueryErrorName, QueryGet, QueryHookSelect, QueryHooks, QueryLog, QueryLogObject, QueryLogOptions, QueryLogger, QueryMethods, QueryResult, QueryReturnType, QueryReturnsAll, QuerySourceItem, QueryTransform, QueryTransformFn, QueryUpsertOrCreate, QueryWithTable, RawSQL, RawSqlMethods, RealColumn, RelationConfigBase, RelationQuery, RelationQueryBase, RelationSubQueries, RelationsBase, SearchArg, SearchMethods, SearchWeight, Select, SelectAggMethods, SelectArg, SelectItem, SelectQueryBuilder, SelectQueryData, Selectable, SelectableBase, SelectableFromShape, SelectableOfType, SelectableOrExpression, SelectableOrExpressionOfType, SerialColumn, SerialColumnData, SetQueryKind, SetQueryReturns, SetQueryReturnsAll, SetQueryReturnsColumn, SetQueryReturnsColumnInfo, SetQueryReturnsColumnOptional, SetQueryReturnsOne, SetQueryReturnsOneOptional, SetQueryReturnsPluck, SetQueryReturnsRowCount, SetQueryReturnsRows, SetQueryReturnsValue, SetQueryReturnsValueOptional, SetQueryReturnsVoid, SetQueryTableAlias, SetQueryWith, SimpleJoinItem, SingleColumnIndexOptions, SmallIntColumn, SmallSerialColumn, SortDir, StringColumn, SubQueryBuilder, TableData, TextBaseColumn, TextColumn, TextColumnData, Then, TimeColumn, TimeInterval, TimestampColumn, TimestampTZColumn, ToSQLCtx, ToSQLOptions, Transaction, TransactionAdapter, TransactionOptions, TransformMethods, TruncateQueryData, TsQueryColumn, TsVectorColumn, TypeParsers, UUIDColumn, UnhandledTypeError, Union, UnionArg, UnionItem, UnionKind, UnknownColumn, Update, UpdateCtx, UpdateData, UpdateQueryData, UpdateQueryDataItem, UpdateQueryDataObject, UpdatedAtDataInjector, UpsertCreateArg, UpsertData, UpsertResult, UpsertThis, VarCharColumn, VirtualColumn, Where, WhereArg, WhereArgs, WhereInArg, WhereInColumn, WhereInItem, WhereInValues, WhereItem, WhereJsonPathEqualsItem, WhereOnItem, WhereOnJoinItem, WhereQueryBase, WhereQueryBuilder, WhereResult, WhereSearchItem, WhereSearchResult, WindowArg, WindowArgDeclaration, WindowDeclaration, WindowItem, With, WithDataBase, WithDataItem, WithItem, WithOptions, XMLColumn, addOr, addOrNot, addParserForRawExpression, addParserForSelectItem, addQueryOn, addWhere, addWhereIn, addWhereNot, anyShape, checkIfASimpleQuery, cloneQueryArrays, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnTypes, columnsByType, columnsShapeToCode, constraintPropsToCode, constraintToCode, createDb, createOperator, extendQuery, foreignKeyArgumentToCode, getClonedQueryData, getColumnTypes, getConstraintKind, getQueryAs, getShapeFromSelect, getSubQueryBuilder, getTableData, handleResult, identityToCode, indexToCode, instantiateColumn, isQueryReturnsAll, isSelectingCount, joinSubQuery, logColors, logParamToLogObject, makeColumnFn, makeColumnFnClass, makeRegexToFindInSql, makeSQL, newTableData, parseRecord, parseResult, primaryKeyToCode, processSelectArg, pushQueryArray, pushQueryOn, pushQueryOrOn, pushQueryValue, queryMethodByReturnType, queryTypeWithLimitOne, quote, quoteString, raw, referencesArgsToCode, resetTableData, resolveSubQueryCallback, saveSearchAlias, setQueryObjectValue, simplifyColumnDefault, templateLiteralToSQL, testTransaction, throwIfNoWhere, toSQL, toSQLCacheKey };
7156
+ export { Adapter, AdapterConfig, AdapterOptions, AddQuerySelect, AddQueryWith, AfterHook, AggregateMethods, AggregateOptions, AliasOrTable, ArrayColumn, ArrayData, ArrayOfColumnsObjects, AsMethods, BaseOperators, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanNullable, BoxColumn, ByteaColumn, CharColumn, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, ColumnData, ColumnExpression, ColumnFromDbParams, ColumnInfo, ColumnInfoMethods, ColumnInfoQueryData, ColumnOperators, ColumnType, ColumnTypes, ColumnsObject, ColumnsShape, CommonQueryData, CopyMethods, CopyOptions, CopyQueryData, Create, CreateCtx, CreateData, CreateKind, CreateMethodsNames, CustomTypeColumn, DateBaseColumn, DateColumn, DateTimeBaseClass, DateTimeTzBaseClass, Db, DbOptions, DbResult, DbTableOptions, DecimalBaseColumn, DecimalColumn, DefaultColumnTypes, Delete, DeleteMethodsNames, DeleteQueryData, DomainColumn, DoublePrecisionColumn, DropMode, EnumColumn, ExpressionOutput, FnExpression, FnExpressionArg, For, ForeignKey, ForeignKeyAction, ForeignKeyMatch, ForeignKeyOptions, From, FromArgs, FromResult, GetArg, GetQueryResult, GetStringArg, Having, HavingItem, HookAction, HookSelect, IdentityColumn, IndexColumnOptions, IndexOptions, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, IsolationLevel, JSONColumn, JSONTextColumn, Join, JoinArgs, JoinCallback, JoinFirstArg, JoinItem, JoinLateralCallback, JoinLateralItem, JoinLateralResult, JoinOverrides, JoinResult, JoinedParsers, JoinedShapes, JsonItem, JsonMethods, JsonModifiers, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, NumberColumn, NumberColumnData, OnConflictItem, OnConflictMergeUpdate, OnConflictQueryBuilder, OnQueryBuilder, Operator, Operators, OrchidOrmError, OrchidOrmInternalError, OrderArg, OrderArgs, OrderItem, OrderTsQueryConfig, Over, PathColumn, PluckResultColumnType, PointColumn, PolygonColumn, Query, QueryAfterHook, QueryArraysResult, QueryBase, QueryBeforeHook, QueryData, QueryError, QueryErrorName, QueryGet, QueryHookSelect, QueryHooks, QueryLog, QueryLogObject, QueryLogOptions, QueryLogger, QueryMethods, QueryResult, QueryReturnType, QueryReturnsAll, QuerySourceItem, QueryTransform, QueryTransformFn, QueryUpsertOrCreate, QueryWithTable, RawSQL, RawSqlMethods, RealColumn, RelationConfigBase, RelationQuery, RelationQueryBase, RelationSubQueries, RelationsBase, SearchArg, SearchMethods, SearchWeight, Select, SelectAggMethods, SelectArg, SelectItem, SelectQueryBuilder, SelectQueryData, SelectableBase, SelectableFromShape, SelectableOfType, SelectableOrExpression, SelectableOrExpressionOfType, SerialColumn, SerialColumnData, SetQueryKind, SetQueryReturns, SetQueryReturnsAll, SetQueryReturnsColumn, SetQueryReturnsColumnInfo, SetQueryReturnsColumnOptional, SetQueryReturnsOne, SetQueryReturnsOneOptional, SetQueryReturnsPluck, SetQueryReturnsRowCount, SetQueryReturnsRows, SetQueryReturnsValue, SetQueryReturnsValueOptional, SetQueryReturnsVoid, SetQueryTableAlias, SetQueryWith, SimpleJoinItem, SingleColumnIndexOptions, SmallIntColumn, SmallSerialColumn, SortDir, StringColumn, SubQueryBuilder, TableData, TextBaseColumn, TextColumn, TextColumnData, Then, TimeColumn, TimeInterval, TimestampColumn, TimestampTZColumn, ToSQLCtx, ToSQLOptions, Transaction, TransactionAdapter, TransactionOptions, TransformMethods, TruncateQueryData, TsQueryColumn, TsVectorColumn, TypeParsers, UUIDColumn, UnhandledTypeError, Union, UnionArg, UnionItem, UnionKind, UnknownColumn, Update, UpdateCtx, UpdateData, UpdateQueryData, UpdateQueryDataItem, UpdateQueryDataObject, UpdatedAtDataInjector, UpsertCreateArg, UpsertData, UpsertResult, UpsertThis, VarCharColumn, VirtualColumn, Where, WhereArg, WhereArgs, WhereInArg, WhereInColumn, WhereInItem, WhereInValues, WhereItem, WhereJsonPathEqualsItem, WhereOnItem, WhereOnJoinItem, WhereQueryBase, WhereQueryBuilder, WhereResult, WhereSearchItem, WhereSearchResult, WindowArg, WindowArgDeclaration, WindowDeclaration, WindowItem, With, WithDataBase, WithDataItem, WithItem, WithOptions, XMLColumn, addOr, addOrNot, addParserForRawExpression, addParserForSelectItem, addQueryOn, addWhere, addWhereIn, addWhereNot, anyShape, checkIfASimpleQuery, cloneQueryArrays, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnTypes, columnsByType, columnsShapeToCode, constraintPropsToCode, constraintToCode, createDb, createOperator, extendQuery, foreignKeyArgumentToCode, getClonedQueryData, getColumnTypes, getConstraintKind, getQueryAs, getShapeFromSelect, getSubQueryBuilder, getTableData, handleResult, identityToCode, indexToCode, instantiateColumn, isQueryReturnsAll, isSelectingCount, joinSubQuery, logColors, logParamToLogObject, makeColumnFn, makeColumnFnClass, makeRegexToFindInSql, makeSQL, newTableData, parseRecord, parseResult, primaryKeyToCode, processSelectArg, pushQueryArray, pushQueryOn, pushQueryOrOn, pushQueryValue, queryMethodByReturnType, queryTypeWithLimitOne, quote, quoteString, raw, referencesArgsToCode, resetTableData, resolveSubQueryCallback, saveSearchAlias, setQueryObjectValue, simplifyColumnDefault, templateLiteralToSQL, testTransaction, throwIfNoWhere, toSQL, toSQLCacheKey };
package/dist/index.js CHANGED
@@ -10195,12 +10195,18 @@ class Rollback extends Error {
10195
10195
  const trxForTest = Symbol("trxForTest");
10196
10196
  const argToDb = (arg) => "$queryBuilder" in arg ? arg.$queryBuilder : arg;
10197
10197
  const testTransaction = {
10198
+ /**
10199
+ * Start a test transaction.
10200
+ * The returned promise is resolved immediately when transaction starts, not waiting for it to end.
10201
+ *
10202
+ * @param arg - ORM instance or a queryable instance (such as db.someTable).
10203
+ */
10198
10204
  start(arg) {
10199
10205
  var _a, _b;
10200
10206
  const db = argToDb(arg);
10201
10207
  const { transactionStorage } = db.internal;
10202
10208
  const { getStore } = transactionStorage;
10203
- const adapter = db.baseQuery.q;
10209
+ const { adapter } = db.baseQuery.q;
10204
10210
  const data = {
10205
10211
  adapter: {
10206
10212
  query: adapter.query,
@@ -10232,17 +10238,30 @@ const testTransaction = {
10232
10238
  });
10233
10239
  });
10234
10240
  },
10241
+ /**
10242
+ * Rollback a test transaction.
10243
+ *
10244
+ * @param arg - the same ORM or query argument passed into the `testTransaction.start`.
10245
+ */
10235
10246
  rollback(arg) {
10236
- var _a, _b;
10247
+ var _a;
10237
10248
  const db = argToDb(arg);
10238
- const data = (_a = db.internal[trxForTest]) == null ? void 0 : _a.pop();
10239
- if (data) {
10240
- (_b = data.reject) == null ? void 0 : _b.call(data, new Rollback());
10241
- Object.assign(db.baseQuery.q.adapter, data.adapter);
10242
- return data.promise;
10249
+ const data = db.internal[trxForTest];
10250
+ const last = data == null ? void 0 : data.pop();
10251
+ if (!last)
10252
+ return;
10253
+ if ((data == null ? void 0 : data.length) === 1) {
10254
+ Object.assign(db.baseQuery.q.adapter, data[0].adapter);
10243
10255
  }
10244
- return;
10256
+ (_a = last.reject) == null ? void 0 : _a.call(last, new Rollback());
10257
+ return last.promise;
10245
10258
  },
10259
+ /**
10260
+ * Will roll back the current `testTransaction` (won't have any effect if it was rolled back already),
10261
+ * and if there's no nested test transactions left, it will close the db connection.
10262
+ *
10263
+ * @param arg - the same ORM or query argument passed into the `testTransaction.start`.
10264
+ */
10246
10265
  async close(arg) {
10247
10266
  var _a;
10248
10267
  const db = argToDb(arg);