From edf3c2e2eb39e58b8f618b15ca440927beba6cf2 Mon Sep 17 00:00:00 2001 From: Mitchell R Date: Tue, 26 May 2026 01:58:06 +0200 Subject: [PATCH] fix(db): handle PG JSONB as native objects in j() mapper PG returns JSONB columns as native JS objects, not strings. j() helper only handled strings via JSON.parse, returning the fallback for objects. Now passes through objects/arrays directly. Fixes pairing extras (kiosk_key_plaintext), capabilities, scopes, and all other JSONB fields. Co-Authored-By: Claude Opus 4.6 (1M context) --- server/src/shared/db/util.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server/src/shared/db/util.ts b/server/src/shared/db/util.ts index a4323f1..8e05dad 100644 --- a/server/src/shared/db/util.ts +++ b/server/src/shared/db/util.ts @@ -14,6 +14,8 @@ export function B(value: boolean): 0 | 1 { } export function j(value: unknown, fallback: T): T { + if (value == null) return fallback; + if (typeof value === "object" || Array.isArray(value)) return value as T; if (typeof value !== "string" || value.length === 0) return fallback; try { return JSON.parse(value) as T;