videomail-client 16.0.0 → 16.0.2

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/umd/index.js CHANGED
@@ -5983,9 +5983,57 @@
5983
5983
  },
5984
5984
  s1 (module1, __unused_rspack_exports, __webpack_require__) {
5985
5985
  "use strict";
5986
+ var getSideChannel = __webpack_require__("M");
5986
5987
  var utils = __webpack_require__("K0");
5987
5988
  var has = Object.prototype.hasOwnProperty;
5988
5989
  var isArray = Array.isArray;
5990
+ var getPrototypeOf = Object.getPrototypeOf;
5991
+ var isPlainContainer = function(value) {
5992
+ if (!value || 'object' != typeof value) return false;
5993
+ if (isArray(value)) return true;
5994
+ var proto = getPrototypeOf(value);
5995
+ return proto === Object.prototype || null === proto;
5996
+ };
5997
+ var emptyCopyOf = function(value) {
5998
+ if (isArray(value)) {
5999
+ var arr = [];
6000
+ arr.length = value.length;
6001
+ return arr;
6002
+ }
6003
+ return null === getPrototypeOf(value) ? {
6004
+ __proto__: null
6005
+ } : {};
6006
+ };
6007
+ var copyInput = function(input) {
6008
+ var copies = getSideChannel();
6009
+ var result = {};
6010
+ var queue = [
6011
+ {
6012
+ source: input,
6013
+ target: result
6014
+ }
6015
+ ];
6016
+ for(var i = 0; i < queue.length; ++i){
6017
+ var source = queue[i].source;
6018
+ var target = queue[i].target;
6019
+ var keys = Object.keys(source);
6020
+ for(var j = 0; j < keys.length; ++j){
6021
+ var value = source[keys[j]];
6022
+ if (isPlainContainer(value)) {
6023
+ if (!copies.has(value)) {
6024
+ var copy = emptyCopyOf(value);
6025
+ copies.set(value, copy);
6026
+ queue[queue.length] = {
6027
+ source: value,
6028
+ target: copy
6029
+ };
6030
+ }
6031
+ target[keys[j]] = copies.get(value);
6032
+ } else target[keys[j]] = value;
6033
+ }
6034
+ }
6035
+ return result;
6036
+ };
5989
6037
  var defaults = {
5990
6038
  allowDots: false,
5991
6039
  allowEmptyArrays: false,
@@ -6057,6 +6105,7 @@
6057
6105
  var part = parts[i];
6058
6106
  var bracketEqualsPos = part.indexOf(']=');
6059
6107
  var pos = -1 === bracketEqualsPos ? part.indexOf('=') : bracketEqualsPos + 1;
6108
+ var isEmptyBracketKey = pos > 1 && '[]' === part.slice(pos - 2, pos);
6060
6109
  var key;
6061
6110
  var val;
6062
6111
  if (-1 === pos) {
@@ -6069,13 +6118,13 @@
6069
6118
  });
6070
6119
  }
6071
6120
  if (val && options.interpretNumericEntities && 'iso-8859-1' === charset) val = interpretNumericEntities(String(val));
6072
- if (part.indexOf('[]=') > -1) val = isArray(val) ? [
6121
+ if (isEmptyBracketKey) val = isArray(val) ? [
6073
6122
  val
6074
6123
  ] : val;
6075
6124
  if (options.comma && isArray(val) && val.length > options.arrayLimit) val = utils.combine([], val, options.arrayLimit, options.plainObjects, options.throwOnLimitExceeded);
6076
6125
  if (null !== key) {
6077
6126
  var existing = has.call(obj, key);
6078
- if (existing && ('combine' === options.duplicates || part.indexOf('[]=') > -1)) obj[key] = utils.combine(obj[key], val, options.arrayLimit, options.plainObjects, options.throwOnLimitExceeded);
6127
+ if (existing && ('combine' === options.duplicates || isEmptyBracketKey)) obj[key] = utils.combine(obj[key], val, options.arrayLimit, options.plainObjects, options.throwOnLimitExceeded);
6079
6128
  else if (!existing || 'last' === options.duplicates) obj[key] = val;
6080
6129
  }
6081
6130
  }
@@ -6117,8 +6166,29 @@
6117
6166
  }
