@uthana/react 0.2.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/dist/UthanaProvider.d.ts +24 -0
- package/dist/UthanaProvider.d.ts.map +1 -0
- package/dist/client.d.ts +15 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/hooks/characters.d.ts +36 -0
- package/dist/hooks/characters.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +11 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/jobs.d.ts +8 -0
- package/dist/hooks/jobs.d.ts.map +1 -0
- package/dist/hooks/motionDownloads.d.ts +8 -0
- package/dist/hooks/motionDownloads.d.ts.map +1 -0
- package/dist/hooks/motions.d.ts +14 -0
- package/dist/hooks/motions.d.ts.map +1 -0
- package/dist/hooks/org.d.ts +8 -0
- package/dist/hooks/org.d.ts.map +1 -0
- package/dist/hooks/ttm.d.ts +16 -0
- package/dist/hooks/ttm.d.ts.map +1 -0
- package/dist/hooks/useCharacters.d.ts +36 -0
- package/dist/hooks/useCharacters.d.ts.map +1 -0
- package/dist/hooks/useJobs.d.ts +8 -0
- package/dist/hooks/useJobs.d.ts.map +1 -0
- package/dist/hooks/useMotionDownloads.d.ts +8 -0
- package/dist/hooks/useMotionDownloads.d.ts.map +1 -0
- package/dist/hooks/useMotions.d.ts +14 -0
- package/dist/hooks/useMotions.d.ts.map +1 -0
- package/dist/hooks/useOrg.d.ts +8 -0
- package/dist/hooks/useOrg.d.ts.map +1 -0
- package/dist/hooks/useTtm.d.ts +16 -0
- package/dist/hooks/useTtm.d.ts.map +1 -0
- package/dist/hooks/useVtm.d.ts +11 -0
- package/dist/hooks/useVtm.d.ts.map +1 -0
- package/dist/hooks/vtm.d.ts +11 -0
- package/dist/hooks/vtm.d.ts.map +1 -0
- package/dist/index.cjs +431 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1825 -0
- package/dist/index.d.ts +1825 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +409 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/characters.d.ts +262 -0
- package/dist/modules/characters.d.ts.map +1 -0
- package/dist/modules/index.d.ts +11 -0
- package/dist/modules/index.d.ts.map +1 -0
- package/dist/modules/jobs.d.ts +332 -0
- package/dist/modules/jobs.d.ts.map +1 -0
- package/dist/modules/motionDownloads.d.ts +332 -0
- package/dist/modules/motionDownloads.d.ts.map +1 -0
- package/dist/modules/motions.d.ts +511 -0
- package/dist/modules/motions.d.ts.map +1 -0
- package/dist/modules/org.d.ts +332 -0
- package/dist/modules/org.d.ts.map +1 -0
- package/dist/modules/ttm.d.ts +16 -0
- package/dist/modules/ttm.d.ts.map +1 -0
- package/dist/modules/vtm.d.ts +11 -0
- package/dist/modules/vtm.d.ts.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,YAAY,EACZ,aAAa,EACb,gCAAgC,EAChC,wBAAwB,EACxB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,GACb,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,409 @@
|
|
|
1
|
+
import { UthanaClient } from '@uthana/client';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { QueryClient, QueryClientProvider, useQuery, useQueryClient, useMutation } from '@tanstack/react-query';
|
|
4
|
+
import { createContext, useMemo, useContext, useState, useRef, useCallback } from 'react';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* (c) Copyright 2026 Uthana, Inc. All Rights Reserved
|
|
8
|
+
*/
|
|
9
|
+
let clientInstance = null;
|
|
10
|
+
/**
|
|
11
|
+
* Create or return the singleton Uthana client for React apps.
|
|
12
|
+
* Call this once (e.g. in a root layout or provider) with your API key.
|
|
13
|
+
* If called again with a different apiKey, the singleton is replaced.
|
|
14
|
+
*/
|
|
15
|
+
function createUthanaClient(apiKey, options) {
|
|
16
|
+
if (clientInstance && clientInstance.apiKey !== apiKey) {
|
|
17
|
+
clientInstance = null;
|
|
18
|
+
}
|
|
19
|
+
if (!clientInstance) {
|
|
20
|
+
clientInstance = new UthanaClient(apiKey, options);
|
|
21
|
+
}
|
|
22
|
+
return clientInstance;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get the current singleton client. Throws if createUthanaClient was never called.
|
|
26
|
+
*/
|
|
27
|
+
function getUthanaClient() {
|
|
28
|
+
if (!clientInstance) {
|
|
29
|
+
throw new Error("Uthana client not initialized. Call createUthanaClient(apiKey) first.");
|
|
30
|
+
}
|
|
31
|
+
return clientInstance;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const UthanaContext = createContext(null);
|
|
35
|
+
/**
|
|
36
|
+
* Returns the Uthana client from context (UthanaProvider) or the singleton (createUthanaClient).
|
|
37
|
+
*/
|
|
38
|
+
function useUthanaClient() {
|
|
39
|
+
const fromContext = useContext(UthanaContext);
|
|
40
|
+
if (fromContext)
|
|
41
|
+
return fromContext;
|
|
42
|
+
return getUthanaClient();
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Provider that supplies the Uthana client and optionally react-query.
|
|
46
|
+
* When queryClient is passed, only the client context is provided (use your own QueryClientProvider).
|
|
47
|
+
* When not passed, creates a QueryClient and wraps with QueryClientProvider.
|
|
48
|
+
*/
|
|
49
|
+
function UthanaProvider({ apiKey, options, queryClient: providedQueryClient, children, }) {
|
|
50
|
+
const client = useMemo(() => createUthanaClient(apiKey, options), [apiKey, options]);
|
|
51
|
+
if (providedQueryClient) {
|
|
52
|
+
return jsx(UthanaContext.Provider, { value: client, children: children });
|
|
53
|
+
}
|
|
54
|
+
const queryClient = useMemo(() => new QueryClient(), []);
|
|
55
|
+
return (jsx(UthanaContext.Provider, { value: client, children: jsx(QueryClientProvider, { client: queryClient, children: children }) }));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* (c) Copyright 2026 Uthana, Inc. All Rights Reserved
|
|
60
|
+
*/
|
|
61
|
+
const CHARACTERS_QUERY_KEY = ["uthana", "characters"];
|
|
62
|
+
/** Hook to list characters. */
|
|
63
|
+
function useUthanaCharacters() {
|
|
64
|
+
const client = useUthanaClient();
|
|
65
|
+
const { data: characters, ...rest } = useQuery({
|
|
66
|
+
queryKey: CHARACTERS_QUERY_KEY,
|
|
67
|
+
queryFn: () => client.characters.list(),
|
|
68
|
+
});
|
|
69
|
+
return { characters, ...rest };
|
|
70
|
+
}
|
|
71
|
+
// ---------------------------------------------------------------------------
|
|
72
|
+
// Hook
|
|
73
|
+
// ---------------------------------------------------------------------------
|
|
74
|
+
/**
|
|
75
|
+
* Unified hook for all character creation flows:
|
|
76
|
+
*
|
|
77
|
+
* **File upload (GLB/FBX)** — single step:
|
|
78
|
+
* ```ts
|
|
79
|
+
* creator.create({ from: "file", file });
|
|
80
|
+
* ```
|
|
81
|
+
*
|
|
82
|
+
* **Text prompt** — two steps. Call generate(), then either:
|
|
83
|
+
* - let `onPreviewsReady` auto-select a key and complete automatically, or
|
|
84
|
+
* - render `creator.previews`, then call `creator.confirm({ image_key })`.
|
|
85
|
+
*
|
|
86
|
+
* ```ts
|
|
87
|
+
* // Auto-select first preview
|
|
88
|
+
* creator.generate({ from: "prompt", prompt: "a knight in armor",
|
|
89
|
+
* onPreviewsReady: (previews) => previews[0].key });
|
|
90
|
+
*
|
|
91
|
+
* // Manual selection
|
|
92
|
+
* creator.generate({ from: "prompt", prompt: "a knight" });
|
|
93
|
+
* // ... render creator.previews, user picks one ...
|
|
94
|
+
* creator.confirm({ image_key: selected });
|
|
95
|
+
* ```
|
|
96
|
+
*
|
|
97
|
+
* **Image file** — single step (no preview selection):
|
|
98
|
+
* ```ts
|
|
99
|
+
* creator.generate({ from: "image", file });
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
function useUthanaCreateCharacter() {
|
|
103
|
+
const client = useUthanaClient();
|
|
104
|
+
const queryClient = useQueryClient();
|
|
105
|
+
const [status, setStatus] = useState("idle");
|
|
106
|
+
const [character, setCharacter] = useState(null);
|
|
107
|
+
const [error, setError] = useState(null);
|
|
108
|
+
const [previews, setPreviews] = useState(null);
|
|
109
|
+
// Stored between generate({ from: "prompt" }) and confirm()
|
|
110
|
+
const intermediateRef = useRef(null);
|
|
111
|
+
const invalidate = useCallback(() => {
|
|
112
|
+
queryClient.invalidateQueries({ queryKey: CHARACTERS_QUERY_KEY });
|
|
113
|
+
}, [queryClient]);
|
|
114
|
+
const reset = useCallback(() => {
|
|
115
|
+
setStatus("idle");
|
|
116
|
+
setCharacter(null);
|
|
117
|
+
setError(null);
|
|
118
|
+
setPreviews(null);
|
|
119
|
+
intermediateRef.current = null;
|
|
120
|
+
}, []);
|
|
121
|
+
/**
|
|
122
|
+
* Step 2 of the text-prompt flow — finalize using a selected preview key.
|
|
123
|
+
* Only valid after `generate({ from: "prompt" })` has been called.
|
|
124
|
+
*/
|
|
125
|
+
const confirm = useCallback(async (params) => {
|
|
126
|
+
const intermediate = intermediateRef.current;
|
|
127
|
+
if (!intermediate) {
|
|
128
|
+
throw new Error("No pending generation. Call generate() first.");
|
|
129
|
+
}
|
|
130
|
+
setStatus("creating");
|
|
131
|
+
try {
|
|
132
|
+
const result = await client.characters.generateFromImage(intermediate, params.image_key, params.name);
|
|
133
|
+
setCharacter(result);
|
|
134
|
+
setStatus("success");
|
|
135
|
+
intermediateRef.current = null;
|
|
136
|
+
setPreviews(null);
|
|
137
|
+
invalidate();
|
|
138
|
+
}
|
|
139
|
+
catch (e) {
|
|
140
|
+
setError(e instanceof Error ? e : new Error(String(e)));
|
|
141
|
+
setStatus("error");
|
|
142
|
+
}
|
|
143
|
+
}, [client, invalidate]);
|
|
144
|
+
/**
|
|
145
|
+
* Start a generation flow:
|
|
146
|
+
* - `from: "prompt"` — generates preview images; either auto-confirms via `onPreviewsReady`
|
|
147
|
+
* or waits for a manual `confirm()` call.
|
|
148
|
+
* - `from: "image"` — uploads an image file and creates the character in one step.
|
|
149
|
+
*/
|
|
150
|
+
const generate = useCallback(async (params) => {
|
|
151
|
+
setStatus("generating");
|
|
152
|
+
setError(null);
|
|
153
|
+
setPreviews(null);
|
|
154
|
+
intermediateRef.current = null;
|
|
155
|
+
try {
|
|
156
|
+
if (params.from === "prompt") {
|
|
157
|
+
const pending = await client.characters.createFromPrompt({
|
|
158
|
+
prompt: params.prompt,
|
|
159
|
+
name: params.name,
|
|
160
|
+
});
|
|
161
|
+
intermediateRef.current = pending;
|
|
162
|
+
const generatedPreviews = pending.previews ?? [];
|
|
163
|
+
setPreviews(generatedPreviews);
|
|
164
|
+
setStatus("awaiting_selection");
|
|
165
|
+
if (params.onPreviewsReady) {
|
|
166
|
+
const selectedKey = await params.onPreviewsReady(generatedPreviews);
|
|
167
|
+
if (selectedKey) {
|
|
168
|
+
await confirm({ image_key: selectedKey, name: params.name });
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
// from: "image" — always single-step, no previews
|
|
174
|
+
const result = await client.characters.createFromImage(params.file, {
|
|
175
|
+
name: params.name,
|
|
176
|
+
});
|
|
177
|
+
setCharacter(result);
|
|
178
|
+
setStatus("success");
|
|
179
|
+
invalidate();
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
catch (e) {
|
|
183
|
+
setError(e instanceof Error ? e : new Error(String(e)));
|
|
184
|
+
setStatus("error");
|
|
185
|
+
}
|
|
186
|
+
}, [client, confirm, invalidate]);
|
|
187
|
+
/** Single-step GLB/FBX upload. */
|
|
188
|
+
const create = useCallback(async (params) => {
|
|
189
|
+
setStatus("creating");
|
|
190
|
+
setError(null);
|
|
191
|
+
try {
|
|
192
|
+
const result = await client.characters.createFromFile(params.file, {
|
|
193
|
+
auto_rig: params.auto_rig,
|
|
194
|
+
front_facing: params.front_facing,
|
|
195
|
+
});
|
|
196
|
+
setCharacter(result);
|
|
197
|
+
setStatus("success");
|
|
198
|
+
invalidate();
|
|
199
|
+
}
|
|
200
|
+
catch (e) {
|
|
201
|
+
setError(e instanceof Error ? e : new Error(String(e)));
|
|
202
|
+
setStatus("error");
|
|
203
|
+
}
|
|
204
|
+
}, [client, invalidate]);
|
|
205
|
+
return {
|
|
206
|
+
/** Start a text-prompt or image generation flow. */
|
|
207
|
+
generate,
|
|
208
|
+
/** Confirm a generated preview and create the character (step 2 of the prompt flow). */
|
|
209
|
+
confirm,
|
|
210
|
+
/** Upload a GLB/FBX directly (single step). */
|
|
211
|
+
create,
|
|
212
|
+
/** Preview images from a prompt generation. Render for user selection, then call confirm(). */
|
|
213
|
+
previews,
|
|
214
|
+
/** True while generate() or create()/confirm() are in flight. */
|
|
215
|
+
isPending: status === "generating" || status === "creating",
|
|
216
|
+
isGenerating: status === "generating",
|
|
217
|
+
/** True after prompt generate() completes and previews are ready for selection. */
|
|
218
|
+
isAwaitingSelection: status === "awaiting_selection",
|
|
219
|
+
isCreating: status === "creating",
|
|
220
|
+
isSuccess: status === "success",
|
|
221
|
+
isError: status === "error",
|
|
222
|
+
/** Final result — CreateCharacterResult (file) or CreateFromGeneratedImageResult (generate flows). */
|
|
223
|
+
character,
|
|
224
|
+
error,
|
|
225
|
+
/** Reset all state back to idle. */
|
|
226
|
+
reset,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
/** Hook to rename a character. */
|
|
230
|
+
function useUthanaRenameCharacter() {
|
|
231
|
+
const client = useUthanaClient();
|
|
232
|
+
const queryClient = useQueryClient();
|
|
233
|
+
return useMutation({
|
|
234
|
+
mutationFn: (params) => client.characters.rename(params.character_id, params.name),
|
|
235
|
+
onSuccess: () => {
|
|
236
|
+
queryClient.invalidateQueries({ queryKey: CHARACTERS_QUERY_KEY });
|
|
237
|
+
},
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
/** Hook to delete a character. */
|
|
241
|
+
function useUthanaDeleteCharacter() {
|
|
242
|
+
const client = useUthanaClient();
|
|
243
|
+
const queryClient = useQueryClient();
|
|
244
|
+
return useMutation({
|
|
245
|
+
mutationFn: (params) => client.characters.delete(params.character_id),
|
|
246
|
+
onSuccess: () => {
|
|
247
|
+
queryClient.invalidateQueries({ queryKey: CHARACTERS_QUERY_KEY });
|
|
248
|
+
},
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* (c) Copyright 2026 Uthana, Inc. All Rights Reserved
|
|
254
|
+
*/
|
|
255
|
+
/** Hook to list jobs. */
|
|
256
|
+
function useUthanaJobs(method) {
|
|
257
|
+
const client = useUthanaClient();
|
|
258
|
+
const { data: jobs, ...rest } = useQuery({
|
|
259
|
+
queryKey: ["uthana", "jobs", method],
|
|
260
|
+
queryFn: () => client.jobs.list(method),
|
|
261
|
+
});
|
|
262
|
+
return { jobs, ...rest };
|
|
263
|
+
}
|
|
264
|
+
/** Hook to get a single job by ID. */
|
|
265
|
+
function useUthanaJob(jobId) {
|
|
266
|
+
const client = useUthanaClient();
|
|
267
|
+
const { data: job, ...rest } = useQuery({
|
|
268
|
+
queryKey: ["uthana", "job", jobId],
|
|
269
|
+
queryFn: () => client.jobs.get(jobId),
|
|
270
|
+
enabled: !!jobId,
|
|
271
|
+
});
|
|
272
|
+
return { job, ...rest };
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* (c) Copyright 2026 Uthana, Inc. All Rights Reserved
|
|
277
|
+
*/
|
|
278
|
+
const MOTION_DOWNLOADS_QUERY_KEY = ["uthana", "motion_downloads"];
|
|
279
|
+
/** Hook to list motion downloads. */
|
|
280
|
+
function useUthanaMotionDownloads() {
|
|
281
|
+
const client = useUthanaClient();
|
|
282
|
+
const { data: downloads, ...rest } = useQuery({
|
|
283
|
+
queryKey: MOTION_DOWNLOADS_QUERY_KEY,
|
|
284
|
+
queryFn: () => client.motionDownloads.list(),
|
|
285
|
+
});
|
|
286
|
+
return { downloads, ...rest };
|
|
287
|
+
}
|
|
288
|
+
/** Hook to check if a motion download is allowed for a character. Disabled when characterId or motionId is null. */
|
|
289
|
+
function useUthanaIsMotionDownloadAllowed(characterId, motionId) {
|
|
290
|
+
const client = useUthanaClient();
|
|
291
|
+
const { data: isAllowed, ...rest } = useQuery({
|
|
292
|
+
queryKey: ["uthana", "motion_download_allowed", characterId, motionId],
|
|
293
|
+
queryFn: () => client.motionDownloads.isAllowed(characterId ?? "", motionId ?? ""),
|
|
294
|
+
enabled: characterId != null && characterId !== "" && motionId != null && motionId !== "",
|
|
295
|
+
});
|
|
296
|
+
return { isAllowed, ...rest };
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* (c) Copyright 2026 Uthana, Inc. All Rights Reserved
|
|
301
|
+
*/
|
|
302
|
+
const MOTIONS_QUERY_KEY = ["uthana", "motions"];
|
|
303
|
+
/** Hook to list motions. */
|
|
304
|
+
function useUthanaMotions() {
|
|
305
|
+
const client = useUthanaClient();
|
|
306
|
+
const { data: motions, ...rest } = useQuery({
|
|
307
|
+
queryKey: MOTIONS_QUERY_KEY,
|
|
308
|
+
queryFn: () => client.motions.list(),
|
|
309
|
+
});
|
|
310
|
+
return { motions, ...rest };
|
|
311
|
+
}
|
|
312
|
+
/** Hook to get a single motion by ID. Disabled when motionId is null. */
|
|
313
|
+
function useUthanaMotion(motionId) {
|
|
314
|
+
const client = useUthanaClient();
|
|
315
|
+
const { data: motion, ...rest } = useQuery({
|
|
316
|
+
queryKey: ["uthana", "motion", motionId],
|
|
317
|
+
queryFn: () => client.motions.get(motionId ?? ""),
|
|
318
|
+
enabled: motionId != null && motionId !== "",
|
|
319
|
+
});
|
|
320
|
+
return { motion, ...rest };
|
|
321
|
+
}
|
|
322
|
+
/** Hook to fetch a motion preview WebM. Disabled when characterId or motionId is null. Does not charge download seconds. */
|
|
323
|
+
function useUthanaMotionPreview(characterId, motionId) {
|
|
324
|
+
const client = useUthanaClient();
|
|
325
|
+
const { data: preview, ...rest } = useQuery({
|
|
326
|
+
queryKey: ["uthana", "motion_preview", characterId, motionId],
|
|
327
|
+
queryFn: () => client.motions.preview(characterId ?? "", motionId ?? ""),
|
|
328
|
+
enabled: characterId != null && characterId !== "" && motionId != null && motionId !== "",
|
|
329
|
+
});
|
|
330
|
+
return { preview, ...rest };
|
|
331
|
+
}
|
|
332
|
+
/** Hook to rate a motion (thumbs up/down). Invalidates motions on success. */
|
|
333
|
+
function useUthanaRateMotion() {
|
|
334
|
+
const client = useUthanaClient();
|
|
335
|
+
const queryClient = useQueryClient();
|
|
336
|
+
return useMutation({
|
|
337
|
+
mutationFn: (params) => client.motions.rate(params.motion_id, params.score, {
|
|
338
|
+
label_id: params.label_id,
|
|
339
|
+
}),
|
|
340
|
+
onSuccess: () => {
|
|
341
|
+
queryClient.invalidateQueries({ queryKey: MOTIONS_QUERY_KEY });
|
|
342
|
+
},
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Hook to bake custom GLTF animation data as a new motion for an existing character.
|
|
347
|
+
* Invalidates the motions list on success.
|
|
348
|
+
*/
|
|
349
|
+
function useUthanaBakeWithChanges() {
|
|
350
|
+
const client = useUthanaClient();
|
|
351
|
+
const queryClient = useQueryClient();
|
|
352
|
+
return useMutation({
|
|
353
|
+
mutationFn: (params) => client.motions.bakeWithChanges(params.gltf_content, params.motion_name, {
|
|
354
|
+
character_id: params.character_id,
|
|
355
|
+
}),
|
|
356
|
+
onSuccess: () => {
|
|
357
|
+
queryClient.invalidateQueries({ queryKey: MOTIONS_QUERY_KEY });
|
|
358
|
+
},
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
/**
|
|
363
|
+
* (c) Copyright 2026 Uthana, Inc. All Rights Reserved
|
|
364
|
+
*/
|
|
365
|
+
const USER_QUERY_KEY = ["uthana", "user"];
|
|
366
|
+
const ORG_QUERY_KEY = ["uthana", "org"];
|
|
367
|
+
/** Hook to get current user. */
|
|
368
|
+
function useUthanaUser() {
|
|
369
|
+
const client = useUthanaClient();
|
|
370
|
+
const { data: user, ...rest } = useQuery({
|
|
371
|
+
queryKey: USER_QUERY_KEY,
|
|
372
|
+
queryFn: () => client.org.getUser(),
|
|
373
|
+
});
|
|
374
|
+
return { user, ...rest };
|
|
375
|
+
}
|
|
376
|
+
/** Hook to get current org. */
|
|
377
|
+
function useUthanaOrg() {
|
|
378
|
+
const client = useUthanaClient();
|
|
379
|
+
const { data: org, ...rest } = useQuery({
|
|
380
|
+
queryKey: ORG_QUERY_KEY,
|
|
381
|
+
queryFn: () => client.org.getOrg(),
|
|
382
|
+
});
|
|
383
|
+
return { org, ...rest };
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
/**
|
|
387
|
+
* (c) Copyright 2026 Uthana, Inc. All Rights Reserved
|
|
388
|
+
*/
|
|
389
|
+
/** Hook for text-to-motion mutations. */
|
|
390
|
+
function useUthanaTtm() {
|
|
391
|
+
const client = useUthanaClient();
|
|
392
|
+
return useMutation({
|
|
393
|
+
mutationFn: (params) => client.ttm.create(params.prompt, params),
|
|
394
|
+
});
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* (c) Copyright 2026 Uthana, Inc. All Rights Reserved
|
|
399
|
+
*/
|
|
400
|
+
/** Hook for video-to-motion mutations. */
|
|
401
|
+
function useUthanaVtm() {
|
|
402
|
+
const client = useUthanaClient();
|
|
403
|
+
return useMutation({
|
|
404
|
+
mutationFn: (params) => client.vtm.create(params.file, params),
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
export { UthanaProvider, createUthanaClient, getUthanaClient, useUthanaBakeWithChanges, useUthanaCharacters, useUthanaClient, useUthanaCreateCharacter, useUthanaDeleteCharacter, useUthanaIsMotionDownloadAllowed, useUthanaJob, useUthanaJobs, useUthanaMotion, useUthanaMotionDownloads, useUthanaMotionPreview, useUthanaMotions, useUthanaOrg, useUthanaRateMotion, useUthanaRenameCharacter, useUthanaTtm, useUthanaUser, useUthanaVtm };
|
|
409
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/client.ts","../src/UthanaProvider.tsx","../src/modules/characters.ts","../src/modules/jobs.ts","../src/modules/motionDownloads.ts","../src/modules/motions.ts","../src/modules/org.ts","../src/modules/ttm.ts","../src/modules/vtm.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["UthanaClientClass","_jsx"],"mappings":";;;;;AAAA;;AAEG;AAKH,IAAI,cAAc,GAAwB,IAAI;AAE9C;;;;AAIG;AACG,SAAU,kBAAkB,CAAC,MAAc,EAAE,OAA6B,EAAA;IAC9E,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,MAAM,EAAE;QACtD,cAAc,GAAG,IAAI;IACvB;IACA,IAAI,CAAC,cAAc,EAAE;QACnB,cAAc,GAAG,IAAIA,YAAiB,CAAC,MAAM,EAAE,OAAO,CAAC;IACzD;AACA,IAAA,OAAO,cAAc;AACvB;AAEA;;AAEG;SACa,eAAe,GAAA;IAC7B,IAAI,CAAC,cAAc,EAAE;AACnB,QAAA,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC;IAC1F;AACA,IAAA,OAAO,cAAc;AACvB;;ACtBA,MAAM,aAAa,GAAG,aAAa,CAAsB,IAAI,CAAC;AAE9D;;AAEG;SACa,eAAe,GAAA;AAC7B,IAAA,MAAM,WAAW,GAAG,UAAU,CAAC,aAAa,CAAC;AAC7C,IAAA,IAAI,WAAW;AAAE,QAAA,OAAO,WAAW;IACnC,OAAO,eAAe,EAAE;AAC1B;AAUA;;;;AAIG;AACG,SAAU,cAAc,CAAC,EAC7B,MAAM,EACN,OAAO,EACP,WAAW,EAAE,mBAAmB,EAChC,QAAQ,GACY,EAAA;IACpB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEpF,IAAI,mBAAmB,EAAE;QACvB,OAAOC,GAAA,CAAC,aAAa,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,MAAM,EAAA,QAAA,EAAG,QAAQ,EAAA,CAA0B;IACnF;AAEA,IAAA,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,IAAI,WAAW,EAAE,EAAE,EAAE,CAAC;IACxD,QACEA,IAAC,aAAa,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,MAAM,EAAA,QAAA,EACnCA,IAAC,mBAAmB,EAAA,EAAC,MAAM,EAAE,WAAW,YAAG,QAAQ,EAAA,CAAuB,EAAA,CACnD;AAE7B;;ACpDA;;AAEG;AAWH,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAU;AAE9D;SACgB,mBAAmB,GAAA;AACjC,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE;IAChC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;AAC7C,QAAA,QAAQ,EAAE,oBAAoB;QAC9B,OAAO,EAAE,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;AACxC,KAAA,CAAC;AACF,IAAA,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE;AAChC;AAoDA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;SACa,wBAAwB,GAAA;AACtC,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE;AAChC,IAAA,MAAM,WAAW,GAAG,cAAc,EAAE;IAEpC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAwB,MAAM,CAAC;IACnE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAA6B,IAAI,CAAC;IAC5E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC;IACtD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAmB,IAAI,CAAC;;AAGhE,IAAA,MAAM,eAAe,GAAG,MAAM,CAAgC,IAAI,CAAC;AAEnE,IAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAK;QAClC,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC;AACnE,IAAA,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;AAEjB,IAAA,MAAM,KAAK,GAAG,WAAW,CAAC,MAAK;QAC7B,SAAS,CAAC,MAAM,CAAC;QACjB,YAAY,CAAC,IAAI,CAAC;QAClB,QAAQ,CAAC,IAAI,CAAC;QACd,WAAW,CAAC,IAAI,CAAC;AACjB,QAAA,eAAe,CAAC,OAAO,GAAG,IAAI;IAChC,CAAC,EAAE,EAAE,CAAC;AAEN;;;AAGG;IACH,MAAM,OAAO,GAAG,WAAW,CACzB,OAAO,MAAqB,KAAI;AAC9B,QAAA,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO;QAC5C,IAAI,CAAC,YAAY,EAAE;AACjB,YAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;QAClE;QACA,SAAS,CAAC,UAAU,CAAC;AACrB,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,iBAAiB,CACtD,YAAY,EACZ,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,IAAI,CACZ;YACD,YAAY,CAAC,MAAM,CAAC;YACpB,SAAS,CAAC,SAAS,CAAC;AACpB,YAAA,eAAe,CAAC,OAAO,GAAG,IAAI;YAC9B,WAAW,CAAC,IAAI,CAAC;AACjB,YAAA,UAAU,EAAE;QACd;QAAE,OAAO,CAAC,EAAE;YACV,QAAQ,CAAC,CAAC,YAAY,KAAK,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,SAAS,CAAC,OAAO,CAAC;QACpB;AACF,IAAA,CAAC,EACD,CAAC,MAAM,EAAE,UAAU,CAAC,CACrB;AAED;;;;;AAKG;IACH,MAAM,QAAQ,GAAG,WAAW,CAC1B,OAAO,MAAsB,KAAI;QAC/B,SAAS,CAAC,YAAY,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC;QACd,WAAW,CAAC,IAAI,CAAC;AACjB,QAAA,eAAe,CAAC,OAAO,GAAG,IAAI;AAC9B,QAAA,IAAI;AACF,YAAA,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC5B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC;oBACvD,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,IAAI,EAAE,MAAM,CAAC,IAAI;AAClB,iBAAA,CAAC;AACF,gBAAA,eAAe,CAAC,OAAO,GAAG,OAAiC;AAC3D,gBAAA,MAAM,iBAAiB,GAAI,OAAkC,CAAC,QAAQ,IAAI,EAAE;gBAC5E,WAAW,CAAC,iBAAiB,CAAC;gBAC9B,SAAS,CAAC,oBAAoB,CAAC;AAE/B,gBAAA,IAAI,MAAM,CAAC,eAAe,EAAE;oBAC1B,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC;oBACnE,IAAI,WAAW,EAAE;AACf,wBAAA,MAAM,OAAO,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC9D;gBACF;YACF;iBAAO;;AAEL,gBAAA,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE;oBAClE,IAAI,EAAE,MAAM,CAAC,IAAI;AAClB,iBAAA,CAAC;gBACF,YAAY,CAAC,MAAwC,CAAC;gBACtD,SAAS,CAAC,SAAS,CAAC;AACpB,gBAAA,UAAU,EAAE;YACd;QACF;QAAE,OAAO,CAAC,EAAE;YACV,QAAQ,CAAC,CAAC,YAAY,KAAK,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,SAAS,CAAC,OAAO,CAAC;QACpB;IACF,CAAC,EACD,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAC9B;;IAGD,MAAM,MAAM,GAAG,WAAW,CACxB,OAAO,MAAwB,KAAI;QACjC,SAAS,CAAC,UAAU,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC;AACd,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE;gBACjE,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,YAAY,EAAE,MAAM,CAAC,YAAY;AAClC,aAAA,CAAC;YACF,YAAY,CAAC,MAAM,CAAC;YACpB,SAAS,CAAC,SAAS,CAAC;AACpB,YAAA,UAAU,EAAE;QACd;QAAE,OAAO,CAAC,EAAE;YACV,QAAQ,CAAC,CAAC,YAAY,KAAK,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,SAAS,CAAC,OAAO,CAAC;QACpB;AACF,IAAA,CAAC,EACD,CAAC,MAAM,EAAE,UAAU,CAAC,CACrB;IAED,OAAO;;QAEL,QAAQ;;QAER,OAAO;;QAEP,MAAM;;QAEN,QAAQ;;AAER,QAAA,SAAS,EAAE,MAAM,KAAK,YAAY,IAAI,MAAM,KAAK,UAAU;QAC3D,YAAY,EAAE,MAAM,KAAK,YAAY;;QAErC,mBAAmB,EAAE,MAAM,KAAK,oBAAoB;QACpD,UAAU,EAAE,MAAM,KAAK,UAAU;QACjC,SAAS,EAAE,MAAM,KAAK,SAAS;QAC/B,OAAO,EAAE,MAAM,KAAK,OAAO;;QAE3B,SAAS;QACT,KAAK;;QAEL,KAAK;KACN;AACH;AAEA;SACgB,wBAAwB,GAAA;AACtC,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE;AAChC,IAAA,MAAM,WAAW,GAAG,cAAc,EAAE;AACpC,IAAA,OAAO,WAAW,CAAC;AACjB,QAAA,UAAU,EAAE,CAAC,MAA8C,KACzD,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC;QAC5D,SAAS,EAAE,MAAK;YACd,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC;QACnE,CAAC;AACF,KAAA,CAAC;AACJ;AAEA;SACgB,wBAAwB,GAAA;AACtC,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE;AAChC,IAAA,MAAM,WAAW,GAAG,cAAc,EAAE;AACpC,IAAA,OAAO,WAAW,CAAC;AACjB,QAAA,UAAU,EAAE,CAAC,MAAgC,KAAK,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;QAC/F,SAAS,EAAE,MAAK;YACd,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC;QACnE,CAAC;AACF,KAAA,CAAC;AACJ;;ACpRA;;AAEG;AAKH;AACM,SAAU,aAAa,CAAC,MAAsB,EAAA;AAClD,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE;IAChC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;AACvC,QAAA,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAU;QAC7C,OAAO,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACxC,KAAA,CAAC;AACF,IAAA,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE;AAC1B;AAEA;AACM,SAAU,YAAY,CAAC,KAAoB,EAAA;AAC/C,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE;IAChC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;AACtC,QAAA,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAU;QAC3C,OAAO,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAM,CAAC;QACtC,OAAO,EAAE,CAAC,CAAC,KAAK;AACjB,KAAA,CAAC;AACF,IAAA,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE;AACzB;;AC1BA;;AAEG;AAKH,MAAM,0BAA0B,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAU;AAE1E;SACgB,wBAAwB,GAAA;AACtC,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE;IAChC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;AAC5C,QAAA,QAAQ,EAAE,0BAA0B;QACpC,OAAO,EAAE,MAAM,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE;AAC7C,KAAA,CAAC;AACF,IAAA,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE;AAC/B;AAEA;AACM,SAAU,gCAAgC,CAC9C,WAA0B,EAC1B,QAAuB,EAAA;AAEvB,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE;IAChC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;QAC5C,QAAQ,EAAE,CAAC,QAAQ,EAAE,yBAAyB,EAAE,WAAW,EAAE,QAAQ,CAAU;AAC/E,QAAA,OAAO,EAAE,MAAM,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,IAAI,EAAE,EAAE,QAAQ,IAAI,EAAE,CAAC;AAClF,QAAA,OAAO,EAAE,WAAW,IAAI,IAAI,IAAI,WAAW,KAAK,EAAE,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,KAAK,EAAE;AAC1F,KAAA,CAAC;AACF,IAAA,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE;AAC/B;;AC/BA;;AAEG;AAKH,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAU;AAExD;SACgB,gBAAgB,GAAA;AAC9B,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE;IAChC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;AAC1C,QAAA,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;AACrC,KAAA,CAAC;AACF,IAAA,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE;AAC7B;AAEA;AACM,SAAU,eAAe,CAAC,QAAuB,EAAA;AACrD,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE;IAChC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;AACzC,QAAA,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU;AACjD,QAAA,OAAO,EAAE,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;AACjD,QAAA,OAAO,EAAE,QAAQ,IAAI,IAAI,IAAI,QAAQ,KAAK,EAAE;AAC7C,KAAA,CAAC;AACF,IAAA,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE;AAC5B;AAEA;AACM,SAAU,sBAAsB,CAAC,WAA0B,EAAE,QAAuB,EAAA;AACxF,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE;IAChC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;QAC1C,QAAQ,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,CAAU;AACtE,QAAA,OAAO,EAAE,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,EAAE,QAAQ,IAAI,EAAE,CAAC;AACxE,QAAA,OAAO,EAAE,WAAW,IAAI,IAAI,IAAI,WAAW,KAAK,EAAE,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,KAAK,EAAE;AAC1F,KAAA,CAAC;AACF,IAAA,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE;AAC7B;AAEA;SACgB,mBAAmB,GAAA;AACjC,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE;AAChC,IAAA,MAAM,WAAW,GAAG,cAAc,EAAE;AACpC,IAAA,OAAO,WAAW,CAAC;AACjB,QAAA,UAAU,EAAE,CAAC,MAAqE,KAChF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE;YAClD,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;QACJ,SAAS,EAAE,MAAK;YACd,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;QAChE,CAAC;AACF,KAAA,CAAC;AACJ;AAEA;;;AAGG;SACa,wBAAwB,GAAA;AACtC,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE;AAChC,IAAA,MAAM,WAAW,GAAG,cAAc,EAAE;AACpC,IAAA,OAAO,WAAW,CAAC;AACjB,QAAA,UAAU,EAAE,CAAC,MAIZ,KACC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE;YACtE,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC;QACJ,SAAS,EAAE,MAAK;YACd,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;QAChE,CAAC;AACF,KAAA,CAAC;AACJ;;AC5EA;;AAEG;AAKH,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAU;AAClD,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAU;AAEhD;SACgB,aAAa,GAAA;AAC3B,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE;IAChC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;AACvC,QAAA,QAAQ,EAAE,cAAc;QACxB,OAAO,EAAE,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE;AACpC,KAAA,CAAC;AACF,IAAA,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE;AAC1B;AAEA;SACgB,YAAY,GAAA;AAC1B,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE;IAChC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;AACtC,QAAA,QAAQ,EAAE,aAAa;QACvB,OAAO,EAAE,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE;AACnC,KAAA,CAAC;AACF,IAAA,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE;AACzB;;AC5BA;;AAEG;AAMH;SACgB,YAAY,GAAA;AAC1B,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE;AAChC,IAAA,OAAO,WAAW,CAAC;AACjB,QAAA,UAAU,EAAE,CAAC,MASZ,KAAK,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;AAC/C,KAAA,CAAC;AACJ;;ACvBA;;AAEG;AAMH;SACgB,YAAY,GAAA;AAC1B,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE;AAChC,IAAA,OAAO,WAAW,CAAC;AACjB,QAAA,UAAU,EAAE,CAAC,MAIZ,KAAK,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;AAC7C,KAAA,CAAC;AACJ;;;;"}
|