@umituz/react-native-ai-generation-content 1.61.6 → 1.61.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umituz/react-native-ai-generation-content",
3
- "version": "1.61.6",
3
+ "version": "1.61.7",
4
4
  "description": "Provider-agnostic AI generation orchestration for React Native with result preview components",
5
5
  "main": "src/index.ts",
6
6
  "types": "src/index.ts",
@@ -69,7 +69,7 @@
69
69
  "@types/react": "~19.1.10",
70
70
  "@typescript-eslint/eslint-plugin": "^8.0.0",
71
71
  "@typescript-eslint/parser": "^8.0.0",
72
- "@umituz/react-native-design-system": "^2.9.50",
72
+ "@umituz/react-native-design-system": "^4.23.42",
73
73
  "@umituz/react-native-firebase": "^1.13.87",
74
74
  "@umituz/react-native-subscription": "^2.27.23",
75
75
  "eslint": "^9.0.0",
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Domain Layer Exports
3
+ * Core types, entities, and interfaces
4
+ */
5
+
6
+ // Result Type Pattern - Functional error handling
7
+ export type { Result, Success, Failure } from "../domain/types";
8
+ export {
9
+ success, failure, isSuccess, isFailure, mapResult, andThen, unwrap, unwrapOr,
10
+ } from "../domain/types";
11
+
12
+ // Interfaces
13
+ export type {
14
+ AIProviderConfig, IAIProvider, JobSubmission, JobStatus, AIJobStatusType, AILogEntry,
15
+ SubscribeOptions, RunOptions, ImageFeatureType, VideoFeatureType, ImageFeatureInputData,
16
+ VideoFeatureInputData, ProviderCapabilities, ProviderProgressInfo, INetworkService,
17
+ ICreditService, IPaywallService, IAuthService, IAnalyticsService, IAppServices, PartialAppServices,
18
+ IFeatureUtils,
19
+ } from "../domain/interfaces";
20
+
21
+ // Entities
22
+ export { AIErrorType } from "../domain/entities";
23
+ export type {
24
+ AIErrorInfo, AIErrorMessages, GenerationCapability, GenerationStatus, GenerationMetadata,
25
+ GenerationResult, GenerationProgress, GenerationRequest, PollingConfig, PollingState,
26
+ PollingOptions, BackgroundJobStatus, BackgroundJob, AddJobInput, UpdateJobInput,
27
+ JobExecutorConfig, BackgroundQueueConfig, GenerationMode,
28
+ } from "../domain/entities";
29
+ export { DEFAULT_POLLING_CONFIG, DEFAULT_QUEUE_CONFIG } from "../domain/entities";
30
+
31
+ // Processing Modes
32
+ export type { ImageProcessingMode, ModeConfig, ModeCatalog } from "../domain/entities/processing-modes.types";
33
+ export {
34
+ DEFAULT_PROCESSING_MODES, getModeConfig, getFreeModes, getPremiumModes, getPromptRequiredModes,
35
+ } from "../domain/constants/processing-modes.constants";
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Domain Modules Exports
3
+ * Prompts, content-moderation, creations, face-detection, scenarios, etc.
4
+ */
5
+
6
+ // Prompts Domain
7
+ export type {
8
+ AIPromptCategory, AIPromptVariableType, AIPromptError, AIPromptResult,
9
+ AIPromptVariable, AIPromptSafety, AIPromptVersion,
10
+ AIPromptTemplate, CreateAIPromptTemplateParams,
11
+ GeneratedPrompt, CreateGeneratedPromptParams,
12
+ ITemplateRepository, IPromptHistoryRepository, IPromptGenerationService,
13
+ AsyncState, AsyncActions, UseTemplateState, UseTemplateActions,
14
+ UsePromptGenerationState, UsePromptGenerationActions,
15
+ IdentitySegment, AnimeStyleSegment, QualitySegment,
16
+ ImagePromptResult, ImagePromptBuilderOptions, AnimeSelfiePromptResult,
17
+ CreatePromptOptions, MultiPersonPreservationRules, FacePreservationOptions,
18
+ InteractionStyle, InteractionStyleOptions,
19
+ } from "../domains/prompts";
20
+ export {
21
+ createPromptVersion, formatVersion,
22
+ createAIPromptTemplate, updateTemplateVersion, getTemplateString,
23
+ createGeneratedPrompt, isPromptRecent,
24
+ TemplateRepository, PromptHistoryRepository, PromptGenerationService,
25
+ useAsyncState, useTemplateRepository, usePromptGeneration,
26
+ IDENTITY_SEGMENTS, IDENTITY_NEGATIVE_SEGMENTS, ANIME_STYLE_SEGMENTS,
27
+ QUALITY_SEGMENTS, QUALITY_NEGATIVE_SEGMENTS, ANTI_REALISM_SEGMENTS,
28
+ ANATOMY_NEGATIVE_SEGMENTS, PRESET_COLLECTIONS,
29
+ ImagePromptBuilder, createAnimeSelfiePrompt, createStyleTransferPrompt,
30
+ IDENTITY_PRESERVATION_CORE, PHOTOREALISTIC_RENDERING, NATURAL_POSE_GUIDELINES,
31
+ MASTER_BASE_PROMPT, createPhotorealisticPrompt, createTransformationPrompt, enhanceExistingPrompt,
32
+ MULTI_PERSON_PRESERVATION_RULES, createMultiPersonPrompt,
33
+ buildFacePreservationPrompt, buildMinimalFacePreservationPrompt,
34
+ buildInteractionStylePrompt, buildMinimalInteractionStylePrompt, getInteractionRules, getInteractionForbidden,
35
+ } from "../domains/prompts";
36
+
37
+ // Content Moderation Domain
38
+ export type {
39
+ ContentType, ModerationSeverity, AgeRating, ViolationType, ModerationRule,
40
+ ModerationResult, Violation, ModerationContext, ModerationConfig,
41
+ SuggestionMessages, ValidationLimits, ContentFilterResult, IContentFilter, IModerator,
42
+ PatternMatch, ModerationResult as ModeratorResult,
43
+ } from "../domains/content-moderation";
44
+ export {
45
+ contentModerationService, patternMatcherService, textModerator, imageModerator,
46
+ videoModerator, voiceModerator, BaseModerator,
47
+ rulesRegistry, defaultModerationRules, ContentPolicyViolationError,
48
+ } from "../domains/content-moderation";
49
+
50
+ // Creations Domain
51
+ export type {
52
+ CreationTypeId, CreationStatus, CreationCategory, CreationFilter, FilterOption, CreationStats,
53
+ StatusColorKey, CreationOutput, IconName, Creation, CreationDocument,
54
+ CreationType, CreationsTranslations, CreationsConfig, DocumentMapper,
55
+ ICreationsRepository, CreationsSubscriptionCallback, UnsubscribeFunction, RepositoryOptions,
56
+ UseCreationPersistenceConfig, UseCreationPersistenceReturn, BaseProcessingStartData, BaseProcessingResult,
57
+ UseProcessingJobsPollerConfig, UseProcessingJobsPollerReturn,
58
+ CreationAction, CreationCardData, CreationCardCallbacks, FilterButton, PendingJobsSectionProps,
59
+ } from "../domains/creations";
60
+ export {
61
+ ALL_CREATION_STATUSES, ALL_CREATION_CATEGORIES, ALL_CREATION_TYPES,
62
+ IMAGE_CREATION_TYPES, VIDEO_CREATION_TYPES, DEFAULT_CREATION_FILTER,
63
+ MEDIA_FILTER_OPTIONS, STATUS_FILTER_OPTIONS, getTypesForCategory, getCategoryForType,
64
+ getCategoryForCreation, isTypeInCategory, isVideoCreationType, isImageCreationType, calculateCreationStats,
65
+ getStatusColorKey, getStatusColor, getStatusTextKey, getStatusText, isInProgress, isCompleted, isFailed,
66
+ getPreviewUrl, getAllMediaUrls, hasDownloadableContent, hasVideoContent, hasAudioContent, getPrimaryMediaUrl,
67
+ generateCreationId, getTypeIcon, getTypeTextKey, getTypeText, getCreationTitle, filterBySearch, sortCreations, truncateText,
68
+ mapDocumentToCreation, DEFAULT_TRANSLATIONS, DEFAULT_CONFIG,
69
+ CreationsRepository, createCreationsRepository,
70
+ useCreations, useDeleteCreation, useCreationsFilter, useAdvancedFilter, useCreationPersistence, useProcessingJobsPoller,
71
+ CreationPreview, CreationBadges, CreationActions, CreationCard, CreationThumbnail,
72
+ FilterChips, CreationsFilterBar, createMediaFilterButtons, createStatusFilterButtons,
73
+ CreationsHomeCard, EmptyState, PendingJobsSection,
74
+ getLocalizedTitle, getFilterCategoriesFromConfig, getTranslatedTypes,
75
+ CreationsGalleryScreen,
76
+ } from "../domains/creations";
77
+
78
+ // Face Detection Domain
79
+ export type { FaceDetectionResult, FaceValidationState, FaceDetectionConfig } from "../domains/face-detection";
80
+ export {
81
+ FACE_DETECTION_CONFIG, FACE_DETECTION_PROMPTS,
82
+ isValidFace, parseDetectionResponse, createFailedResult, createSuccessResult,
83
+ analyzeImageForFace, useFaceDetection, FaceValidationStatus, FaceDetectionToggle,
84
+ } from "../domains/face-detection";
85
+
86
+ // Scenarios Domain
87
+ export type {
88
+ ScenarioOutputType, ScenarioInputType, ScenarioPromptType, GeneratingMessages, Scenario,
89
+ AppScenarioConfig, ConfiguredScenario, WizardConfigOptions,
90
+ CategoryNavigationContainerProps, MainCategoryScreenProps, SubCategoryScreenProps,
91
+ MainCategory, SubCategory, CategoryInfo, ScenarioSelectorConfig, ScenarioPreviewTranslations,
92
+ ScenarioConfig, VisualStyleOption, InspirationChipData, MagicPromptConfig,
93
+ CoupleFeatureId, CoupleFeatureSelection, ScenarioData,
94
+ } from "../domains/scenarios";
95
+ export {
96
+ createScenariosForApp, filterScenariosByOutputType, filterScenariosByCategory,
97
+ getScenarioCategories, findScenarioById,
98
+ configureScenarios, getConfiguredScenario, getDefaultOutputType, isScenariosConfigured, getAllConfiguredScenarios,
99
+ createStoryTemplate, createCreativePrompt,
100
+ WizardInputType, detectWizardInputType, SCENARIO_TO_WIZARD_INPUT_MAP,
101
+ getScenarioWizardConfig, hasExplicitConfig, getScenarioWizardInputType, registerWizardConfig,
102
+ CategoryNavigationContainer, ScenarioPreviewScreen, MainCategoryScreen, SubCategoryScreen, HierarchicalScenarioListScreen,
103
+ } from "../domains/scenarios";
104
+
105
+ // Access Control Domain
106
+ export type { AIFeatureGateOptions, AIFeatureGateReturn, AIFeatureGateHook } from "../domains/access-control";
107
+ export { useAIFeatureGate } from "../domains/access-control";
108
+
109
+ // Result Preview Domain
110
+ export type {
111
+ ResultData, ResultActionsCallbacks, ResultDisplayState,
112
+ ResultActionBarProps, RecentCreation, ResultPreviewScreenProps, ResultPreviewTranslations,
113
+ UseResultActionsOptions, UseResultActionsReturn,
114
+ StarRatingPickerProps, GenerationErrorTranslations, GenerationErrorConfig, GenerationErrorScreenProps,
115
+ } from "../domains/result-preview";
116
+ export {
117
+ ResultPreviewScreen, ResultActionBar, RecentCreationsSection,
118
+ GenerationErrorScreen, StarRatingPicker, useResultActions,
119
+ } from "../domains/result-preview";
120
+
121
+ // Generation Domain (wizard, flow, strategy)
122
+ export type {
123
+ UseAIGenerationProps, UseAIGenerationReturn, AlertMessages as GenerationAlertMessages,
124
+ FeatureConfig, FeatureRegistration, GenerationType, InputType, OutputType, VisualStyleConfig,
125
+ GenerationExecutor, GenerationOptions as GenerationExecutorOptions,
126
+ GenerationResult as GenerationExecutorResult,
127
+ ImageGenerationOutput, VideoGenerationInput, VideoGenerationOutput,
128
+ MemeGenerationInput, MemeGenerationOutput, TextToImageInput, TextToImageOutput, ExecutorGenerationType,
129
+ BaseStepConfig, AuthGateStepConfig, CreditGateStepConfig, PhotoUploadStepConfig,
130
+ TextInputStepConfig as WizardTextInputStepConfig, SelectionStepConfig,
131
+ PreviewStepConfig as WizardPreviewStepConfig, WizardStepConfig,
132
+ WizardFeatureConfig, ScenarioBasedConfig,
133
+ UsePhotoUploadStateProps, UsePhotoUploadStateReturn, PhotoUploadConfig,
134
+ PhotoUploadTranslations as WizardPhotoUploadTranslations,
135
+ UseWizardGenerationProps, UseWizardGenerationReturn, WizardScenarioData, WizardOutputType,
136
+ GenericWizardFlowProps, TextInputScreenTranslations, TextInputScreenConfig, TextInputScreenProps,
137
+ FlowStoreType,
138
+ GateResult, AuthGateConfig, CreditGateConfig, FlowState, FlowActions, FlowCallbacks,
139
+ FlowConfiguration, StepDefinition,
140
+ } from "../domains/generation";
141
+ export {
142
+ useAIGeneration, featureRegistry, createGenerationStrategy, ExecutorFactory,
143
+ buildWizardConfigFromScenario, WIZARD_PRESETS, buildFlowStepsFromWizard, getPhotoUploadCount,
144
+ getStepConfig, quickBuildWizard, usePhotoUploadState, useWizardGeneration,
145
+ GenericWizardFlow, GeneratingScreen, TextInputScreen,
146
+ TEXT_TO_IMAGE_WIZARD_CONFIG, TEXT_TO_VIDEO_WIZARD_CONFIG, IMAGE_TO_VIDEO_WIZARD_CONFIG,
147
+ createFlowStore, useFlow, resetFlowStore,
148
+ StepType,
149
+ } from "../domains/generation";
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Features Exports
3
+ * Text-to-Image, Text-to-Video, Image-to-Video
4
+ */
5
+
6
+ // Text-to-Image Feature
7
+ export type {
8
+ AspectRatio, ImageSize, OutputFormat, NumImages, StyleOption as TextToImageStyleOption,
9
+ TextToImageFormState, TextToImageFormActions, TextToImageFormDefaults,
10
+ TextToImageGenerationRequest, TextToImageGenerationResult, TextToImageGenerationResultSuccess,
11
+ TextToImageGenerationResultError, TextToImageCallbacks, TextToImageFormConfig, TextToImageTranslations,
12
+ TextToImageOptions, TextToImageRequest, TextToImageResult, TextToImageFeatureState,
13
+ TextToImageInputBuilder, TextToImageResultExtractor, TextToImageFeatureConfig,
14
+ PromptSuggestion, ExecuteTextToImageOptions, UseFormStateOptions, UseFormStateReturn,
15
+ TextToImageGenerationState,
16
+ UseGenerationOptions as TextToImageUseGenerationOptions,
17
+ UseGenerationReturn as TextToImageUseGenerationReturn,
18
+ UseTextToImageFormOptions, UseTextToImageFormReturn,
19
+ TextToImagePromptInputProps, TextToImageExamplePromptsProps, TextToImageStyleSelectorProps,
20
+ TextToImageAspectRatioSelectorProps, TextToImageGenerateButtonProps, TextToImageSettingsSheetProps,
21
+ } from "../features/text-to-image";
22
+ export {
23
+ DEFAULT_IMAGE_STYLES, DEFAULT_NUM_IMAGES_OPTIONS, ASPECT_RATIO_VALUES, IMAGE_SIZE_VALUES,
24
+ OUTPUT_FORMAT_VALUES, DEFAULT_FORM_VALUES, DEFAULT_TEXT_TO_IMAGE_PROMPTS, DEFAULT_TEXT_TO_VOICE_PROMPTS,
25
+ executeTextToImage, hasTextToImageSupport,
26
+ useFormState as useTextToImageFormState,
27
+ useGeneration as useTextToImageGeneration,
28
+ useTextToImageForm,
29
+ TextToImagePromptInput, TextToImageExamplePrompts, TextToImageNumImagesSelector,
30
+ TextToImageStyleSelector, TextToImageAspectRatioSelector, TextToImageSizeSelector,
31
+ TextToImageOutputFormatSelector, TextToImageGenerateButton, TextToImageSettingsSheet,
32
+ } from "../features/text-to-image";
33
+
34
+ // Text-to-Video Feature
35
+ export type {
36
+ TextToVideoOptions, TextToVideoRequest, TextToVideoResult, TextToVideoFeatureState,
37
+ TextToVideoFormState, TextToVideoGenerationState, TextToVideoTranslations,
38
+ TextToVideoInputBuilder, TextToVideoResultExtractor, TextToVideoConfig, TextToVideoCallbacks,
39
+ TabConfig, VideoStyleOption, AspectRatioOption as TextToVideoAspectRatioOption,
40
+ VideoDurationOption, OptionToggleConfig, HeroConfig, ProgressConfig,
41
+ FrameData, VideoModerationResult, ProjectData, CreationData, GenerationStartData,
42
+ GenerationTabsProps, FrameSelectorProps, OptionsPanelProps, HeroSectionProps,
43
+ HintCarouselProps, HintItem,
44
+ ExamplePromptsProps as TextToVideoExamplePromptsProps,
45
+ ExamplePrompt,
46
+ UseTextToVideoFeatureProps, UseTextToVideoFeatureReturn, TextToVideoGenerateParams,
47
+ UseTextToVideoFormProps, UseTextToVideoFormReturn, ExecuteTextToVideoOptions,
48
+ } from "../features/text-to-video";
49
+ export {
50
+ INITIAL_FORM_STATE, INITIAL_GENERATION_STATE,
51
+ executeTextToVideo, hasTextToVideoSupport,
52
+ useTextToVideoFeature, useTextToVideoForm,
53
+ GenerationTabs, FrameSelector, OptionsPanel, HeroSection, HintCarousel,
54
+ } from "../features/text-to-video";
55
+
56
+ // Image-to-Video Feature
57
+ export type {
58
+ AnimationStyle, AnimationStyleId, MusicMood, MusicMoodId,
59
+ VideoDuration, DurationOption as ImageToVideoDurationOption,
60
+ ImageToVideoFormState, ImageToVideoFormActions, ImageToVideoFormDefaults,
61
+ ImageToVideoCallbacks, ImageToVideoFormConfig, ImageToVideoTranslationsExtended,
62
+ ImageToVideoOptions, ImageToVideoGenerateParams, ImageToVideoRequest, ImageToVideoResult,
63
+ ImageToVideoGenerationState, ImageToVideoFeatureState, ImageToVideoTranslations,
64
+ ImageToVideoInputBuilder, ImageToVideoResultExtractor, ImageToVideoFeatureCallbacks,
65
+ ImageToVideoGenerationStartData, ImageToVideoCreationData, ImageToVideoFeatureConfig,
66
+ ExecuteImageToVideoOptions, UseImageToVideoFormStateOptions, UseImageToVideoFormStateReturn,
67
+ UseImageToVideoGenerationOptions, UseImageToVideoGenerationReturn,
68
+ UseImageToVideoFormOptions, UseImageToVideoFormReturn,
69
+ UseImageToVideoFeatureProps, UseImageToVideoFeatureReturn,
70
+ ImageToVideoAnimationStyleSelectorProps, ImageToVideoDurationSelectorProps,
71
+ ImageToVideoMusicMoodSelectorProps, ImageToVideoSelectionGridProps,
72
+ ImageToVideoSelectionGridTranslations, ImageToVideoGenerateButtonProps,
73
+ } from "../features/image-to-video";
74
+ export {
75
+ IMAGE_TO_VIDEO_ANIMATION_STYLES, IMAGE_TO_VIDEO_DEFAULT_ANIMATION,
76
+ IMAGE_TO_VIDEO_MUSIC_MOODS, IMAGE_TO_VIDEO_DEFAULT_MUSIC,
77
+ IMAGE_TO_VIDEO_DURATION_OPTIONS, IMAGE_TO_VIDEO_DEFAULT_DURATION,
78
+ IMAGE_TO_VIDEO_FORM_DEFAULTS, IMAGE_TO_VIDEO_CONFIG,
79
+ executeImageToVideo, hasImageToVideoSupport,
80
+ useImageToVideoFormState, useImageToVideoGeneration, useImageToVideoForm, useImageToVideoFeature,
81
+ ImageToVideoAnimationStyleSelector, ImageToVideoDurationSelector,
82
+ ImageToVideoMusicMoodSelector, ImageToVideoSelectionGrid, ImageToVideoGenerateButton,
83
+ } from "../features/image-to-video";
84
+
85
+ // Wizard Flows
86
+ export { TextToImageWizardFlow } from "../features/text-to-image/presentation/screens/TextToImageWizardFlow";
87
+ export type { TextToImageWizardFlowProps } from "../features/text-to-image/presentation/screens/TextToImageWizardFlow";
88
+ export { TextToVideoWizardFlow } from "../features/text-to-video/presentation/screens/TextToVideoWizardFlow";
89
+ export type { TextToVideoWizardFlowProps } from "../features/text-to-video/presentation/screens/TextToVideoWizardFlow";
90
+ export { ImageToVideoWizardFlow } from "../features/image-to-video/presentation/screens/ImageToVideoWizardFlow";
91
+ export type { ImageToVideoWizardFlowProps } from "../features/image-to-video/presentation/screens/ImageToVideoWizardFlow";
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Infrastructure Layer Exports
3
+ * Services, config, utils, orchestration
4
+ */
5
+
6
+ // Base Executor
7
+ export { BaseExecutor } from "../infrastructure/executors";
8
+ export type { BaseExecutorOptions } from "../infrastructure/executors";
9
+
10
+ // App Services Config
11
+ export {
12
+ configureAppServices, updateAppServices, getAppServices, isAppServicesConfigured,
13
+ resetAppServices, getNetworkService, getCreditService, getPaywallService, getAuthService, getAnalyticsService,
14
+ } from "../infrastructure/config";
15
+
16
+ // Services
17
+ export {
18
+ providerRegistry, generationOrchestrator, pollJob, createJobPoller,
19
+ executeImageFeature, hasImageFeatureSupport, executeVideoFeature, hasVideoFeatureSupport,
20
+ submitVideoFeatureToQueue, executeMultiImageGeneration,
21
+ } from "../infrastructure/services";
22
+ export type {
23
+ OrchestratorConfig, PollJobOptions, PollJobResult, ImageResultExtractor,
24
+ ExecuteImageFeatureOptions, ImageFeatureResult, ImageFeatureRequest,
25
+ ExecuteVideoFeatureOptions, VideoFeatureResult, VideoFeatureRequest,
26
+ MultiImageGenerationInput, MultiImageGenerationResult,
27
+ } from "../infrastructure/services";
28
+
29
+ // Utils
30
+ export {
31
+ classifyError, isTransientError, isPermanentError, isResultNotReady, calculatePollingInterval,
32
+ createPollingDelay, checkStatusForErrors, isJobComplete, isJobProcessing, isJobFailed,
33
+ validateResult, extractOutputUrl, extractOutputUrls, extractVideoUrl, extractThumbnailUrl,
34
+ extractAudioUrl, extractImageUrls, cleanBase64, addBase64Prefix, preparePhoto, preparePhotos,
35
+ isValidBase64, getBase64Size, getBase64SizeMB, prepareImage, createDevCallbacks, createFeatureUtils,
36
+ showVideoGenerationSuccess, handleGenerationError, showContentModerationWarning,
37
+ mapJobStatusToGenerationStatus,
38
+ } from "../infrastructure/utils";
39
+ export type {
40
+ IntervalOptions, StatusCheckResult, ResultValidation, ValidateResultOptions,
41
+ PhotoInput, PreparedImage, ImageSelector, VideoSaver, AlertFunction, FeatureUtilsConfig, VideoAlertFunction,
42
+ } from "../infrastructure/utils";
43
+
44
+ // Orchestration
45
+ export type {
46
+ CreditService, PaywallService, NetworkService, AuthService,
47
+ GenerationMetadata as OrchestratorGenerationMetadata, GenerationCapability as OrchestratorGenerationCapability,
48
+ OrchestratorConfig as GenerationOrchestratorConfig,
49
+ } from "../infrastructure/orchestration";
50
+ export {
51
+ GenerationOrchestrator, NetworkUnavailableError, InsufficientCreditsError, AuthenticationRequiredError,
52
+ } from "../infrastructure/orchestration";
53
+
54
+ // Providers
55
+ export {
56
+ GenerationConfigProvider,
57
+ useGenerationConfig,
58
+ type GenerationModels,
59
+ type GenerationConfigValue,
60
+ type GenerationConfigProviderProps,
61
+ } from "../infrastructure/providers";
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Presentation Layer Exports
3
+ * Hooks, components, layouts
4
+ */
5
+
6
+ // Hooks
7
+ export {
8
+ useGeneration, usePendingJobs, useBackgroundGeneration,
9
+ useGenerationFlow, useAIFeatureCallbacks,
10
+ useAIGenerateState, AIGenerateStep,
11
+ useGenerationOrchestrator, useImageGeneration, useVideoGeneration, useDualImageGeneration,
12
+ useImagePicker,
13
+ createGenerationError, getAlertMessage, parseError,
14
+ } from "../presentation/hooks";
15
+ export type {
16
+ UseGenerationOptions, UseGenerationReturn, UsePendingJobsOptions, UsePendingJobsReturn,
17
+ UseBackgroundGenerationOptions, UseBackgroundGenerationReturn, DirectExecutionResult,
18
+ UseGenerationFlowOptions, UseGenerationFlowReturn,
19
+ AIFeatureCallbacksConfig, AIFeatureCallbacks, AIFeatureGenerationResult,
20
+ GenerationStrategy, GenerationConfig, GenerationState, OrchestratorStatus,
21
+ GenerationError, GenerationErrorType, AlertMessages, UseGenerationOrchestratorReturn,
22
+ SingleImageInput, DualImageInput, ImageGenerationInput, ImageGenerationConfig,
23
+ DualImageVideoInput, VideoGenerationConfig,
24
+ DualImageGenerationConfig, DualImageGenerationReturn,
25
+ ImagePickerState, UseImagePickerOptions, UseImagePickerReturn,
26
+ UploadedImage,
27
+ } from "../presentation/hooks";
28
+
29
+ // Components
30
+ export {
31
+ GenerationProgressContent, GenerationProgressBar, PendingJobCard,
32
+ PendingJobProgressBar, PendingJobCardActions, GenerationResultContent, ResultHeader,
33
+ ResultImageCard, ResultStoryCard, ResultActions, DEFAULT_RESULT_CONFIG, PhotoStep,
34
+ DualImagePicker, PromptInput, AIGenerationHero, ExamplePrompts, ModerationSummary,
35
+ GenerateButton, ResultDisplay, AIGenerationResult, ErrorDisplay, FeatureHeader,
36
+ AIGenScreenHeader, CreditBadge, PhotoUploadCard, SettingsSheet, StyleSelector,
37
+ AspectRatioSelector, DurationSelector, GridSelector, StylePresetsGrid, AIGenerationForm,
38
+ AIGenerationConfig, ModelSelector,
39
+ createAspectRatioOptions, createDurationOptions, createStyleOptions, createStyleOptionsFromConfig,
40
+ ASPECT_RATIO_IDS, COMMON_DURATIONS,
41
+ } from "../presentation/components";
42
+ export type {
43
+ GenerationProgressContentProps, GenerationProgressBarProps, PendingJobCardProps, StatusLabels,
44
+ PendingJobProgressBarProps, PendingJobCardActionsProps, GenerationResultData, GenerationResultContentProps,
45
+ ResultHeaderProps, ResultImageCardProps, ResultStoryCardProps, ResultActionsProps, ResultConfig,
46
+ ResultHeaderConfig, ResultImageConfig, ResultStoryConfig, ResultActionsConfig, ResultLayoutConfig,
47
+ ResultActionButton, PhotoStepProps, DualImagePickerProps, PromptInputProps, AIGenerationHeroProps,
48
+ ExamplePromptsProps, ModerationSummaryProps, StylePresetsGridProps, StylePreset, GenerateButtonProps,
49
+ ResultDisplayProps, ResultDisplayAction, AIGenerationResultProps, AIGenerationResultAction,
50
+ ErrorDisplayProps, FeatureHeaderProps, AIGenScreenHeaderProps, NavigationButtonType, CreditBadgeProps,
51
+ PhotoUploadCardProps, PhotoUploadCardConfig, SettingsSheetProps, StyleSelectorProps,
52
+ AspectRatioSelectorProps, DurationSelectorProps, GridSelectorProps, GridSelectorOption,
53
+ StyleOption, AspectRatioOption, DurationValue, AspectRatioTranslations, DurationOption,
54
+ StyleTranslations, AIGenerationFormProps, AIGenerationFormTranslations,
55
+ AIGenerationConfigProps, ModelOption, ModelSelectorProps,
56
+ } from "../presentation/components";
57
+
58
+ // Layouts
59
+ export {
60
+ SingleImageFeatureLayout, SingleImageWithPromptFeatureLayout,
61
+ DualImageFeatureLayout, DualImageVideoFeatureLayout,
62
+ } from "../presentation/layouts";
63
+ export type {
64
+ ModalTranslations, BaseLayoutTranslations, PhotoUploadTranslations,
65
+ SingleImageInputRenderProps, SingleImageWithPromptInputRenderProps,
66
+ SingleImageWithPromptFeatureState, SingleImageWithPromptFeatureLayoutProps,
67
+ DualImageInputRenderProps, ResultRenderProps, CustomResultRenderProps,
68
+ SingleImageFeatureLayoutProps, DualImageFeatureLayoutProps,
69
+ DualImageVideoFeatureState, DualImageVideoFeatureLayoutProps,
70
+ } from "../presentation/layouts";
71
+
72
+ // Flow Config Types
73
+ export { DEFAULT_SINGLE_PHOTO_FLOW, DEFAULT_DUAL_PHOTO_FLOW } from "../presentation/types/flow-config.types";
74
+ export type {
75
+ PhotoStepConfig, TextInputStepConfig, PreviewStepConfig, GenerationFlowConfig,
76
+ PhotoStepData, TextInputStepData, GenerationFlowState,
77
+ } from "../presentation/types/flow-config.types";
package/src/index.ts CHANGED
@@ -3,392 +3,24 @@
3
3
  * Provider-agnostic AI generation orchestration