6118
6167
  return leaf;
6119
6168
  };
6169
+ var topLevelDotsToBrackets = function(key) {
6170
+ var result = '';
6171
+ var depth = 0;
6172
+ for(var i = 0; i < key.length; i += 1){
6173
+ var cu = key.charCodeAt(i);
6174
+ if (0x5B === cu) {
6175
+ depth += 1;
6176
+ result += '[';
6177
+ } else if (0x5D === cu) {
6178
+ if (depth > 0) depth -= 1;
6179
+ result += ']';
6180
+ } else if (0x2E === cu && 0 === depth && i + 1 < key.length && 0x2E !== key.charCodeAt(i + 1) && 0x5B !== key.charCodeAt(i + 1)) {
6181
+ var start = i + 1;
6182
+ var j = start;
6183
+ while(j < key.length && 0x2E !== key.charCodeAt(j) && 0x5B !== key.charCodeAt(j))j += 1;
6184
+ result += '[' + key.slice(start, j) + ']';
6185
+ i = j - 1;
6186
+ } else result += key.charAt(i);
6187
+ }
6188
+ return result;
6189
+ };
6120
6190
  var splitKeyIntoSegments = function(originalKey, options) {
6121
- var key = options.allowDots ? originalKey.replace(/\.([^.[]+)/g, '[$1]') : originalKey;
6191
+ var key = options.allowDots ? topLevelDotsToBrackets(originalKey) : originalKey;
6122
6192
  if (options.depth <= 0) {
6123
6193
  if (!options.plainObjects && has.call(Object.prototype, key)) {
6124
6194
  if (!options.allowPrototypes) return;
@@ -6216,7 +6286,7 @@
6216
6286
  if ('' === str || null == str) return options.plainObjects ? {
6217
6287
  __proto__: null
6218
6288
  } : {};
6219
- var tempObj = 'string' == typeof str ? parseValues(str, options) : str;
6289
+ var tempObj = 'string' == typeof str ? parseValues(str, options) : copyInput(str);
6220
6290
  var obj = options.plainObjects ? {
6221
6291
  __proto__: null
6222
6292
  } : {};
@@ -6324,11 +6394,11 @@
6324
6394
  var objKeys;
6325
6395
  if ('comma' === generateArrayPrefix && isArray(obj)) {
6326
6396
  if (encodeValuesOnly && encoder) obj = utils.maybeMap(obj, function(v) {
6327
- return null == v ? v : encoder(v);
6397
+ return null == v ? v : encoder(v, defaults.encoder, charset, 'value', format);
6328
6398
  });
6329
6399
  objKeys = [
6330
6400
  {
6331
- value: obj.length > 0 ? obj.join(',') || null : void 0
6401
+ value: obj.length > 0 ? utils.toCoercible(obj).join(',') || null : void 0
6332
6402
  }
6333
6403
  ];
6334
6404
  } else if (isArray(filter)) objKeys = filter;
@@ -6336,7 +6406,7 @@
6336
6406
  var keys = Object.keys(obj);
6337
6407
  objKeys = sort ? keys.sort(sort) : keys;
6338
6408
  }
6339
- var encodedPrefix = encodeDotInKeys ? String(prefix).replace(/\./g, '%2E') : String(prefix);
6409
+ var encodedPrefix = String(prefix);
6340
6410
  var adjustedPrefix = commaRoundTrip && isArray(obj) && 1 === obj.length ? encodedPrefix + '[]' : encodedPrefix;
6341
6411
  if (allowEmptyArrays && isArray(obj) && 0 === obj.length && 0 === Object.keys(obj).length) return adjustedPrefix + '[]';
6342
6412
  for(var j = 0; j < objKeys.length; ++j){
@@ -6369,7 +6439,7 @@
6369
6439
  var filter = defaults.filter;
6370
6440
  if ('function' == typeof opts.filter || isArray(opts.filter)) filter = opts.filter;
6371
6441
  var arrayFormat;
6372
- arrayFormat = opts.arrayFormat in arrayPrefixGenerators ? opts.arrayFormat : 'indices' in opts ? opts.indices ? 'indices' : 'repeat' : defaults.arrayFormat;
6442
+ arrayFormat = has.call(arrayPrefixGenerators, opts.arrayFormat) ? opts.arrayFormat : 'indices' in opts ? opts.indices ? 'indices' : 'repeat' : defaults.arrayFormat;
6373
6443
  if ('commaRoundTrip' in opts && 'boolean' != typeof opts.commaRoundTrip) throw new TypeError('`commaRoundTrip` must be a boolean, or absent');
6374
6444
  var allowDots = void 0 === opts.allowDots ? true === opts.encodeDotInKeys ? true : defaults.allowDots : !!opts.allowDots;
6375
6445
  return {
@@ -6452,6 +6522,17 @@
6452
6522
  var setMaxIndex = function(obj, maxIndex) {
6453
6523
  overflowChannel.set(obj, maxIndex);
6454
6524
  };
6525
+ var conflictChannel = getSideChannel();
6526
+ var markConflict = function(obj, maxIndex) {
6527
+ conflictChannel.set(obj, maxIndex);
6528
+ return obj;
6529
+ };
6530
+ var isConflict = function(obj) {
6531
+ return conflictChannel.has(obj);
6532
+ };
6533
+ var getConflictIndex = function(obj) {
6534
+ return conflictChannel.get(obj);
6535
+ };
6455
6536
  var hexTable = function() {
6456
6537
  var array = [];
6457
6538
  for(var i = 0; i < 256; ++i)array[array.length] = '%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase();
@@ -6484,6 +6565,26 @@
6484
6565
  });
6485
6566
  else obj[key] = value;
6486
6567
  };
6568
+ var maxNumericIndex = function(obj, min) {
6569
+ var max = min;
6570
+ var keys = Object.keys(obj);
6571
+ for(var i = 0; i < keys.length; ++i){
6572
+ var num = parseInt(keys[i], 10);
6573
+ if (String(num) === keys[i] && num > max) max = num;
6574
+ }
6575
+ return max;
6576
+ };
6577
+ var limitedPair = function(first, second, options) {
6578
+ var pair = [
6579
+ first,
6580
+ second
6581
+ ];
6582
+ if (options && 'number' == typeof options.arrayLimit && pair.length > options.arrayLimit) {
6583
+ if (options.throwOnLimitExceeded) throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (1 === options.arrayLimit ? '' : 's') + ' allowed in an array.');
6584
+ return markOverflow(arrayToObject(pair, options), 1);
6585
+ }
6586
+ return pair;
6587
+ };
6487
6588
  var merge = function merge(target, source, options) {
6488
6589
  if (!source) return target;
6489
6590
  if ('object' != typeof source && 'function' != typeof source) {
@@ -6494,19 +6595,20 @@
6494
6595
  return markOverflow(arrayToObject(target.concat(source), options), nextIndex);
6495
6596
  }
6496
6597
  target[nextIndex] = source;
6497
- } else if (!target || 'object' != typeof target) return [
6498
- target,
6499
- source
6500
- ];
6598
+ } else if (!target || 'object' != typeof target) return limitedPair(target, source, options);
6501
6599
  else if (isOverflow(target)) {
6502
6600
  var newIndex = getMaxIndex(target) + 1;
6503
6601
  target[newIndex] = source;
6504
6602
  setMaxIndex(target, newIndex);
6505
- } else if (options && options.strictMerge) return [
6506
- target,
6507
- source
6508
- ];
6509
- else if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) target[source] = true;
6603
+ } else if (options && options.strictMerge && isConflict(target)) {
6604
+ var nextConflict = getConflictIndex(target) + 1;
6605
+ if (options.throwOnLimitExceeded && 'number' == typeof options.arrayLimit && nextConflict >= options.arrayLimit) throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (1 === options.arrayLimit ? '' : 's') + ' allowed in an array.');
6606
+ target[nextConflict] = source;
6607
+ markConflict(target, nextConflict);
6608
+ } else if (options && options.strictMerge) {
6609
+ var conflict = limitedPair(target, source, options);
6610
+ return isArray(conflict) ? markConflict(conflict, 1) : conflict;
6611
+ } else if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) target[source] = true;
6510
6612
  return target;
