@venizia/ignis-filter 0.2.0 → 0.2.1-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/cjs/common/index.d.ts +1 -0
- package/dist/cjs/common/index.d.ts.map +1 -1
- package/dist/cjs/common/index.js +1 -0
- package/dist/cjs/common/index.js.map +1 -1
- package/dist/cjs/common/operators.d.ts +2 -0
- package/dist/cjs/common/operators.d.ts.map +1 -1
- package/dist/cjs/common/operators.js +5 -0
- package/dist/cjs/common/operators.js.map +1 -1
- package/dist/cjs/common/order.d.ts +10 -0
- package/dist/cjs/common/order.d.ts.map +1 -0
- package/dist/cjs/common/order.js +77 -0
- package/dist/cjs/common/order.js.map +1 -0
- package/dist/cjs/common/types.d.ts +38 -1
- package/dist/cjs/common/types.d.ts.map +1 -1
- package/dist/esm/common/index.d.ts +1 -0
- package/dist/esm/common/index.d.ts.map +1 -1
- package/dist/esm/common/index.js +1 -0
- package/dist/esm/common/index.js.map +1 -1
- package/dist/esm/common/operators.d.ts +2 -0
- package/dist/esm/common/operators.d.ts.map +1 -1
- package/dist/esm/common/operators.js +5 -0
- package/dist/esm/common/operators.js.map +1 -1
- package/dist/esm/common/order.d.ts +10 -0
- package/dist/esm/common/order.d.ts.map +1 -0
- package/dist/esm/common/order.js +73 -0
- package/dist/esm/common/order.js.map +1 -0
- package/dist/esm/common/types.d.ts +38 -1
- package/dist/esm/common/types.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
package/dist/cjs/common/index.js
CHANGED
|
@@ -15,5 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./operators"), exports);
|
|
18
|
+
__exportStar(require("./order"), exports);
|
|
18
19
|
__exportStar(require("./types"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,0CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,0CAAwB;AACxB,0CAAwB"}
|
|
@@ -30,6 +30,8 @@ export declare class QueryOperators {
|
|
|
30
30
|
static readonly NOT_EXISTS = "notExists";
|
|
31
31
|
static readonly BETWEEN = "between";
|
|
32
32
|
static readonly NOT_BETWEEN = "notBetween";
|
|
33
|
+
static readonly IN_SQL = "inSql";
|
|
34
|
+
static readonly NOT_IN_SQL = "ninSql";
|
|
33
35
|
static readonly CONTAINS = "contains";
|
|
34
36
|
static readonly CONTAINED_BY = "containedBy";
|
|
35
37
|
static readonly OVERLAPS = "overlaps";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../../src/common/operators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAItE,qDAAqD;AACrD,qBAAa,KAAK;IAChB,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,UAAU,cAAoC;IAE9D,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGvC;AAeD,iGAAiG;AACjG,qBAAa,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAE5B,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAE5B,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAE5B,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAC9B,MAAM,CAAC,QAAQ,CAAC,QAAQ,WAAW;IACnC,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW;IAChC,MAAM,CAAC,QAAQ,CAAC,SAAS,YAAY;IAErC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,MAAM,SAAS;IAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY;IAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,aAAa;IAEpC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAE5B,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY;IAClC,MAAM,CAAC,QAAQ,CAAC,UAAU,eAAe;IAEzC,MAAM,CAAC,QAAQ,CAAC,OAAO,aAAa;IACpC,MAAM,CAAC,QAAQ,CAAC,WAAW,gBAAgB;IAG3C,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAAc;IACtC,MAAM,CAAC,QAAQ,CAAC,YAAY,iBAAiB;IAC7C,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAAc;IAEtC,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAE1B,MAAM,CAAC,QAAQ,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../../src/common/operators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAItE,qDAAqD;AACrD,qBAAa,KAAK;IAChB,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,UAAU,cAAoC;IAE9D,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGvC;AAeD,iGAAiG;AACjG,qBAAa,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAE5B,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAE5B,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAE5B,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAC9B,MAAM,CAAC,QAAQ,CAAC,QAAQ,WAAW;IACnC,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW;IAChC,MAAM,CAAC,QAAQ,CAAC,SAAS,YAAY;IAErC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,MAAM,SAAS;IAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY;IAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,aAAa;IAEpC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAE5B,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY;IAClC,MAAM,CAAC,QAAQ,CAAC,UAAU,eAAe;IAEzC,MAAM,CAAC,QAAQ,CAAC,OAAO,aAAa;IACpC,MAAM,CAAC,QAAQ,CAAC,WAAW,gBAAgB;IAG3C,MAAM,CAAC,QAAQ,CAAC,MAAM,WAAW;IACjC,MAAM,CAAC,QAAQ,CAAC,UAAU,YAAY;IAGtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAAc;IACtC,MAAM,CAAC,QAAQ,CAAC,YAAY,iBAAiB;IAC7C,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAAc;IAEtC,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAE1B,MAAM,CAAC,QAAQ,CAAC,UAAU,cA+BvB;IAEH,MAAM,CAAC,QAAQ,CAAC,uBAAuB,cAAgC;IAEvE,MAAM,CAAC,QAAQ,CAAC,4BAA4B,cAOzC;IAEH,4FAA4F;IAC5F,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GAAG,OAAO;IAyB9E,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAGzC;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
|
@@ -47,6 +47,9 @@ class QueryOperators {
|
|
|
47
47
|
static { this.NOT_EXISTS = 'notExists'; }
|
|
48
48
|
static { this.BETWEEN = 'between'; }
|
|
49
49
|
static { this.NOT_BETWEEN = 'notBetween'; }
|
|
50
|
+
// Subquery operators: the operand is a Drizzle SQL object built in code, never a request value.
|
|
51
|
+
static { this.IN_SQL = 'inSql'; }
|
|
52
|
+
static { this.NOT_IN_SQL = 'ninSql'; }
|
|
50
53
|
// Array Column Operators (PostgreSQL specific)
|
|
51
54
|
static { this.CONTAINS = 'contains'; } // @> array contains
|
|
52
55
|
static { this.CONTAINED_BY = 'containedBy'; } // <@ array is contained by
|
|
@@ -77,6 +80,8 @@ class QueryOperators {
|
|
|
77
80
|
this.NOT_EXISTS,
|
|
78
81
|
this.BETWEEN,
|
|
79
82
|
this.NOT_BETWEEN,
|
|
83
|
+
this.IN_SQL,
|
|
84
|
+
this.NOT_IN_SQL,
|
|
80
85
|
this.CONTAINS,
|
|
81
86
|
this.CONTAINED_BY,
|
|
82
87
|
this.OVERLAPS,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operators.js","sourceRoot":"","sources":["../../../src/common/operators.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"operators.js","sourceRoot":"","sources":["../../../src/common/operators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TParsedOrderEntry } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Reads one order entry - `field` or `field direction`, tokens separated by whitespace, direction
|
|
4
|
+
* `ASC` or `DESC` in any case (default `ASC`). Throws a 400 naming the whole entry when the field is
|
|
5
|
+
* missing, the direction is unknown, or the entry has more than two tokens.
|
|
6
|
+
*/
|
|
7
|
+
export declare const parseOrderEntry: (opts: {
|
|
8
|
+
entry: string;
|
|
9
|
+
}) => TParsedOrderEntry;
|
|
10
|
+
//# sourceMappingURL=order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../../src/common/order.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,SAAS,CAAC;AAmCjE;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,KAAG,iBAiDzD,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseOrderEntry = void 0;
|
|
4
|
+
const ignis_inversion_1 = require("@venizia/ignis-inversion");
|
|
5
|
+
const operators_1 = require("./operators");
|
|
6
|
+
/** Characters `JSON.stringify` leaves raw that still break a log line: DEL, C1 controls, U+2028, U+2029. */
|
|
7
|
+
const RAW_AFTER_JSON = /[\u007f-\u009f\u2028\u2029]/g;
|
|
8
|
+
/** The entry quoted for an error message: JSON-escaped, and on one line whatever it holds. */
|
|
9
|
+
const quoteEntry = (opts) => JSON.stringify(opts.entry).replace(RAW_AFTER_JSON, character => `\\u${character.charCodeAt(0).toString(16).padStart(4, '0')}`);
|
|
10
|
+
// ASCII whitespace: space, tab, line feed, vertical tab, form feed, carriage return.
|
|
11
|
+
const isSeparator = (code) => code === 32 || (code >= 9 && code <= 13);
|
|
12
|
+
const toSortDirection = (opts) => {
|
|
13
|
+
const { direction } = opts;
|
|
14
|
+
// The spellings callers write, compared without allocating; anything else is lowercased.
|
|
15
|
+
switch (direction) {
|
|
16
|
+
case 'ASC':
|
|
17
|
+
case 'asc': {
|
|
18
|
+
return operators_1.Sorts.ASC;
|
|
19
|
+
}
|
|
20
|
+
case 'DESC':
|
|
21
|
+
case 'desc': {
|
|
22
|
+
return operators_1.Sorts.DESC;
|
|
23
|
+
}
|
|
24
|
+
default: {
|
|
25
|
+
const lowered = direction.toLowerCase();
|
|
26
|
+
return lowered === operators_1.Sorts.ASC || lowered === operators_1.Sorts.DESC ? lowered : undefined;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Reads one order entry - `field` or `field direction`, tokens separated by whitespace, direction
|
|
32
|
+
* `ASC` or `DESC` in any case (default `ASC`). Throws a 400 naming the whole entry when the field is
|
|
33
|
+
* missing, the direction is unknown, or the entry has more than two tokens.
|
|
34
|
+
*/
|
|
35
|
+
const parseOrderEntry = (opts) => {
|
|
36
|
+
const { entry } = opts;
|
|
37
|
+
const trimmed = entry.trim();
|
|
38
|
+
const length = trimmed.length;
|
|
39
|
+
if (length === 0) {
|
|
40
|
+
throw (0, ignis_inversion_1.getError)({
|
|
41
|
+
statusCode: 400,
|
|
42
|
+
message: `[parseOrderEntry] Order entry has no field | entry: ${quoteEntry({ entry })}`,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
let fieldEnd = 0;
|
|
46
|
+
while (fieldEnd < length && !isSeparator(trimmed.charCodeAt(fieldEnd))) {
|
|
47
|
+
fieldEnd++;
|
|
48
|
+
}
|
|
49
|
+
if (fieldEnd === length) {
|
|
50
|
+
return { field: trimmed, direction: operators_1.Sorts.ASC };
|
|
51
|
+
}
|
|
52
|
+
// `trimmed` ends on a non-separator, so a direction token follows the gap.
|
|
53
|
+
let directionStart = fieldEnd + 1;
|
|
54
|
+
while (isSeparator(trimmed.charCodeAt(directionStart))) {
|
|
55
|
+
directionStart++;
|
|
56
|
+
}
|
|
57
|
+
let directionEnd = directionStart + 1;
|
|
58
|
+
while (directionEnd < length && !isSeparator(trimmed.charCodeAt(directionEnd))) {
|
|
59
|
+
directionEnd++;
|
|
60
|
+
}
|
|
61
|
+
if (directionEnd !== length) {
|
|
62
|
+
throw (0, ignis_inversion_1.getError)({
|
|
63
|
+
statusCode: 400,
|
|
64
|
+
message: `[parseOrderEntry] Too many tokens | entry: ${quoteEntry({ entry })} | Expected: '<field>' or '<field> ASC|DESC'`,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
const direction = toSortDirection({ direction: trimmed.slice(directionStart) });
|
|
68
|
+
if (!direction) {
|
|
69
|
+
throw (0, ignis_inversion_1.getError)({
|
|
70
|
+
statusCode: 400,
|
|
71
|
+
message: `[parseOrderEntry] Invalid direction | entry: ${quoteEntry({ entry })} | Expected: 'ASC' or 'DESC'`,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
return { field: trimmed.slice(0, fieldEnd), direction };
|
|
75
|
+
};
|
|
76
|
+
exports.parseOrderEntry = parseOrderEntry;
|
|
77
|
+
//# sourceMappingURL=order.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../src/common/order.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/** The filter shape, free of any runtime import. The zod schemas that validate this shape over HTTP stay in `@venizia/ignis-core` - they parse query strings and pull in the OpenAPI layer, which is a server concern. Do not import a value here; the purity guard fails if this file resolves to anything. */
|
|
2
|
+
import type { TConstValue } from '@venizia/ignis-inversion';
|
|
3
|
+
import type { Sorts } from './operators';
|
|
2
4
|
/** Fields selection - an array of field names to include, or an object keyed by field name (`true` includes, `false` excludes). */
|
|
3
5
|
export type TFields<T = any> = Partial<{
|
|
4
6
|
[K in keyof T]: boolean;
|
|
@@ -14,6 +16,13 @@ export type TIsoTimestamp = string & {
|
|
|
14
16
|
};
|
|
15
17
|
/** Adds `Date` to a branded `TIsoTimestamp` value type; every other type passes through unchanged. */
|
|
16
18
|
type TWidenIsoTimestamp<V> = V extends TIsoTimestamp ? V | Date : V;
|
|
19
|
+
/**
|
|
20
|
+
* A SQL fragment built in code - a Drizzle `SQL` or `SQLWrapper` - named structurally so this
|
|
21
|
+
* package stays free of Drizzle. JSON from a request can never satisfy it.
|
|
22
|
+
*/
|
|
23
|
+
export type TSqlFragment = {
|
|
24
|
+
getSQL(): unknown;
|
|
25
|
+
};
|
|
17
26
|
/** Field-level comparison operators, mirrored 1:1 from `QueryOperators` in `common/operators.ts`. */
|
|
18
27
|
export type TWhereOperators<V> = {
|
|
19
28
|
eq?: V;
|
|
@@ -38,6 +47,8 @@ export type TWhereOperators<V> = {
|
|
|
38
47
|
notExists?: boolean;
|
|
39
48
|
between?: [V, V];
|
|
40
49
|
notBetween?: [V, V];
|
|
50
|
+
inSql?: TSqlFragment;
|
|
51
|
+
ninSql?: TSqlFragment;
|
|
41
52
|
contains?: V | V[];
|
|
42
53
|
containedBy?: V | V[];
|
|
43
54
|
overlaps?: V | V[];
|
|
@@ -49,9 +60,22 @@ export type TWhereOperators<V> = {
|
|
|
49
60
|
* bare - the column's own `toDriver` already converts one.
|
|
50
61
|
*/
|
|
51
62
|
export type TWhereValue<V> = TWidenIsoTimestamp<V> | null | TWhereOperators<TWidenIsoTimestamp<V>>;
|
|
52
|
-
/**
|
|
63
|
+
/** `true` when a column value can hold JSON: `unknown`, `any` or an object other than a `Date` or a `TIsoTimestamp`. */
|
|
64
|
+
type TIsJsonValue<V> = unknown extends V ? true : V extends Date | TIsoTimestamp ? false : V extends object ? true : false;
|
|
65
|
+
/** The columns of `T` whose value can hold JSON - the only columns a JSON-path key may start with. */
|
|
66
|
+
export type TJsonColumnKey<T> = {
|
|
67
|
+
[K in keyof T & string]: TIsJsonValue<NonNullable<T[K]>> extends true ? K : never;
|
|
68
|
+
}[keyof T & string];
|
|
69
|
+
/** A JSON-path key on a JSON column of `T`: `metadata.a.b` or `metadata[0]`. */
|
|
70
|
+
export type TJsonPathKey<T> = `${TJsonColumnKey<T>}.${string}` | `${TJsonColumnKey<T>}[${string}`;
|
|
71
|
+
/**
|
|
72
|
+
* Query conditions for selecting data - column keys, JSON-path keys on JSON columns, and nested
|
|
73
|
+
* `and` / `or`. A JSON-path value is `unknown` so a `Record<string, unknown>` still assigns.
|
|
74
|
+
*/
|
|
53
75
|
export type TWhere<T = any> = {
|
|
54
76
|
[key in keyof T]?: TWhereValue<T[key]>;
|
|
77
|
+
} & {
|
|
78
|
+
[key in TJsonPathKey<T>]?: unknown;
|
|
55
79
|
} & {
|
|
56
80
|
and?: TWhere<T>[];
|
|
57
81
|
or?: TWhere<T>[];
|
|
@@ -70,6 +94,19 @@ export type TOffset = number | undefined;
|
|
|
70
94
|
export type TSkip = number | undefined;
|
|
71
95
|
/** Sorting order for results - regular columns (`fieldName ASC`) and JSON/JSONB paths (`metadata.field DESC`). */
|
|
72
96
|
export type TOrderBy = string[] | undefined;
|
|
97
|
+
/** A sort direction, exactly the `Sorts` values. */
|
|
98
|
+
export type TSortDirection = TConstValue<typeof Sorts>;
|
|
99
|
+
/** One order entry read by `parseOrderEntry`: the field as written, the direction lower-cased. */
|
|
100
|
+
export type TParsedOrderEntry = {
|
|
101
|
+
field: string;
|
|
102
|
+
direction: TSortDirection;
|
|
103
|
+
};
|
|
104
|
+
/** An order direction in either case. */
|
|
105
|
+
type TOrderDirection = TSortDirection | Uppercase<TSortDirection>;
|
|
106
|
+
/** A column of `T` or a JSON-path key on one of its JSON columns. */
|
|
107
|
+
type TOrderKey<T> = (keyof T & string) | TJsonPathKey<T>;
|
|
108
|
+
/** One typed order entry, opt-in through `satisfies TOrderEntry<T>[]` - `TFilter.order` stays `string[]`. */
|
|
109
|
+
export type TOrderEntry<T> = TOrderKey<T> | `${TOrderKey<T>} ${TOrderDirection}`;
|
|
73
110
|
/** Comprehensive filter configuration used across all repository query methods. */
|
|
74
111
|
export type TFilter<T = any> = {
|
|
75
112
|
where?: TWhere<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAAA,gTAAgT;AAEhT,mIAAmI;AACnI,MAAM,MAAM,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO;CAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAErF;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,iBAAiB,EAAE,OAAO,MAAM,CAAA;CAAE,CAAC;AAEnF,sGAAsG;AACtG,KAAK,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;AAEpE,qGAAqG;AACrG,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAC/B,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACd,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACT,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;IACV,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;IACV,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACnB,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;CAC9B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnG,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
package/dist/esm/common/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
|
@@ -30,6 +30,8 @@ export declare class QueryOperators {
|
|
|
30
30
|
static readonly NOT_EXISTS = "notExists";
|
|
31
31
|
static readonly BETWEEN = "between";
|
|
32
32
|
static readonly NOT_BETWEEN = "notBetween";
|
|
33
|
+
static readonly IN_SQL = "inSql";
|
|
34
|
+
static readonly NOT_IN_SQL = "ninSql";
|
|
33
35
|
static readonly CONTAINS = "contains";
|
|
34
36
|
static readonly CONTAINED_BY = "containedBy";
|
|
35
37
|
static readonly OVERLAPS = "overlaps";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../../src/common/operators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAItE,qDAAqD;AACrD,qBAAa,KAAK;IAChB,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,UAAU,cAAoC;IAE9D,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGvC;AAeD,iGAAiG;AACjG,qBAAa,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAE5B,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAE5B,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAE5B,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAC9B,MAAM,CAAC,QAAQ,CAAC,QAAQ,WAAW;IACnC,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW;IAChC,MAAM,CAAC,QAAQ,CAAC,SAAS,YAAY;IAErC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,MAAM,SAAS;IAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY;IAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,aAAa;IAEpC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAE5B,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY;IAClC,MAAM,CAAC,QAAQ,CAAC,UAAU,eAAe;IAEzC,MAAM,CAAC,QAAQ,CAAC,OAAO,aAAa;IACpC,MAAM,CAAC,QAAQ,CAAC,WAAW,gBAAgB;IAG3C,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAAc;IACtC,MAAM,CAAC,QAAQ,CAAC,YAAY,iBAAiB;IAC7C,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAAc;IAEtC,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAE1B,MAAM,CAAC,QAAQ,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../../src/common/operators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAItE,qDAAqD;AACrD,qBAAa,KAAK;IAChB,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,UAAU,cAAoC;IAE9D,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGvC;AAeD,iGAAiG;AACjG,qBAAa,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAE5B,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAE5B,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAE5B,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAC9B,MAAM,CAAC,QAAQ,CAAC,QAAQ,WAAW;IACnC,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW;IAChC,MAAM,CAAC,QAAQ,CAAC,SAAS,YAAY;IAErC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,MAAM,SAAS;IAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY;IAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,aAAa;IAEpC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAE5B,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY;IAClC,MAAM,CAAC,QAAQ,CAAC,UAAU,eAAe;IAEzC,MAAM,CAAC,QAAQ,CAAC,OAAO,aAAa;IACpC,MAAM,CAAC,QAAQ,CAAC,WAAW,gBAAgB;IAG3C,MAAM,CAAC,QAAQ,CAAC,MAAM,WAAW;IACjC,MAAM,CAAC,QAAQ,CAAC,UAAU,YAAY;IAGtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAAc;IACtC,MAAM,CAAC,QAAQ,CAAC,YAAY,iBAAiB;IAC7C,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAAc;IAEtC,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAC5B,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAE1B,MAAM,CAAC,QAAQ,CAAC,UAAU,cA+BvB;IAEH,MAAM,CAAC,QAAQ,CAAC,uBAAuB,cAAgC;IAEvE,MAAM,CAAC,QAAQ,CAAC,4BAA4B,cAOzC;IAEH,4FAA4F;IAC5F,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GAAG,OAAO;IAyB9E,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAGzC;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
|
@@ -43,6 +43,9 @@ export class QueryOperators {
|
|
|
43
43
|
static { this.NOT_EXISTS = 'notExists'; }
|
|
44
44
|
static { this.BETWEEN = 'between'; }
|
|
45
45
|
static { this.NOT_BETWEEN = 'notBetween'; }
|
|
46
|
+
// Subquery operators: the operand is a Drizzle SQL object built in code, never a request value.
|
|
47
|
+
static { this.IN_SQL = 'inSql'; }
|
|
48
|
+
static { this.NOT_IN_SQL = 'ninSql'; }
|
|
46
49
|
// Array Column Operators (PostgreSQL specific)
|
|
47
50
|
static { this.CONTAINS = 'contains'; } // @> array contains
|
|
48
51
|
static { this.CONTAINED_BY = 'containedBy'; } // <@ array is contained by
|
|
@@ -73,6 +76,8 @@ export class QueryOperators {
|
|
|
73
76
|
this.NOT_EXISTS,
|
|
74
77
|
this.BETWEEN,
|
|
75
78
|
this.NOT_BETWEEN,
|
|
79
|
+
this.IN_SQL,
|
|
80
|
+
this.NOT_IN_SQL,
|
|
76
81
|
this.CONTAINS,
|
|
77
82
|
this.CONTAINED_BY,
|
|
78
83
|
this.OVERLAPS,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operators.js","sourceRoot":"","sources":["../../../src/common/operators.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"operators.js","sourceRoot":"","sources":["../../../src/common/operators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TParsedOrderEntry } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Reads one order entry - `field` or `field direction`, tokens separated by whitespace, direction
|
|
4
|
+
* `ASC` or `DESC` in any case (default `ASC`). Throws a 400 naming the whole entry when the field is
|
|
5
|
+
* missing, the direction is unknown, or the entry has more than two tokens.
|
|
6
|
+
*/
|
|
7
|
+
export declare const parseOrderEntry: (opts: {
|
|
8
|
+
entry: string;
|
|
9
|
+
}) => TParsedOrderEntry;
|
|
10
|
+
//# sourceMappingURL=order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../../src/common/order.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,SAAS,CAAC;AAmCjE;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,KAAG,iBAiDzD,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { getError } from '@venizia/ignis-inversion';
|
|
2
|
+
import { Sorts } from './operators.js';
|
|
3
|
+
/** Characters `JSON.stringify` leaves raw that still break a log line: DEL, C1 controls, U+2028, U+2029. */
|
|
4
|
+
const RAW_AFTER_JSON = /[\u007f-\u009f\u2028\u2029]/g;
|
|
5
|
+
/** The entry quoted for an error message: JSON-escaped, and on one line whatever it holds. */
|
|
6
|
+
const quoteEntry = (opts) => JSON.stringify(opts.entry).replace(RAW_AFTER_JSON, character => `\\u${character.charCodeAt(0).toString(16).padStart(4, '0')}`);
|
|
7
|
+
// ASCII whitespace: space, tab, line feed, vertical tab, form feed, carriage return.
|
|
8
|
+
const isSeparator = (code) => code === 32 || (code >= 9 && code <= 13);
|
|
9
|
+
const toSortDirection = (opts) => {
|
|
10
|
+
const { direction } = opts;
|
|
11
|
+
// The spellings callers write, compared without allocating; anything else is lowercased.
|
|
12
|
+
switch (direction) {
|
|
13
|
+
case 'ASC':
|
|
14
|
+
case 'asc': {
|
|
15
|
+
return Sorts.ASC;
|
|
16
|
+
}
|
|
17
|
+
case 'DESC':
|
|
18
|
+
case 'desc': {
|
|
19
|
+
return Sorts.DESC;
|
|
20
|
+
}
|
|
21
|
+
default: {
|
|
22
|
+
const lowered = direction.toLowerCase();
|
|
23
|
+
return lowered === Sorts.ASC || lowered === Sorts.DESC ? lowered : undefined;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Reads one order entry - `field` or `field direction`, tokens separated by whitespace, direction
|
|
29
|
+
* `ASC` or `DESC` in any case (default `ASC`). Throws a 400 naming the whole entry when the field is
|
|
30
|
+
* missing, the direction is unknown, or the entry has more than two tokens.
|
|
31
|
+
*/
|
|
32
|
+
export const parseOrderEntry = (opts) => {
|
|
33
|
+
const { entry } = opts;
|
|
34
|
+
const trimmed = entry.trim();
|
|
35
|
+
const length = trimmed.length;
|
|
36
|
+
if (length === 0) {
|
|
37
|
+
throw getError({
|
|
38
|
+
statusCode: 400,
|
|
39
|
+
message: `[parseOrderEntry] Order entry has no field | entry: ${quoteEntry({ entry })}`,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
let fieldEnd = 0;
|
|
43
|
+
while (fieldEnd < length && !isSeparator(trimmed.charCodeAt(fieldEnd))) {
|
|
44
|
+
fieldEnd++;
|
|
45
|
+
}
|
|
46
|
+
if (fieldEnd === length) {
|
|
47
|
+
return { field: trimmed, direction: Sorts.ASC };
|
|
48
|
+
}
|
|
49
|
+
// `trimmed` ends on a non-separator, so a direction token follows the gap.
|
|
50
|
+
let directionStart = fieldEnd + 1;
|
|
51
|
+
while (isSeparator(trimmed.charCodeAt(directionStart))) {
|
|
52
|
+
directionStart++;
|
|
53
|
+
}
|
|
54
|
+
let directionEnd = directionStart + 1;
|
|
55
|
+
while (directionEnd < length && !isSeparator(trimmed.charCodeAt(directionEnd))) {
|
|
56
|
+
directionEnd++;
|
|
57
|
+
}
|
|
58
|
+
if (directionEnd !== length) {
|
|
59
|
+
throw getError({
|
|
60
|
+
statusCode: 400,
|
|
61
|
+
message: `[parseOrderEntry] Too many tokens | entry: ${quoteEntry({ entry })} | Expected: '<field>' or '<field> ASC|DESC'`,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
const direction = toSortDirection({ direction: trimmed.slice(directionStart) });
|
|
65
|
+
if (!direction) {
|
|
66
|
+
throw getError({
|
|
67
|
+
statusCode: 400,
|
|
68
|
+
message: `[parseOrderEntry] Invalid direction | entry: ${quoteEntry({ entry })} | Expected: 'ASC' or 'DESC'`,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
return { field: trimmed.slice(0, fieldEnd), direction };
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=order.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../src/common/order.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/** The filter shape, free of any runtime import. The zod schemas that validate this shape over HTTP stay in `@venizia/ignis-core` - they parse query strings and pull in the OpenAPI layer, which is a server concern. Do not import a value here; the purity guard fails if this file resolves to anything. */
|
|
2
|
+
import type { TConstValue } from '@venizia/ignis-inversion';
|
|
3
|
+
import type { Sorts } from './operators.js';
|
|
2
4
|
/** Fields selection - an array of field names to include, or an object keyed by field name (`true` includes, `false` excludes). */
|
|
3
5
|
export type TFields<T = any> = Partial<{
|
|
4
6
|
[K in keyof T]: boolean;
|
|
@@ -14,6 +16,13 @@ export type TIsoTimestamp = string & {
|
|
|
14
16
|
};
|
|
15
17
|
/** Adds `Date` to a branded `TIsoTimestamp` value type; every other type passes through unchanged. */
|
|
16
18
|
type TWidenIsoTimestamp<V> = V extends TIsoTimestamp ? V | Date : V;
|
|
19
|
+
/**
|
|
20
|
+
* A SQL fragment built in code - a Drizzle `SQL` or `SQLWrapper` - named structurally so this
|
|
21
|
+
* package stays free of Drizzle. JSON from a request can never satisfy it.
|
|
22
|
+
*/
|
|
23
|
+
export type TSqlFragment = {
|
|
24
|
+
getSQL(): unknown;
|
|
25
|
+
};
|
|
17
26
|
/** Field-level comparison operators, mirrored 1:1 from `QueryOperators` in `common/operators.ts`. */
|
|
18
27
|
export type TWhereOperators<V> = {
|
|
19
28
|
eq?: V;
|
|
@@ -38,6 +47,8 @@ export type TWhereOperators<V> = {
|
|
|
38
47
|
notExists?: boolean;
|
|
39
48
|
between?: [V, V];
|
|
40
49
|
notBetween?: [V, V];
|
|
50
|
+
inSql?: TSqlFragment;
|
|
51
|
+
ninSql?: TSqlFragment;
|
|
41
52
|
contains?: V | V[];
|
|
42
53
|
containedBy?: V | V[];
|
|
43
54
|
overlaps?: V | V[];
|
|
@@ -49,9 +60,22 @@ export type TWhereOperators<V> = {
|
|
|
49
60
|
* bare - the column's own `toDriver` already converts one.
|
|
50
61
|
*/
|
|
51
62
|
export type TWhereValue<V> = TWidenIsoTimestamp<V> | null | TWhereOperators<TWidenIsoTimestamp<V>>;
|
|
52
|
-
/**
|
|
63
|
+
/** `true` when a column value can hold JSON: `unknown`, `any` or an object other than a `Date` or a `TIsoTimestamp`. */
|
|
64
|
+
type TIsJsonValue<V> = unknown extends V ? true : V extends Date | TIsoTimestamp ? false : V extends object ? true : false;
|
|
65
|
+
/** The columns of `T` whose value can hold JSON - the only columns a JSON-path key may start with. */
|
|
66
|
+
export type TJsonColumnKey<T> = {
|
|
67
|
+
[K in keyof T & string]: TIsJsonValue<NonNullable<T[K]>> extends true ? K : never;
|
|
68
|
+
}[keyof T & string];
|
|
69
|
+
/** A JSON-path key on a JSON column of `T`: `metadata.a.b` or `metadata[0]`. */
|
|
70
|
+
export type TJsonPathKey<T> = `${TJsonColumnKey<T>}.${string}` | `${TJsonColumnKey<T>}[${string}`;
|
|
71
|
+
/**
|
|
72
|
+
* Query conditions for selecting data - column keys, JSON-path keys on JSON columns, and nested
|
|
73
|
+
* `and` / `or`. A JSON-path value is `unknown` so a `Record<string, unknown>` still assigns.
|
|
74
|
+
*/
|
|
53
75
|
export type TWhere<T = any> = {
|
|
54
76
|
[key in keyof T]?: TWhereValue<T[key]>;
|
|
77
|
+
} & {
|
|
78
|
+
[key in TJsonPathKey<T>]?: unknown;
|
|
55
79
|
} & {
|
|
56
80
|
and?: TWhere<T>[];
|
|
57
81
|
or?: TWhere<T>[];
|
|
@@ -70,6 +94,19 @@ export type TOffset = number | undefined;
|
|
|
70
94
|
export type TSkip = number | undefined;
|
|
71
95
|
/** Sorting order for results - regular columns (`fieldName ASC`) and JSON/JSONB paths (`metadata.field DESC`). */
|
|
72
96
|
export type TOrderBy = string[] | undefined;
|
|
97
|
+
/** A sort direction, exactly the `Sorts` values. */
|
|
98
|
+
export type TSortDirection = TConstValue<typeof Sorts>;
|
|
99
|
+
/** One order entry read by `parseOrderEntry`: the field as written, the direction lower-cased. */
|
|
100
|
+
export type TParsedOrderEntry = {
|
|
101
|
+
field: string;
|
|
102
|
+
direction: TSortDirection;
|
|
103
|
+
};
|
|
104
|
+
/** An order direction in either case. */
|
|
105
|
+
type TOrderDirection = TSortDirection | Uppercase<TSortDirection>;
|
|
106
|
+
/** A column of `T` or a JSON-path key on one of its JSON columns. */
|
|
107
|
+
type TOrderKey<T> = (keyof T & string) | TJsonPathKey<T>;
|
|
108
|
+
/** One typed order entry, opt-in through `satisfies TOrderEntry<T>[]` - `TFilter.order` stays `string[]`. */
|
|
109
|
+
export type TOrderEntry<T> = TOrderKey<T> | `${TOrderKey<T>} ${TOrderDirection}`;
|
|
73
110
|
/** Comprehensive filter configuration used across all repository query methods. */
|
|
74
111
|
export type TFilter<T = any> = {
|
|
75
112
|
where?: TWhere<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAAA,gTAAgT;AAEhT,mIAAmI;AACnI,MAAM,MAAM,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO;CAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAErF;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,iBAAiB,EAAE,OAAO,MAAM,CAAA;CAAE,CAAC;AAEnF,sGAAsG;AACtG,KAAK,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;AAEpE,qGAAqG;AACrG,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAC/B,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACd,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACT,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;IACV,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;IACV,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACnB,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;CAC9B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnG,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venizia/ignis-filter",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1-1",
|
|
4
4
|
"description": "Engine-neutral query filter vocabulary for TypeScript: the `{ where, order, limit, offset, skip, fields, include }` shape, comparison/pattern/null/array/logical operators, and sort direction constants. Isomorphic by construction - no node builtins and no server-only peer, so the same filter language serves a server repository and a browser data layer.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"browser",
|
|
@@ -79,12 +79,12 @@
|
|
|
79
79
|
"prepublishOnly": "bun run rebuild"
|
|
80
80
|
},
|
|
81
81
|
"dependencies": {
|
|
82
|
-
"@venizia/ignis-inversion": "^0.2.0",
|
|
82
|
+
"@venizia/ignis-inversion": "^0.2.1-0",
|
|
83
83
|
"zod": "^4.5.4"
|
|
84
84
|
},
|
|
85
85
|
"devDependencies": {
|
|
86
86
|
"@types/bun": "^1.4.1",
|
|
87
|
-
"@venizia/dev-configs": "^0.2.0",
|
|
87
|
+
"@venizia/dev-configs": "^0.2.1-0",
|
|
88
88
|
"eslint": "^10.10.0",
|
|
89
89
|
"prettier": "^3.9.6",
|
|
90
90
|
"tsc-alias": "^1.9.4",
|