4
4
  */
5
5
 
6
- if (typeof __DEV__ !== "undefined" && __DEV__) console.log("📍 [LIFECYCLE] @umituz/react-native-ai-generation-content/index.ts - Module loading");
6
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
7
+ console.log("📍 [LIFECYCLE] @umituz/react-native-ai-generation-content/index.ts - Module loading");
8
+ }
7
9
 
8
- // Result Type Pattern - Functional error handling
9
- export type {
10
- Result, Success, Failure,
11
- } from "./domain/types";
12
- export {
13
- success, failure, isSuccess, isFailure, mapResult, andThen, unwrap, unwrapOr,
14
- } from "./domain/types";
10
+ // Domain Layer
11
+ export * from "./exports/domain";
15
12
 
16
- // Base Executor - Template Method Pattern
17
- export { BaseExecutor } from "./infrastructure/executors";
18
- export type { BaseExecutorOptions } from "./infrastructure/executors";
13
+ // Infrastructure Layer
14
+ export * from "./exports/infrastructure";
19
15
 
20
- export type {
21
- AIProviderConfig, IAIProvider, JobSubmission, JobStatus, AIJobStatusType, AILogEntry,
22
- SubscribeOptions, RunOptions, ImageFeatureType, VideoFeatureType, ImageFeatureInputData,
23
- VideoFeatureInputData, ProviderCapabilities, ProviderProgressInfo, INetworkService,
24
- ICreditService, IPaywallService, IAuthService, IAnalyticsService, IAppServices, PartialAppServices,
25
- IFeatureUtils,
26
- } from "./domain/interfaces";
16
+ // Presentation Layer
17
+ export * from "./exports/presentation";
27
18
 
