pipework 0.179.0 → 0.180.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.180.0
4
+
5
+ - **Added: `pipe.filter.splitPart(a, delimiter, n)` and `pipe.filter.arrayAt(arr, n)`** (#726). `splitPart` is `split_part`; `arrayAt` is one array element by 1-based index. A negative `n` counts from the end in both. For `arrayAt`, an empty array, 0 or an index out of range gives NULL, and its type comes from the column (`uuid[]` gives `SQL<string | null>`).
6
+ - **Added: the rest of the common Postgres text and array functions,** so a package no longer falls back to `pipe.sql` for them:
7
+ - text: `lower`, `upper`, `trim`, `replace`, `substring`, `reverse`, `lpad`, `rpad`, `regexpReplace`, `regexpMatch` (`~`, or `~*` with `caseInsensitive`) and `stringToArray`;
8
+ - arrays: `cardinality`, `arrayPosition`, `arraySlice`, `arrayToString`, `arrayAppend` and `arrayRemove`.
9
+ - Every value a caller passes in is bound as a parameter. Positions and counts must be integers, or the call throws naming the builder.
10
+
3
11
  ## 0.179.0
4
12
 
5
13
  - **Added: split one full run across CI machines with `--shard <i>/<n>`** (#724).
package/REFERENCE.md CHANGED
@@ -731,6 +731,11 @@ Expression helpers for `.set()`, `.values()` and `.where()` (a string or number
731
731
  - `filter.interval(amount, unit)` — `($1::double precision * interval '1 <unit>')`, `amount` bound; a non-finite amount throws.
732
732
  - `filter.strpos(a, b)`, `filter.textContains(a, b)`, `filter.startsWith(a, prefix)` — exact-text tests, no `%`/`_`/backslash wildcards (unlike `like`). `a`, `b`, `prefix` take a column, expression or string.
733
733
  - `filter.left(a, n)`, `filter.right(a, n)`, `filter.length(a)` — text slices and length.
734
+ - `filter.splitPart(a, delimiter, n)` — `split_part($a, $delimiter, $n)`; negative `n` counts from the end (PG 14+). `filter.lower(a)`, `filter.upper(a)`, `filter.reverse(a)` — `lower`/`upper`/`reverse`.
735
+ - `filter.trim(a, { side?, characters? })` — `trim(both|leading|trailing [$characters] from a)`. `filter.replace(a, from, to)` — `replace`. `filter.substring(a, from, count?)` — `substring(a, from[, count])`. `filter.lpad(a, length, fill?)` / `filter.rpad(...)` — `lpad`/`rpad`.
736
+ - `filter.regexpReplace(a, pattern, replacement, flags?)` — `regexp_replace`; `filter.regexpMatch(a, pattern, { caseInsensitive? })` — `a ~ pattern` (`~*` when case-insensitive); `filter.stringToArray(a, delimiter)` — `string_to_array`. Pattern, replacement, flags and delimiter are always bound.
737
+ - `filter.arrayAt(arr, n)` — `(arr)[n]`, 1-based; negative `n` is `(arr)[cardinality(arr) + n + 1]`; NULL for 0, out of range or `'{}'`. Typed from the column (`uuid[]` gives `SQL<string | null>`); `n` must be an integer or it throws.
738
+ - `filter.cardinality(arr)`, `filter.arrayPosition(col, value)` (`array_position`, NULL when absent), `filter.arraySlice(col, from, to)` (`(col)[from:to]`), `filter.arrayToString(arr, delimiter)`, `filter.arrayAppend(col, value)` and `filter.arrayRemove(col, value)` (for `.set()`). Values are bound and cast to the column's element type.
734
739
  - `filter.concat(...parts)` — `(p1 || p2 || ...)`, at least two parts, each a string, column or expression (`scalar(...)` for a subquery). A null part makes the result null; wrap it in `coalesce` if not wanted.
735
740
  - `pipe.sql.inList(values, cast?)` — list match for a JS list: `` sql`id ${sql.inList(ids, 'uuid')}` `` renders `= ANY(...)`, so an empty list matches nothing; never build `IN (${sql.join(...)})`, which is a syntax error when the list is empty. `cast` is the element type, default `text`.
736
741
  - `filter.arrayReplace(col, from, to)` — `array_replace`, every `from` becomes `to`; `filter.arrayHas(col, value)` — `$value = ANY(col)`. `col` must be an array column; values are cast to its element type.
package/dist/REFERENCE.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Pipework API Reference
2
2
 
3
3
  > Auto-generated from source JSDoc. Do not edit manually.
4
- > Generated: 2026-10-20
4
+ > Generated: 2026-10-22
5
5
 
6
6
  ## Contents
7
7
 
@@ -816,6 +816,10 @@ Acquires a transaction-scoped advisory lock. Released at commit/rollback.
816
816
 
817
817
  Runs a function in a SERIALIZABLE transaction with automatic retry on serialization failures and deadlocks.
818
818
 
819
+ ### `pipe.withTimeouts`
820
+
821
+ Sets statement_timeout and/or lock_timeout for the current transaction in one statement, then runs fn; a statement cancelled for them rejects with StatementTimeoutError or LockTimeoutError.
822
+
819
823
  ### `pipe.bulkSet`
820
824
 
821
825
  Bulk UPDATE ... FROM (VALUES ...) — updates multiple rows with per-row values in a single statement.
@@ -824,6 +828,10 @@ Bulk UPDATE ... FROM (VALUES ...) — updates multiple rows with per-row values
824
828
 
825
829
  Produces a typed VALUES clause for bulk operations — the base primitive for bulkSet and bulkUpsert.
826
830
 
831
+ ### `pipe.fn`
832
+
833
+ A set-returning SQL function as a typed source for `.from()` and joins — `pipe.fn('schema.f', { args: [field.uuid()], columns: { path: field.text() } })`. Arguments are bound and cast to their declared types.
834
+
827
835
  ### `pipe.field`
828
836
 
829
837
  Field builders for domain definitions — uuid(), text(), integer(), etc.
@@ -836,6 +844,10 @@ Registers a domain definition with table, validators, and factory projections. T
836
844
 
837
845
  Returns the global registry of all domain definitions.
838
846
 
847
+ ### `pipe.external`
848
+
849
+ Declares a table or view another service owns (`pipe.external(name, fields, { schema, table? })`): typed columns and every query operator, read-only, never migrated, not tenant-scoped.
850
+
839
851
  ### `pipe.update`
840
852
 
841
853
  Pipework-owned UPDATE builder — the only consumer-facing way to update pipework-managed tables (Q8).
@@ -866,12 +878,54 @@ interface WindowSpec
866
878
  interface ValueColumnDef
867
879
  ```
868
880
 
881
+ **`JsonbElements`** — A jsonb array read as its elements' text. Produced by {@link jsonbElements}.
882
+
883
+ ```typescript
884
+ interface JsonbElements
885
+ ```
886
+
887
+ **`ArraySource`** — Something whose elements `arrayAny` / `arrayAll` can test.
888
+
889
+ ```typescript
890
+ type ArraySource =
891
+ ```
892
+
893
+ **`ElementOf`** — The element type of an {@link ArraySource}.
894
+
895
+ ```typescript
896
+ type ElementOf<S> =
897
+ ```
898
+
899
+ **`FunctionSpec`** — Declares a SQL function's argument and result-column shapes. See {@link fn}.
900
+
901
+ ```typescript
902
+ interface FunctionSpec<TArgs extends readonly AnyField[], TColumns extends Record<string, AnyField>>
903
+ ```
904
+
905
+ **`FunctionSourceFields`** — The selected fields of a function source: each result column as a typed SQL expression.
906
+
907
+ ```typescript
908
+ type FunctionSourceFields<TColumns extends Record<string, AnyField>> =
909
+ ```
910
+
911
+ **`FunctionSource`** — A function call usable in `.from()` and joins; its result columns are properties of it.
912
+
913
+ ```typescript
914
+ type FunctionSource<TAlias extends string, TColumns extends Record<string, AnyField>> =
915
+ ```
916
+
869
917
  **`SerializableOptions`** — Retry policy for {@link serializable}: how many attempts on a serialization failure / deadlock, and the base backoff between them.
870
918
 
871
919
  ```typescript
872
920
  interface SerializableOptions
873
921
  ```
874
922
 
923
+ **`TimeoutOptions`** — Which timeouts {@link withTimeouts} sets; each a positive integer number of milliseconds.
924
+
925
+ ```typescript
926
+ interface TimeoutOptions
927
+ ```
928
+
875
929
  **`ManagedConnection`** — A standalone pooled connection: the raw postgres.js client, its drizzle handle, and a `close()` that ends the pool.
876
930
 
877
931
  ```typescript
@@ -892,6 +946,10 @@ JSONB query operators — typed helpers for PostgreSQL JSONB containment, key ch
892
946
 
893
947
  The @> containment operator — tests whether a JSONB column contains the given value.
894
948
 
949
+ ### `jsonb.merge`
950
+
951
+ Merges an object into a JSONB column in `.set()`: `coalesce(col, '{}') || value`. Top-level keys overwrite; others are kept.
952
+
895
953
  ### `jsonb.containedBy`
896
954
 
897
955
  The <@ contained-by operator — tests whether a JSONB column is contained by the given value.
@@ -958,6 +1016,60 @@ type Schema<T = unknown> = z.ZodType<T>
958
1016
  type Infer<T extends Schema> = z.infer<T>
959
1017
  ```
960
1018
 
1019
+ **`StringSchema`** — A string validator — what check.string() returns, nameable without importing zod.
1020
+
1021
+ ```typescript
1022
+ interface StringSchema extends z.ZodString
1023
+ ```
1024
+
1025
+ **`NumberSchema`** — A number validator — what check.number() returns.
1026
+
1027
+ ```typescript
1028
+ interface NumberSchema extends z.ZodNumber
1029
+ ```
1030
+
1031
+ **`BooleanSchema`** — A boolean validator — what check.boolean() returns.
1032
+
1033
+ ```typescript
1034
+ interface BooleanSchema extends z.ZodBoolean
1035
+ ```
1036
+
1037
+ **`EnumSchema`** — An enum validator over string literals — what check.enum([...]) returns.
1038
+
1039
+ ```typescript
1040
+ interface EnumSchema<V extends string = string> extends z.ZodEnum<
1041
+ ```
1042
+
1043
+ **`LiteralSchema`** — A literal validator — what check.literal(v) returns.
1044
+
1045
+ ```typescript
1046
+ interface LiteralSchema<V extends string | number | boolean | null = string> extends z.ZodLiteral<V>
1047
+ ```
1048
+
1049
+ **`ArraySchema`** — An array validator — what check.array(item) returns.
1050
+
1051
+ ```typescript
1052
+ interface ArraySchema<Item extends z.core.SomeType = z.core.SomeType> extends z.ZodArray<Item>
1053
+ ```
1054
+
1055
+ **`OptionalSchema`** — An optional validator — what check.optional(inner) returns.
1056
+
1057
+ ```typescript
1058
+ interface OptionalSchema<Inner extends z.core.SomeType = z.core.SomeType> extends z.ZodOptional<Inner>
1059
+ ```
1060
+
1061
+ **`NullableSchema`** — A nullable validator — what check.nullable(inner) returns.
1062
+
1063
+ ```typescript
1064
+ interface NullableSchema<Inner extends z.core.SomeType = z.core.SomeType> extends z.ZodNullable<Inner>
1065
+ ```
1066
+
1067
+ **`ObjectSchema`** — An object validator whose .extend, .pick, .omit and .partial results stay ObjectSchema — what check.object({...}) returns.
1068
+
1069
+ ```typescript
1070
+ type ObjectSchema<S extends Shape = Shape> =
1071
+ ```
1072
+
961
1073
  ## temporal — Bitemporal Data
962
1074
 
963
1075
  Temporal (bitemporal) data namespace — version history with effective date ranges.
@@ -1474,7 +1586,11 @@ interface RateLimitConfig
1474
1586
  interface RateLimitWindow
1475
1587
  ```
1476
1588
 
1477
- **`RateLimitClass`** — A named limit class: any of a per-user, per-tenant and per-address window, each counted on its own.
1589
+ **`RateLimitClass`**
1590
+
1591
+ A named limit class: any of a per-user, per-tenant, per-address and total window, each counted on its own.
1592
+ Each key takes one window or an array of windows (distinct `windowSeconds`); a request is counted against
1593
+ all of a key's windows and refused if any is over.
1478
1594
 
1479
1595
  ```typescript
1480
1596
  interface RateLimitClass
@@ -1490,8 +1606,8 @@ interface RateLimitRefusal
1490
1606
 
1491
1607
  Named limit classes, checked after auth and counted in Postgres (`pipework_rate_limit_counts`, opted in
1492
1608
  with the blueprint's `rateLimits: {}`), so every server process on the same database shares one count.
1493
- Windows are counted perUser, perTenant, perAddress in turn, up to the first one over its max, so one user's
1494
- refused requests don't spend the tenant's budget. A route is in `signedIn` (auth required, or optional with
1609
+ Keys are counted perUser, perTenant, perAddress, total in turn, up to the first key with a window over its max, so one user's
1610
+ refused requests don't spend the tenant's budget. The 429's Retry-After is the longest wait of the windows that refused. A route is in `signedIn` (auth required, or optional with
1495
1611
  a user), `public` (no auth, or optional without a user) or the class its fitting names with `.rateLimit(name)`.
1496
1612
 
1497
1613
  ```typescript
@@ -1643,15 +1759,20 @@ interface TraceTree
1643
1759
 
1644
1760
  ## data
1645
1761
 
1646
- ### `tap`
1762
+ ### `StatementTimeoutError`
1763
+
1764
+ A statement was cancelled by Postgres for running past the statement timeout a {@link withTimeouts} call set. `cause` is the driver error.
1765
+
1766
+ ```typescript
1767
+ class StatementTimeoutError extends Error constructor(readonly statementTimeoutMs: number, cause: unknown)
1768
+ ```
1769
+
1770
+ ### `LockTimeoutError`
1647
1771
 
1648
- Opens a standalone managed connection outside the manifold's pools — the
1649
- sanctioned door for contexts where `pipe()` structurally cannot resolve:
1650
- `worker_threads`, detached monitors, one-off scripts. Callers own the
1651
- lifecycle: always `await conn.close()`.
1772
+ A statement gave up waiting for a lock past the lock timeout a {@link withTimeouts} call set. `cause` is the driver error.
1652
1773
 
1653
1774
  ```typescript
1654
- function tap(url: string, options?: ConnectOptions): ManagedConnection
1775
+ class LockTimeoutError extends Error constructor(readonly lockTimeoutMs: number, cause: unknown)
1655
1776
  ```
1656
1777
 
1657
1778
  ## request
@@ -36,6 +36,37 @@ export declare function left(a: TextArg, n: number | Column | SQL): SQL<string>;
36
36
  export declare function right(a: TextArg, n: number | Column | SQL): SQL<string>;
37
37
  /** PostgreSQL `length(a)` — the number of characters in `a`. */
38
38
  export declare function length(a: TextArg): SQL<number>;
39
+ /** PostgreSQL `split_part(a, delimiter, n)` — the `n`th (1-based) field of `a`; negative `n` counts from the end (PostgreSQL 14+). `delimiter` is bound. */
40
+ export declare function splitPart(a: TextArg, delimiter: string, n: number | Column | SQL): SQL<string>;
41
+ /** PostgreSQL `lower(a)`. */
42
+ export declare function lower(a: TextArg): SQL<string>;
43
+ /** PostgreSQL `upper(a)`. */
44
+ export declare function upper(a: TextArg): SQL<string>;
45
+ /** Which end of the text `trim` strips. */
46
+ export type TrimSide = 'both' | 'leading' | 'trailing';
47
+ /** PostgreSQL `trim(<side> [characters] from a)` — strips spaces, or any of `characters` (bound), from the chosen end; `side` defaults to `'both'`. */
48
+ export declare function trim(a: TextArg, options?: {
49
+ readonly side?: TrimSide;
50
+ readonly characters?: string;
51
+ }): SQL<string>;
52
+ /** PostgreSQL `replace(a, from, to)` — every occurrence of the exact text `from` becomes `to`. */
53
+ export declare function replace(a: TextArg, from: TextArg, to: TextArg): SQL<string>;
54
+ /** PostgreSQL `substring(a, from[, count])` — 1-based start, optional length. */
55
+ export declare function substring(a: TextArg, from: number | Column | SQL, count?: number | Column | SQL): SQL<string>;
56
+ /** PostgreSQL `reverse(a)`. */
57
+ export declare function reverse(a: TextArg): SQL<string>;
58
+ /** PostgreSQL `lpad(a, length[, fill])` — pads on the left (or truncates) to `length` characters; `fill` defaults to a space. */
59
+ export declare function lpad(a: TextArg, length: number | Column | SQL, fill?: string): SQL<string>;
60
+ /** PostgreSQL `rpad(a, length[, fill])` — pads on the right (or truncates) to `length` characters; `fill` defaults to a space. */
61
+ export declare function rpad(a: TextArg, length: number | Column | SQL, fill?: string): SQL<string>;
62
+ /** PostgreSQL `regexp_replace(a, pattern, replacement[, flags])` — POSIX regex; `flags` such as `'g'` or `'i'`. Pattern, replacement and flags are bound. */
63
+ export declare function regexpReplace(a: TextArg, pattern: string, replacement: string, flags?: string): SQL<string>;
64
+ /** True when `a` matches the POSIX regex `pattern` (bound): `a ~ pattern`, or `a ~* pattern` with `caseInsensitive`. */
65
+ export declare function regexpMatch(a: TextArg, pattern: string, options?: {
66
+ readonly caseInsensitive?: boolean;
67
+ }): SQL<boolean>;
68
+ /** PostgreSQL `string_to_array(a, delimiter)` — splits `a` into a text array; `delimiter` is bound. An empty `a` gives `{}`. */
69
+ export declare function stringToArray(a: TextArg, delimiter: string): SQL<string[]>;
39
70
  /**
40
71
  * Text concatenation: `(p1 || p2 || ...)`. Strings are bound as text. A null part makes
41
72
  * the whole result null (SQL `||`); wrap such a part in `coalesce` if that is not wanted.
@@ -47,6 +78,24 @@ type ElementOf<C extends Column> = C['_']['data'] extends ReadonlyArray<infer E>
47
78
  export declare function arrayReplace<C extends Column>(col: C, from: ElementOf<C>, to: ElementOf<C>): SQL<C['_']['data']>;
48
79
  /** True when the array column holds `value`: `$value::<element> = ANY(col)`. `value` is bound and cast to the column's element type. */
49
80
  export declare function arrayHas<C extends Column>(col: C, value: ElementOf<C>): SQL<boolean>;
81
+ /** PostgreSQL `cardinality(arr)` — the number of elements; 0 for `'{}'`, NULL for a NULL array. */
82
+ export declare function cardinality(arr: Column | SQL): SQL<number | null>;
83
+ /**
84
+ * One element by 1-based index: `(arr)[n]`; a negative `n` counts from the end,
85
+ * `(arr)[cardinality(arr) + n + 1]`. NULL for 0, out of range, or an empty array. `n` is bound.
86
+ */
87
+ export declare function arrayAt<C extends Column>(arr: C, n: number): SQL<ElementOf<C> | null>;
88
+ export declare function arrayAt<T>(arr: SQL<readonly T[]>, n: number): SQL<T | null>;
89
+ /** PostgreSQL `array_position(col, value)` — 1-based index of the first `value`, NULL when absent. `value` is bound and cast to the element type. */
90
+ export declare function arrayPosition<C extends Column>(col: C, value: ElementOf<C>): SQL<number | null>;
91
+ /** Array slice `(col)[from:to]`, 1-based and inclusive; out-of-range bounds are clipped. `from`/`to` are bound. */
92
+ export declare function arraySlice<C extends Column>(col: C, from: number, to: number): SQL<C['_']['data']>;
93
+ /** PostgreSQL `array_to_string(arr, delimiter)` — joins the elements (NULL elements skipped); `delimiter` is bound. */
94
+ export declare function arrayToString(arr: Column | SQL, delimiter: string): SQL<string>;
95
+ /** PostgreSQL `array_append(col, value)` — `value` goes last. `value` is bound and cast to the element type. */
96
+ export declare function arrayAppend<C extends Column>(col: C, value: ElementOf<C>): SQL<C['_']['data']>;
97
+ /** PostgreSQL `array_remove(col, value)` — drops every element equal to `value`. `value` is bound and cast to the element type. */
98
+ export declare function arrayRemove<C extends Column>(col: C, value: ElementOf<C>): SQL<C['_']['data']>;
50
99
  /** PostgreSQL `date_trunc('unit', column)` — truncates a timestamp to the given precision. */
51
100
  export declare function dateTrunc(unit: 'microseconds' | 'milliseconds' | 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year' | 'decade' | 'century' | 'millennium', column: Column | SQL): SQL<Date>;
52
101
  /** PostgreSQL `ROW_NUMBER()` window function. Use with `over()` to apply a window specification. */
@@ -1 +1 @@
1
- {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/data/db/expressions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/data/db/expressions.ts"],"names":[],"mappings":"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"}
@@ -85,6 +85,86 @@ export function right(a, n) {
85
85
  export function length(a) {
86
86
  return sql `length(${textArg(a)})`;
87
87
  }
88
+ function wholeNumber(value, helper, what) {
89
+ if (!Number.isInteger(value)) {
90
+ throw new Error(`[pipework] ${helper}() needs a finite integer ${what}, got ${String(value)}.\n\n` +
91
+ ' NaN, Infinity and fractions are not valid positions or counts.\n' +
92
+ ` Fix: pass an integer: ${helper}(..., 1).\n`);
93
+ }
94
+ return value;
95
+ }
96
+ function checkedIntArg(value, helper, what) {
97
+ return typeof value === 'number' ? sql `${wholeNumber(value, helper, what)}::int` : sql `${value}`;
98
+ }
99
+ /** PostgreSQL `split_part(a, delimiter, n)` — the `n`th (1-based) field of `a`; negative `n` counts from the end (PostgreSQL 14+). `delimiter` is bound. */
100
+ export function splitPart(a, delimiter, n) {
101
+ return sql `split_part(${textArg(a)}, ${delimiter}::text, ${checkedIntArg(n, 'splitPart', 'field number')})`;
102
+ }
103
+ /** PostgreSQL `lower(a)`. */
104
+ export function lower(a) {
105
+ return sql `lower(${textArg(a)})`;
106
+ }
107
+ /** PostgreSQL `upper(a)`. */
108
+ export function upper(a) {
109
+ return sql `upper(${textArg(a)})`;
110
+ }
111
+ const TRIM_SIDES = new Set(['both', 'leading', 'trailing']);
112
+ /** PostgreSQL `trim(<side> [characters] from a)` — strips spaces, or any of `characters` (bound), from the chosen end; `side` defaults to `'both'`. */
113
+ export function trim(a, options = {}) {
114
+ const side = options.side ?? 'both';
115
+ if (!TRIM_SIDES.has(side)) {
116
+ throw new Error(`[pipework] trim() side must be 'both', 'leading' or 'trailing', got ${String(side)}.\n\n` +
117
+ " Fix: trim(column, { side: 'leading' }).\n");
118
+ }
119
+ const kw = sql.raw(side);
120
+ if (options.characters === undefined)
121
+ return sql `trim(${kw} from ${textArg(a)})`;
122
+ return sql `trim(${kw} ${options.characters}::text from ${textArg(a)})`;
123
+ }
124
+ /** PostgreSQL `replace(a, from, to)` — every occurrence of the exact text `from` becomes `to`. */
125
+ export function replace(a, from, to) {
126
+ return sql `replace(${textArg(a)}, ${textArg(from)}, ${textArg(to)})`;
127
+ }
128
+ /** PostgreSQL `substring(a, from[, count])` — 1-based start, optional length. */
129
+ export function substring(a, from, count) {
130
+ const start = checkedIntArg(from, 'substring', 'start');
131
+ if (count === undefined)
132
+ return sql `substring(${textArg(a)}, ${start})`;
133
+ return sql `substring(${textArg(a)}, ${start}, ${checkedIntArg(count, 'substring', 'count')})`;
134
+ }
135
+ /** PostgreSQL `reverse(a)`. */
136
+ export function reverse(a) {
137
+ return sql `reverse(${textArg(a)})`;
138
+ }
139
+ /** PostgreSQL `lpad(a, length[, fill])` — pads on the left (or truncates) to `length` characters; `fill` defaults to a space. */
140
+ export function lpad(a, length, fill) {
141
+ const len = checkedIntArg(length, 'lpad', 'length');
142
+ if (fill === undefined)
143
+ return sql `lpad(${textArg(a)}, ${len})`;
144
+ return sql `lpad(${textArg(a)}, ${len}, ${fill}::text)`;
145
+ }
146
+ /** PostgreSQL `rpad(a, length[, fill])` — pads on the right (or truncates) to `length` characters; `fill` defaults to a space. */
147
+ export function rpad(a, length, fill) {
148
+ const len = checkedIntArg(length, 'rpad', 'length');
149
+ if (fill === undefined)
150
+ return sql `rpad(${textArg(a)}, ${len})`;
151
+ return sql `rpad(${textArg(a)}, ${len}, ${fill}::text)`;
152
+ }
153
+ /** PostgreSQL `regexp_replace(a, pattern, replacement[, flags])` — POSIX regex; `flags` such as `'g'` or `'i'`. Pattern, replacement and flags are bound. */
154
+ export function regexpReplace(a, pattern, replacement, flags) {
155
+ if (flags === undefined)
156
+ return sql `regexp_replace(${textArg(a)}, ${pattern}::text, ${replacement}::text)`;
157
+ return sql `regexp_replace(${textArg(a)}, ${pattern}::text, ${replacement}::text, ${flags}::text)`;
158
+ }
159
+ /** True when `a` matches the POSIX regex `pattern` (bound): `a ~ pattern`, or `a ~* pattern` with `caseInsensitive`. */
160
+ export function regexpMatch(a, pattern, options = {}) {
161
+ const op = options.caseInsensitive === true ? sql.raw('~*') : sql.raw('~');
162
+ return sql `${textArg(a)} ${op} ${pattern}::text`;
163
+ }
164
+ /** PostgreSQL `string_to_array(a, delimiter)` — splits `a` into a text array; `delimiter` is bound. An empty `a` gives `{}`. */
165
+ export function stringToArray(a, delimiter) {
166
+ return sql `string_to_array(${textArg(a)}, ${delimiter}::text)`;
167
+ }
88
168
  /**
89
169
  * Text concatenation: `(p1 || p2 || ...)`. Strings are bound as text. A null part makes
90
170
  * the whole result null (SQL `||`); wrap such a part in `coalesce` if that is not wanted.
@@ -117,6 +197,41 @@ export function arrayHas(col, value) {
117
197
  const el = sql.raw(elementType(col, 'arrayHas'));
118
198
  return sql `${value}::${el} = ANY(${col})`;
119
199
  }
200
+ /** PostgreSQL `cardinality(arr)` — the number of elements; 0 for `'{}'`, NULL for a NULL array. */
201
+ export function cardinality(arr) {
202
+ return sql `cardinality(${arr})`;
203
+ }
204
+ export function arrayAt(arr, n) {
205
+ wholeNumber(n, 'arrayAt', 'index');
206
+ if (n < 0)
207
+ return sql `(${arr})[cardinality(${arr}) + ${n + 1}::int]`;
208
+ return sql `(${arr})[${n}::int]`;
209
+ }
210
+ /** PostgreSQL `array_position(col, value)` — 1-based index of the first `value`, NULL when absent. `value` is bound and cast to the element type. */
211
+ export function arrayPosition(col, value) {
212
+ const el = sql.raw(elementType(col, 'arrayPosition'));
213
+ return sql `array_position(${col}, ${value}::${el})`;
214
+ }
215
+ /** Array slice `(col)[from:to]`, 1-based and inclusive; out-of-range bounds are clipped. `from`/`to` are bound. */
216
+ export function arraySlice(col, from, to) {
217
+ wholeNumber(from, 'arraySlice', 'start');
218
+ wholeNumber(to, 'arraySlice', 'end');
219
+ return sql `(${col})[(${from}::int):(${to}::int)]`;
220
+ }
221
+ /** PostgreSQL `array_to_string(arr, delimiter)` — joins the elements (NULL elements skipped); `delimiter` is bound. */
222
+ export function arrayToString(arr, delimiter) {
223
+ return sql `array_to_string(${arr}, ${delimiter}::text)`;
224
+ }
225
+ /** PostgreSQL `array_append(col, value)` — `value` goes last. `value` is bound and cast to the element type. */
226
+ export function arrayAppend(col, value) {
227
+ const el = sql.raw(elementType(col, 'arrayAppend'));
228
+ return sql `array_append(${col}, ${value}::${el})`;
229
+ }
230
+ /** PostgreSQL `array_remove(col, value)` — drops every element equal to `value`. `value` is bound and cast to the element type. */
231
+ export function arrayRemove(col, value) {
232
+ const el = sql.raw(elementType(col, 'arrayRemove'));
233
+ return sql `array_remove(${col}, ${value}::${el})`;
234
+ }
120
235
  /** PostgreSQL `date_trunc('unit', column)` — truncates a timestamp to the given precision. */
121
236
  export function dateTrunc(unit, column) {
122
237
  return sql `date_trunc('${sql.raw(unit)}', ${column})`;
@@ -1 +1 @@
1
- {"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../../src/data/db/expressions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../../src/data/db/expressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAI9B,uEAAuE;AACvE,MAAM,UAAU,SAAS,CAAC,MAAoB,EAAE,MAAc;IAC5D,OAAO,GAAG,CAAQ,GAAG,MAAM,MAAM,MAAM,EAAE,CAAA;AAC3C,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,SAAS,CAAC,MAAoB,EAAE,MAAc;IAC5D,OAAO,GAAG,CAAQ,GAAG,MAAM,MAAM,MAAM,EAAE,CAAA;AAC3C,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,GAAG,CAAc,IAAkB,EAAE,KAAmB;IACtE,OAAO,GAAG,CAAG,GAAG,IAAI,MAAM,KAAK,EAAE,CAAA;AACnC,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,QAAQ,CAAc,IAAkB,EAAE,KAAmB;IAC3E,OAAO,GAAG,CAAG,GAAG,IAAI,MAAM,KAAK,EAAE,CAAA;AACnC,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,QAAQ,CAAI,UAAwB,EAAE,YAAe;IACnE,OAAO,GAAG,CAAG,YAAY,UAAU,KAAK,YAAY,GAAG,CAAA;AACzD,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,GAAG;IACjB,OAAO,GAAG,CAAM,OAAO,CAAA;AACzB,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,MAAM,CAAI,QAAoB;IAC5C,OAAO,GAAG,CAAG,IAAI,QAAQ,GAAG,CAAA;AAC9B,CAAC;AAKD,kDAAkD;AAClD,MAAM,UAAU,IAAI,CAAc,UAAqC,EAAE,MAAc;IACrF,OAAO,GAAG,CAAG,IAAI,UAAU,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAA;AACpD,CAAC;AAED,MAAM,sBAAsB,GAA2C;IACrE,YAAY,EAAE,aAAa;IAC3B,YAAY,EAAE,aAAa;IAC3B,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,OAAO;IACf,KAAK,EAAE,MAAM;CACd,CAAA;AAED,4JAA4J;AAC5J,MAAM,UAAU,QAAQ,CAAC,MAAc,EAAE,IAAkB;IACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,oDAAoD,MAAM,CAAC,MAAM,CAAC,OAAO;YACzE,sDAAsD;YACtD,wDAAwD,CACzD,CAAA;IACH,CAAC;IACD,OAAO,GAAG,CAAA,IAAI,MAAM,oCAAoC,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAA;AACnG,CAAC;AAED,yHAAyH;AACzH,MAAM,UAAU,cAAc;IAC5B,OAAO,GAAG,CAAM,mBAAmB,CAAA;AACrC,CAAC;AAKD,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAA,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAA,GAAG,KAAK,EAAE,CAAA;AACxE,CAAC;AAED,SAAS,MAAM,CAAC,KAA4B;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAA,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA,GAAG,KAAK,EAAE,CAAA;AACvE,CAAC;AAED,sJAAsJ;AACtJ,MAAM,UAAU,MAAM,CAAC,CAAU,EAAE,CAAU;IAC3C,OAAO,GAAG,CAAQ,UAAU,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;AAC1D,CAAC;AAED,uHAAuH;AACvH,MAAM,UAAU,YAAY,CAAC,CAAU,EAAE,CAAU;IACjD,OAAO,GAAG,CAAS,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAA;AAC1C,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,UAAU,CAAC,CAAU,EAAE,MAAe;IACpD,OAAO,GAAG,CAAS,eAAe,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,CAAA;AACrE,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,IAAI,CAAC,CAAU,EAAE,CAAwB;IACvD,OAAO,GAAG,CAAQ,QAAQ,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA;AACvD,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,KAAK,CAAC,CAAU,EAAE,CAAwB;IACxD,OAAO,GAAG,CAAQ,SAAS,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA;AACxD,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,MAAM,CAAC,CAAU;IAC/B,OAAO,GAAG,CAAQ,UAAU,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;AAC3C,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,MAAc,EAAE,IAAY;IAC9D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,cAAc,MAAM,6BAA6B,IAAI,SAAS,MAAM,CAAC,KAAK,CAAC,OAAO;YAClF,oEAAoE;YACpE,2BAA2B,MAAM,aAAa,CAC/C,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,aAAa,CAAC,KAA4B,EAAE,MAAc,EAAE,IAAY;IAC/E,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAA,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA,GAAG,KAAK,EAAE,CAAA;AAClG,CAAC;AAED,4JAA4J;AAC5J,MAAM,UAAU,SAAS,CAAC,CAAU,EAAE,SAAiB,EAAE,CAAwB;IAC/E,OAAO,GAAG,CAAQ,cAAc,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,WAAW,aAAa,CAAC,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,GAAG,CAAA;AACrH,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,KAAK,CAAC,CAAU;IAC9B,OAAO,GAAG,CAAQ,SAAS,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;AAC1C,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,KAAK,CAAC,CAAU;IAC9B,OAAO,GAAG,CAAQ,SAAS,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAA;AAKhF,uJAAuJ;AACvJ,MAAM,UAAU,IAAI,CAAC,CAAU,EAAE,UAAsE,EAAE;IACvG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAA;IACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,uEAAuE,MAAM,CAAC,IAAI,CAAC,OAAO;YAC1F,6CAA6C,CAC9C,CAAA;IACH,CAAC;IACD,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACxB,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,GAAG,CAAQ,QAAQ,EAAE,SAAS,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;IACxF,OAAO,GAAG,CAAQ,QAAQ,EAAE,IAAI,OAAO,CAAC,UAAU,eAAe,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;AAChF,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,OAAO,CAAC,CAAU,EAAE,IAAa,EAAE,EAAW;IAC5D,OAAO,GAAG,CAAQ,WAAW,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC,GAAG,CAAA;AAC9E,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,SAAS,CAAC,CAAU,EAAE,IAA2B,EAAE,KAA6B;IAC9F,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;IACvD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,CAAQ,aAAa,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAA;IAC/E,OAAO,GAAG,CAAQ,aAAa,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAA;AACvG,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,OAAO,CAAC,CAAU;IAChC,OAAO,GAAG,CAAQ,WAAW,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;AAC5C,CAAC;AAED,iIAAiI;AACjI,MAAM,UAAU,IAAI,CAAC,CAAU,EAAE,MAA6B,EAAE,IAAa;IAC3E,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IACnD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,GAAG,CAAQ,QAAQ,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAA;IACvE,OAAO,GAAG,CAAQ,QAAQ,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,IAAI,SAAS,CAAA;AAChE,CAAC;AAED,kIAAkI;AAClI,MAAM,UAAU,IAAI,CAAC,CAAU,EAAE,MAA6B,EAAE,IAAa;IAC3E,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IACnD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,GAAG,CAAQ,QAAQ,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAA;IACvE,OAAO,GAAG,CAAQ,QAAQ,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,IAAI,SAAS,CAAA;AAChE,CAAC;AAED,6JAA6J;AAC7J,MAAM,UAAU,aAAa,CAAC,CAAU,EAAE,OAAe,EAAE,WAAmB,EAAE,KAAc;IAC5F,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,CAAQ,kBAAkB,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,WAAW,WAAW,SAAS,CAAA;IAClH,OAAO,GAAG,CAAQ,kBAAkB,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,WAAW,WAAW,WAAW,KAAK,SAAS,CAAA;AAC3G,CAAC;AAED,wHAAwH;AACxH,MAAM,UAAU,WAAW,CAAC,CAAU,EAAE,OAAe,EAAE,UAAkD,EAAE;IAC3G,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC1E,OAAO,GAAG,CAAS,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,OAAO,QAAQ,CAAA;AAC3D,CAAC;AAED,gIAAgI;AAChI,MAAM,UAAU,aAAa,CAAC,CAAU,EAAE,SAAiB;IACzD,OAAO,GAAG,CAAU,mBAAmB,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,SAAS,CAAA;AAC1E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,GAAG,KAAmC;IAC3D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,qDAAqD,KAAK,CAAC,MAAM,OAAO;YACxE,qEAAqE;YACrE,8DAA8D,CAC/D,CAAA;IACH,CAAC;IACD,OAAO,GAAG,CAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAA,MAAM,CAAC,GAAG,CAAA;AAClE,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,MAAc;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;IAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,cAAc,MAAM,kCAAkC,MAAM,CAAC,IAAI,aAAa,IAAI,OAAO;YACzF,8EAA8E;YAC9E,oEAAoE,MAAM,OAAO,CAClF,CAAA;IACH,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAC1B,CAAC;AAID,2JAA2J;AAC3J,MAAM,UAAU,YAAY,CAAmB,GAAM,EAAE,IAAkB,EAAE,EAAgB;IACzF,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAA;IACpD,OAAO,GAAG,CAAgB,iBAAiB,GAAG,KAAK,IAAI,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAA;AACjF,CAAC;AAED,wIAAwI;AACxI,MAAM,UAAU,QAAQ,CAAmB,GAAM,EAAE,KAAmB;IACpE,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAA;IAChD,OAAO,GAAG,CAAS,GAAG,KAAK,KAAK,EAAE,UAAU,GAAG,GAAG,CAAA;AACpD,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,WAAW,CAAC,GAAiB;IAC3C,OAAO,GAAG,CAAe,eAAe,GAAG,GAAG,CAAA;AAChD,CAAC;AAQD,MAAM,UAAU,OAAO,CAAC,GAAiB,EAAE,CAAS;IAClD,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;IAClC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAA,IAAI,GAAG,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAA;IACpE,OAAO,GAAG,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAA;AACjC,CAAC;AAED,qJAAqJ;AACrJ,MAAM,UAAU,aAAa,CAAmB,GAAM,EAAE,KAAmB;IACzE,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAA;IACrD,OAAO,GAAG,CAAe,kBAAkB,GAAG,KAAK,KAAK,KAAK,EAAE,GAAG,CAAA;AACpE,CAAC;AAED,mHAAmH;AACnH,MAAM,UAAU,UAAU,CAAmB,GAAM,EAAE,IAAY,EAAE,EAAU;IAC3E,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;IACxC,WAAW,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,CAAA;IACpC,OAAO,GAAG,CAAgB,IAAI,GAAG,MAAM,IAAI,WAAW,EAAE,SAAS,CAAA;AACnE,CAAC;AAED,uHAAuH;AACvH,MAAM,UAAU,aAAa,CAAC,GAAiB,EAAE,SAAiB;IAChE,OAAO,GAAG,CAAQ,mBAAmB,GAAG,KAAK,SAAS,SAAS,CAAA;AACjE,CAAC;AAED,gHAAgH;AAChH,MAAM,UAAU,WAAW,CAAmB,GAAM,EAAE,KAAmB;IACvE,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAA;IACnD,OAAO,GAAG,CAAgB,gBAAgB,GAAG,KAAK,KAAK,KAAK,EAAE,GAAG,CAAA;AACnE,CAAC;AAED,mIAAmI;AACnI,MAAM,UAAU,WAAW,CAAmB,GAAM,EAAE,KAAmB;IACvE,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAA;IACnD,OAAO,GAAG,CAAgB,gBAAgB,GAAG,KAAK,KAAK,KAAK,EAAE,GAAG,CAAA;AACnE,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,SAAS,CAAC,IAA0J,EAAE,MAAoB;IACxM,OAAO,GAAG,CAAM,eAAe,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,MAAM,GAAG,CAAA;AAC7D,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,SAAS;IACvB,OAAO,GAAG,CAAQ,cAAc,CAAA;AAClC,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,IAAI;IAClB,OAAO,GAAG,CAAQ,QAAQ,CAAA;AAC5B,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,SAAS;IACvB,OAAO,GAAG,CAAQ,cAAc,CAAA;AAClC,CAAC;AAQD,mHAAmH;AACnH,MAAM,UAAU,IAAI,CAAI,EAAU,EAAE,IAAgB;IAClD,MAAM,KAAK,GAAU,EAAE,CAAA;IACvB,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACpF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,gBAAgB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAA,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAA,IAAI,CAAC,EAAE,CAAC,CAAA;IAC9E,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAA,IAAI,CAAC,EAAE,CAAC,CAAA;IACtD,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAG,GAAG,EAAE,UAAU,CAAA;IACpD,OAAO,GAAG,CAAG,GAAG,EAAE,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAA,GAAG,CAAC,GAAG,CAAA;AACxD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,GAAG,IAAc;IACzD,IAAI,SAAS,GAAG,GAAG,CAAA,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAA;IAC7C,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,SAAS,GAAG,GAAG,CAAA,GAAG,SAAS,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAA;IACvD,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,4IAA4I;AAC5I,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,IAAS,EAAE,IAAS,EAAE,UAAgB;IACjF,MAAM,GAAG,GAAG,GAAG,CAAA,kBAAkB,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,IAAI,cAAc,IAAI,GAAG,CAAA;IACvF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,GAAG,CAAA,GAAG,GAAG,IAAI,UAAU,EAAE,CAAA;IAClC,CAAC;IACD,OAAO,GAAG,CAAA,GAAG,GAAG,kBAAkB,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAA;AAC3D,CAAC;AAQD,qIAAqI;AACrI,MAAM,UAAU,QAAQ,CAAc,QAAsC,EAAE,SAA+B;IAC3G,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,yDAAyD;YACzD,8DAA8D;YAC9D,8FAA8F,CAC/F,CAAA;IACH,CAAC;IACD,MAAM,KAAK,GAAU,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAA,QAAQ,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IAC1E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,QAAQ,SAAS,EAAE,CAAC,CAAA;IACpC,CAAC;IACD,OAAO,GAAG,CAAG,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAA,GAAG,CAAC,MAAM,CAAA;AACpD,CAAC;AAED,0GAA0G;AAC1G,MAAM,UAAU,aAAa;IAC3B,OAAO,GAAG,CAAQ,4BAA4B,CAAA;AAChD,CAAC;AAED,yIAAyI;AACzI,MAAM,UAAU,YAAY;IAC1B,OAAO,GAAG,CAAe,gCAAgC,CAAA;AAC3D,CAAC;AAED,2LAA2L;AAC3L,MAAM,UAAU,YAAY,CAAC,UAAiC;IAC5D,OAAO,GAAG,CAAgB,+BAA+B,UAAU,UAAU,CAAA;AAC/E,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { and, arrayContained, arrayContains, arrayOverlaps, asc, between, desc, exists, ilike, inArray, is, isNotNull, isNull, like, not, notBetween, notExists, notIlike, notInArray, notLike, or, avg, avgDistinct, count, countDistinct, max, min, sum, sumDistinct } from '../query/index.js';
2
- import { increment, decrement, add, subtract, coalesce, now, scalar, cast, interval, clockTimestamp, strpos, textContains, startsWith, left, right, length, concat, arrayReplace, arrayHas, dateTrunc, rowNumber, rank, denseRank, over, identifier, withRecursive, caseWhen, walCurrentLsn, walReplayLsn, replicaFresh } from './expressions.js';
2
+ import { increment, decrement, add, subtract, coalesce, now, scalar, cast, interval, clockTimestamp, strpos, textContains, startsWith, left, right, length, concat, arrayReplace, arrayHas, splitPart, lower, upper, trim, replace, substring, reverse, lpad, rpad, regexpReplace, regexpMatch, stringToArray, cardinality, arrayAt, arrayPosition, arraySlice, arrayToString, arrayAppend, arrayRemove, dateTrunc, rowNumber, rank, denseRank, over, identifier, withRecursive, caseWhen, walCurrentLsn, walReplayLsn, replicaFresh } from './expressions.js';
3
3
  import { ago, castUuid, castJsonb, castTimestamp, castBoolean, castNumeric, castInteger, castText, nextSequence } from './composed.js';
4
4
  import { json as jsonbExtract, pathText as jsonbExtractText, contains as jsonbContains, merge as jsonbMerge, remove as jsonbRemove } from '../jsonb/query.js';
5
5
  import { arrayAny, arrayAll, jsonbElements } from './array-elements.js';
@@ -64,6 +64,25 @@ export declare const filter: {
64
64
  readonly concat: typeof concat;
65
65
  readonly arrayReplace: typeof arrayReplace;
66
66
  readonly arrayHas: typeof arrayHas;
67
+ readonly splitPart: typeof splitPart;
68
+ readonly lower: typeof lower;
69
+ readonly upper: typeof upper;
70
+ readonly trim: typeof trim;
71
+ readonly replace: typeof replace;
72
+ readonly substring: typeof substring;
73
+ readonly reverse: typeof reverse;
74
+ readonly lpad: typeof lpad;
75
+ readonly rpad: typeof rpad;
76
+ readonly regexpReplace: typeof regexpReplace;
77
+ readonly regexpMatch: typeof regexpMatch;
78
+ readonly stringToArray: typeof stringToArray;
79
+ readonly cardinality: typeof cardinality;
80
+ readonly arrayAt: typeof arrayAt;
81
+ readonly arrayPosition: typeof arrayPosition;
82
+ readonly arraySlice: typeof arraySlice;
83
+ readonly arrayToString: typeof arrayToString;
84
+ readonly arrayAppend: typeof arrayAppend;
85
+ readonly arrayRemove: typeof arrayRemove;
67
86
  readonly dateTrunc: typeof dateTrunc;
68
87
  readonly rowNumber: typeof rowNumber;
69
88
  readonly rank: typeof rank;
@@ -1 +1 @@
1
- {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../src/data/db/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAM,MAAM,EACjF,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAe,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAC9F,UAAU,EAAE,OAAO,EAAE,EAAE,EACvB,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EACnE,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACjV,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACtI,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,QAAQ,IAAI,gBAAgB,EAAE,QAAQ,IAAI,aAAa,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC7J,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEvE,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDT,CAAA"}
1
+ {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../src/data/db/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAM,MAAM,EACjF,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAe,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAC9F,UAAU,EAAE,OAAO,EAAE,EAAE,EACvB,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EACnE,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC9hB,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACtI,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,QAAQ,IAAI,gBAAgB,EAAE,QAAQ,IAAI,aAAa,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC7J,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEvE,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwET,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { and, arrayContained, arrayContains, arrayOverlaps, asc, between, desc, eq, exists, gt, gte, ilike, inArray, is, isNotNull, isNull, like, lt, lte, ne, not, notBetween, notExists, notIlike, notInArray, notLike, or, avg, avgDistinct, count, countDistinct, max, min, sum, sumDistinct, } from '../query/index.js';
2
2
  import { except, exceptAll, intersect, intersectAll, union, unionAll } from '../query/pg-core/index.js';
3
- import { increment, decrement, add, subtract, coalesce, now, scalar, cast, interval, clockTimestamp, strpos, textContains, startsWith, left, right, length, concat, arrayReplace, arrayHas, dateTrunc, rowNumber, rank, denseRank, over, identifier, withRecursive, caseWhen, walCurrentLsn, walReplayLsn, replicaFresh } from './expressions.js';
3
+ import { increment, decrement, add, subtract, coalesce, now, scalar, cast, interval, clockTimestamp, strpos, textContains, startsWith, left, right, length, concat, arrayReplace, arrayHas, splitPart, lower, upper, trim, replace, substring, reverse, lpad, rpad, regexpReplace, regexpMatch, stringToArray, cardinality, arrayAt, arrayPosition, arraySlice, arrayToString, arrayAppend, arrayRemove, dateTrunc, rowNumber, rank, denseRank, over, identifier, withRecursive, caseWhen, walCurrentLsn, walReplayLsn, replicaFresh } from './expressions.js';
4
4
  import { ago, castUuid, castJsonb, castTimestamp, castBoolean, castNumeric, castInteger, castText, nextSequence } from './composed.js';
5
5
  import { json as jsonbExtract, pathText as jsonbExtractText, contains as jsonbContains, merge as jsonbMerge, remove as jsonbRemove } from '../jsonb/query.js';
6
6
  import { arrayAny, arrayAll, jsonbElements } from './array-elements.js';
@@ -29,6 +29,25 @@ export const filter = {
29
29
  concat,
30
30
  arrayReplace,
31
31
  arrayHas,
32
+ splitPart,
33
+ lower,
34
+ upper,
35
+ trim,
36
+ replace,
37
+ substring,
38
+ reverse,
39
+ lpad,
40
+ rpad,
41
+ regexpReplace,
42
+ regexpMatch,
43
+ stringToArray,
44
+ cardinality,
45
+ arrayAt,
46
+ arrayPosition,
47
+ arraySlice,
48
+ arrayToString,
49
+ arrayAppend,
50
+ arrayRemove,
32
51
  dateTrunc,
33
52
  rowNumber,
34
53
  rank,
@@ -1 +1 @@
1
- {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/data/db/filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/data/db/filter.ts"],"names":[],"mappings":"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"}
@@ -82,6 +82,25 @@ export declare const pipe: typeof getDb & {
82
82
  readonly concat: typeof import("./expressions.js").concat;
83
83
  readonly arrayReplace: typeof import("./expressions.js").arrayReplace;
84
84
  readonly arrayHas: typeof import("./expressions.js").arrayHas;
85
+ readonly splitPart: typeof import("./expressions.js").splitPart;
86
+ readonly lower: typeof import("./expressions.js").lower;
87
+ readonly upper: typeof import("./expressions.js").upper;
88
+ readonly trim: typeof import("./expressions.js").trim;
89
+ readonly replace: typeof import("./expressions.js").replace;
90
+ readonly substring: typeof import("./expressions.js").substring;
91
+ readonly reverse: typeof import("./expressions.js").reverse;
92
+ readonly lpad: typeof import("./expressions.js").lpad;
93
+ readonly rpad: typeof import("./expressions.js").rpad;
94
+ readonly regexpReplace: typeof import("./expressions.js").regexpReplace;
95
+ readonly regexpMatch: typeof import("./expressions.js").regexpMatch;
96
+ readonly stringToArray: typeof import("./expressions.js").stringToArray;
97
+ readonly cardinality: typeof import("./expressions.js").cardinality;
98
+ readonly arrayAt: typeof import("./expressions.js").arrayAt;
99
+ readonly arrayPosition: typeof import("./expressions.js").arrayPosition;
100
+ readonly arraySlice: typeof import("./expressions.js").arraySlice;
101
+ readonly arrayToString: typeof import("./expressions.js").arrayToString;
102
+ readonly arrayAppend: typeof import("./expressions.js").arrayAppend;
103
+ readonly arrayRemove: typeof import("./expressions.js").arrayRemove;
85
104
  readonly dateTrunc: typeof import("./expressions.js").dateTrunc;
86
105
  readonly rowNumber: typeof import("./expressions.js").rowNumber;
87
106
  readonly rank: typeof import("./expressions.js").rank;
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/data/db/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAGnM,OAAO,EAAS,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAGzE,YAAY,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE3E,6EAA6E;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,6EAA6E;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,mJAAmJ;AACnJ,eAAO,MAAM,IAAI;IACf,iQAAiQ;;IAGjQ,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAG7E,+RAA+R;;;;;;;;;;;;;IAkB/R,oDAAoD;;IAEpD,mDAAmD;;IAGnD,6EAA6E;;IAG7E,gFAAgF;;IAGhF,kHAAkH;;IAGlH,oMAAoM;;IAGpM,2GAA2G;;IAG3G,0GAA0G;;IAG1G,uNAAuN;;IAGvN,8EAA8E;;;;;;;;;;;;;;;;;;;;;;;IAE9E,qMAAqM;;IAErM,6DAA6D;;IAE7D,+LAA+L;;IAG/L,2GAA2G;;IAE3G,kNAAkN;;IAElN,gHAAgH;;IAEhH,kQAAkQ;;CAElQ,CAAA"}
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../src/data/db/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAGnM,OAAO,EAAS,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAGzE,YAAY,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE3E,6EAA6E;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,6EAA6E;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,mJAAmJ;AACnJ,eAAO,MAAM,IAAI;IACf,iQAAiQ;;IAGjQ,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAG7E,+RAA+R;;;;;;;;;;;;;IAkB/R,oDAAoD;;IAEpD,mDAAmD;;IAGnD,6EAA6E;;IAG7E,gFAAgF;;IAGhF,kHAAkH;;IAGlH,oMAAoM;;IAGpM,2GAA2G;;IAG3G,0GAA0G;;IAG1G,uNAAuN;;IAGvN,8EAA8E;;;;;;;;;;;;;;;;;;;;;;;IAE9E,qMAAqM;;IAErM,6DAA6D;;IAE7D,+LAA+L;;IAG/L,2GAA2G;;IAE3G,kNAAkN;;IAElN,gHAAgH;;IAEhH,kQAAkQ;;CAElQ,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pipework",
3
- "version": "0.179.0",
3
+ "version": "0.180.0",
4
4
  "description": "TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.",
5
5
  "type": "module",
6
6
  "license": "MIT",