@umituz/react-native-ai-generation-content 1.65.1 → 1.65.3

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 (153) hide show
  1. package/package.json +1 -1
  2. package/src/domain/constants/processing-modes-catalog.constants.ts +97 -0
  3. package/src/domain/constants/processing-modes-filters.ts +34 -0
  4. package/src/domain/constants/processing-modes-getters.ts +20 -0
  5. package/src/domain/constants/processing-modes.constants.ts +8 -134
  6. package/src/domain/entities/feature-flow-config.types.ts +17 -0
  7. package/src/domain/entities/flow-actions.types.ts +26 -0
  8. package/src/domain/entities/flow-config-data.types.ts +41 -0
  9. package/src/domain/entities/flow-config.types.ts +17 -169
  10. package/src/domain/entities/flow-configuration.types.ts +44 -0
  11. package/src/domain/entities/flow-state.types.ts +30 -0
  12. package/src/domain/entities/flow-step.types.ts +56 -0
  13. package/src/domain/entities/scenario-step-config.types.ts +32 -0
  14. package/src/domain/entities/step-config.types.ts +14 -129
  15. package/src/domain/entities/step-definition.types.ts +50 -0
  16. package/src/domain/entities/step-input-config.types.ts +36 -0
  17. package/src/domain/entities/step-upload-config.types.ts +17 -0
  18. package/src/domain/interfaces/ai-provider-capabilities.types.ts +27 -0
  19. package/src/domain/interfaces/ai-provider-config.types.ts +30 -0
  20. package/src/domain/interfaces/ai-provider-feature-types.ts +22 -0
  21. package/src/domain/interfaces/ai-provider-input.types.ts +28 -0
  22. package/src/domain/interfaces/ai-provider-progress.types.ts +37 -0
  23. package/src/domain/interfaces/ai-provider-status.types.ts +41 -0
  24. package/src/domain/interfaces/ai-provider.interface.ts +32 -142
  25. package/src/domain/types/result-constructors.ts +20 -0
  26. package/src/domain/types/result-guards.ts +20 -0
  27. package/src/domain/types/result-transformers.ts +36 -0
  28. package/src/domain/types/result-type-definitions.ts +27 -0
  29. package/src/domain/types/result-unwrappers.ts +28 -0
  30. package/src/domain/types/result.types.ts +11 -100
  31. package/src/domains/background/infrastructure/utils/polling-interval.util.ts +3 -8
  32. package/src/domains/background/infrastructure/utils/result-validation-logic.ts +88 -0
  33. package/src/domains/background/infrastructure/utils/result-validator-constants.ts +18 -0
  34. package/src/domains/background/infrastructure/utils/result-validator.types.ts +16 -0
  35. package/src/domains/background/infrastructure/utils/result-validator.util.ts +8 -109
  36. package/src/domains/background/infrastructure/utils/status-checker.types.ts +11 -0
  37. package/src/domains/background/infrastructure/utils/status-checker.util.ts +9 -119
  38. package/src/domains/background/infrastructure/utils/status-error-detector.ts +61 -0
  39. package/src/domains/background/infrastructure/utils/status-extraction-helpers.ts +25 -0
  40. package/src/domains/background/infrastructure/utils/status-predicates.ts +37 -0
  41. package/src/domains/creations/domain-exports.ts +79 -0
  42. package/src/domains/creations/index.ts +9 -169
  43. package/src/domains/creations/infrastructure-exports.ts +9 -0
  44. package/src/domains/creations/presentation-exports.ts +59 -0
  45. package/src/domains/generation/infrastructure/executors/text-to-image-executor.helpers.ts +81 -0
  46. package/src/domains/generation/infrastructure/executors/text-to-image-executor.ts +4 -100
  47. package/src/domains/generation/infrastructure/executors/text-to-image-executor.types.ts +19 -0
  48. package/src/domains/generation/infrastructure/flow/use-flow-store.types.ts +19 -0
  49. package/src/domains/generation/infrastructure/flow/useFlowStore.ts +33 -65
  50. package/src/domains/generation/wizard/domain/entities/wizard-config-builder.ts +75 -0
  51. package/src/domains/generation/wizard/domain/entities/wizard-feature-config.types.ts +29 -0
  52. package/src/domains/generation/wizard/domain/entities/wizard-feature.types.ts +9 -114
  53. package/src/domains/generation/wizard/domain/entities/wizard-presets.constants.ts +23 -0
  54. package/src/domains/generation/wizard/infrastructure/strategies/shared/unified-prompt-builder.ts +1 -1
  55. package/src/domains/generation/wizard/infrastructure/utils/creation-persistence-factory.ts +33 -0
  56. package/src/domains/generation/wizard/infrastructure/utils/creation-persistence.types.ts +22 -0
  57. package/src/domains/generation/wizard/infrastructure/utils/creation-persistence.util.ts +11 -135
  58. package/src/domains/generation/wizard/infrastructure/utils/creation-save-operations.ts +48 -0
  59. package/src/domains/generation/wizard/infrastructure/utils/creation-update-operations.ts +72 -0
  60. package/src/domains/generation/wizard/presentation/hooks/use-video-queue-generation.types.ts +21 -0
  61. package/src/domains/generation/wizard/presentation/hooks/useVideoQueueGeneration.ts +14 -35
  62. package/src/domains/image-to-video/domain/types/image-to-video-callbacks.types.ts +33 -0
  63. package/src/domains/image-to-video/domain/types/image-to-video-config.types.ts +29 -0
  64. package/src/domains/image-to-video/domain/types/image-to-video-request.types.ts +31 -0
  65. package/src/domains/image-to-video/domain/types/image-to-video-result.types.ts +17 -0
  66. package/src/domains/image-to-video/domain/types/image-to-video-state.types.ts +24 -0
  67. package/src/domains/image-to-video/domain/types/image-to-video.types.ts +24 -114
  68. package/src/domains/image-to-video/infrastructure/services/image-to-video-executor.ts +26 -99
  69. package/src/domains/image-to-video/infrastructure/services/image-to-video-executor.types.ts +15 -0
  70. package/src/domains/prompts/domain/base/constants.ts +47 -0
  71. package/src/domains/prompts/domain/base/creators.ts +76 -0
  72. package/src/domains/prompts/domain/base/types.ts +10 -0
  73. package/src/domains/prompts/domain/entities/MultiPersonPromptStructure.ts +1 -1
  74. package/src/domains/prompts/index.ts +4 -2
  75. package/src/domains/prompts/infrastructure/services/ImagePromptBuilder.ts +2 -72
  76. package/src/domains/prompts/infrastructure/services/image-prompt-builder.types.ts +17 -0
  77. package/src/domains/result-preview/presentation/types/result-components.types.ts +47 -0
  78. package/src/domains/result-preview/presentation/types/result-creation.types.ts +14 -0
  79. package/src/domains/result-preview/presentation/types/result-data.types.ts +35 -0
  80. package/src/domains/result-preview/presentation/types/result-hooks.types.ts +35 -0
  81. package/src/domains/result-preview/presentation/types/result-preview.types.ts +19 -182
  82. package/src/domains/result-preview/presentation/types/result-screen.types.ts +69 -0
  83. package/src/domains/text-to-image/domain-exports.ts +50 -0
  84. package/src/domains/text-to-image/index.ts +11 -102
  85. package/src/domains/text-to-image/infrastructure-exports.ts +6 -0
  86. package/src/domains/text-to-image/presentation/hooks/useFormState.ts +39 -24
  87. package/src/domains/text-to-image/presentation/hooks/useGeneration.ts +6 -4
  88. package/src/domains/text-to-image/presentation/screens/TextToImageWizardFlow.tsx +5 -3
  89. package/src/domains/text-to-image/presentation-exports.ts +41 -0
  90. package/src/domains/text-to-video/domain/types/action-component.types.ts +15 -0
  91. package/src/domains/text-to-video/domain/types/component.types.ts +16 -103
  92. package/src/domains/text-to-video/domain/types/content-component.types.ts +30 -0
  93. package/src/domains/text-to-video/domain/types/panel-component.types.ts +24 -0
  94. package/src/domains/text-to-video/domain/types/selector-component.types.ts +31 -0
  95. package/src/domains/text-to-video/domain/types/tab-component.types.ts +26 -0
  96. package/src/index.ts +0 -10
  97. package/src/infrastructure/executors/base-executor.ts +40 -112
  98. package/src/infrastructure/executors/base-executor.types.ts +10 -0
  99. package/src/infrastructure/http/http-client-methods.ts +73 -0
  100. package/src/infrastructure/http/http-client.util.ts +8 -163
  101. package/src/infrastructure/http/http-fetch-handler.ts +53 -0
  102. package/src/infrastructure/http/http-methods.constants.ts +23 -0
  103. package/src/infrastructure/http/http-request-executor.ts +49 -0
  104. package/src/infrastructure/http/http-response-parser.ts +53 -0
  105. package/src/infrastructure/orchestration/GenerationOrchestrator.ts +8 -43
  106. package/src/infrastructure/utils/classifier-helpers.ts +36 -0
  107. package/src/infrastructure/utils/content-validators.ts +92 -0
  108. package/src/infrastructure/utils/domain-guards.ts +22 -0
  109. package/src/infrastructure/utils/error-classification.ts +122 -0
  110. package/src/infrastructure/utils/error-classifier.util.ts +8 -181
  111. package/src/infrastructure/utils/error-classifiers.ts +49 -0
  112. package/src/infrastructure/utils/error-extractors.ts +42 -0
  113. package/src/infrastructure/utils/error-factory.ts +25 -0
  114. package/src/infrastructure/utils/error-handlers.ts +51 -0
  115. package/src/infrastructure/utils/error-handling.util.ts +7 -186
  116. package/src/infrastructure/utils/error-message-extractor.util.ts +10 -172
  117. package/src/infrastructure/utils/error-retry.ts +44 -0
  118. package/src/infrastructure/utils/error-types.ts +23 -0
  119. package/src/infrastructure/utils/extraction-types.ts +37 -0
  120. package/src/infrastructure/utils/fal-error-checker.ts +44 -0
  121. package/src/infrastructure/utils/general-validators.ts +64 -0
  122. package/src/infrastructure/utils/id-validators.ts +39 -0
  123. package/src/infrastructure/utils/message-extractor.ts +89 -0
  124. package/src/infrastructure/utils/primitive-guards.ts +66 -0
  125. package/src/infrastructure/utils/result-polling.ts +39 -0
  126. package/src/infrastructure/utils/structure-guards.ts +75 -0
  127. package/src/infrastructure/utils/type-guards.util.ts +22 -149
  128. package/src/infrastructure/utils/validation-types.ts +8 -0
  129. package/src/infrastructure/utils/validation.util.ts +14 -184
  130. package/src/presentation/hooks/ai-feature-callbacks-auth.hooks.ts +43 -0
  131. package/src/presentation/hooks/ai-feature-callbacks-cost.hooks.ts +56 -0
  132. package/src/presentation/hooks/ai-feature-callbacks-execution.hooks.ts +66 -0
  133. package/src/presentation/hooks/ai-feature-callbacks.types.ts +69 -0
  134. package/src/presentation/hooks/generation/use-image-generation.types.ts +39 -0
  135. package/src/presentation/hooks/generation/useImageGeneration.ts +33 -99
  136. package/src/presentation/hooks/generation-flow-navigation.ts +58 -0
  137. package/src/presentation/hooks/generation-flow-updates.ts +67 -0
  138. package/src/presentation/hooks/generation-flow.types.ts +32 -0
  139. package/src/presentation/hooks/useAIFeatureCallbacks.ts +48 -138
  140. package/src/presentation/hooks/useGenerationFlow.ts +40 -136
  141. package/src/presentation/types/flow-config.types.ts +9 -140
  142. package/src/presentation/types/flow-generation-config.types.ts +25 -0
  143. package/src/presentation/types/flow-state.types.ts +16 -0
  144. package/src/presentation/types/flow-step-configs.types.ts +48 -0
  145. package/src/presentation/types/flow-step-data.types.ts +24 -0
  146. package/src/presentation/types/result-actions.types.ts +50 -0
  147. package/src/presentation/types/result-config.types.ts +22 -171
  148. package/src/presentation/types/result-header.types.ts +44 -0
  149. package/src/presentation/types/result-image.types.ts +29 -0
  150. package/src/presentation/types/result-layout.types.ts +26 -0
  151. package/src/presentation/types/result-story.types.ts +42 -0
  152. package/src/domains/prompts/domain/entities/BasePromptStructure.ts +0 -168
  153. package/src/exports/domains.ts +0 -149
