idmission-web-sdk 2.2.38 → 2.2.40

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.
@@ -211,7 +211,7 @@
211
211
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
212
212
  };
213
213
 
214
- var webSdkVersion = '2.2.38';
214
+ var webSdkVersion = '2.2.40';
215
215
 
216
216
  function getPlatform() {
217
217
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -9495,12 +9495,12 @@
9495
9495
  },
9496
9496
  requestCameraAccess: function requestCameraAccess() {
9497
9497
  return __awaiter(this, void 0, void 0, function () {
9498
- var _a, releaseCameraAccess, preferFrontFacingCamera, preferIphoneContinuityCamera, iphoneContinuityCameraDenied, availableCameras, selectedCamera, platform_1, iphoneContinuityCamera, constraints, stream, e_1, iphoneContinuityCameraAvailable_1, handleStreamEnded_1, camera, e_3;
9498
+ var _a, videoRef, releaseCameraAccess, preferFrontFacingCamera, preferIphoneContinuityCamera, iphoneContinuityCameraDenied, availableCameras, selectedCamera, platform_1, iphoneContinuityCamera, constraints, stream, e_1, iphoneContinuityCameraAvailable_1, handleStreamEnded, videoTrack_1, camera, e_3;
9499
9499
  var _b, _c, _d;
9500
9500
  return __generator(this, function (_e) {
9501
9501
  switch (_e.label) {
9502
9502
  case 0:
9503
- _a = get(), releaseCameraAccess = _a.releaseCameraAccess, preferFrontFacingCamera = _a.preferFrontFacingCamera, preferIphoneContinuityCamera = _a.preferIphoneContinuityCamera, iphoneContinuityCameraDenied = _a.iphoneContinuityCameraDenied;
9503
+ _a = get(), videoRef = _a.videoRef, releaseCameraAccess = _a.releaseCameraAccess, preferFrontFacingCamera = _a.preferFrontFacingCamera, preferIphoneContinuityCamera = _a.preferIphoneContinuityCamera, iphoneContinuityCameraDenied = _a.iphoneContinuityCameraDenied;
9504
9504
  releaseCameraAccess();
9505
9505
  _e.label = 1;
9506
9506
  case 1:
@@ -9625,7 +9625,7 @@
9625
9625
  }
9626
9626
  debug('camera access granted with constraints', constraints);
9627
9627
  iphoneContinuityCameraAvailable_1 = get().iphoneContinuityCameraAvailable;
9628
- handleStreamEnded_1 = function handleStreamEnded_1() {
9628
+ handleStreamEnded = function handleStreamEnded() {
9629
9629
  if (iphoneContinuityCameraAvailable_1 && preferIphoneContinuityCamera) {
9630
9630
  debug('someone unplugged the continuity camera');
9631
9631
  releaseCameraAccess();
@@ -9646,14 +9646,23 @@
9646
9646
  });
9647
9647
  }
9648
9648
  };
9649
- (_d = config.videoRef.current) === null || _d === void 0 ? void 0 : _d.addEventListener('ended', handleStreamEnded_1);
9650
- stream.getVideoTracks().forEach(function (track) {
9651
- track.onended = handleStreamEnded_1;
9652
- });
9653
- camera = obtainCameraAccess(stream, selectedCamera.label, config.videoRef.current);
9649
+ (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.addEventListener('ended', handleStreamEnded);
9650
+ videoTrack_1 = stream.getVideoTracks()[0];
9651
+ videoTrack_1.onended = handleStreamEnded;
9652
+ // iOS 17 has a strange behavior where the video track flickers between muted and unmuted
9653
+ // when the camera access is being requested. This is a workaround for that.
9654
+ setTimeout(function () {
9655
+ videoTrack_1.onmute = function () {
9656
+ return set({
9657
+ cameraAccessDenied: true
9658
+ });
9659
+ };
9660
+ }, 500);
9661
+ camera = obtainCameraAccess(stream, selectedCamera.label, videoRef.current);
9654
9662
  set({
9655
9663
  camera: camera,
9656
9664
  cameraReady: true,
9665
+ cameraAccessDenied: false,
9657
9666
  isRearFacing: camera.isRearFacing,
9658
9667
  videoStream: stream
9659
9668
  });