6511
6613
  }
6512
6614
  if (!target || 'object' != typeof target) {
@@ -6534,7 +6636,10 @@
6534
6636
  return combined;
6535
6637
  }
6536
6638
  var mergeTarget = target;
6537
- if (isArray(target) && !isArray(source)) mergeTarget = arrayToObject(target, options);
6639
+ if (isArray(target) && !isArray(source)) {
6640
+ mergeTarget = arrayToObject(target, options);
6641
+ if (isConflict(target)) markConflict(mergeTarget, target.length - 1);
6642
+ }
6538
6643
  if (isArray(target) && isArray(source)) {
6539
6644
  source.forEach(function(item, i) {
6540
6645
  if (has.call(target, i)) {
@@ -6552,11 +6657,15 @@
6552
6657
  return Object.keys(source).reduce(function(acc, key) {
6553
6658
  var value = source[key];
6554
6659
  has.call(acc, key) ? setProperty(acc, key, merge(acc[key], value, options)) : setProperty(acc, key, value);
6555
- if (isOverflow(source) && !isOverflow(acc)) markOverflow(acc, getMaxIndex(source));
6660
+ if (isOverflow(source) && !isOverflow(acc)) markOverflow(acc, maxNumericIndex(acc, getMaxIndex(source)));
6556
6661
  if (isOverflow(acc)) {
6557
6662
  var keyNum = parseInt(key, 10);
6558
6663
  if (String(keyNum) === key && keyNum >= 0 && keyNum > getMaxIndex(acc)) setMaxIndex(acc, keyNum);
6559
6664
  }
6665
+ if (isConflict(acc)) {
6666
+ var conflictKey = parseInt(key, 10);
6667
+ if (String(conflictKey) === key && conflictKey > getConflictIndex(acc)) markConflict(acc, conflictKey);
6668
+ }
6560
6669
  return acc;
6561
6670
  }, mergeTarget);
6562
6671
  };
@@ -6567,6 +6676,7 @@
6567
6676
  }, target);
6568
6677
  };
