typeson-registry 13.0.0 → 13.1.0

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.
Files changed (108) hide show
  1. package/README.md +5 -8
  2. package/dist/index.js +31 -31
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.min.js +2 -2
  5. package/dist/index.min.js.map +1 -1
  6. package/dist/index.umd.cjs +238 -188
  7. package/dist/index.umd.cjs.map +1 -1
  8. package/dist/index.umd.min.cjs +3 -3
  9. package/dist/index.umd.min.cjs.map +1 -1
  10. package/dist/polyfills/createObjectURL.d.ts.map +1 -1
  11. package/dist/presets/array-nonindex-keys.umd.cjs +1 -1
  12. package/dist/presets/array-nonindex-keys.umd.cjs.map +1 -1
  13. package/dist/presets/builtin.umd.cjs +1 -1
  14. package/dist/presets/builtin.umd.cjs.map +1 -1
  15. package/dist/presets/postmessage.umd.cjs +1 -1
  16. package/dist/presets/postmessage.umd.cjs.map +1 -1
  17. package/dist/presets/socketio.umd.cjs +1 -1
  18. package/dist/presets/socketio.umd.cjs.map +1 -1
  19. package/dist/presets/sparse-undefined.umd.cjs +1 -1
  20. package/dist/presets/sparse-undefined.umd.cjs.map +1 -1
  21. package/dist/presets/special-numbers.umd.cjs +1 -1
  22. package/dist/presets/special-numbers.umd.cjs.map +1 -1
  23. package/dist/presets/structured-cloning-throwing.umd.cjs +2 -2
  24. package/dist/presets/structured-cloning-throwing.umd.cjs.map +1 -1
  25. package/dist/presets/structured-cloning.umd.cjs +2 -2
  26. package/dist/presets/structured-cloning.umd.cjs.map +1 -1
  27. package/dist/presets/undef.umd.cjs +1 -1
  28. package/dist/presets/undef.umd.cjs.map +1 -1
  29. package/dist/presets/universal.umd.cjs +1 -1
  30. package/dist/presets/universal.umd.cjs.map +1 -1
  31. package/dist/types/arraybuffer.umd.cjs +1 -1
  32. package/dist/types/arraybuffer.umd.cjs.map +1 -1
  33. package/dist/types/bigint-object.umd.cjs +1 -1
  34. package/dist/types/bigint-object.umd.cjs.map +1 -1
  35. package/dist/types/bigint.umd.cjs +1 -1
  36. package/dist/types/bigint.umd.cjs.map +1 -1
  37. package/dist/types/blob.umd.cjs +1 -1
  38. package/dist/types/blob.umd.cjs.map +1 -1
  39. package/dist/types/cloneable.umd.cjs +1 -1
  40. package/dist/types/cloneable.umd.cjs.map +1 -1
  41. package/dist/types/cryptokey.umd.cjs +2 -2
  42. package/dist/types/cryptokey.umd.cjs.map +1 -1
  43. package/dist/types/dataview.umd.cjs +1 -1
  44. package/dist/types/dataview.umd.cjs.map +1 -1
  45. package/dist/types/date.umd.cjs +1 -1
  46. package/dist/types/date.umd.cjs.map +1 -1
  47. package/dist/types/domexception.umd.cjs +1 -1
  48. package/dist/types/domexception.umd.cjs.map +1 -1
  49. package/dist/types/dommatrix.umd.cjs +1 -1
  50. package/dist/types/dommatrix.umd.cjs.map +1 -1
  51. package/dist/types/dompoint.umd.cjs +1 -1
  52. package/dist/types/dompoint.umd.cjs.map +1 -1
  53. package/dist/types/domquad.umd.cjs +1 -1
  54. package/dist/types/domquad.umd.cjs.map +1 -1
  55. package/dist/types/domrect.umd.cjs +1 -1
  56. package/dist/types/domrect.umd.cjs.map +1 -1
  57. package/dist/types/error.umd.cjs +1 -1
  58. package/dist/types/error.umd.cjs.map +1 -1
  59. package/dist/types/errors.umd.cjs +1 -1
  60. package/dist/types/errors.umd.cjs.map +1 -1
  61. package/dist/types/file.umd.cjs +1 -1
  62. package/dist/types/file.umd.cjs.map +1 -1
  63. package/dist/types/filelist.umd.cjs +1 -1
  64. package/dist/types/filelist.umd.cjs.map +1 -1
  65. package/dist/types/imagebitmap.umd.cjs +2 -2
  66. package/dist/types/imagebitmap.umd.cjs.map +1 -1
  67. package/dist/types/imagedata.umd.cjs +1 -1
  68. package/dist/types/imagedata.umd.cjs.map +1 -1
  69. package/dist/types/infinity.umd.cjs +1 -1
  70. package/dist/types/infinity.umd.cjs.map +1 -1
  71. package/dist/types/intl-types.umd.cjs +1 -1
  72. package/dist/types/intl-types.umd.cjs.map +1 -1
  73. package/dist/types/map.umd.cjs +1 -1
  74. package/dist/types/map.umd.cjs.map +1 -1
  75. package/dist/types/nan.umd.cjs +1 -1
  76. package/dist/types/nan.umd.cjs.map +1 -1
  77. package/dist/types/negative-infinity.umd.cjs +1 -1
  78. package/dist/types/negative-infinity.umd.cjs.map +1 -1
  79. package/dist/types/negative-zero.umd.cjs +1 -1
  80. package/dist/types/negative-zero.umd.cjs.map +1 -1
  81. package/dist/types/nonbuiltin-ignore.umd.cjs +1 -1
  82. package/dist/types/nonbuiltin-ignore.umd.cjs.map +1 -1
  83. package/dist/types/primitive-objects.umd.cjs +1 -1
  84. package/dist/types/primitive-objects.umd.cjs.map +1 -1
  85. package/dist/types/promise.umd.cjs +2 -2
  86. package/dist/types/promise.umd.cjs.map +1 -1
  87. package/dist/types/regexp.umd.cjs +1 -1
  88. package/dist/types/regexp.umd.cjs.map +1 -1
  89. package/dist/types/resurrectable.umd.cjs +1 -1
  90. package/dist/types/resurrectable.umd.cjs.map +1 -1
  91. package/dist/types/set.umd.cjs +1 -1
  92. package/dist/types/set.umd.cjs.map +1 -1
  93. package/dist/types/symbol.umd.cjs +1 -1
  94. package/dist/types/symbol.umd.cjs.map +1 -1
  95. package/dist/types/typed-arrays-socketio.umd.cjs +1 -1
  96. package/dist/types/typed-arrays-socketio.umd.cjs.map +1 -1
  97. package/dist/types/typed-arrays.umd.cjs +1 -1
  98. package/dist/types/typed-arrays.umd.cjs.map +1 -1
  99. package/dist/types/undef.umd.cjs +1 -1
  100. package/dist/types/undef.umd.cjs.map +1 -1
  101. package/dist/types/user-object.umd.cjs +1 -1
  102. package/dist/types/user-object.umd.cjs.map +1 -1
  103. package/package.json +18 -19
  104. package/polyfills/createObjectURL.cjs +3231 -0
  105. package/polyfills/createObjectURL.cjs.map +1 -0
  106. package/polyfills/createObjectURL.js +4 -4
  107. package/polyfills/createObjectURL.umd.cjs +0 -4
  108. package/polyfills/createObjectURL.umd.cjs.map +0 -1
