@umituz/react-native-ai-generation-content 1.26.1 → 1.26.4

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.
Files changed (328) hide show
  1. package/package.json +3 -2
  2. package/src/domains/generation/application/feature-registry.ts +101 -0
  3. package/src/domains/generation/application/generation-strategy.factory.ts +128 -0
  4. package/src/domains/generation/domain/feature-config.types.ts +61 -0
  5. package/src/domains/generation/domain/generation.types.ts +74 -0
  6. package/src/domains/generation/index.ts +37 -0
  7. package/src/domains/generation/presentation/useAIGeneration.hook.ts +106 -0
  8. package/src/domains/wizard/infrastructure/strategies/wizard-strategy.factory.ts +3 -4
  9. package/src/index.ts +1 -25
  10. package/src/infrastructure/executors/executor-factory.ts +53 -0
  11. package/src/infrastructure/executors/image-executor.ts +133 -0
  12. package/src/infrastructure/executors/video-executor.ts +130 -0
  13. package/src/infrastructure/providers/generation-config.provider.tsx +20 -9
  14. package/src/features/ai-hug/README.md +0 -438
  15. package/src/features/ai-hug/domain/index.ts +0 -5
  16. package/src/features/ai-hug/domain/types/ai-hug.types.ts +0 -25
  17. package/src/features/ai-hug/domain/types/index.ts +0 -7
  18. package/src/features/ai-hug/index.ts +0 -19
  19. package/src/features/ai-hug/presentation/components/AIHugFeature.tsx +0 -77
  20. package/src/features/ai-hug/presentation/components/index.ts +0 -2
  21. package/src/features/ai-hug/presentation/hooks/index.ts +0 -9
  22. package/src/features/ai-hug/presentation/hooks/useAIHugFeature.ts +0 -34
  23. package/src/features/ai-hug/presentation/index.ts +0 -6
  24. package/src/features/ai-kiss/README.md +0 -445
  25. package/src/features/ai-kiss/domain/index.ts +0 -5
  26. package/src/features/ai-kiss/domain/types/ai-kiss.types.ts +0 -25
  27. package/src/features/ai-kiss/domain/types/index.ts +0 -7
  28. package/src/features/ai-kiss/index.ts +0 -19
  29. package/src/features/ai-kiss/presentation/components/AIKissFeature.tsx +0 -77
  30. package/src/features/ai-kiss/presentation/components/index.ts +0 -2
  31. package/src/features/ai-kiss/presentation/hooks/index.ts +0 -9
  32. package/src/features/ai-kiss/presentation/hooks/useAIKissFeature.ts +0 -34
  33. package/src/features/ai-kiss/presentation/index.ts +0 -6
  34. package/src/features/anime-selfie/README.md +0 -396
  35. package/src/features/anime-selfie/domain/index.ts +0 -5
  36. package/src/features/anime-selfie/domain/types/anime-selfie.types.ts +0 -52
  37. package/src/features/anime-selfie/domain/types/index.ts +0 -8
  38. package/src/features/anime-selfie/index.ts +0 -20
  39. package/src/features/anime-selfie/presentation/components/AnimeSelfieFeature.tsx +0 -86
  40. package/src/features/anime-selfie/presentation/components/index.ts +0 -2
  41. package/src/features/anime-selfie/presentation/hooks/index.ts +0 -9
  42. package/src/features/anime-selfie/presentation/hooks/useAnimeSelfieFeature.ts +0 -59
  43. package/src/features/anime-selfie/presentation/index.ts +0 -6
  44. package/src/features/couple-future/README.md +0 -445
  45. package/src/features/couple-future/domain/types.ts +0 -63
  46. package/src/features/couple-future/domain/wizard-config.adapter.ts +0 -76
  47. package/src/features/couple-future/domain/wizard.types.ts +0 -121
  48. package/src/features/couple-future/index.ts +0 -83
  49. package/src/features/couple-future/infrastructure/coupleFeatureRegistry.ts +0 -76
  50. package/src/features/couple-future/infrastructure/couplePromptEnhancer.ts +0 -100
  51. package/src/features/couple-future/infrastructure/executor.ts +0 -188
  52. package/src/features/couple-future/infrastructure/generationUtils.ts +0 -228
  53. package/src/features/couple-future/presentation/components/ArtStyleSelector.tsx +0 -146
  54. package/src/features/couple-future/presentation/components/ArtistStyleSelector.tsx +0 -122
  55. package/src/features/couple-future/presentation/components/CoupleFutureWizard.tsx +0 -239
  56. package/src/features/couple-future/presentation/components/GeneratingStepContent.tsx +0 -86
  57. package/src/features/couple-future/presentation/components/RomanticMoodSelector.tsx +0 -147
  58. package/src/features/couple-future/presentation/components/WardrobeSelector.tsx +0 -141
  59. package/src/features/couple-future/presentation/components/index.ts +0 -12
  60. package/src/features/couple-future/presentation/hooks/useCoupleFutureFlow.ts +0 -166
  61. package/src/features/couple-future/presentation/hooks/useCoupleFutureFlow.types.ts +0 -69
  62. package/src/features/couple-future/presentation/hooks/useCoupleFutureHandlers.ts +0 -117
  63. package/src/features/couple-future/presentation/screens/CoupleFeatureScreen.tsx +0 -113
  64. package/src/features/face-swap/README.md +0 -431
  65. package/src/features/face-swap/domain/index.ts +0 -5
  66. package/src/features/face-swap/domain/types/face-swap.types.ts +0 -26
  67. package/src/features/face-swap/domain/types/index.ts +0 -7
  68. package/src/features/face-swap/index.ts +0 -19
  69. package/src/features/face-swap/presentation/components/FaceSwapFeature.tsx +0 -87
  70. package/src/features/face-swap/presentation/components/index.ts +0 -2
  71. package/src/features/face-swap/presentation/hooks/index.ts +0 -6
  72. package/src/features/face-swap/presentation/hooks/useFaceSwapFeature.ts +0 -35
  73. package/src/features/face-swap/presentation/index.ts +0 -6
  74. package/src/features/hd-touch-up/README.md +0 -396
  75. package/src/features/hd-touch-up/domain/index.ts +0 -1
  76. package/src/features/hd-touch-up/domain/types/hd-touch-up.types.ts +0 -62
  77. package/src/features/hd-touch-up/domain/types/index.ts +0 -9
  78. package/src/features/hd-touch-up/index.ts +0 -21
  79. package/src/features/hd-touch-up/presentation/components/HDTouchUpFeature.tsx +0 -86
  80. package/src/features/hd-touch-up/presentation/components/index.ts +0 -2
  81. package/src/features/hd-touch-up/presentation/hooks/index.ts +0 -1
  82. package/src/features/hd-touch-up/presentation/hooks/useHDTouchUpFeature.ts +0 -23
  83. package/src/features/hd-touch-up/presentation/index.ts +0 -2
  84. package/src/features/image-to-image/README.md +0 -459
  85. package/src/features/image-to-image/domain/index.ts +0 -1
  86. package/src/features/image-to-image/domain/types/base.types.ts +0 -48
  87. package/src/features/image-to-image/domain/types/index.ts +0 -1
  88. package/src/features/image-to-image/domain/types/partials/config.types.ts +0 -37
  89. package/src/features/image-to-image/domain/types/partials/hook.types.ts +0 -53
  90. package/src/features/image-to-image/domain/types/partials/metadata.types.ts +0 -32
  91. package/src/features/image-to-image/domain/types/partials/result.types.ts +0 -44
  92. package/src/features/image-to-image/domain/types/partials/state.types.ts +0 -34
  93. package/src/features/image-to-image/domain/types/partials/translation.types.ts +0 -57
  94. package/src/features/image-to-image/index.ts +0 -2
  95. package/src/features/image-to-image/presentation/hooks/index.ts +0 -3
  96. package/src/features/image-to-image/presentation/hooks/useDualImageFeature.ts +0 -204
  97. package/src/features/image-to-image/presentation/hooks/useImageWithPromptFeature.ts +0 -223
  98. package/src/features/image-to-image/presentation/hooks/useSingleImageFeature.ts +0 -166
  99. package/src/features/image-to-image/presentation/index.ts +0 -1
  100. package/src/features/image-to-video/README.md +0 -414
  101. package/src/features/image-to-video/domain/constants/animation.constants.ts +0 -47
  102. package/src/features/image-to-video/domain/constants/duration.constants.ts +0 -13
  103. package/src/features/image-to-video/domain/constants/form.constants.ts +0 -22
  104. package/src/features/image-to-video/domain/constants/index.ts +0 -23
  105. package/src/features/image-to-video/domain/constants/music.constants.ts +0 -53
  106. package/src/features/image-to-video/domain/index.ts +0 -5
  107. package/src/features/image-to-video/domain/types/animation.types.ts +0 -20
  108. package/src/features/image-to-video/domain/types/config.types.ts +0 -56
  109. package/src/features/image-to-video/domain/types/duration.types.ts +0 -11
  110. package/src/features/image-to-video/domain/types/form.types.ts +0 -35
  111. package/src/features/image-to-video/domain/types/image-to-video.types.ts +0 -122
  112. package/src/features/image-to-video/domain/types/index.ts +0 -39
  113. package/src/features/image-to-video/domain/types/music.types.ts +0 -21
  114. package/src/features/image-to-video/index.ts +0 -116
  115. package/src/features/image-to-video/infrastructure/index.ts +0 -1
  116. package/src/features/image-to-video/infrastructure/services/image-to-video-executor.ts +0 -154
  117. package/src/features/image-to-video/infrastructure/services/index.ts +0 -5
  118. package/src/features/image-to-video/presentation/components/AddMoreCard.tsx +0 -52
  119. package/src/features/image-to-video/presentation/components/AnimationStyleSelector.tsx +0 -135
  120. package/src/features/image-to-video/presentation/components/DurationSelector.tsx +0 -110
  121. package/src/features/image-to-video/presentation/components/EmptyGridState.tsx +0 -69
  122. package/src/features/image-to-video/presentation/components/GridImageItem.tsx +0 -64
  123. package/src/features/image-to-video/presentation/components/ImageSelectionGrid.styles.ts +0 -84
  124. package/src/features/image-to-video/presentation/components/ImageSelectionGrid.tsx +0 -77
  125. package/src/features/image-to-video/presentation/components/ImageSelectionGrid.types.ts +0 -18
  126. package/src/features/image-to-video/presentation/components/MusicMoodSelector.tsx +0 -181
  127. package/src/features/image-to-video/presentation/components/index.ts +0 -30
  128. package/src/features/image-to-video/presentation/hooks/index.ts +0 -27
  129. package/src/features/image-to-video/presentation/hooks/useFormState.ts +0 -116
  130. package/src/features/image-to-video/presentation/hooks/useGeneration.ts +0 -85
  131. package/src/features/image-to-video/presentation/hooks/useGenerationExecution.ts +0 -143
  132. package/src/features/image-to-video/presentation/hooks/useImageToVideoFeature.ts +0 -107
  133. package/src/features/image-to-video/presentation/hooks/useImageToVideoForm.ts +0 -119
  134. package/src/features/image-to-video/presentation/hooks/useImageToVideoValidation.ts +0 -46
  135. package/src/features/image-to-video/presentation/index.ts +0 -5
  136. package/src/features/love-message/domain/constants.ts +0 -162
  137. package/src/features/love-message/domain/types.ts +0 -58
  138. package/src/features/love-message/index.ts +0 -37
  139. package/src/features/love-message/infrastructure/persistence/PartnerProfileRepository.ts +0 -52
  140. package/src/features/love-message/infrastructure/prompts/messagePromptBuilder.ts +0 -109
  141. package/src/features/love-message/infrastructure/services/LoveMessageService.ts +0 -35
  142. package/src/features/love-message/presentation/components/CategoryGrid.tsx +0 -88
  143. package/src/features/love-message/presentation/components/DetailsInput.tsx +0 -74
  144. package/src/features/love-message/presentation/components/ExploreHeader.tsx +0 -67
  145. package/src/features/love-message/presentation/components/FieldInput.tsx +0 -83
  146. package/src/features/love-message/presentation/components/GeneratorHeader.tsx +0 -88
  147. package/src/features/love-message/presentation/components/LoveMessageHeroSection.tsx +0 -114
  148. package/src/features/love-message/presentation/components/MessageListItem.tsx +0 -77
  149. package/src/features/love-message/presentation/components/MessageResult.tsx +0 -105
  150. package/src/features/love-message/presentation/components/PartnerInput.tsx +0 -78
  151. package/src/features/love-message/presentation/components/ProgressDots.tsx +0 -48
  152. package/src/features/love-message/presentation/components/StepDetails.tsx +0 -23
  153. package/src/features/love-message/presentation/components/StepPartner.tsx +0 -116
  154. package/src/features/love-message/presentation/components/StepVibe.tsx +0 -30
  155. package/src/features/love-message/presentation/components/ToneSelector.tsx +0 -100
  156. package/src/features/love-message/presentation/components/TrendingSection.tsx +0 -130
  157. package/src/features/love-message/presentation/components/TypeSelector.tsx +0 -99
  158. package/src/features/love-message/presentation/hooks/useLoveMessageGenerator.ts +0 -114
  159. package/src/features/love-message/presentation/hooks/usePartnerProfile.ts +0 -43
  160. package/src/features/love-message/presentation/navigation/LoveMessageStack.tsx +0 -39
  161. package/src/features/love-message/presentation/screens/LoveMessageExploreScreen.tsx +0 -53
  162. package/src/features/love-message/presentation/screens/LoveMessageGeneratorScreen.tsx +0 -169
  163. package/src/features/love-message/presentation/screens/MessageListScreen.tsx +0 -127
  164. package/src/features/love-message/presentation/screens/PartnerProfileScreen.tsx +0 -119
  165. package/src/features/meme-generator/README.md +0 -408
  166. package/src/features/meme-generator/index.ts +0 -3
  167. package/src/features/meme-generator/infrastructure/services/MemeGenerationService.ts +0 -87
  168. package/src/features/meme-generator/presentation/components/MemeGeneratorFeature.tsx +0 -180
  169. package/src/features/meme-generator/presentation/components/index.ts +0 -2
  170. package/src/features/meme-generator/presentation/screens/MemeGeneratorScreen.tsx +0 -168
  171. package/src/features/meme-generator/presentation/screens/index.ts +0 -1
  172. package/src/features/partner-upload/domain/types.ts +0 -59
  173. package/src/features/partner-upload/index.ts +0 -30
  174. package/src/features/partner-upload/presentation/components/PartnerInfoInput.tsx +0 -112
  175. package/src/features/partner-upload/presentation/components/PhotoTips.tsx +0 -53
  176. package/src/features/partner-upload/presentation/components/index.ts +0 -4
  177. package/src/features/partner-upload/presentation/hooks/index.ts +0 -7
  178. package/src/features/partner-upload/presentation/hooks/usePartnerStep.ts +0 -130
  179. package/src/features/partner-upload/presentation/screens/PartnerStepScreen.tsx +0 -231
  180. package/src/features/partner-upload/presentation/screens/index.ts +0 -6
  181. package/src/features/photo-restoration/README.md +0 -399
  182. package/src/features/photo-restoration/domain/index.ts +0 -1
  183. package/src/features/photo-restoration/domain/types/index.ts +0 -9
  184. package/src/features/photo-restoration/domain/types/photo-restore.types.ts +0 -64
  185. package/src/features/photo-restoration/index.ts +0 -22
  186. package/src/features/photo-restoration/presentation/components/PhotoRestoreFeature.tsx +0 -88
  187. package/src/features/photo-restoration/presentation/components/PhotoRestoreResultView.tsx +0 -86
  188. package/src/features/photo-restoration/presentation/components/index.ts +0 -4
  189. package/src/features/photo-restoration/presentation/hooks/index.ts +0 -1
  190. package/src/features/photo-restoration/presentation/hooks/usePhotoRestoreFeature.ts +0 -23
  191. package/src/features/photo-restoration/presentation/index.ts +0 -2
  192. package/src/features/remove-background/README.md +0 -393
  193. package/src/features/remove-background/domain/index.ts +0 -5
  194. package/src/features/remove-background/domain/types/index.ts +0 -7
  195. package/src/features/remove-background/domain/types/remove-background.types.ts +0 -28
  196. package/src/features/remove-background/index.ts +0 -19
  197. package/src/features/remove-background/presentation/components/RemoveBackgroundFeature.tsx +0 -86
  198. package/src/features/remove-background/presentation/components/index.ts +0 -2
  199. package/src/features/remove-background/presentation/hooks/index.ts +0 -1
  200. package/src/features/remove-background/presentation/hooks/useRemoveBackgroundFeature.ts +0 -28
  201. package/src/features/remove-background/presentation/index.ts +0 -6
  202. package/src/features/remove-object/README.md +0 -405
  203. package/src/features/remove-object/domain/index.ts +0 -5
  204. package/src/features/remove-object/domain/types/index.ts +0 -7
  205. package/src/features/remove-object/domain/types/remove-object.types.ts +0 -54
  206. package/src/features/remove-object/index.ts +0 -23
  207. package/src/features/remove-object/presentation/components/RemoveObjectFeature.tsx +0 -136
  208. package/src/features/remove-object/presentation/components/index.ts +0 -2
  209. package/src/features/remove-object/presentation/hooks/index.ts +0 -9
  210. package/src/features/remove-object/presentation/hooks/useRemoveObjectFeature.ts +0 -221
  211. package/src/features/remove-object/presentation/index.ts +0 -6
  212. package/src/features/replace-background/README.md +0 -405
  213. package/src/features/replace-background/domain/types/index.ts +0 -7
  214. package/src/features/replace-background/domain/types/replace-background.types.ts +0 -33
  215. package/src/features/replace-background/index.ts +0 -23
  216. package/src/features/replace-background/presentation/components/ReplaceBackgroundFeature.tsx +0 -105
  217. package/src/features/replace-background/presentation/components/index.ts +0 -6
  218. package/src/features/replace-background/presentation/hooks/index.ts +0 -9
  219. package/src/features/replace-background/presentation/hooks/useReplaceBackgroundFeature.ts +0 -55
  220. package/src/features/scenarios/domain/types.ts +0 -147
  221. package/src/features/scenarios/index.ts +0 -64
  222. package/src/features/scenarios/presentation/components/InspirationChips.tsx +0 -82
  223. package/src/features/scenarios/presentation/components/MagicPromptHeadline.tsx +0 -79
  224. package/src/features/scenarios/presentation/components/ScenarioGrid.tsx +0 -224
  225. package/src/features/scenarios/presentation/components/ScenarioHeader.tsx +0 -55
  226. package/src/features/scenarios/presentation/components/StyleSelector.tsx +0 -119
  227. package/src/features/scenarios/presentation/components/index.ts +0 -18
  228. package/src/features/scenarios/presentation/containers/CategoryNavigationContainer.tsx +0 -178
  229. package/src/features/scenarios/presentation/screens/HierarchicalScenarioListScreen.tsx +0 -266
  230. package/src/features/scenarios/presentation/screens/MagicPromptScreen.tsx +0 -242
  231. package/src/features/scenarios/presentation/screens/MainCategoryScreen.tsx +0 -198
  232. package/src/features/scenarios/presentation/screens/ScenarioPreviewScreen.tsx +0 -164
  233. package/src/features/scenarios/presentation/screens/ScenarioSelectorScreen.tsx +0 -66
  234. package/src/features/scenarios/presentation/screens/SubCategoryScreen.tsx +0 -216
  235. package/src/features/script-generator/README.md +0 -433
  236. package/src/features/script-generator/domain/constants/index.ts +0 -10
  237. package/src/features/script-generator/domain/types/script.types.ts +0 -30
  238. package/src/features/script-generator/index.ts +0 -5
  239. package/src/features/script-generator/infrastructure/services/ScriptGenerationService.ts +0 -62
  240. package/src/features/script-generator/presentation/components/ScriptDisplay.tsx +0 -158
  241. package/src/features/script-generator/presentation/components/VideoTypeSelector.tsx +0 -102
  242. package/src/features/script-generator/presentation/components/index.ts +0 -2
  243. package/src/features/script-generator/presentation/hooks/index.ts +0 -1
  244. package/src/features/script-generator/presentation/hooks/useScriptGenerator.ts +0 -77
  245. package/src/features/shared/README.md +0 -311
  246. package/src/features/shared/dual-image-video/domain/types/dual-image-video.types.ts +0 -88
  247. package/src/features/shared/dual-image-video/domain/types/index.ts +0 -14
  248. package/src/features/shared/dual-image-video/index.ts +0 -17
  249. package/src/features/shared/dual-image-video/presentation/hooks/index.ts +0 -5
  250. package/src/features/shared/dual-image-video/presentation/hooks/useDualImageVideoFeature.ts +0 -185
  251. package/src/features/shared/index.ts +0 -6
  252. package/src/features/text-to-image/README.md +0 -394
  253. package/src/features/text-to-image/domain/constants/index.ts +0 -8
  254. package/src/features/text-to-image/domain/constants/options.constants.ts +0 -39
  255. package/src/features/text-to-image/domain/constants/styles.constants.ts +0 -34
  256. package/src/features/text-to-image/domain/index.ts +0 -7
  257. package/src/features/text-to-image/domain/types/config.types.ts +0 -75
  258. package/src/features/text-to-image/domain/types/form.types.ts +0 -58
  259. package/src/features/text-to-image/domain/types/index.ts +0 -38
  260. package/src/features/text-to-image/domain/types/text-to-image.types.ts +0 -58
  261. package/src/features/text-to-image/index.ts +0 -116
  262. package/src/features/text-to-image/infrastructure/index.ts +0 -1
  263. package/src/features/text-to-image/infrastructure/services/index.ts +0 -5
  264. package/src/features/text-to-image/infrastructure/services/text-to-image-executor.ts +0 -147
  265. package/src/features/text-to-image/presentation/components/index.ts +0 -30
  266. package/src/features/text-to-image/presentation/hooks/index.ts +0 -30
  267. package/src/features/text-to-image/presentation/hooks/useFormState.ts +0 -103
  268. package/src/features/text-to-image/presentation/hooks/useGeneration.ts +0 -139
  269. package/src/features/text-to-image/presentation/hooks/useTextToImageFeature.ts +0 -111
  270. package/src/features/text-to-image/presentation/hooks/useTextToImageForm.ts +0 -58
  271. package/src/features/text-to-image/presentation/index.ts +0 -7
  272. package/src/features/text-to-video/README.md +0 -412
  273. package/src/features/text-to-video/domain/index.ts +0 -1
  274. package/src/features/text-to-video/domain/types/callback.types.ts +0 -69
  275. package/src/features/text-to-video/domain/types/component.types.ts +0 -106
  276. package/src/features/text-to-video/domain/types/config.types.ts +0 -61
  277. package/src/features/text-to-video/domain/types/index.ts +0 -56
  278. package/src/features/text-to-video/domain/types/request.types.ts +0 -36
  279. package/src/features/text-to-video/domain/types/state.types.ts +0 -53
  280. package/src/features/text-to-video/index.ts +0 -68
  281. package/src/features/text-to-video/infrastructure/index.ts +0 -1
  282. package/src/features/text-to-video/infrastructure/services/index.ts +0 -5
  283. package/src/features/text-to-video/infrastructure/services/text-to-video-executor.ts +0 -141
  284. package/src/features/text-to-video/presentation/components/FrameSelector.tsx +0 -153
  285. package/src/features/text-to-video/presentation/components/GenerationTabs.tsx +0 -73
  286. package/src/features/text-to-video/presentation/components/HeroSection.tsx +0 -61
  287. package/src/features/text-to-video/presentation/components/HintCarousel.tsx +0 -96
  288. package/src/features/text-to-video/presentation/components/OptionsPanel.tsx +0 -121
  289. package/src/features/text-to-video/presentation/components/index.ts +0 -10
  290. package/src/features/text-to-video/presentation/hooks/index.ts +0 -17
  291. package/src/features/text-to-video/presentation/hooks/useTextToVideoFeature.ts +0 -225
  292. package/src/features/text-to-video/presentation/hooks/useTextToVideoForm.ts +0 -134
  293. package/src/features/text-to-video/presentation/index.ts +0 -7
  294. package/src/features/text-to-voice/README.md +0 -445
  295. package/src/features/text-to-voice/domain/index.ts +0 -1
  296. package/src/features/text-to-voice/domain/types/component.types.ts +0 -91
  297. package/src/features/text-to-voice/domain/types/config.types.ts +0 -34
  298. package/src/features/text-to-voice/domain/types/form.types.ts +0 -39
  299. package/src/features/text-to-voice/domain/types/generation.types.ts +0 -43
  300. package/src/features/text-to-voice/domain/types/index.ts +0 -38
  301. package/src/features/text-to-voice/index.ts +0 -53
  302. package/src/features/text-to-voice/infrastructure/index.ts +0 -1
  303. package/src/features/text-to-voice/infrastructure/services/index.ts +0 -4
  304. package/src/features/text-to-voice/infrastructure/services/text-to-voice-executor.ts +0 -103
  305. package/src/features/text-to-voice/presentation/components/TextToVoiceAudioPlayer.tsx +0 -81
  306. package/src/features/text-to-voice/presentation/components/index.ts +0 -7
  307. package/src/features/text-to-voice/presentation/hooks/index.ts +0 -6
  308. package/src/features/text-to-voice/presentation/hooks/useTextToVoiceForm.ts +0 -91
  309. package/src/features/text-to-voice/presentation/hooks/useTextToVoiceGeneration.ts +0 -116
  310. package/src/features/text-to-voice/presentation/index.ts +0 -2
  311. package/src/features/upscaling/README.md +0 -396
  312. package/src/features/upscaling/domain/index.ts +0 -1
  313. package/src/features/upscaling/domain/types/index.ts +0 -1
  314. package/src/features/upscaling/domain/types/upscale.types.ts +0 -23
  315. package/src/features/upscaling/index.ts +0 -20
  316. package/src/features/upscaling/presentation/components/ComparisonSlider.tsx +0 -200
  317. package/src/features/upscaling/presentation/components/UpscaleFeature.tsx +0 -89
  318. package/src/features/upscaling/presentation/components/UpscaleResultView.tsx +0 -98
  319. package/src/features/upscaling/presentation/components/index.ts +0 -6
  320. package/src/features/upscaling/presentation/hooks/index.ts +0 -1
  321. package/src/features/upscaling/presentation/hooks/useUpscaleFeature.ts +0 -28
  322. package/src/features/upscaling/presentation/index.ts +0 -2
  323. package/src/features/wizard/domain/types.ts +0 -154
  324. package/src/features/wizard/index.ts +0 -43
  325. package/src/features/wizard/presentation/components/AIFeatureWizard.tsx +0 -231
  326. package/src/features/wizard/presentation/components/AIGenerationWizard.tsx +0 -132
  327. package/src/features/wizard/presentation/hooks/useWizard.ts +0 -120
  328. package/src/features/wizard/presentation/store/useWizardStore.ts +0 -82
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umituz/react-native-ai-generation-content",
3
- "version": "1.26.1",
3
+ "version": "1.26.4",
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",
@@ -11,7 +11,8 @@
11
11
  "./creations": "./src/domains/creations/index.ts",
