From 8e840046e66d231b415d6940bff383c92d624ce1 Mon Sep 17 00:00:00 2001 From: Till JS Date: Mon, 20 Apr 2026 19:16:24 +0200 Subject: [PATCH] fix(invoices): add scopedForModule import after Spaces bulk-migration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bulk-migration script swapped db.table() → scopedForModule() in queries.ts but the import line wasn't added, leaving the file broken. Restores type- check by importing from \$lib/data/scope (same path calendar/contacts/todo use). Invoice reads now flow through the Spaces scope wrapper like other migrated modules — queries only return rows from the active space. Co-Authored-By: Claude Opus 4.7 (1M context) --- apps/mana/apps/web/src/lib/modules/invoices/queries.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/mana/apps/web/src/lib/modules/invoices/queries.ts b/apps/mana/apps/web/src/lib/modules/invoices/queries.ts index 80b077cc9..5d6b45257 100644 --- a/apps/mana/apps/web/src/lib/modules/invoices/queries.ts +++ b/apps/mana/apps/web/src/lib/modules/invoices/queries.ts @@ -4,7 +4,7 @@ import { useLiveQueryWithDefault } from '@mana/local-store/svelte'; import { decryptRecords } from '$lib/data/crypto'; -import { db } from '$lib/data/database'; +import { scopedForModule } from '$lib/data/scope'; import type { LocalInvoice, LocalInvoiceClient, @@ -78,7 +78,7 @@ export function toInvoiceClient(local: LocalInvoiceClient): InvoiceClient { */ export function useAllInvoices() { return useLiveQueryWithDefault(async () => { - const locals = await db.table('invoices').toArray(); + const locals = await scopedForModule('invoices', 'invoices').toArray(); const visible = locals.filter((i) => !i.deletedAt); const decrypted = await decryptRecords('invoices', visible); const today = new Date().toISOString().slice(0, 10); @@ -96,7 +96,10 @@ export function useAllInvoices() { export function useInvoiceClients() { return useLiveQueryWithDefault(async () => { - const locals = await db.table('invoiceClients').toArray(); + const locals = await scopedForModule( + 'invoices', + 'invoiceClients' + ).toArray(); const visible = locals.filter((c) => !c.deletedAt); const decrypted = await decryptRecords('invoiceClients', visible); return decrypted.map(toInvoiceClient).sort((a, b) => a.name.localeCompare(b.name));