fix(packages): fix type errors in consolidated packages + add missing files

- credits: fix mobile import paths (./operations → ../operations)
- feedback: fix createFeedbackService import (./feedback → ./api),
  recover missing types.ts from git history
- help: add package files (were untracked after consolidation)
- Update lockfile after package restructuring

All packages pass tsc --noEmit (excluding expected .svelte imports).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-03-28 17:53:34 +01:00
parent cbd19c24ed
commit 5e05c532a2
30 changed files with 3917 additions and 6341 deletions

View file

@ -0,0 +1,152 @@
/**
* Help Content Type Definitions
* Defines the structure for all help content types
*/
// ============================================================================
// Base Types
// ============================================================================
export type SupportedLanguage = 'en' | 'de' | 'fr' | 'it' | 'es';
export type FAQCategory = 'general' | 'account' | 'billing' | 'features' | 'technical' | 'privacy';
export type FeatureCategory = 'getting-started' | 'core' | 'advanced' | 'integration';
export type GuideDifficulty = 'beginner' | 'intermediate' | 'advanced';
export type ChangelogType = 'major' | 'minor' | 'patch' | 'beta';
export type ShortcutCategory = 'navigation' | 'editing' | 'general' | 'app-specific';
// ============================================================================
// Content Item Types
// ============================================================================
export interface BaseContentItem {
id: string;
language: SupportedLanguage;
order?: number;
appSpecific?: boolean;
apps?: string[];
lastUpdated?: Date;
}
export interface FAQItem extends BaseContentItem {
question: string;
answer: string;
category: FAQCategory;
featured?: boolean;
tags?: string[];
relatedFaqs?: string[];
}
export interface FeatureItem extends BaseContentItem {
title: string;
description: string;
content: string;
icon?: string;
category: FeatureCategory;
available?: boolean;
comingSoon?: boolean;
highlights?: string[];
learnMoreUrl?: string;
}
export interface KeyboardShortcut {
shortcut: string;
action: string;
description?: string;
}
export interface ShortcutsItem extends BaseContentItem {
category: ShortcutCategory;
title?: string;
shortcuts: KeyboardShortcut[];
}
export interface GuideStep {
title: string;
content: string;
duration?: string;
}
export interface GettingStartedItem extends BaseContentItem {
title: string;
description: string;
content: string;
difficulty: GuideDifficulty;
estimatedTime?: string;
prerequisites?: string[];
steps?: GuideStep[];
}
export interface ChangelogChange {
title: string;
description?: string;
category?: string;
}
export interface ChangelogItem extends BaseContentItem {
version: string;
title: string;
releaseDate: Date;
type: ChangelogType;
summary?: string;
content: string;
highlighted?: boolean;
changes?: {
features?: ChangelogChange[];
improvements?: ChangelogChange[];
bugfixes?: ChangelogChange[];
};
platforms?: string[];
}
export interface ContactInfo extends BaseContentItem {
title: string;
content: string;
supportEmail?: string;
supportUrl?: string;
discordUrl?: string;
twitterUrl?: string;
documentationUrl?: string;
responseTime?: string;
}
// ============================================================================
// Aggregated Content Types
// ============================================================================
export interface HelpContent {
faq: FAQItem[];
features: FeatureItem[];
shortcuts: ShortcutsItem[];
gettingStarted: GettingStartedItem[];
changelog: ChangelogItem[];
contact: ContactInfo | null;
}
export interface AppHelpContent {
appId: string;
appName: string;
content: HelpContent;
}
// ============================================================================
// Configuration Types
// ============================================================================
export interface HelpContentConfig {
appId: string;
locale: SupportedLanguage;
fallbackLocale?: SupportedLanguage;
includeAppSpecific?: boolean;
}
export interface MergeContentOptions {
appId: string;
locale: SupportedLanguage;
/** If true, app-specific content replaces central content with same ID */
overrideById?: boolean;
}