28
- export { AIErrorType } from "./domain/entities";
19
+ // Domain Modules
20
+ export * from "./exports/domains";
29
21
 
30
- export type {
31
- AIErrorInfo, AIErrorMessages, GenerationCapability, GenerationStatus, GenerationMetadata,
32
- GenerationResult, GenerationProgress, GenerationRequest, PollingConfig, PollingState,
33
- PollingOptions, BackgroundJobStatus, BackgroundJob, AddJobInput, UpdateJobInput,
34
- JobExecutorConfig, BackgroundQueueConfig, GenerationMode,
35
- } from "./domain/entities";
36
-
37
- export { DEFAULT_POLLING_CONFIG, DEFAULT_QUEUE_CONFIG } from "./domain/entities";
38
-
39
- export type { ImageProcessingMode, ModeConfig, ModeCatalog } from "./domain/entities/processing-modes.types";
40
- export { DEFAULT_PROCESSING_MODES, getModeConfig, getFreeModes, getPremiumModes, getPromptRequiredModes } from "./domain/constants/processing-modes.constants";
41
-
42
- export {
43
- configureAppServices, updateAppServices, getAppServices, isAppServicesConfigured,
44
- resetAppServices, getNetworkService, getCreditService, getPaywallService, getAuthService, getAnalyticsService,
45
- } from "./infrastructure/config";
46
-
47
- export {
48
- providerRegistry, generationOrchestrator, pollJob, createJobPoller,
49
- executeImageFeature, hasImageFeatureSupport, executeVideoFeature, hasVideoFeatureSupport,
50
- submitVideoFeatureToQueue, executeMultiImageGeneration,
51
- } from "./infrastructure/services";
52
-
53
- export type {
54
- OrchestratorConfig, PollJobOptions, PollJobResult, ImageResultExtractor,
55
- ExecuteImageFeatureOptions, ImageFeatureResult, ImageFeatureRequest,
56
- ExecuteVideoFeatureOptions, VideoFeatureResult, VideoFeatureRequest,
57
- MultiImageGenerationInput, MultiImageGenerationResult,
58
- } from "./infrastructure/services";
59
-
60
- export {
61
- classifyError, isTransientError, isPermanentError, isResultNotReady, calculatePollingInterval,
62
- createPollingDelay, checkStatusForErrors, isJobComplete, isJobProcessing, isJobFailed,
63
- validateResult, extractOutputUrl, extractOutputUrls, extractVideoUrl, extractThumbnailUrl,
64
- extractAudioUrl, extractImageUrls, cleanBase64, addBase64Prefix, preparePhoto, preparePhotos,
65
- isValidBase64, getBase64Size, getBase64SizeMB, prepareImage, createDevCallbacks, createFeatureUtils,
66
- showVideoGenerationSuccess, handleGenerationError, showContentModerationWarning,
67
- mapJobStatusToGenerationStatus,
68
- } from "./infrastructure/utils";
22
+ // Features
23
+ export * from "./exports/features";
69
24
 
