@vue/shared 3.5.41 → 3.5.42

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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/shared v3.5.41
2
+ * @vue/shared v3.5.42
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -344,7 +344,7 @@ const isBooleanAttr = /* @__PURE__ */ makeMap(
344
344
  function includeBooleanAttr(value) {
345
345
  return !!value || value === "";
346
346
  }
347
- const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/;
347
+ const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u000d\u0020]/;
348
348
  const attrValidationCache = {};
349
349
  function isSSRSafeAttrName(name) {
350
350
  if (attrValidationCache.hasOwnProperty(name)) {
@@ -443,6 +443,23 @@ function looseCompareArrays(a, b) {
443
443
  }
444
444
  return equal;
445
445
  }
446
+ function looseCompareCollections(a, b) {
447
+ if (a.size !== b.size) return false;
448
+ const candidates = Array.from(b);
449
+ const matched = new Uint8Array(candidates.length);
450
+ for (const item of a) {
451
+ let index = -1;
452
+ for (let i = 0; i < candidates.length; i++) {
453
+ if (!matched[i] && looseEqual(item, candidates[i])) {
454
+ index = i;
455
+ break;
456
+ }
457
+ }
458
+ if (index < 0) return false;
459
+ matched[index] = 1;
460
+ }
461
+ return true;
462
+ }
446
463
  function looseEqual(a, b) {
447
464
  if (a === b) return true;
448
465
  let aValidType = isDate(a);
@@ -466,6 +483,16 @@ function looseEqual(a, b) {
466
483
  if (!aValidType || !bValidType) {
467
484
  return false;
468
485
  }
486
+ aValidType = isMap(a);
487
+ bValidType = isMap(b);
488
+ if (aValidType || bValidType) {
489
+ return aValidType && bValidType ? looseCompareCollections(a, b) : false;
490
+ }
491
+ aValidType = isSet(a);
492
+ bValidType = isSet(b);
493
+ if (aValidType || bValidType) {
494
+ return aValidType && bValidType ? looseCompareCollections(a, b) : false;
495
+ }
469
496
  const aKeysCount = Object.keys(a).length;
470
497
  const bKeysCount = Object.keys(b).length;
471
498
  if (aKeysCount !== bKeysCount) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/shared v3.5.41
2
+ * @vue/shared v3.5.42
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -344,7 +344,7 @@ const isBooleanAttr = /* @__PURE__ */ makeMap(
344
344
  function includeBooleanAttr(value) {
345
345
  return !!value || value === "";
346
346
  }
347
- const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/;
347
+ const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u000d\u0020]/;
348
348
  const attrValidationCache = {};
349
349
  function isSSRSafeAttrName(name) {
350
350
  if (attrValidationCache.hasOwnProperty(name)) {
@@ -443,6 +443,23 @@ function looseCompareArrays(a, b) {
443
443
  }
444
444
  return equal;
445
445
  }
446
+ function looseCompareCollections(a, b) {
447
+ if (a.size !== b.size) return false;
448
+ const candidates = Array.from(b);
449
+ const matched = new Uint8Array(candidates.length);
450
+ for (const item of a) {
451
+ let index = -1;
452
+ for (let i = 0; i < candidates.length; i++) {
453
+ if (!matched[i] && looseEqual(item, candidates[i])) {
454
+ index = i;
455
+ break;
456
+ }
457
+ }
458
+ if (index < 0) return false;
459
+ matched[index] = 1;
460
+ }
461
+ return true;
462
+ }
446
463
  function looseEqual(a, b) {
447
464
  if (a === b) return true;
448
465
  let aValidType = isDate(a);
@@ -466,6 +483,16 @@ function looseEqual(a, b) {
466
483
  if (!aValidType || !bValidType) {
467
484
  return false;
468
485
  }
486
+ aValidType = isMap(a);
487
+ bValidType = isMap(b);
488
+ if (aValidType || bValidType) {
489
+ return aValidType && bValidType ? looseCompareCollections(a, b) : false;
490
+ }
491
+ aValidType = isSet(a);
492
+ bValidType = isSet(b);
493
+ if (aValidType || bValidType) {
494
+ return aValidType && bValidType ? looseCompareCollections(a, b) : false;
495
+ }
469
496
  const aKeysCount = Object.keys(a).length;
470
497
  const bKeysCount = Object.keys(b).length;
471
498
  if (aKeysCount !== bKeysCount) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/shared v3.5.41
2
+ * @vue/shared v3.5.42
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -340,7 +340,7 @@ const isBooleanAttr = /* @__PURE__ */ makeMap(
340
340
  function includeBooleanAttr(value) {
341
341
  return !!value || value === "";
342
342
  }
343
- const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/;
343
+ const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u000d\u0020]/;
344
344
  const attrValidationCache = {};
345
345
  function isSSRSafeAttrName(name) {
346
346
  if (attrValidationCache.hasOwnProperty(name)) {
@@ -439,6 +439,23 @@ function looseCompareArrays(a, b) {
439
439
  }
440
440
  return equal;
441
441
  }
442
+ function looseCompareCollections(a, b) {
443
+ if (a.size !== b.size) return false;
444
+ const candidates = Array.from(b);
445
+ const matched = new Uint8Array(candidates.length);
446
+ for (const item of a) {
447
+ let index = -1;
448
+ for (let i = 0; i < candidates.length; i++) {
449
+ if (!matched[i] && looseEqual(item, candidates[i])) {
450
+ index = i;
451
+ break;
452
+ }
453
+ }
454
+ if (index < 0) return false;
455
+ matched[index] = 1;
456
+ }
457
+ return true;
458
+ }
442
459
  function looseEqual(a, b) {
443
460
  if (a === b) return true;
444
461
  let aValidType = isDate(a);
@@ -462,6 +479,16 @@ function looseEqual(a, b) {
462
479
  if (!aValidType || !bValidType) {
463
480
  return false;
464
481
  }
482
+ aValidType = isMap(a);
483
+ bValidType = isMap(b);
484
+ if (aValidType || bValidType) {
485
+ return aValidType && bValidType ? looseCompareCollections(a, b) : false;
486
+ }
487
+ aValidType = isSet(a);
488
+ bValidType = isSet(b);
489
+ if (aValidType || bValidType) {
490
+ return aValidType && bValidType ? looseCompareCollections(a, b) : false;
491
+ }
465
492
  const aKeysCount = Object.keys(a).length;
466
493
  const bKeysCount = Object.keys(b).length;
467
494
  if (aKeysCount !== bKeysCount) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue/shared",
3
- "version": "3.5.41",
3
+ "version": "3.5.42",
4
4
  "description": "internal utils shared across @vue packages",
5
5
  "main": "index.js",
6
6
  "module": "dist/shared.esm-bundler.js",