videomail-client 13.12.8 → 13.12.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.
@@ -6103,8 +6103,8 @@ var __webpack_modules__ = {
6103
6103
  }
6104
6104
  return leaf;
6105
6105
  };
6106
- var splitKeyIntoSegments = function(givenKey, options) {
6107
- var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey;
6106
+ var splitKeyIntoSegments = function(originalKey, options) {
6107
+ var key = options.allowDots ? originalKey.replace(/\.([^.[]+)/g, '[$1]') : originalKey;
6108
6108
  if (options.depth <= 0) {
6109
6109
  if (!options.plainObjects && has.call(Object.prototype, key)) {
6110
6110
  if (!options.allowPrototypes) return;
@@ -6113,31 +6113,47 @@ var __webpack_modules__ = {
6113
6113
  key
6114
6114
  ];
6115
6115
  }
6116
- var brackets = /(\[[^[\]]*])/;
6117
- var child = /(\[[^[\]]*])/g;
6118
- var segment = brackets.exec(key);
6119
- var parent = segment ? key.slice(0, segment.index) : key;
6120
- var keys = [];
6116
+ var segments = [];
6117
+ var first = key.indexOf('[');
6118
+ var parent = first >= 0 ? key.slice(0, first) : key;
6121
6119
  if (parent) {
6122
6120
  if (!options.plainObjects && has.call(Object.prototype, parent)) {
6123
6121
  if (!options.allowPrototypes) return;
6124
6122
  }
6125
- keys[keys.length] = parent;
6126
- }
6127
- var i = 0;
6128
- while(null !== (segment = child.exec(key)) && i < options.depth){
6129
- i += 1;
6130
- var segmentContent = segment[1].slice(1, -1);
6131
- if (!options.plainObjects && has.call(Object.prototype, segmentContent)) {
6132
- if (!options.allowPrototypes) return;
6123
+ segments[segments.length] = parent;
6124
+ }
6125
+ var n = key.length;
6126
+ var open = first;
6127
+ var collected = 0;
6128
+ while(open >= 0 && collected < options.depth){
6129
+ var level = 1;
6130
+ var i = open + 1;
6131
+ var close = -1;
6132
+ while(i < n && close < 0){
6133
+ var cu = key.charCodeAt(i);
6134
+ if (0x5B === cu) level += 1;
6135
+ else if (0x5D === cu) {
6136
+ level -= 1;
6137
+ if (0 === level) close = i;
6138
+ }
6139
+ i += 1;
6133
6140
  }
6134
- keys[keys.length] = segment[1];
6135
- }
6136
- if (segment) {
6141
+ if (close < 0) {
6142
+ segments[segments.length] = '[' + key.slice(open) + ']';
6143
+ return segments;
6144
+ }
6145
+ var seg = key.slice(open, close + 1);
6146
+ var content = seg.slice(1, -1);
6147
+ if (!options.plainObjects && has.call(Object.prototype, content) && !options.allowPrototypes) return;
6148
+ segments[segments.length] = seg;
6149
+ collected += 1;
6150
+ open = key.indexOf('[', close + 1);
6151
+ }
6152
+ if (open >= 0) {
6137
6153
  if (true === options.strictDepth) throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true');
6138
- keys[keys.length] = '[' + key.slice(segment.index) + ']';
6154
+ segments[segments.length] = '[' + key.slice(open) + ']';
6139
6155
  }
6140
- return keys;
6156
+ return segments;
6141
6157
  };
6142
6158
  var parseKeys = function(givenKey, val, options, valuesParsed) {
6143
6159
  if (!givenKey) return;
@@ -6273,7 +6289,7 @@ var __webpack_modules__ = {
6273
6289
  return value;
6274
6290
  });
6275
6291
  if (null === obj) {
6276
- if (strictNullHandling) return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;
6292
+ if (strictNullHandling) return formatter(encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix);
6277
6293
  obj = '';
6278
6294
  }
6279
6295
  if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {
@@ -6291,7 +6307,9 @@ var __webpack_modules__ = {
6291
6307
  if (void 0 === obj) return values;
6292
6308
  var objKeys;
6293
6309
  if ('comma' === generateArrayPrefix && isArray(obj)) {
6294
- if (encodeValuesOnly && encoder) obj = utils.maybeMap(obj, encoder);
6310
+ if (encodeValuesOnly && encoder) obj = utils.maybeMap(obj, function(v) {
6311
+ return null == v ? v : encoder(v);
6312
+ });
6295
6313
  objKeys = [
6296
6314
  {
6297
6315
  value: obj.length > 0 ? obj.join(',') || null : void 0
@@ -6381,13 +6399,15 @@ var __webpack_modules__ = {
6381
6399
  var sideChannel = getSideChannel();
6382
6400
  for(var i = 0; i < objKeys.length; ++i){
6383
6401
  var key = objKeys[i];
6384
- var value = obj[key];
6385
- if (!options.skipNulls || null !== value) pushToArray(keys, stringify(value, key, generateArrayPrefix, commaRoundTrip, options.allowEmptyArrays, options.strictNullHandling, options.skipNulls, options.encodeDotInKeys, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.format, options.formatter, options.encodeValuesOnly, options.charset, sideChannel));
6402
+ if (null != key) {
6403
+ var value = obj[key];
6404
+ if (!options.skipNulls || null !== value) pushToArray(keys, stringify(value, key, generateArrayPrefix, commaRoundTrip, options.allowEmptyArrays, options.strictNullHandling, options.skipNulls, options.encodeDotInKeys, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.format, options.formatter, options.encodeValuesOnly, options.charset, sideChannel));
6405
+ }
6386
6406
  }
6387
6407
  var joined = keys.join(options.delimiter);
6388
6408
  var prefix = true === options.addQueryPrefix ? '?' : '';
6389
- if (options.charsetSentinel) if ('iso-8859-1' === options.charset) prefix += 'utf8=%26%2310003%3B&';
6390
- else prefix += 'utf8=%E2%9C%93&';
6409
+ if (options.charsetSentinel) if ('iso-8859-1' === options.charset) prefix += 'utf8=%26%2310003%3B' + options.delimiter;
6410
+ else prefix += 'utf8=%E2%9C%93' + options.delimiter;
6391
6411
  return joined.length > 0 ? prefix + joined : '';
6392
6412
  };
6393
6413
  },
@@ -10852,7 +10872,7 @@ var __webpack_exports__ = {};
10852
10872
  var client = __webpack_require__("./node_modules/superagent/lib/client.js");
10853
10873
  var client_default = /*#__PURE__*/ __webpack_require__.n(client);
10854
10874
  var package_namespaceObject = {
10855
- rE: "13.12.8"
10875
+ rE: "13.12.9"
10856
10876
  };
10857
10877
  function isAudioEnabled(options) {
10858
10878
  return Boolean(options.audio.enabled);
@@ -10885,7 +10905,7 @@ var __webpack_exports__ = {};
10885
10905
  const util_pretty = pretty;
10886
10906
  var defined = __webpack_require__("./node_modules/defined/index.js");
10887
10907
  var defined_default = /*#__PURE__*/ __webpack_require__.n(defined);
10888
- var LIBVERSION = '2.0.9', UA_MAX_LENGTH = 500, USER_AGENT = 'user-agent', EMPTY = '', UNKNOWN = '?', TYPEOF = {
10908
+ var LIBVERSION = '2.0.10', UA_MAX_LENGTH = 500, USER_AGENT = 'user-agent', EMPTY = '', UNKNOWN = '?', TYPEOF = {
10889
10909
  FUNCTION: 'function',
10890
10910
  OBJECT: 'object',
10891
10911
  STRING: 'string',
@@ -10928,7 +10948,7 @@ var __webpack_exports__ = {};
10928
10948
  }, itemListToArray = function(header) {
10929
10949
  if (!header) return;
10930
10950
  var arr = [];
10931
- var tokens = strip(/\\?\"/g, header).split(',');
10951
+ var tokens = normalizeHeaderValue(header).split(',');
10932
10952
  for(var i = 0; i < tokens.length; i++)if (tokens[i].indexOf(';') > -1) {
10933
10953
  var token = ua_parser_trim(tokens[i]).split(';v=');
10934
10954
  arr[i] = {
@@ -10941,6 +10961,8 @@ var __webpack_exports__ = {};
10941
10961
  return isString(str) ? str.toLowerCase() : str;
10942
10962
  }, majorize = function(version) {
10943
10963
  return isString(version) ? strip(/[^\d\.]/g, version).split('.')[0] : void 0;
10964
+ }, normalizeHeaderValue = function(str) {
10965
+ return isString(str) ? ua_parser_trim(strip(/\\?\"/g, str), UA_MAX_LENGTH) : void 0;
10944
10966
  }, setProps = function(arr) {
10945
10967
  for(var i in arr)if (arr.hasOwnProperty(i)) {
10946
10968
  var propName = arr[i];
@@ -10950,8 +10972,6 @@ var __webpack_exports__ = {};
10950
10972
  return this;
10951
10973
  }, strip = function(pattern, str) {
10952
10974
  return isString(str) ? str.replace(pattern, EMPTY) : str;
10953
- }, stripQuotes = function(str) {
10954
- return strip(/\\?\"/g, str);
10955
10975
  }, ua_parser_trim = function(str, len) {
10956
10976
  str = strip(/^\s\s*/, String(str));
10957
10977
  return typeof len === TYPEOF.UNDEFINED ? str : str.substring(0, len);
@@ -10984,6 +11004,8 @@ var __webpack_exports__ = {};
10984
11004
  }
10985
11005
  i += 2;
10986
11006
  }
11007
+ }, strTest = function(str, map) {
11008
+ return map.test.test(str) ? map.ifTrue : map.ifFalse;
10987
11009
  }, strMapper = function(str, map) {
10988
11010
  for(var i in map)if (typeof map[i] === TYPEOF.OBJECT && map[i].length > 0) {
10989
11011
  for(var j = 0; j < map[i].length; j++)if (has(map[i][j], str)) return i === UNKNOWN ? void 0 : i;
@@ -11060,6 +11082,10 @@ var __webpack_exports__ = {};
11060
11082
  [
11061
11083
  NAME,
11062
11084
  EDGE + ' WebView'
11085
+ ],
11086
+ [
11087
+ TYPE,
11088
+ INAPP
11063
11089
  ]
11064
11090
  ],
11065
11091
  [
@@ -11167,7 +11193,7 @@ var __webpack_exports__ = {};
11167
11193
  ]
11168
11194
  ],
11169
11195
  [
11170
- /(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i
11196
+ /(?:\buc? ?browser|(?:juc.+)ucweb| ucpc)[\/ ]?([\w\.]+)/i
11171
11197
  ],
11172
11198
  [
11173
11199
  VERSION,
@@ -11361,6 +11387,16 @@ var __webpack_exports__ = {};
11361
11387
  ],
11362
11388
  VERSION
11363
11389
  ],
11390
+ [
11391
+ / HBPC\/([\w\.]+)/
11392
+ ],
11393
+ [
11394
+ VERSION,
11395
+ [
11396
+ NAME,
11397
+ HUAWEI + SUFFIX_BROWSER
11398
+ ]
11399
+ ],
11364
11400
  [
11365
11401
  /samsungbrowser\/([\w\.]+)/i
11366
11402
  ],
@@ -11534,17 +11570,25 @@ var __webpack_exports__ = {};
11534
11570
  [
11535
11571
  NAME,
11536
11572
  EDGE + ' WebView2'
11573
+ ],
11574
+ [
11575
+ TYPE,
11576
+ INAPP
11537
11577
  ]
11538
11578
  ],
11539
11579
  [
11540
- / wv\).+(chrome)\/([\w\.]+)/i
11580
+ /; wv\).+(chrome)\/([\w\.]+)/i
11541
11581
  ],
11542
11582
  [
11543
11583
  [
11544
11584
  NAME,
11545
11585
  CHROME + ' WebView'
11546
11586
  ],
11547
- VERSION
11587
+ VERSION,
11588
+ [
11589
+ TYPE,
11590
+ INAPP
11591
+ ]
11548
11592
  ],
11549
11593
  [
11550
11594
  /droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i
@@ -11936,7 +11980,7 @@ var __webpack_exports__ = {};
11936
11980
  /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,
11937
11981
  /oid[^\)]+; (redmi[\-_ ]?(?:note|k)?[\w_ ]+|m?[12]\d[01]\d\w{3,6}|poco[\w ]+|(shark )?\w{3}-[ah]0|qin ?[1-3](s\+|ultra| pro)?)( bui|; wv|\))/i,
11938
11982
  /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\d{0,2}\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\))/i,
11939
- / ([\w ]+) miui\/v?\d/i
11983
+ /; ([\w ]+) miui\/v?\d/i
11940
11984
  ],
11941
11985
  [
11942
11986
  [
@@ -12537,6 +12581,21 @@ var __webpack_exports__ = {};
12537
12581
  MOBILE
12538
12582
  ]
12539
12583
  ],
12584
+ [
12585
+ /blackview ([-\w ]+)( b|\))/i,
12586
+ /; (bv\d{4}[-\w ]*)( b|\))/i
12587
+ ],
12588
+ [
12589
+ MODEL,
12590
+ [
12591
+ VENDOR,
12592
+ 'Blackview'
12593
+ ],
12594
+ [
12595
+ TYPE,
12596
+ MOBILE
12597
+ ]
12598
+ ],
12540
12599
  [
12541
12600
  /; (n159v)/i
12542
12601
  ],
@@ -12551,6 +12610,25 @@ var __webpack_exports__ = {};
12551
12610
  MOBILE
12552
12611
  ]
12553
12612
  ],
12613
+ [
12614
+ /((revvl[ \w\+]+|tm(?:rv|af)\w*[45]g(?:tb)?))( b|\))/i
12615
+ ],
12616
+ [
12617
+ MODEL,
12618
+ [
12619
+ TYPE,
12620
+ strTest,
12621
+ {
12622
+ test: /ta?b/i,
12623
+ ifTrue: TABLET,
12624
+ ifFalse: MOBILE
12625
+ }
12626
+ ],
12627
+ [
12628
+ VENDOR,
12629
+ 'T-Mobile'
12630
+ ]
12631
+ ],
12554
12632
  [
12555
12633
  /(imo) (tab \w+)/i,
12556
12634
  /(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i
@@ -12565,7 +12643,7 @@ var __webpack_exports__ = {};
12565
12643
  ],
12566
12644
  [
12567
12645
  /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\w]*)/i,
12568
- /; (blu|hmd|imo|infinix|lava|oneplus|tcl|wiko)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,
12646
+ /; (blu|coolpad|cubot|hmd|imo|infinix|lava|oneplus|tcl|wiko)[_ ]([-\w\+ ]+?)(?: bui|\)|; r)/i,
12569
12647
  /(hp) ([\w ]+\w)/i,
12570
12648
  /(microsoft); (lumia[\w ]+)/i,
12571
12649
  /(oppo) ?([\w ]+) bui/i,
@@ -13817,19 +13895,19 @@ var __webpack_exports__ = {};
13817
13895
  ],
13818
13896
  [
13819
13897
  MODEL,
13820
- stripQuotes(uach[CH_MODEL])
13898
+ normalizeHeaderValue(uach[CH_MODEL])
13821
13899
  ],
13822
13900
  [
13823
13901
  PLATFORM,
13824
- stripQuotes(uach[CH_PLATFORM])
13902
+ normalizeHeaderValue(uach[CH_PLATFORM])
13825
13903
  ],
13826
13904
  [
13827
13905
  PLATFORMVER,
13828
- stripQuotes(uach[CH_PLATFORM_VER])
13906
+ normalizeHeaderValue(uach[CH_PLATFORM_VER])
13829
13907
  ],
13830
13908
  [
13831
13909
  ARCHITECTURE,
13832
- stripQuotes(uach[CH_ARCH])
13910
+ normalizeHeaderValue(uach[CH_ARCH])
13833
13911
  ],
13834
13912
  [
13835
13913
  FORMFACTORS,
@@ -13837,7 +13915,7 @@ var __webpack_exports__ = {};
13837
13915
  ],
13838
13916
  [
13839
13917
  BITNESS,
13840
- stripQuotes(uach[CH_BITNESS])
13918
+ normalizeHeaderValue(uach[CH_BITNESS])
13841
13919
  ]
13842
13920
  ]);
