@metaobjectsdev/runtime-ts 1.0.9-rc.2 → 1.0.9-rc.4
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/drizzle-fastify/filter-parser.d.ts +1 -6
- package/dist/drizzle-fastify/filter-parser.d.ts.map +1 -1
- package/dist/drizzle-fastify/filter-parser.js +51 -33
- package/dist/drizzle-fastify/filter-parser.js.map +1 -1
- package/dist/drizzle-fastify/filter-value-format.d.ts +13 -0
- package/dist/drizzle-fastify/filter-value-format.d.ts.map +1 -1
- package/dist/drizzle-fastify/filter-value-format.js +23 -0
- package/dist/drizzle-fastify/filter-value-format.js.map +1 -1
- package/dist/drizzle-fastify/index.d.ts.map +1 -1
- package/dist/drizzle-fastify/index.js +8 -6
- package/dist/drizzle-fastify/index.js.map +1 -1
- package/dist/drizzle-fastify/list-params.d.ts +27 -0
- package/dist/drizzle-fastify/list-params.d.ts.map +1 -0
- package/dist/drizzle-fastify/list-params.js +43 -0
- package/dist/drizzle-fastify/list-params.js.map +1 -0
- package/dist/drizzle-fastify/mount-read-only.d.ts.map +1 -1
- package/dist/drizzle-fastify/mount-read-only.js +5 -4
- package/dist/drizzle-fastify/mount-read-only.js.map +1 -1
- package/dist/fastify/index.d.ts.map +1 -1
- package/dist/fastify/index.js +23 -8
- package/dist/fastify/index.js.map +1 -1
- package/dist/hono/index.d.ts.map +1 -1
- package/dist/hono/index.js +10 -8
- package/dist/hono/index.js.map +1 -1
- package/dist/hono/mount-read-only.d.ts.map +1 -1
- package/dist/hono/mount-read-only.js +4 -3
- package/dist/hono/mount-read-only.js.map +1 -1
- package/dist/route-errors.d.ts +13 -0
- package/dist/route-errors.d.ts.map +1 -1
- package/dist/route-errors.js +18 -0
- package/dist/route-errors.js.map +1 -1
- package/package.json +3 -3
- package/src/drizzle-fastify/filter-parser.ts +66 -30
- package/src/drizzle-fastify/filter-value-format.ts +25 -0
- package/src/drizzle-fastify/index.ts +8 -6
- package/src/drizzle-fastify/list-params.ts +50 -0
- package/src/drizzle-fastify/mount-read-only.ts +5 -4
- package/src/fastify/index.ts +19 -6
- package/src/hono/index.ts +8 -5
- package/src/hono/mount-read-only.ts +4 -9
- package/src/route-errors.ts +22 -0
package/dist/fastify/index.js
CHANGED
|
@@ -16,9 +16,11 @@
|
|
|
16
16
|
// reference is needed for the public API, but at runtime there's no
|
|
17
17
|
// `require("fastify")`.
|
|
18
18
|
import { withConstraintMapping } from "../constraint-errors.js";
|
|
19
|
+
import { validationErrorBody } from "../route-errors.js";
|
|
19
20
|
import qs from "qs";
|
|
20
21
|
import { sortOrderSpec } from "../drizzle-fastify/filter-allowlist.js";
|
|
21
22
|
import { isTruthyFlag, contractErrorCode } from "../drizzle-fastify/util.js";
|
|
23
|
+
import { parsePageBound, FilterParseError, SORT_EXPECTED } from "../drizzle-fastify/list-params.js";
|
|
22
24
|
import { withContractErrorHandler } from "../drizzle-fastify/route-error-handler.js";
|
|
23
25
|
const ALL_VERBS = ["list", "get", "create", "update", "delete"];
|
|
24
26
|
/**
|
|
@@ -63,11 +65,19 @@ export function mountListRoute(opts) {
|
|
|
63
65
|
const parsed = qs.parse(rawSearch);
|
|
64
66
|
const withCount = isTruthyFlag(parsed["withCount"]);
|
|
65
67
|
const readOpts = {};
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
try {
|
|
69
|
+
const limit = parsePageBound(parsed, "limit");
|
|
70
|
+
const offset = parsePageBound(parsed, "offset");
|
|
71
|
+
if (limit !== undefined)
|
|
72
|
+
readOpts.limit = limit;
|
|
73
|
+
if (offset !== undefined)
|
|
74
|
+
readOpts.offset = offset;
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
if (err instanceof FilterParseError)
|
|
78
|
+
return reply.code(400).send({ error: err.code, ...(err.details ?? {}) });
|
|
79
|
+
throw err;
|
|
80
|
+
}
|
|
71
81
|
// Sort allowlist gate (cross-port REST contract). Only enforced when a
|
|
72
82
|
// sortAllowlist is configured; absent → ?sort is ignored (back-compat).
|
|
73
83
|
if (opts.sortAllowlist && typeof parsed["sort"] === "string") {
|
|
@@ -75,7 +85,12 @@ export function mountListRoute(opts) {
|
|
|
75
85
|
if (sortParse.error) {
|
|
76
86
|
// `field` is REQUIRED on the invalid_sort envelope cross-port (F20 ruling) —
|
|
77
87
|
// it names the offending sort field instead of making the caller guess.
|
|
78
|
-
return reply.code(400).send({
|
|
88
|
+
return reply.code(400).send({
|
|
89
|
+
error: contractErrorCode(sortParse.error),
|
|
90
|
+
field: sortParse.field,
|
|
91
|
+
expected: SORT_EXPECTED,
|
|
92
|
+
allowed: Object.keys(opts.sortAllowlist),
|
|
93
|
+
});
|
|
79
94
|
}
|
|
80
95
|
if (sortParse.orderBy)
|
|
81
96
|
readOpts.orderBy = sortParse.orderBy;
|
|
@@ -122,7 +137,7 @@ export function mountCreateRoute(opts) {
|
|
|
122
137
|
opts.fastify.post(opts.path, routeOpts(opts), async (req, reply) => {
|
|
123
138
|
const parsed = opts.insertSchema.safeParse(req.body);
|
|
124
139
|
if (!parsed.success) {
|
|
125
|
-
return reply.code(400).send(
|
|
140
|
+
return reply.code(400).send(validationErrorBody(parsed.error.issues));
|
|
126
141
|
}
|
|
127
142
|
// Zod returns `unknown` for parsed.data; the schema is authored from the
|
|
128
143
|
// same metadata that drives ObjectManager, so the shape is guaranteed
|
|
@@ -140,7 +155,7 @@ export function mountUpdateRoute(opts) {
|
|
|
140
155
|
const { id } = req.params;
|
|
141
156
|
const parsed = opts.updateSchema.safeParse(req.body);
|
|
142
157
|
if (!parsed.success) {
|
|
143
|
-
return reply.code(400).send(
|
|
158
|
+
return reply.code(400).send(validationErrorBody(parsed.error.issues));
|
|
144
159
|
}
|
|
145
160
|
// Use ifMissing: "ignore" so the helper itself owns the 404 mapping
|
|
146
161
|
// (consistent with mountDeleteRoute). ObjectManager's default behavior
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fastify/index.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,wFAAwF;AACxF,sFAAsF;AACtF,gDAAgD;AAChD,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,yEAAyE;AACzE,yEAAyE;AACzE,4DAA4D;AAC5D,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,EAAE;AACF,0EAA0E;AAC1E,oEAAoE;AACpE,wBAAwB;AAGxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,MAAM,IAAI,CAAC;AAKpB,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAsDrF,MAAM,SAAS,GAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAErF;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,IAAuB;IACrD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAW,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;IAC1D,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC;AASD;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,IAAuB;IACxC,OAAO,wBAAwB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAuB;IACpD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAChE,uEAAuE;QACvE,2EAA2E;QAC3E,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC;YAC1C,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjD,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAA4B,CAAC;QAC9D,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAA4E,EAAE,CAAC;QAC7F,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fastify/index.ts"],"names":[],"mappings":"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"}
|
package/dist/hono/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hono/index.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hono/index.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAWtC,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACd,MAAM,wCAAwC,CAAC;AAChD,YAAY,EACV,eAAe,EACf,aAAa,GACd,MAAM,wCAAwC,CAAC;AAShD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAQzE,KAAK,UAAU,GAAG,GAAG,CAAC;AAEtB,KAAK,QAAQ,GAAG,GAAG,CAAC;AAEpB,KAAK,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEnC,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,GAAG,EAAE,OAAO,CAAC;IACb,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,EAAE,EAAE,UAAU,CAAC;IACf,kFAAkF;IAClF,KAAK,EAAE,QAAQ,CAAC;IAChB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,yEAAyE;IACzE,YAAY,EAAE,UAAU,CAAC;IACzB,yEAAyE;IACzE,YAAY,EAAE,UAAU,CAAC;IACzB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC7B;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,aAAa,CAAC,EAAI,aAAa,CAAC;IAChC,oKAAoK;IACpK,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CACjC;AAID,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAO7D;AAED,KAAK,WAAW,GAAG,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;AAWrD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKzE;AA6CD,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CA2DtD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAYrD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAwBxD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAmDxD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAuBxD;AAgBD,OAAO,EAAE,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAM1F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGzD,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAKnE"}
|
package/dist/hono/index.js
CHANGED
|
@@ -21,10 +21,11 @@
|
|
|
21
21
|
// so the two flavors emit byte-identical wire responses for the cross-port
|
|
22
22
|
// API-contract corpus.
|
|
23
23
|
import { classifyConstraintError, RedactedDatabaseError, logAndRedact } from "../constraint-errors.js";
|
|
24
|
+
import { validationErrorBody } from "../route-errors.js";
|
|
24
25
|
import { eq, count, and } from "drizzle-orm";
|
|
25
26
|
import qs from "qs";
|
|
26
27
|
import { contractErrorCode } from "../drizzle-fastify/util.js";
|
|
27
|
-
import { parseFilterParams, FilterParseError, } from "../drizzle-fastify/filter-parser.js";
|
|
28
|
+
import { parseFilterParams, parsePageBound, FilterParseError, } from "../drizzle-fastify/filter-parser.js";
|
|
28
29
|
import { isTruthyFlag, coerceIdForColumn, firstRow } from "../drizzle-fastify/util.js";
|
|
29
30
|
import { timestampWire } from "../timestamp-wire.js";
|
|
30
31
|
// Every handler below is wrapped in guardRoute (an unexpected error answers
|
|
@@ -134,11 +135,12 @@ export function mountListRoute(opts) {
|
|
|
134
135
|
}
|
|
135
136
|
else {
|
|
136
137
|
// No allowlists configured. Only limit/offset.
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
138
|
+
const limit = parsePageBound(qsParsed, "limit");
|
|
139
|
+
const offset = parsePageBound(qsParsed, "offset");
|
|
140
|
+
if (limit !== undefined)
|
|
141
|
+
q = q.limit(limit);
|
|
142
|
+
if (offset !== undefined)
|
|
143
|
+
q = q.offset(offset);
|
|
142
144
|
}
|
|
143
145
|
// Await the query directly rather than calling `.all()`: the drizzle-orm
|
|
144
146
|
// node-postgres builder is thenable but has no `.all()` (a libsql /
|
|
@@ -190,7 +192,7 @@ export function mountCreateRoute(opts) {
|
|
|
190
192
|
return read.response;
|
|
191
193
|
const parsed = opts.insertSchema.safeParse(read.body);
|
|
192
194
|
if (!parsed.success) {
|
|
193
|
-
return c.json(
|
|
195
|
+
return c.json(validationErrorBody(parsed.error.issues), 400);
|
|
194
196
|
}
|
|
195
197
|
// Same redaction contract as the Fastify mount: a constraint the DB enforces must not
|
|
196
198
|
// come back as a 500 carrying the SQL and its bound parameters. Both mounts are
|
|
@@ -221,7 +223,7 @@ export function mountUpdateRoute(opts) {
|
|
|
221
223
|
return read.response;
|
|
222
224
|
const parsed = opts.updateSchema.safeParse(read.body);
|
|
223
225
|
if (!parsed.success) {
|
|
224
|
-
return c.json(
|
|
226
|
+
return c.json(validationErrorBody(parsed.error.issues), 400);
|
|
225
227
|
}
|
|
226
228
|
// An empty patch is a no-op update, answered as a read — the Fastify mount's
|
|
227
229
|
// rule; its block in drizzle-fastify/index.ts carries the full rationale.
|
package/dist/hono/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hono/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hono/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mount-read-only.d.ts","sourceRoot":"","sources":["../../src/hono/mount-read-only.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAIjC,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACd,MAAM,wCAAwC,CAAC;AAOhD,KAAK,OAAO,GAAG,GAAG,CAAC;AAEnB,KAAK,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEnC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;IACjB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,QAAQ,CAAC;IACxC,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAoED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"mount-read-only.d.ts","sourceRoot":"","sources":["../../src/hono/mount-read-only.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAIjC,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACd,MAAM,wCAAwC,CAAC;AAOhD,KAAK,OAAO,GAAG,GAAG,CAAC;AAEnB,KAAK,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEnC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;IACjB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,QAAQ,CAAC;IACxC,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAoED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAsHxE"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// equivalent so the cross-port API contract holds for projection endpoints.
|
|
4
4
|
import { sql, eq, and, count } from "drizzle-orm";
|
|
5
5
|
import qs from "qs";
|
|
6
|
-
import { parseFilterParams, FilterParseError } from "../drizzle-fastify/filter-parser.js";
|
|
6
|
+
import { parseFilterParams, parsePageBound, RAW_VIEW_MAX_LIMIT, FilterParseError } from "../drizzle-fastify/filter-parser.js";
|
|
7
7
|
import { isTruthyFlag, coerceIdForColumn, rawIdLiteral, contractErrorCode, viewBaseConfig } from "../drizzle-fastify/util.js";
|
|
8
8
|
import { timestampWire } from "../timestamp-wire.js";
|
|
9
9
|
// An unexpected error on a mounted route answers `500 { error: "internal" }`.
|
|
@@ -84,8 +84,9 @@ export function mountReadOnlyCrudRoutes(opts) {
|
|
|
84
84
|
const qIdx = url.indexOf("?");
|
|
85
85
|
const queryString = qIdx >= 0 ? url.slice(qIdx + 1) : "";
|
|
86
86
|
const parsed = qs.parse(queryString);
|
|
87
|
-
|
|
88
|
-
const
|
|
87
|
+
// A bound that is not an integer in range is a 400, not silently clamped.
|
|
88
|
+
const limitVal = parsePageBound(parsed, "limit", RAW_VIEW_MAX_LIMIT) ?? RAW_VIEW_MAX_LIMIT;
|
|
89
|
+
const offsetVal = parsePageBound(parsed, "offset") ?? 0;
|
|
89
90
|
const withCount = isTruthyFlag(parsed["withCount"]);
|
|
90
91
|
// biome-ignore lint/suspicious/noExplicitAny: dynamic raw result
|
|
91
92
|
const rows = (await rawRows(db, dialect, sql.raw(`SELECT * FROM "${viewName}" LIMIT ${limitVal} OFFSET ${offsetVal}`)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mount-read-only.js","sourceRoot":"","sources":["../../src/hono/mount-read-only.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,8EAA8E;AAC9E,4EAA4E;AAG5E,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"mount-read-only.js","sourceRoot":"","sources":["../../src/hono/mount-read-only.ts"],"names":[],"mappings":"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"}
|
package/dist/route-errors.d.ts
CHANGED
|
@@ -32,6 +32,19 @@ export interface ErrorEnvelope {
|
|
|
32
32
|
readonly error: string;
|
|
33
33
|
}
|
|
34
34
|
export declare const INTERNAL_ERROR_BODY: ErrorEnvelope;
|
|
35
|
+
/** Wire code for a request body that failed its schema. */
|
|
36
|
+
export declare const ERROR_CODE_VALIDATION = "validation";
|
|
37
|
+
/**
|
|
38
|
+
* The 400 body for a body that failed its Zod schema: every issue as Zod reported it,
|
|
39
|
+
* minus `pattern`. Zod 4 attaches the regex SOURCE to a failed `.regex()` check, and for a
|
|
40
|
+
* generated `field.date` / `field.timestamp` check that is a ~300-character calendar regex
|
|
41
|
+
* (an authored `validator.regex` pattern is likewise the server's own business). The
|
|
42
|
+
* issue's `message` already names the expected format. Shared by every mount.
|
|
43
|
+
*/
|
|
44
|
+
export declare function validationErrorBody<T extends object>(issues: readonly T[]): {
|
|
45
|
+
readonly error: string;
|
|
46
|
+
readonly issues: Omit<T, "pattern">[];
|
|
47
|
+
};
|
|
35
48
|
export declare const INVALID_JSON_BODY: ErrorEnvelope;
|
|
36
49
|
/** True for Fastify's "the body is not valid JSON" errors. */
|
|
37
50
|
export declare function isMalformedJsonBodyError(err: unknown): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-errors.d.ts","sourceRoot":"","sources":["../src/route-errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,qFAAqF;AACrF,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,+DAA+D;AAC/D,eAAO,MAAM,uBAAuB,iBAAiB,CAAC;AAEtD,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,mBAAmB,EAAE,aAA6D,CAAC;
|
|
1
|
+
{"version":3,"file":"route-errors.d.ts","sourceRoot":"","sources":["../src/route-errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,qFAAqF;AACrF,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,+DAA+D;AAC/D,eAAO,MAAM,uBAAuB,iBAAiB,CAAC;AAEtD,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,mBAAmB,EAAE,aAA6D,CAAC;AAEhG,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAElD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAClD,MAAM,EAAE,SAAS,CAAC,EAAE,GACnB;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAA;CAAE,CAQnE;AACD,eAAO,MAAM,iBAAiB,EAAE,aAAiE,CAAC;AAWlG,8DAA8D;AAC9D,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAG9D;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAI7D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAGrD"}
|
package/dist/route-errors.js
CHANGED
|
@@ -30,6 +30,24 @@ export const ERROR_CODE_INVALID_JSON = "invalid_json";
|
|
|
30
30
|
export const HTTP_STATUS_BAD_REQUEST = 400;
|
|
31
31
|
export const HTTP_STATUS_INTERNAL = 500;
|
|
32
32
|
export const INTERNAL_ERROR_BODY = Object.freeze({ error: ERROR_CODE_INTERNAL });
|
|
33
|
+
/** Wire code for a request body that failed its schema. */
|
|
34
|
+
export const ERROR_CODE_VALIDATION = "validation";
|
|
35
|
+
/**
|
|
36
|
+
* The 400 body for a body that failed its Zod schema: every issue as Zod reported it,
|
|
37
|
+
* minus `pattern`. Zod 4 attaches the regex SOURCE to a failed `.regex()` check, and for a
|
|
38
|
+
* generated `field.date` / `field.timestamp` check that is a ~300-character calendar regex
|
|
39
|
+
* (an authored `validator.regex` pattern is likewise the server's own business). The
|
|
40
|
+
* issue's `message` already names the expected format. Shared by every mount.
|
|
41
|
+
*/
|
|
42
|
+
export function validationErrorBody(issues) {
|
|
43
|
+
return {
|
|
44
|
+
error: ERROR_CODE_VALIDATION,
|
|
45
|
+
issues: issues.map((issue) => {
|
|
46
|
+
const { pattern: _pattern, ...rest } = issue;
|
|
47
|
+
return rest;
|
|
48
|
+
}),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
33
51
|
export const INVALID_JSON_BODY = Object.freeze({ error: ERROR_CODE_INVALID_JSON });
|
|
34
52
|
/**
|
|
35
53
|
* Fastify's error codes for a body its JSON parser refused: syntactically invalid, and
|
package/dist/route-errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-errors.js","sourceRoot":"","sources":["../src/route-errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE7E,qFAAqF;AACrF,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAC9C,+DAA+D;AAC/D,MAAM,CAAC,MAAM,uBAAuB,GAAG,cAAc,CAAC;AAEtD,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAMxC,MAAM,CAAC,MAAM,mBAAmB,GAAkB,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"route-errors.js","sourceRoot":"","sources":["../src/route-errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE7E,qFAAqF;AACrF,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;AAC9C,+DAA+D;AAC/D,MAAM,CAAC,MAAM,uBAAuB,GAAG,cAAc,CAAC;AAEtD,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAMxC,MAAM,CAAC,MAAM,mBAAmB,GAAkB,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAEhG,2DAA2D;AAC3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAoB;IAEpB,OAAO;QACL,KAAK,EAAE,qBAAqB;QAC5B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAkC,CAAC;YAC1E,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AACD,MAAM,CAAC,MAAM,iBAAiB,GAAkB,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;AAElG;;;GAGG;AACH,MAAM,4BAA4B,GAAwB,IAAI,GAAG,CAAC;IAChE,+BAA+B;IAC/B,6BAA6B;CAC9B,CAAC,CAAC;AAEH,8DAA8D;AAC9D,MAAM,UAAU,wBAAwB,CAAC,GAAY;IACnD,MAAM,IAAI,GAAI,GAAiC,EAAE,IAAI,CAAC;IACtD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,4BAA4B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAY;IAClD,MAAM,CAAC,GAAG,GAAwD,CAAC;IACnE,MAAM,MAAM,GAAG,OAAO,CAAC,EAAE,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAC5E,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC;AACrE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC7C,IAAI,GAAG,YAAY,qBAAqB;QAAE,OAAO;IACjD,YAAY,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metaobjectsdev/runtime-ts",
|
|
3
|
-
"version": "1.0.9-rc.
|
|
3
|
+
"version": "1.0.9-rc.4",
|
|
4
4
|
"description": "Node-side runtime helpers for MetaObjects: Fastify route builders, Drizzle filter/sort integration, Kysely drivers.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -64,8 +64,8 @@
|
|
|
64
64
|
"access": "public"
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
|
-
"@metaobjectsdev/metadata": "1.0.9-rc.
|
|
68
|
-
"@metaobjectsdev/render": "1.0.9-rc.
|
|
67
|
+
"@metaobjectsdev/metadata": "1.0.9-rc.4",
|
|
68
|
+
"@metaobjectsdev/render": "1.0.9-rc.4",
|
|
69
69
|
"qs": "^6.13.0"
|
|
70
70
|
},
|
|
71
71
|
"peerDependencies": {
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
|
+
is, Column, SQL as DrizzleSQL,
|
|
2
3
|
eq, ne, gt, gte, lt, lte, inArray, like, ilike, isNull, not, and, or, asc, desc, sql,
|
|
3
4
|
type SQL, type SQLWrapper,
|
|
4
5
|
} from "drizzle-orm";
|
|
5
6
|
import type { FilterAllowlist, FilterOp, FilterFieldRule, SortAllowlist } from "./filter-allowlist.js";
|
|
6
7
|
import { sortOrderSpec } from "./filter-allowlist.js";
|
|
7
|
-
import {
|
|
8
|
+
import { FilterParseError, parsePageBound, SORT_EXPECTED } from "./list-params.js";
|
|
9
|
+
|
|
10
|
+
// Re-exported so existing importers keep one door; the definitions live in the
|
|
11
|
+
// drizzle-free list-params module, which the ObjectManager Fastify mount also uses.
|
|
12
|
+
export { FilterParseError, parsePageBound, PAGINATION_EXPECTED, RAW_VIEW_MAX_LIMIT, SORT_EXPECTED } from "./list-params.js";
|
|
13
|
+
import { ANY_TEMPORAL_EXPECTED, FORMAT_EXPECTED, matchesAnyTemporal, matchesFormat, utcIsoIfZoned } from "./filter-value-format.js";
|
|
14
|
+
import { FIELD_SUBTYPE_TIMESTAMP } from "@metaobjectsdev/metadata";
|
|
8
15
|
|
|
9
16
|
// biome-ignore lint/suspicious/noExplicitAny: dynamic dispatch over user's Drizzle table
|
|
10
17
|
type AnyTable = any;
|
|
@@ -28,12 +35,6 @@ export interface ParseFilterResult {
|
|
|
28
35
|
searchWhere?: SQL;
|
|
29
36
|
}
|
|
30
37
|
|
|
31
|
-
export class FilterParseError extends Error {
|
|
32
|
-
constructor(public readonly code: string, message: string, public readonly details?: Record<string, unknown>) {
|
|
33
|
-
super(message);
|
|
34
|
-
this.name = "FilterParseError";
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
38
|
|
|
38
39
|
const DEFAULT_MAX_NESTING = 5;
|
|
39
40
|
const DEFAULT_MAX_IN_LIST = 100;
|
|
@@ -50,37 +51,58 @@ const RESERVED_LIST_PARAMS: ReadonlySet<string> = new Set([
|
|
|
50
51
|
* meant `?filter[priority][eq]=low` — and silently ignoring it returns EVERY row, which
|
|
51
52
|
* reads as "the filter matched everything". Refuse it, naming the syntax that works.
|
|
52
53
|
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
54
|
+
* A bare name that is a field of the entity but NOT on the filter allowlist is refused
|
|
55
|
+
* too — the caller plainly meant that field — saying it is not filterable and listing
|
|
56
|
+
* the fields that are. Any other unknown parameter — a cache-buster, a tracking tag, a
|
|
57
|
+
* param some proxy appends — is left alone, as before.
|
|
55
58
|
* TS-only (the other ports ignore unknown parameters): see docs/features/api-contract.md,
|
|
56
59
|
* "TS-only filter extensions".
|
|
57
60
|
*/
|
|
58
|
-
function rejectBareFieldParams(query: Record<string, unknown>, allowlist: FilterAllowlist): void {
|
|
61
|
+
function rejectBareFieldParams(query: Record<string, unknown>, allowlist: FilterAllowlist, table: AnyTable): void {
|
|
59
62
|
for (const [key, value] of Object.entries(query)) {
|
|
60
|
-
if (RESERVED_LIST_PARAMS.has(key)
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
if (RESERVED_LIST_PARAMS.has(key)) continue;
|
|
64
|
+
if (Object.hasOwn(allowlist, key)) {
|
|
65
|
+
const shown = typeof value === "string" ? value : "<value>";
|
|
66
|
+
throw new FilterParseError(
|
|
67
|
+
"filter.bare_field",
|
|
68
|
+
`"${key}" is a filterable field, but a bare ?${key}= parameter is not a filter. Use filter[${key}][eq]=${shown}.`,
|
|
69
|
+
{ field: key, expected: `filter[${key}][eq]=${shown}` },
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
if (isEntityColumn(table, key)) {
|
|
73
|
+
const allowed = Object.keys(allowlist);
|
|
74
|
+
throw new FilterParseError(
|
|
75
|
+
"filter.bare_field",
|
|
76
|
+
`"${key}" is a field of this entity, but it is not @filterable, so it cannot be filtered on` +
|
|
77
|
+
(allowed.length > 0 ? ` (filterable: ${allowed.join(", ")}).` : " (no field is filterable)."),
|
|
78
|
+
{ field: key, filterable: false, expected: `a filterable field — "${key}" is not @filterable`, allowed },
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/** Is `key` one of the table's (or view's) own columns? A Drizzle table exposes each
|
|
85
|
+
* column as a property keyed by its field name; anything else found there (a function,
|
|
86
|
+
* a symbol-backed config, a proxy that throws on an unknown key) is not a field. */
|
|
87
|
+
function isEntityColumn(table: AnyTable, key: string): boolean {
|
|
88
|
+
if (table === null || typeof table !== "object") return false;
|
|
89
|
+
try {
|
|
90
|
+
const v: unknown = table[key];
|
|
91
|
+
return is(v, Column) || is(v, DrizzleSQL.Aliased);
|
|
92
|
+
} catch {
|
|
93
|
+
return false;
|
|
67
94
|
}
|
|
68
95
|
}
|
|
69
96
|
|
|
97
|
+
|
|
70
98
|
export function parseFilterParams(opts: ParseFilterOpts): ParseFilterResult {
|
|
71
|
-
rejectBareFieldParams(opts.query, opts.allowlist);
|
|
99
|
+
rejectBareFieldParams(opts.query, opts.allowlist, opts.table);
|
|
72
100
|
const result: ParseFilterResult = {};
|
|
73
101
|
|
|
74
|
-
const limit = opts.query
|
|
75
|
-
if (limit !== undefined)
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
const offset = opts.query.offset;
|
|
80
|
-
if (offset !== undefined) {
|
|
81
|
-
const n = Number(offset);
|
|
82
|
-
if (Number.isFinite(n)) result.offset = n;
|
|
83
|
-
}
|
|
102
|
+
const limit = parsePageBound(opts.query, "limit");
|
|
103
|
+
if (limit !== undefined) result.limit = limit;
|
|
104
|
+
const offset = parsePageBound(opts.query, "offset");
|
|
105
|
+
if (offset !== undefined) result.offset = offset;
|
|
84
106
|
|
|
85
107
|
if (opts.query.filter && typeof opts.query.filter === "object") {
|
|
86
108
|
const where = parseNode(
|
|
@@ -288,6 +310,12 @@ function coerce(value: unknown, rule: FilterFieldRule, col: unknown, field: stri
|
|
|
288
310
|
if (value === null || value === undefined) return null;
|
|
289
311
|
const s = typeof value === "string" ? value : String(value);
|
|
290
312
|
assertWellFormed(s, rule, col, field, op);
|
|
313
|
+
// A zoned timestamp bound is compared in the same UTC spelling the generated schemas
|
|
314
|
+
// store (see utcIsoIfZoned): on SQLite/D1 the column is TEXT and compares as text. A
|
|
315
|
+
// Date-bound (`dateValues`) column parses the instant itself and is left alone.
|
|
316
|
+
if (rule.format === FIELD_SUBTYPE_TIMESTAMP && rule.dateValues !== true) {
|
|
317
|
+
return coerceAs(utcIsoIfZoned(s), rule.subType, field, op, rule.dateValues);
|
|
318
|
+
}
|
|
291
319
|
return coerceAs(s, rule.subType, field, op, rule.dateValues);
|
|
292
320
|
}
|
|
293
321
|
|
|
@@ -351,7 +379,11 @@ function parseSort(spec: string, table: AnyTable, sortAllowlist: SortAllowlist):
|
|
|
351
379
|
const colonIdx = spec.indexOf(":");
|
|
352
380
|
const field = colonIdx === -1 ? spec : spec.slice(0, colonIdx);
|
|
353
381
|
if (!sortAllowlist[field]) {
|
|
354
|
-
throw new FilterParseError(
|
|
382
|
+
throw new FilterParseError(
|
|
383
|
+
"sort.unknown_field",
|
|
384
|
+
`Unknown sort field "${field}". The syntax is ${SORT_EXPECTED}.`,
|
|
385
|
+
{ field, expected: SORT_EXPECTED, allowed: Object.keys(sortAllowlist) },
|
|
386
|
+
);
|
|
355
387
|
}
|
|
356
388
|
// `?sort=field` with no `:order` takes the field's DECLARED default order.
|
|
357
389
|
//
|
|
@@ -373,7 +405,11 @@ function parseSort(spec: string, table: AnyTable, sortAllowlist: SortAllowlist):
|
|
|
373
405
|
);
|
|
374
406
|
const order = orderRaw.toLowerCase();
|
|
375
407
|
if (order !== "asc" && order !== "desc") {
|
|
376
|
-
throw new FilterParseError(
|
|
408
|
+
throw new FilterParseError(
|
|
409
|
+
"sort.invalid_order",
|
|
410
|
+
`Sort order must be asc|desc, got "${orderRaw}". The syntax is ${SORT_EXPECTED}.`,
|
|
411
|
+
{ field, expected: SORT_EXPECTED, allowed: Object.keys(sortAllowlist) },
|
|
412
|
+
);
|
|
377
413
|
}
|
|
378
414
|
const col = table[field];
|
|
379
415
|
return [order === "asc" ? asc(col as any) : desc(col as any)];
|
|
@@ -62,6 +62,31 @@ export function matchesFormat(format: FilterValueFormat, s: string): boolean {
|
|
|
62
62
|
return CHECKS[format](s);
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
+
/** A timestamp with a time part AND an explicit zone (`Z` or `±HH[[:]MM]`). */
|
|
66
|
+
const ZONED_TIMESTAMP_RE =
|
|
67
|
+
/^(\d{4}-\d{2}-\d{2})[Tt ](\d{2}:\d{2})(?::(\d{2})(?:\.(\d+))?)?(?:([Zz])|([+-]\d{2}):?(\d{2})?)$/;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* A zoned timestamp bound rewritten to its instant's `toISOString()` spelling; any other
|
|
71
|
+
* value (a naive timestamp, a date-only bound) is returned unchanged.
|
|
72
|
+
*
|
|
73
|
+
* The generated insert/update schemas store every zoned `field.timestamp` value in that
|
|
74
|
+
* same fixed-width UTC form, because SQLite and D1 compare the TEXT column as text: a row
|
|
75
|
+
* sent as `2026-09-21T01:00:00+05:00` (20:00Z) and a bound of `2026-09-20T21:00:00+00:00`
|
|
76
|
+
* only order correctly once both are spelled in UTC. A naive value names no zone, so it is
|
|
77
|
+
* never guessed at. Postgres compares timestamptz instants and reads either spelling the
|
|
78
|
+
* same way. The rebuilt string is the ECMAScript date-time format `Date.parse` must accept,
|
|
79
|
+
* so this does not rely on an engine reading `+05` or a six-digit fraction.
|
|
80
|
+
*/
|
|
81
|
+
export function utcIsoIfZoned(s: string): string {
|
|
82
|
+
const m = ZONED_TIMESTAMP_RE.exec(s);
|
|
83
|
+
if (m === null) return s;
|
|
84
|
+
const [, date, hm, sec, frac, z, oh, om] = m;
|
|
85
|
+
const ms = (frac ?? "").slice(0, 3).padEnd(3, "0");
|
|
86
|
+
const t = Date.parse(`${date}T${hm}:${sec ?? "00"}.${ms}${z === undefined ? `${oh}:${om ?? "00"}` : "Z"}`);
|
|
87
|
+
return Number.isNaN(t) ? s : new Date(t).toISOString();
|
|
88
|
+
}
|
|
89
|
+
|
|
65
90
|
/** For a `datetime` rule with no `format` (generated before it existed): any of the three. */
|
|
66
91
|
export function matchesAnyTemporal(s: string): boolean {
|
|
67
92
|
return isCalendarDate(s) || CHECKS[FIELD_SUBTYPE_TIME](s) || isTimestamp(s);
|
|
@@ -26,10 +26,11 @@ import { eq, count, and, asc } from "drizzle-orm";
|
|
|
26
26
|
import qs from "qs";
|
|
27
27
|
import type { FilterAllowlist, SortAllowlist } from "./filter-allowlist.js";
|
|
28
28
|
export type { FilterAllowlist, SortAllowlist } from "./filter-allowlist.js";
|
|
29
|
-
import { parseFilterParams, FilterParseError } from "./filter-parser.js";
|
|
29
|
+
import { parseFilterParams, parsePageBound, FilterParseError } from "./filter-parser.js";
|
|
30
30
|
import { isTruthyFlag, contractErrorCode, coerceIdForColumn, firstRow } from "./util.js";
|
|
31
31
|
import { timestampWire } from "../timestamp-wire.js";
|
|
32
32
|
import { withContractErrorHandler } from "./route-error-handler.js";
|
|
33
|
+
import { validationErrorBody } from "../route-errors.js";
|
|
33
34
|
export { isTruthyFlag, contractErrorCode, parseId, coerceIdForColumn } from "./util.js";
|
|
34
35
|
export { timestampWire, canonicalTimestamp } from "../timestamp-wire.js";
|
|
35
36
|
|
|
@@ -215,11 +216,12 @@ export function mountListRoute(opts: VerbOptions): void {
|
|
|
215
216
|
} else {
|
|
216
217
|
// Legacy path — no allowlists configured. Only limit/offset (+ the TPH
|
|
217
218
|
// discriminator predicate when subtype-scoped).
|
|
218
|
-
const
|
|
219
|
+
const limit = parsePageBound(qsParsed, "limit");
|
|
220
|
+
const offset = parsePageBound(qsParsed, "offset");
|
|
219
221
|
if (discCond) { q = q.where(discCond); where = discCond; }
|
|
220
222
|
if (src.id !== undefined) q = q.orderBy(asc(src.id));
|
|
221
|
-
if (limit !== undefined) q = q.limit(
|
|
222
|
-
if (offset !== undefined) q = q.offset(
|
|
223
|
+
if (limit !== undefined) q = q.limit(limit);
|
|
224
|
+
if (offset !== undefined) q = q.offset(offset);
|
|
223
225
|
}
|
|
224
226
|
|
|
225
227
|
// Await the query directly rather than calling `.all()`: the
|
|
@@ -269,7 +271,7 @@ export function mountCreateRoute(opts: VerbOptions): void {
|
|
|
269
271
|
opts.fastify.post(opts.path, routeOpts(opts), async (req, reply) => {
|
|
270
272
|
const parsed = opts.insertSchema.safeParse(req.body);
|
|
271
273
|
if (!parsed.success) {
|
|
272
|
-
return reply.code(400).send(
|
|
274
|
+
return reply.code(400).send(validationErrorBody(parsed.error.issues));
|
|
273
275
|
}
|
|
274
276
|
// FR-017 TPH: the body omits the discriminator (the URL names the subtype);
|
|
275
277
|
// inject it server-side so the row lands tagged with the right subtype.
|
|
@@ -302,7 +304,7 @@ export function mountUpdateRoute(opts: VerbOptions): void {
|
|
|
302
304
|
const { id } = req.params as { id: string };
|
|
303
305
|
const parsed = opts.updateSchema.safeParse(req.body);
|
|
304
306
|
if (!parsed.success) {
|
|
305
|
-
return reply.code(400).send(
|
|
307
|
+
return reply.code(400).send(validationErrorBody(parsed.error.issues));
|
|
306
308
|
}
|
|
307
309
|
const discCond = discriminatorCond(opts);
|
|
308
310
|
// FR-017 TPH: a row's subtype is immutable — strip the discriminator from
|