From 1334bd36265b9051cf34bbbb5d14305c84b2b306 Mon Sep 17 00:00:00 2001 From: Till JS Date: Mon, 27 Apr 2026 00:53:41 +0200 Subject: [PATCH] refactor(stores): drop remaining \`as never\` + \`as Record\` casts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Follow-up to a68933bff. Multi-Terminal commits hatten meinen ersten Cleanup teilweise verschluckt — dieser Commit räumt die übrig gebliebenen 22 \`update(id, X as never)\` Casts in den 13 Stores zusammen mit den letzten \`as Record\` Argumenten für \`encryptRecord\` weg. Public API der Stores unverändert, \`Partial\` reicht für Dexie's UpdateSpec ohne Cast. 7670 svelte-check Files, 0 Errors, 0 Warnings. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../src/lib/modules/broadcast/stores/campaigns.svelte.ts | 6 +++--- .../web/src/lib/modules/comic/stores/characters.svelte.ts | 8 ++++---- .../web/src/lib/modules/comic/stores/stories.svelte.ts | 8 ++++---- .../web/src/lib/modules/comic/views/DetailView.svelte | 4 ++-- .../src/lib/modules/invoices/stores/invoices.svelte.ts | 4 ++-- .../web/src/lib/modules/library/stores/entries.svelte.ts | 4 ++-- .../src/lib/modules/profile/stores/me-images.svelte.ts | 2 +- .../web/src/lib/modules/recipes/stores/recipes.svelte.ts | 4 ++-- .../apps/web/src/lib/modules/sleep/stores/sleep.svelte.ts | 4 ++-- .../src/lib/modules/wardrobe/stores/garments.svelte.ts | 2 +- .../web/src/lib/modules/wardrobe/stores/outfits.svelte.ts | 4 ++-- .../web/src/lib/modules/writing/stores/drafts.svelte.ts | 4 ++-- .../web/src/lib/modules/writing/stores/styles.svelte.ts | 2 +- 13 files changed, 28 insertions(+), 28 deletions(-) diff --git a/apps/mana/apps/web/src/lib/modules/broadcast/stores/campaigns.svelte.ts b/apps/mana/apps/web/src/lib/modules/broadcast/stores/campaigns.svelte.ts index 5d5fe8fba..5e204e557 100644 --- a/apps/mana/apps/web/src/lib/modules/broadcast/stores/campaigns.svelte.ts +++ b/apps/mana/apps/web/src/lib/modules/broadcast/stores/campaigns.svelte.ts @@ -98,7 +98,7 @@ export const broadcastCampaignsStore = { } const wrapped = { ...patch } as Record; await encryptRecord('broadcastCampaigns', wrapped); - await campaignTable.update(id, wrapped as never); + await campaignTable.update(id, wrapped); }, /** @@ -115,7 +115,7 @@ export const broadcastCampaignsStore = { } const patch = { content } as Record; await encryptRecord('broadcastCampaigns', patch); - await campaignTable.update(id, patch as never); + await campaignTable.update(id, patch); }, async updateAudience(id: string, audience: AudienceDefinition) { @@ -126,7 +126,7 @@ export const broadcastCampaignsStore = { } const patch = { audience } as Record; await encryptRecord('broadcastCampaigns', patch); - await campaignTable.update(id, patch as never); + await campaignTable.update(id, patch); }, /** diff --git a/apps/mana/apps/web/src/lib/modules/comic/stores/characters.svelte.ts b/apps/mana/apps/web/src/lib/modules/comic/stores/characters.svelte.ts index 07bf59e0a..1fe394dbc 100644 --- a/apps/mana/apps/web/src/lib/modules/comic/stores/characters.svelte.ts +++ b/apps/mana/apps/web/src/lib/modules/comic/stores/characters.svelte.ts @@ -83,7 +83,7 @@ export const comicCharactersStore = { if (!existing.pinnedVariantId) { patch.pinnedVariantId = variantMediaId; } - await comicCharactersTable.update(characterId, patch as never); + await comicCharactersTable.update(characterId, patch); emitDomainEvent('ComicCharacterVariantAdded', 'comic', 'comicCharacters', characterId, { characterId, variantMediaId, @@ -123,7 +123,7 @@ export const comicCharactersStore = { if (existing.pinnedVariantId === variantMediaId) { patch.pinnedVariantId = nextIds[0] ?? null; } - await comicCharactersTable.update(characterId, patch as never); + await comicCharactersTable.update(characterId, patch); }, async updateCharacter( @@ -134,8 +134,8 @@ export const comicCharactersStore = { if (Array.isArray(wrapped.tags)) { wrapped.tags = [...wrapped.tags]; } - await encryptRecord('comicCharacters', wrapped as Record); - await comicCharactersTable.update(id, wrapped as never); + await encryptRecord('comicCharacters', wrapped); + await comicCharactersTable.update(id, wrapped); }, async toggleFavorite(id: string): Promise { diff --git a/apps/mana/apps/web/src/lib/modules/comic/stores/stories.svelte.ts b/apps/mana/apps/web/src/lib/modules/comic/stores/stories.svelte.ts index 1bc5937f5..a5cdee164 100644 --- a/apps/mana/apps/web/src/lib/modules/comic/stores/stories.svelte.ts +++ b/apps/mana/apps/web/src/lib/modules/comic/stores/stories.svelte.ts @@ -83,8 +83,8 @@ export const comicStoriesStore = { if (Array.isArray(wrapped.tags)) { wrapped.tags = [...wrapped.tags]; } - await encryptRecord('comicStories', wrapped as Record); - await comicStoriesTable.update(id, wrapped as never); + await encryptRecord('comicStories', wrapped); + await comicStoriesTable.update(id, wrapped); }, async toggleFavorite(id: string): Promise { @@ -133,7 +133,7 @@ export const comicStoriesStore = { } else if (next !== 'unlisted' && existing.unlistedToken) { patch.unlistedToken = undefined; } - await comicStoriesTable.update(id, patch as never); + await comicStoriesTable.update(id, patch); emitDomainEvent('VisibilityChanged', 'comic', 'comicStories', id, { recordId: id, @@ -163,7 +163,7 @@ export const comicStoriesStore = { panelMeta: nextMeta, } as Record; await encryptRecord('comicStories', patch); - await comicStoriesTable.update(storyId, patch as never); + await comicStoriesTable.update(storyId, patch); emitDomainEvent('ComicPanelAppended', 'comic', 'comicStories', storyId, { storyId, panelImageId, diff --git a/apps/mana/apps/web/src/lib/modules/comic/views/DetailView.svelte b/apps/mana/apps/web/src/lib/modules/comic/views/DetailView.svelte index f9d33e1cd..956fc25c7 100644 --- a/apps/mana/apps/web/src/lib/modules/comic/views/DetailView.svelte +++ b/apps/mana/apps/web/src/lib/modules/comic/views/DetailView.svelte @@ -81,8 +81,8 @@ panelImageIds: nextIds, panelMeta: nextMeta, } as Partial; - await encryptRecord('comicStories', patch as Record); - await comicStoriesTable.update(story.id, patch as never); + await encryptRecord('comicStories', patch); + await comicStoriesTable.update(story.id, patch); } diff --git a/apps/mana/apps/web/src/lib/modules/invoices/stores/invoices.svelte.ts b/apps/mana/apps/web/src/lib/modules/invoices/stores/invoices.svelte.ts index f69be9023..84de1f7f3 100644 --- a/apps/mana/apps/web/src/lib/modules/invoices/stores/invoices.svelte.ts +++ b/apps/mana/apps/web/src/lib/modules/invoices/stores/invoices.svelte.ts @@ -137,7 +137,7 @@ export const invoicesStore = { } const wrapped = { ...patch } as Record; await encryptRecord('invoices', wrapped); - await invoiceTable.update(id, wrapped as never); + await invoiceTable.update(id, wrapped); }, /** @@ -156,7 +156,7 @@ export const invoicesStore = { // `lines` is in the encryption allowlist; `totals` is not. encryptRecord // only touches allowlisted keys, so a single call is correct for both. await encryptRecord('invoices', patch); - await invoiceTable.update(id, patch as never); + await invoiceTable.update(id, patch); }, /** diff --git a/apps/mana/apps/web/src/lib/modules/library/stores/entries.svelte.ts b/apps/mana/apps/web/src/lib/modules/library/stores/entries.svelte.ts index a62678ca1..e3fdd2642 100644 --- a/apps/mana/apps/web/src/lib/modules/library/stores/entries.svelte.ts +++ b/apps/mana/apps/web/src/lib/modules/library/stores/entries.svelte.ts @@ -132,7 +132,7 @@ export const libraryEntriesStore = { ) { const wrapped = { ...patch } as Record; await encryptRecord('libraryEntries', wrapped); - await libraryEntryTable.update(id, wrapped as never); + await libraryEntryTable.update(id, wrapped); // Keep the share-link snapshot in sync if this entry is unlisted. void this.refreshUnlistedSnapshot(id); }, @@ -265,7 +265,7 @@ export const libraryEntriesStore = { patch.unlistedExpiresAt = undefined; } - await libraryEntryTable.update(id, patch as never); + await libraryEntryTable.update(id, patch); emitDomainEvent('VisibilityChanged', 'library', 'libraryEntries', id, { recordId: id, diff --git a/apps/mana/apps/web/src/lib/modules/profile/stores/me-images.svelte.ts b/apps/mana/apps/web/src/lib/modules/profile/stores/me-images.svelte.ts index 60ec55dda..d52c816e4 100644 --- a/apps/mana/apps/web/src/lib/modules/profile/stores/me-images.svelte.ts +++ b/apps/mana/apps/web/src/lib/modules/profile/stores/me-images.svelte.ts @@ -167,7 +167,7 @@ export const meImagesStore = { ): Promise { const wrapped = { ...patch } as Record; await encryptRecord('meImages', wrapped); - await meImagesTable.update(id, wrapped as never); + await meImagesTable.update(id, wrapped); }, /** diff --git a/apps/mana/apps/web/src/lib/modules/recipes/stores/recipes.svelte.ts b/apps/mana/apps/web/src/lib/modules/recipes/stores/recipes.svelte.ts index 572b52758..780f22269 100644 --- a/apps/mana/apps/web/src/lib/modules/recipes/stores/recipes.svelte.ts +++ b/apps/mana/apps/web/src/lib/modules/recipes/stores/recipes.svelte.ts @@ -78,7 +78,7 @@ export const recipesStore = { ) { const wrapped = { ...patch } as Record; await encryptRecord('recipes', wrapped); - await recipeTable.update(id, wrapped as never); + await recipeTable.update(id, wrapped); }, async deleteRecipe(id: string) { @@ -118,7 +118,7 @@ export const recipesStore = { } else if (next !== 'unlisted' && existing.unlistedToken) { patch.unlistedToken = undefined; } - await recipeTable.update(id, patch as never); + await recipeTable.update(id, patch); emitDomainEvent('VisibilityChanged', 'recipes', 'recipes', id, { recordId: id, diff --git a/apps/mana/apps/web/src/lib/modules/sleep/stores/sleep.svelte.ts b/apps/mana/apps/web/src/lib/modules/sleep/stores/sleep.svelte.ts index f71f1aeba..64bf384a5 100644 --- a/apps/mana/apps/web/src/lib/modules/sleep/stores/sleep.svelte.ts +++ b/apps/mana/apps/web/src/lib/modules/sleep/stores/sleep.svelte.ts @@ -112,7 +112,7 @@ export const sleepStore = { > ) { // Recalculate duration if times changed - const update: Record = { ...patch }; + const update: Partial = { ...patch }; if (patch.bedtime || patch.wakeTime) { const entry = await sleepEntryTable.get(id); if (entry) { @@ -122,7 +122,7 @@ export const sleepStore = { } } const wrapped = await encryptRecord('sleepEntries', update); - await sleepEntryTable.update(id, wrapped as never); + await sleepEntryTable.update(id, wrapped); }, async deleteEntry(id: string) { diff --git a/apps/mana/apps/web/src/lib/modules/wardrobe/stores/garments.svelte.ts b/apps/mana/apps/web/src/lib/modules/wardrobe/stores/garments.svelte.ts index 036cb828a..af07ba37b 100644 --- a/apps/mana/apps/web/src/lib/modules/wardrobe/stores/garments.svelte.ts +++ b/apps/mana/apps/web/src/lib/modules/wardrobe/stores/garments.svelte.ts @@ -82,7 +82,7 @@ export const wardrobeGarmentsStore = { ): Promise { const wrapped = { ...patch } as Record; await encryptRecord('wardrobeGarments', wrapped); - await wardrobeGarmentsTable.update(id, wrapped as never); + await wardrobeGarmentsTable.update(id, wrapped); }, /** diff --git a/apps/mana/apps/web/src/lib/modules/wardrobe/stores/outfits.svelte.ts b/apps/mana/apps/web/src/lib/modules/wardrobe/stores/outfits.svelte.ts index b61e1c23a..02c43e277 100644 --- a/apps/mana/apps/web/src/lib/modules/wardrobe/stores/outfits.svelte.ts +++ b/apps/mana/apps/web/src/lib/modules/wardrobe/stores/outfits.svelte.ts @@ -73,7 +73,7 @@ export const wardrobeOutfitsStore = { ): Promise { const wrapped = { ...patch } as Record; await encryptRecord('wardrobeOutfits', wrapped); - await wardrobeOutfitsTable.update(id, wrapped as never); + await wardrobeOutfitsTable.update(id, wrapped); }, async toggleFavorite(id: string): Promise { @@ -145,7 +145,7 @@ export const wardrobeOutfitsStore = { } else if (next !== 'unlisted' && existing.unlistedToken) { patch.unlistedToken = undefined; } - await wardrobeOutfitsTable.update(id, patch as never); + await wardrobeOutfitsTable.update(id, patch); emitDomainEvent('VisibilityChanged', 'wardrobe', 'wardrobeOutfits', id, { recordId: id, diff --git a/apps/mana/apps/web/src/lib/modules/writing/stores/drafts.svelte.ts b/apps/mana/apps/web/src/lib/modules/writing/stores/drafts.svelte.ts index a952e8fd8..e88d2b655 100644 --- a/apps/mana/apps/web/src/lib/modules/writing/stores/drafts.svelte.ts +++ b/apps/mana/apps/web/src/lib/modules/writing/stores/drafts.svelte.ts @@ -141,7 +141,7 @@ export const draftsStore = { async updateDraft(id: string, patch: UpdateDraftPatch) { const wrapped = { ...patch } as Record; await encryptRecord('writingDrafts', wrapped); - await draftTable.update(id, wrapped as never); + await draftTable.update(id, wrapped); }, async updateBriefing(id: string, briefingPatch: Partial) { @@ -325,7 +325,7 @@ export const draftsStore = { } else if (next !== 'unlisted' && existing.unlistedToken) { patch.unlistedToken = undefined; } - await draftTable.update(id, patch as never); + await draftTable.update(id, patch); emitDomainEvent('VisibilityChanged', 'writing', 'writingDrafts', id, { recordId: id, collection: 'writingDrafts', diff --git a/apps/mana/apps/web/src/lib/modules/writing/stores/styles.svelte.ts b/apps/mana/apps/web/src/lib/modules/writing/stores/styles.svelte.ts index 775228b47..c4be09054 100644 --- a/apps/mana/apps/web/src/lib/modules/writing/stores/styles.svelte.ts +++ b/apps/mana/apps/web/src/lib/modules/writing/stores/styles.svelte.ts @@ -66,7 +66,7 @@ export const stylesStore = { async updateStyle(id: string, patch: UpdateStylePatch) { const wrapped = { ...patch } as Record; await encryptRecord('writingStyles', wrapped); - await writingStyleTable.update(id, wrapped as never); + await writingStyleTable.update(id, wrapped); }, async upsertExtractedPrinciples(id: string, principles: StyleExtractedPrinciples) {