kern-orm 0.3.0 → 0.5.0

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.
@@ -0,0 +1,248 @@
1
+ import { A as hasEquality, E as defineType, T as getBooleanType, a as stringifyJson, d as orderingOperators, i as formatTypeName, k as equalityOperators, l as defineNumberType, o as decodeBytea, s as encodeBytea, u as getIntegerType } from "./text-BTFErHIi.mjs";
2
+ // src/type/builtins/array.ts
3
+ /**
4
+ * Creates a one-dimensional array type of `element` values.
5
+ *
6
+ * A `NULL` element decodes to `null`; a nullable `element` type, such as `array(text.nullable())`, types such elements.
7
+ * Elements are separated by commas, as in arrays of all built-in types; a custom type with another delimiter, such as `box`, is not supported.
8
+ * An array has `eq`, `ne`, and `in` when its element type has SQL `=`.
9
+ */
10
+ function array(element) {
11
+ const type = defineType({
12
+ sqlType: `${element.sqlType}[]`,
13
+ castType: `${element.castType}[]`
14
+ }).transform({
15
+ decode(text) {
16
+ const values = parseArray(text);
17
+ for (let index = 0; index < values.length; index++) {
18
+ const value = values[index];
19
+ values[index] = value === null ? null : element.decode(value);
20
+ }
21
+ return values;
22
+ },
23
+ encode(values) {
24
+ let text = "{";
25
+ for (let index = 0; index < values.length; index++) {
26
+ const value = values[index];
27
+ text += `${index === 0 ? "" : ","}${formatArrayElement(value === null ? null : element.encode(value))}`;
28
+ }
29
+ return `${text}}`;
30
+ }
31
+ });
32
+ return hasEquality(element) ? type.withOperators(equalityOperators) : type;
33
+ }
34
+ /** Parses a one-dimensional array literal, such as `{a,"b c",NULL}`, into the text representations of its elements. */
35
+ function parseArray(text) {
36
+ const start = text.startsWith("[") ? text.indexOf("=") + 1 : 0;
37
+ if (text[start] !== "{" || !text.endsWith("}")) throw new Error(`Unsupported array value "${text}"`);
38
+ const elements = [];
39
+ const end = text.length - 1;
40
+ if (start + 1 === end) return elements;
41
+ let index = start + 1;
42
+ while (true) {
43
+ if (text[index] === "{") throw new Error("Multidimensional arrays are not supported");
44
+ if (text[index] === "\"") {
45
+ let element = "";
46
+ index++;
47
+ while (index < end && text[index] !== "\"") {
48
+ if (text[index] === "\\") {
49
+ index++;
50
+ if (index === end) break;
51
+ }
52
+ element += text[index];
53
+ index++;
54
+ }
55
+ if (index === end) throw new Error(`Unterminated quoted element in array value "${text}"`);
56
+ elements.push(element);
57
+ index++;
58
+ } else {
59
+ let next = text.indexOf(",", index);
60
+ if (next === -1) next = end;
61
+ if (next === index) throw new Error(`Malformed array value "${text}"`);
62
+ const element = text.slice(index, next);
63
+ elements.push(element === "NULL" ? null : element);
64
+ index = next;
65
+ }
66
+ if (index === end) return elements;
67
+ if (text[index] !== ",") throw new Error(`Malformed array value "${text}"`);
68
+ index++;
69
+ }
70
+ }
71
+ /** Formats the text representation of an array element, quoting it unless it is `NULL`. */
72
+ function formatArrayElement(element) {
73
+ return element === null ? "NULL" : `"${element.replaceAll("\\", "\\\\").replaceAll("\"", "\\\"")}"`;
74
+ }
75
+ // src/type/builtins/binary.ts
76
+ /** Binary data; PostgreSQL represents it in hex, which requires the default `bytea_output` setting. */
77
+ const bytea = /* @__PURE__ */ defineType({ sqlType: "bytea" }).transform({
78
+ decode: decodeBytea,
79
+ encode: encodeBytea
80
+ }).withOperators(equalityOperators);
81
+ // src/type/builtins/boolean.ts
82
+ /** `boolean` values. */
83
+ const boolean = /* @__PURE__ */ getBooleanType();
84
+ // src/type/builtins/datetime.ts
85
+ /** Point in time as a UTC ISO 8601 string with microseconds, such as `2026-01-15T07:00:00.123456Z`; accepts a `Date` too. */
86
+ const timestamptz = /* @__PURE__ */ defineType({ sqlType: "timestamptz" }).transform({
87
+ decode: normalizeTimestamptz,
88
+ encode: (value) => toPostgresYear(value instanceof Date ? value.toISOString() : value)
89
+ }).withOperators(orderingOperators).withParameters(/* @__PURE__ */ createPrecisionFormatter("timestamptz"));
90
+ /** Date and time without a time zone as an ISO 8601 string with microseconds, such as `2026-01-15T10:00:00.000000`. */
91
+ const timestamp = /* @__PURE__ */ defineType({ sqlType: "timestamp" }).transform({
92
+ decode: normalizeTimestamp,
93
+ encode: toPostgresYear
94
+ }).withOperators(orderingOperators).withParameters(/* @__PURE__ */ createPrecisionFormatter("timestamp"));
95
+ /** Calendar date as an ISO 8601 string, such as `2026-01-15`. */
96
+ const date = /* @__PURE__ */ defineType({ sqlType: "date" }).transform({
97
+ decode: normalizeDate,
98
+ encode: toPostgresYear
99
+ }).withOperators(orderingOperators);
100
+ /** Time of day as a string with microseconds, such as `10:00:00.000000`. */
101
+ const time = /* @__PURE__ */ defineType({ sqlType: "time" }).transform({ decode: normalizeTime }).withOperators(orderingOperators).withParameters(/* @__PURE__ */ createPrecisionFormatter("time"));
102
+ /** Interval in the PostgreSQL output format, such as `1 day 02:00:00`. */
103
+ const interval = /* @__PURE__ */ defineType({ sqlType: "interval" }).withOperators(orderingOperators);
104
+ function createPrecisionFormatter(name) {
105
+ return (precision) => formatTypeName(name, precision);
106
+ }
107
+ const timestamptzPattern = /^(\d{4,})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,6}))?([+-])(\d{2})(?::(\d{2}))?(?::(\d{2}))?( BC)?$/;
108
+ const timestampPattern = /^(\d{4,})(-\d{2}-\d{2}) (\d{2}:\d{2}:\d{2})(?:\.(\d{1,6}))?( BC)?$/;
109
+ const datePattern = /^(\d{4,})(-\d{2}-\d{2})( BC)?$/;
110
+ const timePattern = /^(\d{2}:\d{2}:\d{2})(?:\.(\d{1,6}))?$/;
111
+ /** Leading ISO 8601 year that PostgreSQL does not accept: an expanded year, such as `+010000`, or year `0000`. */
112
+ const isoYearPattern = /^([+-]\d{6,}|0000)(-.*)$/s;
113
+ /** Special date and time values that PostgreSQL returns as they are. */
114
+ const infinities = /* @__PURE__ */ new Set(["infinity", "-infinity"]);
115
+ /**
116
+ * Normalizes a `timestamptz` value to UTC ISO 8601 with microseconds, such as `2026-01-15T07:00:00.123456Z`.
117
+ *
118
+ * The fixed format keeps microseconds that `Date` would lose; the arithmetic avoids `Date`, whose range is narrower than that of PostgreSQL.
119
+ */
120
+ function normalizeTimestamptz(text) {
121
+ if (infinities.has(text)) return text;
122
+ const match = timestamptzPattern.exec(text);
123
+ if (!match) throw new Error(`Unsupported timestamptz value "${text}"; kern-orm expects DateStyle ISO`);
124
+ const offset = (match[8] === "-" ? -1 : 1) * (Number(match[9]) * 3600 + Number(match[10] ?? 0) * 60 + Number(match[11] ?? 0));
125
+ const seconds = countDays(toAstronomicalYear(match[1], match[12]), Number(match[2]), Number(match[3])) * 86400 + Number(match[4]) * 3600 + Number(match[5]) * 60 + Number(match[6]) - offset;
126
+ const days = Math.floor(seconds / 86400);
127
+ const time = seconds - days * 86400;
128
+ return `${formatDate(days)}T${padTwo(Math.floor(time / 3600))}:${padTwo(Math.floor(time / 60) % 60)}:${padTwo(time % 60)}.${padFraction(match[7])}Z`;
129
+ }
130
+ /** Normalizes a `timestamp` value to ISO 8601 without a time zone, such as `2026-01-15T10:00:00.000000`. */
131
+ function normalizeTimestamp(text) {
132
+ if (infinities.has(text)) return text;
133
+ const match = timestampPattern.exec(text);
134
+ if (!match) throw new Error(`Unsupported timestamp value "${text}"; kern-orm expects DateStyle ISO`);
135
+ return `${formatYear(toAstronomicalYear(match[1], match[5]))}${match[2]}T${match[3]}.${padFraction(match[4])}`;
136
+ }
137
+ /** Normalizes a `date` value to ISO 8601, such as `2026-01-15`. */
138
+ function normalizeDate(text) {
139
+ if (infinities.has(text)) return text;
140
+ const match = datePattern.exec(text);
141
+ if (!match) throw new Error(`Unsupported date value "${text}"; kern-orm expects DateStyle ISO`);
142
+ return `${formatYear(toAstronomicalYear(match[1], match[3]))}${match[2]}`;
143
+ }
144
+ /** Normalizes a `time` value to `HH:MM:SS.ffffff`. */
145
+ function normalizeTime(text) {
146
+ const match = timePattern.exec(text);
147
+ if (!match) throw new Error(`Unsupported time value "${text}"`);
148
+ return `${match[1]}.${padFraction(match[2])}`;
149
+ }
150
+ /** Converts a leading ISO 8601 year outside 1 to 9999 into the PostgreSQL format: unsigned after 9999 and with a `BC` suffix before 1. */
151
+ function toPostgresYear(text) {
152
+ const match = isoYearPattern.exec(text);
153
+ if (!match) return text;
154
+ const year = Number(match[1]);
155
+ return year > 0 ? `${year}${match[2]}` : `${String(1 - year).padStart(4, "0")}${match[2]} BC`;
156
+ }
157
+ /** Returns the astronomical year of a PostgreSQL year, where 1 BC is year 0. */
158
+ function toAstronomicalYear(year, era) {
159
+ return era === void 0 ? Number(year) : 1 - Number(year);
160
+ }
161
+ /** Formats an astronomical year as an ISO 8601 year, expanded with a sign outside 0 to 9999. */
162
+ function formatYear(year) {
163
+ if (year >= 0 && year <= 9999) return String(year).padStart(4, "0");
164
+ return `${year < 0 ? "-" : "+"}${String(Math.abs(year)).padStart(6, "0")}`;
165
+ }
166
+ /** Counts the days from 1970-01-01 to a date of an astronomical year. */
167
+ function countDays(year, month, day) {
168
+ const shifted = month <= 2 ? year - 1 : year;
169
+ const era = Math.floor(shifted / 400);
170
+ const yearOfEra = shifted - era * 400;
171
+ const dayOfYear = Math.floor((153 * (month > 2 ? month - 3 : month + 9) + 2) / 5) + day - 1;
172
+ const dayOfEra = yearOfEra * 365 + Math.floor(yearOfEra / 4) - Math.floor(yearOfEra / 100) + dayOfYear;
173
+ return era * 146097 + dayOfEra - 719468;
174
+ }
175
+ /** Formats the date a number of days after 1970-01-01 as an ISO 8601 date. */
176
+ function formatDate(days) {
177
+ const shifted = days + 719468;
178
+ const era = Math.floor(shifted / 146097);
179
+ const dayOfEra = shifted - era * 146097;
180
+ const yearOfEra = Math.floor((dayOfEra - Math.floor(dayOfEra / 1460) + Math.floor(dayOfEra / 36524) - Math.floor(dayOfEra / 146096)) / 365);
181
+ const dayOfYear = dayOfEra - (365 * yearOfEra + Math.floor(yearOfEra / 4) - Math.floor(yearOfEra / 100));
182
+ const shiftedMonth = Math.floor((5 * dayOfYear + 2) / 153);
183
+ const day = dayOfYear - Math.floor((153 * shiftedMonth + 2) / 5) + 1;
184
+ const month = shiftedMonth < 10 ? shiftedMonth + 3 : shiftedMonth - 9;
185
+ return `${formatYear(yearOfEra + era * 400 + (month <= 2 ? 1 : 0))}-${padTwo(month)}-${padTwo(day)}`;
186
+ }
187
+ function padTwo(value) {
188
+ return value < 10 ? `0${value}` : String(value);
189
+ }
190
+ function padFraction(fraction) {
191
+ return (fraction ?? "").padEnd(6, "0");
192
+ }
193
+ // src/type/builtins/enum.ts
194
+ /** Creates a type of an existing PostgreSQL enum; values are ordered as declared in the enum. */
195
+ function enumOf(name, _values) {
196
+ return defineType({
197
+ sqlType: name,
198
+ castType: name
199
+ }).transform({
200
+ decode: (value) => value,
201
+ encode: (value) => value
202
+ }).withOperators(orderingOperators);
203
+ }
204
+ // src/type/builtins/json.ts
205
+ function createJsonType(sqlType) {
206
+ return defineType({ sqlType }).transform({
207
+ decode: (text) => JSON.parse(text),
208
+ encode: stringifyJson
209
+ });
210
+ }
211
+ function addShape(type) {
212
+ return Object.freeze({
213
+ ...type,
214
+ of: () => type
215
+ });
216
+ }
217
+ /** `json` values; `json.of<T>()` declares their shape. PostgreSQL has no `=` for `json`, so its expressions have no `eq`, `ne`, or `in`. */
218
+ const json = /* @__PURE__ */ addShape(/* @__PURE__ */ createJsonType("json"));
219
+ /** `jsonb` values; `jsonb.of<T>()` declares their shape. */
220
+ const jsonb = /* @__PURE__ */ addShape(/* @__PURE__ */ createJsonType("jsonb").withOperators(equalityOperators));
221
+ // src/type/builtins/network.ts
222
+ /** IP address with an optional netmask as a string, such as `192.168.0.1`. */
223
+ const inet = /* @__PURE__ */ defineType({ sqlType: "inet" }).withOperators(orderingOperators);
224
+ /** IP network as a string, such as `10.0.0.0/8`. */
225
+ const cidr = /* @__PURE__ */ defineType({ sqlType: "cidr" }).withOperators(orderingOperators);
226
+ // src/type/builtins/numeric.ts
227
+ /** 2-byte integer as a `number`. */
228
+ const smallint = /* @__PURE__ */ defineNumberType("smallint");
229
+ /** 4-byte integer as a `number`. */
230
+ const integer = /* @__PURE__ */ getIntegerType();
231
+ /** 8-byte integer as a `bigint`, which keeps values beyond `Number.MAX_SAFE_INTEGER`; accepts a `number` too. */
232
+ const bigint = /* @__PURE__ */ defineType({ sqlType: "bigint" }).transform({
233
+ decode: BigInt,
234
+ encode: (value) => String(value)
235
+ }).withOperators(orderingOperators);
236
+ /** 4-byte floating-point number as a `number`. */
237
+ const real = /* @__PURE__ */ defineNumberType("real");
238
+ /** 8-byte floating-point number as a `number`. */
239
+ const doublePrecision = /* @__PURE__ */ defineNumberType("double precision");
240
+ /** Exact number as a decimal string, so that no precision is lost; `numeric.with(precision, scale)` constrains it. */
241
+ const numeric = /* @__PURE__ */ defineType({ sqlType: "numeric" }).transform({
242
+ decode: (value) => value,
243
+ encode: (value) => String(value)
244
+ }).withOperators(orderingOperators).withParameters((precision, scale) => formatTypeName("numeric", precision, scale));
245
+ // src/type/builtins/uuid.ts
246
+ /** UUID as a string. */
247
+ const uuid = /* @__PURE__ */ defineType({ sqlType: "uuid" }).withOperators(orderingOperators);
248
+ export { timestamptz as _, numeric as a, array as b, cidr as c, jsonb as d, enumOf as f, timestamp as g, time as h, integer as i, inet as l, interval as m, bigint as n, real as o, date as p, doublePrecision as r, smallint as s, uuid as t, json as u, boolean as v, bytea as y };
package/dist/types.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { Ar as OperatorDefinitions, Ct as EqualityOperator, Et as InSignature, Ln as ComparisonSignature, Or as MergeOperators, Tt as HasEquality, c as PatternSignature, d as AnyExpression, hr as Type, jr as GenericOperator, kr as NoOperators, pr as BaseType, wt as EqualityOperators } from "./index-CNqYlONX.mjs";
1
+ import { S as NumberTypeOperators, Ur as Type, Vr as BaseType, ai as GenericOperator, ar as EqualityOperator, b as TextTypeOperators, cr as InSignature, dr as ComparisonSignature, ii as OperatorDefinitions, ni as MergeOperators, or as EqualityOperators, ri as NoOperators, sr as HasEquality, w as AnyExpression, y as TextOperators } from "./index-Cag6_erK.mjs";
2
2
  /**
3
3
  * Creates a one-dimensional array type of `element` values.
4
4
  *
@@ -13,63 +13,63 @@ export declare const bytea: BaseType<Uint8Array<ArrayBufferLike>, Uint8Array<Arr
13
13
  export declare const boolean: BaseType<boolean, boolean, EqualityOperators, undefined>;
14
14
  /** Point in time as a UTC ISO 8601 string with microseconds, such as `2026-01-15T07:00:00.123456Z`; accepts a `Date` too. */