25
+ // Utils
70
26
  export { distinctBy } from "./utils/arrayUtils";
71
-
72
- export type {
73
- IntervalOptions, StatusCheckResult, ResultValidation, ValidateResultOptions,
74
- PhotoInput, PreparedImage, ImageSelector, VideoSaver, AlertFunction, FeatureUtilsConfig, VideoAlertFunction,
75
- } from "./infrastructure/utils";
76
-
77
- export {
78
- useGeneration, usePendingJobs, useBackgroundGeneration,
79
- useGenerationFlow, useAIFeatureCallbacks,
80
- useAIGenerateState, AIGenerateStep,
81
- useGenerationOrchestrator, useImageGeneration, useVideoGeneration, useDualImageGeneration,
82
- createGenerationError, getAlertMessage, parseError,
83
- } from "./presentation/hooks";
84
-
85
- export type {
86
- UseGenerationOptions, UseGenerationReturn, UsePendingJobsOptions, UsePendingJobsReturn,
87
- UseBackgroundGenerationOptions, UseBackgroundGenerationReturn, DirectExecutionResult,
88
- UseGenerationFlowOptions, UseGenerationFlowReturn,
89
- AIFeatureCallbacksConfig, AIFeatureCallbacks, AIFeatureGenerationResult,
90
- GenerationStrategy, GenerationConfig, GenerationState, OrchestratorStatus,
91
- GenerationError, GenerationErrorType, AlertMessages, UseGenerationOrchestratorReturn,
92
- SingleImageInput, DualImageInput, ImageGenerationInput, ImageGenerationConfig,
93
- DualImageVideoInput, VideoGenerationConfig,
94
- DualImageGenerationConfig, DualImageGenerationReturn,
95
- UploadedImage,
96
- } from "./presentation/hooks";
97
-
98
- export {
99
- GenerationProgressContent, GenerationProgressBar, PendingJobCard,
100
- PendingJobProgressBar, PendingJobCardActions, GenerationResultContent, ResultHeader,
101
- ResultImageCard, ResultStoryCard, ResultActions, DEFAULT_RESULT_CONFIG, PhotoStep,
102
- DualImagePicker, PromptInput, AIGenerationHero, ExamplePrompts, ModerationSummary,
103
- GenerateButton, ResultDisplay, AIGenerationResult, ErrorDisplay, FeatureHeader,
104
- AIGenScreenHeader, CreditBadge, PhotoUploadCard, SettingsSheet, StyleSelector,
105
- AspectRatioSelector, DurationSelector, GridSelector, StylePresetsGrid, AIGenerationForm,
106
- AIGenerationConfig, ModelSelector,
107
- createAspectRatioOptions, createDurationOptions, createStyleOptions, createStyleOptionsFromConfig,
108
- ASPECT_RATIO_IDS, COMMON_DURATIONS,
109
- } from "./presentation/components";
110
-
111
- export {
112
- SingleImageFeatureLayout, SingleImageWithPromptFeatureLayout,
113
- DualImageFeatureLayout, DualImageVideoFeatureLayout,
114
- } from "./presentation/layouts";
115
- export type {
116
- ModalTranslations, BaseLayoutTranslations, PhotoUploadTranslations,
117
- SingleImageInputRenderProps, SingleImageWithPromptInputRenderProps,
118
- SingleImageWithPromptFeatureState, SingleImageWithPromptFeatureLayoutProps,
119
- DualImageInputRenderProps, ResultRenderProps, CustomResultRenderProps,
120
- SingleImageFeatureLayoutProps, DualImageFeatureLayoutProps,
121
- DualImageVideoFeatureState, DualImageVideoFeatureLayoutProps,
122
- } from "./presentation/layouts";
123
-
124
- export type {
125
- GenerationProgressContentProps, GenerationProgressBarProps, PendingJobCardProps, StatusLabels,
126
- PendingJobProgressBarProps, PendingJobCardActionsProps, GenerationResultData, GenerationResultContentProps,
127
- ResultHeaderProps, ResultImageCardProps, ResultStoryCardProps, ResultActionsProps, ResultConfig,
128
- ResultHeaderConfig, ResultImageConfig, ResultStoryConfig, ResultActionsConfig, ResultLayoutConfig,
129
- ResultActionButton, PhotoStepProps, DualImagePickerProps, PromptInputProps, AIGenerationHeroProps,
130
- ExamplePromptsProps, ModerationSummaryProps, StylePresetsGridProps, StylePreset, GenerateButtonProps,
131
- ResultDisplayProps, ResultDisplayAction, AIGenerationResultProps, AIGenerationResultAction,
132
- ErrorDisplayProps, FeatureHeaderProps, AIGenScreenHeaderProps, NavigationButtonType, CreditBadgeProps,
133
- PhotoUploadCardProps, PhotoUploadCardConfig, SettingsSheetProps, StyleSelectorProps,
134
- AspectRatioSelectorProps, DurationSelectorProps, GridSelectorProps, GridSelectorOption,
135
- StyleOption, AspectRatioOption, DurationValue, AspectRatioTranslations, DurationOption,
136
- StyleTranslations, AIGenerationFormProps, AIGenerationFormTranslations,
137
- AIGenerationConfigProps, ModelOption, ModelSelectorProps,
138
- } from "./presentation/components";
139
-
140
- export { DEFAULT_SINGLE_PHOTO_FLOW, DEFAULT_DUAL_PHOTO_FLOW } from "./presentation/types/flow-config.types";
141
- export type {
142
- PhotoStepConfig, TextInputStepConfig, PreviewStepConfig, GenerationFlowConfig,
143
- PhotoStepData, TextInputStepData, GenerationFlowState,
144
- } from "./presentation/types/flow-config.types";
145
-
146
- // Prompts Domain
147
- export type {
148
- AIPromptCategory, AIPromptVariableType, AIPromptError, AIPromptResult,
149
- AIPromptVariable, AIPromptSafety, AIPromptVersion,
150
- AIPromptTemplate, CreateAIPromptTemplateParams,
151
- GeneratedPrompt, CreateGeneratedPromptParams,
152
- ITemplateRepository, IPromptHistoryRepository, IPromptGenerationService,
153
- AsyncState, AsyncActions, UseTemplateState, UseTemplateActions,
154
- UsePromptGenerationState, UsePromptGenerationActions,
155
- IdentitySegment, AnimeStyleSegment, QualitySegment,
156
- ImagePromptResult, ImagePromptBuilderOptions, AnimeSelfiePromptResult,
157
- CreatePromptOptions, MultiPersonPreservationRules, FacePreservationOptions,
158
- InteractionStyle, InteractionStyleOptions,
159
- } from "./domains/prompts";
160
- export {
161
- createPromptVersion, formatVersion,
162
- createAIPromptTemplate, updateTemplateVersion, getTemplateString,
163
- createGeneratedPrompt, isPromptRecent,
164
- TemplateRepository, PromptHistoryRepository, PromptGenerationService,
165
- useAsyncState, useTemplateRepository, usePromptGeneration,
166
- IDENTITY_SEGMENTS, IDENTITY_NEGATIVE_SEGMENTS, ANIME_STYLE_SEGMENTS,
167
- QUALITY_SEGMENTS, QUALITY_NEGATIVE_SEGMENTS, ANTI_REALISM_SEGMENTS,
168
- ANATOMY_NEGATIVE_SEGMENTS, PRESET_COLLECTIONS,
169
- ImagePromptBuilder, createAnimeSelfiePrompt, createStyleTransferPrompt,
170
- IDENTITY_PRESERVATION_CORE, PHOTOREALISTIC_RENDERING, NATURAL_POSE_GUIDELINES,
171
- MASTER_BASE_PROMPT, createPhotorealisticPrompt, createTransformationPrompt, enhanceExistingPrompt,
172
- MULTI_PERSON_PRESERVATION_RULES, createMultiPersonPrompt,
173
- buildFacePreservationPrompt, buildMinimalFacePreservationPrompt,
174
- buildInteractionStylePrompt, buildMinimalInteractionStylePrompt, getInteractionRules, getInteractionForbidden,
175
- } from "./domains/prompts";
176
-
177
- // Content Moderation Domain
178
- export type {
179
- ContentType, ModerationSeverity, AgeRating, ViolationType, ModerationRule,
180
- ModerationResult, Violation, ModerationContext, ModerationConfig,
181
- SuggestionMessages, ValidationLimits, ContentFilterResult, IContentFilter, IModerator,
182
- PatternMatch, ModerationResult as ModeratorResult,
183
- } from "./domains/content-moderation";
184
- export {
185
- contentModerationService, patternMatcherService, textModerator, imageModerator,
186
- videoModerator, voiceModerator, BaseModerator,
187
- rulesRegistry, defaultModerationRules, ContentPolicyViolationError,
188
- } from "./domains/content-moderation";
189
-
190
- // Creations Domain
191
- export type {
192
- CreationTypeId, CreationStatus, CreationCategory, CreationFilter, FilterOption, CreationStats,
193
- StatusColorKey, CreationOutput, IconName, Creation, CreationDocument,
194
- CreationType, CreationsTranslations, CreationsConfig, DocumentMapper,
195
- ICreationsRepository, CreationsSubscriptionCallback, UnsubscribeFunction, RepositoryOptions,
196
- UseCreationPersistenceConfig, UseCreationPersistenceReturn, BaseProcessingStartData, BaseProcessingResult,
197
- UseProcessingJobsPollerConfig, UseProcessingJobsPollerReturn,
198
- CreationAction, CreationCardData, CreationCardCallbacks, FilterButton, PendingJobsSectionProps,
199
- } from "./domains/creations";
200
- export {
201
- ALL_CREATION_STATUSES, ALL_CREATION_CATEGORIES, ALL_CREATION_TYPES,
202
- IMAGE_CREATION_TYPES, VIDEO_CREATION_TYPES, DEFAULT_CREATION_FILTER,
203
- MEDIA_FILTER_OPTIONS, STATUS_FILTER_OPTIONS, getTypesForCategory, getCategoryForType,
204
- getCategoryForCreation, isTypeInCategory, isVideoCreationType, isImageCreationType, calculateCreationStats,
205
- getStatusColorKey, getStatusColor, getStatusTextKey, getStatusText, isInProgress, isCompleted, isFailed,
206
- getPreviewUrl, getAllMediaUrls, hasDownloadableContent, hasVideoContent, hasAudioContent, getPrimaryMediaUrl,
207
- generateCreationId, getTypeIcon, getTypeTextKey, getTypeText, getCreationTitle, filterBySearch, sortCreations, truncateText,
208
- mapDocumentToCreation, DEFAULT_TRANSLATIONS, DEFAULT_CONFIG,
209
- CreationsRepository, createCreationsRepository,
210
- useCreations, useDeleteCreation, useCreationsFilter, useAdvancedFilter, useCreationPersistence, useProcessingJobsPoller,
211
- CreationPreview, CreationBadges, CreationActions, CreationCard, CreationThumbnail,
212
- FilterChips, CreationsFilterBar, createMediaFilterButtons, createStatusFilterButtons,
213
- CreationsHomeCard, EmptyState, PendingJobsSection,
214
- getLocalizedTitle, getFilterCategoriesFromConfig, getTranslatedTypes,
215
- CreationsGalleryScreen,
216
- } from "./domains/creations";
217
-
218
- // Face Detection Domain
219
- export type { FaceDetectionResult, FaceValidationState, FaceDetectionConfig } from "./domains/face-detection";
220
- export {
221
- FACE_DETECTION_CONFIG, FACE_DETECTION_PROMPTS,
222
- isValidFace, parseDetectionResponse, createFailedResult, createSuccessResult,
223
- analyzeImageForFace, useFaceDetection, FaceValidationStatus, FaceDetectionToggle,
224
- } from "./domains/face-detection";
225
-
226
- // Scenarios Domain
227
- export type {
228
- ScenarioOutputType, ScenarioInputType, ScenarioPromptType, GeneratingMessages, Scenario,
229
- AppScenarioConfig, ConfiguredScenario, WizardConfigOptions,
230
- CategoryNavigationContainerProps, MainCategoryScreenProps, SubCategoryScreenProps,
231
- MainCategory, SubCategory, CategoryInfo, ScenarioSelectorConfig, ScenarioPreviewTranslations,
232
- ScenarioConfig, VisualStyleOption, InspirationChipData, MagicPromptConfig,
233
- CoupleFeatureId, CoupleFeatureSelection, ScenarioData,
234
- } from "./domains/scenarios";
235
- export {
236
- createScenariosForApp, filterScenariosByOutputType, filterScenariosByCategory,
237
- getScenarioCategories, findScenarioById,
238
- configureScenarios, getConfiguredScenario, getDefaultOutputType, isScenariosConfigured, getAllConfiguredScenarios,
239
- createStoryTemplate, createCreativePrompt,
240
- WizardInputType, detectWizardInputType, SCENARIO_TO_WIZARD_INPUT_MAP,
241
- getScenarioWizardConfig, hasExplicitConfig, getScenarioWizardInputType, registerWizardConfig,
242
- CategoryNavigationContainer, ScenarioPreviewScreen, MainCategoryScreen, SubCategoryScreen, HierarchicalScenarioListScreen,
243
- } from "./domains/scenarios";
244
-
245
- // Access Control Domain
246
- export type { AIFeatureGateOptions, AIFeatureGateReturn, AIFeatureGateHook } from "./domains/access-control";
247
- export { useAIFeatureGate } from "./domains/access-control";
248
-
249
- // Orchestration Infrastructure (GenerationOrchestrator class)
250
- export type {
251
- CreditService, PaywallService, NetworkService, AuthService,
252
- GenerationMetadata as OrchestratorGenerationMetadata, GenerationCapability as OrchestratorGenerationCapability,
253
- OrchestratorConfig as GenerationOrchestratorConfig,
254
- } from "./infrastructure/orchestration";
255
- export {
256
- GenerationOrchestrator, NetworkUnavailableError, InsufficientCreditsError, AuthenticationRequiredError,
257
- } from "./infrastructure/orchestration";
258
-
259
- export {
260
- GenerationConfigProvider,
261
- useGenerationConfig,
262
- type GenerationModels,
263
- type GenerationConfigValue,
264
- type GenerationConfigProviderProps,
265
- } from "./infrastructure/providers";
266
-
267
- // Result Preview Domain (screens and additional components not in presentation/components)
268
- export type {
269
- ResultData, ResultActionsCallbacks, ResultDisplayState,
270
- ResultActionBarProps, RecentCreation, ResultPreviewScreenProps, ResultPreviewTranslations,
271
- UseResultActionsOptions, UseResultActionsReturn,
272
- StarRatingPickerProps, GenerationErrorTranslations, GenerationErrorConfig, GenerationErrorScreenProps,
273
- } from "./domains/result-preview";
274
- export {
275
- ResultPreviewScreen, ResultActionBar, RecentCreationsSection,
276
- GenerationErrorScreen, StarRatingPicker, useResultActions,
277
- } from "./domains/result-preview";
278
-
279
- // Generation Domain (wizard, flow, strategy)
280
- export type {
281
- UseAIGenerationProps, UseAIGenerationReturn, AlertMessages as GenerationAlertMessages,
282
- FeatureConfig, FeatureRegistration, GenerationType, InputType, OutputType, VisualStyleConfig,
283
- GenerationExecutor, GenerationOptions as GenerationExecutorOptions,
284
- GenerationResult as GenerationExecutorResult,
285
- ImageGenerationOutput, VideoGenerationInput, VideoGenerationOutput,
286
- MemeGenerationInput, MemeGenerationOutput, TextToImageInput, TextToImageOutput, ExecutorGenerationType,
287
- BaseStepConfig, AuthGateStepConfig, CreditGateStepConfig, PhotoUploadStepConfig,
288
- TextInputStepConfig as WizardTextInputStepConfig, SelectionStepConfig,
289
- PreviewStepConfig as WizardPreviewStepConfig, WizardStepConfig,
290
- WizardFeatureConfig, ScenarioBasedConfig,
291
- UsePhotoUploadStateProps, UsePhotoUploadStateReturn, PhotoUploadConfig,
292
- PhotoUploadTranslations as WizardPhotoUploadTranslations,
293
- UseWizardGenerationProps, UseWizardGenerationReturn, WizardScenarioData, WizardOutputType,
294
- GenericWizardFlowProps, TextInputScreenTranslations, TextInputScreenConfig, TextInputScreenProps,
295
- FlowStoreType,
296
- GateResult, AuthGateConfig, CreditGateConfig, FlowState, FlowActions, FlowCallbacks,
297
- FlowConfiguration, StepDefinition,
298
- } from "./domains/generation";
299
- export {
300
- useAIGeneration, featureRegistry, createGenerationStrategy, ExecutorFactory,
301
- buildWizardConfigFromScenario, WIZARD_PRESETS, buildFlowStepsFromWizard, getPhotoUploadCount,
302
- getStepConfig, quickBuildWizard, usePhotoUploadState, useWizardGeneration,
303
- GenericWizardFlow, GeneratingScreen, TextInputScreen,
304
- TEXT_TO_IMAGE_WIZARD_CONFIG, TEXT_TO_VIDEO_WIZARD_CONFIG, IMAGE_TO_VIDEO_WIZARD_CONFIG,
305
- createFlowStore, useFlow, resetFlowStore,
306
- StepType,
307
- } from "./domains/generation";
308
-
309
- // Features - Text-to-Image
310
- export type {
311
- AspectRatio, ImageSize, OutputFormat, NumImages, StyleOption as TextToImageStyleOption,
312
- TextToImageFormState, TextToImageFormActions, TextToImageFormDefaults,
313
- TextToImageGenerationRequest, TextToImageGenerationResult, TextToImageGenerationResultSuccess,
314
- TextToImageGenerationResultError, TextToImageCallbacks, TextToImageFormConfig, TextToImageTranslations,
315
- TextToImageOptions, TextToImageRequest, TextToImageResult, TextToImageFeatureState,
316
- TextToImageInputBuilder, TextToImageResultExtractor, TextToImageFeatureConfig,
317
- PromptSuggestion, ExecuteTextToImageOptions, UseFormStateOptions, UseFormStateReturn,
318
- TextToImageGenerationState,
319
- UseGenerationOptions as TextToImageUseGenerationOptions,
320
- UseGenerationReturn as TextToImageUseGenerationReturn,
321
- UseTextToImageFormOptions, UseTextToImageFormReturn,
322
- TextToImagePromptInputProps, TextToImageExamplePromptsProps, TextToImageStyleSelectorProps,
323
- TextToImageAspectRatioSelectorProps, TextToImageGenerateButtonProps, TextToImageSettingsSheetProps,
324
- } from "./features/text-to-image";
325
- export {
326
- DEFAULT_IMAGE_STYLES, DEFAULT_NUM_IMAGES_OPTIONS, ASPECT_RATIO_VALUES, IMAGE_SIZE_VALUES,
327
- OUTPUT_FORMAT_VALUES, DEFAULT_FORM_VALUES, DEFAULT_TEXT_TO_IMAGE_PROMPTS, DEFAULT_TEXT_TO_VOICE_PROMPTS,
328
- executeTextToImage, hasTextToImageSupport,
329
- useFormState as useTextToImageFormState,
330
- useGeneration as useTextToImageGeneration,
331
- useTextToImageForm,
332
- TextToImagePromptInput, TextToImageExamplePrompts, TextToImageNumImagesSelector,
333
- TextToImageStyleSelector, TextToImageAspectRatioSelector, TextToImageSizeSelector,
334
- TextToImageOutputFormatSelector, TextToImageGenerateButton, TextToImageSettingsSheet,
335
- } from "./features/text-to-image";
336
-
337
- // Features - Text-to-Video
338
- export type {
339
- TextToVideoOptions, TextToVideoRequest, TextToVideoResult, TextToVideoFeatureState,
340
- TextToVideoFormState, TextToVideoGenerationState, TextToVideoTranslations,
341
- TextToVideoInputBuilder, TextToVideoResultExtractor, TextToVideoConfig, TextToVideoCallbacks,
342
- TabConfig, VideoStyleOption, AspectRatioOption as TextToVideoAspectRatioOption,
343
- VideoDurationOption, OptionToggleConfig, HeroConfig, ProgressConfig,
344
- FrameData, VideoModerationResult, ProjectData, CreationData, GenerationStartData,
345
- GenerationTabsProps, FrameSelectorProps, OptionsPanelProps, HeroSectionProps,
346
- HintCarouselProps, HintItem,
347
- ExamplePromptsProps as TextToVideoExamplePromptsProps,
348
- ExamplePrompt,
349
- UseTextToVideoFeatureProps, UseTextToVideoFeatureReturn, TextToVideoGenerateParams,
350
- UseTextToVideoFormProps, UseTextToVideoFormReturn, ExecuteTextToVideoOptions,
351
- } from "./features/text-to-video";
352
- export {
353
- INITIAL_FORM_STATE, INITIAL_GENERATION_STATE,
354
- executeTextToVideo, hasTextToVideoSupport,
355
- useTextToVideoFeature, useTextToVideoForm,
356
- GenerationTabs, FrameSelector, OptionsPanel, HeroSection, HintCarousel,
357
- } from "./features/text-to-video";
358
-
359
- // Features - Image-to-Video
360
- export type {
361
- AnimationStyle, AnimationStyleId, MusicMood, MusicMoodId,
362
- VideoDuration, DurationOption as ImageToVideoDurationOption,
363
- ImageToVideoFormState, ImageToVideoFormActions, ImageToVideoFormDefaults,
364
- ImageToVideoCallbacks, ImageToVideoFormConfig, ImageToVideoTranslationsExtended,
365
- ImageToVideoOptions, ImageToVideoGenerateParams, ImageToVideoRequest, ImageToVideoResult,
366
- ImageToVideoGenerationState, ImageToVideoFeatureState, ImageToVideoTranslations,
367
- ImageToVideoInputBuilder, ImageToVideoResultExtractor, ImageToVideoFeatureCallbacks,
368
- ImageToVideoGenerationStartData, ImageToVideoCreationData, ImageToVideoFeatureConfig,
369
- ExecuteImageToVideoOptions, UseImageToVideoFormStateOptions, UseImageToVideoFormStateReturn,
370
- UseImageToVideoGenerationOptions, UseImageToVideoGenerationReturn,
371
- UseImageToVideoFormOptions, UseImageToVideoFormReturn,
372
- UseImageToVideoFeatureProps, UseImageToVideoFeatureReturn,
373
- ImageToVideoAnimationStyleSelectorProps, ImageToVideoDurationSelectorProps,
374
- ImageToVideoMusicMoodSelectorProps, ImageToVideoSelectionGridProps,
375
- ImageToVideoSelectionGridTranslations, ImageToVideoGenerateButtonProps,
376
- } from "./features/image-to-video";
377
- export {
378
- IMAGE_TO_VIDEO_ANIMATION_STYLES, IMAGE_TO_VIDEO_DEFAULT_ANIMATION,
379
- IMAGE_TO_VIDEO_MUSIC_MOODS, IMAGE_TO_VIDEO_DEFAULT_MUSIC,
380
- IMAGE_TO_VIDEO_DURATION_OPTIONS, IMAGE_TO_VIDEO_DEFAULT_DURATION,
381
- IMAGE_TO_VIDEO_FORM_DEFAULTS, IMAGE_TO_VIDEO_CONFIG,
382
- executeImageToVideo, hasImageToVideoSupport,
383
- useImageToVideoFormState, useImageToVideoGeneration, useImageToVideoForm, useImageToVideoFeature,
384
- ImageToVideoAnimationStyleSelector, ImageToVideoDurationSelector,
385
- ImageToVideoMusicMoodSelector, ImageToVideoSelectionGrid, ImageToVideoGenerateButton,
386
- } from "./features/image-to-video";
387
-
388
- // Wizard Flows - Direct exports
389
- export { TextToImageWizardFlow } from "./features/text-to-image/presentation/screens/TextToImageWizardFlow";
390
- export type { TextToImageWizardFlowProps } from "./features/text-to-image/presentation/screens/TextToImageWizardFlow";
391
- export { TextToVideoWizardFlow } from "./features/text-to-video/presentation/screens/TextToVideoWizardFlow";
392
- export type { TextToVideoWizardFlowProps } from "./features/text-to-video/presentation/screens/TextToVideoWizardFlow";
393
- export { ImageToVideoWizardFlow } from "./features/image-to-video/presentation/screens/ImageToVideoWizardFlow";
394
- export type { ImageToVideoWizardFlowProps } from "./features/image-to-video/presentation/screens/ImageToVideoWizardFlow";
@@ -10,6 +10,7 @@ export { useGenerationOrchestrator } from "./orchestrator";
10
10
  export { useImageGeneration } from "./useImageGeneration";