6569
6678
  var decode = function(str, defaultDecoder, charset) {
6679
+ if ('string' == typeof str && -1 === str.indexOf('%')) return -1 === str.indexOf('+') ? str : str.replace(/\+/g, ' ');
6570
6680
  var strWithoutPlus = str.replace(/\+/g, ' ');
6571
6681
  if ('iso-8859-1' === charset) return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
6572
6682
  try {
@@ -6575,15 +6685,47 @@
6575
6685
  return strWithoutPlus;
6576
6686
  }
6577
6687
  };
6688
+ var hasToPrimitive = 'function' == typeof Symbol && 'symbol' == typeof Symbol.toPrimitive;
6689
+ var arrayJoin = Array.prototype.join;
6690
+ var arrayToString = Array.prototype.toString;
6691
+ var objectToString = Object.prototype.toString;
6692
+ var toCoercible = function toCoercible(value, joining) {
6693
+ if (!value || 'object' != typeof value && 'function' != typeof value) return value;
6694
+ if (hasToPrimitive && null != value[Symbol.toPrimitive]) return value;
6695
+ if (isArray(value) && value.toString === arrayToString && value.join === arrayJoin) {
6696
+ var ancestors = joining || getSideChannel();
6697
+ if (ancestors.has(value)) return '';
6698
+ ancestors.set(value, true);
6699
+ var copy;
6700
+ for(var i = 0; i < value.length; i += 1){
6701
+ var item = value[i];
6702
+ var coerced = toCoercible(item, ancestors);
6703
+ if (!copy && coerced !== item) {
6704
+ copy = [];
6705
+ for(var j = 0; j < i; j += 1)copy[j] = value[j];
6706
+ }
6707
+ if (copy) copy[i] = coerced;
6708
+ }
6709
+ ancestors['delete'](value);
6710
+ return copy || value;
6711
+ }
6712
+ if ('function' == typeof value.toString) return value;
6713
+ var valueOf = value.valueOf;
6714
+ if ('function' == typeof valueOf) {
6715
+ var primitive = valueOf.call(value);
6716
+ if (!primitive || 'object' != typeof primitive && 'function' != typeof primitive) return String(primitive);
6717
+ }
6718
+ return objectToString.call(value);
6719
+ };
6578
6720
  var limit = 1024;
