use-vibes 0.11.2 → 0.12.0-dev-preview

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.
Files changed (89) hide show
  1. package/README.md +3 -58
  2. package/index.d.ts +1 -20
  3. package/index.js +1 -20
  4. package/index.js.map +1 -1
  5. package/package.json +5 -27
  6. package/tsconfig.json +4 -0
  7. package/components/ControlsBar.d.ts +0 -20
  8. package/components/ControlsBar.js +0 -80
  9. package/components/ControlsBar.js.map +0 -1
  10. package/components/ImgGen.css +0 -675
  11. package/components/ImgGen.d.ts +0 -25
  12. package/components/ImgGen.js +0 -257
  13. package/components/ImgGen.js.map +0 -1
  14. package/components/ImgGenUtils/ImgGenDisplay.d.ts +0 -3
  15. package/components/ImgGenUtils/ImgGenDisplay.js +0 -192
  16. package/components/ImgGenUtils/ImgGenDisplay.js.map +0 -1
  17. package/components/ImgGenUtils/ImgGenDisplayPlaceholder.d.ts +0 -3
  18. package/components/ImgGenUtils/ImgGenDisplayPlaceholder.js +0 -107
  19. package/components/ImgGenUtils/ImgGenDisplayPlaceholder.js.map +0 -1
  20. package/components/ImgGenUtils/ImgGenDisplayUtils.d.ts +0 -27
  21. package/components/ImgGenUtils/ImgGenDisplayUtils.js +0 -95
  22. package/components/ImgGenUtils/ImgGenDisplayUtils.js.map +0 -1
  23. package/components/ImgGenUtils/ImgGenError.d.ts +0 -3
  24. package/components/ImgGenUtils/ImgGenError.js +0 -6
  25. package/components/ImgGenUtils/ImgGenError.js.map +0 -1
  26. package/components/ImgGenUtils/ImgGenFileDrop.d.ts +0 -12
  27. package/components/ImgGenUtils/ImgGenFileDrop.js +0 -50
  28. package/components/ImgGenUtils/ImgGenFileDrop.js.map +0 -1
  29. package/components/ImgGenUtils/ImgGenModal.d.ts +0 -24
  30. package/components/ImgGenUtils/ImgGenModal.js +0 -28
  31. package/components/ImgGenUtils/ImgGenModal.js.map +0 -1
  32. package/components/ImgGenUtils/ImgGenModeUtils.d.ts +0 -9
  33. package/components/ImgGenUtils/ImgGenModeUtils.js +0 -48
  34. package/components/ImgGenUtils/ImgGenModeUtils.js.map +0 -1
  35. package/components/ImgGenUtils/ImgGenPromptWaiting.d.ts +0 -12
  36. package/components/ImgGenUtils/ImgGenPromptWaiting.js +0 -37
  37. package/components/ImgGenUtils/ImgGenPromptWaiting.js.map +0 -1
  38. package/components/ImgGenUtils/ImgGenUploadWaiting.d.ts +0 -17
  39. package/components/ImgGenUtils/ImgGenUploadWaiting.js +0 -132
  40. package/components/ImgGenUtils/ImgGenUploadWaiting.js.map +0 -1
  41. package/components/ImgGenUtils/index.d.ts +0 -6
  42. package/components/ImgGenUtils/index.js +0 -7
  43. package/components/ImgGenUtils/index.js.map +0 -1
  44. package/components/ImgGenUtils/overlays/DeleteConfirmationOverlay.d.ts +0 -9
  45. package/components/ImgGenUtils/overlays/DeleteConfirmationOverlay.js +0 -30
  46. package/components/ImgGenUtils/overlays/DeleteConfirmationOverlay.js.map +0 -1
  47. package/components/ImgGenUtils/overlays/ImageOverlay.d.ts +0 -22
  48. package/components/ImgGenUtils/overlays/ImageOverlay.js +0 -8
  49. package/components/ImgGenUtils/overlays/ImageOverlay.js.map +0 -1
  50. package/components/ImgGenUtils/types.d.ts +0 -29
  51. package/components/ImgGenUtils/types.js +0 -2
  52. package/components/ImgGenUtils/types.js.map +0 -1
  53. package/components/ImgGenUtils.d.ts +0 -2
  54. package/components/ImgGenUtils.js +0 -3
  55. package/components/ImgGenUtils.js.map +0 -1
  56. package/components/PromptBar.d.ts +0 -11
  57. package/components/PromptBar.js +0 -16
  58. package/components/PromptBar.js.map +0 -1
  59. package/fix-ranges-tarball.js +0 -62
  60. package/hooks/image-gen/image-generator.d.ts +0 -11
  61. package/hooks/image-gen/image-generator.js +0 -136
  62. package/hooks/image-gen/image-generator.js.map +0 -1
  63. package/hooks/image-gen/index.d.ts +0 -7
  64. package/hooks/image-gen/index.js +0 -6
  65. package/hooks/image-gen/index.js.map +0 -1
  66. package/hooks/image-gen/types.d.ts +0 -66
  67. package/hooks/image-gen/types.js +0 -2
  68. package/hooks/image-gen/types.js.map +0 -1
  69. package/hooks/image-gen/use-image-gen.d.ts +0 -4
  70. package/hooks/image-gen/use-image-gen.js +0 -544
  71. package/hooks/image-gen/use-image-gen.js.map +0 -1
  72. package/hooks/image-gen/utils.d.ts +0 -20
  73. package/hooks/image-gen/utils.js +0 -159
  74. package/hooks/image-gen/utils.js.map +0 -1
  75. package/hooks/use-image-gen.d.ts +0 -1
  76. package/hooks/use-image-gen.js +0 -2
  77. package/hooks/use-image-gen.js.map +0 -1
  78. package/style-loader.d.ts +0 -1
  79. package/style-loader.js +0 -23
  80. package/style-loader.js.map +0 -1
  81. package/utils/base64.d.ts +0 -1
  82. package/utils/base64.js +0 -13
  83. package/utils/base64.js.map +0 -1
  84. package/utils/debug.d.ts +0 -2
  85. package/utils/debug.js +0 -8
  86. package/utils/debug.js.map +0 -1
  87. package/utils/style-utils.d.ts +0 -17
  88. package/utils/style-utils.js +0 -15
  89. package/utils/style-utils.js.map +0 -1