13843
13921
  else for(var prop in uach)if (this.hasOwnProperty(prop) && typeof uach[prop] !== TYPEOF.UNDEFINED) this[prop] = uach[prop];
@@ -13907,9 +13985,11 @@ var __webpack_exports__ = {};
13907
13985
  this.set(MAJOR, majorize(this.get(VERSION)));
13908
13986
  break;
13909
13987
  case OS:
13910
- if ('iOS' == this.get(NAME) && '18.6' == this.get(VERSION)) {
13911
- var realVersion = /\) Version\/([\d\.]+)/.exec(this.ua);
13912
- if (realVersion && parseInt(realVersion[1].substring(0, 2), 10) >= 26) this.set(VERSION, realVersion[1]);
13988
+ if ('iOS' == this.get(NAME) && this.get(VERSION)) {
13989
+ if (/^1[89][^\d]/.exec(this.get(VERSION))) {
13990
+ var realVersion = /\) Version\/((\d+)[\d\.]*)/.exec(this.ua);
13991
+ if (realVersion && parseInt(realVersion[2], 10) >= 26) this.set(VERSION, realVersion[1]);
13992
+ }
13913
13993
  }
13914
13994
  break;
13915
13995
  }
@@ -14003,7 +14083,7 @@ var __webpack_exports__ = {};
14003
14083
  headers = normalized;