6579
6721
  var encode = function(str, defaultEncoder, charset, kind, format) {
6580
6722
  if (0 === str.length) return str;
6581
6723
  var string = str;
6582
6724
  if ('symbol' == typeof str) string = Symbol.prototype.toString.call(str);
6583
- else if ('string' != typeof str) string = String(str);
6725
+ else if ('string' != typeof str) string = String(toCoercible(str));
6584
6726
  if ('iso-8859-1' === charset) return escape(string).replace(/%u[0-9a-f]{4}/gi, function($0) {
6585
6727
  return '%26%23' + parseInt($0.slice(2), 16) + '%3B';
6586
- });
6728
+ }).replace(/\+/g, '%2B');
6587
6729
  var out = '';
6588
6730
  for(var j = 0; j < string.length; j += limit){
6589
6731
  var segment = string.length >= limit ? string.slice(j, j + limit) : string;
@@ -6700,7 +6842,8 @@
6700
6842
  isRegExp: isRegExp,
6701
6843
  markOverflow: markOverflow,
6702
6844
  maybeMap: maybeMap,
6703
- merge: merge
6845
+ merge: merge,
6846
+ toCoercible: toCoercible
6704
6847
  };
6705
6848
  },
6706
6849
  jY (module1, __unused_rspack_exports, __webpack_require__) {
@@ -8111,7 +8254,7 @@
8111
8254
  });
8112
8255
  });
8113
8256
  },
