pqb 0.51.3 → 0.51.5

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.mjs CHANGED
@@ -878,12 +878,6 @@ const columnCode = (type, ctx, key, code) => {
878
878
  }
879
879
  if (data.explicitSelect) addCode(code, ".select(false)");
880
880
  if (data.isNullable) addCode(code, ".nullable()");
881
- if (data.encode && data.encode !== data.defaultEncode)
882
- addCode(code, `.encode(${data.encode.toString()})`);
883
- if (data.parse && data.parse !== data.defaultParse)
884
- addCode(code, `.parse(${data.parse.toString()})`);
885
- if (type.data.parseNull)
886
- addCode(code, `.parseNull(${type.data.parseNull.toString()})`);
887
881
  if (data.as) addCode(code, `.as(${data.as.toCode(ctx, key)})`);
888
882
  if (data.default !== void 0 && data.default !== data.defaultDefault && (!ctx.migration || typeof data.default !== "function")) {
889
883
  addCode(
@@ -930,6 +924,60 @@ const getSqlText = (sql) => {
930
924
  throw new Error(`Batch SQL is not supported in this query`);
931
925
  };
932
926
 
927
+ class CustomTypeColumn extends ColumnType {
928
+ constructor(schema, dataType, extension) {
929
+ super(
930
+ schema,
931
+ schema.unknown(),
932
+ schema.unknown(),
933
+ schema.unknown()
934
+ );
935
+ this.dataType = dataType;
936
+ this.operators = Operators.any;
937
+ this.data.isOfCustomType = true;
938
+ this.data.extension = extension;
939
+ }
940
+ toCode(ctx, key) {
941
+ return columnCode(this, ctx, key, `type(${singleQuote(this.dataType)})`);
942
+ }
943
+ as(column) {
944
+ const c = setColumnData(
945
+ this,
946
+ "as",
947
+ column
948
+ );
949
+ c.inputSchema = column.inputSchema;
950
+ c.outputSchema = column.outputSchema;
951
+ c.querySchema = column.querySchema;
952
+ return c;
953
+ }
954
+ }
955
+ class DomainColumn extends CustomTypeColumn {
956
+ toCode(ctx, key) {
957
+ return columnCode(this, ctx, key, `domain(${singleQuote(this.dataType)})`);
958
+ }
959
+ }
960
+
961
+ class EnumColumn extends ColumnType {
962
+ constructor(schema, enumName, options, schemaType) {
963
+ super(schema, schemaType);
964
+ this.enumName = enumName;
965
+ this.options = options;
966
+ this.operators = Operators.any;
967
+ this.dataType = "enum";
968
+ this.inputSchema = this.outputSchema = this.querySchema = schemaType;
969
+ }
970
+ toCode(ctx, key) {
971
+ const options = ctx.migration ? "" : `, [${this.options.map((option) => `'${option}'`).join(", ")}]`;
972
+ return columnCode(this, ctx, key, `enum('${this.enumName}'${options})`);
973
+ }
974
+ toSQL() {
975
+ const name = this.enumName;
976
+ const index = name.indexOf(".");
977
+ return `"${index === -1 ? name : `${name.slice(0, index)}"."${name.slice(index + 1)}`}"`;
978
+ }
979
+ }
980
+
933
981
  const addColumnParserToQuery = (q, key, column) => {
934
982
  if (column._parse) {
935
983
  setObjectValueImmutable(
@@ -941,7 +989,7 @@ const addColumnParserToQuery = (q, key, column) => {
941
989
  }
942
990
  };
943
991
  const setColumnDefaultParse = (column, parse) => {
944
- column.data.parse = column.data.defaultParse = parse;
992
+ column.data.parse = parse;
945
993
  column._parse = (input) => input === null ? null : parse(input);
946
994
  };
947
995
  const setColumnParse = (column, fn, outputSchema) => {
@@ -966,6 +1014,9 @@ const setColumnEncode = (column, fn, inputSchema) => {
966
1014
  c.data = { ...column.data, encode: fn };
967
1015
  return c;
968
1016
  };
1017
+ const getColumnBaseType = (column, domainsMap, type) => {
1018
+ return column instanceof EnumColumn ? "text" : column instanceof DomainColumn ? domainsMap[column.dataType]?.dataType : type;
1019
+ };
969
1020
 
970
1021
  function setQueryOperators(query, operators) {
971
1022
  const q = query.q;
@@ -1641,7 +1692,7 @@ class DateBaseColumn extends ColumnType {
1641
1692
  this.operators = Operators.date;
1642
1693
  this.asNumber = schema.dateAsNumber;
1643
1694
  this.asDate = schema.dateAsDate;
1644
- this.data.encode = this.data.defaultEncode = dateTimeEncode;
1695
+ this.data.encode = dateTimeEncode;
1645
1696
  }
1646
1697
  }
1647
1698
  class DateColumn extends DateBaseColumn {
@@ -1785,13 +1836,13 @@ class BooleanColumn extends ColumnType {
1785
1836
  }
1786
1837
  const parseItem = (input) => input[0] === "t";
1787
1838
 
1788
- const encode = (x) => x === null ? x : JSON.stringify(x);
1839
+ const encode$1 = (x) => x === null ? x : JSON.stringify(x);
1789
1840
  class JSONColumn extends ColumnType {
1790
1841
  constructor(schema, inputType) {
1791
1842
  super(schema, inputType);
1792
1843
  this.dataType = "jsonb";
1793
1844
  this.operators = Operators.json;
1794
- this.data.encode = this.data.defaultEncode = encode;
1845
+ this.data.encode = encode$1;
1795
1846
  this.data.parseItem = JSON.parse;
1796
1847
  }
1797
1848
  toCode(ctx, key) {
@@ -2378,33 +2429,13 @@ const _joinLateral = (self, type, arg, as) => {
2378
2429
  return q;
2379
2430
  };
2380
2431
 
2381
- class EnumColumn extends ColumnType {
2382
- constructor(schema, enumName, options, schemaType) {
2383
- super(schema, schemaType);
2384
- this.enumName = enumName;
2385
- this.options = options;
2386
- this.operators = Operators.any;
2387
- this.dataType = "enum";
2388
- this.inputSchema = this.outputSchema = this.querySchema = schemaType;
2389
- }
2390
- toCode(ctx, key) {
2391
- const options = ctx.migration ? "" : `, [${this.options.map((option) => `'${option}'`).join(", ")}]`;
2392
- return columnCode(this, ctx, key, `enum('${this.enumName}'${options})`);
2393
- }
2394
- toSQL() {
2395
- const name = this.enumName;
2396
- const index = name.indexOf(".");
2397
- return `"${index === -1 ? name : `${name.slice(0, index)}"."${name.slice(index + 1)}`}"`;
2398
- }
2399
- }
2400
-
2401
2432
  class ArrayColumn extends ColumnType {
2402
2433
  constructor(schema, item, inputType, outputType, queryType) {
2403
2434
  super(schema, inputType, outputType, queryType);
2404
2435
  this.dataType = "array";
2405
2436
  this.operators = Operators.array;
2406
2437
  item.data.isNullable = true;
2407
- setColumnDefaultParse(this, (input) => parse.call(this, input));
2438
+ setColumnDefaultParse(this, (input) => parse$1.call(this, input));
2408
2439
  this.data.item = item instanceof ArrayColumn ? item.data.item : item;
2409
2440
  this.data.name = item.data.name;
2410
2441
  this.data.arrayDims = item instanceof ArrayColumn ? item.data.arrayDims + 1 : 1;
@@ -2429,7 +2460,7 @@ class ArrayColumn extends ColumnType {
2429
2460
  return columnCode(this, ctx, key, code);
2430
2461
  }
2431
2462
  }
2432
- const parse = function(source) {
2463
+ const parse$1 = function(source) {
2433
2464
  if (typeof source !== "string") return source;
2434
2465
  const entries = [];
2435
2466
  parsePostgresArray(source, entries, this.data.item.data.parseItem);
@@ -2692,14 +2723,10 @@ const defaultSchemaConfig = {
2692
2723
  return this;
2693
2724
  },
2694
2725
  dateAsNumber() {
2695
- const c = this.parse(Date.parse);
2696
- c.data.defaultParse = Date.parse;
2697
- return c;
2726
+ return this.parse(Date.parse);
2698
2727
  },
2699
2728
  dateAsDate() {
2700
- const c = this.parse(parseDateToDate);
2701
- c.data.defaultParse = parseDateToDate;
2702
- return c;
2729
+ return this.parse(parseDateToDate);
2703
2730
  },
2704
2731
  enum(dataType, type) {
2705
2732
  return new EnumColumn(defaultSchemaConfig, dataType, type, void 0);
@@ -2911,10 +2938,9 @@ class Transaction {
2911
2938
  await adapter.query(sql);
2912
2939
  if (log) log.afterQuery(sql, logData);
2913
2940
  if (transactionId === trx.testTransactionCount) {
2914
- await runAfterCommit(
2915
- trx.afterCommit,
2916
- result
2917
- );
2941
+ const { afterCommit } = trx;
2942
+ trx.afterCommit = void 0;
2943
+ await runAfterCommit(afterCommit, result);
2918
2944
  }
2919
2945
  return result;
2920
2946
  } finally {
@@ -7149,46 +7175,8 @@ const joinSubQuery = (q, sub) => {
7149
7175
  );
7150
7176
  };
7151
7177
 
7152
- class CustomTypeColumn extends ColumnType {
7153
- constructor(schema, dataType, extension) {
7154
- super(
7155
- schema,
7156
- schema.unknown(),
7157
- schema.unknown(),
7158
- schema.unknown()
7159
- );
7160
- this.dataType = dataType;
7161
- this.operators = Operators.any;
7162
- this.data.isOfCustomType = true;
7163
- this.data.extension = extension;
7164
- }
7165
- toCode(ctx, key) {
7166
- return columnCode(this, ctx, key, `type(${singleQuote(this.dataType)})`);
7167
- }
7168
- as(column) {
7169
- const c = setColumnData(
7170
- this,
7171
- "as",
7172
- column
7173
- );
7174
- c.inputSchema = column.inputSchema;
7175
- c.outputSchema = column.outputSchema;
7176
- c.querySchema = column.querySchema;
7177
- return c;
7178
- }
7179
- }
7180
- class DomainColumn extends CustomTypeColumn {
7181
- toCode(ctx, key) {
7182
- return columnCode(this, ctx, key, `domain(${singleQuote(this.dataType)})`);
7183
- }
7184
- }
7185
-
7186
7178
  const defaultSrid = 4326;
7187
- const defaultEncode = ({
7188
- srid = defaultSrid,
7189
- lon,
7190
- lat
7191
- }) => {
7179
+ const encode = ({ srid = defaultSrid, lon, lat }) => {
7192
7180
  const arr = new Uint8Array(25);
7193
7181
  const view = new DataView(arr.buffer);
7194
7182
  view.setInt8(0, 1);
@@ -7204,8 +7192,8 @@ class PostgisGeographyPointColumn extends ColumnType {
7204
7192
  super(schema, schema.geographyPointSchema());
7205
7193
  this.dataType = "geography(Point)";
7206
7194
  this.operators = Operators.any;
7207
- setColumnDefaultParse(this, defaultParse);
7208
- this.data.encode = this.data.defaultEncode = defaultEncode;
7195
+ setColumnDefaultParse(this, parse);
7196
+ this.data.encode = encode;
7209
7197
  }
7210
7198
  static isDefaultPoint(typmod) {
7211
7199
  return typmodType(typmod) === "Point" && typmodSrid(typmod) === defaultSrid;
@@ -7214,8 +7202,9 @@ class PostgisGeographyPointColumn extends ColumnType {
7214
7202
  return columnCode(this, ctx, key, `geography.point()`);
7215
7203
  }
7216
7204
  }
7217
- PostgisGeographyPointColumn.encode = defaultEncode;
7218
- const defaultParse = (input) => {
7205
+ // It is used by test-factory
7206
+ PostgisGeographyPointColumn.encode = encode;
7207
+ const parse = (input) => {
7219
7208
  const bytes = new Uint8Array(20);
7220
7209
  for (let i = 0; i < 40; i += 2) {
7221
7210
  bytes[i / 2] = parseInt(input.slice(10 + i, 12 + i), 16);
@@ -13202,5 +13191,5 @@ function copyTableData(query, arg) {
13202
13191
  return q;
13203
13192
  }
13204
13193
 
13205
- export { Adapter, AfterCommitError, AggregateMethods, ArrayColumn, AsMethods, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BoxColumn, ByteaColumn, CidrColumn, CircleColumn, CitextColumn, Clear, ColumnRefExpression, ColumnType, ComputedColumn, Create, CustomTypeColumn, DateBaseColumn, DateColumn, DateTimeBaseClass, DateTimeTzBaseClass, Db, DecimalColumn, Delete, DomainColumn, DoublePrecisionColumn, DynamicRawSQL, EnumColumn, ExpressionMethods, FnExpression, For, FromMethods, Having, InetColumn, IntegerBaseColumn, IntegerColumn, IntervalColumn, JSONColumn, JSONTextColumn, Join, JsonMethods, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, OnConflictQueryBuilder, OnMethods, Operators, OrExpression, OrchidOrmError, OrchidOrmInternalError, PathColumn, PointColumn, PolygonColumn, PostgisGeographyPointColumn, QueryError, QueryGet, QueryHooks, QueryLog, QueryMethods, QueryUpsertOrCreate, RawSQL, RealColumn, RefExpression, SearchMethods, Select, SerialColumn, SmallIntColumn, SmallSerialColumn, SqlMethod, StringColumn, TextBaseColumn, TextColumn, Then, TimeColumn, TimestampColumn, TimestampTZColumn, Transaction, TransactionAdapter, TransformMethods, TsQueryColumn, TsVectorColumn, UUIDColumn, UnhandledTypeError, Union, UnknownColumn, Update, VarCharColumn, VirtualColumn, Where, WithMethods, XMLColumn, _afterCommitError, _clone, _getSelectableColumn, _initQueryBuilder, _queryAfterSaveCommit, _queryAll, _queryAs, _queryChangeCounter, _queryCreate, _queryCreateFrom, _queryCreateMany, _queryCreateManyFrom, _queryCreateManyRaw, _queryCreateRaw, _queryDefaults, _queryDelete, _queryExec, _queryFindBy, _queryFindByOptional, _queryGet, _queryGetOptional, _queryHookAfterCreate, _queryHookAfterCreateCommit, _queryHookAfterDelete, _queryHookAfterDeleteCommit, _queryHookAfterQuery, _queryHookAfterSave, _queryHookAfterUpdate, _queryHookAfterUpdateCommit, _queryHookBeforeCreate, _queryHookBeforeDelete, _queryHookBeforeQuery, _queryHookBeforeSave, _queryHookBeforeUpdate, _queryInsert, _queryInsertFrom, _queryInsertMany, _queryInsertManyFrom, _queryInsertManyRaw, _queryInsertRaw, _queryJoinOn, _queryJoinOnJsonPathEquals, _queryJoinOrOn, _queryOr, _queryOrNot, _queryResolveAlias, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUnion, _queryUpdate, _queryUpdateOrThrow, _queryUpdateRaw, _queryWhere, _queryWhereExists, _queryWhereIn, _queryWhereNot, _queryWhereNotOneOf, _queryWhereNotSql, _queryWhereOneOf, _queryWhereSql, addColumnParserToQuery, addParserForRawExpression, addParserForSelectItem, addQueryOn, anyShape, applyComputedColumns, assignDbDataToColumn, checkIfASimpleQuery, cloneQueryBaseUnscoped, columnCheckToCode, columnCode, columnExcludesToCode, columnForeignKeysToCode, columnIndexesToCode, columnsShapeToCode, commitSql$1 as commitSql, constraintInnerToCode, constraintToCode, copyTableData, countSelect, createDb, defaultSchemaConfig, escapeForLog, escapeForMigration, escapeString, excludeInnerToCode, excludeToCode, extendQuery, filterResult, foreignKeyArgumentToCode, getClonedQueryData, getColumnInfo, getColumnTypes, getFullColumnTable, getPrimaryKeys, getQueryAs, getShapeFromSelect, getSqlText, handleResult, identityToCode, indexInnerToCode, indexToCode, isDefaultTimeStamp, isQueryReturnsAll, isSelectingCount, joinSubQuery, logParamToLogObject, makeColumnTypes, makeColumnsByType, makeFnExpression, makeRegexToFindInSql, parseRecord, parseTableData, parseTableDataInput, postgisTypmodToSql, primaryKeyInnerToCode, processComputedBatches, processComputedResult, processSelectArg, pushLimitSQL, pushQueryArrayImmutable, pushQueryOn, pushQueryOnForOuter, pushQueryOrOn, pushQueryValueImmutable, pushTableDataCode, queryFrom, queryFromSql, queryJson, queryMethodByReturnType, queryTypeWithLimitOne, queryWrap, raw, referencesArgsToCode, resolveSubQueryCallbackV2, rollbackSql$1 as rollbackSql, saveSearchAlias, setColumnDefaultParse, setColumnEncode, setColumnParse, setColumnParseNull, setParserForSelectedString, setQueryObjectValueImmutable, setQueryOperators, simplifyColumnDefault, sqlFn, sqlQueryArgsToExpression, tableDataMethods, templateLiteralToSQL, testTransaction, throwIfJoinLateral, throwIfNoWhere, toSQL };
13194
+ export { Adapter, AfterCommitError, AggregateMethods, ArrayColumn, AsMethods, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BoxColumn, ByteaColumn, CidrColumn, CircleColumn, CitextColumn, Clear, ColumnRefExpression, ColumnType, ComputedColumn, Create, CustomTypeColumn, DateBaseColumn, DateColumn, DateTimeBaseClass, DateTimeTzBaseClass, Db, DecimalColumn, Delete, DomainColumn, DoublePrecisionColumn, DynamicRawSQL, EnumColumn, ExpressionMethods, FnExpression, For, FromMethods, Having, InetColumn, IntegerBaseColumn, IntegerColumn, IntervalColumn, JSONColumn, JSONTextColumn, Join, JsonMethods, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, OnConflictQueryBuilder, OnMethods, Operators, OrExpression, OrchidOrmError, OrchidOrmInternalError, PathColumn, PointColumn, PolygonColumn, PostgisGeographyPointColumn, QueryError, QueryGet, QueryHooks, QueryLog, QueryMethods, QueryUpsertOrCreate, RawSQL, RealColumn, RefExpression, SearchMethods, Select, SerialColumn, SmallIntColumn, SmallSerialColumn, SqlMethod, StringColumn, TextBaseColumn, TextColumn, Then, TimeColumn, TimestampColumn, TimestampTZColumn, Transaction, TransactionAdapter, TransformMethods, TsQueryColumn, TsVectorColumn, UUIDColumn, UnhandledTypeError, Union, UnknownColumn, Update, VarCharColumn, VirtualColumn, Where, WithMethods, XMLColumn, _afterCommitError, _clone, _getSelectableColumn, _initQueryBuilder, _queryAfterSaveCommit, _queryAll, _queryAs, _queryChangeCounter, _queryCreate, _queryCreateFrom, _queryCreateMany, _queryCreateManyFrom, _queryCreateManyRaw, _queryCreateRaw, _queryDefaults, _queryDelete, _queryExec, _queryFindBy, _queryFindByOptional, _queryGet, _queryGetOptional, _queryHookAfterCreate, _queryHookAfterCreateCommit, _queryHookAfterDelete, _queryHookAfterDeleteCommit, _queryHookAfterQuery, _queryHookAfterSave, _queryHookAfterUpdate, _queryHookAfterUpdateCommit, _queryHookBeforeCreate, _queryHookBeforeDelete, _queryHookBeforeQuery, _queryHookBeforeSave, _queryHookBeforeUpdate, _queryInsert, _queryInsertFrom, _queryInsertMany, _queryInsertManyFrom, _queryInsertManyRaw, _queryInsertRaw, _queryJoinOn, _queryJoinOnJsonPathEquals, _queryJoinOrOn, _queryOr, _queryOrNot, _queryResolveAlias, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUnion, _queryUpdate, _queryUpdateOrThrow, _queryUpdateRaw, _queryWhere, _queryWhereExists, _queryWhereIn, _queryWhereNot, _queryWhereNotOneOf, _queryWhereNotSql, _queryWhereOneOf, _queryWhereSql, addColumnParserToQuery, addParserForRawExpression, addParserForSelectItem, addQueryOn, anyShape, applyComputedColumns, assignDbDataToColumn, checkIfASimpleQuery, cloneQueryBaseUnscoped, columnCheckToCode, columnCode, columnExcludesToCode, columnForeignKeysToCode, columnIndexesToCode, columnsShapeToCode, commitSql$1 as commitSql, constraintInnerToCode, constraintToCode, copyTableData, countSelect, createDb, defaultSchemaConfig, escapeForLog, escapeForMigration, escapeString, excludeInnerToCode, excludeToCode, extendQuery, filterResult, foreignKeyArgumentToCode, getClonedQueryData, getColumnBaseType, getColumnInfo, getColumnTypes, getFullColumnTable, getPrimaryKeys, getQueryAs, getShapeFromSelect, getSqlText, handleResult, identityToCode, indexInnerToCode, indexToCode, isDefaultTimeStamp, isQueryReturnsAll, isSelectingCount, joinSubQuery, logParamToLogObject, makeColumnTypes, makeColumnsByType, makeFnExpression, makeRegexToFindInSql, parseRecord, parseTableData, parseTableDataInput, postgisTypmodToSql, primaryKeyInnerToCode, processComputedBatches, processComputedResult, processSelectArg, pushLimitSQL, pushQueryArrayImmutable, pushQueryOn, pushQueryOnForOuter, pushQueryOrOn, pushQueryValueImmutable, pushTableDataCode, queryFrom, queryFromSql, queryJson, queryMethodByReturnType, queryTypeWithLimitOne, queryWrap, raw, referencesArgsToCode, resolveSubQueryCallbackV2, rollbackSql$1 as rollbackSql, saveSearchAlias, setColumnDefaultParse, setColumnEncode, setColumnParse, setColumnParseNull, setParserForSelectedString, setQueryObjectValueImmutable, setQueryOperators, simplifyColumnDefault, sqlFn, sqlQueryArgsToExpression, tableDataMethods, templateLiteralToSQL, testTransaction, throwIfJoinLateral, throwIfNoWhere, toSQL };
13206
13195
  //# sourceMappingURL=index.mjs.map