11
11
  export { useVideoGeneration } from "./useVideoGeneration";
12
12
  export { useDualImageGeneration } from "./useDualImageGeneration";
13
+ export { useImagePicker } from "./useImagePicker";
13
14
 
14
15
  // Types
15
16
  export type {
@@ -45,6 +46,12 @@ export type {
45
46
  DualImageGenerationReturn,
46
47
  } from "./useDualImageGeneration";
47
48
 
49
+ export type {
50
+ ImagePickerState,
51
+ UseImagePickerOptions,
52
+ UseImagePickerReturn,
53
+ } from "./useImagePicker";
54
+
48
55
  // Error utilities
49
56
  export {
50
57
  createGenerationError,
@@ -5,55 +5,18 @@
5
5
  */
6
6
 
7
7
  import { useState, useCallback, useMemo } from "react";
8
- import {
9
- MediaPickerService,
10
- MediaQuality,
11
- useAlert,
12
- saveImageToGallery,
13
- } from "@umituz/react-native-design-system";
8
+ import { useAlert, saveImageToGallery } from "@umituz/react-native-design-system";
14
9
  import { useGenerationOrchestrator } from "./orchestrator";
10
+ import { useImagePicker } from "./useImagePicker";
15
11
  import { executeMultiImageGeneration } from "../../../infrastructure/services/multi-image-generation.executor";
16
- import { prepareImage } from "../../../infrastructure/utils/feature-utils";
17
- import type { GenerationStrategy, AlertMessages } from "./types";
18
-
19
- declare const __DEV__: boolean;
20
-
21
- export interface DualImageGenerationConfig {
22
- /** AI model to use */
23
- readonly model: string;
24
- /** Function that returns the prompt (can depend on external state) */
25
- readonly getPrompt: () => string;
26
- /** User ID for credit operations */
27
- readonly userId: string | undefined;
28
- /** Credit cost per generation */
29
- readonly creditCost: number;
30
- /** Alert messages */
31
- readonly alertMessages: AlertMessages;
32
- /** Image aspect ratio for picker */
33
- readonly imageAspect?: [number, number];
34
- /** Callbacks */
35
- readonly onCreditsExhausted?: () => void;
36
- readonly onSuccess?: (imageUrl: string) => void;
37
- readonly onError?: (error: string) => void;
38
- }
39
-
40
- export interface DualImageGenerationReturn {
41
- readonly sourceImageUri: string | null;
42
- readonly targetImageUri: string | null;
43
- readonly processedUrl: string | null;
44
- readonly isProcessing: boolean;
45
- readonly progress: number;
46
- selectSourceImage(): Promise<void>;
47
- selectTargetImage(): Promise<void>;
48
- process(): Promise<void>;
49
- save(): Promise<void>;
50
- reset(): void;
51
- }
52
-
53
- interface GenerationInput {
54
- sourceBase64: string;
55
- targetBase64: string;
56
- }
12
+ import type { GenerationStrategy } from "./types";
13
+ import type {
14
+ DualImageGenerationConfig,
15
+ DualImageGenerationReturn,
16
+ GenerationInput,
17
+ } from "./useDualImageGeneration.types";
18
+
19
+ export type { DualImageGenerationConfig, DualImageGenerationReturn } from "./useDualImageGeneration.types";
57
20
 
58
21
  export const useDualImageGeneration = (
59
22
  config: DualImageGenerationConfig,
@@ -71,14 +34,19 @@ export const useDualImageGeneration = (
71
34
  } = config;
72
35
 
73
36
  const { showError, showSuccess } = useAlert();
74
-
75
- // Image state
76
- const [sourceImageUri, setSourceImageUri] = useState<string | null>(null);
77
- const [targetImageUri, setTargetImageUri] = useState<string | null>(null);
78
- const [sourceBase64, setSourceBase64] = useState<string | null>(null);
79
- const [targetBase64, setTargetBase64] = useState<string | null>(null);
80
37
  const [progress, setProgress] = useState(0);
81
38
 
39
+ // Image pickers
40
+ const sourceImage = useImagePicker({
41
+ aspect: imageAspect,
42
+ onError: () => showError("Error", "Failed to select image"),
43
+ });
44
+
45
+ const targetImage = useImagePicker({
46
+ aspect: imageAspect,
47
+ onError: () => showError("Error", "Failed to select image"),
48
+ });
49
+
82
50
  // Generation strategy for orchestrator
83
51
  const strategy: GenerationStrategy<GenerationInput, string> = useMemo(
84
52
  () => ({
@@ -112,67 +80,25 @@ export const useDualImageGeneration = (
112
80
  onError: (error) => onError?.(error.message),
113
81
  });
114
82
 
115
- // Image selection handlers
116
- const selectSourceImage = useCallback(async () => {
117
- try {
118
- const result = await MediaPickerService.pickSingleImage({
119
- allowsEditing: true,
120
- quality: MediaQuality.HIGH,
121
- aspect: imageAspect,
122
- });
123
-
124
- if (!result.canceled && result.assets?.[0]) {
125
- const asset = result.assets[0];
126
- setSourceImageUri(asset.uri);
127
- const base64 = await prepareImage(asset.uri);
128
- setSourceBase64(base64);
129
- }
130
- } catch (error) {
131
- if (typeof __DEV__ !== "undefined" && __DEV__) {
132
- console.error("[DualImageGeneration] Source image error:", error);
133
- }
134
- showError("Error", "Failed to select image");
135
- }
136
- }, [imageAspect, showError]);
137
-
138
- const selectTargetImage = useCallback(async () => {
139
- try {
140
- const result = await MediaPickerService.pickSingleImage({
141
- allowsEditing: true,
142
- quality: MediaQuality.HIGH,
143
- aspect: imageAspect,
144
- });
145
-
146
- if (!result.canceled && result.assets?.[0]) {
147
- const asset = result.assets[0];
148
- setTargetImageUri(asset.uri);
149
- const base64 = await prepareImage(asset.uri);
150
- setTargetBase64(base64);
151
- }
152
- } catch (error) {
153
- if (typeof __DEV__ !== "undefined" && __DEV__) {
154
- console.error("[DualImageGeneration] Target image error:", error);
155
- }
156
- showError("Error", "Failed to select image");
157
- }
158
- }, [imageAspect, showError]);
159
-
160
83
  // Process handler
161
84
  const process = useCallback(async () => {
162
- if (!sourceBase64 || !targetBase64) {
85
+ if (!sourceImage.base64 || !targetImage.base64) {
163
86
  showError("Missing Photos", "Please upload both photos");
164
87
  return;
165
88
  }
166
89
 
167
90
  setProgress(10);
168
91
  try {
169
- await orchestrator.generate({ sourceBase64, targetBase64 });
92
+ await orchestrator.generate({
93
+ sourceBase64: sourceImage.base64,
94
+ targetBase64: targetImage.base64,
95
+ });
170
96
  } catch {
171
97
  setProgress(0);
172
98
  }
173
- }, [sourceBase64, targetBase64, orchestrator, showError]);
99
+ }, [sourceImage.base64, targetImage.base64, orchestrator, showError]);
174
100
 
175
- // Save handler - uses design-system saveImageToGallery
101
+ // Save handler
176
102
  const save = useCallback(async () => {
177
103
  if (!orchestrator.result) return;
178
104
 
@@ -186,22 +112,20 @@ export const useDualImageGeneration = (
186
112
 
187
113
  // Reset handler
188
114
  const reset = useCallback(() => {
189
- setSourceImageUri(null);
190
- setTargetImageUri(null);
191
- setSourceBase64(null);
192
- setTargetBase64(null);
115
+ sourceImage.reset();
116
+ targetImage.reset();
193
117
  setProgress(0);
194
118
  orchestrator.reset();
195
- }, [orchestrator]);
119
+ }, [sourceImage, targetImage, orchestrator]);
196
120
 
197
121
  return {
198
- sourceImageUri,
199
- targetImageUri,
122
+ sourceImageUri: sourceImage.uri,
123
+ targetImageUri: targetImage.uri,
200
124
  processedUrl: orchestrator.result,
201
125
  isProcessing: orchestrator.isGenerating,
202
126
  progress,
203
- selectSourceImage,
204
- selectTargetImage,
127
+ selectSourceImage: sourceImage.pick,
128
+ selectTargetImage: targetImage.pick,
205
129
  process,
206
130
  save,
207
131
  reset,
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Types for useDualImageGeneration Hook
3
+ */
4
+
5
+ import type { AlertMessages } from "./types";
6
+
7
+ export interface DualImageGenerationConfig {
8
+ /** AI model to use */
9
+ readonly model: string;
10
+ /** Function that returns the prompt (can depend on external state) */
11
+ readonly getPrompt: () => string;
12
+ /** User ID for credit operations */
13
+ readonly userId: string | undefined;
14
+ /** Credit cost per generation */
15
+ readonly creditCost: number;
16
+ /** Alert messages */
17
+ readonly alertMessages: AlertMessages;
18
+ /** Image aspect ratio for picker */
19
+ readonly imageAspect?: [number, number];
20
+ /** Callbacks */
21
+ readonly onCreditsExhausted?: () => void;
22
+ readonly onSuccess?: (imageUrl: string) => void;
23
+ readonly onError?: (error: string) => void;
24
+ }
25
+
26
+ export interface DualImageGenerationReturn {
27
+ readonly sourceImageUri: string | null;
28
+ readonly targetImageUri: string | null;
29
+ readonly processedUrl: string | null;
30
+ readonly isProcessing: boolean;
31
+ readonly progress: number;
32
+ selectSourceImage(): Promise<void>;
33
+ selectTargetImage(): Promise<void>;
34
+ process(): Promise<void>;
35
+ save(): Promise<void>;
36
+ reset(): void;
37
+ }
38
+
39
+ export interface GenerationInput {
40
+ sourceBase64: string;
41
+ targetBase64: string;
42
+ }
@@ -0,0 +1,75 @@
1
+ /**
2
+ * useImagePicker Hook
3
+ * Reusable hook for picking and preparing images with base64 conversion
4
+ */
5
+
6
+ import { useState, useCallback } from "react";
7
+ import { MediaPickerService, MediaQuality } from "@umituz/react-native-design-system";
8
+ import { prepareImage } from "../../../infrastructure/utils/feature-utils";
9
+
10
+ declare const __DEV__: boolean;
11
+
12
+ export interface ImagePickerState {
13
+ readonly uri: string | null;
14
+ readonly base64: string | null;
15
+ }
16
+
17
+ export interface UseImagePickerOptions {
18
+ readonly aspect?: [number, number];
19
+ readonly onError?: (error: Error) => void;
20
+ }
21
+
22
+ export interface UseImagePickerReturn {
23
+ readonly uri: string | null;
24
+ readonly base64: string | null;
25
+ readonly isLoading: boolean;
26
+ pick(): Promise<void>;
27
+ reset(): void;
28
+ }
29
+
30
+ export const useImagePicker = (options: UseImagePickerOptions = {}): UseImagePickerReturn => {
31
+ const { aspect = [1, 1], onError } = options;
32
+
33
+ const [uri, setUri] = useState<string | null>(null);
34
+ const [base64, setBase64] = useState<string | null>(null);
35
+ const [isLoading, setIsLoading] = useState(false);
36
+
37
+ const pick = useCallback(async () => {
38
+ try {
39
+ setIsLoading(true);
40
+ const result = await MediaPickerService.pickSingleImage({
41
+ allowsEditing: true,
42
+ quality: MediaQuality.HIGH,
43
+ aspect,
44
+ });
45
+
46
+ if (!result.canceled && result.assets?.[0]) {
47
+ const asset = result.assets[0];
48
+ setUri(asset.uri);
49
+ const preparedBase64 = await prepareImage(asset.uri);
50
+ setBase64(preparedBase64);
51
+ }
52
+ } catch (error) {
53
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
54
+ console.error("[useImagePicker] Error:", error);
55
+ }
56
+ onError?.(error as Error);
57
+ } finally {
58
+ setIsLoading(false);
59
+ }
60
+ }, [aspect, onError]);
61
+
62
+ const reset = useCallback(() => {
63
+ setUri(null);
64
+ setBase64(null);
65
+ setIsLoading(false);
66
+ }, []);
67
+
68
+ return {
69
+ uri,
70
+ base64,
71
+ isLoading,
72
+ pick,
73
+ reset,
74
+ };
75
+ };
@@ -8,6 +8,7 @@ export {
8
8
  useImageGeneration,
9
9
  useVideoGeneration,
10
10
  useDualImageGeneration,
11
+ useImagePicker,
11
12
  createGenerationError,
12
13
  getAlertMessage,
13
14
  parseError,
@@ -31,6 +32,9 @@ export type {
31
32
  VideoGenerationConfig,
32
33
  DualImageGenerationConfig,
33
34
  DualImageGenerationReturn,
35
+ ImagePickerState,
36
+ UseImagePickerOptions,
37
+ UseImagePickerReturn,
34
38
  } from "./generation";
35
39
 
36
40
  export { useGeneration } from "./use-generation";