@umituz/web-ai 0.0.0-stage → 1.0.0
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/LICENSE +21 -0
- package/README.md +98 -2
- package/dist/ABTesting-DDqNhHtP.d.ts +184 -0
- package/dist/ABTesting-DWBtKTMQ.d.cts +184 -0
- package/dist/ContentGeneration-B6iK2B33.d.cts +93 -0
- package/dist/ContentGeneration-B6iK2B33.d.ts +93 -0
- package/dist/ProviderConfig-a55tLhWT.d.cts +99 -0
- package/dist/ProviderConfig-a55tLhWT.d.ts +99 -0
- package/dist/cache-manager-Df9LLYGA.d.cts +31 -0
- package/dist/cache-manager-Df9LLYGA.d.ts +31 -0
- package/dist/chat/index.cjs +534 -0
- package/dist/chat/index.cjs.map +1 -0
- package/dist/chat/index.d.cts +25 -0
- package/dist/chat/index.d.ts +25 -0
- package/dist/chat/index.js +527 -0
- package/dist/chat/index.js.map +1 -0
- package/dist/chat.service-DBKq9I2c.d.cts +124 -0
- package/dist/chat.service-RQn8UTXD.d.ts +124 -0
- package/dist/content/index.cjs +3769 -0
- package/dist/content/index.cjs.map +1 -0
- package/dist/content/index.d.cts +225 -0
- package/dist/content/index.d.ts +225 -0
- package/dist/content/index.js +3738 -0
- package/dist/content/index.js.map +1 -0
- package/dist/core/index.cjs +1040 -0
- package/dist/core/index.cjs.map +1 -0
- package/dist/core/index.d.cts +232 -0
- package/dist/core/index.d.ts +232 -0
- package/dist/core/index.js +969 -0
- package/dist/core/index.js.map +1 -0
- package/dist/create-ai-BhNaz86i.d.ts +268 -0
- package/dist/create-ai-DGZFBOA1.d.cts +268 -0
- package/dist/hooks/index.cjs +5056 -0
- package/dist/hooks/index.cjs.map +1 -0
- package/dist/hooks/index.d.cts +210 -0
- package/dist/hooks/index.d.ts +210 -0
- package/dist/hooks/index.js +5045 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/index-DjX9ZKuM.d.cts +14 -0
- package/dist/index-DxLvE588.d.ts +14 -0
- package/dist/index-fXjxTR5W.d.cts +66 -0
- package/dist/index-fXjxTR5W.d.ts +66 -0
- package/dist/index.cjs +3158 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +11 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +3048 -0
- package/dist/index.js.map +1 -0
- package/dist/provider.factory-COsnprLH.d.cts +110 -0
- package/dist/provider.factory-CpWFyjbw.d.ts +110 -0
- package/dist/providers/index.cjs +2410 -0
- package/dist/providers/index.cjs.map +1 -0
- package/dist/providers/index.d.cts +333 -0
- package/dist/providers/index.d.ts +333 -0
- package/dist/providers/index.js +2376 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/request-deduplicator.util-NDo0_n1y.d.cts +50 -0
- package/dist/request-deduplicator.util-NDo0_n1y.d.ts +50 -0
- package/dist/wizard/index.cjs +230 -0
- package/dist/wizard/index.cjs.map +1 -0
- package/dist/wizard/index.d.cts +86 -0
- package/dist/wizard/index.d.ts +86 -0
- package/dist/wizard/index.js +223 -0
- package/dist/wizard/index.js.map +1 -0
- package/package.json +111 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/wizard/content.wizard.ts","../../src/wizard/image.wizard.ts","../../src/wizard/video.wizard.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["\nimport type { WizardStep } from './base.wizard';\nimport type { BlogGenerationRequest, SocialContentRequest, VideoScriptRequest } from '../content/domain/entities/ContentGeneration';\n\nexport type ContentType = 'blog' | 'social' | 'script' | 'news' | 'ebook' | 'podcast';\n\nexport type ContentWizardStep =\n | 'select-type'\n | 'input-topic'\n | 'configure'\n | 'advanced'\n | 'preview'\n | 'generating'\n | 'results';\n\nexport interface ContentWizardData {\n contentType?: ContentType;\n\n topic?: string;\n description?: string;\n\n tone?: 'professional' | 'casual' | 'enthusiastic' | 'humorous' | 'dramatic' | 'educational';\n platform?: 'twitter' | 'linkedin' | 'instagram' | 'threads' | 'tiktok' | 'facebook';\n targetAudience?: string;\n wordCount?: number;\n duration?: number;\n\n keywords?: string[];\n includeImages?: boolean;\n includeCallToAction?: boolean;\n seoOptimization?: boolean;\n language?: string;\n\n generatedContent?: string;\n generatedId?: string;\n}\n\nexport const CONTENT_WIZARD_STEPS: ReadonlyArray<WizardStep<ContentWizardStep>> = [\n {\n id: 'select-type',\n label: 'Select Type',\n icon: 'Layers',\n description: 'Choose the type of content you want to generate',\n validate: (data) => Boolean((data as ContentWizardData).contentType),\n },\n {\n id: 'input-topic',\n label: 'Topic',\n icon: 'Lightbulb',\n description: 'Enter your topic or idea',\n validate: (data) => {\n const topic = (data as ContentWizardData).topic;\n return typeof topic === 'string' && topic.length > 0;\n },\n },\n {\n id: 'configure',\n label: 'Configure',\n icon: 'Settings',\n description: 'Set tone, audience, and platform',\n validate: (data) => {\n const d = data as ContentWizardData;\n return Boolean(d.tone && d.targetAudience);\n },\n },\n {\n id: 'advanced',\n label: 'Advanced',\n icon: 'Sliders',\n description: 'Additional options and optimizations',\n optional: true,\n },\n {\n id: 'preview',\n label: 'Preview',\n icon: 'Eye',\n description: 'Review your settings before generation',\n },\n {\n id: 'generating',\n label: 'Generating',\n icon: 'Sparkles',\n description: 'AI is generating your content',\n },\n {\n id: 'results',\n label: 'Results',\n icon: 'CheckCircle',\n description: 'Your generated content is ready',\n },\n];\n\nexport function buildContentRequest(\n data: ContentWizardData,\n): BlogGenerationRequest | SocialContentRequest | VideoScriptRequest {\n switch (data.contentType) {\n case 'blog':\n return {\n topic: data.topic ?? '',\n blogType: 'tutorial',\n targetKeywords: data.keywords ?? [],\n tone: data.tone ?? 'professional',\n wordCount: data.wordCount ?? 1000,\n targetAudience: data.targetAudience ?? '',\n seoOptimization: data.seoOptimization ?? false,\n includeImages: data.includeImages ?? false,\n includeSchema: false,\n };\n case 'social':\n return {\n topic: data.topic ?? '',\n platform: data.platform ?? 'twitter',\n tone: data.tone ?? 'casual',\n hashtags: true,\n targetAudience: data.targetAudience,\n includeCallToAction: data.includeCallToAction,\n };\n case 'script':\n return {\n topic: data.topic ?? '',\n tone: data.tone ?? 'professional',\n duration: data.duration ?? 60,\n targetAudience: data.targetAudience ?? '',\n includeVisuals: true,\n includeCallToAction: data.includeCallToAction ?? false,\n };\n default:\n throw new Error(`Unsupported content type: ${data.contentType}`);\n }\n}\n","\nimport type { WizardStep } from './base.wizard';\nimport type { ImageGenerationRequest } from '../content/domain/config/ProviderConfig';\n\nexport type ImageWizardStep =\n | 'input-prompt'\n | 'select-style'\n | 'configure'\n | 'advanced'\n | 'preview'\n | 'generating'\n | 'results';\n\nexport interface ImageWizardData {\n prompt?: string;\n\n style?: 'realistic' | 'cartoon' | 'abstract' | 'minimalist' | 'vintage';\n\n format?: 'square' | 'landscape' | 'portrait' | 'story' | 'banner';\n quality?: 'standard' | 'high' | 'ultra';\n quantity?: number;\n\n colorPalette?: string[];\n platform?: 'instagram' | 'youtube' | 'facebook' | 'twitter' | 'general';\n\n generatedImageUrl?: string;\n generatedId?: string;\n}\n\nexport const IMAGE_WIZARD_STEPS: ReadonlyArray<WizardStep<ImageWizardStep>> = [\n {\n id: 'input-prompt',\n label: 'Describe Image',\n icon: 'Image',\n description: 'Describe the image you want to create',\n validate: (data) => {\n const prompt = (data as ImageWizardData).prompt;\n return typeof prompt === 'string' && prompt.length > 0;\n },\n },\n {\n id: 'select-style',\n label: 'Style',\n icon: 'Palette',\n description: 'Choose the artistic style',\n validate: (data) => Boolean((data as ImageWizardData).style),\n },\n {\n id: 'configure',\n label: 'Configure',\n icon: 'Settings',\n description: 'Set format, quality, and quantity',\n validate: (data) => {\n const d = data as ImageWizardData;\n return Boolean(d.format && d.quality);\n },\n },\n {\n id: 'advanced',\n label: 'Advanced',\n icon: 'Sliders',\n description: 'Color palette and platform optimization',\n optional: true,\n },\n { id: 'preview', label: 'Preview', icon: 'Eye', description: 'Review your settings' },\n { id: 'generating', label: 'Generating', icon: 'Sparkles', description: 'AI is creating your image' },\n { id: 'results', label: 'Results', icon: 'Image', description: 'Your generated image is ready' },\n];\n\nexport function buildImageRequest(data: ImageWizardData): ImageGenerationRequest {\n return {\n type: 'image',\n prompt: data.prompt ?? '',\n style: data.style,\n format: data.format,\n quality: data.quality,\n quantity: data.quantity ?? 1,\n };\n}\n","\nimport type { WizardStep } from './base.wizard';\nimport type { VideoGenerationRequest, ImageToVideoRequest, VideoToVideoRequest } from '../content/domain/config/ProviderConfig';\n\nexport type VideoGenerationType = 'text-to-video' | 'image-to-video' | 'video-to-video';\n\nexport type VideoWizardStep =\n | 'select-type'\n | 'input-source'\n | 'configure'\n | 'advanced'\n | 'preview'\n | 'generating'\n | 'results';\n\nexport interface VideoWizardData {\n generationType?: VideoGenerationType;\n\n prompt?: string;\n imageUrl?: string;\n sourceVideoUrl?: string;\n\n duration?: number;\n aspectRatio?: '16:9' | '9:16' | '1:1';\n style?: 'realistic' | 'animated' | 'cinematic' | 'documentary';\n quality?: 'standard' | 'high' | 'ultra';\n\n motion?: 'slow' | 'medium' | 'fast';\n camera?: 'static' | 'pan' | 'zoom' | 'tracking';\n styleTransfer?: 'cinematic' | 'anime' | 'cartoon' | 'vintage';\n enhanceQuality?: boolean;\n\n generatedVideoUrl?: string;\n generatedId?: string;\n}\n\nconst validateSource = (data: Record<string, unknown>): boolean => {\n const d = data as VideoWizardData;\n if (d.generationType === 'text-to-video') {\n return typeof d.prompt === 'string' && d.prompt.length > 0;\n }\n if (d.generationType === 'image-to-video') {\n return typeof d.imageUrl === 'string' && d.imageUrl.length > 0;\n }\n if (d.generationType === 'video-to-video') {\n return typeof d.sourceVideoUrl === 'string' && d.sourceVideoUrl.length > 0\n && typeof d.prompt === 'string' && d.prompt.length > 0;\n }\n return false;\n};\n\nexport const VIDEO_WIZARD_STEPS: ReadonlyArray<WizardStep<VideoWizardStep>> = [\n {\n id: 'select-type',\n label: 'Select Type',\n icon: 'Video',\n description: 'Choose video generation type',\n validate: (data) => Boolean((data as VideoWizardData).generationType),\n },\n {\n id: 'input-source',\n label: 'Source',\n icon: 'FileInput',\n description: 'Provide your source (prompt, image, or video)',\n validate: validateSource,\n },\n {\n id: 'configure',\n label: 'Configure',\n icon: 'Settings',\n description: 'Set duration, aspect ratio, and style',\n validate: (data) => {\n const d = data as VideoWizardData;\n return Boolean(d.duration && d.aspectRatio);\n },\n },\n { id: 'advanced', label: 'Advanced', icon: 'Sliders', description: 'Additional video options', optional: true },\n { id: 'preview', label: 'Preview', icon: 'Eye', description: 'Review your settings' },\n { id: 'generating', label: 'Generating', icon: 'Sparkles', description: 'AI is creating your video' },\n { id: 'results', label: 'Results', icon: 'Video', description: 'Your generated video is ready' },\n];\n\nexport function buildVideoRequest(\n data: VideoWizardData,\n): VideoGenerationRequest | ImageToVideoRequest | VideoToVideoRequest {\n switch (data.generationType) {\n case 'text-to-video':\n return {\n type: 'video',\n prompt: data.prompt ?? '',\n duration: data.duration ?? 5,\n aspectRatio: data.aspectRatio ?? '16:9',\n style: data.style,\n quality: data.quality,\n } as VideoGenerationRequest;\n case 'image-to-video':\n return {\n type: 'video',\n imageUrl: data.imageUrl ?? '',\n prompt: data.prompt,\n duration: data.duration ?? 5,\n motion: data.motion ?? 'medium',\n camera: data.camera ?? 'static',\n } as ImageToVideoRequest;\n case 'video-to-video':\n return {\n type: 'video',\n sourceVideoUrl: data.sourceVideoUrl ?? '',\n prompt: data.prompt ?? '',\n styleTransfer: data.styleTransfer,\n enhanceQuality: data.enhanceQuality,\n } as VideoToVideoRequest;\n default:\n throw new Error(`Unsupported generation type: ${data.generationType}`);\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,113 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@umituz/web-ai",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Provider-agnostic AI engine for web and edge — text, chat, structured output and streaming over swappable providers (Anthropic, Groq, Gemini, fal, Pruna), plus a content generation suite",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"require": "./dist/index.cjs"
|
|
14
|
+
},
|
|
15
|
+
"./core": {
|
|
16
|
+
"types": "./dist/core/index.d.ts",
|
|
17
|
+
"import": "./dist/core/index.js",
|
|
18
|
+
"require": "./dist/core/index.cjs"
|
|
19
|
+
},
|
|
20
|
+
"./providers": {
|
|
21
|
+
"types": "./dist/providers/index.d.ts",
|
|
22
|
+
"import": "./dist/providers/index.js",
|
|
23
|
+
"require": "./dist/providers/index.cjs"
|
|
24
|
+
},
|
|
25
|
+
"./chat": {
|
|
26
|
+
"types": "./dist/chat/index.d.ts",
|
|
27
|
+
"import": "./dist/chat/index.js",
|
|
28
|
+
"require": "./dist/chat/index.cjs"
|
|
29
|
+
},
|
|
30
|
+
"./content": {
|
|
31
|
+
"types": "./dist/content/index.d.ts",
|
|
32
|
+
"import": "./dist/content/index.js",
|
|
33
|
+
"require": "./dist/content/index.cjs"
|
|
34
|
+
},
|
|
35
|
+
"./wizard": {
|
|
36
|
+
"types": "./dist/wizard/index.d.ts",
|
|
37
|
+
"import": "./dist/wizard/index.js",
|
|
38
|
+
"require": "./dist/wizard/index.cjs"
|
|
39
|
+
},
|
|
40
|
+
"./hooks": {
|
|
41
|
+
"types": "./dist/hooks/index.d.ts",
|
|
42
|
+
"import": "./dist/hooks/index.js",
|
|
43
|
+
"require": "./dist/hooks/index.cjs"
|
|
44
|
+
},
|
|
45
|
+
"./package.json": "./package.json"
|
|
46
|
+
},
|
|
47
|
+
"sideEffects": false,
|
|
48
|
+
"scripts": {
|
|
49
|
+
"typecheck": "tsc --noEmit",
|
|
50
|
+
"lint": "eslint .",
|
|
51
|
+
"build": "tsup",
|
|
52
|
+
"dev": "tsup --watch",
|
|
53
|
+
"test": "vitest run",
|
|
54
|
+
"test:watch": "vitest",
|
|
55
|
+
"version:patch": "npm version patch -m 'chore: release v%s'",
|
|
56
|
+
"version:minor": "npm version minor -m 'chore: release v%s'",
|
|
57
|
+
"version:major": "npm version major -m 'chore: release v%s'"
|
|
58
|
+
},
|
|
59
|
+
"keywords": [
|
|
60
|
+
"ai",
|
|
61
|
+
"llm",
|
|
62
|
+
"anthropic",
|
|
63
|
+
"claude",
|
|
64
|
+
"groq",
|
|
65
|
+
"gemini",
|
|
66
|
+
"provider-agnostic",
|
|
67
|
+
"chat",
|
|
68
|
+
"streaming",
|
|
69
|
+
"structured-output",
|
|
70
|
+
"content-generation",
|
|
71
|
+
"react",
|
|
72
|
+
"cloudflare-workers",
|
|
73
|
+
"typescript"
|
|
74
|
+
],
|
|
75
|
+
"author": "umituz",
|
|
76
|
+
"license": "MIT",
|
|
77
|
+
"repository": {
|
|
78
|
+
"type": "git",
|
|
79
|
+
"url": "https://github.com/umituz/web-ai"
|
|
80
|
+
},
|
|
81
|
+
"peerDependencies": {
|
|
82
|
+
"@umituz/pruna-provider": ">=1.0.0",
|
|
83
|
+
"react": ">=18"
|
|
84
|
+
},
|
|
85
|
+
"peerDependenciesMeta": {
|
|
86
|
+
"@umituz/pruna-provider": {
|
|
87
|
+
"optional": true
|
|
88
|
+
},
|
|
89
|
+
"react": {
|
|
90
|
+
"optional": true
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"devDependencies": {
|
|
94
|
+
"@eslint/js": "^9.32.0",
|
|
95
|
+
"@types/node": "^20.0.0",
|
|
96
|
+
"@types/react": "^18.2.0",
|
|
97
|
+
"@umituz/pruna-provider": "^1.0.9",
|
|
98
|
+
"eslint": "^9.32.0",
|
|
99
|
+
"react": "18.3.1",
|
|
100
|
+
"tsup": "^8.0.0",
|
|
101
|
+
"typescript": "~5.9.2",
|
|
102
|
+
"typescript-eslint": "^8.38.0",
|
|
103
|
+
"vitest": "^3.2.7"
|
|
104
|
+
},
|
|
105
|
+
"publishConfig": {
|
|
106
|
+
"access": "public"
|
|
107
|
+
},
|
|
108
|
+
"files": [
|
|
109
|
+
"dist",
|
|
110
|
+
"README.md",
|
|
111
|
+
"LICENSE"
|
|
112
|
+
]
|
|
113
|
+
}
|