8114
- S (__unused_rspack_module, exports1, __webpack_require__) {
8257
+ Sy (__unused_rspack_module, exports1, __webpack_require__) {
8115
8258
  var process = __webpack_require__("zT");
8116
8259
  var getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function(obj) {
8117
8260
  var keys = Object.keys(obj);
@@ -10477,7 +10620,7 @@
10477
10620
  return i[1];
10478
10621
  };
10479
10622
  },
10480
- RR (module1) {
10623
+ R (module1) {
10481
10624
  "use strict";
10482
10625
  var stylesInDOM = [];
10483
10626
  function getIndexByIdentifier(identifier) {
@@ -10978,7 +11121,7 @@
10978
11121
  var client = __webpack_require__("Q");
10979
11122
  var client_default = /*#__PURE__*/ __webpack_require__.n(client);
10980
11123
  var package_namespaceObject = {
10981
- rE: "16.0.0"
11124
+ rE: "16.0.2"
10982
11125
  };
10983
11126
  function isAudioEnabled(options) {
10984
11127
  return Boolean(options.audio.enabled);
@@ -10990,7 +11133,7 @@
10990
11133
  function isAutoPauseEnabled(options) {
10991
11134
  return options.enableAutoPause && options.enablePause;
10992
11135
  }
10993
- var util = __webpack_require__("S");
11136
+ var util = __webpack_require__("Sy");
10994
11137
  var util_default = /*#__PURE__*/ __webpack_require__.n(util);
10995
11138
  function getEventDetails(event) {
10996
11139
  const eventWithErrorDetails = event;
@@ -14421,7 +14564,6 @@
14421
14564
  location = window.location.href;
14422
14565
  logLines;
14423
14566
  whitelistKey;
14424
- cookie;
14425
14567
  err;
14426
14568
  promise;
14427
14569
  reason;
@@ -14459,9 +14601,6 @@
14459
14601
  this.device = usefulClientData.device.type ? usefulClientData.device : void 0;
14460
14602
  this.engine = usefulClientData.engine;
14461
14603
  this.os = usefulClientData.os;
14462
- let cookie;
14463
- if (__webpack_require__.g.document.cookie.length > 0) cookie = __webpack_require__.g.document.cookie.split(",").map((c)=>c.trim());
14464
- this.cookie = cookie && cookie.length > 0 ? cookie : void 0;
14465
14604
  this.screen = [
14466
14605
  screen.width,
14467
14606
  screen.height,
@@ -14646,6 +14785,51 @@
14646
14785
  return exc;
14647
14786
  }
14648
14787
  const error_findOriginalExc = findOriginalExc;
14788
+ const REDACTED = "[redacted]";
14789
+ const PRIVATE_FIELDS = "cookies?|set[-_]?cookie|(?:proxy[-_]?)?authorization|pass(?:word|phrase|wd)|(?:client[-_]?)?secret|(?:x[-_]?)?api[-_]?key|(?:access|refresh|id|auth|session)[-_]?token|token|(?:x[-_]?)?(?:csrf|xsrf)(?:[-_]?token)?|session(?:[-_]?id)?|e[-_]?mail|from|to|cc|bcc|recipients?|sender";
14790
+ const PRIVATE_FIELD = new RegExp(`^(?:${PRIVATE_FIELDS})$`, "iu");
14791
+ const PRIVATE_CONTENT_FIELD = /^(?:subject|body)$/iu;
14792
+ const URL_FIELD = /^(?:url|uri|href|location|recordLocation|blockedURI|responseURL)$/iu;
14793
+ const LOG_ASSIGNMENT = String.raw`(["']?\b(?:${PRIVATE_FIELDS}|subject|body)["']?\s*[:=]\s*)`;
14794
+ const LOG_VALUES = [
14795
+ /"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'/u.source,
14796
+ /(?:Bearer|Basic)\s+[^\s,;}]+/u.source,
14797
+ /[^\s,;{}[\]]+/u.source
14798
+ ].join("|");
14799
+ const PRIVATE_LOG_VALUE = new RegExp(`${LOG_ASSIGNMENT}(?:${LOG_VALUES})`, "giu");
14800
+ function sanitizeUrl(value, base) {
14801
+ try {
14802
+ const url = new URL(value, base);
14803
+ url.username = "";
14804
+ url.password = "";
14805
+ url.search = "";
14806
+ url.hash = "";
14807
+ return url.href;
14808
+ } catch {
14809
+ return REDACTED;
14810
+ }
14811
+ }
14812
+ function sanitizeText(text) {
14813
+ return text.replace(/\b(?:https?|wss?):\/\/[^\s"'<>(){}]+/giu, (value)=>{
14814
+ const position = /:\d+:\d+$/u.exec(value)?.[0] ?? "";
14815
+ const address = position ? value.slice(0, -position.length) : value;
14816
+ return `${sanitizeUrl(address)}${position}`;
14817
+ }).replace(PRIVATE_LOG_VALUE, `$1${REDACTED}`).replace(/\b(Bearer|Basic)\s+[\w.+/~=-]+/giu, `$1 ${REDACTED}`).replace(/\b[\w.%+-]+@[\w.-]+\.[a-z]{2,}\b/giu, REDACTED);
14818
+ }
14819
+ function sanitizeErrorReport(report) {
14820
+ function redactField(key, value) {
14821
+ if (PRIVATE_FIELD.test(key)) return REDACTED;
14822
+ if ("string" != typeof value) return value;
14823
+ if (PRIVATE_CONTENT_FIELD.test(key)) return REDACTED;
14824
+ const text = URL_FIELD.test(key) ? sanitizeUrl(value, report.location) : value;
14825
+ return sanitizeText(text);
14826
+ }
14827
+ const json = JSON.stringify(serializeError(report), redactField);
14828
+ const sanitized = JSON.parse(json);
14829
+ if (null === sanitized || "object" != typeof sanitized) throw new TypeError("An error report must serialize to an object.");
14830
+ return sanitized;
14831
+ }
14832
+ const error_sanitizeErrorReport = sanitizeErrorReport;
14649
14833
  function _extends() {
14650
14834
  _extends = Object.assign || function(target) {
14651
14835
  for(var i = 1; i < arguments.length; i++){
@@ -15203,7 +15387,6 @@
15203
15387
  },
15204
15388
  browser: err.browser,
15205
15389
  code: err.code,
15206
- cookie: err.cookie,
15207
15390
  cause: err.cause instanceof Error ? serializeError(err.cause) : err.cause,
15208
15391
  cpu: err.cpu,
15209
15392
  device: err.device,
@@ -15224,7 +15407,7 @@
15224
15407
  enumerateDevices,
15225
15408
  usedConstraints: err.usedConstraints
15226
15409
  };
15227
- await client_default()(FormMethod.POST, url).query(queryParams).set("Timezone-Id", this.timezoneId).withCredentials().send(fullVideomailErrorData).timeout(this.options.timeouts.connection);
15410
+ await client_default()(FormMethod.POST, url).query(queryParams).set("Timezone-Id", this.timezoneId).withCredentials().send(error_sanitizeErrorReport(fullVideomailErrorData)).timeout(this.options.timeouts.connection);
15228
15411
  }
15229
15412
  async post(videomail) {
15230
15413
  const newVideomail = this.applyDefaultValues(videomail);
@@ -15468,7 +15651,7 @@
15468
15651
  return newOptions;
15469
15652
  }
15470
15653
  const options_mergeWithDefaultOptions = mergeWithDefaultOptions;
15471
- var injectStylesIntoStyleTag = __webpack_require__("RR");
15654
+ var injectStylesIntoStyleTag = __webpack_require__("R");
15472
15655
  var injectStylesIntoStyleTag_default = /*#__PURE__*/ __webpack_require__.n(injectStylesIntoStyleTag);
15473
15656
  var styleDomAPI = __webpack_require__("Bd");
15474
15657
  var styleDomAPI_default = /*#__PURE__*/ __webpack_require__.n(styleDomAPI);
@@ -19669,6 +19852,7 @@
19669
19852
  this.options.logger.debug(debugLine);
19670
19853
  const canReconnect = this.canReconnectAfterStreamClose();
19671
19854
  this.connected = false;
19855
+ this.stopPings();
19672
19856
  if (this.shouldIgnoreStreamClose()) return;
19673
19857
  if (this.mediaTransmissionStarted) this.failInterruptedRecording();
19674
19858
  else if (canReconnect) {
@@ -19685,7 +19869,37 @@
19685
19869
  }, 0);
19686
19870
  }
19687
19871
  shouldIgnoreStreamClose() {
19688
- return this.recordingTransportFailed || Boolean(this.unloaded);
19872
+ return this.recordingTransportFailed || Boolean(this.unloaded) || this.validate();
19873
+ }
19874
+ handleStreamError(url2Connect, err) {
19875
+ if ("u" > typeof Event && err instanceof Event) this.lastSocketError = error_getEventDetails(err);
19876
+ else this.lastSocketError = serializeError(err);
19877
+ const debugLine = string_summarize(`${PIPE_SYMBOL}Stream *error* event emitted:`, {
19878
+ error: serializeError(err)
19879
+ });
19880
+ this.options.logger.debug(debugLine);
19881
+ if (this.validate()) {
19882
+ this.connected = false;
19883
+ this.stopPings();
19884
+ this.discardSocket();
19885
+ return;
19886
+ }
19887
+ if (!this.connected) return void this.handleConnectionFailure({
19888
+ url2Connect,
19889
+ cause: "error"
19890
+ });
19891
+ const streamError = err instanceof Error ? err : new Error("WebSocket stream emitted an error event", {
19892
+ cause: this.lastSocketError ?? err
19893
+ });
19894
+ if (this.mediaTransmissionStarted) return void this.failInterruptedRecording();
19895
+ this.emit("ERROR", {
19896
+ err: error_createError({
19897
+ message: "WebSocket stream error",
19898
+ explanation: `The WebSocket stream emitted an error event. Details: ${string_pretty(err)}`,
19899
+ options: this.options,
19900
+ exc: streamError
19901
+ })
19902
+ });
19689
19903
  }
19690
19904
  sendPings() {
19691
19905
  this.stopPings();
@@ -19696,6 +19910,7 @@
19696
19910
  }
19697
19911
  stopPings() {
19698
19912
  if (void 0 === this.pingInterval) return;
19913
+ this.options.logger.debug("Recorder: stopping pings...");
19699
19914
  window.clearInterval(this.pingInterval);
19700
19915
  this.pingInterval = void 0;
19701
19916
  }
@@ -19847,7 +20062,7 @@
19847
20062
  });
19848
20063
  }