12
12
  "./face-detection": "./src/domains/face-detection/index.ts",
13
13
  "./feature-background": "./src/domains/feature-background/index.ts",
14
- "./wizard": "./src/domains/wizard/index.ts"
14
+ "./wizard": "./src/domains/wizard/index.ts",
15
+ "./generation": "./src/domains/generation/index.ts"
15
16
  },
16
17
  "files": [
17
18
  "src"
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Feature Registry
3
+ * Centralized registry for all AI generation features
4
+ * Apps register features they need during initialization
5
+ */
6
+
7
+ import type {
8
+ FeatureConfig,
9
+ FeatureRegistration,
10
+ } from "../domain/feature-config.types";
11
+
12
+ declare const __DEV__: boolean;
13
+
14
+ class FeatureRegistryImpl implements FeatureRegistration {
15
+ private features = new Map<string, FeatureConfig>();
16
+
17
+ register(featureId: string, config: FeatureConfig): void {
18
+ if (this.features.has(featureId)) {
19
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
20
+ console.warn(
21
+ `[FeatureRegistry] Feature '${featureId}' already registered. Overwriting.`,
22
+ );
23
+ }
24
+ }
25
+
26
+ this.features.set(featureId, config);
27
+
28
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
29
+ console.log("[FeatureRegistry] Feature registered", {
30
+ featureId,
31
+ type: config.type,
32
+ model: config.model,
33
+ creditCost: config.creditCost,
34
+ inputType: config.inputType,
35
+ outputType: config.outputType,
36
+ });
37
+ }
38
+ }
39
+
40
+ get(featureId: string): FeatureConfig {
41
+ const config = this.features.get(featureId);
42
+
43
+ if (!config) {
44
+ const availableFeatures = Array.from(this.features.keys()).join(", ");
45
+
46
+ throw new Error(
47
+ `Feature not found: ${featureId}.\n\n` +
48
+ `Available features: ${availableFeatures || "none"}.\n` +
49
+ `Please register '${featureId}' using featureRegistry.register() in your app initialization.`,
50
+ );
51
+ }
52
+
53
+ return config;
54
+ }
55
+
56
+ getAll(): FeatureConfig[] {
57
+ return Array.from(this.features.values());
58
+ }
59
+
60
+ has(featureId: string): boolean {
61
+ return this.features.has(featureId);
62
+ }
63
+
64
+ unregister(featureId: string): void {
65
+ const existed = this.features.delete(featureId);
66
+
67
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
68
+ if (existed) {
69
+ console.log("[FeatureRegistry] Feature unregistered", { featureId });
70
+ } else {
71
+ console.warn(
72
+ `[FeatureRegistry] Cannot unregister '${featureId}': not found`,
73
+ );
74
+ }
75
+ }
76
+ }
77
+
78
+ clear(): void {
79
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
80
+ console.log("[FeatureRegistry] Clearing all features");
81
+ }
82
+ this.features.clear();
83
+ }
84
+
85
+ logRegisteredFeatures(): void {
86
+ const features = this.getAll();
87
+
88
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
89
+ console.log("[FeatureRegistry] Registered features:", {
90
+ count: features.length,
91
+ features: features.map((f) => ({
92
+ id: f.id,
93
+ type: f.type,
94
+ outputType: f.outputType,
95
+ })),
96
+ });
97
+ }
98
+ }
99
+ }
100
+
101
+ export const featureRegistry = new FeatureRegistryImpl();
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Generation Strategy Factory
3
+ * Creates generation strategies from feature configs
4
+ */
5
+
6
+ import type { GenerationStrategy } from "../../../presentation/hooks/generation/orchestrator";
7
+ import type { FeatureConfig } from "../domain/feature-config.types";
8
+ import type {
9
+ ImageGenerationInput,
10
+ VideoGenerationInput,
11
+ ImageGenerationOutput,
12
+ VideoGenerationOutput,
13
+ } from "../domain/generation.types";
14
+ import { ExecutorFactory } from "../../../infrastructure/executors/executor-factory";
15
+ import { featureRegistry } from "./feature-registry";
16
+
17
+ declare const __DEV__: boolean;
18
+
19
+ interface CreationRepository {
20
+ create(userId: string, creation: unknown): Promise<void>;
21
+ }
22
+
23
+ interface StrategyFactoryOptions {
24
+ featureId: string;
25
+ userId?: string;
26
+ repository?: CreationRepository;
27
+ }
28
+
29
+ export function createGenerationStrategy(
30
+ options: StrategyFactoryOptions,
31
+ ): GenerationStrategy<unknown, unknown> {
32
+ const { featureId, userId, repository } = options;
33
+
34
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
35
+ console.log("[StrategyFactory] Creating strategy", {
36
+ featureId,
37
+ hasUserId: !!userId,
38
+ hasRepository: !!repository,
39
+ });
40
+ }
41
+
42
+ const featureConfig = featureRegistry.get(featureId);
43
+ const executor = ExecutorFactory.create(featureConfig.type);
44
+
45
+ return {
46
+ execute: async (input: unknown, onProgress?: (progress: number) => void) => {
47
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
48
+ console.log("[StrategyFactory] Executing generation", {
49
+ featureId,
50
+ type: featureConfig.type,
51
+ model: featureConfig.model,
52
+ });
53
+ }
54
+
55
+ const result = await executor.generate(featureConfig.model, input, {
56
+ onProgress,
57
+ });
58
+
59
+ if (!result.success || !result.data) {
60
+ throw new Error(result.error || "Generation failed");
61
+ }
62
+
63
+ return result.data;
64
+ },
65
+
66
+ getCreditCost: () => {
67
+ return featureConfig.creditCost;
68
+ },
69
+
70
+ save: async (result: unknown, uid: string) => {
71
+ if (!repository) {
72
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
73
+ console.log("[StrategyFactory] No repository provided, skipping save");
74
+ }
75
+ return;
76
+ }
77
+
78
+ const creation = buildCreation(featureConfig, result);
79
+
80
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
81
+ console.log("[StrategyFactory] Saving creation", {
82
+ featureId,
83
+ creationId: creation.id,
84
+ outputType: featureConfig.outputType,
85
+ });
86
+ }
87
+
88
+ await repository.create(uid, creation);
89
+
90
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
91
+ console.log("[StrategyFactory] Creation saved successfully");
92
+ }
93
+ },
94
+ };
95
+ }
96
+
97
+ function buildCreation(featureConfig: FeatureConfig, result: unknown) {
98
+ const creationId = `${featureConfig.id}_${Date.now()}`;
99
+
100
+ let mainUri = "";
101
+ let output: Record<string, unknown> = {};
102
+
103
+ if (featureConfig.outputType === "image") {
104
+ const imageResult = result as ImageGenerationOutput;
105
+ mainUri = imageResult.imageUrl || "";
106
+ output = { imageUrl: imageResult.imageUrl };
107
+ } else if (featureConfig.outputType === "video") {
108
+ const videoResult = result as VideoGenerationOutput;
109
+ mainUri = videoResult.videoUrl || "";
110
+ output = { videoUrl: videoResult.videoUrl };
111
+ }
112
+
113
+ return {
114
+ id: creationId,
115
+ uri: mainUri,
116
+ type: featureConfig.id,
117
+ createdAt: new Date(),
118
+ isShared: false,
119
+ isFavorite: false,
120
+ metadata: {
121
+ featureId: featureConfig.id,
122
+ generationType: featureConfig.type,
123
+ outputType: featureConfig.outputType,
124
+ ...featureConfig.metadata,
125
+ },
126
+ output,
127
+ };
128
+ }
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Feature Configuration Types
3
+ * Defines how apps configure AI features
4
+ */
5
+
6
+ // ============================================================================
7
+ // Feature Type Enums
8
+ // ============================================================================
9
+
10
+ export type GenerationType = "image" | "video" | "meme";
11
+
12
+ export type InputType =
13
+ | "single-photo"
14
+ | "two-photos"
15
+ | "text"
16
+ | "photo-text"
17
+ | "photo-photo-text";
18
+
19
+ export type OutputType = "image" | "video";
20
+
21
+ // ============================================================================
22
+ // Feature Configuration
23
+ // ============================================================================
24
+
25
+ export interface FeatureConfig {
26
+ /** Unique feature identifier (e.g., 'couple-future', 'ai-hug') */
27
+ readonly id: string;
28
+
29
+ /** Generation type (determines which executor to use) */
30
+ readonly type: GenerationType;
31
+
32
+ /** Model ID (from app's GENERATION_MODELS config) */
33
+ readonly model: string;
34
+
35
+ /** Credit cost for this feature */
36
+ readonly creditCost: number;
37
+
38
+ /** Input type (determines wizard steps) */
39
+ readonly inputType: InputType;
40
+
41
+ /** Output type (determines result preview) */
42
+ readonly outputType: OutputType;
43
+
44
+ /** Optional: Custom prompt template */
45
+ readonly promptTemplate?: string;
46
+
47
+ /** Optional: Feature-specific metadata */
48
+ readonly metadata?: Record<string, unknown>;
49
+ }
50
+
51
+ // ============================================================================
52
+ // Feature Registration
53
+ // ============================================================================
54
+
55
+ export interface FeatureRegistration {
56
+ register(featureId: string, config: FeatureConfig): void;
57
+ get(featureId: string): FeatureConfig;
58
+ getAll(): FeatureConfig[];
59
+ has(featureId: string): boolean;
60
+ unregister(featureId: string): void;
61
+ }
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Generation Domain Types
3
+ * Generic types for all AI generation features
4
+ */
5
+
6
+ // ============================================================================
7
+ // Generation Options
8
+ // ============================================================================
9
+
10
+ export interface GenerationOptions {
11
+ timeoutMs?: number;
12
+ onProgress?: (progress: number) => void;
13
+ }
14
+
15
+ // ============================================================================
16
+ // Generation Result
17
+ // ============================================================================
18
+
19
+ export interface GenerationResult<T> {
20
+ success: boolean;
21
+ data?: T;
22
+ error?: string;
23
+ }
24
+
25
+ // ============================================================================
26
+ // Input Types (by generation type)
27
+ // ============================================================================
28
+
29
+ export interface ImageGenerationInput {
30
+ imageUrls?: string[];
31
+ prompt: string;
32
+ aspectRatio?: string;
33
+ outputFormat?: "jpeg" | "png" | "webp";
34
+ }
35
+
36
+ export interface VideoGenerationInput {
37
+ sourceImageBase64: string;
38
+ targetImageBase64?: string;
39
+ prompt?: string;
40
+ }
41
+
42
+ export interface MemeGenerationInput {
43
+ text: string;
44
+ template?: string;
45
+ }
46
+
47
+ // ============================================================================
48
+ // Output Types (by generation type)
49
+ // ============================================================================
50
+
51
+ export interface ImageGenerationOutput {
52
+ imageUrl: string;
53
+ }
54
+
55
+ export interface VideoGenerationOutput {
56
+ videoUrl: string;
57
+ }
58
+
59
+ export interface MemeGenerationOutput {
60
+ imageUrl: string;
61
+ caption?: string;
62
+ }
63
+
64
+ // ============================================================================
65
+ // Generic Executor Interface
66
+ // ============================================================================
67
+
68
+ export interface GenerationExecutor<TInput, TOutput> {
69
+ generate(
70
+ model: string,
71
+ input: TInput,
72
+ options?: GenerationOptions,
73
+ ): Promise<GenerationResult<TOutput>>;
74
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Generation Domain
3
+ * Generic, feature-agnostic AI generation system
4
+ */
5
+
6
+ // Presentation Layer
7
+ export {
8
+ useAIGeneration,
9
+ type UseAIGenerationProps,
10
+ type UseAIGenerationReturn,
11
+ type AlertMessages,
12
+ } from "./presentation/useAIGeneration.hook";
13
+
14
+ // Application Layer
15
+ export { featureRegistry } from "./application/feature-registry";
16
+ export { createGenerationStrategy } from "./application/generation-strategy.factory";
17
+
18
+ // Domain Layer
19
+ export type {
20
+ FeatureConfig,
21
+ FeatureRegistration,
22
+ GenerationType,
23
+ InputType,
24
+ OutputType,
25
+ } from "./domain/feature-config.types";
26
+
27
+ export type {
28
+ GenerationExecutor,
29
+ GenerationOptions,
30
+ GenerationResult,
31
+ ImageGenerationInput,
32
+ ImageGenerationOutput,
33
+ VideoGenerationInput,
34
+ VideoGenerationOutput,
35
+ MemeGenerationInput,
36
+ MemeGenerationOutput,
37
+ } from "./domain/generation.types";
@@ -0,0 +1,106 @@
1
+ /**
2
+ * useAIGeneration Hook
3
+ * Universal hook for ALL AI generation features
4
+ * Replaces all feature-specific hooks (useCoupleFutureFlow, useAIHugFeature, etc.)
5
+ */
6
+
7
+ import { useGenerationOrchestrator } from "../../../presentation/hooks/generation/orchestrator";
8
+ import { createGenerationStrategy } from "../application/generation-strategy.factory";
9
+
10
+ declare const __DEV__: boolean;
11
+
12
+ // ============================================================================
13
+ // Types
14
+ // ============================================================================
15
+
16
+ export interface AlertMessages {
17
+ networkError: string;
18
+ policyViolation: string;
19
+ saveFailed: string;
20
+ creditFailed: string;
21
+ unknown: string;
22
+ }
23
+
24
+ export interface UseAIGenerationProps {
25
+ /** Feature ID from feature registry */
26
+ featureId: string;
27
+
28
+ /** User ID for saving creations */
29
+ userId?: string;
30
+
31
+ /** Alert messages for errors */
32
+ alertMessages?: AlertMessages;
33
+
34
+ /** Called when generation succeeds */
35
+ onSuccess?: (result: unknown) => void;
36
+
37
+ /** Called when generation fails */
38
+ onError?: (error: string) => void;
39
+
40
+ /** Called when credits are exhausted */
41
+ onCreditsExhausted?: () => void;
42
+
43
+ /** Optional: Custom repository for saving */
44
+ repository?: {
45
+ create(userId: string, creation: unknown): Promise<void>;
46
+ };
47
+ }
48
+
49
+ export interface UseAIGenerationReturn {
50
+ /** Trigger generation */
51
+ generate: (input: unknown) => Promise<void>;
52
+
53
+ /** Whether generation is in progress */
54
+ isGenerating: boolean;
55
+
56
+ /** Current progress (0-100) */
57
+ progress: number;
58
+ }
59
+
60
+ // ============================================================================
61
+ // Hook
62
+ // ============================================================================
63
+
64
+ export function useAIGeneration(
65
+ props: UseAIGenerationProps,
66
+ ): UseAIGenerationReturn {
67
+ const {
68
+ featureId,
69
+ userId,
70
+ alertMessages,
71
+ onSuccess,
72
+ onError,
73
+ onCreditsExhausted,
74
+ repository,
75
+ } = props;
76
+
77
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
78
+ console.log("[useAIGeneration] Initializing", {
79
+ featureId,
80
+ hasUserId: !!userId,
81
+ hasRepository: !!repository,
82
+ });
83
+ }
84
+
85
+ // Create generic strategy
86
+ const strategy = createGenerationStrategy({
87
+ featureId,
88
+ userId,
89
+ repository,
90
+ });
91
+
92
+ // Use orchestrator for lifecycle management
93
+ const orchestrator = useGenerationOrchestrator(strategy, {
94
+ userId,
95
+ alertMessages,
96
+ onSuccess,
97
+ onError,
98
+ onCreditsExhausted,
99
+ });
100
+
101
+ return {
102
+ generate: orchestrator.generate,
103
+ isGenerating: orchestrator.isGenerating,
104
+ progress: orchestrator.progress,
105
+ };
106
+ }
@@ -366,10 +366,9 @@ export const createWizardStrategy = (
366
366
  scenarioId: scenario.id,
367
367
  scenarioTitle: scenario.title || scenario.id,
368
368
  },
