diff --git a/apps/mana/apps/web/src/lib/modules/calendar/components/EventForm.svelte b/apps/mana/apps/web/src/lib/modules/calendar/components/EventForm.svelte index a71922964..8559d31c5 100644 --- a/apps/mana/apps/web/src/lib/modules/calendar/components/EventForm.svelte +++ b/apps/mana/apps/web/src/lib/modules/calendar/components/EventForm.svelte @@ -35,10 +35,8 @@ let calendarId = $state(event?.calendarId || ''); // svelte-ignore state_referenced_locally let recurrenceRule = $state(event?.recurrenceRule || ''); - let selectedTagIds = $state( - // svelte-ignore state_referenced_locally - ((event as unknown as Record)?.tagIds as string[]) ?? [] - ); + // svelte-ignore state_referenced_locally + let selectedTagIds = $state(event?.tagIds ?? []); const allTags = useAllTags(); diff --git a/apps/mana/apps/web/src/lib/modules/citycorners/queries.ts b/apps/mana/apps/web/src/lib/modules/citycorners/queries.ts index c0ba7b74d..e1ebcd3f7 100644 --- a/apps/mana/apps/web/src/lib/modules/citycorners/queries.ts +++ b/apps/mana/apps/web/src/lib/modules/citycorners/queries.ts @@ -123,7 +123,7 @@ export function getCityStats(locations: LocalLocation[]): CityStats { for (const loc of locations) { categoryCounts[loc.category] = (categoryCounts[loc.category] || 0) + 1; - if ((loc as any).createdBy) contributors.add((loc as any).createdBy); + if (loc.createdBy) contributors.add(loc.createdBy); if (loc.latitude && loc.longitude) hasCoordinates++; } @@ -134,8 +134,8 @@ export function getCityStats(locations: LocalLocation[]): CityStats { const recentLocations = [...locations] .sort((a, b) => { - const aTime = (a as any).createdAt ? new Date((a as any).createdAt).getTime() : 0; - const bTime = (b as any).createdAt ? new Date((b as any).createdAt).getTime() : 0; + const aTime = a.createdAt ? new Date(a.createdAt).getTime() : 0; + const bTime = b.createdAt ? new Date(b.createdAt).getTime() : 0; return bTime - aTime; }) .slice(0, 3); @@ -161,7 +161,7 @@ export interface PlatformStats { export function getPlatformStats(cities: LocalCity[], locations: LocalLocation[]): PlatformStats { const contributors = new Set(); for (const loc of locations) { - if ((loc as any).createdBy) contributors.add((loc as any).createdBy); + if (loc.createdBy) contributors.add(loc.createdBy); } for (const city of cities) { if (city.createdBy) contributors.add(city.createdBy); diff --git a/apps/mana/apps/web/src/lib/modules/citycorners/types.ts b/apps/mana/apps/web/src/lib/modules/citycorners/types.ts index dbec8b18e..3687d0637 100644 --- a/apps/mana/apps/web/src/lib/modules/citycorners/types.ts +++ b/apps/mana/apps/web/src/lib/modules/citycorners/types.ts @@ -37,6 +37,7 @@ export interface LocalLocation extends BaseRecord { longitude?: number | null; imageUrl?: string | null; timeline?: Array<{ year: number; event: string }> | null; + createdBy?: string | null; } export interface LocalFavorite extends BaseRecord { diff --git a/apps/mana/apps/web/src/lib/modules/picture/stores/images.svelte.ts b/apps/mana/apps/web/src/lib/modules/picture/stores/images.svelte.ts index 59fb2c84d..409b9cacf 100644 --- a/apps/mana/apps/web/src/lib/modules/picture/stores/images.svelte.ts +++ b/apps/mana/apps/web/src/lib/modules/picture/stores/images.svelte.ts @@ -43,14 +43,7 @@ export const imagesStore = { async toggleFavorite(id: string) { error = null; try { - // Cast: toggleField expects a string-keyed Table, but db.table() - // returns the generic IndexableType-keyed shape. The runtime keys - // for `images` are all strings (UUIDs). - await toggleField( - imageTable() as unknown as Parameters[0], - id, - 'isFavorite' - ); + await toggleField(imageTable(), id, 'isFavorite'); PictureEvents.imageFavorited(); return { success: true }; } catch (e) { diff --git a/apps/mana/apps/web/src/routes/(app)/+layout.svelte b/apps/mana/apps/web/src/routes/(app)/+layout.svelte index 5b477583d..f5b5c5e47 100644 --- a/apps/mana/apps/web/src/routes/(app)/+layout.svelte +++ b/apps/mana/apps/web/src/routes/(app)/+layout.svelte @@ -56,7 +56,7 @@ } from '@mana/shared-theme'; import type { ThemeVariant } from '@mana/shared-theme'; import { getLanguageDropdownItems, getCurrentLanguageLabel } from '@mana/shared-i18n'; - import { setLocale, supportedLocales } from '$lib/i18n'; + import { setLocale, supportedLocales, type SupportedLocale } from '$lib/i18n'; import { ManaEvents, AppEvents } from '@mana/shared-utils/analytics'; import { setUser as setErrorTrackingUser } from '@mana/shared-error-tracking/browser'; import { trackReturnVisit, trackModuleUsed, markAsGuest } from '$lib/stores/funnel-tracking'; @@ -145,7 +145,9 @@ // ── i18n ──────────────────────────────────────────────── let currentLocale = $derived($locale || 'de'); function handleLocaleChange(newLocale: string) { - setLocale(newLocale as any); + if (supportedLocales.includes(newLocale as SupportedLocale)) { + setLocale(newLocale as SupportedLocale); + } userSettings.updateGlobal({ locale: newLocale }); AppEvents.languageChanged(newLocale); } @@ -154,8 +156,11 @@ $effect(() => { if (userSettings.loaded && userSettings.locale) { const settingsLocale = userSettings.locale; - if (supportedLocales.includes(settingsLocale as any) && settingsLocale !== $locale) { - setLocale(settingsLocale as any); + if ( + supportedLocales.includes(settingsLocale as SupportedLocale) && + settingsLocale !== $locale + ) { + setLocale(settingsLocale as SupportedLocale); } } }); diff --git a/apps/mana/apps/web/src/routes/(app)/contacts/[id]/+page.svelte b/apps/mana/apps/web/src/routes/(app)/contacts/[id]/+page.svelte index 7b7aa26f7..d21d82f78 100644 --- a/apps/mana/apps/web/src/routes/(app)/contacts/[id]/+page.svelte +++ b/apps/mana/apps/web/src/routes/(app)/contacts/[id]/+page.svelte @@ -63,7 +63,7 @@ twitter: contact.twitter, instagram: contact.instagram, github: contact.github, - tagIds: ((contact as unknown as Record).tagIds as string[]) ?? [], + tagIds: contact.tagIds ?? [], }; isEditing = true; } diff --git a/packages/spiral-db/package.json b/packages/spiral-db/package.json index 266360425..f2debfd97 100644 --- a/packages/spiral-db/package.json +++ b/packages/spiral-db/package.json @@ -18,6 +18,8 @@ }, "scripts": { "build": "tsup src/index.ts src/wallpaper.ts --format esm --dts --clean", + "prepublishOnly": "pnpm build", + "prepare": "pnpm build", "dev": "tsup src/index.ts src/wallpaper.ts --format esm --dts --watch", "test": "vitest", "test:run": "vitest run",