pqb 0.39.0 → 0.39.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.
package/dist/index.mjs CHANGED
@@ -1824,12 +1824,14 @@ class BooleanColumn extends ColumnType {
1824
1824
  super(schema, schema.boolean());
1825
1825
  this.dataType = "bool";
1826
1826
  this.operators = Operators.boolean;
1827
- this.parseItem = (input) => input[0] === "t";
1828
1827
  this.data.alias = "boolean";
1829
1828
  }
1830
1829
  toCode(ctx, key) {
1831
1830
  return columnCode(this, ctx, key, "boolean()");
1832
1831
  }
1832
+ parseItem(input) {
1833
+ return input[0] === "t";
1834
+ }
1833
1835
  }
1834
1836
 
1835
1837
  const encodeFn = (x) => x === null ? x : JSON.stringify(x);
@@ -1989,6 +1991,25 @@ const pushDistinctSql = (ctx, table, distinct, quotedAs) => {
1989
1991
  }
1990
1992
  };
1991
1993
 
1994
+ var __accessCheck = (obj, member, msg) => {
1995
+ if (!member.has(obj))
1996
+ throw TypeError("Cannot " + msg);
1997
+ };
1998
+ var __privateGet = (obj, member, getter) => {
1999
+ __accessCheck(obj, member, "read from private field");
2000
+ return getter ? getter.call(obj) : member.get(obj);
2001
+ };
2002
+ var __privateAdd = (obj, member, value) => {
2003
+ if (member.has(obj))
2004
+ throw TypeError("Cannot add the same private member more than once");
2005
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
2006
+ };
2007
+ var __privateSet = (obj, member, value, setter) => {
2008
+ __accessCheck(obj, member, "write to private field");
2009
+ setter ? setter.call(obj, value) : member.set(obj, value);
2010
+ return value;
2011
+ };
2012
+ var _query;
1992
2013
  class OrchidOrmError extends Error {
1993
2014
  }