14004
14084
  }
14005
14085
  if (!(this instanceof UAParser)) return new UAParser(ua, extensions, headers).getResult();
14006
- var userAgent = typeof ua === TYPEOF.STRING ? ua : headers && headers[USER_AGENT] ? headers[USER_AGENT] : NAVIGATOR && NAVIGATOR.userAgent ? NAVIGATOR.userAgent : EMPTY, httpUACH = new UACHData(headers, true), regexMap = extensions ? extend(defaultRegexes, extensions) : defaultRegexes, createItemFunc = function(itemType) {
14086
+ var userAgent = typeof ua === TYPEOF.STRING ? ua : headers && headers[USER_AGENT] ? headers[USER_AGENT] : NAVIGATOR && NAVIGATOR.userAgent ? NAVIGATOR.userAgent : EMPTY, httpUACH = new UACHData(headers, true), regexMap = defaultRegexes, createItemFunc = function(itemType) {
14007
14087
  if (itemType == RESULT) return function() {
14008
14088
  return new UAItem(itemType, userAgent, regexMap, httpUACH).set('ua', userAgent).set(BROWSER, this.getBrowser()).set(CPU, this.getCPU()).set(DEVICE, this.getDevice()).set(ENGINE, this.getEngine()).set(OS, this.getOS()).get();
14009
14089
  };
@@ -14048,8 +14128,15 @@ var __webpack_exports__ = {};
14048
14128
  if (isString(ua)) userAgent = ua_parser_trim(ua, UA_MAX_LENGTH);
14049
14129
  return this;
14050
14130
  }
14131
+ ],
14132
+ [
14133
+ 'useExtension',
14134
+ function(exts) {
14135
+ if (exts) regexMap = extend(regexMap, exts);
14136
+ return this;
14137
+ }
14051
14138
  ]
