@thewhateverapp/tile-sdk 0.8.9 → 0.9.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.
|
@@ -103,8 +103,18 @@ export declare class TileBridge {
|
|
|
103
103
|
* Get current authenticated user (if available)
|
|
104
104
|
*/
|
|
105
105
|
getCurrentUser(): Promise<any>;
|
|
106
|
+
/**
|
|
107
|
+
* Generate a placeholder image for preview mode
|
|
108
|
+
* Creates a simple colored rectangle with text as base64 PNG
|
|
109
|
+
*/
|
|
110
|
+
private generateMockImage;
|
|
111
|
+
/**
|
|
112
|
+
* Generate a mock file for preview mode
|
|
113
|
+
*/
|
|
114
|
+
private generateMockFile;
|
|
106
115
|
/**
|
|
107
116
|
* Capture a photo from camera or device library
|
|
117
|
+
* In preview mode, returns a mock placeholder image
|
|
108
118
|
* @param options - Capture options (quality, maxSize, source, etc.)
|
|
109
119
|
* @returns Promise resolving to MediaFile with base64 data
|
|
110
120
|
*/
|
|
@@ -124,6 +134,7 @@ export declare class TileBridge {
|
|
|
124
134
|
}>;
|
|
125
135
|
/**
|
|
126
136
|
* Select a file from device
|
|
137
|
+
* In preview mode, returns a mock placeholder file
|
|
127
138
|
* @param options - File selection options (accept, maxSize, etc.)
|
|
128
139
|
* @returns Promise resolving to MediaFile with base64 data
|
|
129
140
|
*/
|
|
@@ -140,6 +151,7 @@ export declare class TileBridge {
|
|
|
140
151
|
}>;
|
|
141
152
|
/**
|
|
142
153
|
* Select multiple files from device
|
|
154
|
+
* In preview mode, returns mock placeholder files
|
|
143
155
|
* @param options - File selection options (accept, maxSize, maxFiles, etc.)
|
|
144
156
|
* @returns Promise resolving to array of MediaFile with base64 data
|
|
145
157
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TileBridge.d.ts","sourceRoot":"","sources":["../../src/bridge/TileBridge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAGD,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,gBAAgB,CAAmD;IAC3E,OAAO,CAAC,aAAa,CAAoD;IACzE,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,MAAM,CAA2B;gBAE7B,cAAc,GAAE,MAAkC,EAAE,MAAM,CAAC,EAAE,UAAU;IA6BnF,OAAO,CAAC,UAAU;IAiClB,OAAO,CAAC,aAAa;IAiDrB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,YAAY;IAmCpB;;;;;OAKG;IACI,cAAc,IAAI,IAAI;IAuD7B;;;;;OAKG;IACI,cAAc,IAAI,IAAI;IAmD7B;;;OAGG;IACI,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAI1C;;OAEG;IACI,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,QAAQ,GAAG,OAAkB,GAAG,IAAI;IAOxE;;OAEG;IACI,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAOtD;;;OAGG;IACI,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAOpD;;OAEG;IACU,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B1D;;OAEG;IACU,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B/D;;OAEG;IACU,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAoBlD;;OAEG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAWzD;;OAEG;IACU,OAAO,CAAC,OAAO,CAAC,EAAE;QAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,GAAG,CAAC;IAiChB;;OAEG;IACU,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IA8B9D;;OAEG;IACU,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC;IAyB3C
|
|
1
|
+
{"version":3,"file":"TileBridge.d.ts","sourceRoot":"","sources":["../../src/bridge/TileBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -497,12 +497,72 @@ export class TileBridge {
|
|
|
497
497
|
});
|
|
498
498
|
}
|
|
499
499
|
// ============= MEDIA CAPTURE API =============
|
|
500
|
+
/**
|
|
501
|
+
* Generate a placeholder image for preview mode
|
|
502
|
+
* Creates a simple colored rectangle with text as base64 PNG
|
|
503
|
+
*/
|
|
504
|
+
generateMockImage(width = 400, height = 300) {
|
|
505
|
+
// Create a simple SVG placeholder that can be used as a data URL
|
|
506
|
+
// This works in browser environments without canvas
|
|
507
|
+
const colors = ['#4A90A4', '#7B68EE', '#20B2AA', '#FF6B6B', '#4ECDC4', '#45B7D1'];
|
|
508
|
+
const color = colors[Math.floor(Math.random() * colors.length)];
|
|
509
|
+
const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="${width}" height="${height}" viewBox="0 0 ${width} ${height}">
|
|
510
|
+
<rect width="${width}" height="${height}" fill="${color}"/>
|
|
511
|
+
<rect x="10" y="10" width="${width - 20}" height="${height - 20}" fill="none" stroke="white" stroke-width="2" stroke-dasharray="10,5" rx="10"/>
|
|
512
|
+
<text x="${width / 2}" y="${height / 2 - 20}" font-family="Arial, sans-serif" font-size="24" fill="white" text-anchor="middle">📷</text>
|
|
513
|
+
<text x="${width / 2}" y="${height / 2 + 15}" font-family="Arial, sans-serif" font-size="16" fill="white" text-anchor="middle">Preview Mode</text>
|
|
514
|
+
<text x="${width / 2}" y="${height / 2 + 40}" font-family="Arial, sans-serif" font-size="12" fill="rgba(255,255,255,0.7)" text-anchor="middle">Camera capture simulated</text>
|
|
515
|
+
</svg>`;
|
|
516
|
+
// Convert SVG to base64
|
|
517
|
+
const base64 = typeof btoa !== 'undefined'
|
|
518
|
+
? btoa(unescape(encodeURIComponent(svg)))
|
|
519
|
+
: Buffer.from(svg).toString('base64');
|
|
520
|
+
return {
|
|
521
|
+
base64: `data:image/svg+xml;base64,${base64}`,
|
|
522
|
+
mimeType: 'image/svg+xml',
|
|
523
|
+
filename: `preview-photo-${Date.now()}.svg`,
|
|
524
|
+
size: svg.length,
|
|
525
|
+
width,
|
|
526
|
+
height,
|
|
527
|
+
};
|
|
528
|
+
}
|
|
529
|
+
/**
|
|
530
|
+
* Generate a mock file for preview mode
|
|
531
|
+
*/
|
|
532
|
+
generateMockFile(accept) {
|
|
533
|
+
// If accepting images, return a mock image
|
|
534
|
+
if (!accept || accept.includes('image') || accept === '*/*') {
|
|
535
|
+
return this.generateMockImage();
|
|
536
|
+
}
|
|
537
|
+
// For other file types, return a simple text/json placeholder
|
|
538
|
+
const mockContent = JSON.stringify({
|
|
539
|
+
preview: true,
|
|
540
|
+
message: 'This is mock file content for preview mode',
|
|
541
|
+
timestamp: new Date().toISOString(),
|
|
542
|
+
}, null, 2);
|
|
543
|
+
const base64 = typeof btoa !== 'undefined'
|
|
544
|
+
? btoa(mockContent)
|
|
545
|
+
: Buffer.from(mockContent).toString('base64');
|
|
546
|
+
return {
|
|
547
|
+
base64,
|
|
548
|
+
mimeType: 'application/json',
|
|
549
|
+
filename: `preview-file-${Date.now()}.json`,
|
|
550
|
+
size: mockContent.length,
|
|
551
|
+
};
|
|
552
|
+
}
|
|
500
553
|
/**
|
|
501
554
|
* Capture a photo from camera or device library
|
|
555
|
+
* In preview mode, returns a mock placeholder image
|
|
502
556
|
* @param options - Capture options (quality, maxSize, source, etc.)
|
|
503
557
|
* @returns Promise resolving to MediaFile with base64 data
|
|
504
558
|
*/
|
|
505
559
|
async capturePhoto(options) {
|
|
560
|
+
// In preview mode, return mock image immediately
|
|
561
|
+
if (this.isPreview()) {
|
|
562
|
+
console.log('[TileBridge] 📸 Preview mode - returning mock photo');
|
|
563
|
+
const mockImage = this.generateMockImage(options?.maxWidth ?? 400, options?.maxHeight ?? 300);
|
|
564
|
+
return Promise.resolve(mockImage);
|
|
565
|
+
}
|
|
506
566
|
return new Promise((resolve, reject) => {
|
|
507
567
|
const id = this.generateId();
|
|
508
568
|
this.responseHandlers.set(id, (response) => {
|
|
@@ -538,10 +598,16 @@ export class TileBridge {
|
|
|
538
598
|
}
|
|
539
599
|
/**
|
|
540
600
|
* Select a file from device
|
|
601
|
+
* In preview mode, returns a mock placeholder file
|
|
541
602
|
* @param options - File selection options (accept, maxSize, etc.)
|
|
542
603
|
* @returns Promise resolving to MediaFile with base64 data
|
|
543
604
|
*/
|
|
544
605
|
async selectFile(options) {
|
|
606
|
+
// In preview mode, return mock file immediately
|
|
607
|
+
if (this.isPreview()) {
|
|
608
|
+
console.log('[TileBridge] 📁 Preview mode - returning mock file');
|
|
609
|
+
return Promise.resolve(this.generateMockFile(options?.accept));
|
|
610
|
+
}
|
|
545
611
|
return new Promise((resolve, reject) => {
|
|
546
612
|
const id = this.generateId();
|
|
547
613
|
this.responseHandlers.set(id, (response) => {
|
|
@@ -574,10 +640,18 @@ export class TileBridge {
|
|
|
574
640
|
}
|
|
575
641
|
/**
|
|
576
642
|
* Select multiple files from device
|
|
643
|
+
* In preview mode, returns mock placeholder files
|
|
577
644
|
* @param options - File selection options (accept, maxSize, maxFiles, etc.)
|
|
578
645
|
* @returns Promise resolving to array of MediaFile with base64 data
|
|
579
646
|
*/
|
|
580
647
|
async selectFiles(options) {
|
|
648
|
+
// In preview mode, return mock files immediately
|
|
649
|
+
if (this.isPreview()) {
|
|
650
|
+
console.log('[TileBridge] 📁📁 Preview mode - returning mock files');
|
|
651
|
+
const count = Math.min(options?.maxFiles ?? 3, 5);
|
|
652
|
+
const files = Array.from({ length: count }, () => this.generateMockFile(options?.accept));
|
|
653
|
+
return Promise.resolve(files);
|
|
654
|
+
}
|
|
581
655
|
return new Promise((resolve, reject) => {
|
|
582
656
|
const id = this.generateId();
|
|
583
657
|
this.responseHandlers.set(id, (response) => {
|