19849
20064
  shouldIgnoreConnectionFailure() {
19850
- return this.connectionFailed || this.connected || Boolean(this.unloaded);
20065
+ return this.connectionFailed || this.connected || Boolean(this.unloaded) || this.validate();
19851
20066
  }
19852
20067
  calculateFrameProgress() {
19853
20068
  return `${(this.confirmedFrameNumber / (this.framesCount || 1) * 100).toFixed(2)}%`;
@@ -20053,28 +20268,7 @@
20053
20268
  }
20054
20269
  });
20055
20270
  stream.on("error", (err)=>{
20056
- if ("u" > typeof Event && err instanceof Event) this.lastSocketError = error_getEventDetails(err);
20057
- else this.lastSocketError = serializeError(err);
20058
- const debugLine = string_summarize(`${PIPE_SYMBOL}Stream *error* event emitted:`, {
20059
- error: serializeError(err)
20060
- });
20061
- this.options.logger.debug(debugLine);
20062
- if (!this.connected) return void this.handleConnectionFailure({
20063
- url2Connect,
20064
- cause: "error"
20065
- });
20066
- const streamError = err instanceof Error ? err : new Error("WebSocket stream emitted an error event", {
20067
- cause: this.lastSocketError ?? err
20068
- });
20069
- if (this.mediaTransmissionStarted) return void this.failInterruptedRecording();
20070
- this.emit("ERROR", {
20071
- err: error_createError({
20072
- message: "WebSocket stream error",
20073
- explanation: `The WebSocket stream emitted an error event. Details: ${string_pretty(err)}`,
20074
- options: this.options,
20075
- exc: streamError
20076
- })
20077
- });
20271
+ this.handleStreamError(url2Connect, err);
20078
20272
  });
