capacitor-camera-module 0.0.24 → 0.0.26

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 CHANGED
@@ -27,6 +27,7 @@ npx cap sync
27
27
  * [`checkAndRequestGalleryPermission()`](#checkandrequestgallerypermission)
28
28
  * [`pickImageBase64()`](#pickimagebase64)
29
29
  * [`getLastGalleryImage()`](#getlastgalleryimage)
30
+ * [`takePhotoBase64()`](#takephotobase64)
30
31
  * [Interfaces](#interfaces)
31
32
 
32
33
  </docgen-index>
@@ -190,6 +191,17 @@ getLastGalleryImage() => Promise<LastGalleryImageResult>
190
191
  --------------------
191
192
 
192
193
 
194
+ ### takePhotoBase64()
195
+
196
+ ```typescript
197
+ takePhotoBase64() => Promise<{ base64: string; mimeType: string; }>
198
+ ```
199
+
200
+ **Returns:** <code>Promise&lt;{ base64: string; mimeType: string; }&gt;</code>
201
+
202
+ --------------------
203
+
204
+
193
205
  ### Interfaces
194
206
 
195
207
 
@@ -47,6 +47,15 @@ import android.graphics.Bitmap;
47
47
  import android.graphics.BitmapFactory;
48
48
  import android.graphics.Matrix;
49
49
 
50
+ import androidx.camera.core.ImageCapture;
51
+ import androidx.camera.core.ImageCaptureException;
52
+
53
+ import androidx.camera.core.ImageProxy;
54
+ import android.graphics.ImageFormat;
55
+ import android.media.Image;
56
+
57
+ import java.nio.ByteBuffer;
58
+ import androidx.annotation.NonNull;
50
59
 
51
60
  @CapacitorPlugin(
52
61
  name = "CameraModule",
@@ -77,6 +86,8 @@ public class CameraModulePlugin extends Plugin {
77
86
  private ActivityResultLauncher<Intent> galleryLauncher;
78
87
  private PluginCall savedCall;
79
88
 
89
+ private ImageCapture imageCapture;
90
+
80
91
  @Override
81
92
  public void load() {
82
93
  super.load();
@@ -233,6 +244,11 @@ public class CameraModulePlugin extends Plugin {
233
244
  Preview preview = new Preview.Builder().build();
234
245
  preview.setSurfaceProvider(previewView.getSurfaceProvider());
235
246
 
247
+ imageCapture =
248
+ new ImageCapture.Builder()
249
+ .setCaptureMode(ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY)
250
+ .build();
251
+
236
252
  cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA;
237
253
 
238
254
  cameraProvider.unbindAll();
@@ -240,7 +256,8 @@ public class CameraModulePlugin extends Plugin {
240
256
  camera = cameraProvider.bindToLifecycle(
241
257
  getActivity(),
242
258
  cameraSelector,
243
- preview
259
+ preview,
260
+ imageCapture
244
261
  );
245
262
 
246
263
  } catch (Exception e) {
@@ -249,6 +266,7 @@ public class CameraModulePlugin extends Plugin {
249
266
  }, ContextCompat.getMainExecutor(getContext()));
250
267
  }
251
268
 
269
+
252
270
  @PluginMethod
253
271
  public void stopPreview(PluginCall call) {
254
272
  getActivity().runOnUiThread(() -> {
@@ -338,7 +356,6 @@ public class CameraModulePlugin extends Plugin {
338
356
  throw new Exception("Unable to open input stream");
339
357
  }
340
358
 
341
- // 1️⃣ Decodificar imagen
342
359
  Bitmap originalBitmap = BitmapFactory.decodeStream(inputStream);
343
360
  inputStream.close();
344
361
 
@@ -346,20 +363,16 @@ public class CameraModulePlugin extends Plugin {
346
363
  throw new Exception("Unable to decode bitmap");
347
364
  }
348
365
 
349
- // 2️⃣ Redimensionar (máx 1024px)
350
366
  Bitmap resizedBitmap = resizeBitmap(originalBitmap, 1024);
351
367
 
352
- // 3️⃣ Comprimir a JPEG calidad 80
353
368
  ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
354
369
  resizedBitmap.compress(Bitmap.CompressFormat.JPEG, 80, outputStream);
355
370
 
356
371
  byte[] imageBytes = outputStream.toByteArray();
357
372
 
358
- // 4️⃣ Limpiar memoria
359
373
  originalBitmap.recycle();
360
374
  resizedBitmap.recycle();
361
375
 
362
- // 5️⃣ Base64
363
376
  return Base64.encodeToString(imageBytes, Base64.NO_WRAP);
364
377
  }
365
378
 
@@ -502,8 +515,71 @@ public class CameraModulePlugin extends Plugin {
502
515
  }
503
516
 
504
517
 
518
+ @PluginMethod
519
+ public void takePhotoBase64(PluginCall call) {
520
+
521
+ if (imageCapture == null) {
522
+ call.reject("Camera not initialized");
523
+ return;
524
+ }
525
+
526
+ imageCapture.takePicture(
527
+ ContextCompat.getMainExecutor(getContext()),
528
+ new ImageCapture.OnImageCapturedCallback() {
529
+
530
+ @Override
531
+ public void onCaptureSuccess(
532
+ @NonNull ImageProxy image
533
+ ) {
534
+ try {
535
+ Bitmap bitmap = imageProxyToBitmap(image);
536
+ image.close();
537
+
538
+ Bitmap resized = resizeBitmap(bitmap, 1024);
539
+
540
+ ByteArrayOutputStream outputStream =
541
+ new ByteArrayOutputStream();
542
+ resized.compress(
543
+ Bitmap.CompressFormat.JPEG,
544
+ 80,
545
+ outputStream
546
+ );
547
+
548
+ byte[] bytes = outputStream.toByteArray();
549
+ String base64 =
550
+ Base64.encodeToString(bytes, Base64.NO_WRAP);
551
+
552
+ bitmap.recycle();
553
+ resized.recycle();
554
+
555
+ JSObject ret = new JSObject();
556
+ ret.put("base64", base64);
557
+ ret.put("mimeType", "image/jpeg");
558
+ call.resolve(ret);
559
+
560
+ } catch (Exception e) {
561
+ call.reject("Error capturing image", e);
562
+ }
563
+ }
564
+
565
+ @Override
566
+ public void onError(
567
+ @NonNull ImageCaptureException exception
568
+ ) {
569
+ call.reject("Capture failed", exception);
570
+ }
571
+ }
572
+ );
573
+ }
505
574
 
575
+ private Bitmap imageProxyToBitmap(ImageProxy image) {
576
+ ImageProxy.PlaneProxy[] planes = image.getPlanes();
577
+ ByteBuffer buffer = planes[0].getBuffer();
578
+ byte[] bytes = new byte[buffer.remaining()];
579
+ buffer.get(bytes);
506
580
 
581
+ return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
582
+ }
507
583
 
508
584
 
509
585
 
package/dist/docs.json CHANGED
@@ -174,6 +174,16 @@
174
174
  "LastGalleryImageResult"
175
175
  ],
176
176
  "slug": "getlastgalleryimage"
177
+ },
178
+ {
179
+ "name": "takePhotoBase64",
180
+ "signature": "() => Promise<{ base64: string; mimeType: string; }>",
181
+ "parameters": [],
182
+ "returns": "Promise<{ base64: string; mimeType: string; }>",
183
+ "tags": [],
184
+ "docs": "",
185
+ "complexTypes": [],
186
+ "slug": "takephotobase64"
177
187
  }
178
188
  ],
179
189
  "properties": []
@@ -17,6 +17,10 @@ export interface CameraModulePlugin {
17
17
  checkAndRequestGalleryPermission(): Promise<PermissionResult>;
18
18
  pickImageBase64(): Promise<PickImageBase64Result>;
19
19
  getLastGalleryImage(): Promise<LastGalleryImageResult>;
20
+ takePhotoBase64(): Promise<{
21
+ base64: string;
22
+ mimeType: string;
23
+ }>;
20
24
  }
21
25
  export interface PermissionStatus {
22
26
  granted: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["export interface CameraModulePlugin {\n echo(options: { value: string }): Promise<{ value: string }>;\n\n checkPermission(): Promise<PermissionStatus>;\n\n requestPermission(): Promise<PermissionStatus>;\n\n checkAndRequestPermission(): Promise<PermissionStatus>;\n\n getCameraCapabilities(): Promise<CameraCapabilities>;\n\n startPreview(): Promise<void>;\n\n stopPreview(): Promise<void>;\n\n toggleFlash(enable: boolean): Promise<void>;\n\n hasFlash(): Promise<boolean>;\n\n checkGalleryPermission(): Promise<PermissionResult>;\n requestGalleryPermission(): Promise<PermissionResult>;\n checkAndRequestGalleryPermission(): Promise<PermissionResult>;\n\n pickImageBase64(): Promise<PickImageBase64Result>;\n\n getLastGalleryImage(): Promise<LastGalleryImageResult>;\n\n}\n\nexport interface PermissionStatus {\n granted: boolean;\n status: 'granted' | 'denied' | 'prompt' | 'prompt-with-rationale' | 'limited';\n details?: string;\n}\n\n\nexport interface CameraCapabilities {\n hasCamera: boolean;\n isSecureContext: boolean;\n userAgent: string;\n}\n\nexport interface PermissionResult {\n granted: boolean;\n status: 'granted' | 'denied' | 'prompt';\n details?: string;\n}\n\nexport interface PickImageBase64Result {\n base64: string;\n mimeType?: string;\n}\n\nexport interface LastGalleryImageResult {\n base64: string;\n}\n"]}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["export interface CameraModulePlugin {\n echo(options: { value: string }): Promise<{ value: string }>;\n\n checkPermission(): Promise<PermissionStatus>;\n\n requestPermission(): Promise<PermissionStatus>;\n\n checkAndRequestPermission(): Promise<PermissionStatus>;\n\n getCameraCapabilities(): Promise<CameraCapabilities>;\n\n startPreview(): Promise<void>;\n\n stopPreview(): Promise<void>;\n\n toggleFlash(enable: boolean): Promise<void>;\n\n hasFlash(): Promise<boolean>;\n\n checkGalleryPermission(): Promise<PermissionResult>;\n requestGalleryPermission(): Promise<PermissionResult>;\n checkAndRequestGalleryPermission(): Promise<PermissionResult>;\n\n pickImageBase64(): Promise<PickImageBase64Result>;\n\n getLastGalleryImage(): Promise<LastGalleryImageResult>;\n\n takePhotoBase64(): Promise<{\n base64: string;\n mimeType: string;\n }>;\n}\n\nexport interface PermissionStatus {\n granted: boolean;\n status: 'granted' | 'denied' | 'prompt' | 'prompt-with-rationale' | 'limited';\n details?: string;\n}\n\n\nexport interface CameraCapabilities {\n hasCamera: boolean;\n isSecureContext: boolean;\n userAgent: string;\n}\n\nexport interface PermissionResult {\n granted: boolean;\n status: 'granted' | 'denied' | 'prompt';\n details?: string;\n}\n\nexport interface PickImageBase64Result {\n base64: string;\n mimeType?: string;\n}\n\nexport interface LastGalleryImageResult {\n base64: string;\n}\n"]}
package/dist/esm/web.d.ts CHANGED
@@ -25,4 +25,5 @@ export declare class CameraModuleWeb extends WebPlugin implements CameraModulePl
25
25
  getLastGalleryImage(): Promise<{
26
26
  base64: string;
27
27
  }>;
28
+ takePhotoBase64(): Promise<any>;
28
29
  }
package/dist/esm/web.js CHANGED
@@ -190,5 +190,8 @@ export class CameraModuleWeb extends WebPlugin {
190
190
  async getLastGalleryImage() {
191
191
  throw new Error('[CameraModule] getLastGalleryImage is not supported on web');
192
192
  }
193
+ async takePhotoBase64() {
194
+ throw this.unavailable('Camera not available on web');
195
+ }
193
196
  }
194
197
  //# sourceMappingURL=web.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"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","sourcesContent":["import { WebPlugin } from '@capacitor/core';\n\nimport type { CameraModulePlugin, PermissionStatus, PickImageBase64Result, PermissionResult } from './definitions';\n\nexport class CameraModuleWeb extends WebPlugin implements CameraModulePlugin {\n async echo(options: { value: string }): Promise<{ value: string }> {\n console.log('ECHO', options);\n return options;\n }\n\n async checkPermission(): Promise<PermissionStatus> {\n // Verificar disponibilidad de APIs - usando prefijo _ para variables no usadas\n const hasMediaDevices = !!navigator.mediaDevices?.enumerateDevices;\n const _hasGetUserMedia = !!navigator.mediaDevices?.getUserMedia; // Prefijo _\n\n if (!hasMediaDevices || !_hasGetUserMedia) {\n throw this.unavailable('Camera API no disponible en este navegador');\n }\n\n try {\n const devices = await navigator.mediaDevices.enumerateDevices();\n const videoDevices = devices.filter((device) => device.kind === 'videoinput');\n\n // No hay dispositivos de cámara\n if (videoDevices.length === 0) {\n return {\n granted: false,\n status: 'denied',\n details: 'No camera devices found',\n };\n }\n\n // Verificar si algún dispositivo tiene label (indica permiso)\n const hasPermission = videoDevices.some((device) => device.label && device.label.trim() !== '');\n\n // Determinar estado más preciso\n let status: PermissionStatus['status'] = 'denied';\n if (hasPermission) {\n status = 'granted';\n } else {\n // En web, sin intentar getUserMedia, asumimos que es la primera vez\n status = 'prompt';\n }\n\n return {\n granted: hasPermission,\n status,\n details: `Found ${videoDevices.length} camera device(s)`,\n };\n } catch (error: any) {\n console.error('Error checking camera permission:', error);\n return {\n granted: false,\n status: 'denied',\n details: error.message || 'Unknown error',\n };\n }\n }\n\n async requestPermission(): Promise<PermissionStatus> {\n // Verificar getUserMedia específicamente para este método\n if (!navigator.mediaDevices?.getUserMedia) {\n throw this.unavailable('Camera API no disponible en este navegador');\n }\n\n try {\n // Intentar acceder a la cámara con configuración mínima\n const stream = await navigator.mediaDevices.getUserMedia({\n video: {\n width: { ideal: 1280 },\n height: { ideal: 720 },\n facingMode: { ideal: 'environment' },\n },\n audio: false,\n });\n\n // Limpiar recursos inmediatamente\n stream.getTracks().forEach((track) => {\n track.stop();\n });\n\n return {\n granted: true,\n status: 'granted',\n details: 'Permission granted successfully',\n };\n } catch (error: any) {\n console.error('Error requesting camera permission:', error);\n\n // Manejo específico de errores\n let status: PermissionStatus['status'] = 'denied';\n let details = error.message || 'Unknown error';\n\n if (error.name === 'NotAllowedError') {\n status = 'denied';\n details = 'User denied camera access';\n } else if (error.name === 'NotFoundError') {\n status = 'denied';\n details = 'No camera found';\n } else if (error.name === 'NotReadableError') {\n status = 'denied';\n details = 'Camera is already in use';\n } else if (error.name === 'OverconstrainedError') {\n status = 'denied';\n details = 'Camera constraints cannot be met';\n } else if (error.name === 'SecurityError') {\n status = 'denied';\n details = 'Camera access blocked by browser security settings';\n } else if (error.name === 'TypeError') {\n status = 'denied';\n details = 'Invalid constraints specified';\n }\n\n return {\n granted: false,\n status,\n details,\n };\n }\n }\n\n async checkAndRequestPermission(): Promise<PermissionStatus> {\n try {\n // Primero verificar el estado actual\n const currentStatus = await this.checkPermission();\n\n // Si ya tiene permiso, retornar inmediatamente\n if (currentStatus.granted) {\n return currentStatus;\n }\n\n // Si no tiene permiso, solicitar\n return await this.requestPermission();\n } catch (error) {\n console.error('Error in checkAndRequestPermission:', error);\n return {\n granted: false,\n status: 'denied',\n details: 'Failed to check or request permission',\n };\n }\n }\n\n // Método adicional para verificar soporte de características\n async getCameraCapabilities(): Promise<{\n hasCamera: boolean;\n isSecureContext: boolean;\n userAgent: string;\n }> {\n const hasMediaDevices = !!navigator.mediaDevices?.enumerateDevices;\n const hasGetUserMedia = !!navigator.mediaDevices?.getUserMedia;\n\n let hasCamera = false;\n\n if (hasMediaDevices || hasGetUserMedia) {\n try {\n const devices = await navigator.mediaDevices.enumerateDevices();\n hasCamera = devices.some((device) => device.kind === 'videoinput');\n } catch {\n hasCamera = false;\n }\n }\n\n return {\n hasCamera,\n isSecureContext: window.isSecureContext,\n userAgent: navigator.userAgent,\n };\n }\n\n //Camera Preview\n async startPreview(): Promise<void> {\n console.warn('[CameraModule] startPreview is not supported on web');\n }\n\n async stopPreview(): Promise<void> {\n console.warn('[CameraModule] stopPreview is not supported on web');\n }\n\n async hasFlash(): Promise<boolean> {\n return false;\n }\n\n async toggleFlash(_enable: boolean): Promise<void> {\n console.log(_enable);\n console.warn('[CameraModule] toggleFlash is not supported on web ');\n }\n\n async checkGalleryPermission(): Promise<PermissionResult> {\n return {\n granted: true,\n status: 'granted',\n details: 'Web does not require gallery permission',\n };\n }\n\n async requestGalleryPermission(): Promise<PermissionResult> {\n return {\n granted: true,\n status: 'granted',\n details: 'Web does not require gallery permission',\n };\n }\n\n async checkAndRequestGalleryPermission(): Promise<PermissionResult> {\n return this.checkGalleryPermission();\n }\n\n /* Imagen */\n\n async pickImageBase64(): Promise<PickImageBase64Result> {\n throw new Error('[CameraModule] pickImageBase64 is not supported on web');\n }\n\n async getLastGalleryImage(): Promise<{ base64: string }> {\n throw new Error('[CameraModule] getLastGalleryImage is not supported on web');\n }\n}\n"]}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"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","sourcesContent":["import { WebPlugin } from '@capacitor/core';\n\nimport type { CameraModulePlugin, PermissionStatus, PickImageBase64Result, PermissionResult } from './definitions';\n\nexport class CameraModuleWeb extends WebPlugin implements CameraModulePlugin {\n async echo(options: { value: string }): Promise<{ value: string }> {\n console.log('ECHO', options);\n return options;\n }\n\n async checkPermission(): Promise<PermissionStatus> {\n // Verificar disponibilidad de APIs - usando prefijo _ para variables no usadas\n const hasMediaDevices = !!navigator.mediaDevices?.enumerateDevices;\n const _hasGetUserMedia = !!navigator.mediaDevices?.getUserMedia; // Prefijo _\n\n if (!hasMediaDevices || !_hasGetUserMedia) {\n throw this.unavailable('Camera API no disponible en este navegador');\n }\n\n try {\n const devices = await navigator.mediaDevices.enumerateDevices();\n const videoDevices = devices.filter((device) => device.kind === 'videoinput');\n\n // No hay dispositivos de cámara\n if (videoDevices.length === 0) {\n return {\n granted: false,\n status: 'denied',\n details: 'No camera devices found',\n };\n }\n\n // Verificar si algún dispositivo tiene label (indica permiso)\n const hasPermission = videoDevices.some((device) => device.label && device.label.trim() !== '');\n\n // Determinar estado más preciso\n let status: PermissionStatus['status'] = 'denied';\n if (hasPermission) {\n status = 'granted';\n } else {\n // En web, sin intentar getUserMedia, asumimos que es la primera vez\n status = 'prompt';\n }\n\n return {\n granted: hasPermission,\n status,\n details: `Found ${videoDevices.length} camera device(s)`,\n };\n } catch (error: any) {\n console.error('Error checking camera permission:', error);\n return {\n granted: false,\n status: 'denied',\n details: error.message || 'Unknown error',\n };\n }\n }\n\n async requestPermission(): Promise<PermissionStatus> {\n // Verificar getUserMedia específicamente para este método\n if (!navigator.mediaDevices?.getUserMedia) {\n throw this.unavailable('Camera API no disponible en este navegador');\n }\n\n try {\n // Intentar acceder a la cámara con configuración mínima\n const stream = await navigator.mediaDevices.getUserMedia({\n video: {\n width: { ideal: 1280 },\n height: { ideal: 720 },\n facingMode: { ideal: 'environment' },\n },\n audio: false,\n });\n\n // Limpiar recursos inmediatamente\n stream.getTracks().forEach((track) => {\n track.stop();\n });\n\n return {\n granted: true,\n status: 'granted',\n details: 'Permission granted successfully',\n };\n } catch (error: any) {\n console.error('Error requesting camera permission:', error);\n\n // Manejo específico de errores\n let status: PermissionStatus['status'] = 'denied';\n let details = error.message || 'Unknown error';\n\n if (error.name === 'NotAllowedError') {\n status = 'denied';\n details = 'User denied camera access';\n } else if (error.name === 'NotFoundError') {\n status = 'denied';\n details = 'No camera found';\n } else if (error.name === 'NotReadableError') {\n status = 'denied';\n details = 'Camera is already in use';\n } else if (error.name === 'OverconstrainedError') {\n status = 'denied';\n details = 'Camera constraints cannot be met';\n } else if (error.name === 'SecurityError') {\n status = 'denied';\n details = 'Camera access blocked by browser security settings';\n } else if (error.name === 'TypeError') {\n status = 'denied';\n details = 'Invalid constraints specified';\n }\n\n return {\n granted: false,\n status,\n details,\n };\n }\n }\n\n async checkAndRequestPermission(): Promise<PermissionStatus> {\n try {\n // Primero verificar el estado actual\n const currentStatus = await this.checkPermission();\n\n // Si ya tiene permiso, retornar inmediatamente\n if (currentStatus.granted) {\n return currentStatus;\n }\n\n // Si no tiene permiso, solicitar\n return await this.requestPermission();\n } catch (error) {\n console.error('Error in checkAndRequestPermission:', error);\n return {\n granted: false,\n status: 'denied',\n details: 'Failed to check or request permission',\n };\n }\n }\n\n // Método adicional para verificar soporte de características\n async getCameraCapabilities(): Promise<{\n hasCamera: boolean;\n isSecureContext: boolean;\n userAgent: string;\n }> {\n const hasMediaDevices = !!navigator.mediaDevices?.enumerateDevices;\n const hasGetUserMedia = !!navigator.mediaDevices?.getUserMedia;\n\n let hasCamera = false;\n\n if (hasMediaDevices || hasGetUserMedia) {\n try {\n const devices = await navigator.mediaDevices.enumerateDevices();\n hasCamera = devices.some((device) => device.kind === 'videoinput');\n } catch {\n hasCamera = false;\n }\n }\n\n return {\n hasCamera,\n isSecureContext: window.isSecureContext,\n userAgent: navigator.userAgent,\n };\n }\n\n //Camera Preview\n async startPreview(): Promise<void> {\n console.warn('[CameraModule] startPreview is not supported on web');\n }\n\n async stopPreview(): Promise<void> {\n console.warn('[CameraModule] stopPreview is not supported on web');\n }\n\n async hasFlash(): Promise<boolean> {\n return false;\n }\n\n async toggleFlash(_enable: boolean): Promise<void> {\n console.log(_enable);\n console.warn('[CameraModule] toggleFlash is not supported on web ');\n }\n\n async checkGalleryPermission(): Promise<PermissionResult> {\n return {\n granted: true,\n status: 'granted',\n details: 'Web does not require gallery permission',\n };\n }\n\n async requestGalleryPermission(): Promise<PermissionResult> {\n return {\n granted: true,\n status: 'granted',\n details: 'Web does not require gallery permission',\n };\n }\n\n async checkAndRequestGalleryPermission(): Promise<PermissionResult> {\n return this.checkGalleryPermission();\n }\n\n /* Imagen */\n\n async pickImageBase64(): Promise<PickImageBase64Result> {\n throw new Error('[CameraModule] pickImageBase64 is not supported on web');\n }\n\n async getLastGalleryImage(): Promise<{ base64: string }> {\n throw new Error('[CameraModule] getLastGalleryImage is not supported on web');\n }\n\n async takePhotoBase64(): Promise<any> {\n throw this.unavailable('Camera not available on web');\n }\n}\n"]}
@@ -197,6 +197,9 @@ class CameraModuleWeb extends core.WebPlugin {
197
197
  async getLastGalleryImage() {
198
198
  throw new Error('[CameraModule] getLastGalleryImage is not supported on web');
199
199
  }
200
+ async takePhotoBase64() {
201
+ throw this.unavailable('Camera not available on web');
202
+ }
200
203
  }
201
204
 
202
205
  var web = /*#__PURE__*/Object.freeze({
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst CameraModule = registerPlugin('CameraModule', {\n web: () => import('./web').then((m) => new m.CameraModuleWeb()),\n});\nexport * from './definitions';\nexport { CameraModule };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class CameraModuleWeb extends WebPlugin {\n async echo(options) {\n console.log('ECHO', options);\n return options;\n }\n async checkPermission() {\n var _a, _b;\n // Verificar disponibilidad de APIs - usando prefijo _ para variables no usadas\n const hasMediaDevices = !!((_a = navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.enumerateDevices);\n const _hasGetUserMedia = !!((_b = navigator.mediaDevices) === null || _b === void 0 ? void 0 : _b.getUserMedia); // Prefijo _\n if (!hasMediaDevices || !_hasGetUserMedia) {\n throw this.unavailable('Camera API no disponible en este navegador');\n }\n try {\n const devices = await navigator.mediaDevices.enumerateDevices();\n const videoDevices = devices.filter((device) => device.kind === 'videoinput');\n // No hay dispositivos de cámara\n if (videoDevices.length === 0) {\n return {\n granted: false,\n status: 'denied',\n details: 'No camera devices found',\n };\n }\n // Verificar si algún dispositivo tiene label (indica permiso)\n const hasPermission = videoDevices.some((device) => device.label && device.label.trim() !== '');\n // Determinar estado más preciso\n let status = 'denied';\n if (hasPermission) {\n status = 'granted';\n }\n else {\n // En web, sin intentar getUserMedia, asumimos que es la primera vez\n status = 'prompt';\n }\n return {\n granted: hasPermission,\n status,\n details: `Found ${videoDevices.length} camera device(s)`,\n };\n }\n catch (error) {\n console.error('Error checking camera permission:', error);\n return {\n granted: false,\n status: 'denied',\n details: error.message || 'Unknown error',\n };\n }\n }\n async requestPermission() {\n var _a;\n // Verificar getUserMedia específicamente para este método\n if (!((_a = navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.getUserMedia)) {\n throw this.unavailable('Camera API no disponible en este navegador');\n }\n try {\n // Intentar acceder a la cámara con configuración mínima\n const stream = await navigator.mediaDevices.getUserMedia({\n video: {\n width: { ideal: 1280 },\n height: { ideal: 720 },\n facingMode: { ideal: 'environment' },\n },\n audio: false,\n });\n // Limpiar recursos inmediatamente\n stream.getTracks().forEach((track) => {\n track.stop();\n });\n return {\n granted: true,\n status: 'granted',\n details: 'Permission granted successfully',\n };\n }\n catch (error) {\n console.error('Error requesting camera permission:', error);\n // Manejo específico de errores\n let status = 'denied';\n let details = error.message || 'Unknown error';\n if (error.name === 'NotAllowedError') {\n status = 'denied';\n details = 'User denied camera access';\n }\n else if (error.name === 'NotFoundError') {\n status = 'denied';\n details = 'No camera found';\n }\n else if (error.name === 'NotReadableError') {\n status = 'denied';\n details = 'Camera is already in use';\n }\n else if (error.name === 'OverconstrainedError') {\n status = 'denied';\n details = 'Camera constraints cannot be met';\n }\n else if (error.name === 'SecurityError') {\n status = 'denied';\n details = 'Camera access blocked by browser security settings';\n }\n else if (error.name === 'TypeError') {\n status = 'denied';\n details = 'Invalid constraints specified';\n }\n return {\n granted: false,\n status,\n details,\n };\n }\n }\n async checkAndRequestPermission() {\n try {\n // Primero verificar el estado actual\n const currentStatus = await this.checkPermission();\n // Si ya tiene permiso, retornar inmediatamente\n if (currentStatus.granted) {\n return currentStatus;\n }\n // Si no tiene permiso, solicitar\n return await this.requestPermission();\n }\n catch (error) {\n console.error('Error in checkAndRequestPermission:', error);\n return {\n granted: false,\n status: 'denied',\n details: 'Failed to check or request permission',\n };\n }\n }\n // Método adicional para verificar soporte de características\n async getCameraCapabilities() {\n var _a, _b;\n const hasMediaDevices = !!((_a = navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.enumerateDevices);\n const hasGetUserMedia = !!((_b = navigator.mediaDevices) === null || _b === void 0 ? void 0 : _b.getUserMedia);\n let hasCamera = false;\n if (hasMediaDevices || hasGetUserMedia) {\n try {\n const devices = await navigator.mediaDevices.enumerateDevices();\n hasCamera = devices.some((device) => device.kind === 'videoinput');\n }\n catch (_c) {\n hasCamera = false;\n }\n }\n return {\n hasCamera,\n isSecureContext: window.isSecureContext,\n userAgent: navigator.userAgent,\n };\n }\n //Camera Preview\n async startPreview() {\n console.warn('[CameraModule] startPreview is not supported on web');\n }\n async stopPreview() {\n console.warn('[CameraModule] stopPreview is not supported on web');\n }\n async hasFlash() {\n return false;\n }\n async toggleFlash(_enable) {\n console.log(_enable);\n console.warn('[CameraModule] toggleFlash is not supported on web ');\n }\n async checkGalleryPermission() {\n return {\n granted: true,\n status: 'granted',\n details: 'Web does not require gallery permission',\n };\n }\n async requestGalleryPermission() {\n return {\n granted: true,\n status: 'granted',\n details: 'Web does not require gallery permission',\n };\n }\n async checkAndRequestGalleryPermission() {\n return this.checkGalleryPermission();\n }\n /* Imagen */\n async pickImageBase64() {\n throw new Error('[CameraModule] pickImageBase64 is not supported on web');\n }\n async getLastGalleryImage() {\n throw new Error('[CameraModule] getLastGalleryImage is not supported on web');\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst CameraModule = registerPlugin('CameraModule', {\n web: () => import('./web').then((m) => new m.CameraModuleWeb()),\n});\nexport * from './definitions';\nexport { CameraModule };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class CameraModuleWeb extends WebPlugin {\n async echo(options) {\n console.log('ECHO', options);\n return options;\n }\n async checkPermission() {\n var _a, _b;\n // Verificar disponibilidad de APIs - usando prefijo _ para variables no usadas\n const hasMediaDevices = !!((_a = navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.enumerateDevices);\n const _hasGetUserMedia = !!((_b = navigator.mediaDevices) === null || _b === void 0 ? void 0 : _b.getUserMedia); // Prefijo _\n if (!hasMediaDevices || !_hasGetUserMedia) {\n throw this.unavailable('Camera API no disponible en este navegador');\n }\n try {\n const devices = await navigator.mediaDevices.enumerateDevices();\n const videoDevices = devices.filter((device) => device.kind === 'videoinput');\n // No hay dispositivos de cámara\n if (videoDevices.length === 0) {\n return {\n granted: false,\n status: 'denied',\n details: 'No camera devices found',\n };\n }\n // Verificar si algún dispositivo tiene label (indica permiso)\n const hasPermission = videoDevices.some((device) => device.label && device.label.trim() !== '');\n // Determinar estado más preciso\n let status = 'denied';\n if (hasPermission) {\n status = 'granted';\n }\n else {\n // En web, sin intentar getUserMedia, asumimos que es la primera vez\n status = 'prompt';\n }\n return {\n granted: hasPermission,\n status,\n details: `Found ${videoDevices.length} camera device(s)`,\n };\n }\n catch (error) {\n console.error('Error checking camera permission:', error);\n return {\n granted: false,\n status: 'denied',\n details: error.message || 'Unknown error',\n };\n }\n }\n async requestPermission() {\n var _a;\n // Verificar getUserMedia específicamente para este método\n if (!((_a = navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.getUserMedia)) {\n throw this.unavailable('Camera API no disponible en este navegador');\n }\n try {\n // Intentar acceder a la cámara con configuración mínima\n const stream = await navigator.mediaDevices.getUserMedia({\n video: {\n width: { ideal: 1280 },\n height: { ideal: 720 },\n facingMode: { ideal: 'environment' },\n },\n audio: false,\n });\n // Limpiar recursos inmediatamente\n stream.getTracks().forEach((track) => {\n track.stop();\n });\n return {\n granted: true,\n status: 'granted',\n details: 'Permission granted successfully',\n };\n }\n catch (error) {\n console.error('Error requesting camera permission:', error);\n // Manejo específico de errores\n let status = 'denied';\n let details = error.message || 'Unknown error';\n if (error.name === 'NotAllowedError') {\n status = 'denied';\n details = 'User denied camera access';\n }\n else if (error.name === 'NotFoundError') {\n status = 'denied';\n details = 'No camera found';\n }\n else if (error.name === 'NotReadableError') {\n status = 'denied';\n details = 'Camera is already in use';\n }\n else if (error.name === 'OverconstrainedError') {\n status = 'denied';\n details = 'Camera constraints cannot be met';\n }\n else if (error.name === 'SecurityError') {\n status = 'denied';\n details = 'Camera access blocked by browser security settings';\n }\n else if (error.name === 'TypeError') {\n status = 'denied';\n details = 'Invalid constraints specified';\n }\n return {\n granted: false,\n status,\n details,\n };\n }\n }\n async checkAndRequestPermission() {\n try {\n // Primero verificar el estado actual\n const currentStatus = await this.checkPermission();\n // Si ya tiene permiso, retornar inmediatamente\n if (currentStatus.granted) {\n return currentStatus;\n }\n // Si no tiene permiso, solicitar\n return await this.requestPermission();\n }\n catch (error) {\n console.error('Error in checkAndRequestPermission:', error);\n return {\n granted: false,\n status: 'denied',\n details: 'Failed to check or request permission',\n };\n }\n }\n // Método adicional para verificar soporte de características\n async getCameraCapabilities() {\n var _a, _b;\n const hasMediaDevices = !!((_a = navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.enumerateDevices);\n const hasGetUserMedia = !!((_b = navigator.mediaDevices) === null || _b === void 0 ? void 0 : _b.getUserMedia);\n let hasCamera = false;\n if (hasMediaDevices || hasGetUserMedia) {\n try {\n const devices = await navigator.mediaDevices.enumerateDevices();\n hasCamera = devices.some((device) => device.kind === 'videoinput');\n }\n catch (_c) {\n hasCamera = false;\n }\n }\n return {\n hasCamera,\n isSecureContext: window.isSecureContext,\n userAgent: navigator.userAgent,\n };\n }\n //Camera Preview\n async startPreview() {\n console.warn('[CameraModule] startPreview is not supported on web');\n }\n async stopPreview() {\n console.warn('[CameraModule] stopPreview is not supported on web');\n }\n async hasFlash() {\n return false;\n }\n async toggleFlash(_enable) {\n console.log(_enable);\n console.warn('[CameraModule] toggleFlash is not supported on web ');\n }\n async checkGalleryPermission() {\n return {\n granted: true,\n status: 'granted',\n details: 'Web does not require gallery permission',\n };\n }\n async requestGalleryPermission() {\n return {\n granted: true,\n status: 'granted',\n details: 'Web does not require gallery permission',\n };\n }\n async checkAndRequestGalleryPermission() {\n return this.checkGalleryPermission();\n }\n /* Imagen */\n async pickImageBase64() {\n throw new Error('[CameraModule] pickImageBase64 is not supported on web');\n }\n async getLastGalleryImage() {\n throw new Error('[CameraModule] getLastGalleryImage is not supported on web');\n }\n async takePhotoBase64() {\n throw this.unavailable('Camera not available on web');\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;;AACK,MAAC,YAAY,GAAGA,mBAAc,CAAC,cAAc,EAAE;AACpD,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;AACnE,CAAC;;ACFM,MAAM,eAAe,SAASC,cAAS,CAAC;AAC/C,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE;AACxB,QAAQ,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;AACpC,QAAQ,OAAO,OAAO;AACtB,IAAI;AACJ,IAAI,MAAM,eAAe,GAAG;AAC5B,QAAQ,IAAI,EAAE,EAAE,EAAE;AAClB;AACA,QAAQ,MAAM,eAAe,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,gBAAgB,CAAC;AAC1H,QAAQ,MAAM,gBAAgB,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;AACxH,QAAQ,IAAI,CAAC,eAAe,IAAI,CAAC,gBAAgB,EAAE;AACnD,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,4CAA4C,CAAC;AAChF,QAAQ;AACR,QAAQ,IAAI;AACZ,YAAY,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,gBAAgB,EAAE;AAC3E,YAAY,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC;AACzF;AACA,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3C,gBAAgB,OAAO;AACvB,oBAAoB,OAAO,EAAE,KAAK;AAClC,oBAAoB,MAAM,EAAE,QAAQ;AACpC,oBAAoB,OAAO,EAAE,yBAAyB;AACtD,iBAAiB;AACjB,YAAY;AACZ;AACA,YAAY,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AAC3G;AACA,YAAY,IAAI,MAAM,GAAG,QAAQ;AACjC,YAAY,IAAI,aAAa,EAAE;AAC/B,gBAAgB,MAAM,GAAG,SAAS;AAClC,YAAY;AACZ,iBAAiB;AACjB;AACA,gBAAgB,MAAM,GAAG,QAAQ;AACjC,YAAY;AACZ,YAAY,OAAO;AACnB,gBAAgB,OAAO,EAAE,aAAa;AACtC,gBAAgB,MAAM;AACtB,gBAAgB,OAAO,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,iBAAiB,CAAC;AACxE,aAAa;AACb,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC;AACrE,YAAY,OAAO;AACnB,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,MAAM,EAAE,QAAQ;AAChC,gBAAgB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,eAAe;AACzD,aAAa;AACb,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,iBAAiB,GAAG;AAC9B,QAAQ,IAAI,EAAE;AACd;AACA,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE;AACnG,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,4CAA4C,CAAC;AAChF,QAAQ;AACR,QAAQ,IAAI;AACZ;AACA,YAAY,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC;AACrE,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AAC1C,oBAAoB,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;AAC1C,oBAAoB,UAAU,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;AACxD,iBAAiB;AACjB,gBAAgB,KAAK,EAAE,KAAK;AAC5B,aAAa,CAAC;AACd;AACA,YAAY,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAClD,gBAAgB,KAAK,CAAC,IAAI,EAAE;AAC5B,YAAY,CAAC,CAAC;AACd,YAAY,OAAO;AACnB,gBAAgB,OAAO,EAAE,IAAI;AAC7B,gBAAgB,MAAM,EAAE,SAAS;AACjC,gBAAgB,OAAO,EAAE,iCAAiC;AAC1D,aAAa;AACb,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC;AACvE;AACA,YAAY,IAAI,MAAM,GAAG,QAAQ;AACjC,YAAY,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,eAAe;AAC1D,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE;AAClD,gBAAgB,MAAM,GAAG,QAAQ;AACjC,gBAAgB,OAAO,GAAG,2BAA2B;AACrD,YAAY;AACZ,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE;AACrD,gBAAgB,MAAM,GAAG,QAAQ;AACjC,gBAAgB,OAAO,GAAG,iBAAiB;AAC3C,YAAY;AACZ,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE;AACxD,gBAAgB,MAAM,GAAG,QAAQ;AACjC,gBAAgB,OAAO,GAAG,0BAA0B;AACpD,YAAY;AACZ,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,EAAE;AAC5D,gBAAgB,MAAM,GAAG,QAAQ;AACjC,gBAAgB,OAAO,GAAG,kCAAkC;AAC5D,YAAY;AACZ,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE;AACrD,gBAAgB,MAAM,GAAG,QAAQ;AACjC,gBAAgB,OAAO,GAAG,oDAAoD;AAC9E,YAAY;AACZ,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;AACjD,gBAAgB,MAAM,GAAG,QAAQ;AACjC,gBAAgB,OAAO,GAAG,+BAA+B;AACzD,YAAY;AACZ,YAAY,OAAO;AACnB,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,MAAM;AACtB,gBAAgB,OAAO;AACvB,aAAa;AACb,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,yBAAyB,GAAG;AACtC,QAAQ,IAAI;AACZ;AACA,YAAY,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE;AAC9D;AACA,YAAY,IAAI,aAAa,CAAC,OAAO,EAAE;AACvC,gBAAgB,OAAO,aAAa;AACpC,YAAY;AACZ;AACA,YAAY,OAAO,MAAM,IAAI,CAAC,iBAAiB,EAAE;AACjD,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC;AACvE,YAAY,OAAO;AACnB,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,MAAM,EAAE,QAAQ;AAChC,gBAAgB,OAAO,EAAE,uCAAuC;AAChE,aAAa;AACb,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,MAAM,qBAAqB,GAAG;AAClC,QAAQ,IAAI,EAAE,EAAE,EAAE;AAClB,QAAQ,MAAM,eAAe,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,gBAAgB,CAAC;AAC1H,QAAQ,MAAM,eAAe,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC;AACtH,QAAQ,IAAI,SAAS,GAAG,KAAK;AAC7B,QAAQ,IAAI,eAAe,IAAI,eAAe,EAAE;AAChD,YAAY,IAAI;AAChB,gBAAgB,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,gBAAgB,EAAE;AAC/E,gBAAgB,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC;AAClF,YAAY;AACZ,YAAY,OAAO,EAAE,EAAE;AACvB,gBAAgB,SAAS,GAAG,KAAK;AACjC,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO;AACf,YAAY,SAAS;AACrB,YAAY,eAAe,EAAE,MAAM,CAAC,eAAe;AACnD,YAAY,SAAS,EAAE,SAAS,CAAC,SAAS;AAC1C,SAAS;AACT,IAAI;AACJ;AACA,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC;AAC3E,IAAI;AACJ,IAAI,MAAM,WAAW,GAAG;AACxB,QAAQ,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC;AAC1E,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,MAAM,WAAW,CAAC,OAAO,EAAE;AAC/B,QAAQ,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;AAC5B,QAAQ,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC;AAC3E,IAAI;AACJ,IAAI,MAAM,sBAAsB,GAAG;AACnC,QAAQ,OAAO;AACf,YAAY,OAAO,EAAE,IAAI;AACzB,YAAY,MAAM,EAAE,SAAS;AAC7B,YAAY,OAAO,EAAE,yCAAyC;AAC9D,SAAS;AACT,IAAI;AACJ,IAAI,MAAM,wBAAwB,GAAG;AACrC,QAAQ,OAAO;AACf,YAAY,OAAO,EAAE,IAAI;AACzB,YAAY,MAAM,EAAE,SAAS;AAC7B,YAAY,OAAO,EAAE,yCAAyC;AAC9D,SAAS;AACT,IAAI;AACJ,IAAI,MAAM,gCAAgC,GAAG;AAC7C,QAAQ,OAAO,IAAI,CAAC,sBAAsB,EAAE;AAC5C,IAAI;AACJ;AACA,IAAI,MAAM,eAAe,GAAG;AAC5B,QAAQ,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC;AACjF,IAAI;AACJ,IAAI,MAAM,mBAAmB,GAAG;AAChC,QAAQ,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC;AACrF,IAAI;AACJ,IAAI,MAAM,eAAe,GAAG;AAC5B,QAAQ,MAAM,IAAI,CAAC,WAAW,CAAC,6BAA6B,CAAC;AAC7D,IAAI;AACJ;;;;;;;;;"}
package/dist/plugin.js CHANGED
@@ -196,6 +196,9 @@ var capacitorCameraModule = (function (exports, core) {
196
196
  async getLastGalleryImage() {
197
197
  throw new Error('[CameraModule] getLastGalleryImage is not supported on web');
198
198
  }
199
+ async takePhotoBase64() {
200
+ throw this.unavailable('Camera not available on web');
201
+ }
199
202
  }
200
203
 
201
204
  var web = /*#__PURE__*/Object.freeze({
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst CameraModule = registerPlugin('CameraModule', {\n web: () => import('./web').then((m) => new m.CameraModuleWeb()),\n});\nexport * from './definitions';\nexport { CameraModule };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class CameraModuleWeb extends WebPlugin {\n async echo(options) {\n console.log('ECHO', options);\n return options;\n }\n async checkPermission() {\n var _a, _b;\n // Verificar disponibilidad de APIs - usando prefijo _ para variables no usadas\n const hasMediaDevices = !!((_a = navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.enumerateDevices);\n const _hasGetUserMedia = !!((_b = navigator.mediaDevices) === null || _b === void 0 ? void 0 : _b.getUserMedia); // Prefijo _\n if (!hasMediaDevices || !_hasGetUserMedia) {\n throw this.unavailable('Camera API no disponible en este navegador');\n }\n try {\n const devices = await navigator.mediaDevices.enumerateDevices();\n const videoDevices = devices.filter((device) => device.kind === 'videoinput');\n // No hay dispositivos de cámara\n if (videoDevices.length === 0) {\n return {\n granted: false,\n status: 'denied',\n details: 'No camera devices found',\n };\n }\n // Verificar si algún dispositivo tiene label (indica permiso)\n const hasPermission = videoDevices.some((device) => device.label && device.label.trim() !== '');\n // Determinar estado más preciso\n let status = 'denied';\n if (hasPermission) {\n status = 'granted';\n }\n else {\n // En web, sin intentar getUserMedia, asumimos que es la primera vez\n status = 'prompt';\n }\n return {\n granted: hasPermission,\n status,\n details: `Found ${videoDevices.length} camera device(s)`,\n };\n }\n catch (error) {\n console.error('Error checking camera permission:', error);\n return {\n granted: false,\n status: 'denied',\n details: error.message || 'Unknown error',\n };\n }\n }\n async requestPermission() {\n var _a;\n // Verificar getUserMedia específicamente para este método\n if (!((_a = navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.getUserMedia)) {\n throw this.unavailable('Camera API no disponible en este navegador');\n }\n try {\n // Intentar acceder a la cámara con configuración mínima\n const stream = await navigator.mediaDevices.getUserMedia({\n video: {\n width: { ideal: 1280 },\n height: { ideal: 720 },\n facingMode: { ideal: 'environment' },\n },\n audio: false,\n });\n // Limpiar recursos inmediatamente\n stream.getTracks().forEach((track) => {\n track.stop();\n });\n return {\n granted: true,\n status: 'granted',\n details: 'Permission granted successfully',\n };\n }\n catch (error) {\n console.error('Error requesting camera permission:', error);\n // Manejo específico de errores\n let status = 'denied';\n let details = error.message || 'Unknown error';\n if (error.name === 'NotAllowedError') {\n status = 'denied';\n details = 'User denied camera access';\n }\n else if (error.name === 'NotFoundError') {\n status = 'denied';\n details = 'No camera found';\n }\n else if (error.name === 'NotReadableError') {\n status = 'denied';\n details = 'Camera is already in use';\n }\n else if (error.name === 'OverconstrainedError') {\n status = 'denied';\n details = 'Camera constraints cannot be met';\n }\n else if (error.name === 'SecurityError') {\n status = 'denied';\n details = 'Camera access blocked by browser security settings';\n }\n else if (error.name === 'TypeError') {\n status = 'denied';\n details = 'Invalid constraints specified';\n }\n return {\n granted: false,\n status,\n details,\n };\n }\n }\n async checkAndRequestPermission() {\n try {\n // Primero verificar el estado actual\n const currentStatus = await this.checkPermission();\n // Si ya tiene permiso, retornar inmediatamente\n if (currentStatus.granted) {\n return currentStatus;\n }\n // Si no tiene permiso, solicitar\n return await this.requestPermission();\n }\n catch (error) {\n console.error('Error in checkAndRequestPermission:', error);\n return {\n granted: false,\n status: 'denied',\n details: 'Failed to check or request permission',\n };\n }\n }\n // Método adicional para verificar soporte de características\n async getCameraCapabilities() {\n var _a, _b;\n const hasMediaDevices = !!((_a = navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.enumerateDevices);\n const hasGetUserMedia = !!((_b = navigator.mediaDevices) === null || _b === void 0 ? void 0 : _b.getUserMedia);\n let hasCamera = false;\n if (hasMediaDevices || hasGetUserMedia) {\n try {\n const devices = await navigator.mediaDevices.enumerateDevices();\n hasCamera = devices.some((device) => device.kind === 'videoinput');\n }\n catch (_c) {\n hasCamera = false;\n }\n }\n return {\n hasCamera,\n isSecureContext: window.isSecureContext,\n userAgent: navigator.userAgent,\n };\n }\n //Camera Preview\n async startPreview() {\n console.warn('[CameraModule] startPreview is not supported on web');\n }\n async stopPreview() {\n console.warn('[CameraModule] stopPreview is not supported on web');\n }\n async hasFlash() {\n return false;\n }\n async toggleFlash(_enable) {\n console.log(_enable);\n console.warn('[CameraModule] toggleFlash is not supported on web ');\n }\n async checkGalleryPermission() {\n return {\n granted: true,\n status: 'granted',\n details: 'Web does not require gallery permission',\n };\n }\n async requestGalleryPermission() {\n return {\n granted: true,\n status: 'granted',\n details: 'Web does not require gallery permission',\n };\n }\n async checkAndRequestGalleryPermission() {\n return this.checkGalleryPermission();\n }\n /* Imagen */\n async pickImageBase64() {\n throw new Error('[CameraModule] pickImageBase64 is not supported on web');\n }\n async getLastGalleryImage() {\n throw new Error('[CameraModule] getLastGalleryImage is not supported on web');\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst CameraModule = registerPlugin('CameraModule', {\n web: () => import('./web').then((m) => new m.CameraModuleWeb()),\n});\nexport * from './definitions';\nexport { CameraModule };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class CameraModuleWeb extends WebPlugin {\n async echo(options) {\n console.log('ECHO', options);\n return options;\n }\n async checkPermission() {\n var _a, _b;\n // Verificar disponibilidad de APIs - usando prefijo _ para variables no usadas\n const hasMediaDevices = !!((_a = navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.enumerateDevices);\n const _hasGetUserMedia = !!((_b = navigator.mediaDevices) === null || _b === void 0 ? void 0 : _b.getUserMedia); // Prefijo _\n if (!hasMediaDevices || !_hasGetUserMedia) {\n throw this.unavailable('Camera API no disponible en este navegador');\n }\n try {\n const devices = await navigator.mediaDevices.enumerateDevices();\n const videoDevices = devices.filter((device) => device.kind === 'videoinput');\n // No hay dispositivos de cámara\n if (videoDevices.length === 0) {\n return {\n granted: false,\n status: 'denied',\n details: 'No camera devices found',\n };\n }\n // Verificar si algún dispositivo tiene label (indica permiso)\n const hasPermission = videoDevices.some((device) => device.label && device.label.trim() !== '');\n // Determinar estado más preciso\n let status = 'denied';\n if (hasPermission) {\n status = 'granted';\n }\n else {\n // En web, sin intentar getUserMedia, asumimos que es la primera vez\n status = 'prompt';\n }\n return {\n granted: hasPermission,\n status,\n details: `Found ${videoDevices.length} camera device(s)`,\n };\n }\n catch (error) {\n console.error('Error checking camera permission:', error);\n return {\n granted: false,\n status: 'denied',\n details: error.message || 'Unknown error',\n };\n }\n }\n async requestPermission() {\n var _a;\n // Verificar getUserMedia específicamente para este método\n if (!((_a = navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.getUserMedia)) {\n throw this.unavailable('Camera API no disponible en este navegador');\n }\n try {\n // Intentar acceder a la cámara con configuración mínima\n const stream = await navigator.mediaDevices.getUserMedia({\n video: {\n width: { ideal: 1280 },\n height: { ideal: 720 },\n facingMode: { ideal: 'environment' },\n },\n audio: false,\n });\n // Limpiar recursos inmediatamente\n stream.getTracks().forEach((track) => {\n track.stop();\n });\n return {\n granted: true,\n status: 'granted',\n details: 'Permission granted successfully',\n };\n }\n catch (error) {\n console.error('Error requesting camera permission:', error);\n // Manejo específico de errores\n let status = 'denied';\n let details = error.message || 'Unknown error';\n if (error.name === 'NotAllowedError') {\n status = 'denied';\n details = 'User denied camera access';\n }\n else if (error.name === 'NotFoundError') {\n status = 'denied';\n details = 'No camera found';\n }\n else if (error.name === 'NotReadableError') {\n status = 'denied';\n details = 'Camera is already in use';\n }\n else if (error.name === 'OverconstrainedError') {\n status = 'denied';\n details = 'Camera constraints cannot be met';\n }\n else if (error.name === 'SecurityError') {\n status = 'denied';\n details = 'Camera access blocked by browser security settings';\n }\n else if (error.name === 'TypeError') {\n status = 'denied';\n details = 'Invalid constraints specified';\n }\n return {\n granted: false,\n status,\n details,\n };\n }\n }\n async checkAndRequestPermission() {\n try {\n // Primero verificar el estado actual\n const currentStatus = await this.checkPermission();\n // Si ya tiene permiso, retornar inmediatamente\n if (currentStatus.granted) {\n return currentStatus;\n }\n // Si no tiene permiso, solicitar\n return await this.requestPermission();\n }\n catch (error) {\n console.error('Error in checkAndRequestPermission:', error);\n return {\n granted: false,\n status: 'denied',\n details: 'Failed to check or request permission',\n };\n }\n }\n // Método adicional para verificar soporte de características\n async getCameraCapabilities() {\n var _a, _b;\n const hasMediaDevices = !!((_a = navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.enumerateDevices);\n const hasGetUserMedia = !!((_b = navigator.mediaDevices) === null || _b === void 0 ? void 0 : _b.getUserMedia);\n let hasCamera = false;\n if (hasMediaDevices || hasGetUserMedia) {\n try {\n const devices = await navigator.mediaDevices.enumerateDevices();\n hasCamera = devices.some((device) => device.kind === 'videoinput');\n }\n catch (_c) {\n hasCamera = false;\n }\n }\n return {\n hasCamera,\n isSecureContext: window.isSecureContext,\n userAgent: navigator.userAgent,\n };\n }\n //Camera Preview\n async startPreview() {\n console.warn('[CameraModule] startPreview is not supported on web');\n }\n async stopPreview() {\n console.warn('[CameraModule] stopPreview is not supported on web');\n }\n async hasFlash() {\n return false;\n }\n async toggleFlash(_enable) {\n console.log(_enable);\n console.warn('[CameraModule] toggleFlash is not supported on web ');\n }\n async checkGalleryPermission() {\n return {\n granted: true,\n status: 'granted',\n details: 'Web does not require gallery permission',\n };\n }\n async requestGalleryPermission() {\n return {\n granted: true,\n status: 'granted',\n details: 'Web does not require gallery permission',\n };\n }\n async checkAndRequestGalleryPermission() {\n return this.checkGalleryPermission();\n }\n /* Imagen */\n async pickImageBase64() {\n throw new Error('[CameraModule] pickImageBase64 is not supported on web');\n }\n async getLastGalleryImage() {\n throw new Error('[CameraModule] getLastGalleryImage is not supported on web');\n }\n async takePhotoBase64() {\n throw this.unavailable('Camera not available on web');\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "capacitor-camera-module",
3
- "version": "0.0.24",
3
+ "version": "0.0.26",
4
4
  "description": "Plugin to request permissiones view camera take phots",
5
5
  "main": "dist/plugin.cjs.js",
6
6
  "module": "dist/esm/index.js",