@@ -1,104 +1,24 @@
1
1
  /**
2
- * Result Preview Configuration Types
2
+ * Result Preview Configuration Types - Barrel Export
3
3
  * Allows main apps to customize result preview appearance and behavior
4
4
  */
5
5
 
6
- export interface ResultHeaderConfig {
7
- showTitle?: boolean;
8
- showDate?: boolean;
9
- showDateIcon?: boolean;
10
- titleAlignment?: "left" | "center" | "right";
11
- titleFontSize?: number;
12
- titleFontWeight?:
13
- | "normal"
14
- | "bold"
15
- | "100"
16
- | "200"
17
- | "300"
18
- | "400"
19
- | "500"
20
- | "600"
21
- | "700"
22
- | "800"
23
- | "900";
24
- dateBadgeStyle?: "outline" | "filled" | "minimal";
25
- spacing?: {
26
- marginBottom?: number;
27
- titleMarginBottom?: number;
28
- paddingHorizontal?: number;
29
- };
30
- }
31
-
32
- export interface ResultImageConfig {
33
- aspectRatio?: number;
34
- borderRadius?: number;
35
- showBadge?: boolean;
36
- badgePosition?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
37
- badgeStyle?: "dark" | "light";
38
- badgeIcon?: string;
39
- spacing?: {
40
- marginBottom?: number;
41
- paddingHorizontal?: number;
42
- };
43
- }
44
-
45
- export interface ResultStoryConfig {
46
- showQuotes?: boolean;
47
- textAlignment?: "left" | "center" | "right";
48
- fontSize?: number;
49
- fontStyle?: "normal" | "italic";
50
- fontWeight?:
51
- | "normal"
52
- | "bold"
53
- | "100"
54
- | "200"
55
- | "300"
56
- | "400"
57
- | "500"
58
- | "600"
59
- | "700"
60
- | "800"
61
- | "900";
62
- borderStyle?: "outline" | "filled";
63
- spacing?: {
64
- marginBottom?: number;
65
- paddingHorizontal?: number;
66
- padding?: number;
67
- };
68
- }
69
-
70
- export interface ResultActionButton {
71
- enabled?: boolean;
72
- label?: string;
73
- icon?: string;
74
- variant?: "primary" | "secondary" | "outline" | "text";
75
- position?: "top" | "bottom";
76
- }
77
-
78
- export interface ResultActionsConfig {
79
- share?: ResultActionButton;
80
- save?: ResultActionButton;
81
- retry?: ResultActionButton;
82
- layout?: "horizontal" | "vertical" | "grid";
83
- buttonSpacing?: number;
84
- spacing?: {
85
- paddingHorizontal?: number;
86
- paddingBottom?: number;
87
- };
88
- }
89
-
90
- export interface ResultLayoutConfig {
91
- maxWidth?: number;
92
- maxHeight?: string | number;
93
- borderRadius?: number;
94
- backgroundColor?: string;
95
- scrollEnabled?: boolean;
96
- contentPadding?: {
97
- top?: number;
98
- bottom?: number;
99
- horizontal?: number;
100
- };
101
- }
6
+ export type { ResultHeaderConfig } from "./result-header.types";
7
+ export type { ResultImageConfig } from "./result-image.types";
8
+ export type { ResultStoryConfig } from "./result-story.types";
9
+ export type { ResultActionButton, ResultActionsConfig } from "./result-actions.types";
10
+ export type { ResultLayoutConfig } from "./result-layout.types";
11
+
12
+ import type { ResultHeaderConfig } from "./result-header.types";
13
+ import type { ResultImageConfig } from "./result-image.types";
14
+ import type { ResultStoryConfig } from "./result-story.types";
15
+ import type { ResultActionsConfig } from "./result-actions.types";
16
+ import type { ResultLayoutConfig } from "./result-layout.types";
17
+ import { DEFAULT_HEADER_CONFIG } from "./result-header.types";
18
+ import { DEFAULT_IMAGE_CONFIG } from "./result-image.types";
19
+ import { DEFAULT_STORY_CONFIG } from "./result-story.types";
20
+ import { DEFAULT_ACTIONS_CONFIG } from "./result-actions.types";
21
+ import { DEFAULT_LAYOUT_CONFIG } from "./result-layout.types";
102
22
 