@@ -1,544 +0,0 @@
1
- import { useState, useEffect, useMemo, useRef } from 'react';
2
- import { useFireproof } from 'use-fireproof';
3
- import { hashInput, base64ToFile, addNewVersion, getVersionsFromDocument, getPromptsFromDocument, MODULE_STATE, cleanupRequestKey, getRelevantOptions, generateSafeFilename, } from './utils.js';
4
- import { createImageGenerator } from './image-generator.js';
5
- export function useImageGen({ prompt, _id, _rev, options = {}, database = 'ImgGen', skip = false, // Skip processing flag
6
- generationId, // Unique ID that changes for each new generation request
7
- editedPrompt, }) {
8
- const [imageData, setImageData] = useState(null);
9
- const [loading, setLoading] = useState(false);
10
- const [progress, setProgress] = useState(0);
11
- const [error, setError] = useState(null);
12
- const [document, setDocument] = useState(null);
13
- const progressTimerRef = useRef(null);
14
- const { database: db } = useFireproof(database);
15
- const size = options?.size || '1024x1024';
16
- const [width, height] = size.split('x').map(Number);
17
- const memoizedOptions = useMemo(() => ({
18
- size: options?.size,
19
- quality: options?.quality,
20
- model: options?.model,
21
- style: options?.style,
22
- }), [options?.size, options?.quality, options?.model, options?.style]);
23
- const prevOptionsRef = useRef(getRelevantOptions({}));
24
- const shouldConsiderOptions = useMemo(() => !generationId, [generationId]);
25
- const requestId = useMemo(() => {
26
- return hashInput(prompt || _id || 'unknown', shouldConsiderOptions ? memoizedOptions : undefined);
27
- }, [prompt, _id, shouldConsiderOptions, memoizedOptions]);
28
- const previousIdRef = useRef(_id);
29
- const previousGenerationIdRef = useRef(generationId);
30
- useEffect(() => {
31
- const idChanged = _id !== previousIdRef.current;
32
- const generationRequested = generationId !== previousGenerationIdRef.current;
33
- previousIdRef.current = _id;
34
- previousGenerationIdRef.current = generationId;
35
- if (idChanged || generationRequested) {
36
- setImageData(null);
37
- setError(null);
38
- setProgress(0);
39
- if (idChanged) {
40
- setDocument(null);
41
- }
42
- }
43
- if (progressTimerRef.current) {
44
- clearInterval(progressTimerRef.current);
45
- progressTimerRef.current = null;
46
- }
47
- return () => {
48
- if (progressTimerRef.current) {
49
- clearInterval(progressTimerRef.current);
50
- }
51
- };
52
- }, [prompt, _id, memoizedOptions]);
53
- const lastRequestRef = useRef('');
54
- useEffect(() => {
55
- let isMounted = true;
56
- if (skip || (!prompt && !_id)) {
57
- setLoading(false);
58
- if (!skip) {
59
- setError(new Error('Either prompt or _id must be provided'));
60
- }
61
- return;
62
- }
63
- const requestSignature = JSON.stringify({
64
- prompt,
65
- _id,
66
- generationId,
67
- options: shouldConsiderOptions ? getRelevantOptions(memoizedOptions) : undefined,
68
- });
69
- if (requestSignature === lastRequestRef.current && document) {
70
- return;
71
- }
72
- lastRequestRef.current = requestSignature;
73
- const currentRelevantOptions = getRelevantOptions(memoizedOptions);
74
- const previousRelevantOptions = prevOptionsRef.current;
75
- const optionsChanged = JSON.stringify(currentRelevantOptions) !== JSON.stringify(previousRelevantOptions);
76
- if (optionsChanged && !generationId && document?._id) {
77
- prevOptionsRef.current = currentRelevantOptions;
78
- setLoading(false);
79
- return;
80
- }
81
- prevOptionsRef.current = currentRelevantOptions;
82
- setLoading(true);
83
- setProgress(0);
84
- setError(null);
85
- const loadImageTimer = setTimeout(() => {
86
- console.log('[useImageGen] Loading image...', isMounted);
87
- if (isMounted) {
88
- const callImageGeneration = createImageGenerator(requestId);
89
- loadOrGenerateImage({
90
- db,
91
- _id,
92
- options,
93
- prompt,
94
- callImageGeneration,
95
- setLoading,
96
- setProgress,
97
- setDocument,
98
- document,
99
- progressTimerRef,
100
- generationId,
101
- setImageData,
102
- loading,
103
- isMounted,
104
- setError,
105
- editedPrompt,
106
- });
107
- }
108
- }, 10);
109
- return () => {
110
- isMounted = false;
111
- if (loadImageTimer) {
112
- clearTimeout(loadImageTimer);
113
- }
114
- };
115
- }, [prompt, _id, memoizedOptions, requestId, database, skip, generationId]);
116
- return {
117
- imageData,
118
- loading,
119
- progress,
120
- error,
121
- size: { width, height },
122
- document,
123
- };
124
- }
125
- async function loadOrGenerateImage({ db, _id, progressTimerRef, callImageGeneration, setProgress, setDocument, setLoading, setImageData, setError, options, document, generationId, loading, isMounted, editedPrompt, prompt, }) {
126
- try {
127
- const timer = setInterval(() => {
128
- setProgress((prev) => {
129
- const next = prev + (100 - prev) * 0.04;
130
- return next > 99 ? 99 : next;
131
- });
132
- }, 1000);
133
- progressTimerRef.current = timer;
134
- let data = null;
135
- const hasBothPromptAndId = !!prompt && !!_id;
136
- try {
137
- const hasDocumentId = !!_id;
138
- if (hasDocumentId) {
139
- const existingDoc = await db.get(_id).catch((err) => {
140
- console.error(`[loadOrGenerateImage] Failed to load document ${_id}:`, err);
141
- return null;
142
- });
143
- if (existingDoc && existingDoc._files) {
144
- setDocument(existingDoc);
145
- const { prompts, currentPromptKey } = getPromptsFromDocument(existingDoc);
146
- const currentPromptText = prompt ||
147
- (currentPromptKey && prompts[currentPromptKey]?.text) ||
148
- existingDoc.prompt ||
149
- '';
150
- const { versions } = getVersionsFromDocument(existingDoc);
151
- const hasOutputFiles = versions.length > 0 && versions.some((v) => existingDoc._files?.[v.id]);
152
- const hasOnlyOriginalFile = !hasOutputFiles && existingDoc._files?.original;
153
- if (hasOnlyOriginalFile && currentPromptText && !generationId) {
154
- console.log(`Document ${_id} has only original file and prompt, generating edited image`);
155
- setLoading(true);
156
- const editOptions = {
157
- ...options,
158
- document: existingDoc,
159
- _regenerationId: Date.now(),
160
- };
161
- data = await callImageGeneration(currentPromptText, editOptions);
162
- if (data?.data?.[0]?.b64_json) {
163
- const filename = generateSafeFilename(currentPromptText);
164
- const newImageFile = base64ToFile(data.data[0].b64_json, filename);
165
- const updatedDoc = addNewVersion(existingDoc, newImageFile, currentPromptText);
166
- await db.put(updatedDoc);
167
- const refreshedDoc = await db.get(_id);
168
- setDocument(refreshedDoc);
169
- setImageData(data.data[0].b64_json);
170
- setProgress(100);
171
- return;
172
- }
173
- }
174
- if (generationId && currentPromptText) {
175
- const timestamp = Date.now();
176
- const regenerationOptions = {
177
- ...options,
178
- _regenerationId: timestamp,
179
- };
180
- const requestKey = `${currentPromptText}-${JSON.stringify(getRelevantOptions(options))}`;
181
- cleanupRequestKey(requestKey);
182
- data = await callImageGeneration(currentPromptText, regenerationOptions);
183
- if (data?.data?.[0]?.b64_json) {
184
- const filename = generateSafeFilename(currentPromptText);
185
- const newImageFile = base64ToFile(data.data[0].b64_json, filename);
186
- const originalDocId = _id;
187
- const updatedDoc = {
188
- ...addNewVersion(existingDoc, newImageFile, currentPromptText),
189
- _id: originalDocId,
190
- };
191
- await db.put(updatedDoc);
192
- const refreshedDoc = await db.get(originalDocId);
193
- setDocument(refreshedDoc);
194
- const reader = new FileReader();
195
- reader.readAsDataURL(newImageFile);
196
- await new Promise((resolve) => {
197
- reader.onloadend = () => {
198
- if (typeof reader.result === 'string') {
199
- setImageData(reader.result);
200
- }
201
- resolve();
202
- };
203
- });
204
- setProgress(100);
205
- return;
206
- }
207
- }
208
- handleNewDoc({ existingDoc, setImageData });
209
- }
210
- else if (existingDoc) {
211
- handleExistingDoc({
212
- existingDoc,
213
- callImageGeneration,
214
- _id,
215
- db,
216
- options,
217
- loading,
218
- setLoading,
219
- setDocument,
220
- setImageData,
221
- });
222
- }
223
- }
224
- else if (prompt && !hasBothPromptAndId) {
225
- if (document?._id && generationId) {
226
- let currentPromptText = '';
227
- if (editedPrompt) {
228
- currentPromptText = editedPrompt;
229
- }
230
- else {
231
- const { prompts, currentPromptKey } = getPromptsFromDocument(document);
232
- currentPromptText =
233
- (currentPromptKey && prompts[currentPromptKey]?.text) ||
234
- document.prompt ||
235
- '' ||
236
- prompt ||
237
- '';
238
- }
239
- const regenerationOptions = {
240
- ...options,
241
- _regenerationId: Date.now(),
242
- };
243
- const requestKey = `${currentPromptText}-${JSON.stringify(getRelevantOptions(options))}`;
244
- cleanupRequestKey(requestKey);
245
- data = await callImageGeneration(currentPromptText, regenerationOptions);
246
- if (data?.data?.[0]?.b64_json) {
247
- const filename = generateSafeFilename(currentPromptText);
248
- const newImageFile = base64ToFile(data.data[0].b64_json, filename);
249
- const originalDocId = document._id;
250
- const updatedDoc = {
251
- ...addNewVersion(document, newImageFile, currentPromptText),
252
- _id: originalDocId,
253
- };
254
- updatedDoc._id = originalDocId;
255
- await db.put(updatedDoc);
256
- const refreshedDoc = await db.get(originalDocId);
257
- setDocument(refreshedDoc);
258
- const reader = new FileReader();
259
- reader.readAsDataURL(newImageFile);
260
- await new Promise((resolve) => {
261
- reader.onloadend = () => {
262
- if (typeof reader.result === 'string') {
263
- setImageData(reader.result);
264
- }
265
- resolve();
266
- };
267
- });
268
- setProgress(100);
269
- return;
270
- }
271
- }
272
- else {
273
- let generationOptions = options;
274
- if (generationId) {
275
- generationOptions = {
276
- ...options,
277
- _regenerationId: Date.now(),
278
- };
279
- const requestKey = `${prompt}-${JSON.stringify(getRelevantOptions(options))}`;
280
- cleanupRequestKey(requestKey);
281
- }
282
- data = await callImageGeneration(prompt, generationOptions);
283
- }
284
- if (data?.data?.[0]?.b64_json) {
285
- const filename = generateSafeFilename(prompt);
286
- const imageFile = base64ToFile(data.data[0].b64_json, filename);
287
- const regenPart = generationId ? `gen-${generationId}` : '0';
288
- const stableKey = [
289
- prompt || '',
290
- _id || '',
291
- regenPart,
292
- JSON.stringify(getRelevantOptions(options)),
293
- ].join('|');
294
- setTimeout(() => {
295
- cleanupRequestKey(stableKey);
296
- });
297
- setTimeout(() => {
298
- cleanupRequestKey(stableKey);
299
- }, 100);
300
- try {
301
- const existingDocId = MODULE_STATE.createdDocuments.get(stableKey);
302
- if (_id) {
303
- try {
304
- const existingDoc = await db.get(_id);
305
- if ('prompt' in existingDoc &&
306
- typeof existingDoc.prompt === 'string' &&
307
- existingDoc.prompt) {
308
- prompt = existingDoc.prompt;
309
- }
310
- setDocument(existingDoc);
311
- }
312
- catch {
313
- // Error fetching existing document, ignore silently
314
- }
315
- }
316
- if (existingDocId) {
317
- try {
318
- const existingDoc = await db.get(existingDocId);
319
- setDocument(existingDoc);
320
- setImageData(data.data[0].b64_json);
321
- return;
322
- }
323
- catch {
324
- // Error fetching existing document, ignore silently
325
- // Will continue to document creation below
326
- }
327
- }
328
- let documentCreationPromise = MODULE_STATE.pendingDocumentCreations.get(stableKey);
329
- if (!documentCreationPromise) {
330
- documentCreationPromise = (async () => {
331
- const imgDoc = {
332
- _id: '', // Will be assigned by Fireproof
333
- type: 'image',
334
- created: Date.now(),
335
- currentVersion: 0, // 0-based indexing for versions array
336
- versions: [
337
- {
338
- id: 'v1',
339
- created: Date.now(),
340
- promptKey: 'p1',
341
- },
342
- ],
343
- prompts: {
344
- p1: {
345
- text: prompt,
346
- created: Date.now(),
347
- },
348
- },
349
- currentPromptKey: 'p1',
350
- _files: {
351
- v1: imageFile,
352
- },
353
- };
354
- const result = await db.put(imgDoc);
355
- MODULE_STATE.createdDocuments.set(stableKey, result.id);
356
- const doc = (await db.get(result.id));
357
- return { id: result.id, doc };
358
- })();
359
- MODULE_STATE.pendingDocumentCreations.set(stableKey, documentCreationPromise);
360
- }
361
- else {
362
- // Reusing existing document creation promise
363
- // No additional action needed
364
- }
365
- try {
366
- const { doc } = await documentCreationPromise;
367
- setDocument(doc);
368
- setImageData(data.data[0].b64_json);
369
- }
370
- catch (e) {
371
- console.error('Error in document creation:', e);
372
- setImageData(data.data[0].b64_json);
373
- MODULE_STATE.pendingDocumentCreations.delete(stableKey);
374
- }
375
- // Empty block - all document creation logic is now handled by the Promise
376
- }
377
- catch (e) {
378
- console.error('Error saving to Fireproof:', e);
379
- setImageData(data.data[0].b64_json);
380
- }
381
- finally {
382
- MODULE_STATE.processingRequests.delete(stableKey);
383
- if (MODULE_STATE.createdDocuments.has(stableKey)) {
384
- MODULE_STATE.pendingDocumentCreations.delete(stableKey);
385
- MODULE_STATE.requestTimestamps.delete(stableKey);
386
- }
387
- }
388
- }
389
- }
390
- else {
391
- console.error('[loadOrGenerateImage] Document loading failed - requirements not met:', {
392
- _id,
393
- hasPrompt: !!prompt,
394
- promptLength: prompt?.length,
395
- generationId,
396
- });
397
- throw new Error('Document not found and no prompt provided for generation');
398
- }
399
- }
400
- catch (error) {
401
- console.error('Error retrieving from Fireproof:', error);
402
- if (prompt && !data && _id) {
403
- try {
404
- data = await callImageGeneration(prompt, options);
405
- if (data?.data?.[0]?.b64_json) {
406
- setImageData(data.data[0].b64_json);
407
- }
408
- }
409
- catch (genError) {
410
- console.error('Fallback generation also failed:', genError);
411
- throw genError;
412
- }
413
- }
414
- else {
415
- throw error;
416
- }
417
- }
418
- finally {
419
- if (isMounted) {
420
- setLoading(false);
421
- setProgress(0);
422
- }
423
- if (progressTimerRef.current) {
424
- clearInterval(progressTimerRef.current);
425
- progressTimerRef.current = null;
426
- }
427
- }
428
- if (isMounted && data) {
429
- setProgress(100);
430
- if (progressTimerRef.current) {
431
- clearInterval(progressTimerRef.current);
432
- progressTimerRef.current = null;
433
- }
434
- // Log completion time
435
- }
436
- }
437
- catch (err) {
438
- if (isMounted) {
439
- setError(err instanceof Error ? err : new Error(String(err)));
440
- }
441
- }
442
- finally {
443
- if (isMounted) {
444
- if (progressTimerRef.current) {
445
- clearInterval(progressTimerRef.current);
446
- progressTimerRef.current = null;
447
- }
448
- setLoading(false);
449
- }
450
- }
451
- }
452
- async function handleNewDoc({ existingDoc, setImageData, }) {
453
- try {
454
- const { versions, currentVersion } = getVersionsFromDocument(existingDoc);
455
- if (versions.length > 0) {
456
- const versionId = versions[currentVersion]?.id || versions[0]?.id;
457
- if (!versionId || !existingDoc._files?.[versionId]) {
458
- throw new Error(`Version ${versionId} not found in document files`);
459
- }
460
- const imageFile = existingDoc._files[versionId];
461
- let fileObj;
462
- if ('file' in imageFile && typeof imageFile.file === 'function') {
463
- fileObj = await imageFile.file();
464
- }
465
- else {
466
- fileObj = imageFile;
467
- }
468
- const reader = new FileReader();
469
- const base64Promise = new Promise((resolve, reject) => {
470
- reader.onload = () => {
471
- const base64 = reader.result;
472
- const base64Data = base64.split(',')[1] || base64;
473
- resolve(base64Data);
474
- };
475
- reader.onerror = reject;
476
- });
477
- reader.readAsDataURL(fileObj);
478
- const base64Data = await base64Promise;
479
- setImageData(base64Data);
480
- }
481
- else {
482
- if (existingDoc._files?.image) {
483
- const imageFile = existingDoc._files.image;
484
- let fileObj;
485
- if ('file' in imageFile && typeof imageFile.file === 'function') {
486
- fileObj = await imageFile.file();
487
- }
488
- else {
489
- fileObj = imageFile;
490
- }
491
- const reader = new FileReader();
492
- const base64Promise = new Promise((resolve, reject) => {
493
- reader.onload = () => {
494
- const base64 = reader.result;
495
- const base64Data = base64.split(',')[1] || base64;
496
- resolve(base64Data);
497
- };
498
- reader.onerror = reject;
499
- });
500
- reader.readAsDataURL(fileObj);
501
- const base64Data = await base64Promise;
502
- setImageData(base64Data);
503
- }
504
- }
505
- }
506
- catch (err) {
507
- console.error('Error loading image file:', err);
508
- throw new Error(`Failed to load image from document: ${err instanceof Error ? err.message : String(err)}`);
509
- }
510
- }
511
- async function handleExistingDoc({ existingDoc, _id, options, loading, setLoading, setDocument, callImageGeneration, db, setImageData, }) {
512
- if ('prompt' in existingDoc && typeof existingDoc.prompt === 'string' && existingDoc.prompt) {
513
- console.log(`Document ${_id} has no files but has prompt, generating image`);
514
- if (options?.debug) {
515
- console.log('[ImgGen Debug] Document found with prompt but no files:', {
516
- docId: existingDoc._id,
517
- docPrompt: existingDoc.prompt,
518
- settingLoading: true,
519
- settingDocument: true,
520
- loadingValue: loading,
521
- });
522
- }
523
- const docPrompt = existingDoc.prompt;
524
- setLoading(true);
525
- setDocument(existingDoc);
526
- const data = await callImageGeneration(docPrompt, options);
527
- if (data?.data?.[0]?.b64_json) {
528
- setImageData(data.data[0].b64_json);
529
- const blob = base64ToFile(data.data[0].b64_json, 'image/png');
530
- const newImageFile = new File([blob], generateSafeFilename(docPrompt), {
531
- type: 'image/png',
532
- });
533
- const typedDoc = existingDoc;
534
- const updatedDoc = addNewVersion(typedDoc, newImageFile, docPrompt);
535
- await db.put(updatedDoc);
536
- setDocument(updatedDoc);
537
- return;
538
- }
539
- }
540
- else {
541
- throw new Error(`Document exists but has no files: ${_id}`);
542
- }
543
- }
544
- //# sourceMappingURL=use-image-gen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-image-gen.js","sourceRoot":"","sources":["../../../jsr/hooks/image-gen/use-image-gen.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import { ImageGenOptions } from 'call-ai';
2
- import { ModuleState, ImageDocument, VersionInfo, PromptEntry } from './types.js';
3
- export declare const MODULE_STATE: ModuleState;
4
- export declare function cleanupRequestKey(key: string): void;
5
- export declare const cleanupInterval: NodeJS.Timeout;
6
- export declare function hashInput(prompt: string, options?: ImageGenOptions): string;
7
- export declare function base64ToFile(base64Data: string, filename: string): File;
8
- export declare function generateVersionId(versionNumber: number): string;
9
- export declare function getVersionsFromDocument(document: Partial<ImageDocument>): {
10
- versions: VersionInfo[];
11
- currentVersion: number;
12
- };
13
- export declare function generatePromptKey(promptNumber: number): string;
14
- export declare function getPromptsFromDocument(document: Partial<ImageDocument>): {
15
- prompts: Record<string, PromptEntry>;
16
- currentPromptKey: string;
17
- };
18
- export declare function addNewVersion(document: ImageDocument, newImageFile: File, newPrompt?: string): ImageDocument;
19
- export declare function getRelevantOptions(options?: ImageGenOptions): Record<string, unknown>;
20
- export declare function generateSafeFilename(promptText: string): string;