20079
20273
  stream.on("drain", ()=>{
20080
20274
  this.handleStreamDrain(stream);
@@ -20415,6 +20609,7 @@
20415
20609
  }
20416
20610
  back(cb) {
20417
20611
  this.emit("GOING_BACK");
20612
+ this.key = void 0;
20418
20613
  this.recordingDimensions = void 0;
20419
20614
  this.unloaded = false;
20420
20615
  this.show();
@@ -20479,7 +20674,7 @@
20479
20674
  this.stopTimeout = void 0;
20480
20675
  }
20481
20676
  validate() {
20482
- return this.connected && void 0 === this.canvas;
20677
+ return Boolean(this.key) && void 0 === this.canvas;
20483
20678
  }
20484
20679
  isReady() {
20485
20680
  return this.userMedia?.isReady();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "videomail-client",
3
- "version": "16.0.0",
3
+ "version": "16.0.2",
4
4
  "description": "A wicked npm package to record videos directly in the browser, for Deaf and Sign Language!",
5
5
  "keywords": [
6
6
  "webcam",
@@ -101,9 +101,9 @@
101
101
  "@types/ua-parser-js": "0.7.39",
102
102
  "@vitest/eslint-plugin": "1.6.27",
103
103
  "audit-ci": "7.1.0",
104
- "chromatic": "18.12.1",
104
+ "chromatic": "18.13.0",
105
105
  "cross-env": "10.1.0",
106
- "eslint": "10.12.0",
106
+ "eslint": "10.13.0",
107
107
  "eslint-import-resolver-typescript": "4.4.5",
108
108
  "eslint-plugin-de-morgan": "2.2.1",
109
109
  "eslint-plugin-depend": "1.5.0",
@@ -112,7 +112,7 @@
112
112
  "eslint-plugin-regexp": "3.3.1",
113
113
  "eslint-plugin-simple-import-sort": "14.0.0",
114
114
  "globals": "17.13.0",
115
- "jsdom": "30.1.2",
115
+ "jsdom": "30.1.3",
116
116
  "msw": "2.15.0",
117
117
  "msw-storybook-addon": "3.0.3",
118
118
  "prettier": "3.9.10",
@@ -126,11 +126,11 @@
126
126
  "type-fest": "5.10.0",
127
127
  "typescript": "6.0.3",
128
128
  "typescript-eslint": "8.71.2",
129
- "vitest": "5.0.4"
129
+ "vitest": "5.0.5"
130
130
  },
131
131
  "engines": {
132
- "node": "^26.5.0",
133
- "npm": ">=11.16.0"
132
+ "node": "^26.12.0",
133
+ "npm": ">=11.20.0"
134
134
  },
135
135
  "msw": {
136
136
  "workerDirectory": [