@umituz/react-native-ai-generation-content 1.90.22 → 1.90.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -1
- package/src/domain/entities/index.ts +18 -3
- package/src/domain/interfaces/index.ts +12 -5
- package/src/domains/access-control/hooks/useAIFeatureGate.ts +2 -2
- package/src/domains/background/infrastructure/utils/polling-interval.util.ts +1 -1
- package/src/domains/background/presentation/hooks/use-background-generation.ts +1 -1
- package/src/domains/creations/presentation/components/CreationCard.utils.ts +1 -1
- package/src/domains/creations/presentation/components/CreationImagePreview.tsx +2 -18
- package/src/domains/creations/presentation/hooks/filterHelpers.ts +1 -1
- package/src/domains/creations/presentation/hooks/job-poller-utils.stale-handlers.ts +1 -1
- package/src/domains/creations/presentation/hooks/useProcessingJobsPoller.ts +1 -1
- package/src/domains/creations/presentation/screens/CreationsGalleryScreen.tsx +1 -1
- package/src/domains/generation/wizard/presentation/components/WizardFlowContent.tsx +2 -2
- package/src/domains/generation/wizard/presentation/screens/GenericPhotoUploadScreen.tsx +1 -1
- package/src/domains/image-to-video/domain/index.ts +2 -3
- package/src/domains/image-to-video/index.ts +11 -11
- package/src/domains/image-to-video/presentation/index.ts +4 -52
- package/src/domains/image-to-video/presentation/screens/index.ts +5 -0
- package/src/domains/text-to-image/domain/index.ts +3 -3
- package/src/domains/text-to-image/domain-exports.ts +4 -4
- package/src/domains/text-to-image/index.ts +2 -13
- package/src/domains/text-to-image/presentation/index.ts +3 -3
- package/src/domains/text-to-image/presentation/screens/index.ts +5 -0
- package/src/domains/text-to-image/presentation-exports.ts +4 -4
- package/src/domains/text-to-video/domain/index.ts +2 -3
- package/src/domains/text-to-video/index.ts +5 -5
- package/src/domains/text-to-video/presentation/index.ts +4 -30
- package/src/domains/text-to-video/presentation/screens/index.ts +5 -0
- package/src/exports/features.ts +2 -2
- package/src/exports/presentation.ts +2 -2
- package/src/index.ts +1 -1
- package/src/infrastructure/services/generation-orchestrator.service.ts +1 -1
- package/src/infrastructure/utils/photo-generation/photo-preparation.util.ts +1 -1
- package/src/infrastructure/validation/base-validator.ts +3 -2
- package/src/presentation/components/index.ts +10 -28
- package/src/presentation/hooks/generation/orchestrator.ts +0 -1
- package/src/shared/index.ts +4 -11
- package/src/shared-kernel/index.ts +4 -14
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@umituz/react-native-ai-generation-content",
|
|
3
|
-
"version": "1.90.
|
|
3
|
+
"version": "1.90.24",
|
|
4
4
|
"description": "Provider-agnostic AI generation orchestration for React Native with result preview components",
|
|
5
5
|
"main": "src/index.ts",
|
|
6
6
|
"types": "src/index.ts",
|
|
@@ -69,6 +69,7 @@
|
|
|
69
69
|
"@gorhom/bottom-sheet": "^5.2.8",
|
|
70
70
|
"@react-native-async-storage/async-storage": "^2.2.0",
|
|
71
71
|
"@react-native-community/slider": "^5.1.1",
|
|
72
|
+
"@react-navigation/bottom-tabs": "^7.15.6",
|
|
72
73
|
"@tanstack/query-async-storage-persister": "^5.66.7",
|
|
73
74
|
"@tanstack/react-query": "^5.66.7",
|
|
74
75
|
"@tanstack/react-query-persist-client": "^5.66.7",
|
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Domain Entities
|
|
3
|
-
* Core type definitions
|
|
4
3
|
*/
|
|
5
4
|
|
|
6
5
|
export * from "./error.types";
|
|
7
|
-
export * from "./generation.types";
|
|
8
6
|
export * from "./polling.types";
|
|
9
|
-
export * from "
|
|
7
|
+
export * from "./generation.types";
|
|
10
8
|
export * from "./processing-modes.types";
|
|
9
|
+
export * from "./flow-configuration.types";
|
|
10
|
+
export * from "./flow-config-data.types";
|
|
11
|
+
export * from "./flow-step.types";
|
|
11
12
|
export * from "./flow-config.types";
|
|
13
|
+
export * from "./flow-state.types";
|
|
14
|
+
export * from "./flow-actions.types";
|
|
15
|
+
|
|
16
|
+
// Re-export background job types
|
|
17
|
+
export type {
|
|
18
|
+
BackgroundJobStatus,
|
|
19
|
+
BackgroundJob,
|
|
20
|
+
AddJobInput,
|
|
21
|
+
UpdateJobInput,
|
|
22
|
+
JobExecutorConfig,
|
|
23
|
+
GenerationMode,
|
|
24
|
+
BackgroundQueueConfig,
|
|
25
|
+
} from "../../domains/background/domain/entities/job.types";
|
|
26
|
+
export { DEFAULT_QUEUE_CONFIG } from "../../domains/background/domain/entities/job.types";
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Domain Interfaces
|
|
3
|
-
* Provider-agnostic contracts
|
|
4
3
|
*/
|
|
5
4
|
|
|
6
5
|
export * from "./ai-provider.interface";
|
|
6
|
+
export * from "./ai-provider-config.types";
|
|
7
|
+
export * from "./ai-provider-progress.types";
|
|
8
|
+
export * from "./ai-provider-status.types";
|
|
9
|
+
export * from "./video-model-config.types";
|
|
10
|
+
export * from "./provider-lifecycle.interface";
|
|
11
|
+
export * from "./provider-capabilities.interface";
|
|
12
|
+
export * from "./provider-executor.interface";
|
|
13
|
+
export * from "./provider-image-features.interface";
|
|
14
|
+
export * from "./provider-video-features.interface";
|
|
15
|
+
|
|
16
|
+
// App Services
|
|
7
17
|
export * from "./app-services.interface";
|
|
8
18
|
export * from "./app-services-auth.interface";
|
|
9
|
-
export * from "./app-services-composite.interface";
|
|
10
19
|
export * from "./app-services-optional.interface";
|
|
11
|
-
|
|
12
|
-
// Video Model Configuration
|
|
13
|
-
export type { VideoModelConfig, ModelCapabilityOption } from "./video-model-config.types";
|
|
20
|
+
export * from "./app-services-composite.interface";
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
useCredits,
|
|
19
19
|
usePaywallVisibility,
|
|
20
20
|
useFeatureGate,
|
|
21
|
-
|
|
21
|
+
usePremium,
|
|
22
22
|
} from "@umituz/react-native-subscription";
|
|
23
23
|
import type {
|
|
24
24
|
AIFeatureGateOptions,
|
|
@@ -49,7 +49,7 @@ export function useAIFeatureGate(options: AIFeatureGateOptions): AIFeatureGateRe
|
|
|
49
49
|
const { showAuthModal } = useAuthModalStore();
|
|
50
50
|
const { credits, isCreditsLoaded, isLoading: isCreditsLoading } = useCredits();
|
|
51
51
|
const { openPaywall } = usePaywallVisibility();
|
|
52
|
-
const { isPremium } =
|
|
52
|
+
const { isPremium } = usePremium();
|
|
53
53
|
const creditBalance = credits?.credits ?? 0;
|
|
54
54
|
const hasCredits = creditBalance >= creditCost;
|
|
55
55
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import type { PollingConfig } from "../../../../domain/entities/polling.types";
|
|
7
|
-
import { calculatePollingInterval as calculateInterval } from "../../../../shared/utils/calculations";
|
|
7
|
+
import { calculatePollingInterval as calculateInterval } from "../../../../shared/utils/calculations/time-calculations";
|
|
8
8
|
|
|
9
9
|
export interface IntervalOptions {
|
|
10
10
|
attempt: number;
|
|
@@ -2,7 +2,7 @@ import { useCallback, useRef, useState, useMemo } from "react";
|
|
|
2
2
|
import { usePendingJobs } from "./use-pending-jobs";
|
|
3
3
|
import { executeDirectGeneration, executeQueuedJob } from "../../infrastructure/executors/backgroundJobExecutor";
|
|
4
4
|
import { DEFAULT_QUEUE_CONFIG } from "../../domain/entities/job.types";
|
|
5
|
-
import { calculateFilteredCount } from "../../../../shared/utils/calculations";
|
|
5
|
+
import { calculateFilteredCount } from "../../../../shared/utils/calculations/cost-calculations";
|
|
6
6
|
import type {
|
|
7
7
|
UseBackgroundGenerationOptions,
|
|
8
8
|
UseBackgroundGenerationReturn,
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Uses expo-image for caching and performance
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import React, { useMemo,
|
|
7
|
+
import React, { useMemo, useRef, useEffect } from "react";
|
|
8
8
|
import { View, StyleSheet, Animated } from "react-native";
|
|
9
9
|
import { AtomicIcon, AtomicSpinner } from "@umituz/react-native-design-system/atoms";
|
|
10
10
|
import { AtomicImage } from "@umituz/react-native-design-system/image";
|
|
@@ -38,8 +38,6 @@ export function CreationImagePreview({
|
|
|
38
38
|
const tokens = useAppDesignTokens();
|
|
39
39
|
const inProgress = isInProgress(status);
|
|
40
40
|
const typeIcon = getTypeIcon(type);
|
|
41
|
-
const [imageError, setImageError] = useState(false);
|
|
42
|
-
const [isLoading, setIsLoading] = useState(true);
|
|
43
41
|
const pulseAnim = useRef(new Animated.Value(0.4)).current;
|
|
44
42
|
|
|
45
43
|
useEffect(() => {
|
|
@@ -54,16 +52,7 @@ export function CreationImagePreview({
|
|
|
54
52
|
return () => animation.stop();
|
|
55
53
|
}, [inProgress, pulseAnim]);
|
|
56
54
|
|
|
57
|
-
const hasPreview = !!uri && !inProgress
|
|
58
|
-
|
|
59
|
-
const handleImageError = useCallback(() => {
|
|
60
|
-
setImageError(true);
|
|
61
|
-
setIsLoading(false);
|
|
62
|
-
}, []);
|
|
63
|
-
|
|
64
|
-
const handleLoadEnd = useCallback(() => {
|
|
65
|
-
setIsLoading(false);
|
|
66
|
-
}, []);
|
|
55
|
+
const hasPreview = !!uri && !inProgress;
|
|
67
56
|
|
|
68
57
|
const styles = useMemo(
|
|
69
58
|
() =>
|
|
@@ -127,11 +116,6 @@ export function CreationImagePreview({
|
|
|
127
116
|
contentFit="cover"
|
|
128
117
|
cachePolicy="disk"
|
|
129
118
|
/>
|
|
130
|
-
{isLoading && (
|
|
131
|
-
<View style={styles.loadingOverlay}>
|
|
132
|
-
<AtomicSpinner size="md" color="primary" />
|
|
133
|
-
</View>
|
|
134
|
-
)}
|
|
135
119
|
</View>
|
|
136
120
|
);
|
|
137
121
|
}
|
|
@@ -7,7 +7,7 @@ import type { CreationFilter } from "../../domain/types";
|
|
|
7
7
|
import { isTypeInCategory } from "../../domain/types";
|
|
8
8
|
import type { CreationCategory, CreationTypeId } from "../../domain/types";
|
|
9
9
|
import type { FilterableCreation } from "./advancedFilter.types";
|
|
10
|
-
import { normalizeDateToTimestamp, compareDates } from "../../../../shared/utils/date";
|
|
10
|
+
import { normalizeDateToTimestamp, compareDates } from "../../../../shared/utils/date/normalization";
|
|
11
11
|
|
|
12
12
|
function filterByType<T extends FilterableCreation>(
|
|
13
13
|
creations: T[],
|
|
@@ -7,7 +7,7 @@ import type { Creation } from "../../domain/entities/Creation";
|
|
|
7
7
|
import type { ICreationsRepository } from "../../domain/repositories/ICreationsRepository";
|
|
8
8
|
import { CREATION_STATUS } from "../../../../domain/constants/queue-status.constants";
|
|
9
9
|
import { DEFAULT_MAX_POLL_TIME_MS } from "../../../../infrastructure/constants/polling.constants";
|
|
10
|
-
import { isOlderThan, calculateAgeMs } from "../../../../shared/utils/calculations";
|
|
10
|
+
import { isOlderThan, calculateAgeMs } from "../../../../shared/utils/calculations/time-calculations";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Check if job is stale (older than max poll time)
|
|
@@ -31,7 +31,7 @@ export function useProcessingJobsPoller(
|
|
|
31
31
|
const timer = setInterval(() => {
|
|
32
32
|
// Stub: Polling logic to be implemented when job status API is available
|
|
33
33
|
const processingCreations = creations.filter(c => c.status === 'processing');
|
|
34
|
-
processingCreations.forEach(async (
|
|
34
|
+
processingCreations.forEach(async (_creation) => {
|
|
35
35
|
try {
|
|
36
36
|
// Check job status and update creation
|
|
37
37
|
// Note: Actual polling implementation requires job status API
|
|
@@ -14,7 +14,7 @@ import { GalleryResultPreview } from "../components/GalleryResultPreview";
|
|
|
14
14
|
import { GalleryScreenHeader } from "../components/GalleryScreenHeader";
|
|
15
15
|
import { MEDIA_FILTER_OPTIONS, STATUS_FILTER_OPTIONS } from "../../domain/types/creation-filter";
|
|
16
16
|
import { createFilterButtons, createItemTitle } from "../utils/filter-buttons.util";
|
|
17
|
-
import { calculatePaginationSlice, calculateHasMore } from "../../../../shared/utils/calculations";
|
|
17
|
+
import { calculatePaginationSlice, calculateHasMore } from "../../../../shared/utils/calculations/cost-calculations";
|
|
18
18
|
import type { Creation } from "../../domain/entities/Creation";
|
|
19
19
|
import type { CreationsGalleryScreenProps } from "./creations-gallery.types";
|
|
20
20
|
import { creationsGalleryStyles as styles } from "./creations-gallery.styles";
|
|
@@ -12,8 +12,8 @@ import type { WizardFeatureConfig } from "../../domain/entities/wizard-feature.t
|
|
|
12
12
|
import { buildFlowStepsFromWizard } from "../../infrastructure/builders/dynamic-step-builder";
|
|
13
13
|
import { useWizardGeneration, type WizardScenarioData } from "../hooks/useWizardGeneration";
|
|
14
14
|
import type { AlertMessages } from "../../../../../presentation/hooks/generation/types";
|
|
15
|
-
import type { Creation } from "../../../../creations/domain/entities/
|
|
16
|
-
import { createCreationsRepository } from "../../../../creations";
|
|
15
|
+
import type { Creation } from "../../../../creations/domain/entities/index";
|
|
16
|
+
import { createCreationsRepository } from "../../../../creations/index";
|
|
17
17
|
import { useResultActions } from "../../../../result-preview/presentation/hooks/useResultActions";
|
|
18
18
|
import { useWizardFlowHandlers } from "../hooks/useWizardFlowHandlers";
|
|
19
19
|
import { extractDuration, extractResolution, getConfigDefaultDuration, getConfigDefaultResolution } from "../../infrastructure/utils/credit-value-extractors";
|
|
@@ -10,7 +10,7 @@ import { ScreenLayout } from "@umituz/react-native-design-system/layouts";
|
|
|
10
10
|
import { useAlert, AlertType, AlertMode, NavigationHeader, InfoGrid } from "@umituz/react-native-design-system/molecules";
|
|
11
11
|
import type { InfoGridItem } from "@umituz/react-native-design-system/molecules";
|
|
12
12
|
import { useAppDesignTokens, type DesignTokens } from "@umituz/react-native-design-system/theme";
|
|
13
|
-
import { PhotoUploadCard } from "../../../../../presentation/components";
|
|
13
|
+
import { PhotoUploadCard } from "../../../../../presentation/components/index";
|
|
14
14
|
import type { UploadedImage } from "../../../../../presentation/hooks/generation/useAIGenerateState";
|
|
15
15
|
import { usePhotoUploadState, type PhotoUploadError } from "../hooks/usePhotoUploadState";
|
|
16
16
|
import { WizardContinueButton } from "../components/WizardContinueButton";
|
|
@@ -8,24 +8,24 @@
|
|
|
8
8
|
// =============================================================================
|
|
9
9
|
|
|
10
10
|
// Animation Types
|
|
11
|
-
export type { AnimationStyle, AnimationStyleId } from "./domain";
|
|
11
|
+
export type { AnimationStyle, AnimationStyleId } from "./domain/index";
|
|
12
12
|
|
|
13
13
|
// Duration Types
|
|
14
|
-
export type { VideoDuration, DurationOption } from "./domain";
|
|
14
|
+
export type { VideoDuration, DurationOption } from "./domain/index";
|
|
15
15
|
|
|
16
16
|
// Form Types
|
|
17
17
|
export type {
|
|
18
18
|
ImageToVideoFormState,
|
|
19
19
|
ImageToVideoFormActions,
|
|
20
20
|
ImageToVideoFormDefaults,
|
|
21
|
-
} from "./domain";
|
|
21
|
+
} from "./domain/index";
|
|
22
22
|
|
|
23
23
|
// Config Types
|
|
24
24
|
export type {
|
|
25
25
|
ImageToVideoCallbacks,
|
|
26
26
|
ImageToVideoFormConfig,
|
|
27
27
|
ImageToVideoTranslationsExtended,
|
|
28
|
-
} from "./domain";
|
|
28
|
+
} from "./domain/index";
|
|
29
29
|
|
|
30
30
|
// Core Feature Types
|
|
31
31
|
export type {
|
|
@@ -42,7 +42,7 @@ export type {
|
|
|
42
42
|
ImageToVideoGenerationStartData,
|
|
43
43
|
ImageToVideoCreationData,
|
|
44
44
|
ImageToVideoFeatureConfig,
|
|
45
|
-
} from "./domain";
|
|
45
|
+
} from "./domain/index";
|
|
46
46
|
|
|
47
47
|
// =============================================================================
|
|
48
48
|
// INFRASTRUCTURE LAYER
|
|
@@ -59,7 +59,7 @@ export {
|
|
|
59
59
|
useImageToVideoFormState,
|
|
60
60
|
useImageToVideoGeneration,
|
|
61
61
|
useImageToVideoForm,
|
|
62
|
-
} from "./presentation";
|
|
62
|
+
} from "./presentation/index";
|
|
63
63
|
export type {
|
|
64
64
|
UseImageToVideoFormStateOptions,
|
|
65
65
|
UseImageToVideoFormStateReturn,
|
|
@@ -67,14 +67,14 @@ export type {
|
|
|
67
67
|
UseImageToVideoGenerationReturn,
|
|
68
68
|
UseImageToVideoFormOptions,
|
|
69
69
|
UseImageToVideoFormReturn,
|
|
70
|
-
} from "./presentation";
|
|
70
|
+
} from "./presentation/index";
|
|
71
71
|
|
|
72
72
|
// Provider-based Feature Hook
|
|
73
|
-
export { useImageToVideoFeature } from "./presentation";
|
|
73
|
+
export { useImageToVideoFeature } from "./presentation/index";
|
|
74
74
|
export type {
|
|
75
75
|
UseImageToVideoFeatureProps,
|
|
76
76
|
UseImageToVideoFeatureReturn,
|
|
77
|
-
} from "./presentation";
|
|
77
|
+
} from "./presentation/index";
|
|
78
78
|
|
|
79
79
|
// =============================================================================
|
|
80
80
|
// PRESENTATION LAYER - Components
|
|
@@ -85,7 +85,7 @@ export {
|
|
|
85
85
|
ImageToVideoDurationSelector,
|
|
86
86
|
ImageToVideoSelectionGrid,
|
|
87
87
|
ImageToVideoGenerateButton,
|
|
88
|
-
} from "./presentation";
|
|
88
|
+
} from "./presentation/index";
|
|
89
89
|
|
|
90
90
|
export type {
|
|
91
91
|
ImageToVideoAnimationStyleSelectorProps,
|
|
@@ -93,4 +93,4 @@ export type {
|
|
|
93
93
|
ImageToVideoSelectionGridProps,
|
|
94
94
|
ImageToVideoSelectionGridTranslations,
|
|
95
95
|
ImageToVideoGenerateButtonProps,
|
|
96
|
-
} from "./presentation";
|
|
96
|
+
} from "./presentation/index";
|
|
@@ -1,55 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Image
|
|
3
|
-
* Exports all presentation layer items (hooks and components)
|
|
2
|
+
* Image to Video Presentation
|
|
4
3
|
*/
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
// Form State Hook
|
|
11
|
-
export { useImageToVideoFormState } from "./hooks";
|
|
12
|
-
export type {
|
|
13
|
-
UseImageToVideoFormStateOptions,
|
|
14
|
-
UseImageToVideoFormStateReturn,
|
|
15
|
-
} from "./hooks";
|
|
16
|
-
|
|
17
|
-
// Generation Hook
|
|
18
|
-
export { useImageToVideoGeneration } from "./hooks";
|
|
19
|
-
export type {
|
|
20
|
-
UseImageToVideoGenerationOptions,
|
|
21
|
-
UseImageToVideoGenerationReturn,
|
|
22
|
-
} from "./hooks";
|
|
23
|
-
|
|
24
|
-
// Combined Form Hook
|
|
25
|
-
export { useImageToVideoForm } from "./hooks";
|
|
26
|
-
export type {
|
|
27
|
-
UseImageToVideoFormOptions,
|
|
28
|
-
UseImageToVideoFormReturn,
|
|
29
|
-
} from "./hooks";
|
|
30
|
-
|
|
31
|
-
// Provider-based Feature Hook
|
|
32
|
-
export { useImageToVideoFeature } from "./hooks";
|
|
33
|
-
export type {
|
|
34
|
-
UseImageToVideoFeatureProps,
|
|
35
|
-
UseImageToVideoFeatureReturn,
|
|
36
|
-
} from "./hooks";
|
|
37
|
-
|
|
38
|
-
// =============================================================================
|
|
39
|
-
// COMPONENTS
|
|
40
|
-
// =============================================================================
|
|
41
|
-
|
|
42
|
-
export {
|
|
43
|
-
ImageToVideoAnimationStyleSelector,
|
|
44
|
-
ImageToVideoDurationSelector,
|
|
45
|
-
ImageToVideoSelectionGrid,
|
|
46
|
-
ImageToVideoGenerateButton,
|
|
47
|
-
} from "./components";
|
|
48
|
-
|
|
49
|
-
export type {
|
|
50
|
-
ImageToVideoAnimationStyleSelectorProps,
|
|
51
|
-
ImageToVideoDurationSelectorProps,
|
|
52
|
-
ImageToVideoSelectionGridProps,
|
|
53
|
-
ImageToVideoSelectionGridTranslations,
|
|
54
|
-
ImageToVideoGenerateButtonProps,
|
|
55
|
-
} from "./components";
|
|
5
|
+
export * from "./components";
|
|
6
|
+
export * from "./hooks";
|
|
7
|
+
export * from "./screens";
|
|
@@ -12,7 +12,7 @@ export type {
|
|
|
12
12
|
TextToImageFormState,
|
|
13
13
|
TextToImageFormActions,
|
|
14
14
|
TextToImageFormDefaults,
|
|
15
|
-
} from "./domain";
|
|
15
|
+
} from "./domain/index";
|
|
16
16
|
|
|
17
17
|
// Config Types
|
|
18
18
|
export type {
|
|
@@ -23,7 +23,7 @@ export type {
|
|
|
23
23
|
TextToImageCallbacks,
|
|
24
24
|
TextToImageFormConfig,
|
|
25
25
|
TextToImageTranslations,
|
|
26
|
-
} from "./domain";
|
|
26
|
+
} from "./domain/index";
|
|
27
27
|
|
|
28
28
|
// Provider Types
|
|
29
29
|
export type {
|
|
@@ -34,7 +34,7 @@ export type {
|
|
|
34
34
|
TextToImageInputBuilder,
|
|
35
35
|
TextToImageResultExtractor,
|
|
36
36
|
TextToImageFeatureConfig,
|
|
37
|
-
} from "./domain";
|
|
37
|
+
} from "./domain/index";
|
|
38
38
|
|
|
39
39
|
// Constants
|
|
40
40
|
export {
|
|
@@ -47,4 +47,4 @@ export {
|
|
|
47
47
|
DEFAULT_TEXT_TO_IMAGE_PROMPTS,
|
|
48
48
|
DEFAULT_TEXT_TO_VOICE_PROMPTS,
|
|
49
49
|
type PromptSuggestion,
|
|
50
|
-
} from "./domain";
|
|
50
|
+
} from "./domain/index";
|
|
@@ -1,18 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Text
|
|
3
|
-
* Provider-agnostic text-to-image generation feature
|
|
4
|
-
*
|
|
5
|
-
* Architecture:
|
|
6
|
-
* - Domain: Types, constants
|
|
7
|
-
* - Infrastructure: Execution logic, provider support
|
|
8
|
-
* - Presentation: Hooks, components
|
|
2
|
+
* Text to Image Feature
|
|
9
3
|
*/
|
|
10
4
|
|
|
11
|
-
|
|
12
|
-
export * from "./domain-exports";
|
|
13
|
-
|
|
14
|
-
// Infrastructure Layer
|
|
5
|
+
export * from "./domain";
|
|
15
6
|
export * from "./infrastructure-exports";
|
|
16
|
-
|
|
17
|
-
// Presentation Layer
|
|
18
7
|
export * from "./presentation-exports";
|
|
@@ -7,7 +7,7 @@ export {
|
|
|
7
7
|
useFormState,
|
|
8
8
|
useGeneration,
|
|
9
9
|
useTextToImageForm,
|
|
10
|
-
} from "./presentation";
|
|
10
|
+
} from "./presentation/index";
|
|
11
11
|
export type {
|
|
12
12
|
UseFormStateOptions,
|
|
13
13
|
UseFormStateReturn,
|
|
@@ -16,7 +16,7 @@ export type {
|
|
|
16
16
|
UseGenerationReturn,
|
|
17
17
|
UseTextToImageFormOptions,
|
|
18
18
|
UseTextToImageFormReturn,
|
|
19
|
-
} from "./presentation";
|
|
19
|
+
} from "./presentation/index";
|
|
20
20
|
|
|
21
21
|
// Components
|
|
22
22
|
export {
|
|
@@ -29,7 +29,7 @@ export {
|
|
|
29
29
|
TextToImageOutputFormatSelector,
|
|
30
30
|
TextToImageGenerateButton,
|
|
31
31
|
TextToImageSettingsSheet,
|
|
32
|
-
} from "./presentation";
|
|
32
|
+
} from "./presentation/index";
|
|
33
33
|
|
|
34
34
|
export type {
|
|
35
35
|
TextToImagePromptInputProps,
|
|
@@ -38,4 +38,4 @@ export type {
|
|
|
38
38
|
TextToImageAspectRatioSelectorProps,
|
|
39
39
|
TextToImageGenerateButtonProps,
|
|
40
40
|
TextToImageSettingsSheetProps,
|
|
41
|
-
} from "./presentation";
|
|
41
|
+
} from "./presentation/index";
|
|
@@ -36,9 +36,9 @@ export type {
|
|
|
36
36
|
HintItem,
|
|
37
37
|
ExamplePromptsProps,
|
|
38
38
|
ExamplePrompt,
|
|
39
|
-
} from "./domain";
|
|
39
|
+
} from "./domain/index";
|
|
40
40
|
|
|
41
|
-
export { INITIAL_FORM_STATE, INITIAL_GENERATION_STATE } from "./domain";
|
|
41
|
+
export { INITIAL_FORM_STATE, INITIAL_GENERATION_STATE } from "./domain/index";
|
|
42
42
|
|
|
43
43
|
// Infrastructure Services
|
|
44
44
|
export { executeTextToVideo, hasTextToVideoSupport } from "./infrastructure/services";
|
|
@@ -48,7 +48,7 @@ export type { ExecuteTextToVideoOptions } from "./infrastructure/services";
|
|
|
48
48
|
export {
|
|
49
49
|
useTextToVideoFeature,
|
|
50
50
|
useTextToVideoForm,
|
|
51
|
-
} from "./presentation";
|
|
51
|
+
} from "./presentation/index";
|
|
52
52
|
|
|
53
53
|
export type {
|
|
54
54
|
UseTextToVideoFeatureProps,
|
|
@@ -56,7 +56,7 @@ export type {
|
|
|
56
56
|
TextToVideoGenerateParams,
|
|
57
57
|
UseTextToVideoFormProps,
|
|
58
58
|
UseTextToVideoFormReturn,
|
|
59
|
-
} from "./presentation";
|
|
59
|
+
} from "./presentation/index";
|
|
60
60
|
|
|
61
61
|
// Presentation Components
|
|
62
62
|
export {
|
|
@@ -65,4 +65,4 @@ export {
|
|
|
65
65
|
OptionsPanel,
|
|
66
66
|
HeroSection,
|
|
67
67
|
HintCarousel,
|
|
68
|
-
} from "./presentation";
|
|
68
|
+
} from "./presentation/index";
|
|
@@ -1,33 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Text
|
|
3
|
-
* Exports all presentation layer items (hooks and components)
|
|
2
|
+
* Text to Video Presentation
|
|
4
3
|
*/
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export { useTextToVideoFeature } from "./hooks";
|
|
11
|
-
export type {
|
|
12
|
-
UseTextToVideoFeatureProps,
|
|
13
|
-
UseTextToVideoFeatureReturn,
|
|
14
|
-
TextToVideoGenerateParams,
|
|
15
|
-
} from "./hooks";
|
|
16
|
-
|
|
17
|
-
export { useTextToVideoForm } from "./hooks";
|
|
18
|
-
export type {
|
|
19
|
-
UseTextToVideoFormProps,
|
|
20
|
-
UseTextToVideoFormReturn,
|
|
21
|
-
} from "./hooks";
|
|
22
|
-
|
|
23
|
-
// =============================================================================
|
|
24
|
-
// COMPONENTS
|
|
25
|
-
// =============================================================================
|
|
26
|
-
|
|
27
|
-
export {
|
|
28
|
-
GenerationTabs,
|
|
29
|
-
FrameSelector,
|
|
30
|
-
OptionsPanel,
|
|
31
|
-
HeroSection,
|
|
32
|
-
HintCarousel,
|
|
33
|
-
} from "./components";
|
|
5
|
+
export * from "./components";
|
|
6
|
+
export * from "./hooks";
|
|
7
|
+
export * from "./screens";
|
package/src/exports/features.ts
CHANGED
|
@@ -18,7 +18,7 @@ export type {
|
|
|
18
18
|
UseTextToImageFormOptions, UseTextToImageFormReturn,
|
|
19
19
|
TextToImagePromptInputProps, TextToImageExamplePromptsProps, TextToImageStyleSelectorProps,
|
|
20
20
|
TextToImageAspectRatioSelectorProps, TextToImageGenerateButtonProps, TextToImageSettingsSheetProps,
|
|
21
|
-
} from "../domains/text-to-image";
|
|
21
|
+
} from "../domains/text-to-image/index";
|
|
22
22
|
export {
|
|
23
23
|
DEFAULT_IMAGE_STYLES, DEFAULT_NUM_IMAGES_OPTIONS, ASPECT_RATIO_VALUES, IMAGE_SIZE_VALUES,
|
|
24
24
|
OUTPUT_FORMAT_VALUES, DEFAULT_FORM_VALUES, DEFAULT_TEXT_TO_IMAGE_PROMPTS, DEFAULT_TEXT_TO_VOICE_PROMPTS,
|
|
@@ -29,7 +29,7 @@ export {
|
|
|
29
29
|
TextToImagePromptInput, TextToImageExamplePrompts, TextToImageNumImagesSelector,
|
|
30
30
|
TextToImageStyleSelector, TextToImageAspectRatioSelector, TextToImageSizeSelector,
|
|
31
31
|
TextToImageOutputFormatSelector, TextToImageGenerateButton, TextToImageSettingsSheet,
|
|
32
|
-
} from "../domains/text-to-image";
|
|
32
|
+
} from "../domains/text-to-image/index";
|
|
33
33
|
|
|
34
34
|
// Text-to-Video Feature
|
|
35
35
|
export type {
|
|
@@ -41,7 +41,7 @@ export {
|
|
|
41
41
|
AIGenerationConfig, ModelSelector, SuccessRedirectionCard,
|
|
42
42
|
createAspectRatioOptions, createDurationOptions, createStyleOptions, createStyleOptionsFromConfig,
|
|
43
43
|
ASPECT_RATIO_IDS, COMMON_DURATIONS,
|
|
44
|
-
} from "../presentation/components";
|
|
44
|
+
} from "../presentation/components/index";
|
|
45
45
|
export type {
|
|
46
46
|
GenerationProgressContentProps, PendingJobCardProps, StatusLabels,
|
|
47
47
|
PendingJobCardActionsProps, GenerationResultData, GenerationResultContentProps,
|
|
@@ -56,7 +56,7 @@ export type {
|
|
|
56
56
|
StyleOption, AspectRatioOption, DurationValue, AspectRatioTranslations, DurationOption,
|
|
57
57
|
StyleTranslations, AIGenerationFormProps, AIGenerationFormTranslations,
|
|
58
58
|
AIGenerationConfigProps, ModelOption, ModelSelectorProps, SuccessRedirectionCardProps,
|
|
59
|
-
} from "../presentation/components";
|
|
59
|
+
} from "../presentation/components/index";
|
|
60
60
|
|
|
61
61
|
// Layouts
|
|
62
62
|
export {
|
package/src/index.ts
CHANGED
|
@@ -12,7 +12,7 @@ import type {
|
|
|
12
12
|
import { classifyError } from "../utils/error-classification";
|
|
13
13
|
import { pollJob } from "../../domains/background/infrastructure/services/job-poller-index";
|
|
14
14
|
import { ProviderValidator } from "./provider-validator";
|
|
15
|
-
import { calculateDurationMs } from "../../shared/utils/calculations";
|
|
15
|
+
import { calculateDurationMs } from "../../shared/utils/calculations/time-calculations";
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
export interface OrchestratorConfig {
|
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
* Core validation functions for strings, numbers, URLs, emails, and base64
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import type { ValidationResult
|
|
6
|
+
import type { ValidationResult } from "../../shared-kernel/infrastructure/validation";
|
|
7
7
|
import { validateString, validateNumber } from "../../shared-kernel/infrastructure/validation";
|
|
8
8
|
|
|
9
9
|
// Re-export types for convenience
|
|
10
|
-
export type { ValidationResult
|
|
10
|
+
export type { ValidationResult } from "../../shared-kernel/infrastructure/validation";
|
|
11
|
+
export type { StringValidationOptions, NumberValidationOptions } from "../../shared-kernel/infrastructure/validation";
|
|
11
12
|
|
|
12
13
|
// Re-export validation functions for convenience
|
|
13
14
|
export { validateString, validateNumber };
|
|
@@ -1,34 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export { AIGenerationHero } from "./AIGenerationHero";
|
|
1
|
+
/**
|
|
2
|
+
* Presentation Components
|
|
3
|
+
* Main UI components for AI generation
|
|
4
|
+
*/
|
|
6
5
|
|
|
7
|
-
export * from "./StylePresetsGrid";
|
|
8
6
|
export * from "./AIGenerationForm";
|
|
9
|
-
export * from "./AIGenerationForm.types";
|
|
10
|
-
export * from "./AIGenerationConfig";
|
|
11
|
-
|
|
12
|
-
export type { GenerationProgressContentProps } from "./GenerationProgressContent";
|
|
13
|
-
|
|
14
|
-
export type {
|
|
15
|
-
PendingJobCardProps,
|
|
16
|
-
StatusLabels,
|
|
17
|
-
} from "./PendingJobCard";
|
|
18
|
-
|
|
19
|
-
export type { PendingJobCardActionsProps } from "./PendingJobCardActions";
|
|
20
|
-
export type { PromptInputProps } from "./PromptInput";
|
|
21
|
-
export type { AIGenerationHeroProps } from "./AIGenerationHero";
|
|
22
|
-
|
|
23
|
-
export * from "./result";
|
|
24
|
-
export * from "./photo-step";
|
|
25
|
-
export * from "./modals/SettingsSheet";
|
|
26
|
-
export * from "./selectors";
|
|
27
|
-
export * from "./image-picker";
|
|
28
7
|
export * from "./buttons";
|
|
29
8
|
export * from "./display";
|
|
30
9
|
export * from "./headers";
|
|
10
|
+
export * from "./image-picker";
|
|
11
|
+
export * from "./modals";
|
|
31
12
|
export * from "./PhotoUploadCard";
|
|
32
|
-
export * from "./prompts
|
|
33
|
-
export * from "./
|
|
34
|
-
export * from "./shared
|
|
13
|
+
export * from "./prompts";
|
|
14
|
+
export * from "./selectors";
|
|
15
|
+
export * from "./shared";
|
|
16
|
+
export * from "./result";
|
package/src/shared/index.ts
CHANGED
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Shared Utilities
|
|
3
|
-
* Centralized exports for all shared code
|
|
2
|
+
* Shared Utilities and Components
|
|
4
3
|
*/
|
|
5
4
|
|
|
6
|
-
// Components
|
|
7
|
-
export * from "./components";
|
|
8
|
-
|
|
9
|
-
// Hooks
|
|
10
|
-
export * from "./hooks";
|
|
11
|
-
|
|
12
|
-
// Utils
|
|
13
5
|
export * from "./utils/date";
|
|
14
|
-
export * from "./utils/filters";
|
|
15
|
-
export * from "./utils/debounce.util";
|
|
16
6
|
export * from "./utils/calculations";
|
|
7
|
+
export * from "./utils/filters";
|
|
8
|
+
export * from "./hooks";
|
|
9
|
+
export * from "./components";
|
|
@@ -1,17 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Shared Kernel
|
|
3
|
-
* Provides base types, utilities, and patterns for all domains
|
|
4
|
-
* Following DDD principles with clean architecture
|
|
2
|
+
* Shared Kernel
|
|
5
3
|
*/
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
export * from
|
|
9
|
-
|
|
10
|
-
// Application services
|
|
11
|
-
export * from './application/hooks';
|
|
12
|
-
|
|
13
|
-
// Domain layer
|
|
14
|
-
export * from './domain';
|
|
15
|
-
|
|
16
|
-
// Infrastructure utilities
|
|
17
|
-
export * from './infrastructure/validation';
|
|
5
|
+
export * from "./infrastructure/validation";
|
|
6
|
+
export * from "./domain/base-generation-strategy";
|
|
7
|
+
export * from "./application/hooks/use-generation-handler";
|