capacitor-camera-module 0.0.17 → 0.0.19

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
@@ -22,6 +22,11 @@ npx cap sync
22
22
  * [`stopPreview()`](#stoppreview)
23
23
  * [`toggleFlash(...)`](#toggleflash)
24
24
  * [`hasFlash()`](#hasflash)
25
+ * [`checkGalleryPermission()`](#checkgallerypermission)
26
+ * [`requestGalleryPermission()`](#requestgallerypermission)
27
+ * [`checkAndRequestGalleryPermission()`](#checkandrequestgallerypermission)
28
+ * [`pickImageBase64()`](#pickimagebase64)
29
+ * [`getLastGalleryImage()`](#getlastgalleryimage)
25
30
  * [Interfaces](#interfaces)
26
31
 
27
32
  </docgen-index>
@@ -130,6 +135,61 @@ hasFlash() => Promise<boolean>
130
135
  --------------------
131
136
 
132
137
 
138
+ ### checkGalleryPermission()
139
+
140
+ ```typescript
141
+ checkGalleryPermission() => Promise<PermissionResult>
142
+ ```
143
+
144
+ **Returns:** <code>Promise&lt;<a href="#permissionresult">PermissionResult</a>&gt;</code>
145
+
146
+ --------------------
147
+
148
+
149
+ ### requestGalleryPermission()
150
+
151
+ ```typescript
152
+ requestGalleryPermission() => Promise<PermissionResult>
153
+ ```
154
+
155
+ **Returns:** <code>Promise&lt;<a href="#permissionresult">PermissionResult</a>&gt;</code>
156
+
157
+ --------------------
158
+
159
+
160
+ ### checkAndRequestGalleryPermission()
161
+
162
+ ```typescript
163
+ checkAndRequestGalleryPermission() => Promise<PermissionResult>
164
+ ```
165
+
166
+ **Returns:** <code>Promise&lt;<a href="#permissionresult">PermissionResult</a>&gt;</code>
167
+
168
+ --------------------
169
+
170
+
171
+ ### pickImageBase64()
172
+
173
+ ```typescript
174
+ pickImageBase64() => Promise<PickImageBase64Result>
175
+ ```
176
+
177
+ **Returns:** <code>Promise&lt;<a href="#pickimagebase64result">PickImageBase64Result</a>&gt;</code>
178
+
179
+ --------------------
180
+
181
+
182
+ ### getLastGalleryImage()
183
+
184
+ ```typescript
185
+ getLastGalleryImage() => Promise<LastGalleryImageResult>
186
+ ```
187
+
188
+ **Returns:** <code>Promise&lt;<a href="#lastgalleryimageresult">LastGalleryImageResult</a>&gt;</code>
189
+
190
+ --------------------
191
+
192
+
133
193
  ### Interfaces
134
194
 
135
195
 
@@ -150,4 +210,28 @@ hasFlash() => Promise<boolean>
150
210
  | **`isSecureContext`** | <code>boolean</code> |
151
211
  | **`userAgent`** | <code>string</code> |
152
212
 
213
+
214
+ #### PermissionResult
215
+
216
+ | Prop | Type |
217
+ | ------------- | ---------------------------------------------- |
218
+ | **`granted`** | <code>boolean</code> |
219
+ | **`status`** | <code>'granted' \| 'denied' \| 'prompt'</code> |
220
+ | **`details`** | <code>string</code> |
221
+
222
+
223
+ #### PickImageBase64Result
224
+
225
+ | Prop | Type |
226
+ | -------------- | ------------------- |
227
+ | **`base64`** | <code>string</code> |
228
+ | **`mimeType`** | <code>string</code> |
229
+
230
+
231
+ #### LastGalleryImageResult
232
+
233
+ | Prop | Type |
234
+ | ------------ | ------------------- |
235
+ | **`base64`** | <code>string</code> |
236
+
153
237
  </docgen-api>
@@ -4,10 +4,15 @@
4
4
  <!-- Permiso de cámara -->
5
5
  <uses-permission android:name="android.permission.CAMERA" />
6
6
 
7
+
7
8
  <!-- Características opcionales -->
8
9
  <uses-feature android:name="android.hardware.camera" android:required="false" />
9
10
  <uses-feature android:name="android.hardware.camera.front" android:required="false" />
10
11
  <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
11
12
  <uses-feature android:name="android.hardware.camera.any" android:required="false" />
12
13
 
14
+ <!-- Galeria -->
15
+ <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
16
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
17
+
13
18
  </manifest>
@@ -28,15 +28,43 @@ import com.google.common.util.concurrent.ListenableFuture;
28
28
 
29
29
  import androidx.camera.core.Camera;
30
30
 
31
+ import android.app.Activity;
32
+ import android.content.Intent;
33
+ import android.net.Uri;
34
+ import android.provider.MediaStore;
35
+ import android.util.Base64;
36
+
37
+ import androidx.activity.result.ActivityResultLauncher;
38
+ import androidx.activity.result.contract.ActivityResultContracts;
39
+
40
+ import android.database.Cursor;
41
+ import android.content.ContentUris;
42
+
43
+ import java.io.ByteArrayOutputStream;
44
+ import java.io.InputStream;
45
+
46
+ import android.graphics.Bitmap;
47
+ import android.graphics.BitmapFactory;
48
+ import android.graphics.Matrix;
49
+
50
+
31
51
  @CapacitorPlugin(
32
52
  name = "CameraModule",
33
53
  permissions = {
34
54
  @Permission(
35
55
  alias = "camera",
36
56
  strings = { Manifest.permission.CAMERA }
57
+ ),
58
+ @Permission(
59
+ alias = "gallery",
60
+ strings = {
61
+ Manifest.permission.READ_MEDIA_IMAGES,
62
+ Manifest.permission.READ_EXTERNAL_STORAGE
63
+ }
37
64
  )
38
65
  }
39
66
  )
67
+
40
68
  public class CameraModulePlugin extends Plugin {
41
69
 
42
70
  private PreviewView previewView;
@@ -45,10 +73,44 @@ public class CameraModulePlugin extends Plugin {
45
73
 
46
74
  private Camera camera;
47
75
 
76
+ private ActivityResultLauncher<Intent> galleryLauncher;
77
+ private PluginCall savedCall;
78
+
48
79
  @Override
49
80
  public void load() {
50
81
  super.load();
51
82
  getBridge().getWebView().setBackgroundColor(0x00000000);
83
+
84
+ galleryLauncher =
85
+ bridge.registerForActivityResult(
86
+ new ActivityResultContracts.StartActivityForResult(),
87
+ result -> {
88
+ if (savedCall == null) return;
89
+
90
+ if (result.getResultCode() == Activity.RESULT_OK && result.getData() != null) {
91
+ Uri uri = result.getData().getData();
92
+
93
+ try {
94
+ String base64 = uriToBase64(uri);
95
+ String mimeType = getContext()
96
+ .getContentResolver()
97
+ .getType(uri);
98
+
99
+ JSObject ret = new JSObject();
100
+ ret.put("base64", base64);
101
+ ret.put("mimeType", mimeType);
102
+
103
+ savedCall.resolve(ret);
104
+ } catch (Exception e) {
105
+ savedCall.reject("Error reading image", e);
106
+ }
107
+ } else {
108
+ savedCall.reject("Image selection canceled");
109
+ }
110
+
111
+ savedCall = null;
112
+ }
113
+ );
52
114
  }
53
115
 
54
116
  @PluginMethod
@@ -240,5 +302,196 @@ public class CameraModulePlugin extends Plugin {
240
302
  call.resolve(ret);
241
303
  }
242
304
 
305
+ @PluginMethod
306
+ public void pickImageBase64(PluginCall call) {
307
+
308
+ if (getPermissionState("gallery") != PermissionState.GRANTED) {
309
+ call.reject("Gallery permission not granted");
310
+ return;
311
+ }
312
+
313
+ savedCall = call;
314
+
315
+ Intent intent = new Intent(
316
+ Intent.ACTION_PICK,
317
+ MediaStore.Images.Media.EXTERNAL_CONTENT_URI
318
+ );
319
+ intent.setType("image/*");
320
+
321
+ galleryLauncher.launch(intent);
322
+ }
323
+
324
+
325
+ private String uriToBase64(Uri uri) throws Exception {
326
+ InputStream inputStream =
327
+ getContext().getContentResolver().openInputStream(uri);
328
+
329
+ if (inputStream == null) {
330
+ throw new Exception("Unable to open input stream");
331
+ }
332
+
333
+ // 1️⃣ Decodificar imagen
334
+ Bitmap originalBitmap = BitmapFactory.decodeStream(inputStream);
335
+ inputStream.close();
336
+
337
+ if (originalBitmap == null) {
338
+ throw new Exception("Unable to decode bitmap");
339
+ }
340
+
341
+ // 2️⃣ Redimensionar (máx 1024px)
342
+ Bitmap resizedBitmap = resizeBitmap(originalBitmap, 1024);
343
+
344
+ // 3️⃣ Comprimir a JPEG calidad 80
345
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
346
+ resizedBitmap.compress(Bitmap.CompressFormat.JPEG, 80, outputStream);
347
+
348
+ byte[] imageBytes = outputStream.toByteArray();
349
+
350
+ // 4️⃣ Limpiar memoria
351
+ originalBitmap.recycle();
352
+ resizedBitmap.recycle();
353
+
354
+ // 5️⃣ Base64
355
+ return Base64.encodeToString(imageBytes, Base64.NO_WRAP);
356
+ }
357
+
358
+
359
+ private Bitmap resizeBitmap(Bitmap bitmap, int maxSize) {
360
+ int width = bitmap.getWidth();
361
+ int height = bitmap.getHeight();
362
+
363
+ float ratio = (float) width / height;
364
+
365
+ if (width > height) {
366
+ if (width <= maxSize) return bitmap;
367
+ width = maxSize;
368
+ height = Math.round(width / ratio);
369
+ } else {
370
+ if (height <= maxSize) return bitmap;
371
+ height = maxSize;
372
+ width = Math.round(height * ratio);
373
+ }
374
+
375
+ return Bitmap.createScaledBitmap(bitmap, width, height, true);
376
+ }
377
+
378
+ //Plugin request permission gallery
379
+ @PluginMethod
380
+ public void checkGalleryPermission(PluginCall call) {
381
+ JSObject ret = new JSObject();
382
+
383
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
384
+ ret.put("granted", true);
385
+ ret.put("status", "granted");
386
+ ret.put("details", "Pre-Marshmallow, granted at install");
387
+ call.resolve(ret);
388
+ return;
389
+ }
390
+
391
+ boolean granted;
392
+
393
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
394
+ granted =
395
+ ContextCompat.checkSelfPermission(
396
+ getContext(),
397
+ Manifest.permission.READ_MEDIA_IMAGES
398
+ ) == PackageManager.PERMISSION_GRANTED;
399
+ } else {
400
+ granted =
401
+ ContextCompat.checkSelfPermission(
402
+ getContext(),
403
+ Manifest.permission.READ_EXTERNAL_STORAGE
404
+ ) == PackageManager.PERMISSION_GRANTED;
405
+ }
406
+
407
+ ret.put("granted", granted);
408
+ ret.put("status", granted ? "granted" : "prompt");
409
+ ret.put("details", "Android SDK " + Build.VERSION.SDK_INT);
410
+
411
+ call.resolve(ret);
412
+ }
413
+
414
+ @PluginMethod
415
+ public void requestGalleryPermission(PluginCall call) {
416
+ if (getPermissionState("gallery") != PermissionState.GRANTED) {
417
+ requestPermissionForAlias("gallery", call, "galleryPermissionCallback");
418
+ } else {
419
+ JSObject ret = new JSObject();
420
+ ret.put("granted", true);
421
+ ret.put("status", "granted");
422
+ ret.put("details", "Already granted");
423
+ call.resolve(ret);
424
+ }
425
+ }
426
+
427
+ @PermissionCallback
428
+ private void galleryPermissionCallback(PluginCall call) {
429
+ JSObject ret = new JSObject();
430
+ boolean granted = getPermissionState("gallery") == PermissionState.GRANTED;
431
+
432
+ ret.put("granted", granted);
433
+ ret.put("status", granted ? "granted" : "denied");
434
+ ret.put("details", "Permission request completed");
435
+
436
+ call.resolve(ret);
437
+ }
438
+
439
+ @PluginMethod
440
+ public void checkAndRequestGalleryPermission(PluginCall call) {
441
+ if (getPermissionState("gallery") == PermissionState.GRANTED) {
442
+ JSObject ret = new JSObject();
443
+ ret.put("granted", true);
444
+ ret.put("status", "granted");
445
+ ret.put("details", "Already granted");
446
+ call.resolve(ret);
447
+ } else {
448
+ requestGalleryPermission(call);
449
+ }
450
+ }
451
+
452
+ @PluginMethod
453
+ public void getLastGalleryImage(PluginCall call) {
454
+
455
+ if (getPermissionState("gallery") != PermissionState.GRANTED) {
456
+ call.reject("Gallery permission not granted");
457
+ return;
458
+ }
459
+
460
+ Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
461
+
462
+ String[] projection = {
463
+ MediaStore.Images.Media._ID
464
+ };
465
+
466
+ String sortOrder = MediaStore.Images.Media.DATE_ADDED + " DESC";
467
+
468
+ try (Cursor cursor = getContext().getContentResolver().query(
469
+ uri,
470
+ projection,
471
+ null,
472
+ null,
473
+ sortOrder
474
+ )) {
475
+ if (cursor != null && cursor.moveToFirst()) {
476
+ long id = cursor.getLong(0);
477
+ Uri imageUri = ContentUris.withAppendedId(uri, id);
478
+
479
+ String base64 = uriToBase64(imageUri);
480
+
481
+ JSObject ret = new JSObject();
482
+ ret.put("base64", base64);
483
+ call.resolve(ret);
484
+ } else {
485
+ call.reject("No images found");
486
+ }
487
+ } catch (Exception e) {
488
+ call.reject("Error fetching last image", e);
489
+ }
490
+ }
491
+
492
+
493
+
494
+
495
+
243
496
 
244
497
  }
package/dist/docs.json CHANGED
@@ -114,6 +114,66 @@
114
114
  "docs": "",
115
115
  "complexTypes": [],
116
116
  "slug": "hasflash"
117
+ },
118
+ {
119
+ "name": "checkGalleryPermission",
120
+ "signature": "() => Promise<PermissionResult>",
121
+ "parameters": [],
122
+ "returns": "Promise<PermissionResult>",
123
+ "tags": [],
124
+ "docs": "",
125
+ "complexTypes": [
126
+ "PermissionResult"
127
+ ],
128
+ "slug": "checkgallerypermission"
129
+ },
130
+ {
131
+ "name": "requestGalleryPermission",
132
+ "signature": "() => Promise<PermissionResult>",
133
+ "parameters": [],
134
+ "returns": "Promise<PermissionResult>",
135
+ "tags": [],
136
+ "docs": "",
137
+ "complexTypes": [
138
+ "PermissionResult"
139
+ ],
140
+ "slug": "requestgallerypermission"
141
+ },
142
+ {
143
+ "name": "checkAndRequestGalleryPermission",
144
+ "signature": "() => Promise<PermissionResult>",
145
+ "parameters": [],
146
+ "returns": "Promise<PermissionResult>",
147
+ "tags": [],
148
+ "docs": "",
149
+ "complexTypes": [
150
+ "PermissionResult"
151
+ ],
152
+ "slug": "checkandrequestgallerypermission"
153
+ },
154
+ {
155
+ "name": "pickImageBase64",
156
+ "signature": "() => Promise<PickImageBase64Result>",
157
+ "parameters": [],
158
+ "returns": "Promise<PickImageBase64Result>",
159
+ "tags": [],
160
+ "docs": "",
161
+ "complexTypes": [
162
+ "PickImageBase64Result"
163
+ ],
164
+ "slug": "pickimagebase64"
165
+ },
166
+ {
167
+ "name": "getLastGalleryImage",
168
+ "signature": "() => Promise<LastGalleryImageResult>",
169
+ "parameters": [],
170
+ "returns": "Promise<LastGalleryImageResult>",
171
+ "tags": [],
172
+ "docs": "",
173
+ "complexTypes": [
174
+ "LastGalleryImageResult"
175
+ ],
176
+ "slug": "getlastgalleryimage"
117
177
  }
118
178
  ],
119
179
  "properties": []
@@ -178,6 +238,75 @@
178
238
  "type": "string"
179
239
  }
180
240
  ]
241
+ },
242
+ {
243
+ "name": "PermissionResult",
244
+ "slug": "permissionresult",
245
+ "docs": "",
246
+ "tags": [],
247
+ "methods": [],
248
+ "properties": [
249
+ {
250
+ "name": "granted",
251
+ "tags": [],
252
+ "docs": "",
253
+ "complexTypes": [],
254
+ "type": "boolean"
255
+ },
256
+ {
257
+ "name": "status",
258
+ "tags": [],
259
+ "docs": "",
260
+ "complexTypes": [],
261
+ "type": "'granted' | 'denied' | 'prompt'"
262
+ },
263
+ {
264
+ "name": "details",
265
+ "tags": [],
266
+ "docs": "",
267
+ "complexTypes": [],
268
+ "type": "string | undefined"
269
+ }
270
+ ]
271
+ },
272
+ {
273
+ "name": "PickImageBase64Result",
274
+ "slug": "pickimagebase64result",
275
+ "docs": "",
276
+ "tags": [],
277
+ "methods": [],
278
+ "properties": [
279
+ {
280
+ "name": "base64",
281
+ "tags": [],
282
+ "docs": "",
283
+ "complexTypes": [],
284
+ "type": "string"
285
+ },
286
+ {
287
+ "name": "mimeType",
288
+ "tags": [],
289
+ "docs": "",
290
+ "complexTypes": [],
291
+ "type": "string | undefined"
292
+ }
293
+ ]
294
+ },
295
+ {
296
+ "name": "LastGalleryImageResult",
297
+ "slug": "lastgalleryimageresult",
298
+ "docs": "",
299
+ "tags": [],
300
+ "methods": [],
301
+ "properties": [
302
+ {
303
+ "name": "base64",
304
+ "tags": [],
305
+ "docs": "",
306
+ "complexTypes": [],
307
+ "type": "string"
308
+ }
309
+ ]
181
310
  }
182
311
  ],
183
312
  "enums": [],
@@ -12,6 +12,11 @@ export interface CameraModulePlugin {
12
12
  stopPreview(): Promise<void>;
13
13
  toggleFlash(enable: boolean): Promise<void>;
14
14
  hasFlash(): Promise<boolean>;
15
+ checkGalleryPermission(): Promise<PermissionResult>;
16
+ requestGalleryPermission(): Promise<PermissionResult>;
17
+ checkAndRequestGalleryPermission(): Promise<PermissionResult>;
18
+ pickImageBase64(): Promise<PickImageBase64Result>;
19
+ getLastGalleryImage(): Promise<LastGalleryImageResult>;
15
20
  }
16
21
  export interface PermissionStatus {
17
22
  granted: boolean;
@@ -23,3 +28,15 @@ export interface CameraCapabilities {
23
28
  isSecureContext: boolean;
24
29
  userAgent: string;
25
30
  }
31
+ export interface PermissionResult {
32
+ granted: boolean;
33
+ status: 'granted' | 'denied' | 'prompt';
34
+ details?: string;
35
+ }
36
+ export interface PickImageBase64Result {
37
+ base64: string;
38
+ mimeType?: string;
39
+ }
40
+ export interface LastGalleryImageResult {
41
+ base64: string;
42
+ }
@@ -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\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}"]}
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"]}
package/dist/esm/web.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { WebPlugin } from '@capacitor/core';
2
- import type { CameraModulePlugin, PermissionStatus } from './definitions';
2
+ import type { CameraModulePlugin, PermissionStatus, PickImageBase64Result, PermissionResult } from './definitions';
3
3
  export declare class CameraModuleWeb extends WebPlugin implements CameraModulePlugin {
4
4
  echo(options: {
5
5
  value: string;
@@ -18,4 +18,11 @@ export declare class CameraModuleWeb extends WebPlugin implements CameraModulePl
18
18
  stopPreview(): Promise<void>;
19
19
  hasFlash(): Promise<boolean>;
20
20
  toggleFlash(_enable: boolean): Promise<void>;
21
+ checkGalleryPermission(): Promise<PermissionResult>;
22
+ requestGalleryPermission(): Promise<PermissionResult>;
23
+ checkAndRequestGalleryPermission(): Promise<PermissionResult>;
24
+ pickImageBase64(): Promise<PickImageBase64Result>;
25
+ getLastGalleryImage(): Promise<{
26
+ base64: string;
27
+ }>;
21
28
  }
package/dist/esm/web.js CHANGED
@@ -166,5 +166,29 @@ export class CameraModuleWeb extends WebPlugin {
166
166
  console.log(_enable);
167
167
  console.warn('[CameraModule] toggleFlash is not supported on web ');
168
168
  }
169
+ async checkGalleryPermission() {
170
+ return {
171
+ granted: true,
172
+ status: 'granted',
173
+ details: 'Web does not require gallery permission',
174
+ };
175
+ }
176
+ async requestGalleryPermission() {
177
+ return {
178
+ granted: true,
179
+ status: 'granted',
180
+ details: 'Web does not require gallery permission',
181
+ };
182
+ }
183
+ async checkAndRequestGalleryPermission() {
184
+ return this.checkGalleryPermission();
185
+ }
186
+ /* Imagen */
187
+ async pickImageBase64() {
188
+ throw new Error('[CameraModule] pickImageBase64 is not supported on web');
189
+ }
190
+ async getLastGalleryImage() {
191
+ throw new Error('[CameraModule] getLastGalleryImage is not supported on web');
192
+ }
169
193
  }
170
194
  //# 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 } 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}\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"]}
@@ -173,6 +173,30 @@ class CameraModuleWeb extends core.WebPlugin {
173
173
  console.log(_enable);
174
174
  console.warn('[CameraModule] toggleFlash is not supported on web ');
175
175
  }
176
+ async checkGalleryPermission() {
177
+ return {
178
+ granted: true,
179
+ status: 'granted',
180
+ details: 'Web does not require gallery permission',
181
+ };
182
+ }
183
+ async requestGalleryPermission() {
184
+ return {
185
+ granted: true,
186
+ status: 'granted',
187
+ details: 'Web does not require gallery permission',
188
+ };
189
+ }
190
+ async checkAndRequestGalleryPermission() {
191
+ return this.checkGalleryPermission();
192
+ }
193
+ /* Imagen */
194
+ async pickImageBase64() {
195
+ throw new Error('[CameraModule] pickImageBase64 is not supported on web');
196
+ }
197
+ async getLastGalleryImage() {
198
+ throw new Error('[CameraModule] getLastGalleryImage is not supported on web');
199
+ }
176
200
  }
177
201
 
178
202
  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}\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}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
package/dist/plugin.js CHANGED
@@ -172,6 +172,30 @@ var capacitorCameraModule = (function (exports, core) {
172
172
  console.log(_enable);
173
173
  console.warn('[CameraModule] toggleFlash is not supported on web ');
174
174
  }
175
+ async checkGalleryPermission() {
176
+ return {
177
+ granted: true,
178
+ status: 'granted',
179
+ details: 'Web does not require gallery permission',
180
+ };
181
+ }
182
+ async requestGalleryPermission() {
183
+ return {
184
+ granted: true,
185
+ status: 'granted',
186
+ details: 'Web does not require gallery permission',
187
+ };
188
+ }
189
+ async checkAndRequestGalleryPermission() {
190
+ return this.checkGalleryPermission();
191
+ }
192
+ /* Imagen */
193
+ async pickImageBase64() {
194
+ throw new Error('[CameraModule] pickImageBase64 is not supported on web');
195
+ }
196
+ async getLastGalleryImage() {
197
+ throw new Error('[CameraModule] getLastGalleryImage is not supported on web');
198
+ }
175
199
  }
176
200
 
177
201
  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}\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}\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.17",
3
+ "version": "0.0.19",
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",