@bigbinary/neeto-playwright-commons 1.26.6 → 1.26.7

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/index.cjs.js CHANGED
@@ -3593,10 +3593,32 @@ function requireUtils$4 () {
3593
3593
  hasRequiredUtils$4 = 1;
3594
3594
 
3595
3595
  var formats = /*@__PURE__*/ requireFormats();
3596
+ var getSideChannel = requireSideChannel();
3596
3597
 
3597
3598
  var has = Object.prototype.hasOwnProperty;
3598
3599
  var isArray = Array.isArray;
3599
3600
 
3601
+ // Track objects created from arrayLimit overflow using side-channel
3602
+ // Stores the current max numeric index for O(1) lookup
3603
+ var overflowChannel = getSideChannel();
3604
+
3605
+ var markOverflow = function markOverflow(obj, maxIndex) {
3606
+ overflowChannel.set(obj, maxIndex);
3607
+ return obj;
3608
+ };
3609
+
3610
+ var isOverflow = function isOverflow(obj) {
3611
+ return overflowChannel.has(obj);
3612
+ };
3613
+
3614
+ var getMaxIndex = function getMaxIndex(obj) {
3615
+ return overflowChannel.get(obj);
3616
+ };
3617
+
3618
+ var setMaxIndex = function setMaxIndex(obj, maxIndex) {
3619
+ overflowChannel.set(obj, maxIndex);
3620
+ };
3621
+
3600
3622
  var hexTable = (function () {
3601
3623
  var array = [];
3602
3624
  for (var i = 0; i < 256; ++i) {
@@ -3646,7 +3668,12 @@ function requireUtils$4 () {
3646
3668
  if (isArray(target)) {
3647
3669
  target.push(source);
3648
3670
  } else if (target && typeof target === 'object') {
3649
- if (
3671
+ if (isOverflow(target)) {
3672
+ // Add at next numeric index for overflow objects
3673
+ var newIndex = getMaxIndex(target) + 1;
3674
+ target[newIndex] = source;
3675
+ setMaxIndex(target, newIndex);
3676
+ } else if (
3650
3677
  (options && (options.plainObjects || options.allowPrototypes))
3651
3678
  || !has.call(Object.prototype, source)
3652
3679
  ) {
@@ -3660,6 +3687,18 @@ function requireUtils$4 () {
3660
3687
  }
3661
3688
 
3662
3689
  if (!target || typeof target !== 'object') {
3690
+ if (isOverflow(source)) {
3691
+ // Create new object with target at 0, source values shifted by 1
3692
+ var sourceKeys = Object.keys(source);
3693
+ var result = options && options.plainObjects
3694
+ ? { __proto__: null, 0: target }
3695
+ : { 0: target };
3696
+ for (var m = 0; m < sourceKeys.length; m++) {
3697
+ var oldKey = parseInt(sourceKeys[m], 10);
3698
+ result[oldKey + 1] = source[sourceKeys[m]];
3699
+ }
3700
+ return markOverflow(result, getMaxIndex(source) + 1);
3701
+ }
3663
3702
  return [target].concat(source);
3664
3703
  }
3665
3704
 
@@ -3831,8 +3870,20 @@ function requireUtils$4 () {
3831
3870
  return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
3832
3871
  };
3833
3872
 
3834
- var combine = function combine(a, b) {
3835
- return [].concat(a, b);
3873
+ var combine = function combine(a, b, arrayLimit, plainObjects) {
3874
+ // If 'a' is already an overflow object, add to it
3875
+ if (isOverflow(a)) {
3876
+ var newIndex = getMaxIndex(a) + 1;
3877
+ a[newIndex] = b;
3878
+ setMaxIndex(a, newIndex);
3879
+ return a;
3880
+ }
3881
+
3882
+ var result = [].concat(a, b);
3883
+ if (result.length > arrayLimit) {
3884
+ return markOverflow(arrayToObject(result, { plainObjects: plainObjects }), result.length - 1);
3885
+ }
3886
+ return result;
3836
3887
  };
3837
3888
 
3838
3889
  var maybeMap = function maybeMap(val, fn) {
@@ -3854,6 +3905,7 @@ function requireUtils$4 () {
3854
3905
  decode: decode,
3855
3906
  encode: encode,
3856
3907
  isBuffer: isBuffer,
3908
+ isOverflow: isOverflow,
3857
3909
  isRegExp: isRegExp,
3858
3910
  maybeMap: maybeMap,
3859
3911
  merge: merge
@@ -4340,16 +4392,18 @@ function requireParse$4 () {
4340
4392
  } else {
4341
4393
  key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');
4342
4394
 
4343
- val = utils.maybeMap(
4344
- parseArrayValue(
4345
- part.slice(pos + 1),
4346
- options,
4347
- isArray(obj[key]) ? obj[key].length : 0
4348
- ),
4349
- function (encodedVal) {
4350
- return options.decoder(encodedVal, defaults.decoder, charset, 'value');
4351
- }
4352
- );
4395
+ if (key !== null) {
4396
+ val = utils.maybeMap(
4397
+ parseArrayValue(
4398
+ part.slice(pos + 1),
4399
+ options,
4400
+ isArray(obj[key]) ? obj[key].length : 0
4401
+ ),
4402
+ function (encodedVal) {
4403
+ return options.decoder(encodedVal, defaults.decoder, charset, 'value');
4404
+ }
4405
+ );
4406
+ }
4353
4407
  }
4354
4408
 
4355
4409
  if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {
@@ -4360,11 +4414,18 @@ function requireParse$4 () {
4360
4414
  val = isArray(val) ? [val] : val;
4361
4415
  }
4362
4416
 
4363
- var existing = has.call(obj, key);
4364
- if (existing && options.duplicates === 'combine') {
4365
- obj[key] = utils.combine(obj[key], val);
4366
- } else if (!existing || options.duplicates === 'last') {
4367
- obj[key] = val;
4417
+ if (key !== null) {
4418
+ var existing = has.call(obj, key);
4419
+ if (existing && options.duplicates === 'combine') {
4420
+ obj[key] = utils.combine(
4421
+ obj[key],
4422
+ val,
4423
+ options.arrayLimit,
4424
+ options.plainObjects
4425
+ );
4426
+ } else if (!existing || options.duplicates === 'last') {
4427
+ obj[key] = val;
4428
+ }
4368
4429
  }
4369
4430
  }
4370
4431
 
@@ -4385,9 +4446,19 @@ function requireParse$4 () {
4385
4446
  var root = chain[i];
4386
4447
 
4387
4448
  if (root === '[]' && options.parseArrays) {
4388
- obj = options.allowEmptyArrays && (leaf === '' || (options.strictNullHandling && leaf === null))
4389
- ? []
4390
- : utils.combine([], leaf);
4449
+ if (utils.isOverflow(leaf)) {
4450
+ // leaf is already an overflow object, preserve it
4451
+ obj = leaf;
4452
+ } else {
4453
+ obj = options.allowEmptyArrays && (leaf === '' || (options.strictNullHandling && leaf === null))
4454
+ ? []
4455
+ : utils.combine(
4456
+ [],
4457
+ leaf,
4458
+ options.arrayLimit,
4459
+ options.plainObjects
4460
+ );
4461
+ }
4391
4462
  } else {
4392
4463
  obj = options.plainObjects ? { __proto__: null } : {};
4393
4464
  var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;
@@ -4415,29 +4486,28 @@ function requireParse$4 () {
4415
4486
  return leaf;
4416
4487
  };
4417
4488
 
4418
- var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {
4419
- if (!givenKey) {
4420
- return;
4421
- }
4422
-
4423
- // Transform dot notation to bracket notation
4489
+ var splitKeyIntoSegments = function splitKeyIntoSegments(givenKey, options) {
4424
4490
  var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey;
4425
4491
 
4426
- // The regex chunks
4492
+ if (options.depth <= 0) {
4493
+ if (!options.plainObjects && has.call(Object.prototype, key)) {
4494
+ if (!options.allowPrototypes) {
4495
+ return;
4496
+ }
4497
+ }
4498
+
4499
+ return [key];
4500
+ }
4427
4501
 
4428
4502
  var brackets = /(\[[^[\]]*])/;
4429
4503
  var child = /(\[[^[\]]*])/g;
4430
4504
 
4431
- // Get the parent
4432
-
4433
- var segment = options.depth > 0 && brackets.exec(key);
4505
+ var segment = brackets.exec(key);
4434
4506
  var parent = segment ? key.slice(0, segment.index) : key;
4435
4507
 
4436
- // Stash the parent if it exists
4437
-
4438
4508
  var keys = [];
4509
+
4439
4510
  if (parent) {
4440
- // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties
4441
4511
  if (!options.plainObjects && has.call(Object.prototype, parent)) {
4442
4512
  if (!options.allowPrototypes) {
4443
4513
  return;
@@ -4447,28 +4517,42 @@ function requireParse$4 () {
4447
4517
  keys.push(parent);
4448
4518
  }
4449
4519
 
4450
- // Loop through children appending to the array until we hit depth
4451
-
4452
4520
  var i = 0;
4453
- while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {
4521
+ while ((segment = child.exec(key)) !== null && i < options.depth) {
4454
4522
  i += 1;
4455
- if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {
4523
+
4524
+ var segmentContent = segment[1].slice(1, -1);
4525
+ if (!options.plainObjects && has.call(Object.prototype, segmentContent)) {
4456
4526
  if (!options.allowPrototypes) {
4457
4527
  return;
4458
4528
  }
4459
4529
  }
4530
+
4460
4531
  keys.push(segment[1]);
4461
4532
  }
4462
4533
 
4463
- // If there's a remainder, check strictDepth option for throw, else just add whatever is left
4464
-
4465
4534
  if (segment) {
4466
4535
  if (options.strictDepth === true) {
4467
4536
  throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true');
4468
4537
  }
4538
+
4469
4539
  keys.push('[' + key.slice(segment.index) + ']');
4470
4540
  }
4471
4541
 
4542
+ return keys;
4543
+ };
4544
+
4545
+ var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {
4546
+ if (!givenKey) {
4547
+ return;
4548
+ }
4549
+
4550
+ var keys = splitKeyIntoSegments(givenKey, options);
4551
+
4552
+ if (!keys) {
4553
+ return;
4554
+ }
4555
+
4472
4556
  return parseObject(keys, val, options, valuesParsed);
4473
4557
  };
4474
4558