@tablecraft/engine 0.1.1 → 0.1.3
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/LICENSE +21 -0
- package/dist/core/filterBuilder.d.ts +13 -2
- package/dist/core/filterBuilder.d.ts.map +1 -1
- package/dist/core/filterBuilder.js +114 -22
- package/dist/core/filterBuilder.js.map +1 -1
- package/dist/core/inputValidator.js +25 -1
- package/dist/core/inputValidator.js.map +1 -1
- package/dist/core/sortBuilder.d.ts +14 -1
- package/dist/core/sortBuilder.d.ts.map +1 -1
- package/dist/core/sortBuilder.js +77 -6
- package/dist/core/sortBuilder.js.map +1 -1
- package/dist/define.d.ts +34 -4
- package/dist/define.d.ts.map +1 -1
- package/dist/define.js +12 -1
- package/dist/define.js.map +1 -1
- package/dist/engine.d.ts +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +21 -10
- package/dist/engine.js.map +1 -1
- package/dist/types/table.d.ts +12 -5
- package/dist/types/table.d.ts.map +1 -1
- package/dist/types/table.js +0 -1
- package/dist/types/table.js.map +1 -1
- package/dist/utils/operators.d.ts.map +1 -1
- package/dist/utils/operators.js +15 -3
- package/dist/utils/operators.js.map +1 -1
- package/dist/utils/requestParser.d.ts +11 -0
- package/dist/utils/requestParser.d.ts.map +1 -1
- package/dist/utils/requestParser.js +85 -4
- package/dist/utils/requestParser.js.map +1 -1
- package/dist/utils/responseFormatter.d.ts.map +1 -1
- package/dist/utils/responseFormatter.js +10 -2
- package/dist/utils/responseFormatter.js.map +1 -1
- package/package.json +10 -10
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
import { OperatorSchema } from '../types/table';
|
|
2
|
+
// ── Operator shape contracts ────────────────────────────────────────────────
|
|
3
|
+
// These sets are the single source of truth for which operators expect which
|
|
4
|
+
// value shapes. Every layer (serializer, parser, validator) must agree on
|
|
5
|
+
// this contract — and they all derive from these sets.
|
|
6
|
+
/** Operators whose value MUST be an array. */
|
|
7
|
+
const ARRAY_OPERATORS = new Set(['in', 'notIn']);
|
|
8
|
+
/** Operators whose value MUST be a two-element tuple `[min, max]`. */
|
|
9
|
+
const TUPLE_OPERATORS = new Set(['between']);
|
|
10
|
+
/** Operators that take NO value at all. */
|
|
11
|
+
const NULLARY_OPERATORS = new Set(['isNull', 'isNotNull']);
|
|
12
|
+
/** Maximum number of elements allowed in an `in` / `notIn` array. */
|
|
13
|
+
const MAX_ARRAY_LENGTH = 1000;
|
|
2
14
|
/**
|
|
3
15
|
* Parses URL search-params into structured EngineParams.
|
|
4
16
|
*
|
|
@@ -8,6 +20,8 @@ import { OperatorSchema } from '../types/table';
|
|
|
8
20
|
* ?sort=-createdAt,name
|
|
9
21
|
* ?filter[status]=active
|
|
10
22
|
* ?filter[amount][gte]=100
|
|
23
|
+
* ?filter[status][in]=processing — single value, auto-wrapped to array
|
|
24
|
+
* ?filter[status][in]=processing,shipped — comma-separated, split to array
|
|
11
25
|
* ?search=hello
|
|
12
26
|
* ?select=id,name,email
|
|
13
27
|
* ?distinct=true
|
|
@@ -34,13 +48,23 @@ export function parseRequest(params) {
|
|
|
34
48
|
function normalise(input) {
|
|
35
49
|
if (input instanceof URLSearchParams) {
|
|
36
50
|
const obj = {};
|
|
51
|
+
// URLSearchParams.forEach visits each entry; for duplicate keys, last value wins.
|
|
52
|
+
// This is the correct behaviour for filter params (one value per field).
|
|
37
53
|
input.forEach((v, k) => { obj[k] = v; });
|
|
38
54
|
return obj;
|
|
39
55
|
}
|
|
40
56
|
const obj = {};
|
|
41
57
|
for (const [k, v] of Object.entries(input)) {
|
|
42
58
|
if (v !== undefined) {
|
|
43
|
-
|
|
59
|
+
// For array values (e.g. from Hono's c.req.queries()), use the last entry
|
|
60
|
+
// to be consistent with URLSearchParams behaviour above.
|
|
61
|
+
if (Array.isArray(v)) {
|
|
62
|
+
if (v.length > 0)
|
|
63
|
+
obj[k] = v[v.length - 1];
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
obj[k] = v;
|
|
67
|
+
}
|
|
44
68
|
}
|
|
45
69
|
}
|
|
46
70
|
return obj;
|
|
@@ -73,15 +97,19 @@ function parseSelect(val) {
|
|
|
73
97
|
}
|
|
74
98
|
function parseFilters(raw) {
|
|
75
99
|
const filters = {};
|
|
76
|
-
const filterRegexSimple = /^filter\[(\w+)]$/;
|
|
77
|
-
const filterRegexOperator = /^filter\[(\w+)]\[(\w+)]$/;
|
|
100
|
+
const filterRegexSimple = /^filter\[([\w.-]+)]$/;
|
|
101
|
+
const filterRegexOperator = /^filter\[([\w.-]+)]\[(\w+)]$/;
|
|
78
102
|
for (const [key, value] of Object.entries(raw)) {
|
|
79
103
|
const matchOp = filterRegexOperator.exec(key);
|
|
80
104
|
if (matchOp) {
|
|
81
105
|
const field = matchOp[1];
|
|
82
106
|
const op = matchOp[2];
|
|
83
107
|
if (isValidOperator(op)) {
|
|
84
|
-
|
|
108
|
+
const operator = op;
|
|
109
|
+
filters[field] = {
|
|
110
|
+
operator,
|
|
111
|
+
value: normalizeFilterValue(coerceValue(value), operator),
|
|
112
|
+
};
|
|
85
113
|
}
|
|
86
114
|
continue;
|
|
87
115
|
}
|
|
@@ -96,6 +124,13 @@ function parseFilters(raw) {
|
|
|
96
124
|
function isValidOperator(op) {
|
|
97
125
|
return OperatorSchema.safeParse(op).success;
|
|
98
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Coerces a raw URL string into a typed runtime value.
|
|
129
|
+
*
|
|
130
|
+
* This function is intentionally type-agnostic — it converts the *string*
|
|
131
|
+
* representation without knowing which operator will consume the result.
|
|
132
|
+
* Operator-aware shaping is done by {@link normalizeFilterValue} afterwards.
|
|
133
|
+
*/
|
|
99
134
|
function coerceValue(val) {
|
|
100
135
|
if (val === 'true')
|
|
101
136
|
return true;
|
|
@@ -110,6 +145,50 @@ function coerceValue(val) {
|
|
|
110
145
|
return num;
|
|
111
146
|
return val;
|
|
112
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* Normalizes a coerced value to match the shape expected by the operator.
|
|
150
|
+
*
|
|
151
|
+
* This is the core fix for the "array vs string" contract mismatch:
|
|
152
|
+
*
|
|
153
|
+
* - `in` / `notIn` → value MUST be an array. A scalar is auto-wrapped.
|
|
154
|
+
* - `between` → value MUST be a 2-element array.
|
|
155
|
+
* - `isNull` / `isNotNull` → value is discarded (nullary operators).
|
|
156
|
+
* - everything else → value is passed through unchanged.
|
|
157
|
+
*
|
|
158
|
+
* By normalizing *after* coercion and *before* validation, we guarantee
|
|
159
|
+
* that every downstream consumer (inputValidator, filterBuilder, operators)
|
|
160
|
+
* always receives the correct shape — regardless of how the value was
|
|
161
|
+
* serialized over the wire.
|
|
162
|
+
*/
|
|
163
|
+
function normalizeFilterValue(value, operator) {
|
|
164
|
+
// Nullary operators take no value
|
|
165
|
+
if (NULLARY_OPERATORS.has(operator)) {
|
|
166
|
+
return undefined;
|
|
167
|
+
}
|
|
168
|
+
// Array operators: auto-wrap scalar → [scalar], enforce max length
|
|
169
|
+
if (ARRAY_OPERATORS.has(operator)) {
|
|
170
|
+
if (Array.isArray(value)) {
|
|
171
|
+
return value.slice(0, MAX_ARRAY_LENGTH);
|
|
172
|
+
}
|
|
173
|
+
// Single value (e.g. ?filter[status][in]=processing) — wrap to array
|
|
174
|
+
if (value !== null && value !== undefined) {
|
|
175
|
+
return [value];
|
|
176
|
+
}
|
|
177
|
+
return [];
|
|
178
|
+
}
|
|
179
|
+
// Tuple operator: `between` expects exactly [min, max]
|
|
180
|
+
if (TUPLE_OPERATORS.has(operator)) {
|
|
181
|
+
if (Array.isArray(value) && value.length === 2) {
|
|
182
|
+
return value;
|
|
183
|
+
}
|
|
184
|
+
// If not a valid tuple, return as-is — validator will catch it
|
|
185
|
+
return value;
|
|
186
|
+
}
|
|
187
|
+
// Scalar operators: if coercion produced an array (e.g. comma in value),
|
|
188
|
+
// for non-array operators this is likely unintended — return as-is and
|
|
189
|
+
// let the validator surface a clear error.
|
|
190
|
+
return value;
|
|
191
|
+
}
|
|
113
192
|
function parseExportFormat(val) {
|
|
114
193
|
if (val === 'csv' || val === 'json')
|
|
115
194
|
return val;
|
|
@@ -123,4 +202,6 @@ function parseDateRange(raw) {
|
|
|
123
202
|
}
|
|
124
203
|
return undefined;
|
|
125
204
|
}
|
|
205
|
+
// ── Exported constants for cross-layer contract enforcement ─────────────────
|
|
206
|
+
export { ARRAY_OPERATORS, TUPLE_OPERATORS, NULLARY_OPERATORS, MAX_ARRAY_LENGTH };
|
|
126
207
|
//# sourceMappingURL=requestParser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestParser.js","sourceRoot":"","sources":["../../src/utils/requestParser.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE1D
|
|
1
|
+
{"version":3,"file":"requestParser.js","sourceRoot":"","sources":["../../src/utils/requestParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responseFormatter.d.ts","sourceRoot":"","sources":["../../src/utils/responseFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAmC3D,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,GAC5B,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,MAAM,EAAE,WAAW,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAgD3B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,WAAW,EACnB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,YAAY,
|
|
1
|
+
{"version":3,"file":"responseFormatter.d.ts","sourceRoot":"","sources":["../../src/utils/responseFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAmC3D,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,GAC5B,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,MAAM,EAAE,WAAW,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAgD3B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,WAAW,EACnB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,YAAY,CAsDd"}
|
|
@@ -98,6 +98,11 @@ export function formatResponse(data, meta, config, aggregations) {
|
|
|
98
98
|
// 2. Coerce numeric columns from string → number
|
|
99
99
|
// SQL drivers (via Drizzle) return decimal/numeric columns as strings to preserve
|
|
100
100
|
// precision. We convert them here so JSON responses match the generated TS types.
|
|
101
|
+
//
|
|
102
|
+
// Note: This coercion uses JavaScript's Number type (IEEE 754 float64), which
|
|
103
|
+
// loses precision for values with more than ~15 significant digits. For financial
|
|
104
|
+
// or scientific applications requiring exact decimal precision, consider using
|
|
105
|
+
// a Decimal library or keeping the string representation on the frontend.
|
|
101
106
|
const numericFields = config.columns
|
|
102
107
|
.filter((c) => c.type === 'number' && !c.hidden)
|
|
103
108
|
.map((c) => c.name);
|
|
@@ -106,8 +111,11 @@ export function formatResponse(data, meta, config, aggregations) {
|
|
|
106
111
|
const r = { ...row };
|
|
107
112
|
for (const field of numericFields) {
|
|
108
113
|
if (field in r && typeof r[field] === 'string') {
|
|
109
|
-
const
|
|
110
|
-
if (
|
|
114
|
+
const strVal = r[field];
|
|
115
|
+
if (strVal.trim() === '')
|
|
116
|
+
continue;
|
|
117
|
+
const num = Number(strVal);
|
|
118
|
+
if (Number.isFinite(num)) {
|
|
111
119
|
r[field] = num;
|
|
112
120
|
}
|
|
113
121
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responseFormatter.js","sourceRoot":"","sources":["../../src/utils/responseFormatter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"responseFormatter.js","sourceRoot":"","sources":["../../src/utils/responseFormatter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tablecraft/engine",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "The backend query engine for TableCraft",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -16,12 +16,6 @@
|
|
|
16
16
|
"dist",
|
|
17
17
|
"README.md"
|
|
18
18
|
],
|
|
19
|
-
"scripts": {
|
|
20
|
-
"build": "bun run --bun tsc",
|
|
21
|
-
"dev": "bun run --bun tsc --watch",
|
|
22
|
-
"test": "vitest",
|
|
23
|
-
"typecheck": "bun run --bun tsc --noEmit"
|
|
24
|
-
},
|
|
25
19
|
"dependencies": {
|
|
26
20
|
"drizzle-orm": "^0.45.1",
|
|
27
21
|
"zod": "^3.24.1"
|
|
@@ -30,7 +24,7 @@
|
|
|
30
24
|
"@types/bun": "^1.3.8",
|
|
31
25
|
"@types/node": "^25.2.2",
|
|
32
26
|
"typescript": "^5.3.3",
|
|
33
|
-
"vitest": "^1.
|
|
27
|
+
"vitest": "^1.6.1"
|
|
34
28
|
},
|
|
35
29
|
"keywords": [
|
|
36
30
|
"tablecraft",
|
|
@@ -48,5 +42,11 @@
|
|
|
48
42
|
"bugs": {
|
|
49
43
|
"url": "https://github.com/jacksonkasi1/TableCraft/issues"
|
|
50
44
|
},
|
|
51
|
-
"license": "MIT"
|
|
52
|
-
|
|
45
|
+
"license": "MIT",
|
|
46
|
+
"scripts": {
|
|
47
|
+
"build": "bun run --bun tsc",
|
|
48
|
+
"dev": "bun run --bun tsc --watch",
|
|
49
|
+
"test": "vitest",
|
|
50
|
+
"typecheck": "bun run --bun tsc --noEmit"
|
|
51
|
+
}
|
|
52
|
+
}
|