15
15
  export declare const timestamptz: Type<string, string | Date, MergeOperators<NoOperators, {
16
+ eq: EqualityOperator<ComparisonSignature>;
17
+ ne: EqualityOperator<ComparisonSignature>;
18
+ in: EqualityOperator<InSignature>;
16
19
  lt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
17
20
  lte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
18
21
  gt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
19
22
  gte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
20
- eq: EqualityOperator<ComparisonSignature>;
21
- ne: EqualityOperator<ComparisonSignature>;
22
- in: EqualityOperator<InSignature>;
23
23
  }>, [precision: number]>;
24
24
  /** Date and time without a time zone as an ISO 8601 string with microseconds, such as `2026-01-15T10:00:00.000000`. */
25
25
  export declare const timestamp: Type<string, string, MergeOperators<NoOperators, {
26
+ eq: EqualityOperator<ComparisonSignature>;
27
+ ne: EqualityOperator<ComparisonSignature>;
28
+ in: EqualityOperator<InSignature>;
26
29
  lt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
27
30
  lte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
28
31
  gt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
29
32
  gte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
30
- eq: EqualityOperator<ComparisonSignature>;
31
- ne: EqualityOperator<ComparisonSignature>;
32
- in: EqualityOperator<InSignature>;
33
33
  }>, [precision: number]>;
