idmission-web-sdk 2.2.39 → 2.2.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/sdk2.esm.js CHANGED
@@ -203,7 +203,7 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
203
203
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
204
204
  };
205
205
 
206
- var webSdkVersion = '2.2.39';
206
+ var webSdkVersion = '2.2.41';
207
207
 
208
208
  function getPlatform() {
209
209
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -3368,7 +3368,7 @@ var createCameraStore = function createCameraStore(config) {
3368
3368
  },
3369
3369
  requestCameraAccess: function requestCameraAccess() {
3370
3370
  return __awaiter(this, void 0, void 0, function () {
3371
- var _a, videoRef, releaseCameraAccess, preferFrontFacingCamera, preferIphoneContinuityCamera, iphoneContinuityCameraDenied, availableCameras, selectedCamera, platform_1, iphoneContinuityCamera, constraints, stream, e_1, iphoneContinuityCameraAvailable_1, handleStreamEnded_1, camera, e_3;
3371
+ var _a, videoRef, releaseCameraAccess, preferFrontFacingCamera, preferIphoneContinuityCamera, iphoneContinuityCameraDenied, availableCameras, selectedCamera, platform_1, iphoneContinuityCamera, constraints, stream_1, e_1, iphoneContinuityCameraAvailable_1, handleStreamEnded, videoTrack_1, camera_1, e_3;
3372
3372
  var _b, _c, _d;
3373
3373
  return __generator(this, function (_e) {
3374
3374
  switch (_e.label) {
@@ -3449,14 +3449,14 @@ var createCameraStore = function createCameraStore(config) {
3449
3449
  max: config.maxFps
3450
3450
  };
3451
3451
  }
3452
- stream = null;
3452
+ stream_1 = null;
3453
3453
  _e.label = 3;
3454
3454
  case 3:
3455
3455
  _e.trys.push([3, 5,, 6]);
3456
3456
  debug('obtaining camera access with constraints', constraints);
3457
3457
  return [4 /*yield*/, navigator.mediaDevices.getUserMedia(constraints)];
3458
3458
  case 4:
3459
- stream = _e.sent();
3459
+ stream_1 = _e.sent();
3460
3460
  return [3 /*break*/, 6];
3461
3461
  case 5:
3462
3462
  e_1 = _e.sent();
@@ -3475,7 +3475,7 @@ var createCameraStore = function createCameraStore(config) {
3475
3475
  }
3476
3476
  return [3 /*break*/, 6];
3477
3477
  case 6:
3478
- if (!!stream) return [3 /*break*/, 10];
3478
+ if (!!stream_1) return [3 /*break*/, 10];
3479
3479
  _e.label = 7;
3480
3480
  case 7:
3481
3481
  _e.trys.push([7, 9,, 10]);
@@ -3484,7 +3484,7 @@ var createCameraStore = function createCameraStore(config) {
3484
3484
  video: true
3485
3485
  })];
3486
3486
  case 8:
3487
- stream = _e.sent();
3487
+ stream_1 = _e.sent();
3488
3488
  debug('opened stream with no width and height constraints');
3489
3489
  return [3 /*break*/, 10];
3490
3490
  case 9:
@@ -3492,13 +3492,13 @@ var createCameraStore = function createCameraStore(config) {
3492
3492
  debug('cannot open stream at all');
3493
3493
  return [3 /*break*/, 10];
3494
3494
  case 10:
3495
- if (!stream) {
3495
+ if (!stream_1) {
3496
3496
  error('failed to open camera');
3497
3497
  throw new Error('failed to open camera');
3498
3498
  }
3499
3499
  debug('camera access granted with constraints', constraints);
3500
3500
  iphoneContinuityCameraAvailable_1 = get().iphoneContinuityCameraAvailable;
3501
- handleStreamEnded_1 = function handleStreamEnded_1() {
3501
+ handleStreamEnded = function handleStreamEnded() {
3502
3502
  if (iphoneContinuityCameraAvailable_1 && preferIphoneContinuityCamera) {
3503
3503
  debug('someone unplugged the continuity camera');
3504
3504
  releaseCameraAccess();
@@ -3519,19 +3519,26 @@ var createCameraStore = function createCameraStore(config) {
3519
3519
  });
3520
3520
  }
3521
3521
  };
3522
- (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.addEventListener('ended', handleStreamEnded_1);
3523
- stream.getVideoTracks().forEach(function (track) {
3524
- track.onended = handleStreamEnded_1;
3525
- track.onmute = handleStreamEnded_1;
3526
- });
3527
- camera = obtainCameraAccess(stream, selectedCamera.label, videoRef.current);
3528
- set({
3529
- camera: camera,
3530
- cameraReady: true,
3531
- cameraAccessDenied: false,
3532
- isRearFacing: camera.isRearFacing,
3533
- videoStream: stream
3534
- });
3522
+ (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.addEventListener('ended', handleStreamEnded);
3523
+ videoTrack_1 = stream_1.getVideoTracks()[0];
3524
+ videoTrack_1.onended = handleStreamEnded;
3525
+ camera_1 = obtainCameraAccess(stream_1, selectedCamera.label, videoRef.current);
3526
+ // iOS 17 has a strange behavior where the video track flickers between muted and unmuted
3527
+ // when the camera access is being requested. This delay is a workaround for that.
3528
+ setTimeout(function () {
3529
+ videoTrack_1.onmute = function () {
3530
+ return set({
3531
+ cameraAccessDenied: true
3532
+ });
3533
+ };
3534
+ set({
3535
+ camera: camera_1,
3536
+ cameraReady: true,
3537
+ cameraAccessDenied: false,
3538
+ isRearFacing: camera_1.isRearFacing,
3539
+ videoStream: stream_1
3540
+ });
3541
+ }, 500);
3535
3542
  return [3 /*break*/, 12];
3536
3543
  case 11:
3537
3544
  e_3 = _e.sent();