ugly-app 0.1.49 → 0.1.50
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/README.md +31 -10
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -414,7 +414,7 @@ Renders an `<a>` tag with the correct `href`. Intercepts clicks for client-side
|
|
|
414
414
|
|
|
415
415
|
#### Animation system
|
|
416
416
|
|
|
417
|
-
Built-in
|
|
417
|
+
Built-in animation primitives for transitions and popups. `Animated.div` and `Animated.span` accept `AnimatedStyle` — a style object where any CSS property can be an `AnimatedValueRef` or a `TransformedValue` instead of a static value.
|
|
418
418
|
|
|
419
419
|
```typescript
|
|
420
420
|
import {
|
|
@@ -431,7 +431,7 @@ import {
|
|
|
431
431
|
const spring = createAnimatedValue(0);
|
|
432
432
|
spring.start(1, { duration: 300, easing: easingFunctions.easeOut });
|
|
433
433
|
|
|
434
|
-
// Use in components
|
|
434
|
+
// Use in components — animated properties bypass React re-renders via direct DOM mutation
|
|
435
435
|
<Animated.div style={{ opacity: spring.to((v) => String(v)) }}>
|
|
436
436
|
Content
|
|
437
437
|
</Animated.div>
|
|
@@ -518,6 +518,16 @@ configurator.setAuth({
|
|
|
518
518
|
});
|
|
519
519
|
```
|
|
520
520
|
|
|
521
|
+
The `AuthProvider` interface:
|
|
522
|
+
|
|
523
|
+
```typescript
|
|
524
|
+
interface AuthProvider {
|
|
525
|
+
verify(code: string): Promise<{ userId: string; email?: string; phone?: string }>;
|
|
526
|
+
authUrl(origin: string): string;
|
|
527
|
+
registerRoutes?(router: express.Router): void;
|
|
528
|
+
}
|
|
529
|
+
```
|
|
530
|
+
|
|
521
531
|
---
|
|
522
532
|
|
|
523
533
|
## Database (`TypedDB`)
|
|
@@ -633,14 +643,14 @@ const json = await textGen.generateJson(schema, messages); // Zod schema, re
|
|
|
633
643
|
const result = await textGen.generateWithTools(messages, tools); // automatic tool-call loop
|
|
634
644
|
```
|
|
635
645
|
|
|
636
|
-
| Provider | `provider` value | JSON | Tools | Vision |
|
|
637
|
-
|
|
638
|
-
| Together AI
|
|
639
|
-
| Anthropic
|
|
640
|
-
| OpenAI
|
|
641
|
-
| Google
|
|
642
|
-
| Groq
|
|
643
|
-
| Fireworks | `'fireworks'` | yes | yes | yes |
|
|
646
|
+
| Provider | `provider` value | Default model | JSON | Tools | Vision |
|
|
647
|
+
|----------|-----------------|---------------|------|-------|--------|
|
|
648
|
+
| Together AI | `'together'` | Llama-4-Maverick-17B-128E | yes | yes | yes |
|
|
649
|
+
| Anthropic | `'claude'` | claude-sonnet-4-6 | yes | yes | yes |
|
|
650
|
+
| OpenAI | `'openai'` | gpt-4o | yes | yes | yes |
|
|
651
|
+
| Google | `'google'` | gemini-2.5-flash | yes | yes | yes |
|
|
652
|
+
| Groq | `'groq'` | llama-3.3-70b-versatile | yes | yes | no |
|
|
653
|
+
| Fireworks | `'fireworks'` | llama-v3p1-70b-instruct | yes | yes | yes |
|
|
644
654
|
|
|
645
655
|
Use `provider: 'auto'` (default) to let the system pick based on requirements.
|
|
646
656
|
|
|
@@ -723,6 +733,17 @@ const { uploadUrl, resultUrl } = await storage.presignedPut('temp', key);
|
|
|
723
733
|
|
|
724
734
|
Buckets: `'public'` and `'temp'`. Supports Cloudflare R2 (production) or MinIO (dev).
|
|
725
735
|
|
|
736
|
+
The `StorageClient` interface:
|
|
737
|
+
|
|
738
|
+
```typescript
|
|
739
|
+
interface StorageClient {
|
|
740
|
+
put(bucket: 'public' | 'temp', key: string, body: Buffer, contentType: string): Promise<string>;
|
|
741
|
+
moveToPublic(tempKey: string, destKey: string): Promise<string>;
|
|
742
|
+
url(bucket: 'public' | 'temp', key: string): string;
|
|
743
|
+
presignedPut(bucket: 'temp', key: string): Promise<{ uploadUrl: string; resultUrl: string }>;
|
|
744
|
+
}
|
|
745
|
+
```
|
|
746
|
+
|
|
726
747
|
Static build-time assets go in `client/public/`. Never hardcode `/asset/...` paths — use the `buildId` from `shared/Build.ts`.
|
|
727
748
|
|
|
728
749
|
---
|