@umituz/react-native-ai-generation-content 1.26.2 → 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 (327) 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/features/ai-hug/README.md +0 -438
  14. package/src/features/ai-hug/domain/index.ts +0 -5
  15. package/src/features/ai-hug/domain/types/ai-hug.types.ts +0 -25
  16. package/src/features/ai-hug/domain/types/index.ts +0 -7
  17. package/src/features/ai-hug/index.ts +0 -19
  18. package/src/features/ai-hug/presentation/components/AIHugFeature.tsx +0 -77
  19. package/src/features/ai-hug/presentation/components/index.ts +0 -2
  20. package/src/features/ai-hug/presentation/hooks/index.ts +0 -9
  21. package/src/features/ai-hug/presentation/hooks/useAIHugFeature.ts +0 -34
  22. package/src/features/ai-hug/presentation/index.ts +0 -6
  23. package/src/features/ai-kiss/README.md +0 -445
  24. package/src/features/ai-kiss/domain/index.ts +0 -5
  25. package/src/features/ai-kiss/domain/types/ai-kiss.types.ts +0 -25
  26. package/src/features/ai-kiss/domain/types/index.ts +0 -7
  27. package/src/features/ai-kiss/index.ts +0 -19
  28. package/src/features/ai-kiss/presentation/components/AIKissFeature.tsx +0 -77
  29. package/src/features/ai-kiss/presentation/components/index.ts +0 -2
  30. package/src/features/ai-kiss/presentation/hooks/index.ts +0 -9
  31. package/src/features/ai-kiss/presentation/hooks/useAIKissFeature.ts +0 -34
  32. package/src/features/ai-kiss/presentation/index.ts +0 -6
  33. package/src/features/anime-selfie/README.md +0 -396
  34. package/src/features/anime-selfie/domain/index.ts +0 -5
  35. package/src/features/anime-selfie/domain/types/anime-selfie.types.ts +0 -52
  36. package/src/features/anime-selfie/domain/types/index.ts +0 -8
  37. package/src/features/anime-selfie/index.ts +0 -20
  38. package/src/features/anime-selfie/presentation/components/AnimeSelfieFeature.tsx +0 -86
  39. package/src/features/anime-selfie/presentation/components/index.ts +0 -2
  40. package/src/features/anime-selfie/presentation/hooks/index.ts +0 -9
  41. package/src/features/anime-selfie/presentation/hooks/useAnimeSelfieFeature.ts +0 -59
  42. package/src/features/anime-selfie/presentation/index.ts +0 -6
  43. package/src/features/couple-future/README.md +0 -445
  44. package/src/features/couple-future/domain/types.ts +0 -63
  45. package/src/features/couple-future/domain/wizard-config.adapter.ts +0 -76
  46. package/src/features/couple-future/domain/wizard.types.ts +0 -121
  47. package/src/features/couple-future/index.ts +0 -83
  48. package/src/features/couple-future/infrastructure/coupleFeatureRegistry.ts +0 -76
  49. package/src/features/couple-future/infrastructure/couplePromptEnhancer.ts +0 -100
  50. package/src/features/couple-future/infrastructure/executor.ts +0 -188
  51. package/src/features/couple-future/infrastructure/generationUtils.ts +0 -228
  52. package/src/features/couple-future/presentation/components/ArtStyleSelector.tsx +0 -146
  53. package/src/features/couple-future/presentation/components/ArtistStyleSelector.tsx +0 -122
  54. package/src/features/couple-future/presentation/components/CoupleFutureWizard.tsx +0 -239
  55. package/src/features/couple-future/presentation/components/GeneratingStepContent.tsx +0 -86
  56. package/src/features/couple-future/presentation/components/RomanticMoodSelector.tsx +0 -147
  57. package/src/features/couple-future/presentation/components/WardrobeSelector.tsx +0 -141
  58. package/src/features/couple-future/presentation/components/index.ts +0 -12
  59. package/src/features/couple-future/presentation/hooks/useCoupleFutureFlow.ts +0 -166
  60. package/src/features/couple-future/presentation/hooks/useCoupleFutureFlow.types.ts +0 -69
  61. package/src/features/couple-future/presentation/hooks/useCoupleFutureHandlers.ts +0 -117
  62. package/src/features/couple-future/presentation/screens/CoupleFeatureScreen.tsx +0 -113
  63. package/src/features/face-swap/README.md +0 -431
  64. package/src/features/face-swap/domain/index.ts +0 -5
  65. package/src/features/face-swap/domain/types/face-swap.types.ts +0 -26
  66. package/src/features/face-swap/domain/types/index.ts +0 -7
  67. package/src/features/face-swap/index.ts +0 -19
  68. package/src/features/face-swap/presentation/components/FaceSwapFeature.tsx +0 -87
  69. package/src/features/face-swap/presentation/components/index.ts +0 -2
  70. package/src/features/face-swap/presentation/hooks/index.ts +0 -6
  71. package/src/features/face-swap/presentation/hooks/useFaceSwapFeature.ts +0 -35
  72. package/src/features/face-swap/presentation/index.ts +0 -6
  73. package/src/features/hd-touch-up/README.md +0 -396
  74. package/src/features/hd-touch-up/domain/index.ts +0 -1
  75. package/src/features/hd-touch-up/domain/types/hd-touch-up.types.ts +0 -62
  76. package/src/features/hd-touch-up/domain/types/index.ts +0 -9
  77. package/src/features/hd-touch-up/index.ts +0 -21
  78. package/src/features/hd-touch-up/presentation/components/HDTouchUpFeature.tsx +0 -86
  79. package/src/features/hd-touch-up/presentation/components/index.ts +0 -2
  80. package/src/features/hd-touch-up/presentation/hooks/index.ts +0 -1
  81. package/src/features/hd-touch-up/presentation/hooks/useHDTouchUpFeature.ts +0 -23
  82. package/src/features/hd-touch-up/presentation/index.ts +0 -2
  83. package/src/features/image-to-image/README.md +0 -459
  84. package/src/features/image-to-image/domain/index.ts +0 -1
  85. package/src/features/image-to-image/domain/types/base.types.ts +0 -48
  86. package/src/features/image-to-image/domain/types/index.ts +0 -1
  87. package/src/features/image-to-image/domain/types/partials/config.types.ts +0 -37
  88. package/src/features/image-to-image/domain/types/partials/hook.types.ts +0 -53
  89. package/src/features/image-to-image/domain/types/partials/metadata.types.ts +0 -32
  90. package/src/features/image-to-image/domain/types/partials/result.types.ts +0 -44
  91. package/src/features/image-to-image/domain/types/partials/state.types.ts +0 -34
  92. package/src/features/image-to-image/domain/types/partials/translation.types.ts +0 -57
  93. package/src/features/image-to-image/index.ts +0 -2
  94. package/src/features/image-to-image/presentation/hooks/index.ts +0 -3
  95. package/src/features/image-to-image/presentation/hooks/useDualImageFeature.ts +0 -204
  96. package/src/features/image-to-image/presentation/hooks/useImageWithPromptFeature.ts +0 -223
  97. package/src/features/image-to-image/presentation/hooks/useSingleImageFeature.ts +0 -166
  98. package/src/features/image-to-image/presentation/index.ts +0 -1
  99. package/src/features/image-to-video/README.md +0 -414
  100. package/src/features/image-to-video/domain/constants/animation.constants.ts +0 -47
  101. package/src/features/image-to-video/domain/constants/duration.constants.ts +0 -13
  102. package/src/features/image-to-video/domain/constants/form.constants.ts +0 -22
  103. package/src/features/image-to-video/domain/constants/index.ts +0 -23
  104. package/src/features/image-to-video/domain/constants/music.constants.ts +0 -53
  105. package/src/features/image-to-video/domain/index.ts +0 -5
  106. package/src/features/image-to-video/domain/types/animation.types.ts +0 -20
  107. package/src/features/image-to-video/domain/types/config.types.ts +0 -56
  108. package/src/features/image-to-video/domain/types/duration.types.ts +0 -11
  109. package/src/features/image-to-video/domain/types/form.types.ts +0 -35
  110. package/src/features/image-to-video/domain/types/image-to-video.types.ts +0 -122
  111. package/src/features/image-to-video/domain/types/index.ts +0 -39
  112. package/src/features/image-to-video/domain/types/music.types.ts +0 -21
  113. package/src/features/image-to-video/index.ts +0 -116
  114. package/src/features/image-to-video/infrastructure/index.ts +0 -1
  115. package/src/features/image-to-video/infrastructure/services/image-to-video-executor.ts +0 -154
  116. package/src/features/image-to-video/infrastructure/services/index.ts +0 -5
  117. package/src/features/image-to-video/presentation/components/AddMoreCard.tsx +0 -52
  118. package/src/features/image-to-video/presentation/components/AnimationStyleSelector.tsx +0 -135
  119. package/src/features/image-to-video/presentation/components/DurationSelector.tsx +0 -110
  120. package/src/features/image-to-video/presentation/components/EmptyGridState.tsx +0 -69
  121. package/src/features/image-to-video/presentation/components/GridImageItem.tsx +0 -64
  122. package/src/features/image-to-video/presentation/components/ImageSelectionGrid.styles.ts +0 -84
  123. package/src/features/image-to-video/presentation/components/ImageSelectionGrid.tsx +0 -77
  124. package/src/features/image-to-video/presentation/components/ImageSelectionGrid.types.ts +0 -18
  125. package/src/features/image-to-video/presentation/components/MusicMoodSelector.tsx +0 -181
  126. package/src/features/image-to-video/presentation/components/index.ts +0 -30
  127. package/src/features/image-to-video/presentation/hooks/index.ts +0 -27
  128. package/src/features/image-to-video/presentation/hooks/useFormState.ts +0 -116
  129. package/src/features/image-to-video/presentation/hooks/useGeneration.ts +0 -85
  130. package/src/features/image-to-video/presentation/hooks/useGenerationExecution.ts +0 -143
  131. package/src/features/image-to-video/presentation/hooks/useImageToVideoFeature.ts +0 -107
  132. package/src/features/image-to-video/presentation/hooks/useImageToVideoForm.ts +0 -119
  133. package/src/features/image-to-video/presentation/hooks/useImageToVideoValidation.ts +0 -46
  134. package/src/features/image-to-video/presentation/index.ts +0 -5
  135. package/src/features/love-message/domain/constants.ts +0 -162
  136. package/src/features/love-message/domain/types.ts +0 -58
  137. package/src/features/love-message/index.ts +0 -37
  138. package/src/features/love-message/infrastructure/persistence/PartnerProfileRepository.ts +0 -52
  139. package/src/features/love-message/infrastructure/prompts/messagePromptBuilder.ts +0 -109
  140. package/src/features/love-message/infrastructure/services/LoveMessageService.ts +0 -35
  141. package/src/features/love-message/presentation/components/CategoryGrid.tsx +0 -88
  142. package/src/features/love-message/presentation/components/DetailsInput.tsx +0 -74
  143. package/src/features/love-message/presentation/components/ExploreHeader.tsx +0 -67
  144. package/src/features/love-message/presentation/components/FieldInput.tsx +0 -83
  145. package/src/features/love-message/presentation/components/GeneratorHeader.tsx +0 -88
  146. package/src/features/love-message/presentation/components/LoveMessageHeroSection.tsx +0 -114
  147. package/src/features/love-message/presentation/components/MessageListItem.tsx +0 -77
  148. package/src/features/love-message/presentation/components/MessageResult.tsx +0 -105
  149. package/src/features/love-message/presentation/components/PartnerInput.tsx +0 -78
  150. package/src/features/love-message/presentation/components/ProgressDots.tsx +0 -48
  151. package/src/features/love-message/presentation/components/StepDetails.tsx +0 -23
  152. package/src/features/love-message/presentation/components/StepPartner.tsx +0 -116
  153. package/src/features/love-message/presentation/components/StepVibe.tsx +0 -30
  154. package/src/features/love-message/presentation/components/ToneSelector.tsx +0 -100
  155. package/src/features/love-message/presentation/components/TrendingSection.tsx +0 -130
  156. package/src/features/love-message/presentation/components/TypeSelector.tsx +0 -99
  157. package/src/features/love-message/presentation/hooks/useLoveMessageGenerator.ts +0 -114
  158. package/src/features/love-message/presentation/hooks/usePartnerProfile.ts +0 -43
  159. package/src/features/love-message/presentation/navigation/LoveMessageStack.tsx +0 -39
  160. package/src/features/love-message/presentation/screens/LoveMessageExploreScreen.tsx +0 -53
  161. package/src/features/love-message/presentation/screens/LoveMessageGeneratorScreen.tsx +0 -169
  162. package/src/features/love-message/presentation/screens/MessageListScreen.tsx +0 -127
  163. package/src/features/love-message/presentation/screens/PartnerProfileScreen.tsx +0 -119
  164. package/src/features/meme-generator/README.md +0 -408
  165. package/src/features/meme-generator/index.ts +0 -3
  166. package/src/features/meme-generator/infrastructure/services/MemeGenerationService.ts +0 -87
  167. package/src/features/meme-generator/presentation/components/MemeGeneratorFeature.tsx +0 -180
  168. package/src/features/meme-generator/presentation/components/index.ts +0 -2
  169. package/src/features/meme-generator/presentation/screens/MemeGeneratorScreen.tsx +0 -168
  170. package/src/features/meme-generator/presentation/screens/index.ts +0 -1
  171. package/src/features/partner-upload/domain/types.ts +0 -59
  172. package/src/features/partner-upload/index.ts +0 -30
  173. package/src/features/partner-upload/presentation/components/PartnerInfoInput.tsx +0 -112
  174. package/src/features/partner-upload/presentation/components/PhotoTips.tsx +0 -53
  175. package/src/features/partner-upload/presentation/components/index.ts +0 -4
  176. package/src/features/partner-upload/presentation/hooks/index.ts +0 -7
  177. package/src/features/partner-upload/presentation/hooks/usePartnerStep.ts +0 -130
  178. package/src/features/partner-upload/presentation/screens/PartnerStepScreen.tsx +0 -231
  179. package/src/features/partner-upload/presentation/screens/index.ts +0 -6
  180. package/src/features/photo-restoration/README.md +0 -399
  181. package/src/features/photo-restoration/domain/index.ts +0 -1
  182. package/src/features/photo-restoration/domain/types/index.ts +0 -9
  183. package/src/features/photo-restoration/domain/types/photo-restore.types.ts +0 -64
  184. package/src/features/photo-restoration/index.ts +0 -22
  185. package/src/features/photo-restoration/presentation/components/PhotoRestoreFeature.tsx +0 -88
  186. package/src/features/photo-restoration/presentation/components/PhotoRestoreResultView.tsx +0 -86
  187. package/src/features/photo-restoration/presentation/components/index.ts +0 -4
  188. package/src/features/photo-restoration/presentation/hooks/index.ts +0 -1
  189. package/src/features/photo-restoration/presentation/hooks/usePhotoRestoreFeature.ts +0 -23
  190. package/src/features/photo-restoration/presentation/index.ts +0 -2
  191. package/src/features/remove-background/README.md +0 -393
  192. package/src/features/remove-background/domain/index.ts +0 -5
  193. package/src/features/remove-background/domain/types/index.ts +0 -7
  194. package/src/features/remove-background/domain/types/remove-background.types.ts +0 -28
  195. package/src/features/remove-background/index.ts +0 -19
  196. package/src/features/remove-background/presentation/components/RemoveBackgroundFeature.tsx +0 -86
  197. package/src/features/remove-background/presentation/components/index.ts +0 -2
  198. package/src/features/remove-background/presentation/hooks/index.ts +0 -1
  199. package/src/features/remove-background/presentation/hooks/useRemoveBackgroundFeature.ts +0 -28
  200. package/src/features/remove-background/presentation/index.ts +0 -6
  201. package/src/features/remove-object/README.md +0 -405
  202. package/src/features/remove-object/domain/index.ts +0 -5
  203. package/src/features/remove-object/domain/types/index.ts +0 -7
  204. package/src/features/remove-object/domain/types/remove-object.types.ts +0 -54
  205. package/src/features/remove-object/index.ts +0 -23
  206. package/src/features/remove-object/presentation/components/RemoveObjectFeature.tsx +0 -136
  207. package/src/features/remove-object/presentation/components/index.ts +0 -2
  208. package/src/features/remove-object/presentation/hooks/index.ts +0 -9
  209. package/src/features/remove-object/presentation/hooks/useRemoveObjectFeature.ts +0 -221
  210. package/src/features/remove-object/presentation/index.ts +0 -6
  211. package/src/features/replace-background/README.md +0 -405
  212. package/src/features/replace-background/domain/types/index.ts +0 -7
  213. package/src/features/replace-background/domain/types/replace-background.types.ts +0 -33
  214. package/src/features/replace-background/index.ts +0 -23
  215. package/src/features/replace-background/presentation/components/ReplaceBackgroundFeature.tsx +0 -105
  216. package/src/features/replace-background/presentation/components/index.ts +0 -6
  217. package/src/features/replace-background/presentation/hooks/index.ts +0 -9
  218. package/src/features/replace-background/presentation/hooks/useReplaceBackgroundFeature.ts +0 -55
  219. package/src/features/scenarios/domain/types.ts +0 -147
  220. package/src/features/scenarios/index.ts +0 -64
  221. package/src/features/scenarios/presentation/components/InspirationChips.tsx +0 -82
  222. package/src/features/scenarios/presentation/components/MagicPromptHeadline.tsx +0 -79
  223. package/src/features/scenarios/presentation/components/ScenarioGrid.tsx +0 -224
  224. package/src/features/scenarios/presentation/components/ScenarioHeader.tsx +0 -55
  225. package/src/features/scenarios/presentation/components/StyleSelector.tsx +0 -119
  226. package/src/features/scenarios/presentation/components/index.ts +0 -18
  227. package/src/features/scenarios/presentation/containers/CategoryNavigationContainer.tsx +0 -178
  228. package/src/features/scenarios/presentation/screens/HierarchicalScenarioListScreen.tsx +0 -266
  229. package/src/features/scenarios/presentation/screens/MagicPromptScreen.tsx +0 -242
  230. package/src/features/scenarios/presentation/screens/MainCategoryScreen.tsx +0 -198
  231. package/src/features/scenarios/presentation/screens/ScenarioPreviewScreen.tsx +0 -164
  232. package/src/features/scenarios/presentation/screens/ScenarioSelectorScreen.tsx +0 -66
  233. package/src/features/scenarios/presentation/screens/SubCategoryScreen.tsx +0 -216
  234. package/src/features/script-generator/README.md +0 -433
  235. package/src/features/script-generator/domain/constants/index.ts +0 -10
  236. package/src/features/script-generator/domain/types/script.types.ts +0 -30
  237. package/src/features/script-generator/index.ts +0 -5
  238. package/src/features/script-generator/infrastructure/services/ScriptGenerationService.ts +0 -62
  239. package/src/features/script-generator/presentation/components/ScriptDisplay.tsx +0 -158
  240. package/src/features/script-generator/presentation/components/VideoTypeSelector.tsx +0 -102
  241. package/src/features/script-generator/presentation/components/index.ts +0 -2
  242. package/src/features/script-generator/presentation/hooks/index.ts +0 -1
  243. package/src/features/script-generator/presentation/hooks/useScriptGenerator.ts +0 -77
  244. package/src/features/shared/README.md +0 -311
  245. package/src/features/shared/dual-image-video/domain/types/dual-image-video.types.ts +0 -88
  246. package/src/features/shared/dual-image-video/domain/types/index.ts +0 -14
  247. package/src/features/shared/dual-image-video/index.ts +0 -17
  248. package/src/features/shared/dual-image-video/presentation/hooks/index.ts +0 -5
  249. package/src/features/shared/dual-image-video/presentation/hooks/useDualImageVideoFeature.ts +0 -185
  250. package/src/features/shared/index.ts +0 -6
  251. package/src/features/text-to-image/README.md +0 -394
  252. package/src/features/text-to-image/domain/constants/index.ts +0 -8
  253. package/src/features/text-to-image/domain/constants/options.constants.ts +0 -39
  254. package/src/features/text-to-image/domain/constants/styles.constants.ts +0 -34
  255. package/src/features/text-to-image/domain/index.ts +0 -7
  256. package/src/features/text-to-image/domain/types/config.types.ts +0 -75
  257. package/src/features/text-to-image/domain/types/form.types.ts +0 -58
  258. package/src/features/text-to-image/domain/types/index.ts +0 -38
  259. package/src/features/text-to-image/domain/types/text-to-image.types.ts +0 -58
  260. package/src/features/text-to-image/index.ts +0 -116
  261. package/src/features/text-to-image/infrastructure/index.ts +0 -1
  262. package/src/features/text-to-image/infrastructure/services/index.ts +0 -5
  263. package/src/features/text-to-image/infrastructure/services/text-to-image-executor.ts +0 -147
  264. package/src/features/text-to-image/presentation/components/index.ts +0 -30
  265. package/src/features/text-to-image/presentation/hooks/index.ts +0 -30
  266. package/src/features/text-to-image/presentation/hooks/useFormState.ts +0 -103
  267. package/src/features/text-to-image/presentation/hooks/useGeneration.ts +0 -139
  268. package/src/features/text-to-image/presentation/hooks/useTextToImageFeature.ts +0 -111
  269. package/src/features/text-to-image/presentation/hooks/useTextToImageForm.ts +0 -58
  270. package/src/features/text-to-image/presentation/index.ts +0 -7
  271. package/src/features/text-to-video/README.md +0 -412
  272. package/src/features/text-to-video/domain/index.ts +0 -1
  273. package/src/features/text-to-video/domain/types/callback.types.ts +0 -69
  274. package/src/features/text-to-video/domain/types/component.types.ts +0 -106
  275. package/src/features/text-to-video/domain/types/config.types.ts +0 -61
  276. package/src/features/text-to-video/domain/types/index.ts +0 -56
  277. package/src/features/text-to-video/domain/types/request.types.ts +0 -36
  278. package/src/features/text-to-video/domain/types/state.types.ts +0 -53
  279. package/src/features/text-to-video/index.ts +0 -68
  280. package/src/features/text-to-video/infrastructure/index.ts +0 -1
  281. package/src/features/text-to-video/infrastructure/services/index.ts +0 -5
  282. package/src/features/text-to-video/infrastructure/services/text-to-video-executor.ts +0 -141
  283. package/src/features/text-to-video/presentation/components/FrameSelector.tsx +0 -153
  284. package/src/features/text-to-video/presentation/components/GenerationTabs.tsx +0 -73
  285. package/src/features/text-to-video/presentation/components/HeroSection.tsx +0 -61
  286. package/src/features/text-to-video/presentation/components/HintCarousel.tsx +0 -96
  287. package/src/features/text-to-video/presentation/components/OptionsPanel.tsx +0 -121
  288. package/src/features/text-to-video/presentation/components/index.ts +0 -10
  289. package/src/features/text-to-video/presentation/hooks/index.ts +0 -17
  290. package/src/features/text-to-video/presentation/hooks/useTextToVideoFeature.ts +0 -225
  291. package/src/features/text-to-video/presentation/hooks/useTextToVideoForm.ts +0 -134
  292. package/src/features/text-to-video/presentation/index.ts +0 -7
  293. package/src/features/text-to-voice/README.md +0 -445
  294. package/src/features/text-to-voice/domain/index.ts +0 -1
  295. package/src/features/text-to-voice/domain/types/component.types.ts +0 -91
  296. package/src/features/text-to-voice/domain/types/config.types.ts +0 -34
  297. package/src/features/text-to-voice/domain/types/form.types.ts +0 -39
  298. package/src/features/text-to-voice/domain/types/generation.types.ts +0 -43
  299. package/src/features/text-to-voice/domain/types/index.ts +0 -38
  300. package/src/features/text-to-voice/index.ts +0 -53
  301. package/src/features/text-to-voice/infrastructure/index.ts +0 -1
  302. package/src/features/text-to-voice/infrastructure/services/index.ts +0 -4
  303. package/src/features/text-to-voice/infrastructure/services/text-to-voice-executor.ts +0 -103
  304. package/src/features/text-to-voice/presentation/components/TextToVoiceAudioPlayer.tsx +0 -81
  305. package/src/features/text-to-voice/presentation/components/index.ts +0 -7
  306. package/src/features/text-to-voice/presentation/hooks/index.ts +0 -6
  307. package/src/features/text-to-voice/presentation/hooks/useTextToVoiceForm.ts +0 -91
  308. package/src/features/text-to-voice/presentation/hooks/useTextToVoiceGeneration.ts +0 -116
  309. package/src/features/text-to-voice/presentation/index.ts +0 -2
  310. package/src/features/upscaling/README.md +0 -396
  311. package/src/features/upscaling/domain/index.ts +0 -1
  312. package/src/features/upscaling/domain/types/index.ts +0 -1
  313. package/src/features/upscaling/domain/types/upscale.types.ts +0 -23
  314. package/src/features/upscaling/index.ts +0 -20
  315. package/src/features/upscaling/presentation/components/ComparisonSlider.tsx +0 -200
  316. package/src/features/upscaling/presentation/components/UpscaleFeature.tsx +0 -89
  317. package/src/features/upscaling/presentation/components/UpscaleResultView.tsx +0 -98
  318. package/src/features/upscaling/presentation/components/index.ts +0 -6
  319. package/src/features/upscaling/presentation/hooks/index.ts +0 -1
  320. package/src/features/upscaling/presentation/hooks/useUpscaleFeature.ts +0 -28
  321. package/src/features/upscaling/presentation/index.ts +0 -2
  322. package/src/features/wizard/domain/types.ts +0 -154
  323. package/src/features/wizard/index.ts +0 -43
  324. package/src/features/wizard/presentation/components/AIFeatureWizard.tsx +0 -231
  325. package/src/features/wizard/presentation/components/AIGenerationWizard.tsx +0 -132
  326. package/src/features/wizard/presentation/hooks/useWizard.ts +0 -120
  327. 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.2",
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
+ }