34
34
  /** Calendar date as an ISO 8601 string, such as `2026-01-15`. */
35
35
  export declare const date: BaseType<string, string, MergeOperators<NoOperators, {
36
+ eq: EqualityOperator<ComparisonSignature>;
37
+ ne: EqualityOperator<ComparisonSignature>;
38
+ in: EqualityOperator<InSignature>;
36
39
  lt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
37
40
  lte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
38
41
  gt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
39
42
  gte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
40
- eq: EqualityOperator<ComparisonSignature>;
41
- ne: EqualityOperator<ComparisonSignature>;
42
- in: EqualityOperator<InSignature>;
43
43
  }>, undefined>;
44
44
  /** Time of day as a string with microseconds, such as `10:00:00.000000`. */
45
45
  export declare const time: Type<string, string, MergeOperators<NoOperators, {
46
+ eq: EqualityOperator<ComparisonSignature>;
47
+ ne: EqualityOperator<ComparisonSignature>;
48
+ in: EqualityOperator<InSignature>;
46
49
  lt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
47
50
  lte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
48
51
  gt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
49
52
  gte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
50
- eq: EqualityOperator<ComparisonSignature>;
51
- ne: EqualityOperator<ComparisonSignature>;
52
- in: EqualityOperator<InSignature>;
53
53
  }>, [precision: number]>;
