@liforma/client 0.4.2 → 0.4.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.
- package/CHANGELOG.md +6 -0
- package/dist/next/index.js +681 -573
- package/dist/next/index.js.map +1 -1
- package/dist/next/react/ExperienceThumbnail.d.ts +1 -1
- package/dist/next/react/ExperienceThumbnail.d.ts.map +1 -1
- package/dist/next/react/ExperienceWidget.d.ts +4 -0
- package/dist/next/react/ExperienceWidget.d.ts.map +1 -1
- package/dist/next/thumbnail/index.d.ts +1 -0
- package/dist/next/thumbnail/index.d.ts.map +1 -1
- package/dist/next/thumbnail/styles.d.ts.map +1 -1
- package/dist/next/thumbnail/types.d.ts +3 -2
- package/dist/next/thumbnail/types.d.ts.map +1 -1
- package/dist/next/v2/embed/iframeHost.d.ts +27 -1
- package/dist/next/v2/embed/iframeHost.d.ts.map +1 -1
- package/dist/next/v2/embed/protocol.d.ts +61 -1
- package/dist/next/v2/embed/protocol.d.ts.map +1 -1
- package/dist/next/v2/experience.d.ts +16 -2
- package/dist/next/v2/experience.d.ts.map +1 -1
- package/dist/next/v2/experienceEvents.d.ts +25 -0
- package/dist/next/v2/experienceEvents.d.ts.map +1 -1
- package/dist/next/v2/shims/embedBaseUrl.d.ts +1 -1
- package/dist/next/v2/shims/embedBaseUrl.d.ts.map +1 -1
- package/dist/next/v2/types/sessionInteraction.d.ts +3 -1
- package/dist/next/v2/types/sessionInteraction.d.ts.map +1 -1
- package/dist/next/widget/mountExperienceWidget.d.ts.map +1 -1
- package/dist/next/widget/types.d.ts +7 -0
- package/dist/next/widget/types.d.ts.map +1 -1
- package/dist/npm/index.js +542 -440
- package/dist/npm/index.js.map +1 -1
- package/dist/npm/thumbnail/index.d.ts +1 -0
- package/dist/npm/thumbnail/index.d.ts.map +1 -1
- package/dist/npm/thumbnail/styles.d.ts.map +1 -1
- package/dist/npm/thumbnail/types.d.ts +3 -2
- package/dist/npm/thumbnail/types.d.ts.map +1 -1
- package/dist/npm/v2/embed/iframeHost.d.ts +27 -1
- package/dist/npm/v2/embed/iframeHost.d.ts.map +1 -1
- package/dist/npm/v2/embed/protocol.d.ts +61 -1
- package/dist/npm/v2/embed/protocol.d.ts.map +1 -1
- package/dist/npm/v2/experience.d.ts +16 -2
- package/dist/npm/v2/experience.d.ts.map +1 -1
- package/dist/npm/v2/experienceEvents.d.ts +25 -0
- package/dist/npm/v2/experienceEvents.d.ts.map +1 -1
- package/dist/npm/v2/index.d.ts +1 -1
- package/dist/npm/v2/index.d.ts.map +1 -1
- package/dist/npm/v2/liforma-experience-thumbnail.d.ts.map +1 -1
- package/dist/npm/v2/liforma-experience.d.ts.map +1 -1
- package/dist/npm/v2/npm.d.ts +2 -1
- package/dist/npm/v2/npm.d.ts.map +1 -1
- package/dist/npm/v2/shims/embedBaseUrl.d.ts +1 -1
- package/dist/npm/v2/shims/embedBaseUrl.d.ts.map +1 -1
- package/dist/npm/v2/types/sessionInteraction.d.ts +3 -1
- package/dist/npm/v2/types/sessionInteraction.d.ts.map +1 -1
- package/dist/npm/v2/types/sessionManifestSchema.d.ts +1 -1
- package/dist/npm/v2/types/sessionManifestSchema.d.ts.map +1 -1
- package/dist/npm/widget/mountExperienceWidget.d.ts.map +1 -1
- package/dist/npm/widget/types.d.ts +7 -0
- package/dist/npm/widget/types.d.ts.map +1 -1
- package/dist/react/component/experienceComponentLaunch.d.ts.map +1 -1
- package/dist/react/component/experienceComponentRuntime.d.ts +4 -0
- package/dist/react/component/experienceComponentRuntime.d.ts.map +1 -1
- package/dist/react/component/experienceComponentTypes.d.ts +17 -1
- package/dist/react/component/experienceComponentTypes.d.ts.map +1 -1
- package/dist/react/index.js +761 -636
- package/dist/react/index.js.map +1 -1
- package/dist/react/react/Experience.d.ts.map +1 -1
- package/dist/react/react/ExperienceThumbnail.d.ts +1 -1
- package/dist/react/react/ExperienceThumbnail.d.ts.map +1 -1
- package/dist/react/react/ExperienceWidget.d.ts +4 -0
- package/dist/react/react/ExperienceWidget.d.ts.map +1 -1
- package/dist/react/thumbnail/index.d.ts +1 -0
- package/dist/react/thumbnail/index.d.ts.map +1 -1
- package/dist/react/thumbnail/styles.d.ts.map +1 -1
- package/dist/react/thumbnail/types.d.ts +3 -2
- package/dist/react/thumbnail/types.d.ts.map +1 -1
- package/dist/react/v2/embed/iframeHost.d.ts +27 -1
- package/dist/react/v2/embed/iframeHost.d.ts.map +1 -1
- package/dist/react/v2/embed/protocol.d.ts +61 -1
- package/dist/react/v2/embed/protocol.d.ts.map +1 -1
- package/dist/react/v2/experience.d.ts +16 -2
- package/dist/react/v2/experience.d.ts.map +1 -1
- package/dist/react/v2/experienceEvents.d.ts +25 -0
- package/dist/react/v2/experienceEvents.d.ts.map +1 -1
- package/dist/react/v2/shims/embedBaseUrl.d.ts +1 -1
- package/dist/react/v2/shims/embedBaseUrl.d.ts.map +1 -1
- package/dist/react/v2/types/sessionInteraction.d.ts +3 -1
- package/dist/react/v2/types/sessionInteraction.d.ts.map +1 -1
- package/dist/react/widget/mountExperienceWidget.d.ts.map +1 -1
- package/dist/react/widget/types.d.ts +7 -0
- package/dist/react/widget/types.d.ts.map +1 -1
- package/dist/sdk/v2/client.js +30 -5
- package/dist/sdk/v2/client.js.map +1 -1
- package/dist/svelte/Experience.svelte +29 -0
- package/dist/svelte/Experience.svelte.d.ts +2 -0
- package/dist/svelte/ExperienceThumbnail.svelte +3 -2
- package/dist/svelte/ExperienceThumbnail.svelte.d.ts +1 -1
- package/dist/svelte/ExperienceWidget.svelte +12 -1
- package/dist/svelte/ExperienceWidget.svelte.d.ts +3 -0
- package/package.json +14 -2
|
@@ -57,12 +57,14 @@
|
|
|
57
57
|
mode,
|
|
58
58
|
speechInputMode,
|
|
59
59
|
startButton,
|
|
60
|
+
showFeedback,
|
|
60
61
|
closeButton,
|
|
61
62
|
conversationProcessor,
|
|
62
63
|
speechOnly = false,
|
|
63
64
|
fit,
|
|
64
65
|
avatarId,
|
|
65
66
|
locationId,
|
|
67
|
+
castSize,
|
|
66
68
|
embedBaseUrl,
|
|
67
69
|
debug = false,
|
|
68
70
|
returnUrl,
|
|
@@ -73,10 +75,13 @@
|
|
|
73
75
|
onUserSpeechEnded,
|
|
74
76
|
onCharacterSpeechStarted,
|
|
75
77
|
onCharacterSpeechEnded,
|
|
78
|
+
onCharacterFocusChanged,
|
|
76
79
|
onConversationUpdate,
|
|
77
80
|
onMessage,
|
|
78
81
|
onListeningState,
|
|
79
82
|
onActivityChange,
|
|
83
|
+
onFeedback,
|
|
84
|
+
onFeedbackFailed,
|
|
80
85
|
onConversationProcessorError,
|
|
81
86
|
onPlayerStatusChange,
|
|
82
87
|
onStateUpdate,
|
|
@@ -106,6 +111,7 @@
|
|
|
106
111
|
speechOnly,
|
|
107
112
|
avatarId,
|
|
108
113
|
locationId,
|
|
114
|
+
castSize,
|
|
109
115
|
embedBaseUrl,
|
|
110
116
|
debug
|
|
111
117
|
])
|
|
@@ -263,12 +269,17 @@
|
|
|
263
269
|
subscribe(generation, session, 'characterSpeechEnded', (event) =>
|
|
264
270
|
onCharacterSpeechEnded?.(event)
|
|
265
271
|
);
|
|
272
|
+
subscribe(generation, session, 'characterFocusChanged', (event) =>
|
|
273
|
+
onCharacterFocusChanged?.(event)
|
|
274
|
+
);
|
|
266
275
|
subscribe(generation, session, 'conversationUpdate', (event) =>
|
|
267
276
|
onConversationUpdate?.(event)
|
|
268
277
|
);
|
|
269
278
|
subscribe(generation, session, 'message', (event) => onMessage?.(event));
|
|
270
279
|
subscribe(generation, session, 'listeningState', (event) => onListeningState?.(event));
|
|
271
280
|
subscribe(generation, session, 'activityChange', (event) => onActivityChange?.(event));
|
|
281
|
+
subscribe(generation, session, 'feedback', (event) => onFeedback?.(event));
|
|
282
|
+
subscribe(generation, session, 'feedbackFailed', (event) => onFeedbackFailed?.(event));
|
|
272
283
|
subscribe(generation, session, 'conversationProcessorError', (event) =>
|
|
273
284
|
onConversationProcessorError?.(event)
|
|
274
285
|
);
|
|
@@ -304,6 +315,7 @@
|
|
|
304
315
|
language,
|
|
305
316
|
locationId,
|
|
306
317
|
avatarId,
|
|
318
|
+
castSize,
|
|
307
319
|
embedBaseUrl,
|
|
308
320
|
debug,
|
|
309
321
|
mode,
|
|
@@ -321,6 +333,7 @@
|
|
|
321
333
|
language,
|
|
322
334
|
locationId,
|
|
323
335
|
avatarId,
|
|
336
|
+
castSize,
|
|
324
337
|
embedBaseUrl,
|
|
325
338
|
debug,
|
|
326
339
|
mode,
|
|
@@ -358,6 +371,7 @@
|
|
|
358
371
|
container,
|
|
359
372
|
fit: untrack(() => fit),
|
|
360
373
|
startButton: untrack(() => startButton),
|
|
374
|
+
showFeedback: untrack(() => showFeedback),
|
|
361
375
|
closeButton: untrack(() => closeButton),
|
|
362
376
|
returnUrl: untrack(() => returnUrl),
|
|
363
377
|
showClose: Boolean(onClose || returnUrl?.trim() || closeButton),
|
|
@@ -455,6 +469,14 @@
|
|
|
455
469
|
return activeGeneration?.instance?.getConversation() ?? [];
|
|
456
470
|
}
|
|
457
471
|
|
|
472
|
+
export function focusCharacter(characterId: string): Promise<void> {
|
|
473
|
+
return withSession((session) => session.focusCharacter(characterId));
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
export function setFit(nextFit: NonNullable<ExperienceProps['fit']>): Promise<void> {
|
|
477
|
+
return withSession((session) => session.setFit(nextFit));
|
|
478
|
+
}
|
|
479
|
+
|
|
458
480
|
export function end(): Promise<void> {
|
|
459
481
|
return withSession((session) => session.end());
|
|
460
482
|
}
|
|
@@ -502,6 +524,13 @@
|
|
|
502
524
|
|
|
503
525
|
$effect(restartSession);
|
|
504
526
|
|
|
527
|
+
$effect(() => {
|
|
528
|
+
const nextFit = fit ?? 'full';
|
|
529
|
+
const session = untrack(() => activeGeneration?.instance ?? null);
|
|
530
|
+
if (!session) return;
|
|
531
|
+
void session.setFit(nextFit);
|
|
532
|
+
});
|
|
533
|
+
|
|
505
534
|
$effect(() => {
|
|
506
535
|
const container = errorHost;
|
|
507
536
|
const presentation = loadError;
|
|
@@ -15,6 +15,8 @@ declare const Experience: import("svelte").Component<ExperienceProps, {
|
|
|
15
15
|
getSession: () => Session | null;
|
|
16
16
|
getManifest: () => SessionManifest | null;
|
|
17
17
|
getConversation: () => ReturnType<ExperienceSession["getConversation"]>;
|
|
18
|
+
focusCharacter: (characterId: string) => Promise<void>;
|
|
19
|
+
setFit: (nextFit: NonNullable<ExperienceProps["fit"]>) => Promise<void>;
|
|
18
20
|
end: () => Promise<void>;
|
|
19
21
|
}, "">;
|
|
20
22
|
type Experience = ReturnType<typeof Experience>;
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
resolveThumbnailHref,
|
|
13
13
|
resolveThumbnailInteraction,
|
|
14
14
|
resolveThumbnailLayers,
|
|
15
|
+
thumbnailFitClass,
|
|
15
16
|
type GalleryThumb
|
|
16
17
|
} from '@liforma/client';
|
|
17
18
|
|
|
@@ -47,7 +48,7 @@
|
|
|
47
48
|
returnUrl?: string;
|
|
48
49
|
playerBaseUrl?: string;
|
|
49
50
|
parallax?: boolean;
|
|
50
|
-
fit?: 'full' | 'face';
|
|
51
|
+
fit?: 'full' | 'face' | 'medium';
|
|
51
52
|
lazy?: boolean;
|
|
52
53
|
class?: string;
|
|
53
54
|
fallbackImage?: string;
|
|
@@ -263,7 +264,7 @@
|
|
|
263
264
|
[
|
|
264
265
|
'liforma-et',
|
|
265
266
|
hasScene ? 'liforma-et--scene' : '',
|
|
266
|
-
fit
|
|
267
|
+
thumbnailFitClass(fit),
|
|
267
268
|
parallaxLayersActive ? 'liforma-et--parallax' : '',
|
|
268
269
|
scrollParallax ? 'liforma-et--scroll-parallax' : '',
|
|
269
270
|
shouldLoad && !revealThumb ? 'liforma-et--loading' : '',
|
|
@@ -35,13 +35,16 @@
|
|
|
35
35
|
expandedMaxHeight,
|
|
36
36
|
startButtonLabel,
|
|
37
37
|
startButton,
|
|
38
|
+
showFeedback,
|
|
38
39
|
class: className = '',
|
|
39
40
|
onExpanded,
|
|
40
41
|
onCollapsed,
|
|
41
42
|
onStarted,
|
|
42
43
|
onClose,
|
|
43
44
|
onError,
|
|
44
|
-
onPrefetchReady
|
|
45
|
+
onPrefetchReady,
|
|
46
|
+
onFeedback,
|
|
47
|
+
onFeedbackFailed
|
|
45
48
|
}: {
|
|
46
49
|
experienceId: string;
|
|
47
50
|
alt: string;
|
|
@@ -65,6 +68,7 @@
|
|
|
65
68
|
expandedMaxHeight?: string;
|
|
66
69
|
startButtonLabel?: string;
|
|
67
70
|
startButton?: StartButtonOptions;
|
|
71
|
+
showFeedback?: boolean;
|
|
68
72
|
class?: string;
|
|
69
73
|
onExpanded?: () => void;
|
|
70
74
|
onCollapsed?: () => void;
|
|
@@ -72,6 +76,10 @@
|
|
|
72
76
|
onClose?: () => void;
|
|
73
77
|
onError?: (error: Error) => void;
|
|
74
78
|
onPrefetchReady?: () => void;
|
|
79
|
+
onFeedback?: (event: import('@liforma/client').ExperienceEvents['feedback']) => void;
|
|
80
|
+
onFeedbackFailed?: (
|
|
81
|
+
event: import('@liforma/client').ExperienceEvents['feedbackFailed']
|
|
82
|
+
) => void;
|
|
75
83
|
} = $props();
|
|
76
84
|
|
|
77
85
|
let hostEl: HTMLDivElement | undefined = $state();
|
|
@@ -107,6 +115,9 @@
|
|
|
107
115
|
expandedMaxHeight,
|
|
108
116
|
startButtonLabel,
|
|
109
117
|
startButton,
|
|
118
|
+
showFeedback,
|
|
119
|
+
onFeedback,
|
|
120
|
+
onFeedbackFailed,
|
|
110
121
|
onExpanded,
|
|
111
122
|
onCollapsed,
|
|
112
123
|
onStarted,
|
|
@@ -22,6 +22,7 @@ type $$ComponentProps = {
|
|
|
22
22
|
expandedMaxHeight?: string;
|
|
23
23
|
startButtonLabel?: string;
|
|
24
24
|
startButton?: StartButtonOptions;
|
|
25
|
+
showFeedback?: boolean;
|
|
25
26
|
class?: string;
|
|
26
27
|
onExpanded?: () => void;
|
|
27
28
|
onCollapsed?: () => void;
|
|
@@ -29,6 +30,8 @@ type $$ComponentProps = {
|
|
|
29
30
|
onClose?: () => void;
|
|
30
31
|
onError?: (error: Error) => void;
|
|
31
32
|
onPrefetchReady?: () => void;
|
|
33
|
+
onFeedback?: (event: import('@liforma/client').ExperienceEvents['feedback']) => void;
|
|
34
|
+
onFeedbackFailed?: (event: import('@liforma/client').ExperienceEvents['feedbackFailed']) => void;
|
|
32
35
|
};
|
|
33
36
|
declare const ExperienceWidget: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
34
37
|
type ExperienceWidget = ReturnType<typeof ExperienceWidget>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@liforma/client",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Liforma browser SDK — Experience sessions, speech API, and Svelte embed component.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -137,7 +137,11 @@
|
|
|
137
137
|
"test:parse-composite-filename": "node scripts/test-parse-composite-filename.mjs",
|
|
138
138
|
"test:avatar-composite-rendered-path": "node scripts/test-avatar-composite-rendered-path.mjs",
|
|
139
139
|
"test:avatar-compose-worker-cors": "node scripts/test-avatar-compose-worker-cors.mjs",
|
|
140
|
+
"test:experience-thumb-url": "node scripts/test-experience-thumb-url.mjs",
|
|
141
|
+
"test:compose-experience-thumb": "node scripts/test-compose-experience-thumb.mjs",
|
|
140
142
|
"test:location-depth-paths": "node scripts/test-location-depth-paths.mjs",
|
|
143
|
+
"test:location-binary-assets": "node scripts/test-location-binary-assets.mjs",
|
|
144
|
+
"test:location-da3-depth": "node scripts/test-location-da3-depth.mjs",
|
|
141
145
|
"test:location-interactions": "node scripts/test-location-interactions.mjs",
|
|
142
146
|
"test:render-plate-chroma-key": "node scripts/test-render-plate-chroma-key.mjs",
|
|
143
147
|
"test:sparse-plate": "node scripts/test-sparse-plate.mjs",
|
|
@@ -149,26 +153,34 @@
|
|
|
149
153
|
"catalogue:locations": "node scripts/catalogue-locations.mjs",
|
|
150
154
|
"generate:location-interactions": "node scripts/generate-location-interactions.mjs",
|
|
151
155
|
"generate:location-depth": "node scripts/generate-location-depth.mjs",
|
|
156
|
+
"generate:location-depth16-da3": "node scripts/generate-location-depth16-da3.mjs",
|
|
157
|
+
"generate:location-discontinuities": "node scripts/generate-location-discontinuities.mjs",
|
|
152
158
|
"build:locations": "node scripts/build-locations.mjs",
|
|
153
159
|
"publish:locations": "node scripts/publish-locations.mjs",
|
|
154
160
|
"verify:locations": "node scripts/verify-location-sources.mjs",
|
|
155
161
|
"publish:models": "node scripts/publish-models.mjs",
|
|
162
|
+
"publish:models:krea-int8": "node scripts/_upload-model-prefix.mjs text-to-image/lf-t2i-turbo-int8",
|
|
163
|
+
"publish:models:ltx-int8": "node scripts/_upload-model-prefix.mjs text-to-video/lf-t2v-distill-int8",
|
|
164
|
+
"publish:models:video-omni": "node scripts/_upload-model-prefix.mjs text-to-video/lf-video-omni-v1",
|
|
156
165
|
"fetch:depth-anything-v2": "node scripts/fetch-depth-anything-v2.mjs",
|
|
157
166
|
"fetch:video-depth-anything": "node scripts/fetch-video-depth-anything.mjs",
|
|
158
167
|
"fetch:depth-pro": "node scripts/fetch-depth-pro.mjs",
|
|
159
168
|
"fetch:face-landmarker": "node scripts/fetch-face-landmarker.mjs",
|
|
160
169
|
"fetch:anime-face-detector": "node scripts/fetch-anime-face-detector.mjs",
|
|
161
170
|
"fetch:face-parsing": "node scripts/fetch-face-parsing.mjs",
|
|
171
|
+
"fetch:vitmatte": "node scripts/fetch-vitmatte.mjs",
|
|
172
|
+
"fetch:liveportrait-mlx": "node scripts/fetch-liveportrait-mlx.mjs",
|
|
162
173
|
"fetch:wav2vec-phoneme-ctc": "node scripts/fetch-wav2vec-phoneme-ctc.mjs",
|
|
163
174
|
"fetch:lf-sta": "node scripts/fetch-wav2vec-phoneme-ctc.mjs",
|
|
164
175
|
"fetch:supertonic-3": "node scripts/fetch-supertonic-3.mjs",
|
|
165
176
|
"fetch:lf-tts": "node scripts/fetch-supertonic-3.mjs",
|
|
166
177
|
"fetch:lf-t2i-turbo": "python3 ../tools/krea-2-salad/scripts/fetch_cdn_snapshot.py",
|
|
167
|
-
"fetch:models": "npm run fetch:depth-anything-v2 && npm run fetch:video-depth-anything && npm run fetch:depth-pro && npm run fetch:face-landmarker && npm run fetch:anime-face-detector && npm run fetch:face-parsing && npm run fetch:lf-sta && npm run fetch:lf-tts",
|
|
178
|
+
"fetch:models": "npm run fetch:depth-anything-v2 && npm run fetch:video-depth-anything && npm run fetch:depth-pro && npm run fetch:face-landmarker && npm run fetch:anime-face-detector && npm run fetch:face-parsing && npm run fetch:vitmatte && npm run fetch:lf-sta && npm run fetch:lf-tts",
|
|
168
179
|
"locations": "npm run catalogue:locations && npm run build:locations",
|
|
169
180
|
"configure:cors": "node scripts/configure-r2-cors.mjs",
|
|
170
181
|
"verify:cors": "node scripts/verify-cdn-cors.mjs",
|
|
171
182
|
"deploy:worker:avatar-compose": "node scripts/deploy-avatar-compose-worker.mjs",
|
|
183
|
+
"deploy:worker:experience-thumb": "node scripts/deploy-experience-thumb-worker.mjs",
|
|
172
184
|
"deploy": "npm run build && npm run publish:sdk",
|
|
173
185
|
"verify": "npm run build && node scripts/check-sdk-size.mjs && node scripts/test-embed-protocol.mjs && node scripts/test-manifest-embed-url.mjs && node scripts/test-player-reachability.mjs && node scripts/test-session-endpoint.mjs && node scripts/verify-package.mjs",
|
|
174
186
|
"preview:test": "npm run build && npm run preview"
|