369
- output: {
370
- imageUrl,
371
- videoUrl,
372
- },
369
+ output: outputType === "image"
370
+ ? { imageUrl }
371
+ : { videoUrl },
373
372
  };
374
373
 
375
374
  if (typeof __DEV__ !== "undefined" && __DEV__) {
package/src/index.ts CHANGED
@@ -143,28 +143,6 @@ export * from "./domains/content-moderation";
143
143
  export * from "./domains/creations";
144
144
  export * from "./domains/face-detection";
145
145
  export * from "./domains/scenarios";
146
- export * from "./features/image-to-image";
147
- export * from "./features/replace-background";
148
- export * from "./features/upscaling";
149
- export * from "./features/script-generator";
150
- export * from "./features/photo-restoration";
151
- export type { DualImageVideoProcessingStartData, DualImageVideoResult, DualImageVideoFeatureConfig } from "./features/shared/dual-image-video";
152
- export * from "./features/ai-hug";
153
- export * from "./features/ai-kiss";
154
- export * from "./features/face-swap";
155
- export * from "./features/anime-selfie";
156
- export * from "./features/remove-background";
157
- export * from "./features/remove-object";
158
- export * from "./features/text-to-video";
159
- export * from "./features/text-to-image";
160
- export * from "./features/image-to-video";
161
- export * from "./features/text-to-voice";
162
- export * from "./features/hd-touch-up";
163
- export * from "./features/meme-generator";
164
- export * from "./features/couple-future";
165
- export * from "./features/love-message";
166
- export * from "./features/partner-upload";
167
- export * from "./features/scenarios";
168
146
  export * from "./infrastructure/orchestration";
169
147
 
170
148
  // Generation Config Provider (App Configuration)
@@ -206,8 +184,6 @@ export type {
206
184
  PromptTranslationKeys,
207
185
  } from "./presentation/screens/ai-feature";
208
186
 
209
- // AIGenerationWizard - Generic wizard for all AI generation flows
210
- export * from "./features/wizard";
211
187
 
212
188
  // Flow System - Dynamic multi-step flow management
213
189
  export { createFlowStore, useFlow, resetFlowStore } from "./infrastructure/flow";
@@ -229,5 +205,5 @@ export type {
229
205
  FlowGenerationStatus,
230
206
  } from "./domain/entities/flow-config.types";
231
207
 
232
- // Wizard Domain - Generic, configuration-driven wizard system for ALL features
233
208
  export * from "./domains/wizard";
209
+ export * from "./domains/generation";
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Executor Factory
3
+ * Creates appropriate executor based on generation type
4
+ */
5
+
6
+ import type { GenerationExecutor } from "../../domains/generation/domain/generation.types";
7
+ import { ImageExecutor } from "./image-executor";
8
+ import { VideoExecutor } from "./video-executor";
9
+
10
+ declare const __DEV__: boolean;
11
+
12
+ type GenerationType = "image" | "video" | "meme";
13
+
14
+ export class ExecutorFactory {
15
+ private static executors = new Map<
16
+ GenerationType,
17
+ GenerationExecutor<unknown, unknown>
18
+ >();
19
+
20
+ static create(type: GenerationType): GenerationExecutor<unknown, unknown> {
21
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
22
+ console.log("[ExecutorFactory] Creating executor", { type });
23
+ }
24
+
25
+ if (!this.executors.has(type)) {
26
+ switch (type) {
27
+ case "image":
28
+ this.executors.set(type, new ImageExecutor());
29
+ break;
30
+ case "video":
31
+ this.executors.set(type, new VideoExecutor());
32
+ break;
33
+ case "meme":
34
+ throw new Error("Meme executor not yet implemented");
35
+ default:
36
+ throw new Error(`Unknown executor type: ${type}`);
37
+ }
38
+
39
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
40
+ console.log("[ExecutorFactory] Executor created and cached", { type });
41
+ }
42
+ }
43
+
44
+ return this.executors.get(type)!;
45
+ }
46
+
47
+ static clear(): void {
48
+ if (typeof __DEV__ !== "undefined" && __DEV__) {
49
+ console.log("[ExecutorFactory] Clearing executor cache");
50
+ }
51
+ this.executors.clear();
52
+ }
53
+ }