14052
- ]).setUA(userAgent);
14139
+ ]).setUA(userAgent).useExtension(extensions);
14053
14140
  return this;
14054
14141
  }
14055
14142
  UAParser.VERSION = LIBVERSION;
package/dist/esm/index.js CHANGED
@@ -3613,7 +3613,7 @@ const constants = {
3613
3613
  }
3614
3614
  };
3615
3615
  var package_namespaceObject = {
3616
- rE: "13.12.8"
3616
+ rE: "13.12.9"
3617
3617
  };
3618
3618
  function isAudioEnabled(options) {
3619
3619
  return Boolean(options.audio.enabled);
@@ -89,21 +89,21 @@ declare class Form extends Despot {
89
89
  name?: string;
90
90
  version?: string;
91
91
  major?: string;
92
- type?: typeof import("ua-parser-js/enums").BrowserType[keyof typeof import("ua-parser-js/enums").BrowserType];
92
+ type?: import("ua-parser-js").BrowserTypes;
93
93
  is?: (val: string) => boolean;
94
94
  toString?: () => string;
95
95
  withClientHints?: () => import("ua-parser-js").IBrowser | PromiseLike<import("ua-parser-js").IBrowser>;
96
96
  withFeatureCheck?: () => import("ua-parser-js").IBrowser | PromiseLike<import("ua-parser-js").IBrowser>;
97
97
  };
98
98
  cpu?: {
99
- architecture?: typeof import("ua-parser-js/enums").CPUArch[keyof typeof import("ua-parser-js/enums").CPUArch];
99
+ architecture?: import("ua-parser-js").CPUArchs;
100
100
  is?: (val: string) => boolean;
101
101
  toString?: () => string;
102
102
  withClientHints?: () => import("ua-parser-js").ICPU | PromiseLike<import("ua-parser-js").ICPU>;
103
103
  withFeatureCheck?: () => import("ua-parser-js").ICPU | PromiseLike<import("ua-parser-js").ICPU>;
104
104
  };
105
105
  device?: {
106
- type?: typeof import("ua-parser-js/enums").DeviceType[keyof typeof import("ua-parser-js/enums").DeviceType];
106
+ type?: import("ua-parser-js").DeviceTypes;
107
107
  vendor?: string;
108
108
  model?: string;
109
109
  is?: (val: string) => boolean;
@@ -112,7 +112,7 @@ declare class Form extends Despot {
112
112
  withFeatureCheck?: () => import("ua-parser-js").IDevice | PromiseLike<import("ua-parser-js").IDevice>;
113
113
  };
114
114
  engine?: {
115
- name?: typeof import("ua-parser-js/enums").EngineName[keyof typeof import("ua-parser-js/enums").EngineName];
115
+ name?: import("ua-parser-js").EngineNames;
116
116
  version?: string;
117
117
  is?: (val: string) => boolean;
118
118
  toString?: () => string;
@@ -273,21 +273,21 @@ declare class Form extends Despot {
273
273
  name?: string;
274
274
  version?: string;
275
275
  major?: string;
276
- type?: typeof import("ua-parser-js/enums").BrowserType[keyof typeof import("ua-parser-js/enums").BrowserType];
276
+ type?: import("ua-parser-js").BrowserTypes;
277
277
  is?: (val: string) => boolean;
278
278
  toString?: () => string;
279
279
  withClientHints?: () => import("ua-parser-js").IBrowser | PromiseLike<import("ua-parser-js").IBrowser>;
280
280
  withFeatureCheck?: () => import("ua-parser-js").IBrowser | PromiseLike<import("ua-parser-js").IBrowser>;
281
281
  };
282
282
  cpu?: {
283
- architecture?: typeof import("ua-parser-js/enums").CPUArch[keyof typeof import("ua-parser-js/enums").CPUArch];
283
+ architecture?: import("ua-parser-js").CPUArchs;
284
284
  is?: (val: string) => boolean;
285
285
  toString?: () => string;
286
286
  withClientHints?: () => import("ua-parser-js").ICPU | PromiseLike<import("ua-parser-js").ICPU>;
287
287
  withFeatureCheck?: () => import("ua-parser-js").ICPU | PromiseLike<import("ua-parser-js").ICPU>;
288
288
  };
289
289
  device?: {
290
- type?: typeof import("ua-parser-js/enums").DeviceType[keyof typeof import("ua-parser-js/enums").DeviceType];
290
+ type?: import("ua-parser-js").DeviceTypes;
291
291
  vendor?: string;
292
292
  model?: string;
293
293
  is?: (val: string) => boolean;
@@ -296,7 +296,7 @@ declare class Form extends Despot {
296
296
  withFeatureCheck?: () => import("ua-parser-js").IDevice | PromiseLike<import("ua-parser-js").IDevice>;
297
297
  };
298
298
  engine?: {
299
- name?: typeof import("ua-parser-js/enums").EngineName[keyof typeof import("ua-parser-js/enums").EngineName];
299
+ name?: import("ua-parser-js").EngineNames;
300
300
  version?: string;
301
301
  is?: (val: string) => boolean;
302
302
  toString?: () => string;
package/dist/umd/index.js CHANGED
@@ -6109,8 +6109,8 @@
6109
6109
  }
6110
6110
  return leaf;
6111
6111
  };
6112
- var splitKeyIntoSegments = function(givenKey, options) {
6113
- var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey;
6112
+ var splitKeyIntoSegments = function(originalKey, options) {
6113
+ var key = options.allowDots ? originalKey.replace(/\.([^.[]+)/g, '[$1]') : originalKey;
6114
6114
  if (options.depth <= 0) {
6115
6115
  if (!options.plainObjects && has.call(Object.prototype, key)) {
6116
6116
  if (!options.allowPrototypes) return;
@@ -6119,31 +6119,47 @@
6119
6119
  key
6120
6120
  ];
6121
6121
  }
6122
- var brackets = /(\[[^[\]]*])/;
6123
- var child = /(\[[^[\]]*])/g;
6124
- var segment = brackets.exec(key);
6125
- var parent = segment ? key.slice(0, segment.index) : key;
6126
- var keys = [];
6122
+ var segments = [];
6123
+ var first = key.indexOf('[');
6124
+ var parent = first >= 0 ? key.slice(0, first) : key;
6127
6125
  if (parent) {
6128
6126
  if (!options.plainObjects && has.call(Object.prototype, parent)) {
6129
6127
  if (!options.allowPrototypes) return;
6130
6128
  }
6131
- keys[keys.length] = parent;
6132
- }
6133
- var i = 0;
6134
- while(null !== (segment = child.exec(key)) && i < options.depth){
6135
- i += 1;
6136
- var segmentContent = segment[1].slice(1, -1);
6137
- if (!options.plainObjects && has.call(Object.prototype, segmentContent)) {
6138
- if (!options.allowPrototypes) return;
6129
+ segments[segments.length] = parent;
6130
+ }
6131
+ var n = key.length;
6132
+ var open = first;
6133
+ var collected = 0;
6134
+ while(open >= 0 && collected < options.depth){
6135
+ var level = 1;
6136
+ var i = open + 1;
6137
+ var close = -1;
6138
+ while(i < n && close < 0){
6139
+ var cu = key.charCodeAt(i);
6140
+ if (0x5B === cu) level += 1;
6141
+ else if (0x5D === cu) {
6142
+ level -= 1;
6143
+ if (0 === level) close = i;
6144
+ }
6145
+ i += 1;
6139
6146
  }
6140
- keys[keys.length] = segment[1];
6141
- }
6142
- if (segment) {
6147
+ if (close < 0) {
6148
+ segments[segments.length] = '[' + key.slice(open) + ']';
6149
+ return segments;
6150
+ }
6151
+ var seg = key.slice(open, close + 1);
6152
+ var content = seg.slice(1, -1);
6153
+ if (!options.plainObjects && has.call(Object.prototype, content) && !options.allowPrototypes) return;
6154
+ segments[segments.length] = seg;
6155
+ collected += 1;
6156
+ open = key.indexOf('[', close + 1);
6157
+ }
6158
+ if (open >= 0) {
6143
6159
  if (true === options.strictDepth) throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true');
6144
- keys[keys.length] = '[' + key.slice(segment.index) + ']';
6160
+ segments[segments.length] = '[' + key.slice(open) + ']';
6145
6161
  }
6146
- return keys;
6162
+ return segments;
6147
6163
  };
6148
6164
  var parseKeys = function(givenKey, val, options, valuesParsed) {
6149
6165
  if (!givenKey) return;
@@ -6279,7 +6295,7 @@
6279
6295
  return value;
6280
6296
  });
6281
6297
  if (null === obj) {
6282
- if (strictNullHandling) return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;
6298
+ if (strictNullHandling) return formatter(encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix);
6283
6299
  obj = '';
6284
6300
  }
6285
6301
  if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {
@@ -6297,7 +6313,9 @@
6297
6313
  if (void 0 === obj) return values;
6298
6314
  var objKeys;
6299
6315
  if ('comma' === generateArrayPrefix && isArray(obj)) {
6300
- if (encodeValuesOnly && encoder) obj = utils.maybeMap(obj, encoder);
6316
+ if (encodeValuesOnly && encoder) obj = utils.maybeMap(obj, function(v) {
6317
+ return null == v ? v : encoder(v);
6318
+ });
6301
6319
  objKeys = [
6302
6320
  {
6303
6321
  value: obj.length > 0 ? obj.join(',') || null : void 0
@@ -6387,13 +6405,15 @@
6387
6405
  var sideChannel = getSideChannel();
6388
6406
  for(var i = 0; i < objKeys.length; ++i){
6389
6407
  var key = objKeys[i];
6390
- var value = obj[key];
6391
- if (!options.skipNulls || null !== value) pushToArray(keys, stringify(value, key, generateArrayPrefix, commaRoundTrip, options.allowEmptyArrays, options.strictNullHandling, options.skipNulls, options.encodeDotInKeys, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.format, options.formatter, options.encodeValuesOnly, options.charset, sideChannel));
6408
+ if (null != key) {
6409
+ var value = obj[key];
6410
+ if (!options.skipNulls || null !== value) pushToArray(keys, stringify(value, key, generateArrayPrefix, commaRoundTrip, options.allowEmptyArrays, options.strictNullHandling, options.skipNulls, options.encodeDotInKeys, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.format, options.formatter, options.encodeValuesOnly, options.charset, sideChannel));
6411
+ }
6392
6412
  }
6393
6413
  var joined = keys.join(options.delimiter);
6394
6414
  var prefix = true === options.addQueryPrefix ? '?' : '';
6395
- if (options.charsetSentinel) if ('iso-8859-1' === options.charset) prefix += 'utf8=%26%2310003%3B&';
6396
- else prefix += 'utf8=%E2%9C%93&';
6415
+ if (options.charsetSentinel) if ('iso-8859-1' === options.charset) prefix += 'utf8=%26%2310003%3B' + options.delimiter;
6416
+ else prefix += 'utf8=%E2%9C%93' + options.delimiter;
6397
6417
  return joined.length > 0 ? prefix + joined : '';
6398
6418
  };
6399
6419
  },
@@ -10858,7 +10878,7 @@
10858
10878
  var client = __webpack_require__("./node_modules/superagent/lib/client.js");
10859
10879
  var client_default = /*#__PURE__*/ __webpack_require__.n(client);
10860
10880
  var package_namespaceObject = {
10861
- rE: "13.12.8"
10881
+ rE: "13.12.9"
10862
10882
  };
10863
10883
  function isAudioEnabled(options) {
10864
10884
  return Boolean(options.audio.enabled);
@@ -10891,7 +10911,7 @@
10891
10911
  const util_pretty = pretty;
10892
10912
  var defined = __webpack_require__("./node_modules/defined/index.js");
10893
10913
  var defined_default = /*#__PURE__*/ __webpack_require__.n(defined);
10894
- var LIBVERSION = '2.0.9', UA_MAX_LENGTH = 500, USER_AGENT = 'user-agent', EMPTY = '', UNKNOWN = '?', TYPEOF = {
10914
+ var LIBVERSION = '2.0.10', UA_MAX_LENGTH = 500, USER_AGENT = 'user-agent', EMPTY = '', UNKNOWN = '?', TYPEOF = {
10895
10915
  FUNCTION: 'function',
10896
10916
  OBJECT: 'object',
10897
10917
  STRING: 'string',
@@ -10934,7 +10954,7 @@
10934
10954
  }, itemListToArray = function(header) {
10935
10955
  if (!header) return;
10936
10956
  var arr = [];
10937
- var tokens = strip(/\\?\"/g, header).split(',');
10957
+ var tokens = normalizeHeaderValue(header).split(',');
10938
10958
  for(var i = 0; i < tokens.length; i++)if (tokens[i].indexOf(';') > -1) {
10939
10959
  var token = ua_parser_trim(tokens[i]).split(';v=');
10940
10960
  arr[i] = {
@@ -10947,6 +10967,8 @@
10947
10967
  return isString(str) ? str.toLowerCase() : str;
10948
10968
  }, majorize = function(version) {
10949
10969
  return isString(version) ? strip(/[^\d\.]/g, version).split('.')[0] : void 0;
10970
+ }, normalizeHeaderValue = function(str) {
10971
+ return isString(str) ? ua_parser_trim(strip(/\\?\"/g, str), UA_MAX_LENGTH) : void 0;
10950
10972
  }, setProps = function(arr) {
10951
10973
  for(var i in arr)if (arr.hasOwnProperty(i)) {
10952
10974
  var propName = arr[i];
@@ -10956,8 +10978,6 @@
10956
10978
  return this;
10957
10979
  }, strip = function(pattern, str) {
10958
10980
  return isString(str) ? str.replace(pattern, EMPTY) : str;
10959
- }, stripQuotes = function(str) {
10960
- return strip(/\\?\"/g, str);
10961
10981
  }, ua_parser_trim = function(str, len) {
10962
10982
  str = strip(/^\s\s*/, String(str));
10963
10983
  return typeof len === TYPEOF.UNDEFINED ? str : str.substring(0, len);
@@ -10990,6 +11010,8 @@
10990
11010
  }
10991
11011
  i += 2;
10992
11012
  }
11013
+ }, strTest = function(str, map) {
11014
+ return map.test.test(str) ? map.ifTrue : map.ifFalse;
10993
11015
  }, strMapper = function(str, map) {
10994
11016
  for(var i in map)if (typeof map[i] === TYPEOF.OBJECT && map[i].length > 0) {
10995
11017
  for(var j = 0; j < map[i].length; j++)if (has(map[i][j], str)) return i === UNKNOWN ? void 0 : i;
@@ -11066,6 +11088,10 @@
11066
11088
  [
11067
11089
  NAME,
11068
11090
  EDGE + ' WebView'
11091
+ ],
11092
+ [
11093
+ TYPE,
11094
+ INAPP
11069
11095
  ]
11070
11096
  ],
11071
11097
  [
@@ -11173,7 +11199,7 @@
11173
11199
  ]
11174
11200
  ],
11175
11201
  [
11176
- /(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i
11202
+ /(?:\buc? ?browser|(?:juc.+)ucweb| ucpc)[\/ ]?([\w\.]+)/i
11177
11203
  ],
11178
11204
  [
11179
11205
  VERSION,
@@ -11367,6 +11393,16 @@
11367
11393
  ],
11368
11394
  VERSION
11369
11395
  ],
11396
+ [
11397
+ / HBPC\/([\w\.]+)/
11398
+ ],
11399
+ [
11400
+ VERSION,
11401
+ [
11402
+ NAME,
11403
+ HUAWEI + SUFFIX_BROWSER
11404
+ ]
11405
+ ],
11370
11406
  [
11371
11407
  /samsungbrowser\/([\w\.]+)/i
11372
11408
  ],
@@ -11540,17 +11576,25 @@
11540
11576
  [
11541
11577
  NAME,
11542
11578
  EDGE + ' WebView2'
11579
+ ],
11580
+ [
11581
+ TYPE,
11582
+ INAPP
11543
11583
  ]
11544
11584
  ],
11545
11585
  [
11546
- / wv\).+(chrome)\/([\w\.]+)/i
11586
+ /; wv\).+(chrome)\/([\w\.]+)/i
11547
11587
  ],
11548
11588
  [
11549
11589
  [
11550
11590
  NAME,
11551
11591
  CHROME + ' WebView'
11552
11592
  ],
11553
- VERSION
11593
+ VERSION,
11594
+ [
11595
+ TYPE,
11596
+ INAPP
11597
+ ]
11554
11598
  ],
11555
11599
  [
11556
11600
  /droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i
@@ -11942,7 +11986,7 @@
11942
11986
  /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,
11943
11987
  /oid[^\)]+; (redmi[\-_ ]?(?:note|k)?[\w_ ]+|m?[12]\d[01]\d\w{3,6}|poco[\w ]+|(shark )?\w{3}-[ah]0|qin ?[1-3](s\+|ultra| pro)?)( bui|; wv|\))/i,
11944
11988
  /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\d{0,2}\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\))/i,
11945
- / ([\w ]+) miui\/v?\d/i
11989
+ /; ([\w ]+) miui\/v?\d/i
11946
11990
  ],
11947
11991
  [
11948
11992
  [
@@ -12543,6 +12587,21 @@
12543
12587
  MOBILE
12544
12588
  ]
12545
12589
  ],
12590
+ [
12591
+ /blackview ([-\w ]+)( b|\))/i,
12592
+ /; (bv\d{4}[-\w ]*)( b|\))/i
12593
+ ],
12594
+ [
12595
+ MODEL,
12596
+ [
12597
+ VENDOR,
12598
+ 'Blackview'
12599
+ ],
12600
+ [
12601
+ TYPE,
12602
+ MOBILE
12603
+ ]
12604
+ ],
12546
12605
  [
12547
12606
  /; (n159v)/i
12548
12607
  ],
@@ -12557,6 +12616,25 @@
12557
12616
  MOBILE
12558
12617
  ]
12559
12618
  ],
12619
+ [
12620
+ /((revvl[ \w\+]+|tm(?:rv|af)\w*[45]g(?:tb)?))( b|\))/i
12621
+ ],
12622
+ [
12623
+ MODEL,
12624
+ [
12625
+ TYPE,
12626
+ strTest,
12627
+ {
12628
+ test: /ta?b/i,
12629
+ ifTrue: TABLET,
12630
+ ifFalse: MOBILE
12631
+ }
12632
+ ],
12633
+ [
12634
+ VENDOR,
12635
+ 'T-Mobile'
12636
+ ]
12637
+ ],
12560
12638
  [
12561
12639
  /(imo) (tab \w+)/i,
12562
12640
  /(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i
@@ -12571,7 +12649,7 @@
12571
12649
  ],
12572
12650
  [
12573
12651
  /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\w]*)/i,
12574
- /; (blu|hmd|imo|infinix|lava|oneplus|tcl|wiko)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,
12652
+ /; (blu|coolpad|cubot|hmd|imo|infinix|lava|oneplus|tcl|wiko)[_ ]([-\w\+ ]+?)(?: bui|\)|; r)/i,
12575
12653
  /(hp) ([\w ]+\w)/i,
12576
12654
  /(microsoft); (lumia[\w ]+)/i,
12577
12655
  /(oppo) ?([\w ]+) bui/i,
@@ -13823,19 +13901,19 @@
13823
13901
  ],
