videomail-client 15.7.7 → 15.7.9

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.
@@ -7045,7 +7045,7 @@ var __webpack_modules__ = {
7045
7045
  const safeStringify = __webpack_require__("X");
7046
7046
  const qs = __webpack_require__("b");
7047
7047
  const RequestBase = __webpack_require__("d");
7048
- const { isObject, mixin, hasOwn } = __webpack_require__("Dp");
7048
+ const { isObject, mixin, hasOwn, isSafeKey } = __webpack_require__("Dp");
7049
7049
  const ResponseBase = __webpack_require__("e");
7050
7050
  const Agent = __webpack_require__("pf");
7051
7051
  function noop() {}
@@ -7099,12 +7099,18 @@ var __webpack_modules__ = {
7099
7099
  form: 'application/x-www-form-urlencoded',
7100
7100
  'form-data': 'application/x-www-form-urlencoded'
7101
7101
  };
7102
+ function lookupType(type) {
7103
+ return hasOwn(request.types, type) && request.types[type] || type;
7104
+ }
7102
7105
  request.serialize = {
7103
- 'application/x-www-form-urlencoded': (obj)=>qs.stringify(obj, {
7106
+ 'application/x-www-form-urlencoded' (object) {
7107
+ return qs.stringify(object, {
7104
7108
  indices: false,
7105
7109
  strictNullHandling: true
7106
- }),
7107
- 'application/json': safeStringify
7110
+ });
7111
+ },
7112
+ 'application/json': safeStringify,
7113
+ 'application/csp-report': safeStringify
7108
7114
  };
7109
7115
  request.parse = {
7110
7116
  'application/x-www-form-urlencoded': parseString,
@@ -7122,8 +7128,10 @@ var __webpack_modules__ = {
7122
7128
  index = line.indexOf(':');
7123
7129
  if (-1 !== index) {
7124
7130
  field = line.slice(0, index).toLowerCase();
7125
- value = trim(line.slice(index + 1));
7126
- fields[field] = value;
7131
+ if (isSafeKey(field)) {
7132
+ value = trim(line.slice(index + 1));
7133
+ fields[field] = value;
7134
+ }
7127
7135
  }
7128
7136
  }
7129
7137
  return fields;
@@ -7144,11 +7152,12 @@ var __webpack_modules__ = {
7144
7152
  this.header['content-type'] = this.xhr.getResponseHeader('content-type');
7145
7153
  this._setHeaderProperties(this.header);
7146
7154
  if (null === this.text && request_._responseType) this.body = this.xhr.response;
7147
- else this.body = 'HEAD' === this.req.method ? null : this._parseBody(this.text ? this.text : this.xhr.response);
7155
+ else if ('HEAD' === this.req.method) this.body = null;
7156
+ else this.body = this._parseBody(this.text || this.xhr.response);
7148
7157
  }
7149
7158
  mixin(Response.prototype, ResponseBase.prototype);
7150
7159
  Response.prototype._parseBody = function(string_) {
7151
- let parse = request.parse[this.type];
7160
+ let parse = hasOwn(request.parse, this.type) ? request.parse[this.type] : void 0;
7152
7161
  if (this.req._parser) return this.req._parser(this, string_);
7153
7162
  if (!parse && isJSON(this.type)) parse = request.parse['application/json'];
7154
7163
  return parse && string_ && (string_.length > 0 || string_ instanceof Object) ? parse(string_) : null;
@@ -7183,7 +7192,7 @@ var __webpack_modules__ = {
7183
7192
  error.original = err;
7184
7193
  if (self1.xhr) {
7185
7194
  error.rawResponse = void 0 === self1.xhr.responseType ? self1.xhr.responseText : self1.xhr.response;
7186
- error.status = self1.xhr.status ? self1.xhr.status : null;
7195
+ error.status = self1.xhr.status || null;
7187
7196
  error.statusCode = error.status;
7188
7197
  } else {
7189
7198
  error.rawResponse = null;
@@ -7209,11 +7218,11 @@ var __webpack_modules__ = {
7209
7218
  Emitter(Request.prototype);
7210
7219
  mixin(Request.prototype, RequestBase.prototype);
7211
7220
  Request.prototype.type = function(type) {
7212
- this.set('Content-Type', request.types[type] || type);
7221
+ this.set('Content-Type', lookupType(type));
7213
7222
  return this;
7214
7223
  };
7215
7224
  Request.prototype.accept = function(type) {
7216
- this.set('Accept', request.types[type] || type);
7225
+ this.set('Accept', lookupType(type));
7217
7226
  return this;
7218
7227
  };
7219
7228
  Request.prototype.auth = function(user, pass, options) {
@@ -7225,7 +7234,8 @@ var __webpack_modules__ = {
7225
7234
  if (!options) options = {
7226
7235
  type: 'function' == typeof btoa ? 'basic' : 'auto'
7227
7236
  };
7228
- const encoder = options.encoder ? options.encoder : (string)=>{
7237
+ let { encoder } = options;
7238
+ if (!encoder) encoder = (string)=>{
7229
7239
  if ('function' == typeof btoa) return btoa(string);
7230
7240
  throw new Error('Cannot use basic auth, btoa is not a function');
7231
7241
  };
@@ -7336,16 +7346,24 @@ var __webpack_modules__ = {
7336
7346
  if (this._withCredentials) xhr.withCredentials = true;
7337
7347
  if (!this._formData && 'GET' !== this.method && 'HEAD' !== this.method && 'string' != typeof data && !this._isHost(data)) {
7338
7348
  const contentType = this._header['content-type'];
7339
- let serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : ''];
7349
+ const serializeType = contentType ? contentType.split(';')[0] : '';
7350
+ let serialize = this._serializer || (hasOwn(request.serialize, serializeType) ? request.serialize[serializeType] : void 0);
7340
7351
  if (!serialize && isJSON(contentType)) serialize = request.serialize['application/json'];
7341
7352
  if (serialize) data = serialize(data);
7342
7353
  }
7343
- for(const field in this.header)if (null !== this.header[field]) {
7344
- if (hasOwn(this.header, field)) xhr.setRequestHeader(field, this.header[field]);
7354
+ try {
7355
+ for(const field in this.header)if (null !== this.header[field]) {
7356
+ if (hasOwn(this.header, field)) xhr.setRequestHeader(field, this.header[field]);
7357
+ }
7358
+ if (this._responseType) xhr.responseType = this._responseType;
7359
+ this.emit('request', this);
7360
+ xhr.send(void 0 === data ? null : data);
7361
+ } catch (err) {
7362
+ try {
7363
+ xhr.abort();
7364
+ } catch (err) {}
7365
+ return this.callback(err);
7345
7366
  }
7346
- if (this._responseType) xhr.responseType = this._responseType;
7347
- this.emit('request', this);
7348
- xhr.send(void 0 === data ? null : data);
7349
7367
  };
7350
7368
  const proxyAgent = new Proxy(Agent, {
7351
7369
  apply (target, thisArg, argumentsList) {
@@ -7355,6 +7373,7 @@ var __webpack_modules__ = {
7355
7373
  request.agent = proxyAgent;
7356
7374
  for (const method of [
7357
7375
  'GET',
7376
+ 'HEAD',
7358
7377
  'POST',
7359
7378
  'OPTIONS',
7360
7379
  'PATCH',
@@ -7442,7 +7461,7 @@ var __webpack_modules__ = {
7442
7461
  },
7443
7462
  d (module, __unused_rspack_exports, __webpack_require__) {
7444
7463
  "use strict";
7445
- const { isObject, hasOwn } = __webpack_require__("Dp");
7464
+ const { isObject, hasOwn, isSafeKey } = __webpack_require__("Dp");
7446
7465
  module.exports = RequestBase;
7447
7466
  function RequestBase() {}
7448
7467
  RequestBase.prototype.clearTimeout = function() {
@@ -7552,7 +7571,7 @@ var __webpack_modules__ = {
7552
7571
  if (this._endCalled) console.warn('Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises');
7553
7572
  this._fullfilledPromise = new Promise((resolve, reject)=>{
7554
7573
  self1.on('abort', ()=>{
7555
- if (this._maxRetries && this._maxRetries > this._retries) return;
7574
+ if (this.timedout && this._maxRetries && this._maxRetries > this._retries) return;
7556
7575
  if (this.timedout && this.timedoutError) return void reject(this.timedoutError);
7557
7576
  const error = new Error('Aborted');
7558
7577
  error.code = 'ABORTED';
@@ -7679,7 +7698,13 @@ var __webpack_modules__ = {
7679
7698
  } else if (data && this._data && this._isHost(this._data)) throw new Error("Can't merge these send calls");
7680
7699
  if (isObject_ && isObject(this._data)) for(const key in data){
7681
7700
  if ('bigint' == typeof data[key] && !data[key].toJSON) throw new Error('Cannot serialize BigInt value to json');
7682
- if (hasOwn(data, key)) this._data[key] = data[key];
7701
+ if (hasOwn(data, key)) if (isSafeKey(key)) this._data[key] = data[key];
7702
+ else Object.defineProperty(this._data, key, {
7703
+ value: data[key],
7704
+ enumerable: true,
7705
+ writable: true,
7706
+ configurable: true
7707
+ });
7683
7708
  }
7684
7709
  else if ('bigint' == typeof data) throw new Error("Cannot send value of type BigInt");
7685
7710
  else if ('string' == typeof data) {
@@ -7747,7 +7772,7 @@ var __webpack_modules__ = {
7747
7772
  const ct = header['content-type'] || '';
7748
7773
  this.type = utils.type(ct);
7749
7774
  const parameters = utils.params(ct);
7750
- for(const key in parameters)if (Object.prototype.hasOwnProperty.call(parameters, key)) this[key] = parameters[key];
7775
+ for(const key in parameters)if (Object.prototype.hasOwnProperty.call(parameters, key) && !(key in this)) this[key] = parameters[key];
7751
7776
  this.links = {};
7752
7777
  try {
7753
7778
  if (header.link) this.links = utils.parseLinks(header.link);
@@ -7778,13 +7803,19 @@ var __webpack_modules__ = {
7778
7803
  Dp (__unused_rspack_module, exports1) {
7779
7804
  "use strict";
7780
7805
  exports1.type = (string_)=>string_.split(/ *; */).shift();
7806
+ const UNSAFE_KEYS = new Set([
7807
+ '__proto__',
7808
+ 'constructor',
7809
+ 'prototype'
7810
+ ]);
7811
+ exports1.isSafeKey = (key)=>!UNSAFE_KEYS.has(key);
7781
7812
  exports1.params = (value)=>{
7782
7813
  const object = {};
7783
7814
  for (const string_ of value.split(/ *; */)){
7784
7815
  const parts = string_.split(/ *= */);
7785
7816
  const key = parts.shift();
7786
7817
  const value = parts.shift();
7787
- if (key && value) object[key] = value;
7818
+ if (key && value && exports1.isSafeKey(key)) object[key] = value;
7788
7819
  }
7789
7820
  return object;
7790
7821
  };
@@ -7793,8 +7824,14 @@ var __webpack_modules__ = {
7793
7824
  for (const string_ of value.split(/ *, */)){
7794
7825
  const parts = string_.split(/ *; */);
7795
7826
  const url = parts[0].slice(1, -1);
7796
- const rel = parts[1].split(/ *= */)[1].slice(1, -1);
7797
- object[rel] = url;
7827
+ for (const part of parts.slice(1)){
7828
+ const [key, keyValue] = part.split(/ *= */, 2);
7829
+ if (key && 'rel' === key.toLowerCase() && keyValue) {
7830
+ const relationship = keyValue.replace(/^"|"$/g, '');
7831
+ if (relationship && exports1.isSafeKey(relationship)) object[relationship] = url;
7832
+ break;
7833
+ }
7834
+ }
7798
7835
  }
7799
7836
  return object;
7800
7837
  };
@@ -7810,19 +7847,19 @@ var __webpack_modules__ = {
7810
7847
  return header;
7811
7848
  };
7812
7849
  exports1.normalizeHostname = (hostname)=>{
7813
- const [, normalized] = hostname.match(/^\[([^\]]+)\]$/) || [];
7850
+ const [, normalized] = hostname.match(/^\[([^\]]+)]$/) || [];
7814
7851
  return normalized || hostname;
7815
7852
  };
7816
7853
  exports1.isObject = (object)=>null !== object && 'object' == typeof object;
7817
7854
  exports1.hasOwn = Object.hasOwn || function(object, property) {
7818
7855
  if (null == object) throw new TypeError('Cannot convert undefined or null to object');
7819
- return Object.prototype.hasOwnProperty.call(new Object(object), property);
7856
+ return Object.prototype.hasOwnProperty.call(Object(object), property);
7820
7857
  };
7821
7858
  exports1.mixin = (target, source)=>{
7822
7859
  for(const key in source)if (exports1.hasOwn(source, key)) target[key] = source[key];
7823
7860
  };
7824
- exports1.isGzipOrDeflateEncoding = (res)=>new RegExp(/^\s*(?:deflate|gzip)\s*$/).test(res.headers['content-encoding']);
7825
- exports1.isBrotliEncoding = (res)=>new RegExp(/^\s*(?:br)\s*$/).test(res.headers['content-encoding']);
7861
+ exports1.isGzipOrDeflateEncoding = (res)=>/^\s*(?:deflate|gzip)\s*$/i.test(res.headers['content-encoding']);
7862
+ exports1.isBrotliEncoding = (res)=>/^\s*br\s*$/i.test(res.headers['content-encoding']);
7826
7863
  },
7827
7864
  E (module, __unused_rspack_exports, __webpack_require__) {
7828
7865
  var Buffer = __webpack_require__("dY").Buffer;
@@ -10933,7 +10970,7 @@ var __webpack_exports__ = {};
10933
10970
  var client = __webpack_require__("Q");
10934
10971
  var client_default = /*#__PURE__*/ __webpack_require__.n(client);
10935
10972
  var package_namespaceObject = {
10936
- rE: "15.7.7"
10973
+ rE: "15.7.9"
10937
10974
  };
10938
10975
  function isAudioEnabled(options) {
10939
10976
  return Boolean(options.audio.enabled);
package/dist/esm/index.js CHANGED
@@ -3619,7 +3619,7 @@ const constants = {
3619
3619
  }
3620
3620
  };
3621
3621
  var package_namespaceObject = {
3622
- rE: "15.7.7"
3622
+ rE: "15.7.9"
3623
3623
  };
3624
3624
  function isAudioEnabled(options) {
3625
3625
  return Boolean(options.audio.enabled);
package/dist/umd/index.js CHANGED
@@ -7051,7 +7051,7 @@
7051
7051
  const safeStringify = __webpack_require__("X");
7052
7052
  const qs = __webpack_require__("b");
7053
7053
  const RequestBase = __webpack_require__("d");
7054
- const { isObject, mixin, hasOwn } = __webpack_require__("Dp");
7054
+ const { isObject, mixin, hasOwn, isSafeKey } = __webpack_require__("Dp");
7055
7055
  const ResponseBase = __webpack_require__("e");
7056
7056
  const Agent = __webpack_require__("pf");
7057
7057
  function noop() {}
@@ -7105,12 +7105,18 @@
7105
7105
  form: 'application/x-www-form-urlencoded',
7106
7106
  'form-data': 'application/x-www-form-urlencoded'
7107
7107
  };
7108
+ function lookupType(type) {
7109
+ return hasOwn(request.types, type) && request.types[type] || type;
7110
+ }
7108
7111
  request.serialize = {
7109
- 'application/x-www-form-urlencoded': (obj)=>qs.stringify(obj, {
7112
+ 'application/x-www-form-urlencoded' (object) {
7113
+ return qs.stringify(object, {
7110
7114
  indices: false,
7111
7115
  strictNullHandling: true
7112
- }),
7113
- 'application/json': safeStringify
7116
+ });
7117
+ },
7118
+ 'application/json': safeStringify,
7119
+ 'application/csp-report': safeStringify
7114
7120
  };
7115
7121
  request.parse = {
7116
7122
  'application/x-www-form-urlencoded': parseString,
@@ -7128,8 +7134,10 @@
7128
7134
  index = line.indexOf(':');
7129
7135
  if (-1 !== index) {
7130
7136
  field = line.slice(0, index).toLowerCase();
7131
- value = trim(line.slice(index + 1));
7132
- fields[field] = value;
7137
+ if (isSafeKey(field)) {
7138
+ value = trim(line.slice(index + 1));
7139
+ fields[field] = value;
7140
+ }
7133
7141
  }
7134
7142
  }
7135
7143
  return fields;
@@ -7150,11 +7158,12 @@
7150
7158
  this.header['content-type'] = this.xhr.getResponseHeader('content-type');
7151
7159
  this._setHeaderProperties(this.header);
7152
7160
  if (null === this.text && request_._responseType) this.body = this.xhr.response;
7153
- else this.body = 'HEAD' === this.req.method ? null : this._parseBody(this.text ? this.text : this.xhr.response);
7161
+ else if ('HEAD' === this.req.method) this.body = null;
7162
+ else this.body = this._parseBody(this.text || this.xhr.response);
7154
7163
  }
7155
7164
  mixin(Response.prototype, ResponseBase.prototype);
7156
7165
  Response.prototype._parseBody = function(string_) {
7157
- let parse = request.parse[this.type];
7166
+ let parse = hasOwn(request.parse, this.type) ? request.parse[this.type] : void 0;
7158
7167
  if (this.req._parser) return this.req._parser(this, string_);
7159
7168
  if (!parse && isJSON(this.type)) parse = request.parse['application/json'];
7160
7169
  return parse && string_ && (string_.length > 0 || string_ instanceof Object) ? parse(string_) : null;
@@ -7189,7 +7198,7 @@
7189
7198
  error.original = err;
7190
7199
  if (self1.xhr) {
7191
7200
  error.rawResponse = void 0 === self1.xhr.responseType ? self1.xhr.responseText : self1.xhr.response;
7192
- error.status = self1.xhr.status ? self1.xhr.status : null;
7201
+ error.status = self1.xhr.status || null;
7193
7202
  error.statusCode = error.status;
7194
7203
  } else {
7195
7204
  error.rawResponse = null;
@@ -7215,11 +7224,11 @@
7215
7224
  Emitter(Request.prototype);
7216
7225
  mixin(Request.prototype, RequestBase.prototype);
7217
7226
  Request.prototype.type = function(type) {
7218
- this.set('Content-Type', request.types[type] || type);
7227
+ this.set('Content-Type', lookupType(type));
7219
7228
  return this;
7220
7229
  };
7221
7230
  Request.prototype.accept = function(type) {
7222
- this.set('Accept', request.types[type] || type);
7231
+ this.set('Accept', lookupType(type));
7223
7232
  return this;
7224
7233
  };
7225
7234
  Request.prototype.auth = function(user, pass, options) {
@@ -7231,7 +7240,8 @@
7231
7240
  if (!options) options = {
7232
7241
  type: 'function' == typeof btoa ? 'basic' : 'auto'
7233
7242
  };
7234
- const encoder = options.encoder ? options.encoder : (string)=>{
7243
+ let { encoder } = options;
7244
+ if (!encoder) encoder = (string)=>{
7235
7245
  if ('function' == typeof btoa) return btoa(string);
7236
7246
  throw new Error('Cannot use basic auth, btoa is not a function');
7237
7247
  };
@@ -7342,16 +7352,24 @@
7342
7352
  if (this._withCredentials) xhr.withCredentials = true;
7343
7353
  if (!this._formData && 'GET' !== this.method && 'HEAD' !== this.method && 'string' != typeof data && !this._isHost(data)) {
7344
7354
  const contentType = this._header['content-type'];
7345
- let serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : ''];
7355
+ const serializeType = contentType ? contentType.split(';')[0] : '';
7356
+ let serialize = this._serializer || (hasOwn(request.serialize, serializeType) ? request.serialize[serializeType] : void 0);
7346
7357
  if (!serialize && isJSON(contentType)) serialize = request.serialize['application/json'];
7347
7358
  if (serialize) data = serialize(data);
7348
7359
  }
7349
- for(const field in this.header)if (null !== this.header[field]) {
7350
- if (hasOwn(this.header, field)) xhr.setRequestHeader(field, this.header[field]);
7360
+ try {
7361
+ for(const field in this.header)if (null !== this.header[field]) {
7362
+ if (hasOwn(this.header, field)) xhr.setRequestHeader(field, this.header[field]);
7363
+ }
7364
+ if (this._responseType) xhr.responseType = this._responseType;
7365
+ this.emit('request', this);
7366
+ xhr.send(void 0 === data ? null : data);
7367
+ } catch (err) {
7368
+ try {
7369
+ xhr.abort();
7370
+ } catch (err) {}
7371
+ return this.callback(err);
7351
7372
  }
7352
- if (this._responseType) xhr.responseType = this._responseType;
7353
- this.emit('request', this);
7354
- xhr.send(void 0 === data ? null : data);
7355
7373
  };
7356
7374
  const proxyAgent = new Proxy(Agent, {
7357
7375
  apply (target, thisArg, argumentsList) {
@@ -7361,6 +7379,7 @@
7361
7379
  request.agent = proxyAgent;
7362
7380
  for (const method of [
7363
7381
  'GET',
7382
+ 'HEAD',
7364
7383
  'POST',
7365
7384
  'OPTIONS',
7366
7385
  'PATCH',
@@ -7448,7 +7467,7 @@
7448
7467
  },
7449
7468
  d (module1, __unused_rspack_exports, __webpack_require__) {
7450
7469
  "use strict";
7451
- const { isObject, hasOwn } = __webpack_require__("Dp");
7470
+ const { isObject, hasOwn, isSafeKey } = __webpack_require__("Dp");
7452
7471
  module1.exports = RequestBase;
7453
7472
  function RequestBase() {}
7454
7473
  RequestBase.prototype.clearTimeout = function() {
@@ -7558,7 +7577,7 @@
7558
7577
  if (this._endCalled) console.warn('Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises');
7559
7578
  this._fullfilledPromise = new Promise((resolve, reject)=>{
7560
7579
  self1.on('abort', ()=>{
7561
- if (this._maxRetries && this._maxRetries > this._retries) return;
7580
+ if (this.timedout && this._maxRetries && this._maxRetries > this._retries) return;
7562
7581
  if (this.timedout && this.timedoutError) return void reject(this.timedoutError);
7563
7582
  const error = new Error('Aborted');
7564
7583
  error.code = 'ABORTED';
@@ -7685,7 +7704,13 @@
7685
7704
  } else if (data && this._data && this._isHost(this._data)) throw new Error("Can't merge these send calls");
7686
7705
  if (isObject_ && isObject(this._data)) for(const key in data){
7687
7706
  if ('bigint' == typeof data[key] && !data[key].toJSON) throw new Error('Cannot serialize BigInt value to json');
7688
- if (hasOwn(data, key)) this._data[key] = data[key];
7707
+ if (hasOwn(data, key)) if (isSafeKey(key)) this._data[key] = data[key];
7708
+ else Object.defineProperty(this._data, key, {
7709
+ value: data[key],
7710
+ enumerable: true,
7711
+ writable: true,
7712
+ configurable: true
7713
+ });
7689
7714
  }
7690
7715
  else if ('bigint' == typeof data) throw new Error("Cannot send value of type BigInt");
7691
7716
  else if ('string' == typeof data) {
@@ -7753,7 +7778,7 @@
7753
7778
  const ct = header['content-type'] || '';
7754
7779
  this.type = utils.type(ct);
7755
7780
  const parameters = utils.params(ct);
7756
- for(const key in parameters)if (Object.prototype.hasOwnProperty.call(parameters, key)) this[key] = parameters[key];
7781
+ for(const key in parameters)if (Object.prototype.hasOwnProperty.call(parameters, key) && !(key in this)) this[key] = parameters[key];
7757
7782
  this.links = {};
7758
7783
  try {
7759
7784
  if (header.link) this.links = utils.parseLinks(header.link);
@@ -7784,13 +7809,19 @@
7784
7809
  Dp (__unused_rspack_module, exports1) {
7785
7810
  "use strict";
7786
7811
  exports1.type = (string_)=>string_.split(/ *; */).shift();
7812
+ const UNSAFE_KEYS = new Set([
7813
+ '__proto__',
7814
+ 'constructor',
7815
+ 'prototype'
7816
+ ]);
7817
+ exports1.isSafeKey = (key)=>!UNSAFE_KEYS.has(key);
7787
7818
  exports1.params = (value)=>{
7788
7819
  const object = {};
7789
7820
  for (const string_ of value.split(/ *; */)){
7790
7821
  const parts = string_.split(/ *= */);
7791
7822
  const key = parts.shift();
7792
7823
  const value = parts.shift();
7793
- if (key && value) object[key] = value;
7824
+ if (key && value && exports1.isSafeKey(key)) object[key] = value;
7794
7825
  }
7795
7826
  return object;
7796
7827
  };
@@ -7799,8 +7830,14 @@
7799
7830
  for (const string_ of value.split(/ *, */)){
7800
7831
  const parts = string_.split(/ *; */);
7801
7832
  const url = parts[0].slice(1, -1);
7802
- const rel = parts[1].split(/ *= */)[1].slice(1, -1);
7803
- object[rel] = url;
7833
+ for (const part of parts.slice(1)){
7834
+ const [key, keyValue] = part.split(/ *= */, 2);
7835
+ if (key && 'rel' === key.toLowerCase() && keyValue) {
7836
+ const relationship = keyValue.replace(/^"|"$/g, '');
7837
+ if (relationship && exports1.isSafeKey(relationship)) object[relationship] = url;
7838
+ break;
7839
+ }
7840
+ }
7804
7841
  }
7805
7842
  return object;
7806
7843
  };
@@ -7816,19 +7853,19 @@
7816
7853
  return header;
7817
7854
  };
7818
7855
  exports1.normalizeHostname = (hostname)=>{
7819
- const [, normalized] = hostname.match(/^\[([^\]]+)\]$/) || [];
7856
+ const [, normalized] = hostname.match(/^\[([^\]]+)]$/) || [];
7820
7857
  return normalized || hostname;
7821
7858
  };
7822
7859
  exports1.isObject = (object)=>null !== object && 'object' == typeof object;
7823
7860
  exports1.hasOwn = Object.hasOwn || function(object, property) {
7824
7861
  if (null == object) throw new TypeError('Cannot convert undefined or null to object');
7825
- return Object.prototype.hasOwnProperty.call(new Object(object), property);
7862
+ return Object.prototype.hasOwnProperty.call(Object(object), property);
7826
7863
  };
7827
7864
  exports1.mixin = (target, source)=>{
7828
7865
  for(const key in source)if (exports1.hasOwn(source, key)) target[key] = source[key];
7829
7866
  };
7830
- exports1.isGzipOrDeflateEncoding = (res)=>new RegExp(/^\s*(?:deflate|gzip)\s*$/).test(res.headers['content-encoding']);
7831
- exports1.isBrotliEncoding = (res)=>new RegExp(/^\s*(?:br)\s*$/).test(res.headers['content-encoding']);
7867
+ exports1.isGzipOrDeflateEncoding = (res)=>/^\s*(?:deflate|gzip)\s*$/i.test(res.headers['content-encoding']);
7868
+ exports1.isBrotliEncoding = (res)=>/^\s*br\s*$/i.test(res.headers['content-encoding']);
7832
7869
  },
7833
7870
  E (module1, __unused_rspack_exports, __webpack_require__) {
7834
7871
  var Buffer = __webpack_require__("dY").Buffer;
@@ -10939,7 +10976,7 @@
10939
10976
  var client = __webpack_require__("Q");
10940
10977
  var client_default = /*#__PURE__*/ __webpack_require__.n(client);
10941
10978
  var package_namespaceObject = {
10942
- rE: "15.7.7"
10979
+ rE: "15.7.9"
10943
10980
  };
10944
10981
  function isAudioEnabled(options) {
10945
10982
  return Boolean(options.audio.enabled);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "videomail-client",
3
- "version": "15.7.7",
3
+ "version": "15.7.9",
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",
@@ -70,7 +70,7 @@
70
70
  "is-power-of-two": "1.0.0",
71
71
  "nanoevents": "10.0.0",
72
72
  "serialize-error": "13.0.1",
73
- "superagent": "10.3.0",
73
+ "superagent": "10.4.1",
74
74
  "ua-parser-js": "2.0.10",
75
75
  "websocket-stream": "5.5.2"
76
76
  },
@@ -81,7 +81,7 @@
81
81
  "@rsbuild/plugin-node-polyfill": "1.4.6",
82
82
  "@rsbuild/plugin-stylus": "2.0.1",
83
83
  "@rsdoctor/rspack-plugin": "1.6.4",
84
- "@rslib/core": "1.0.1",
84
+ "@rslib/core": "1.0.2",
85
85
  "@storybook/addon-a11y": "10.6.0",
86
86
  "@storybook/addon-docs": "10.6.0",
87
87
  "@storybook/addon-links": "10.6.0",
@@ -89,37 +89,37 @@
89
89
  "@tsconfig/node26": "26.0.1",
90
90
  "@tsconfig/strictest": "2.0.8",
91
91
  "@types/defined": "1.0.2",
92
- "@types/node": "26.6.2",
92
+ "@types/node": "26.6.3",
93
93
  "@types/superagent": "8.1.11",
94
94
  "@types/ua-parser-js": "0.7.39",
95
95
  "@vitest/eslint-plugin": "1.6.27",
96
96
  "audit-ci": "7.1.0",
97
- "chromatic": "18.9.4",
97
+ "chromatic": "18.9.5",
98
98
  "cross-env": "10.1.0",
99
99
  "eslint": "10.11.0",
100
100
  "eslint-import-resolver-typescript": "4.4.5",
101
101
  "eslint-plugin-de-morgan": "2.2.0",
102
102
  "eslint-plugin-depend": "1.5.0",
103
103
  "eslint-plugin-import-x": "4.17.1",
104
- "eslint-plugin-package-json": "1.9.0",
104
+ "eslint-plugin-package-json": "1.10.0",
105
105
  "eslint-plugin-regexp": "3.3.1",
106
106
  "eslint-plugin-simple-import-sort": "14.0.0",
107
107
  "globals": "17.12.0",
108
- "jsdom": "30.1.0",
108
+ "jsdom": "30.1.1",
109
109
  "msw": "2.15.0",
110
110
  "msw-storybook-addon": "3.0.3",
111
- "prettier": "3.9.8",
111
+ "prettier": "3.9.9",
112
112
  "prettier-plugin-curly": "0.4.1",
113
113
  "prettier-plugin-jsdoc": "1.8.1",
114
114
  "prettier-plugin-packagejson": "3.0.2",
115
- "prettier-plugin-sh": "0.19.0",
115
+ "prettier-plugin-sh": "0.20.2",
116
116
  "release-it": "21.1.0",
117
117
  "storybook": "10.6.0",
118
118
  "storybook-html-rsbuild": "3.6.0",
119
119
  "type-fest": "5.10.0",
120
120
  "typescript": "6.0.3",
121
- "typescript-eslint": "8.70.0",
122
- "vitest": "5.0.1"
121
+ "typescript-eslint": "8.70.1",
122
+ "vitest": "5.0.2"
123
123
  },
124
124
  "engines": {
125
125
  "node": "^26.5.0",