54
54
  /** Interval in the PostgreSQL output format, such as `1 day 02:00:00`. */
55
55
  export declare const interval: BaseType<string, string, MergeOperators<NoOperators, {
56
+ eq: EqualityOperator<ComparisonSignature>;
57
+ ne: EqualityOperator<ComparisonSignature>;
58
+ in: EqualityOperator<InSignature>;
56
59
  lt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
57
60
  lte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
58
61
  gt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
59
62
  gte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
60
- eq: EqualityOperator<ComparisonSignature>;
61
- ne: EqualityOperator<ComparisonSignature>;
62
- in: EqualityOperator<InSignature>;
63
63
  }>, undefined>;
64
64
  /** Creates a type of an existing PostgreSQL enum; values are ordered as declared in the enum. */
65
65
  declare function enumOf<const Values extends readonly string[]>(name: string, _values: Values): BaseType<Values[number], Values[number], MergeOperators<NoOperators, {
66
+ eq: EqualityOperator<ComparisonSignature>;
67
+ ne: EqualityOperator<ComparisonSignature>;
68
+ in: EqualityOperator<InSignature>;
66
69
  lt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
67
70
  lte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
68
71
  gt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
69
72
  gte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
70
- eq: EqualityOperator<ComparisonSignature>;
71
- ne: EqualityOperator<ComparisonSignature>;
72
- in: EqualityOperator<InSignature>;
73
73
  }>, undefined>;