13824
13902
  [
13825
13903
  MODEL,
13826
- stripQuotes(uach[CH_MODEL])
13904
+ normalizeHeaderValue(uach[CH_MODEL])
13827
13905
  ],
13828
13906
  [
13829
13907
  PLATFORM,
13830
- stripQuotes(uach[CH_PLATFORM])
13908
+ normalizeHeaderValue(uach[CH_PLATFORM])
13831
13909
  ],
13832
13910
  [
13833
13911
  PLATFORMVER,
13834
- stripQuotes(uach[CH_PLATFORM_VER])
13912
+ normalizeHeaderValue(uach[CH_PLATFORM_VER])
13835
13913
  ],
13836
13914
  [
13837
13915
  ARCHITECTURE,
13838
- stripQuotes(uach[CH_ARCH])
13916
+ normalizeHeaderValue(uach[CH_ARCH])
13839
13917
  ],
13840
13918
  [
13841
13919
  FORMFACTORS,
@@ -13843,7 +13921,7 @@
13843
13921
  ],
13844
13922
  [
13845
13923
  BITNESS,
13846
- stripQuotes(uach[CH_BITNESS])
13924
+ normalizeHeaderValue(uach[CH_BITNESS])
13847
13925
  ]
13848
13926
  ]);
13849
13927
  else for(var prop in uach)if (this.hasOwnProperty(prop) && typeof uach[prop] !== TYPEOF.UNDEFINED) this[prop] = uach[prop];