@@ -282,7 +282,7 @@
282
282
  }).then(n, r);
283
283
  });
284
284
  }, TypesonPromise.prototype["catch"] = function (e) {
285
- return this.then(function () {}, e);
285
+ return this.then(void 0, e);
286
286
  }, TypesonPromise.resolve = function (e) {
287
287
  return new TypesonPromise(function (t) {
288
288
  t(e);
@@ -343,26 +343,31 @@
343
343
  function unescapeKeyPathComponent(e) {
344
344
  return e.replaceAll("~1", ".").replaceAll("~0", "~").replace(/^''$/, "").replaceAll("''''", "''");
345
345
  }
346
- function getByKeyPath(e, t) {
347
- if ("" === t) return e;
348
- if (null === e || "object" != _typeof(e)) throw new TypeError("Unexpected non-object type");
349
- var n = t.indexOf(".");
350
- if (-1 !== n) {
351
- var _r = e[unescapeKeyPathComponent(t.slice(0, n))];
352
- return void 0 === _r ? void 0 : getByKeyPath(_r, t.slice(n + 1));
346
+ function getByKeyPath(t, n, r) {
347
+ if ("" === n) return t;
348
+ if (null === t || "object" != _typeof(t)) throw new TypeError("Unexpected non-object type");
349
+ var s = n.indexOf("."),
350
+ o = unescapeKeyPathComponent(-1 === s ? n : n.slice(0, s));
351
+ if (!r || e(t, o)) {
352
+ if (-1 !== s) {
353
+ var _e = t[o];
354
+ return void 0 === _e ? void 0 : getByKeyPath(_e, n.slice(s + 1), r);
355
+ }
356
+ return t[o];
353
357
  }
354
- return e[unescapeKeyPathComponent(t)];
355
358
  }
356
- function setAtKeyPath(e, t, n) {
357
- if ("" === t) return n;
358
- var r = e,
359
- s = t;
359
+ function setAtKeyPath(t, n, r, s) {
360
+ if ("" === n) return r;
361
+ var o = t,
362
+ i = n;
360
363
  for (;;) {
361
- if (!r || "object" != _typeof(r)) throw new TypeError("Unexpected non-object type");
362
- if ("__proto__" === s) throw new TypeError("Invalid property");
363
- var _t = s.indexOf(".");
364
- if (-1 === _t) return r[unescapeKeyPathComponent(s)] = n, e;
365
- r = r[unescapeKeyPathComponent(s.slice(0, _t))], s = s.slice(_t + 1);
364
+ if (!o || "object" != _typeof(o)) throw new TypeError("Unexpected non-object type");
365
+ var _n = i.indexOf("."),
366
+ c = unescapeKeyPathComponent(-1 === _n ? i : i.slice(0, _n));
367
+ if ("__proto__" === c) throw new TypeError("Invalid property");
368
+ if (-1 === _n) return o[c] = r, t;
369
+ if (s && !e(o, c)) throw new TypeError("Invalid property");
370
+ o = o[c], i = i.slice(_n + 1);
366
371
  }
367
372
  }
368
373
  function getJSONType(e) {
@@ -372,11 +377,19 @@
372
377
  * @file Typeson - JSON with types.
373
378
  * @license The MIT License (MIT)
374
379
  * @copyright (c) 2016-2018 David Fahlander, Brett Zamir
375
- */
380
+ */
376
381
  var n = Object.keys,
377
382
  r = Object.hasOwn,
378
383
  s = Array.isArray,
379
384
  o = ["type", "replaced", "iterateIn", "iterateUnsetNumeric", "addLength"];
385
+ function setOwnEnumerable(e, t, n) {
386
+ Object.defineProperty(e, t, {
387
+ configurable: true,
388
+ enumerable: true,
389
+ value: n,
390
+ writable: true
391
+ });
392
+ }
380
393
  function nestedPathsFirst(e, t) {
381
394
  var _e$keypath$match, _t$keypath$match;
382
395
  if ("" === e.keypath) return -1;
@@ -447,13 +460,17 @@
447
460
  key: "specialTypeNames",
448
461
  value: function specialTypeNames(e, t) {
449
462
  var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
450
- return n.returnTypeNames = true, this.encapsulate(e, t, n);
463
+ return this.encapsulate(e, t, _objectSpread2(_objectSpread2({}, n), {}, {
464
+ returnTypeNames: true
465
+ }));
451
466
  }
452
467
  }, {
453
468
  key: "rootTypeName",
454
469
  value: function rootTypeName(e, t) {
455
470
  var n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
456
- return n.iterateNone = true, this.encapsulate(e, t, n);
471
+ return this.encapsulate(e, t, _objectSpread2(_objectSpread2({}, n), {}, {
472
+ iterateNone: true
473
+ }));
457
474
  }
458
475
  }, {
459
476
  key: "encapsulate",
@@ -469,6 +486,7 @@
469
486
  l = [],
470
487
  h = !("cyclic" in c) || c.cyclic,
471
488
  f = c.encapsulateObserver,
489
+ d = c.encapsulateError,
472
490
  finish = function finish(e) {
473
491
  var t = Object.values(p);
474
492
  if (c.iterateNone) return t.length ? t[0] : getJSONType(e);
@@ -501,7 +519,7 @@
501
519
  _context2.n = 2;
502
520
  return Promise.all(n.map(/*#__PURE__*/function () {
503
521
  var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(n) {
504
- var r, _t$splice, _t$splice2, s, _s, o, i, c, a, p, y, u, l, _t2;
522
+ var r, _t$splice, _t$splice2, s, _s, o, i, c, a, p, y, u, l, _t, _t2, _t3;
505
523
  return _regenerator().w(function (_context) {
506
524
  while (1) switch (_context.n) {
507
525
  case 0:
@@ -510,13 +528,16 @@
510
528
  _context.n = 2;
511
529
  break;
512
530
  }
531
+ _t = setOwnEnumerable;
532
+ _t2 = a;
533
+ _t3 = p;
513
534
  _context.n = 1;
514
535
  return u.p;
515
536
  case 1:
516
- _t2 = _context.v;
517
- return _context.a(2, (a[p] = _t2, _checkPromises(e, r)));
537
+ _t(_t2, _t3, _context.v);
538
+ return _context.a(2, _checkPromises(e, r));
518
539
  case 2:
519
- return _context.a(2, (o ? a[p] = u : e = l ? u.p : u, _checkPromises(e, r)));
540
+ return _context.a(2, (o ? setOwnEnumerable(a, p, u) : e = l ? u.p : u, _checkPromises(e, r)));
520
541
  }
521
542
  }, _callee);
522
543
  }));
@@ -545,59 +566,86 @@
545
566
  });
546
567
  },
547
568
  _encapsulate2 = function _encapsulate(e, t, o, i, a, l, h) {
548
- var d,
569
+ var b,
549
570
  O = {};
550
571
  var v = f ? function (n) {
551
- var _ref2;
552
- var r = (_ref2 = h !== null && h !== void 0 ? h : i.type) !== null && _ref2 !== void 0 ? _ref2 : getJSONType(t);
553
- f(Object.assign(n !== null && n !== void 0 ? n : O, {
554
- keypath: e,
555
- value: t,
556
- cyclic: o,
557
- stateObj: i,
558
- promisesData: a,
559
- resolvingTypesonPromise: l,
560
- awaitingTypesonPromise: hasConstructorOf(t, TypesonPromise)
561
- }, {
562
- type: r
563
- }));
564
- } : null;
565
- if (["string", "boolean", "number", "undefined"].includes(_typeof(t))) return void 0 === t || t === 1 / 0 || 0 === t || t === -1 / 0 || Number.isNaN(t) ? (d = i.replaced ? t : replace(e, t, i, a, false, l, v), d !== t && (O = {
566
- replaced: d
567
- })) : d = t, v && v(), d;
572
+ var _ref2;
573
+ var r = (_ref2 = h !== null && h !== void 0 ? h : i.type) !== null && _ref2 !== void 0 ? _ref2 : getJSONType(t);
574
+ f(Object.assign(n !== null && n !== void 0 ? n : O, {
575
+ keypath: e,
576
+ value: t,
577
+ cyclic: o,
578
+ stateObj: i,
579
+ promisesData: a,
580
+ resolvingTypesonPromise: l,
581
+ awaitingTypesonPromise: hasConstructorOf(t, TypesonPromise)
582
+ }, {
583
+ type: r
584
+ }));
585
+ } : null,
586
+ getEncapsulatedValue = function getEncapsulatedValue(e, t, n) {
587
+ try {
588
+ return {
589
+ value: _encapsulate2(e, t[n], Boolean(o), i, a, l)
590
+ };
591
+ } catch (r) {
592
+ var _ref3;
593
+ if (!d) throw r;
594
+ var _s2 = (_ref3 = h !== null && h !== void 0 ? h : i.type) !== null && _ref3 !== void 0 ? _ref3 : getJSONType(t),
595
+ _o = d({
596
+ keypath: e,
597
+ error: r,
598
+ parent: t,
599
+ key: n,
600
+ stateObj: i,
601
+ type: _s2
602
+ });
603
+ if (!_o) throw r;
604
+ if ("substitute" in _o) return {
605
+ value: _o.substitute,
606
+ substitute: true
607
+ };
608
+ if (_o.ignore) return;
609
+ throw r;
610
+ }
611
+ };
612
+ if (["string", "boolean", "number", "undefined"].includes(_typeof(t))) return void 0 === t || t === 1 / 0 || 0 === t || t === -1 / 0 || Number.isNaN(t) ? (b = i.replaced ? t : replace(e, t, i, a, false, l, v), b !== t && (O = {
613
+ replaced: b
614
+ })) : b = t, v && v(), b;
568
615
  if (null === t) return v && v(), t;
569
616
  if (o && t && "object" == _typeof(t) && !i.iterateIn && !i.iterateUnsetNumeric) {
570
- var _n = y.indexOf(t);
571
- if (-1 !== _n) return p[e] = "#", v && v({
572
- cyclicKeypath: u[_n]
573
- }), "#" + u[_n];
617
+ var _n2 = y.indexOf(t);
618
+ if (-1 !== _n2) return p[e] = "#", v && v({
619
+ cyclicKeypath: u[_n2]
620
+ }), "#" + u[_n2];
574
621
  true === o && (y.push(t), u.push(e));
575
622
  }
576
623
  var m = isPlainObject(t),
577
- b = s(t),
578
- P = (m || b) && (!_this2.plainObjectReplacers.length || i.replaced) || i.iterateIn ? t : replace(e, t, i, a, m || b, null, v);
579
- var T;
580
- if (P !== t ? (d = P, O = {
624
+ T = s(t),
625
+ P = (m || T) && (!_this2.plainObjectReplacers.length || i.replaced) || i.iterateIn ? t : replace(e, t, i, a, m || T, null, v);
626
+ var w;
627
+ if (P !== t ? (b = P, O = {
581
628
  replaced: P
582
- }) : "" === e && hasConstructorOf(t, TypesonPromise) ? (a.push([e, t, o, i, void 0, void 0, i.type]), d = t) : b && "object" !== i.iterateIn || "array" === i.iterateIn ? (T = new Array(t.length), O = {
583
- clone: T
584
- }) : !m && (["function", "symbol"].includes(_typeof(t)) || "toJSON" in t || hasConstructorOf(t, TypesonPromise) || hasConstructorOf(t, Promise) || hasConstructorOf(t, ArrayBuffer)) && "object" !== i.iterateIn ? d = t : (T = {}, i.addLength && (T.length = t.length), O = {
585
- clone: T
586
- }), v && v(), c.iterateNone) return T !== null && T !== void 0 ? T : d;
587
- if (!T) return d;
629
+ }) : "" === e && hasConstructorOf(t, TypesonPromise) ? (a.push([e, t, o, i, void 0, void 0, i.type]), b = t) : T && "object" !== i.iterateIn || "array" === i.iterateIn ? (w = new Array(t.length), O = {
630
+ clone: w
631
+ }) : !m && ("object" != _typeof(t) || "toJSON" in t || hasConstructorOf(t, TypesonPromise) || hasConstructorOf(t, Promise) || hasConstructorOf(t, ArrayBuffer)) && "object" !== i.iterateIn ? b = t : (w = {}, i.addLength && (w.length = t.length), O = {
632
+ clone: w
633
+ }), v && v(), c.iterateNone) return w !== null && w !== void 0 ? w : b;
634
+ if (!w) return b;
588
635
  if (i.iterateIn) {
589
- var _loop = function _loop(_n2) {
636
+ var _loop = function _loop(_n3) {
590
637
  var s = {
591
- ownKeys: r(t, _n2)
638
+ ownKeys: r(t, _n3)
592
639
  };
593
640
  _adaptBuiltinStateObjectProperties(i, s, function () {
594
- var r = e + (e ? "." : "") + escapeKeyPathComponent(_n2),
595
- s = _encapsulate2(r, t[_n2], Boolean(o), i, a, l);
596
- hasConstructorOf(s, TypesonPromise) ? a.push([r, s, Boolean(o), i, T, _n2, i.type]) : void 0 !== s && (T[_n2] = s);
641
+ var r = e + (e ? "." : "") + escapeKeyPathComponent(_n3),
642
+ s = getEncapsulatedValue(r, t, _n3),
643
+ c = s && s.value;
644
+ hasConstructorOf(c, TypesonPromise) ? a.push([r, c, Boolean(o), i, w, _n3, i.type]) : s && (void 0 !== c || "substitute" in s) && setOwnEnumerable(w, _n3, c);
597
645
  });
598
646
  };
599
- for (var _n2 in t) {
600
- _loop(_n2);
647
+ for (var _n3 in t) {
648
+ _loop(_n3);
601
649
  }
602
650
  v && v({
603
651
  endIterateIn: true,
@@ -608,70 +656,71 @@
608
656
  _adaptBuiltinStateObjectProperties(i, {
609
657
  ownKeys: true
610
658
  }, function () {
611
- var e = _encapsulate2(r, t[n], Boolean(o), i, a, l);
612
- hasConstructorOf(e, TypesonPromise) ? a.push([r, e, Boolean(o), i, T, n, i.type]) : void 0 !== e && (T[n] = e);
659
+ var e = getEncapsulatedValue(r, t, n),
660
+ s = e && e.value;
661
+ hasConstructorOf(s, TypesonPromise) ? a.push([r, s, Boolean(o), i, w, n, i.type]) : e && (void 0 !== s || "substitute" in e) && setOwnEnumerable(w, n, s);
613
662
  });
614
663
  }), v && v({
615
664
  endIterateOwn: true,
616
665
  end: true
617
666
  });
618
667
  if (i.iterateUnsetNumeric) {
619
- var _n3 = t.length;
620
- var _loop2 = function _loop2(_r2) {
621
- if (_r2 in t) return 1; // continue
622
- var n = "".concat(e).concat(e ? "." : "").concat(String(_r2));
668
+ var _n4 = t.length;
669
+ var _loop2 = function _loop2(_r) {
670
+ if (_r in t) return 1; // continue
671
+ var n = "".concat(e).concat(e ? "." : "").concat(String(_r));
623
672
  _adaptBuiltinStateObjectProperties(i, {
624
673
  ownKeys: false
625
674
  }, function () {
626
675
  var e = _encapsulate2(n, void 0, Boolean(o), i, a, l);
627
- hasConstructorOf(e, TypesonPromise) ? a.push([n, e, Boolean(o), i, T, _r2, i.type]) : void 0 !== e && (T[_r2] = e);
676
+ hasConstructorOf(e, TypesonPromise) ? a.push([n, e, Boolean(o), i, w, _r, i.type]) : void 0 !== e && setOwnEnumerable(w, _r, e);
628
677
  });
629
678
  };
630
- for (var _r2 = 0; _r2 < _n3; _r2++) {
631
- if (_loop2(_r2)) continue;
679
+ for (var _r = 0; _r < _n4; _r++) {
680
+ if (_loop2(_r)) continue;
632
681
  }
633
682
  v && v({
634
683
  endIterateUnsetNumeric: true,
635
684
  end: true
636
685
  });
637
686
  }
638
- return T;
687
+ return w;
639
688
  },
640
689
  replace = function replace(e, t, n, r, s, o, i) {
641
690
  var c = s ? _this2.plainObjectReplacers : _this2.nonplainObjectReplacers;
642
691
  var y = c.length;
643
692
  for (; y--;) {
644
- var _s2 = c[y];
645
- if (_s2.test(t, n)) {
646
- var _c = _s2.type;
693
+ var _s3 = c[y];
694
+ if (_s3.test(t, n)) {
695
+ var _c = _s3.type;
647
696
  if (Object.hasOwn(_this2.revivers, _c)) {
648
- var _t3 = p[e];
649
- p[e] = _t3 ? [_c].concat(_t3) : _c;
697
+ var _t4 = p[e];
698
+ p[e] = _t4 ? [_c].concat(_t4) : _c;
650
699
  }
651
700
  if (Object.assign(n, {
652
701
  type: _c,
653
702
  replaced: true
654
- }), (a || !_s2.replaceAsync) && !_s2.replace) return i && i({
703
+ }), (a || !_s3.replaceAsync) && !_s3.replace) return i && i({
655
704
  typeDetected: true
656
705
  }), _encapsulate2(e, t, h && "readonly", n, r, o, _c);
657
706
  var _y = void 0;
658
707
  if (i && i({
659
708
  replacing: true
660
- }), a || !_s2.replaceAsync) {
661
- if (void 0 === _s2.replace) throw new TypeError("Missing replacer");
662
- _y = _s2.replace(t, n);
663
- } else _y = _s2.replaceAsync(t, n);
709
+ }), a || !_s3.replaceAsync) {
710
+ if (void 0 === _s3.replace) throw new TypeError("Missing replacer");
711
+ _y = _s3.replace(t, n);
712
+ } else _y = _s3.replaceAsync(t, n);
664
713
  return _encapsulate2(e, _y, h && "readonly", n, r, o, _c);
665
714
  }
666
715
  }
667
716
  return t;
668
717
  },
669
- d = _encapsulate2("", e, h, t !== null && t !== void 0 ? t : {}, l);
718
+ b = _encapsulate2("", e, h, t !== null && t !== void 0 ? t : {}, l);
670
719
  if (l.length) return a && c.throwOnBadSyncType ? function () {
671
720
  throw new TypeError("Sync method requested but async result obtained");
672
- }() : Promise.resolve(_checkPromises(d, l)).then(finish);
721
+ }() : Promise.resolve(_checkPromises(b, l)).then(finish);
673
722
  if (!a && c.throwOnBadSyncType) throw new TypeError("Async method requested but sync result obtained");
674
- return a && c.stringification ? [finish(d)] : a ? finish(d) : Promise.resolve(finish(d));
723
+ return a && c.stringification ? [finish(b)] : a ? finish(b) : Promise.resolve(finish(b));
675
724
  }
676
725
  }, {
677
726
  key: "encapsulateSync",
@@ -715,9 +764,9 @@
715
764
  c.$ && isPlainObject(c.$) && (e = e.$, c = c.$, u = false);
716
765
  var executeReviver = function executeReviver(e, t) {
717
766
  var _this3$revivers$e;
718
- var _ref3 = (_this3$revivers$e = _this3.revivers[e]) !== null && _this3$revivers$e !== void 0 ? _this3$revivers$e : [],
719
- _ref4 = _slicedToArray(_ref3, 1),
720
- n = _ref4[0];
767
+ var _ref4 = (_this3$revivers$e = _this3.revivers[e]) !== null && _this3$revivers$e !== void 0 ? _this3$revivers$e : [],
768
+ _ref5 = _slicedToArray(_ref4, 1),
769
+ n = _ref5[0];
721
770
  if (!n) throw new Error("Unregistered type: " + e);
722
771
  if (i && !("revive" in n)) return t;
723
772
  if (!i && n.reviveAsync) return n.reviveAsync(t, y);
@@ -731,35 +780,35 @@
731
780
  var h = function () {
732
781
  if (!c) throw new Error("Found bad `types`");
733
782
  var t = [];
734
- if (Object.entries(c).forEach(function (_ref5) {
735
- var _ref6 = _slicedToArray(_ref5, 2),
736
- e = _ref6[0],
737
- n = _ref6[1];
783
+ if (Object.entries(c).forEach(function (_ref6) {
784
+ var _ref7 = _slicedToArray(_ref6, 2),
785
+ e = _ref7[0],
786
+ n = _ref7[1];
738
787
  "#" !== n && [].concat(n).forEach(function (n) {
739
788
  var _this3$revivers$n;
740
- var _ref7 = (_this3$revivers$n = _this3.revivers[n]) !== null && _this3$revivers$n !== void 0 ? _this3$revivers$n : [null, {}],
741
- _ref8 = _slicedToArray(_ref7, 2),
742
- r = _ref8[1].plain;
789
+ var _ref8 = (_this3$revivers$n = _this3.revivers[n]) !== null && _this3$revivers$n !== void 0 ? _this3$revivers$n : [null, {}],
790
+ _ref9 = _slicedToArray(_ref8, 2),
791
+ r = _ref9[1].plain;
743
792
  r && (t.push({
744
793
  keypath: e,
745
794
  type: n
746
795
  }), delete c[e]);
747
796
  });
748
- }), t.length) return t.sort(nestedPathsFirst), t.reduce(function reducer(t, _ref9) {
749
- var n = _ref9.keypath,
750
- r = _ref9.type;
797
+ }), t.length) return t.sort(nestedPathsFirst), t.reduce(function reducer(t, _ref0) {
798
+ var n = _ref0.keypath,
799
+ r = _ref0.type;
751
800
  if (isThenable(t)) return t.then(function (e) {
752
801
  return reducer(e, {
753
802
  keypath: n,
754
803
  type: r
755
804
  });
756
805
  });
757
- var s = getByKeyPath(e, n);
806
+ var s = getByKeyPath(e, n, true);
758
807
  if (s = executeReviver(r, s), hasConstructorOf(s, TypesonPromise)) return s.then(function (t) {
759
- var r = setAtKeyPath(e, n, t);
808
+ var r = setAtKeyPath(e, n, t, true);
760
809
  r === t && (e = r);
761
810
  });
762
- var o = setAtKeyPath(e, n, s);
811
+ var o = setAtKeyPath(e, n, s, true);
763
812
  o === s && (e = o);
764
813
  }, void 0);
765
814
  }();
@@ -769,36 +818,36 @@
769
818
  }) : (f = function _revive(e, t, o, y, h) {
770
819
  if (u && "$types" === e) return;
771
820
  var f = l.length,
772
- d = c[e],
773
- O = s(t);
774
- if (O || isPlainObject(t)) {
775
- var _s3 = O ? new Array(t.length) : {};
821
+ d = r(c, e) ? c[e] : void 0,
822
+ b = s(t);
823
+ if (b || isPlainObject(t)) {
824
+ var _s4 = b ? new Array(t.length) : {};
776
825
  for (n(t).forEach(function (n) {
777
- var r = _revive(e + (e ? "." : "") + escapeKeyPathComponent(n), t[n], o !== null && o !== void 0 ? o : _s3, _s3, n),
826
+ var r = _revive(e + (e ? "." : "") + escapeKeyPathComponent(n), t[n], o !== null && o !== void 0 ? o : _s4, _s4, n),
778
827
  set = function set(e) {
779
- return hasConstructorOf(e, Undefined) ? _s3[n] = void 0 : void 0 !== e && (_s3[n] = e), e;
828
+ return hasConstructorOf(e, Undefined) ? setOwnEnumerable(_s4, n, void 0) : void 0 !== e && setOwnEnumerable(_s4, n, e), e;
780
829
  };
781
830
  hasConstructorOf(r, TypesonPromise) ? l.push(r.then(function (e) {
782
831
  return set(e);
783
832
  })) : set(r);
784
- }), t = _s3; a.length;) {
833
+ }), t = _s4; a.length;) {
785
834
  var _a$ = _slicedToArray(a[0], 4),
786
- _e = _a$[0],
787
- _t4 = _a$[1],
788
- _n4 = _a$[2],
789
- _s4 = _a$[3],
790
- _o = r(p, _t4),
791
- _i = _o ? p[_t4] : getByKeyPath(_e, _t4);
792
- if (!_o && void 0 === _i) break;
793
- _n4[_s4] = _i, a.shift();
835
+ _e2 = _a$[0],
836
+ _t5 = _a$[1],
837
+ _n5 = _a$[2],
838
+ _s5 = _a$[3],
839
+ _o2 = r(p, _t5),
840
+ _i = _o2 ? p[_t5] : getByKeyPath(_e2, _t5, true);
841
+ if (!_o2 && void 0 === _i) break;
842
+ setOwnEnumerable(_n5, _s5, _i), a.shift();
794
843
  }
795
844
  }
796
845
  if (!d) return p[e] = t, t;
797
846
  if ("#" === d) {
798
- var _e2 = t.slice(1),
799
- _n5 = r(p, _e2),
800
- _s5 = _n5 ? p[_e2] : getByKeyPath(o, _e2);
801
- return _n5 || void 0 !== _s5 || a.push([o, _e2, y, h]), _s5;
847
+ var _e3 = t.slice(1),
848
+ _n6 = r(p, _e3),
849
+ _s6 = _n6 ? p[_e3] : getByKeyPath(o, _e3, true);
850
+ return _n6 || void 0 !== _s6 || a.push([o, _e3, y, h]), _s6;
802
851
  }
803
852
  var applyType = function applyType(t) {
804
853
  var n = [].concat(d).reduce(function reducer(e, t) {
@@ -817,9 +866,9 @@
817
866
  }) : applyType(t);
818
867
  }("", e, null), l.length && (f = TypesonPromise.resolve(f).then(function (e) {
819
868
  return TypesonPromise.all([e].concat(l));
820
- }).then(function (_ref0) {
821
- var _ref1 = _slicedToArray(_ref0, 1),
822
- e = _ref1[0];
869
+ }).then(function (_ref1) {
870
+ var _ref10 = _slicedToArray(_ref1, 1),
871
+ e = _ref10[0];
823
872
  return e;
824
873
  }))), isThenable(f) ? i && o.throwOnBadSyncType ? function () {
825
874
  throw new TypeError("Sync method requested but async result obtained");
@@ -854,49 +903,50 @@
854
903
  s(e) ? e.forEach(function (e) {
855
904
  _reg(e);
856
905
  }) : n(e).forEach(function (t) {
857
- var _n8;
906
+ var _n9;
858
907
  if ("#" === t) throw new TypeError("# cannot be used as a type name as it is reserved for cyclic objects");
859
908
  if (i$1.includes(t)) throw new TypeError("Plain JSON object types are reserved as type names");
860
909
  var n = e[t];
861
- var o = n && "function" != typeof n && !Array.isArray(n) && n.testPlainObjects ? _this4.plainObjectReplacers : _this4.nonplainObjectReplacers,
862
- c = o.filter(function (e) {
910
+ if ([_this4.plainObjectReplacers, _this4.nonplainObjectReplacers].forEach(function (e) {
911
+ var n = e.findIndex(function (e) {
863
912
  return e.type === t;
864
913
  });
865
- if (c.length && (o.splice(o.indexOf(c[0]), 1), delete _this4.revivers[t], delete _this4.types[t]), "function" == typeof n) {
866
- var _e3 = n;
914
+ -1 !== n && e.splice(n, 1);
915
+ }), delete _this4.revivers[t], delete _this4.types[t], "function" == typeof n) {
916
+ var _e4 = n;
867
917
  n = {
868
918
  test: function test(t) {
869
- return t && t.constructor === _e3;
919
+ return t && t.constructor === _e4;
870
920
  },
871
921
  replace: function replace(e) {
872
922
  return _objectSpread2({}, e);
873
923
  },
874
924
  revive: function revive(t) {
875
- return Object.assign(Object.create(_e3.prototype), t);
925
+ return Object.assign(Object.create(_e4.prototype), t);
876
926
  }
877
927
  };
878
928
  } else if (s(n)) {
879
- var _n6 = n,
880
- _n7 = _slicedToArray(_n6, 3),
881
- _e4 = _n7[0],
882
- _t5 = _n7[1],
883
- _r3 = _n7[2];
929
+ var _n7 = n,
930
+ _n8 = _slicedToArray(_n7, 3),
931
+ _e5 = _n8[0],
932
+ _t6 = _n8[1],
933
+ _r2 = _n8[2];
884
934
  n = {
885
- test: _e4,
886
- replace: _t5,
887
- revive: _r3
935
+ test: _e5,
936
+ replace: _t6,
937
+ revive: _r2
888
938
  };
889
939
  }
890
- if (!((_n8 = n) !== null && _n8 !== void 0 && _n8.test)) return;
891
- var a = {
940
+ if (!((_n9 = n) !== null && _n9 !== void 0 && _n9.test)) return;
941
+ var o = {
892
942
  type: t,
893
943
  test: n.test.bind(n)
894
944
  };
895
- n.replace && (a.replace = n.replace.bind(n)), n.replaceAsync && (a.replaceAsync = n.replaceAsync.bind(n));
896
- var p = "number" == typeof r.fallback ? r.fallback : r.fallback ? 0 : 1 / 0;
897
- if (n.testPlainObjects ? _this4.plainObjectReplacers.splice(p, 0, a) : _this4.nonplainObjectReplacers.splice(p, 0, a), n.revive || n.reviveAsync) {
898
- var _e5 = {};
899
- n.revive && (_e5.revive = n.revive.bind(n)), n.reviveAsync && (_e5.reviveAsync = n.reviveAsync.bind(n)), _this4.revivers[t] = [_e5, {
945
+ n.replace && (o.replace = n.replace.bind(n)), n.replaceAsync && (o.replaceAsync = n.replaceAsync.bind(n));
946
+ var c = "number" == typeof r.fallback ? r.fallback : r.fallback ? 0 : 1 / 0;
947
+ if (n.testPlainObjects ? _this4.plainObjectReplacers.splice(c, 0, o) : _this4.nonplainObjectReplacers.splice(c, 0, o), n.revive || n.reviveAsync) {
948
+ var _e6 = {};
949
+ n.revive && (_e6.revive = n.revive.bind(n)), n.reviveAsync && (_e6.reviveAsync = n.reviveAsync.bind(n)), _this4.revivers[t] = [_e6, {
900
950
  plain: n.testPlainObjects
901
951
  }];
902
952
  }
@@ -1322,30 +1372,30 @@
1322
1372
  revive: function revive(obj) {
1323
1373
  var jwk = (
1324
1374
  /**
1325
- * @type {{
1326
- * jwk: JsonWebKey,
1327
- * algorithm: KeyAlgorithm,
1328
- * usages: KeyUsage[]
1329
- * }}
1330
- */
1375
+ * @type {{
1376
+ * jwk: JsonWebKey,
1377
+ * algorithm: KeyAlgorithm,
1378
+ * usages: KeyUsage[]
1379
+ * }}
1380
+ */
1331
1381
  obj).jwk,
1332
1382
  algorithm = (
1333
1383
  /**
1334
- * @type {{
1335
- * jwk: JsonWebKey,
1336
- * algorithm: KeyAlgorithm,
1337
- * usages: KeyUsage[]
1338
- * }}
1339
- */
1384
+ * @type {{
1385
+ * jwk: JsonWebKey,
1386
+ * algorithm: KeyAlgorithm,
1387
+ * usages: KeyUsage[]
1388
+ * }}
1389
+ */
1340
1390
  obj).algorithm,
1341
1391
  usages = (
1342
1392
  /**
1343
- * @type {{
1344
- * jwk: JsonWebKey,
1345
- * algorithm: KeyAlgorithm,
1346
- * usages: KeyUsage[]
1347
- * }}
1348
- */
1393
+ * @type {{
1394
+ * jwk: JsonWebKey,
1395
+ * algorithm: KeyAlgorithm,
1396
+ * usages: KeyUsage[]
1397
+ * }}
1398
+ */
1349
1399
  obj).usages;
1350
1400
  return crypto.subtle.importKey('jwk', jwk, algorithm, true, usages);
1351
1401
  }
@@ -1675,15 +1725,15 @@
1675
1725
  revive: function revive(obj) {
1676
1726
  var e =
1677
1727
  /**
1678
- * @type {{
1679
- * name: string,
1680
- * cause: Error,
1681
- * stack: string,
1682
- * fileName?: string,
1683
- * lineNumber?: import('typeson').Integer,
1684
- * columnNumber?: import('typeson').Integer
1685
- * }}
1686
- */
1728
+ * @type {{
1729
+ * name: string,
1730
+ * cause: Error,
1731
+ * stack: string,
1732
+ * fileName?: string,
1733
+ * lineNumber?: import('typeson').Integer,
1734
+ * columnNumber?: import('typeson').Integer
1735
+ * }}
1736
+ */
1687
1737
  new Error(obj.message);
1688
1738
  /* eslint-disable unicorn/no-error-property-assignment -- Ok */
1689
1739
  e.name = obj.name;
@@ -1769,23 +1819,23 @@
1769
1819
  var isAggregateError = typeof AggregateError !== 'undefined' && Ctor === AggregateError;
1770
1820
  var e =
1771
1821
  /**
1772
- * @type {{
1773
- * name: string,
1774
- * cause: Error,
1775
- * stack: string,
1776
- * fileName?: string,
1777
- * lineNumber?: import('typeson').Integer,
1778
- * columnNumber?: import('typeson').Integer
1779
- * }}
1780
- */
1822
+ * @type {{
1823
+ * name: string,
1824
+ * cause: Error,
1825
+ * stack: string,
1826
+ * fileName?: string,
1827
+ * lineNumber?: import('typeson').Integer,
1828
+ * columnNumber?: import('typeson').Integer
1829
+ * }}
1830
+ */
1781
1831
  isAggregateError ? new (/** @type {AggregateErrorConstructor} */
1782
1832
  Ctor)(obj.errors, obj.message) : new (
1783
1833
  /**
1784
- * @type {TypeErrorConstructor|RangeErrorConstructor|
1785
- * SyntaxErrorConstructor|ReferenceErrorConstructor|
1786
- * EvalErrorConstructor|URIErrorConstructor|
1787
- * InternalErrorConstructor}
1788
- */
1834
+ * @type {TypeErrorConstructor|RangeErrorConstructor|
1835
+ * SyntaxErrorConstructor|ReferenceErrorConstructor|
1836
+ * EvalErrorConstructor|URIErrorConstructor|
1837
+ * InternalErrorConstructor}
1838
+ */
1789
1839
  Ctor)(obj.message);
1790
1840
  e.name = obj.name;
1791
1841
  e.cause = obj.cause;