idmission-web-sdk 2.2.43 → 2.2.45

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.43';
206
+ var webSdkVersion = '2.2.45';
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_1, e_1, iphoneContinuityCameraAvailable_1, handleStreamEnded, videoTrack_1, camera_1, e_3;
3371
+ var _a, videoRef, releaseCameraAccess, preferFrontFacingCamera, preferIphoneContinuityCamera, iphoneContinuityCameraDenied, availableCameras, selectedCamera, platform_1, iphoneContinuityCamera, constraints, stream_1, e_1, iphoneContinuityCameraAvailable_1, handleStreamEnded_1, videoTrack_1, camera_1, e_3;
3372
3372
  var _b, _c, _d;
3373
3373
  return __generator(this, function (_e) {
3374
3374
  switch (_e.label) {
@@ -3498,16 +3498,17 @@ var createCameraStore = function createCameraStore(config) {
3498
3498
  }
3499
3499
  debug('camera access granted with constraints', constraints);
3500
3500
  iphoneContinuityCameraAvailable_1 = get().iphoneContinuityCameraAvailable;
3501
- handleStreamEnded = function handleStreamEnded() {
3501
+ handleStreamEnded_1 = function handleStreamEnded_1() {
3502
3502
  if (iphoneContinuityCameraAvailable_1 && preferIphoneContinuityCamera) {
3503
3503
  debug('someone unplugged the continuity camera');
3504
- releaseCameraAccess();
3505
3504
  set({
3506
3505
  videoStream: null,
3507
3506
  videoDevice: null,
3507
+ cameraReady: false,
3508
3508
  iphoneContinuityCameraAvailable: false,
3509
3509
  iphoneContinuityCameraDenied: true
3510
3510
  });
3511
+ get().requestCameraAccess();
3511
3512
  } else {
3512
3513
  debug('someone unplugged the webcam');
3513
3514
  releaseCameraAccess();
@@ -3515,23 +3516,19 @@ var createCameraStore = function createCameraStore(config) {
3515
3516
  videoStream: null,
3516
3517
  videoDevice: null,
3517
3518
  videoLoaded: false,
3519
+ cameraReady: false,
3518
3520
  cameraAccessDenied: true
3519
3521
  });
3520
3522
  }
3521
3523
  };
3522
- (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.addEventListener('ended', handleStreamEnded);
3524
+ (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.addEventListener('ended', handleStreamEnded_1);
3523
3525
  videoTrack_1 = stream_1.getVideoTracks()[0];
3524
- videoTrack_1.onended = handleStreamEnded;
3526
+ videoTrack_1.onended = handleStreamEnded_1;
3525
3527
  camera_1 = obtainCameraAccess(stream_1, selectedCamera.label, videoRef.current);
3526
3528
  // iOS 17 has a strange behavior where the video track flickers between muted and unmuted
3527
3529
  // when the camera access is being requested. This delay is a workaround for that.
3528
3530
  setTimeout(function () {
3529
- videoTrack_1.onmute = function () {
3530
- set({
3531
- cameraAccessDenied: true,
3532
- cameraReady: false
3533
- });
3534
- };
3531
+ videoTrack_1.onmute = handleStreamEnded_1;
3535
3532
  set({
3536
3533
  camera: camera_1,
3537
3534
  cameraReady: true,
@@ -3577,7 +3574,7 @@ var createCameraStore = function createCameraStore(config) {
3577
3574
  },
3578
3575
  requestMicrophoneAccess: function requestMicrophoneAccess() {
3579
3576
  return __awaiter(this, void 0, void 0, function () {
3580
- var stream;
3577
+ var stream_2;
3581
3578
  return __generator(this, function (_a) {
3582
3579
  switch (_a.label) {
3583
3580
  case 0:
@@ -3588,20 +3585,35 @@ var createCameraStore = function createCameraStore(config) {
3588
3585
  return [4 /*yield*/, navigator.mediaDevices.getUserMedia({
3589
3586
  audio: true,
3590
3587
  video: false
3591
- })];
3588
+ })
3589
+ // iOS 17 has a strange behavior where the video track flickers between muted and unmuted
3590
+ // when the camera access is being requested. This delay is a workaround for that.
3591
+ ];
3592
3592
  case 2:
3593
- stream = _a.sent();
3594
- set({
3595
- audioStream: stream,
3596
- microphoneReady: true
3597
- });
3598
- stream.getAudioTracks().forEach(function (track) {
3599
- track.onended = function () {
3600
- set({
3601
- microphoneAccessDenied: true
3602
- });
3603
- };
3604
- });
3593
+ stream_2 = _a.sent();
3594
+ // iOS 17 has a strange behavior where the video track flickers between muted and unmuted
3595
+ // when the camera access is being requested. This delay is a workaround for that.
3596
+ setTimeout(function () {
3597
+ set({
3598
+ audioStream: stream_2,
3599
+ microphoneReady: true,
3600
+ microphoneAccessDenied: false
3601
+ });
3602
+ stream_2.getAudioTracks().forEach(function (track) {
3603
+ track.onended = function () {
3604
+ return set({
3605
+ microphoneReady: false,
3606
+ microphoneAccessDenied: true
3607
+ });
3608
+ };
3609
+ track.onmute = function () {
3610
+ return set({
3611
+ microphoneReady: false,
3612
+ microphoneAccessDenied: true
3613
+ });
3614
+ };
3615
+ });
3616
+ }, 500);
3605
3617
  return [3 /*break*/, 4];
3606
3618
  case 3:
3607
3619
  _a.sent();
@@ -3632,10 +3644,10 @@ var createCameraStore = function createCameraStore(config) {
3632
3644
  });
3633
3645
  });
3634
3646
  if (config.requestAccessAutomatically) {
3635
- store.getState().requestCameraAccess();
3647
+ void store.getState().requestCameraAccess();
3636
3648
  }
3637
3649
  if (config.requireMicrophoneAccess) {
3638
- store.getState().requestMicrophoneAccess();
3650
+ void store.getState().requestMicrophoneAccess();
3639
3651
  }
3640
3652
  return _assign(_assign({}, store), {
3641
3653
  destroy: function destroy() {