@@ -13913,9 +13991,11 @@
13913
13991
  this.set(MAJOR, majorize(this.get(VERSION)));
13914
13992
  break;
13915
13993
  case OS:
13916
- if ('iOS' == this.get(NAME) && '18.6' == this.get(VERSION)) {
13917
- var realVersion = /\) Version\/([\d\.]+)/.exec(this.ua);
13918
- if (realVersion && parseInt(realVersion[1].substring(0, 2), 10) >= 26) this.set(VERSION, realVersion[1]);
13994
+ if ('iOS' == this.get(NAME) && this.get(VERSION)) {
13995
+ if (/^1[89][^\d]/.exec(this.get(VERSION))) {
13996
+ var realVersion = /\) Version\/((\d+)[\d\.]*)/.exec(this.ua);
13997
+ if (realVersion && parseInt(realVersion[2], 10) >= 26) this.set(VERSION, realVersion[1]);
13998
+ }
13919
13999
  }
13920
14000
  break;
13921
14001
  }
@@ -14009,7 +14089,7 @@
14009
14089
  headers = normalized;
14010
14090
  }
14011
14091
  if (!(this instanceof UAParser)) return new UAParser(ua, extensions, headers).getResult();
14012
- var userAgent = typeof ua === TYPEOF.STRING ? ua : headers && headers[USER_AGENT] ? headers[USER_AGENT] : NAVIGATOR && NAVIGATOR.userAgent ? NAVIGATOR.userAgent : EMPTY, httpUACH = new UACHData(headers, true), regexMap = extensions ? extend(defaultRegexes, extensions) : defaultRegexes, createItemFunc = function(itemType) {
14092
+ var userAgent = typeof ua === TYPEOF.STRING ? ua : headers && headers[USER_AGENT] ? headers[USER_AGENT] : NAVIGATOR && NAVIGATOR.userAgent ? NAVIGATOR.userAgent : EMPTY, httpUACH = new UACHData(headers, true), regexMap = defaultRegexes, createItemFunc = function(itemType) {
14013
14093
  if (itemType == RESULT) return function() {
14014
14094
  return new UAItem(itemType, userAgent, regexMap, httpUACH).set('ua', userAgent).set(BROWSER, this.getBrowser()).set(CPU, this.getCPU()).set(DEVICE, this.getDevice()).set(ENGINE, this.getEngine()).set(OS, this.getOS()).get();
14015
14095
  };
@@ -14054,8 +14134,15 @@
14054
14134
  if (isString(ua)) userAgent = ua_parser_trim(ua, UA_MAX_LENGTH);
14055
14135
  return this;
14056
14136
  }
14137
+ ],
14138
+ [
14139
+ 'useExtension',
14140
+ function(exts) {
14141
+ if (exts) regexMap = extend(regexMap, exts);
14142
+ return this;
14143
+ }
14057
14144
  ]