74
74
  /** JSON type of `unknown` values with operators `O` and `of`, which declares their shape. */
75
75
  type JsonType<O extends OperatorDefinitions = NoOperators> = Type<unknown, unknown, O> & {
@@ -82,131 +82,106 @@ export declare const json: JsonType<NoOperators>;
82
82
  export declare const jsonb: JsonType<MergeOperators<NoOperators, EqualityOperators>>;
83
83
  /** IP address with an optional netmask as a string, such as `192.168.0.1`. */
84
84
  export declare const inet: BaseType<string, string, MergeOperators<NoOperators, {
85
- lt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
86
- lte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
87
- gt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
88
- gte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
89
85
  eq: EqualityOperator<ComparisonSignature>;
90
86
  ne: EqualityOperator<ComparisonSignature>;
91
87
  in: EqualityOperator<InSignature>;
92
- }>, undefined>;
93
- /** IP network as a string, such as `10.0.0.0/8`. */
94
- export declare const cidr: BaseType<string, string, MergeOperators<NoOperators, {
95
88
  lt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
96
89
  lte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
97
90
  gt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
98
91
  gte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
92
+ }>, undefined>;
93
+ /** IP network as a string, such as `10.0.0.0/8`. */
94
+ export declare const cidr: BaseType<string, string, MergeOperators<NoOperators, {
99
95
  eq: EqualityOperator<ComparisonSignature>;
100
96
  ne: EqualityOperator<ComparisonSignature>;
101
97
  in: EqualityOperator<InSignature>;
102
- }>, undefined>;
103
- /** 2-byte integer as a `number`. */
104
- export declare const smallint: BaseType<number, number, MergeOperators<NoOperators, {
105
98
  lt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
106
99
  lte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
107
100
  gt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
108
101
  gte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
102
+ }>, undefined>;
103
+ /** 2-byte integer as a `number`. */
104
+ export declare const smallint: BaseType<number, number, MergeOperators<NoOperators, {
109
105
  eq: EqualityOperator<ComparisonSignature>;
110
106
  ne: EqualityOperator<ComparisonSignature>;
111
107
  in: EqualityOperator<InSignature>;
112
- }>, undefined>;
113
- /** 4-byte integer as a `number`. */
114
- export declare const integer: BaseType<number, number, MergeOperators<NoOperators, {
115
108
  lt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
116
109
  lte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
117
110
  gt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
118
111
  gte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
119
- eq: EqualityOperator<ComparisonSignature>;
120
- ne: EqualityOperator<ComparisonSignature>;
121
- in: EqualityOperator<InSignature>;
122
112
  }>, undefined>;
113
+ /** 4-byte integer as a `number`. */
114
+ export declare const integer: BaseType<number, number, NumberTypeOperators, undefined>;
123
115
  /** 8-byte integer as a `bigint`, which keeps values beyond `Number.MAX_SAFE_INTEGER`; accepts a `number` too. */
124
116
  export declare const bigint: BaseType<bigint, number | bigint, MergeOperators<NoOperators, {
125
- lt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
126
- lte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
127
- gt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
128
- gte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
129
117
  eq: EqualityOperator<ComparisonSignature>;
130
118
  ne: EqualityOperator<ComparisonSignature>;
131
119
  in: EqualityOperator<InSignature>;
132
- }>, undefined>;
133
- /** 4-byte floating-point number as a `number`. */
134
- export declare const real: BaseType<number, number, MergeOperators<NoOperators, {
135
120
  lt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
136
121
  lte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
137
122
  gt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
138
123
  gte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
124
+ }>, undefined>;
125
+ /** 4-byte floating-point number as a `number`. */
126
+ export declare const real: BaseType<number, number, MergeOperators<NoOperators, {
139
127
  eq: EqualityOperator<ComparisonSignature>;
140
128
  ne: EqualityOperator<ComparisonSignature>;
141
129
  in: EqualityOperator<InSignature>;
142
- }>, undefined>;
143
- /** 8-byte floating-point number as a `number`. */
144
- export declare const doublePrecision: BaseType<number, number, MergeOperators<NoOperators, {
145
130
  lt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
146
131
  lte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
147
132
  gt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
148
133
  gte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
134
+ }>, undefined>;
135
+ /** 8-byte floating-point number as a `number`. */
136
+ export declare const doublePrecision: BaseType<number, number, MergeOperators<NoOperators, {
149
137
  eq: EqualityOperator<ComparisonSignature>;
150
138
  ne: EqualityOperator<ComparisonSignature>;
151
139
  in: EqualityOperator<InSignature>;
152
- }>, undefined>;
153
- /** Exact number as a decimal string, so that no precision is lost; `numeric.with(precision, scale)` constrains it. */
154
- export declare const numeric: Type<string, string | number | bigint, MergeOperators<NoOperators, {
155
140
  lt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
156
141
  lte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
157
142
  gt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
158
143
  gte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
144
+ }>, undefined>;
145
+ /** Exact number as a decimal string, so that no precision is lost; `numeric.with(precision, scale)` constrains it. */
146
+ export declare const numeric: Type<string, string | number | bigint, MergeOperators<NoOperators, {
159
147
  eq: EqualityOperator<ComparisonSignature>;
160
148
  ne: EqualityOperator<ComparisonSignature>;
161
149
  in: EqualityOperator<InSignature>;
162
- }>, [precision: number, scale?: number | undefined]>;
163
- /** Variable-length string without a limit. */
164
- export declare const text: BaseType<string, string, MergeOperators<MergeOperators<NoOperators, {
165
150
  lt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
166
151
  lte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
167
152
  gt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
168
153
  gte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
154
+ }>, [precision: number, scale?: number | undefined]>;
155
+ /** Variable-length string without a limit. */
156
+ export declare const text: BaseType<string, string, TextTypeOperators, undefined>;
157
+ /** Variable-length string; `varchar.with(length)` limits its length. */
158
+ export declare const varchar: Type<string, string, MergeOperators<MergeOperators<NoOperators, {
169
159
  eq: EqualityOperator<ComparisonSignature>;
170
160
  ne: EqualityOperator<ComparisonSignature>;
171
161
  in: EqualityOperator<InSignature>;
172
- }>, {
173
- like: GenericOperator<PatternSignature, AnyExpression<string | null, unknown>>;
174
- ilike: GenericOperator<PatternSignature, AnyExpression<string | null, unknown>>;
175
- }>, undefined>;
176
- /** Variable-length string; `varchar.with(length)` limits its length. */
177
- export declare const varchar: Type<string, string, MergeOperators<MergeOperators<NoOperators, {
178
162
  lt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
179
163
  lte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
180
164
  gt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
181
165
  gte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
166
+ }>, TextOperators>, [length: number]>;
167
+ /** Fixed-length string that PostgreSQL pads with spaces; `char` alone has length 1, and `char.with(length)` sets the length. */
168
+ export declare const char: Type<string, string, MergeOperators<MergeOperators<NoOperators, {
182
169
  eq: EqualityOperator<ComparisonSignature>;
183
170
  ne: EqualityOperator<ComparisonSignature>;
184
171
  in: EqualityOperator<InSignature>;
185
- }>, {
186
- like: GenericOperator<PatternSignature, AnyExpression<string | null, unknown>>;
187
- ilike: GenericOperator<PatternSignature, AnyExpression<string | null, unknown>>;
188
- }>, [length: number]>;
189
- /** Fixed-length string that PostgreSQL pads with spaces; `char` alone has length 1, and `char.with(length)` sets the length. */
190
- export declare const char: Type<string, string, MergeOperators<MergeOperators<NoOperators, {
191
172
  lt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
192
173
  lte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
193
174
  gt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
194
175
  gte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
176
+ }>, TextOperators>, [length: number]>;
177
+ /** UUID as a string. */
178
+ export declare const uuid: BaseType<string, string, MergeOperators<NoOperators, {
195
179
  eq: EqualityOperator<ComparisonSignature>;
196
180
  ne: EqualityOperator<ComparisonSignature>;
197
181
  in: EqualityOperator<InSignature>;
198
- }>, {
199
- like: GenericOperator<PatternSignature, AnyExpression<string | null, unknown>>;
200
- ilike: GenericOperator<PatternSignature, AnyExpression<string | null, unknown>>;
201
- }>, [length: number]>;
202
- /** UUID as a string. */
203
- export declare const uuid: BaseType<string, string, MergeOperators<NoOperators, {
204
182
  lt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
205
183
  lte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
206
184
  gt: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
207
185
  gte: GenericOperator<ComparisonSignature, AnyExpression<unknown, unknown>>;
208
- eq: EqualityOperator<ComparisonSignature>;
209
- ne: EqualityOperator<ComparisonSignature>;
210
- in: EqualityOperator<InSignature>;
211
186
  }>, undefined>;
212
187
  export { enumOf as enum };