103
23
  /**
104
24
  * Complete Result Preview Configuration
@@ -117,78 +37,9 @@ export interface ResultConfig {
117
37
  * Used when no config is provided by main app
118
38
  */
119
39
  export const DEFAULT_RESULT_CONFIG: ResultConfig = {
120
- header: {
121
- showTitle: true,
122
- showDate: true,
123
- showDateIcon: true,
124
- titleAlignment: "center",
125
- titleFontSize: 24,
126
- titleFontWeight: "800",
127
- dateBadgeStyle: "filled",
128
- spacing: {
129
- marginBottom: 20,
130
- titleMarginBottom: 12,
131
- paddingHorizontal: 24,
132
- },
133
- },
134
- image: {
135
- aspectRatio: 1,
136
- borderRadius: 20,
137
- showBadge: true,
138
- badgePosition: "top-right",
139
- badgeStyle: "dark",
140
- badgeIcon: "sparkles",
141
- spacing: {
142
- marginBottom: 20,
143
- paddingHorizontal: 20,
144
- },
145
- },
146
- story: {
147
- showQuotes: true,
148
- textAlignment: "center",
149
- fontSize: 14,
150
- fontStyle: "italic",
151
- fontWeight: "500",
152
- borderStyle: "filled",
153
- spacing: {
154
- marginBottom: 20,
155
- paddingHorizontal: 20,
156
- padding: 20,
157
- },
158
- },
159
- actions: {
160
- share: {
161
- enabled: true,
162
- icon: "share-social",
163
- variant: "primary",
164
- position: "bottom",
165
- },
166
- save: {
167
- enabled: true,
168
- icon: "download",
169
- variant: "secondary",
170
- position: "bottom",
171
- },
172
- retry: {
173
- enabled: true,
174
- icon: "refresh",
175
- variant: "outline",
176
- position: "bottom",
177
- },
178
- layout: "horizontal",
179
- buttonSpacing: 10,
180
- spacing: {
181
- paddingHorizontal: 20,
182
- paddingBottom: 20,
183
- },
184
- },
185
- layout: {
186
- borderRadius: 28,
187
- scrollEnabled: true,
188
- contentPadding: {
189
- top: 24,
190
- bottom: 20,
191
- horizontal: 0,
192
- },
193
- },
40
+ header: DEFAULT_HEADER_CONFIG,
41
+ image: DEFAULT_IMAGE_CONFIG,
42
+ story: DEFAULT_STORY_CONFIG,
43
+ actions: DEFAULT_ACTIONS_CONFIG,
44
+ layout: DEFAULT_LAYOUT_CONFIG,
194
45
  };
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Result Header Configuration Types
3
+ */
4
+
5
+ export interface ResultHeaderConfig {
6
+ showTitle?: boolean;
7
+ showDate?: boolean;
8
+ showDateIcon?: boolean;
9
+ titleAlignment?: "left" | "center" | "right";
10
+ titleFontSize?: number;
11
+ titleFontWeight?:
12
+ | "normal"
13
+ | "bold"
14
+ | "100"
15
+ | "200"
16
+ | "300"
17
+ | "400"
18
+ | "500"
19
+ | "600"
20
+ | "700"
21
+ | "800"
22
+ | "900";
23
+ dateBadgeStyle?: "outline" | "filled" | "minimal";
24
+ spacing?: {
25
+ marginBottom?: number;
26
+ titleMarginBottom?: number;
27
+ paddingHorizontal?: number;
28
+ };
29
+ }
30
+
31
+ export const DEFAULT_HEADER_CONFIG: ResultHeaderConfig = {
32
+ showTitle: true,
33
+ showDate: true,
34
+ showDateIcon: true,
35
+ titleAlignment: "center",
36
+ titleFontSize: 24,
37
+ titleFontWeight: "800",
38
+ dateBadgeStyle: "filled",
39
+ spacing: {
40
+ marginBottom: 20,
41
+ titleMarginBottom: 12,
42
+ paddingHorizontal: 24,
43
+ },
44
+ };
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Result Image Configuration Types
3
+ */
4
+
5
+ export interface ResultImageConfig {
6
+ aspectRatio?: number;
7
+ borderRadius?: number;
8
+ showBadge?: boolean;
9
+ badgePosition?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
10
+ badgeStyle?: "dark" | "light";
11
+ badgeIcon?: string;
12
+ spacing?: {
13
+ marginBottom?: number;
14
+ paddingHorizontal?: number;
15
+ };
16
+ }
17
+
18
+ export const DEFAULT_IMAGE_CONFIG: ResultImageConfig = {
19
+ aspectRatio: 1,
20
+ borderRadius: 20,
21
+ showBadge: true,
22
+ badgePosition: "top-right",
23
+ badgeStyle: "dark",
24
+ badgeIcon: "sparkles",
25
+ spacing: {
26
+ marginBottom: 20,
27
+ paddingHorizontal: 20,
28
+ },
29
+ };
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Result Layout Configuration Types
3
+ */
4
+
5
+ export interface ResultLayoutConfig {
6
+ maxWidth?: number;
7
+ maxHeight?: string | number;
8
+ borderRadius?: number;
9
+ backgroundColor?: string;
10
+ scrollEnabled?: boolean;
11
+ contentPadding?: {
12
+ top?: number;
13
+ bottom?: number;
14
+ horizontal?: number;
15
+ };
16
+ }
17
+
18
+ export const DEFAULT_LAYOUT_CONFIG: ResultLayoutConfig = {
19
+ borderRadius: 28,
20
+ scrollEnabled: true,
21
+ contentPadding: {
22
+ top: 24,
23
+ bottom: 20,
24
+ horizontal: 0,
25
+ },
26
+ };
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Result Story Configuration Types
3
+ */
4
+
5
+ export interface ResultStoryConfig {
6
+ showQuotes?: boolean;
7
+ textAlignment?: "left" | "center" | "right";
8
+ fontSize?: number;
9
+ fontStyle?: "normal" | "italic";
10
+ fontWeight?:
11
+ | "normal"
12
+ | "bold"
13
+ | "100"
14
+ | "200"
15
+ | "300"
16
+ | "400"
17
+ | "500"
18
+ | "600"
19
+ | "700"
20
+ | "800"
21
+ | "900";
22
+ borderStyle?: "outline" | "filled";
23
+ spacing?: {
24
+ marginBottom?: number;
25
+ paddingHorizontal?: number;
26
+ padding?: number;
27
+ };
28
+ }
29
+
30
+ export const DEFAULT_STORY_CONFIG: ResultStoryConfig = {
31
+ showQuotes: true,
32
+ textAlignment: "center",
33
+ fontSize: 14,
34
+ fontStyle: "italic",
35
+ fontWeight: "500",
36
+ borderStyle: "filled",
37
+ spacing: {
38
+ marginBottom: 20,
39
+ paddingHorizontal: 20,
40
+ padding: 20,
41
+ },
42
+ };
@@ -1,168 +0,0 @@
1
- /**
2
- * Base Prompt Structure for AI Image Generation
3
- * Optimized for character identity preservation and photorealistic output
4
- *
5
- * This module provides core prompt building blocks that ensure:
6
- * - Strict facial identity preservation
7
- * - High-quality photorealistic rendering
8
- * - Consistent character appearance across generations
9
- * - Professional photography standards
10
- */
11
-
12
- /**
13
- * Core identity preservation instruction
14
- * This is the foundation for maintaining facial consistency
15
- * Updated with stricter rules based on AI image generation best practices
16
- */
17
- export const IDENTITY_PRESERVATION_CORE = `CRITICAL IDENTITY PRESERVATION (HIGHEST PRIORITY):
18
- {
19
- "policy": "PRESERVE 100% IDENTICAL FACIAL APPEARANCE FROM INPUT",
20
- "mandatory_rules": [
21
- "The face must be EXACTLY as it appears in the reference photo - 100% identical",
22
- "Preserve every facial detail: bone structure, eye shape, eye color, nose shape, lip shape",
23
- "Keep the person instantly recognizable - any deviation is NOT acceptable"
24
- ],
25
- "forbidden_modifications": [
26
- "Do NOT change face shape or facial proportions",
27
- "Do NOT alter eye color, eye shape, or eye spacing",
28
- "Do NOT modify nose shape, size, or position",
29
- "Do NOT change lip shape, thickness, or natural expression",
30
- "Do NOT remove natural features like freckles, moles, or wrinkles"
31
- ],
32
- "verification": "Before output: confirm face matches reference photo with 100% accuracy"
33
- }`;
34
-
35
- /**
36
- * Photorealistic rendering instruction
37
- */
38
- export const PHOTOREALISTIC_RENDERING = `PHOTOREALISTIC RENDERING REQUIREMENTS:
39
- {
40
- "style": "PHOTOREALISTIC PHOTOGRAPH",
41
- "quality": "high quality, professional photography",
42
- "lighting": "Natural lighting with realistic shadows and highlights",
43
- "prohibited": "STRICTLY NO anime, cartoons, illustrations, sketches, 3D renders, or non-photorealistic styles",
44
- "output": "Must look like a real photograph"
45
- }`;
46
-
47
- /**
48
- * Character pose and framing guidelines
49
- * Prevents absurd poses and ensures natural positioning
50
- */
51
- export const NATURAL_POSE_GUIDELINES = `NATURAL POSE AND FRAMING:
52
- {
53
- "framing": "Medium-shot cinematic portrait (waist-up or full-body as appropriate)",
54
- "pose": "Natural, relaxed pose - standing, sitting, or contextually appropriate position",
55
- "eye_contact": "Looking directly at the camera with natural expression",
56
- "body_language": "Confident, natural body language without exaggerated or awkward positions",
57
- "interaction": "If multiple people: standing side-by-side, close together, or naturally interacting",
58
- "avoid": "NO absurd poses, unnatural contortions, or physically impossible positions"
59
- }`;
60
-
61
- /**
62
- * Complete base prompt combining all core elements
63
- */
64
- export const MASTER_BASE_PROMPT = `${IDENTITY_PRESERVATION_CORE}
65
-
66
- ${PHOTOREALISTIC_RENDERING}
67
-
68
- ${NATURAL_POSE_GUIDELINES}`;
69
-
70
- /**
71
- * Creates a complete photorealistic AI prompt with identity preservation
72
- *
73
- * @param scenarioPrompt - The specific scenario description
74
- * @param options - Optional customization
75
- * @returns Complete AI-ready prompt
76
- */
77
- export interface CreatePromptOptions {
78
- /** Include identity preservation instructions (default: true) */
79
- includeIdentityPreservation?: boolean;
80
- /** Include photorealistic rendering instructions (default: true) */
81
- includePhotoRealism?: boolean;
82
- /** Include natural pose guidelines (default: true) */
83
- includePoseGuidelines?: boolean;
84
- /** Additional custom instructions */
85
- customInstructions?: string;
86
- }
87
-
88
- export const createPhotorealisticPrompt = (
89
- scenarioPrompt: string,
90
- options: CreatePromptOptions = {}
91
- ): string => {
92
- const {
93
- includeIdentityPreservation = true,
94
- includePhotoRealism = true,
95
- includePoseGuidelines = true,
96
- customInstructions,
97
- } = options;
98
-
99
- const parts: string[] = [];
100
-
101
- if (includeIdentityPreservation) {
102
- parts.push(IDENTITY_PRESERVATION_CORE);
103
- }
104
-
105
- if (includePhotoRealism) {
106
- parts.push(PHOTOREALISTIC_RENDERING);
107
- }
108
-
109
- if (includePoseGuidelines) {
110
- parts.push(NATURAL_POSE_GUIDELINES);
111
- }
112
-
113
- if (customInstructions) {
114
- parts.push(customInstructions);
115
- }
116
-
117
- parts.push(`\nSCENARIO DESCRIPTION:\n${scenarioPrompt}`);
118
-
119
- return parts.join('\n\n');
120
- };
121
-
122
- /**
123
- * Creates a transformation prompt for costume/style changes
124
- * Maintains identity while changing appearance
125
- *
126
- * @param styleName - Name of the target style/theme
127
- * @param costume - Costume/clothing description
128
- * @param background - Background/environment description
129
- * @returns Complete transformation prompt
130
- */
131
- export const createTransformationPrompt = (
132
- styleName: string,
133
- costume: string,
134
- background: string,
135
- ): string => `
136
- ${IDENTITY_PRESERVATION_CORE}
137
-
138
- ${PHOTOREALISTIC_RENDERING}
139
-
140
- TRANSFORMATION REQUEST:
141
- {
142
- "target_theme": "${styleName}",
143
- "modifications": {
144
- "clothing_update": "${costume.replace(/\n/g, ' ').trim()}",
145
- "environment_update": "${background.replace(/\n/g, ' ').trim()}"
146
- },
147
- "visual_constraints": {
148
- "style_matching": "Render as a premium photograph",
149
- "face_preservation": "Maintain 100% identity of the person",
150
- "lighting": "Realistic professional recording lighting",
151
- "pose": "Natural, contextually appropriate pose"
152
- }
153
- }
154
-
155
- FINAL COMMAND: Transform the input person into a photorealistic ${styleName}. The result MUST be a real-life looking person in high-quality ${styleName} attire, maintaining perfect facial identity.`;
156
-
157
- /**
158
- * Simplified prompt for scenarios that already include detailed instructions
159
- * Adds only the essential identity preservation layer
160
- *
161
- * @param existingPrompt - The existing detailed prompt
162
- * @returns Enhanced prompt with identity preservation
163
- */
164
- export const enhanceExistingPrompt = (existingPrompt: string): string => {
165
- return `${IDENTITY_PRESERVATION_CORE}
166
-
167
- ${existingPrompt}`;
168
- };
@@ -1,149 +0,0 @@
1
- /**
2
- * Domain Modules Exports
3
- * Prompts, content-moderation, creations, face-detection, scenarios, etc.
4
- */
5
-
6
- // Prompts Domain
7
- export type {
8
- AIPromptCategory, AIPromptVariableType, AIPromptError, AIPromptResult,
9
- AIPromptVariable, AIPromptSafety, AIPromptVersion,
10
- AIPromptTemplate, CreateAIPromptTemplateParams,
11
- GeneratedPrompt, CreateGeneratedPromptParams,
12
- ITemplateRepository, IPromptHistoryRepository, IPromptGenerationService,
13
- AsyncState, AsyncActions, UseTemplateState, UseTemplateActions,
14
- UsePromptGenerationState, UsePromptGenerationActions,
15
- IdentitySegment, AnimeStyleSegment, QualitySegment,
16
- ImagePromptResult, ImagePromptBuilderOptions, AnimeSelfiePromptResult,
17
- CreatePromptOptions, MultiPersonPreservationRules, FacePreservationOptions,
18
- InteractionStyle, InteractionStyleOptions,
19
- } from "../domains/prompts";
20
- export {
21
- createPromptVersion, formatVersion,
22
- createAIPromptTemplate, updateTemplateVersion, getTemplateString,
23
- createGeneratedPrompt, isPromptRecent,
24
- TemplateRepository, PromptHistoryRepository, PromptGenerationService,
25
- useAsyncState, useTemplateRepository, usePromptGeneration,
26
- IDENTITY_SEGMENTS, IDENTITY_NEGATIVE_SEGMENTS, ANIME_STYLE_SEGMENTS,
27
- QUALITY_SEGMENTS, QUALITY_NEGATIVE_SEGMENTS, ANTI_REALISM_SEGMENTS,
28
- ANATOMY_NEGATIVE_SEGMENTS, PRESET_COLLECTIONS,
29
- ImagePromptBuilder, createAnimeSelfiePrompt, createStyleTransferPrompt,
30
- IDENTITY_PRESERVATION_CORE, PHOTOREALISTIC_RENDERING, NATURAL_POSE_GUIDELINES,
31
- MASTER_BASE_PROMPT, createPhotorealisticPrompt, createTransformationPrompt, enhanceExistingPrompt,
32
- MULTI_PERSON_PRESERVATION_RULES, createMultiPersonPrompt,
33
- buildFacePreservationPrompt, buildMinimalFacePreservationPrompt,
34
- buildInteractionStylePrompt, buildMinimalInteractionStylePrompt, getInteractionRules, getInteractionForbidden,
35
- } from "../domains/prompts";
36
-
37
- // Content Moderation Domain
38
- export type {
39
- ContentType, ModerationSeverity, AgeRating, ViolationType, ModerationRule,
40
- ModerationResult, Violation, ModerationContext, ModerationConfig,
41
- SuggestionMessages, ValidationLimits, ContentFilterResult, IContentFilter, IModerator,
42
- PatternMatch,
43
- } from "../domains/content-moderation";
44
- export {
45
- contentModerationService, patternMatcherService, textModerator, imageModerator,
46
- videoModerator, voiceModerator, BaseModerator,
47
- rulesRegistry, defaultModerationRules, ContentPolicyViolationError,
48
- } from "../domains/content-moderation";
49
-
50
- // Creations Domain
51
- export type {
52
- CreationTypeId, CreationStatus, CreationCategory, CreationFilter, FilterOption, CreationStats,
53
- StatusColorKey, CreationOutput, IconName, Creation, CreationDocument,
54
- CreationType, CreationsTranslations, CreationsConfig, DocumentMapper,
55
- ICreationsRepository, CreationsSubscriptionCallback, UnsubscribeFunction, RepositoryOptions,
56
- UseCreationPersistenceConfig, UseCreationPersistenceReturn, BaseProcessingStartData, BaseProcessingResult,
57
- UseProcessingJobsPollerConfig, UseProcessingJobsPollerReturn,
58
- CreationAction, CreationCardData, CreationCardCallbacks, FilterButton, PendingJobsSectionProps,
59
- } from "../domains/creations";
60
- export {
61
- ALL_CREATION_STATUSES, ALL_CREATION_CATEGORIES, ALL_CREATION_TYPES,
62
- IMAGE_CREATION_TYPES, VIDEO_CREATION_TYPES, DEFAULT_CREATION_FILTER,
63
- MEDIA_FILTER_OPTIONS, STATUS_FILTER_OPTIONS, getTypesForCategory, getCategoryForType,
64
- getCategoryForCreation, isTypeInCategory, isVideoCreationType, isImageCreationType, calculateCreationStats,
65
- getStatusColorKey, getStatusColor, getStatusTextKey, getStatusText, isInProgress, isCompleted, isFailed,
66
- getPreviewUrl, getAllMediaUrls, hasDownloadableContent, hasVideoContent, hasAudioContent, getPrimaryMediaUrl,
67
- generateCreationId, getTypeIcon, getTypeTextKey, getTypeText, getCreationTitle, filterBySearch, sortCreations, truncateText,
68
- mapDocumentToCreation, DEFAULT_TRANSLATIONS, DEFAULT_CONFIG,
69
- CreationsRepository, createCreationsRepository,
70
- useCreations, useDeleteCreation, useCreationsFilter, useAdvancedFilter, useCreationPersistence, useProcessingJobsPoller,
71
- CreationPreview, CreationBadges, CreationActions, CreationCard, CreationThumbnail,
72
- FilterChips, CreationsFilterBar, createMediaFilterButtons, createStatusFilterButtons,
73
- CreationsHomeCard, EmptyState, PendingJobsSection,
74
- getLocalizedTitle, getFilterCategoriesFromConfig, getTranslatedTypes,
75
- CreationsGalleryScreen,
76
- } from "../domains/creations";
77
-
78
- // Face Detection Domain
79
- export type { FaceDetectionResult, FaceValidationState, FaceDetectionConfig } from "../domains/face-detection";
80
- export {
81
- FACE_DETECTION_CONFIG, FACE_DETECTION_PROMPTS,
82
- isValidFace, parseDetectionResponse, createFailedResult, createSuccessResult,
83
- analyzeImageForFace, useFaceDetection, FaceValidationStatus, FaceDetectionToggle,
84
- } from "../domains/face-detection";
85
-
86
- // Scenarios Domain
87
- export type {
88
- ScenarioOutputType, ScenarioInputType, ScenarioPromptType, GeneratingMessages, Scenario,
89
- AppScenarioConfig, ConfiguredScenario, WizardConfigOptions,
90
- CategoryNavigationContainerProps, MainCategoryScreenProps, SubCategoryScreenProps,
91
- MainCategory, SubCategory, CategoryInfo, ScenarioSelectorConfig, ScenarioPreviewTranslations,
92
- ScenarioConfig, VisualStyleOption, InspirationChipData, MagicPromptConfig,
93
- ScenarioData,
94
- } from "../domains/scenarios";
95
- export {
96
- createScenariosForApp, filterScenariosByOutputType, filterScenariosByCategory,
97
- getScenarioCategories, findScenarioById,
98
- configureScenarios, getConfiguredScenario, getDefaultOutputType, isScenariosConfigured, getAllConfiguredScenarios,
99
- createStoryTemplate, createCreativePrompt,
100
- WizardInputType, detectWizardInputType, SCENARIO_TO_WIZARD_INPUT_MAP,
101
- getScenarioWizardConfig, hasExplicitConfig, getScenarioWizardInputType, registerWizardConfig,
102
- CategoryNavigationContainer, ScenarioPreviewScreen, MainCategoryScreen, SubCategoryScreen, HierarchicalScenarioListScreen,
103
- } from "../domains/scenarios";
104
-
105
- // Access Control Domain
106
- export type { AIFeatureGateOptions, AIFeatureGateReturn, AIFeatureGateHook } from "../domains/access-control";
107
- export { useAIFeatureGate } from "../domains/access-control";
108
-
109
- // Result Preview Domain
110
- export type {
111
- ResultData, ResultActionsCallbacks, ResultDisplayState,
112
- ResultActionBarProps, RecentCreation, ResultPreviewScreenProps, ResultPreviewTranslations,
113
- UseResultActionsOptions, UseResultActionsReturn,
114
- StarRatingPickerProps, GenerationErrorTranslations, GenerationErrorConfig, GenerationErrorScreenProps,
115
- } from "../domains/result-preview";
116
- export {
117
- ResultPreviewScreen, ResultActionBar, RecentCreationsSection,
118
- GenerationErrorScreen, StarRatingPicker, useResultActions,
119
- } from "../domains/result-preview";
120
-
121
- // Generation Domain (wizard, flow, strategy)
122
- export type {
123
- UseAIGenerationProps, UseAIGenerationReturn, AlertMessages as GenerationAlertMessages,
124
- FeatureConfig, FeatureRegistration, GenerationType, InputType, OutputType, VisualStyleConfig,
125
- GenerationExecutor, GenerationOptions as GenerationExecutorOptions,
126
- GenerationResult as GenerationExecutorResult,
127
- ImageGenerationOutput, VideoGenerationInput, VideoGenerationOutput,
128
- MemeGenerationInput, MemeGenerationOutput, TextToImageInput, TextToImageOutput, ExecutorGenerationType,
129
- BaseStepConfig, AuthGateStepConfig, CreditGateStepConfig, PhotoUploadStepConfig,
130
- TextInputStepConfig as WizardTextInputStepConfig, SelectionStepConfig,
131
- PreviewStepConfig as WizardPreviewStepConfig, WizardStepConfig,
132
- WizardFeatureConfig, ScenarioBasedConfig,
133
- UsePhotoUploadStateProps, UsePhotoUploadStateReturn, PhotoUploadConfig,
134
- PhotoUploadTranslations as WizardPhotoUploadTranslations,
135
- UseWizardGenerationProps, UseWizardGenerationReturn, WizardScenarioData, WizardOutputType,
136
- GenericWizardFlowProps, TextInputScreenTranslations, TextInputScreenConfig, TextInputScreenProps,
137
- FlowStoreType,
138
- GateResult, AuthGateConfig, CreditGateConfig, FlowState, FlowActions, FlowCallbacks,
139
- FlowConfiguration, StepDefinition,
140
- } from "../domains/generation";
141
- export {
142
- useAIGeneration, featureRegistry, createGenerationStrategy, ExecutorFactory,
143
- buildWizardConfigFromScenario, WIZARD_PRESETS, buildFlowStepsFromWizard, getPhotoUploadCount,
144
- getStepConfig, quickBuildWizard, usePhotoUploadState, useWizardGeneration,
145
- GenericWizardFlow, GeneratingScreen, TextInputScreen,
146
- TEXT_TO_IMAGE_WIZARD_CONFIG, TEXT_TO_VIDEO_WIZARD_CONFIG, IMAGE_TO_VIDEO_WIZARD_CONFIG,
147
- createFlowStore, useFlow, resetFlowStore,
148
- StepType,
149
- } from "../domains/generation";