14058
- ]).setUA(userAgent);
14145
+ ]).setUA(userAgent).useExtension(extensions);
14059
14146
  return this;
14060
14147
  }
14061
14148
  UAParser.VERSION = LIBVERSION;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "videomail-client",
3
- "version": "13.12.8",
3
+ "version": "13.12.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",
@@ -71,37 +71,37 @@
71
71
  "nanoevents": "9.1.0",
72
72
  "serialize-error": "13.0.1",
73
73
  "superagent": "10.3.0",
74
- "ua-parser-js": "2.0.9",
74
+ "ua-parser-js": "2.0.10",
75
75
  "websocket-stream": "5.5.2"
76
76
  },
77
77
  "devDependencies": {
78
- "@chromatic-com/storybook": "5.1.2",
79
- "@eslint/config-inspector": "3.0.2",
78
+ "@chromatic-com/storybook": "5.2.1",
79
+ "@eslint/config-inspector": "3.0.3",
80
80
  "@eslint/js": "10.0.1",
81
81
  "@rsbuild/plugin-node-polyfill": "1.4.4",
82
- "@rsbuild/plugin-stylus": "1.3.2",
82
+ "@rsbuild/plugin-stylus": "2.0.0",
83
83
  "@rsdoctor/rspack-plugin": "1.5.11",
84
- "@rslib/core": "0.21.4",
85
- "@storybook/addon-a11y": "10.3.6",
86
- "@storybook/addon-docs": "10.3.6",
87
- "@storybook/addon-links": "10.3.6",
88
- "@storybook/html": "10.3.6",
84
+ "@rslib/core": "0.21.5",
85
+ "@storybook/addon-a11y": "10.4.1",
86
+ "@storybook/addon-docs": "10.4.1",
87
+ "@storybook/addon-links": "10.4.1",
88
+ "@storybook/html": "10.4.1",
89
89
  "@tsconfig/node24": "24.0.4",
90
90
  "@tsconfig/strictest": "2.0.8",
91
91
  "@types/defined": "1.0.2",
92
- "@types/node": "24.12.2",
93
- "@types/superagent": "8.1.9",
92
+ "@types/node": "24.12.3",
93
+ "@types/superagent": "8.1.10",
94
94
  "@types/ua-parser-js": "0.7.39",
95
- "@vitest/eslint-plugin": "1.6.17",
95
+ "@vitest/eslint-plugin": "1.6.18",
96
96
  "audit-ci": "7.1.0",
97
- "chromatic": "16.10.0",
97
+ "chromatic": "17.0.0",
98
98
  "cross-env": "10.1.0",
99
- "eslint": "10.3.0",
99
+ "eslint": "10.4.0",
100
100
  "eslint-import-resolver-typescript": "4.4.4",
101
101
  "eslint-plugin-de-morgan": "2.1.2",
102
102
  "eslint-plugin-depend": "1.5.0",
103
103
  "eslint-plugin-import-x": "4.16.2",
104
- "eslint-plugin-package-json": "0.91.2",
104
+ "eslint-plugin-package-json": "1.1.0",
105
105
  "eslint-plugin-regexp": "3.1.0",
106
106
  "eslint-plugin-simple-import-sort": "13.0.0",
107
107
  "globals": "17.6.0",
@@ -114,12 +114,12 @@
114
114
  "prettier-plugin-packagejson": "3.0.2",
115
115
  "prettier-plugin-sh": "0.18.1",
116
116
  "release-it": "20.0.1",
117
- "storybook": "10.3.6",
118
- "storybook-html-rsbuild": "3.3.3",
117
+ "storybook": "10.4.1",
118
+ "storybook-html-rsbuild": "3.3.4",
119
119
  "type-fest": "5.6.0",
120
120
  "typescript": "6.0.3",
121
- "typescript-eslint": "8.59.3",
122
- "vitest": "4.1.6"
121
+ "typescript-eslint": "8.60.0",
122
+ "vitest": "4.1.7"
123
123
  },
124
124
  "engines": {
125
125
  "node": "^24.15.0",