1994
2015
  class NotFoundError extends OrchidOrmError {
@@ -2000,9 +2021,14 @@ class NotFoundError extends OrchidOrmError {
2000
2021
  class OrchidOrmInternalError extends Error {
2001
2022
  constructor(query, message) {
2002
2023
  super(message);
2003
- this.query = query;
2024
+ __privateAdd(this, _query, void 0);
2025
+ __privateSet(this, _query, query);
2026
+ }
2027
+ get query() {
2028
+ return __privateGet(this, _query);
2004
2029
  }
2005
2030
  }
2031
+ _query = new WeakMap();
2006
2032
  class QueryError extends OrchidOrmInternalError {
2007
2033
  get isUnique() {
2008
2034
  return this.code === "23505";
@@ -2032,7 +2058,6 @@ class MoreThanOneRowError extends OrchidOrmInternalError {
2032
2058
  class UnhandledTypeError extends OrchidOrmInternalError {
2033
2059
  constructor(query, value) {
2034
2060
  super(query, `Unhandled type: ${JSON.stringify(value)} received`);
2035
- this.query = query;
2036
2061
  }
2037
2062
  }
2038
2063
 
@@ -2948,16 +2973,9 @@ class ArrayColumn extends ColumnType {
2948
2973
  this.dataType = "array";
2949
2974
  this.operators = Operators.array;
2950
2975
  this.parseFn = Object.assign(
2951
- (input) => {
2976
+ (source) => {
2952
2977
  const entries = [];
2953
- parseArray(
2954
- input,
2955
- 0,
2956
- input.length,
2957
- entries,
2958
- false,
2959
- this.data.item
2960
- );
2978
+ parsePostgresArray(source, entries, this.data.item.parseItem);
2961
2979
  return entries;
2962
2980
  },
2963
2981
  {
@@ -2989,70 +3007,60 @@ class ArrayColumn extends ColumnType {
2989
3007
  return columnCode(this, ctx, key, code);
2990
3008
  }
2991
3009
  }
2992
- const parseArray = (input, pos, len, entries, nested, item) => {
2993
- if (input[0] === "[") {
2994
- while (pos < len) {
2995
- let char = input[pos++];
2996
- if (char === "\\") {
2997
- char = input[pos++];
3010
+ const parsePostgresArray = (source, entries, transform) => {
3011
+ let pos = 0;
3012
+ if (source[0] === "[") {
3013
+ pos = source.indexOf("=") + 1;
3014
+ if (!pos)
3015
+ pos = source.length;
3016
+ }
3017
+ if (source[pos] === "{")
3018
+ pos++;
3019
+ let recorded = "";
3020
+ while (pos < source.length) {
3021
+ const character = source[pos++];
3022
+ if (character === "{") {
3023
+ const innerEntries = [];
3024
+ entries.push(innerEntries);
3025
+ pos += parsePostgresArray(source.slice(pos - 1), innerEntries, transform) - 1;
3026
+ } else if (character === "}") {
3027
+ if (recorded) {
3028
+ entries.push(
3029
+ recorded === "NULL" ? null : transform ? transform(recorded) : recorded
3030
+ );
2998
3031
  }
2999
- if (char === "=")
3000
- break;
3001
- }
3002
- }
3003
- let quote = false;
3004
- let start = pos;
3005
- while (pos < len) {
3006
- let char = input[pos++];
3007
- const escaped = char === "\\";
3008
- if (escaped) {
3009
- char = input[pos++];
3010
- }
3011
- if (char === '"' && !escaped) {
3012
- if (quote) {
3013
- pushEntry(input, start, pos, entries, item);
3014
- } else {
3015
- start = pos;
3016
- }
3017
- quote = !quote;
3018
- } else if (char === "," && !quote) {
3019
- if (start !== pos) {
3020
- pushEntry(input, start, pos, entries, item);
3021
- }
3022
- start = pos;
3023
- } else if (char === "{" && !quote) {
3024
- let array;
3025
- let nestedItem = item;
3026
- if (nested) {
3027
- array = [];
3028
- entries.push(array);
3029
- if ("item" in item.data) {
3030
- nestedItem = item.data.item;
3032
+ return pos;
3033
+ } else if (character === '"') {
3034
+ let esc = false;
3035
+ let rec = "";
3036
+ while (pos < source.length) {
3037
+ let char;
3038
+ while ((char = source[pos++]) === "\\") {
3039
+ if (!(esc = !esc))
3040
+ rec += "\\";
3031
3041
  }
3032
- } else {
3033
- array = entries;
3034
- }
3035
- pos = parseArray(input, pos, len, array, true, nestedItem);
3036
- start = pos + 1;
3037
- } else if (char === "}" && !quote) {
3038
- if (start !== pos) {
3039
- pushEntry(input, start, pos, entries, item);
3042
+ if (esc) {
3043
+ esc = false;
3044
+ } else if (char === '"') {
3045
+ break;
3046
+ }
3047
+ rec += char;
3048
+ }
3049
+ entries.push(transform ? transform(rec) : rec);
3050
+ recorded = "";
3051
+ } else if (character === ",") {
3052
+ if (recorded) {
3053
+ entries.push(
3054
+ recorded === "NULL" ? null : transform ? transform(recorded) : recorded
3055
+ );
3056
+ recorded = "";
3040
3057
  }
3041
- start = pos + 1;
3042
- break;
3058
+ } else {
3059
+ recorded += character;
3043
3060
  }
3044
3061
  }
3045
3062
  return pos;
3046
3063
  };
3047
- const pushEntry = (input, start, pos, entries, item) => {
3048
- let entry = input.slice(start, pos - 1);
3049
- if (entry === "NULL") {
3050
- entry = null;
3051
- } else if (item.parseItem) {
3052
- entry = item.parseItem(entry);
3053
- }
3054
- entries.push(entry);
3055
- };
3056
3064
 
3057
3065
  const parseDateToNumber = (value) => value ? Date.parse(value) : value;
3058
3066
  const parseDateToDate = (value) => value ? new Date(value) : value;