typeson-registry 14.2.2 → 14.4.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 (65) hide show
  1. package/dist/index.d.ts +2 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +26 -3
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.min.js +2 -2
  6. package/dist/index.min.js.map +1 -1
  7. package/dist/index.umd.cjs +367 -251
  8. package/dist/index.umd.cjs.map +1 -1
  9. package/dist/index.umd.min.cjs +2 -2
  10. package/dist/index.umd.min.cjs.map +1 -1
  11. package/dist/polyfills/DOMMatrix.d.ts +2 -2
  12. package/dist/polyfills/DOMMatrix.d.ts.map +1 -1
  13. package/dist/polyfills/DOMMatrixReadOnly.d.ts +2 -2
  14. package/dist/polyfills/DOMMatrixReadOnly.d.ts.map +1 -1
  15. package/dist/presets/builtin.umd.cjs.map +1 -1
  16. package/dist/presets/postmessage.umd.cjs.map +1 -1
  17. package/dist/presets/socketio.umd.cjs.map +1 -1
  18. package/dist/presets/structured-cloning-for-storage.d.ts +6 -0
  19. package/dist/presets/structured-cloning-for-storage.d.ts.map +1 -0
  20. package/dist/presets/structured-cloning-for-storage.umd.cjs +4 -0
  21. package/dist/presets/structured-cloning-for-storage.umd.cjs.map +1 -0
  22. package/dist/presets/structured-cloning-throwing.umd.cjs.map +1 -1
  23. package/dist/presets/structured-cloning.umd.cjs.map +1 -1
  24. package/dist/presets/undef.umd.cjs.map +1 -1
  25. package/dist/presets/universal.umd.cjs.map +1 -1
  26. package/dist/types/arraybuffer.umd.cjs.map +1 -1
  27. package/dist/types/audiodata.umd.cjs.map +1 -1
  28. package/dist/types/bigint-object.umd.cjs.map +1 -1
  29. package/dist/types/blob.umd.cjs.map +1 -1
  30. package/dist/types/cryptokey.umd.cjs.map +1 -1
  31. package/dist/types/dataview.umd.cjs.map +1 -1
  32. package/dist/types/date.umd.cjs.map +1 -1
  33. package/dist/types/domexception.umd.cjs.map +1 -1
  34. package/dist/types/dommatrix.umd.cjs.map +1 -1
  35. package/dist/types/dompoint.umd.cjs.map +1 -1
  36. package/dist/types/domquad.umd.cjs.map +1 -1
  37. package/dist/types/domrect.umd.cjs.map +1 -1
  38. package/dist/types/encodedaudiochunk.umd.cjs.map +1 -1
  39. package/dist/types/encodedvideochunk.umd.cjs.map +1 -1
  40. package/dist/types/error.umd.cjs.map +1 -1
  41. package/dist/types/errors.umd.cjs.map +1 -1
  42. package/dist/types/file.umd.cjs.map +1 -1
  43. package/dist/types/filelist.umd.cjs.map +1 -1
  44. package/dist/types/imagebitmap.umd.cjs.map +1 -1
  45. package/dist/types/imagedata.umd.cjs.map +1 -1
  46. package/dist/types/intl-types.umd.cjs.map +1 -1
  47. package/dist/types/map.umd.cjs.map +1 -1
  48. package/dist/types/nonbuiltin-ignore.umd.cjs.map +1 -1
  49. package/dist/types/primitive-objects.umd.cjs.map +1 -1
  50. package/dist/types/promise.umd.cjs.map +1 -1
  51. package/dist/types/quotaexceedederror.umd.cjs.map +1 -1
  52. package/dist/types/regexp.umd.cjs.map +1 -1
  53. package/dist/types/set.umd.cjs.map +1 -1
  54. package/dist/types/typed-arrays-socketio.umd.cjs.map +1 -1
  55. package/dist/types/typed-arrays.umd.cjs.map +1 -1
  56. package/dist/types/undef.umd.cjs.map +1 -1
  57. package/dist/types/user-object.umd.cjs.map +1 -1
  58. package/dist/types/videoframe.umd.cjs.map +1 -1
  59. package/dist/types/webtransporterror.umd.cjs.map +1 -1
  60. package/package.json +7 -7
  61. package/polyfills/DOMMatrix.js +2 -2
  62. package/polyfills/DOMMatrixReadOnly.js +2 -2
  63. package/polyfills/index.cjs +6 -4
  64. package/polyfills/index.cjs.map +1 -1
  65. package/polyfills/index.js +1 -0
@@ -320,10 +320,10 @@
320
320
  }
321
321
  function hasConstructorOf(n, r) {
322
322
  if (!n || "object" != _typeof(n)) return false;
323
- var s = t(n);
324
- if (!s) return null === r;
325
- var o = e(s, "constructor") && s.constructor;
326
- return "function" != typeof o ? null === r : r === o || null !== r && Function.prototype.toString.call(o) === Function.prototype.toString.call(r) || "function" == typeof r && "string" == typeof o.__typeson__type__ && o.__typeson__type__ === r.__typeson__type__;
323
+ var o = t(n);
324
+ if (!o) return null === r;
325
+ var s = e(o, "constructor") && o.constructor;
326
+ return "function" != typeof s ? null === r : r === s || null !== r && Function.prototype.toString.call(s) === Function.prototype.toString.call(r) || "function" == typeof r && "string" == typeof s.__typeson__type__ && s.__typeson__type__ === r.__typeson__type__;
327
327
  }
328
328
  function isPlainObject(e) {
329
329
  if (!e || "Object" !== toStringTag(e)) return false;
@@ -346,28 +346,28 @@
346
346
  function getByKeyPath(t, n, r) {
347
347
  if ("" === n) return t;
348
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);
349
+ var o = n.indexOf("."),
350
+ s = unescapeKeyPathComponent(-1 === o ? n : n.slice(0, o));
351
+ if (!r || e(t, s)) {
352
+ if (-1 !== o) {
353
+ var _e = t[s];
354
+ return void 0 === _e ? void 0 : getByKeyPath(_e, n.slice(o + 1), r);
355
355
  }
356
- return t[o];
356
+ return t[s];
357
357
  }
358
358
  }
359
- function setAtKeyPath(t, n, r, s) {
359
+ function setAtKeyPath(t, n, r, o) {
360
360
  if ("" === n) return r;
361
- var o = t,
361
+ var s = t,
362
362
  i = n;
363
363
  for (;;) {
364
- if (!o || "object" != _typeof(o)) throw new TypeError("Unexpected non-object type");
364
+ if (!s || "object" != _typeof(s)) throw new TypeError("Unexpected non-object type");
365
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
+ _c = unescapeKeyPathComponent(-1 === _n ? i : i.slice(0, _n));
367
+ if ("__proto__" === _c) throw new TypeError("Invalid property");
368
+ if (-1 === _n) return s[_c] = r, t;
369
+ if (o && !e(s, _c)) throw new TypeError("Invalid property");
370
+ s = s[_c], i = i.slice(_n + 1);
371
371
  }
372
372
  }
373
373
  function getJSONType(e) {
@@ -380,8 +380,8 @@
380
380
  */
381
381
  var n = Object.keys,
382
382
  r = Object.hasOwn,
383
- s = Array.isArray,
384
- o = ["type", "replaced", "iterateIn", "iterateUnsetNumeric", "addLength"];
383
+ o = Array.isArray,
384
+ s = ["type", "replaced", "iterateIn", "iterateUnsetNumeric", "iterateSymbols", "addLength"];
385
385
  function setOwnEnumerable(e, t, n) {
386
386
  Object.defineProperty(e, t, {
387
387
  configurable: true,
@@ -390,6 +390,7 @@
390
390
  writable: true
391
391
  });
392
392
  }
393
+ var i$1 = ["asyncIterator", "hasInstance", "isConcatSpreadable", "iterator", "match", "matchAll", "replace", "search", "species", "split", "toPrimitive", "toStringTag", "unscopables"];
393
394
  function nestedPathsFirst(e, t) {
394
395
  var _e$keypath$match, _t$keypath$match;
395
396
  if ("" === e.keypath) return -1;
@@ -399,8 +400,17 @@
399
400
  }
400
401
  var Typeson = /*#__PURE__*/function () {
401
402
  function Typeson(e) {
403
+ var _this2 = this;
402
404
  _classCallCheck(this, Typeson);
403
- this.options = e, this.plainObjectReplacers = [], this.nonplainObjectReplacers = [], this.revivers = {}, this.types = {};
405
+ this.options = e, this.plainObjectReplacers = [], this.nonplainObjectReplacers = [], this.revivers = {}, this.types = {}, this.symbolsByName = Object.create(null), this.symbolsByValue = new Map();
406
+ var t = e === null || e === void 0 ? void 0 : e.symbols;
407
+ t && Object.entries(t).forEach(function (_ref) {
408
+ var _ref2 = _slicedToArray(_ref, 2),
409
+ e = _ref2[0],
410
+ t = _ref2[1];
411
+ if ("symbol" != _typeof(t)) throw new TypeError("Non-symbol value supplied for `symbols` entry: " + e);
412
+ _this2.symbolsByName[e] = t, _this2.symbolsByValue.set(t, e);
413
+ });
404
414
  }
405
415
  return _createClass(Typeson, [{
406
416
  key: "stringify",
@@ -408,8 +418,8 @@
408
418
  r = _objectSpread2(_objectSpread2(_objectSpread2({}, this.options), r), {}, {
409
419
  stringification: true
410
420
  });
411
- var o = this.encapsulate(e, null, r);
412
- return s(o) ? JSON.stringify(o[0], t, n) : o.then(function (e) {
421
+ var s = this.encapsulate(e, null, r);
422
+ return o(s) ? JSON.stringify(s[0], t, n) : s.then(function (e) {
413
423
  return JSON.stringify(e, t, n);
414
424
  });
415
425
  }
@@ -474,35 +484,35 @@
474
484
  }
475
485
  }, {
476
486
  key: "encapsulate",
477
- value: function encapsulate(e, t, i) {
478
- var _this2 = this;
479
- var c = _objectSpread2(_objectSpread2({
487
+ value: function encapsulate(e, t, c) {
488
+ var _this3 = this;
489
+ var a = _objectSpread2(_objectSpread2({
480
490
  sync: true
481
- }, this.options), i),
482
- a = c.sync,
491
+ }, this.options), c),
492
+ y = a.sync,
493
+ l = {},
483
494
  p = {},
484
- y = [],
485
495
  u = [],
486
- l = [],
487
- h = !("cyclic" in c) || c.cyclic,
488
- f = c.encapsulateObserver,
489
- d = c.encapsulateError,
496
+ h = [],
497
+ f = [],
498
+ b = !("cyclic" in a) || a.cyclic,
499
+ d = a.encapsulateObserver,
500
+ m = a.encapsulateError,
490
501
  finish = function finish(e) {
491
- var t = Object.values(p);
492
- if (c.iterateNone) return t.length ? t[0] : getJSONType(e);
493
- if (t.length) {
494
- if (c.returnTypeNames) return _toConsumableArray(new Set(t));
495
- e && isPlainObject(e) && !r(e, "$types") ? e.$types = p : e = {
496
- $: e,
497
- $types: {
498
- $: p
499
- }
500
- };
501
- } else isObject(e) && r(e, "$types") && (e = {
502
+ var t = Object.values(l);
503
+ if (a.iterateNone) return t.length ? t[0] : getJSONType(e);
504
+ if (a.returnTypeNames) return !!t.length && _toConsumableArray(new Set(t));
505
+ var n = Object.keys(p).length > 0,
506
+ o = isObject(e) && (r(e, "$types") || r(e, "$symbolKeys"));
507
+ return n || t.length ? (!o && e && isPlainObject(e) ? t.length && (e.$types = l) : e = {
508
+ $: e,
509
+ $types: {
510
+ $: l
511
+ }
512
+ }, n && (e.$symbolKeys = p)) : o && (e = {
502
513
  $: e,
503
514
  $types: true
504
- });
505
- return !c.returnTypeNames && e;
515
+ }), e;
506
516
  },
507
517
  _checkPromises = /*#__PURE__*/function () {
508
518
  var _checkPromises2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(e, t) {
@@ -518,31 +528,31 @@
518
528
  n = _context2.v;
519
529
  _context2.n = 2;
520
530
  return Promise.all(n.map(/*#__PURE__*/function () {
521
- var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(n) {
522
- var r, _t$splice, _t$splice2, s, _s, o, i, c, a, p, y, u, l, _t, _t2, _t3;
531
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(n) {
532
+ var r, _t$splice, _t$splice2, o, _o, s, i, c, a, y, l, p, u, _t, _t2, _t3;
523
533
  return _regenerator().w(function (_context) {
524
534
  while (1) switch (_context.n) {
525
535
  case 0:
526
- r = [], _t$splice = t.splice(0, 1), _t$splice2 = _slicedToArray(_t$splice, 1), s = _t$splice2[0], _s = _slicedToArray(s, 7), o = _s[0], i = _s[2], c = _s[3], a = _s[4], p = _s[5], y = _s[6], u = _encapsulate2(o, n, i, c, r, true, y), l = hasConstructorOf(u, TypesonPromise);
527
- if (!(o && l)) {
536
+ r = [], _t$splice = t.splice(0, 1), _t$splice2 = _slicedToArray(_t$splice, 1), o = _t$splice2[0], _o = _slicedToArray(o, 7), s = _o[0], i = _o[2], c = _o[3], a = _o[4], y = _o[5], l = _o[6], p = _encapsulate2(s, n, i, c, r, true, l), u = hasConstructorOf(p, TypesonPromise);
537
+ if (!(s && u)) {
528
538
  _context.n = 2;
529
539
  break;
530
540
  }
531
541
  _t = setOwnEnumerable;
532
542
  _t2 = a;
533
- _t3 = p;
543
+ _t3 = y;
534
544
  _context.n = 1;
535
- return u.p;
545
+ return p.p;
536
546
  case 1:
537
547
  _t(_t2, _t3, _context.v);
538
548
  return _context.a(2, _checkPromises(e, r));
539
549
  case 2:
540
- return _context.a(2, (o ? setOwnEnumerable(a, p, u) : e = l ? u.p : u, _checkPromises(e, r)));
550
+ return _context.a(2, (s ? setOwnEnumerable(a, y, p) : e = u ? p.p : p, _checkPromises(e, r)));
541
551
  }
542
552
  }, _callee);
543
553
  }));
544
554
  return function (_x3) {
545
- return _ref.apply(this, arguments);
555
+ return _ref3.apply(this, arguments);
546
556
  };
547
557
  }()));
548
558
  case 2:
@@ -557,27 +567,27 @@
557
567
  }(),
558
568
  _adaptBuiltinStateObjectProperties = function _adaptBuiltinStateObjectProperties(e, t, n) {
559
569
  Object.assign(e, t);
560
- var r = o.map(function (t) {
570
+ var r = s.map(function (t) {
561
571
  var n = e[t];
562
572
  return delete e[t], n;
563
573
  });
564
- n(), o.forEach(function (t, n) {
574
+ n(), s.forEach(function (t, n) {
565
575
  e[t] = r[n];
566
576
  });
567
577
  },
568
- _encapsulate2 = function _encapsulate(e, t, o, i, a, l, h) {
569
- var b,
578
+ _encapsulate2 = function _encapsulate(e, t, s, c, y, f, b) {
579
+ var v,
570
580
  O = {};
571
- var v = f ? function (n) {
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, {
581
+ var w = d ? function (n) {
582
+ var _ref4;
583
+ var r = (_ref4 = b !== null && b !== void 0 ? b : c.type) !== null && _ref4 !== void 0 ? _ref4 : getJSONType(t);
584
+ d(Object.assign(n !== null && n !== void 0 ? n : O, {
575
585
  keypath: e,
576
586
  value: t,
577
- cyclic: o,
578
- stateObj: i,
579
- promisesData: a,
580
- resolvingTypesonPromise: l,
587
+ cyclic: s,
588
+ stateObj: c,
589
+ promisesData: y,
590
+ resolvingTypesonPromise: f,
581
591
  awaitingTypesonPromise: hasConstructorOf(t, TypesonPromise)
582
592
  }, {
583
593
  type: r
@@ -586,141 +596,185 @@
586
596
  getEncapsulatedValue = function getEncapsulatedValue(e, t, n) {
587
597
  try {
588
598
  return {
589
- value: _encapsulate2(e, t[n], Boolean(o), i, a, l)
599
+ value: _encapsulate2(e, t[n], Boolean(s), c, y, f)
590
600
  };
591
601
  } 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({
602
+ var _ref5;
603
+ if (!m) throw r;
604
+ var _o2 = (_ref5 = b !== null && b !== void 0 ? b : c.type) !== null && _ref5 !== void 0 ? _ref5 : getJSONType(t),
605
+ _s = m({
596
606
  keypath: e,
597
607
  error: r,
598
608
  parent: t,
599
609
  key: n,
600
- stateObj: i,
601
- type: _s2
610
+ stateObj: c,
611
+ type: _o2
602
612
  });
603
- if (!_o) throw r;
604
- if ("substitute" in _o) return {
605
- value: _o.substitute,
613
+ if (!_s) throw r;
614
+ if ("substitute" in _s) return {
615
+ value: _s.substitute,
606
616
  substitute: true
607
617
  };
608
- if (_o.ignore) return;
618
+ if (_s.ignore) return;
609
619
  throw r;
610
620
  }
611
621
  };
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;
615
- if (null === t) return v && v(), t;
616
- if (o && t && "object" == _typeof(t) && !i.iterateIn && !i.iterateUnsetNumeric) {
617
- var _n2 = y.indexOf(t);
618
- if (-1 !== _n2) return p[e] = "#", v && v({
619
- cyclicKeypath: u[_n2]
620
- }), "#" + u[_n2];
621
- true === o && (y.push(t), u.push(e));
622
+ if (["string", "boolean", "number", "undefined"].includes(_typeof(t))) return void 0 === t || t === 1 / 0 || 0 === t || t === -1 / 0 || Number.isNaN(t) ? (v = c.replaced ? t : replace(e, t, c, y, false, f, w), v !== t && (O = {
623
+ replaced: v
624
+ })) : v = t, w && w(), v;
625
+ if (null === t) return w && w(), t;
626
+ if (s && t && "object" == _typeof(t) && !c.iterateIn && !c.iterateUnsetNumeric) {
627
+ var _n2 = u.indexOf(t);
628
+ if (-1 !== _n2) return l[e] = "#", w && w({
629
+ cyclicKeypath: h[_n2]
630
+ }), "#" + h[_n2];
631
+ true === s && (u.push(t), h.push(e));
622
632
  }
623
- var m = isPlainObject(t),
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 = {
633
+ var g = isPlainObject(t),
634
+ T = o(t),
635
+ P = (g || T) && (!_this3.plainObjectReplacers.length || c.replaced) || c.iterateIn ? t : replace(e, t, c, y, g || T, null, w);
636
+ var j;
637
+ if (P !== t ? (v = P, O = {
628
638
  replaced: P
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;
635
- if (i.iterateIn) {
639
+ }) : "" === e && hasConstructorOf(t, TypesonPromise) ? (y.push([e, t, s, c, void 0, void 0, c.type]), v = t) : T && "object" !== c.iterateIn || "array" === c.iterateIn ? (j = new Array(t.length), O = {
640
+ clone: j
641
+ }) : !g && ("object" != _typeof(t) || "toJSON" in t || hasConstructorOf(t, TypesonPromise) || hasConstructorOf(t, Promise) || hasConstructorOf(t, ArrayBuffer)) && "object" !== c.iterateIn ? v = t : (j = {}, c.addLength && (j.length = t.length), O = {
642
+ clone: j
643
+ }), w && w(), a.iterateNone) return j !== null && j !== void 0 ? j : v;
644
+ if (!j) return v;
645
+ if (c.iterateIn) {
636
646
  var _loop = function _loop(_n3) {
637
- var s = {
647
+ var o = {
638
648
  ownKeys: r(t, _n3)
639
649
  };
640
- _adaptBuiltinStateObjectProperties(i, s, function () {
650
+ _adaptBuiltinStateObjectProperties(c, o, function () {
641
651
  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);
652
+ o = getEncapsulatedValue(r, t, _n3),
653
+ i = o && o.value;
654
+ hasConstructorOf(i, TypesonPromise) ? y.push([r, i, Boolean(s), c, j, _n3, c.type]) : o && (void 0 !== i || "substitute" in o) && setOwnEnumerable(j, _n3, i);
645
655
  });
646
656
  };
647
657
  for (var _n3 in t) {
648
658
  _loop(_n3);
649
659
  }
650
- v && v({
660
+ w && w({
651
661
  endIterateIn: true,
652
662
  end: true
653
663
  });
654
664
  } else n(t).forEach(function (n) {
655
665
  var r = e + (e ? "." : "") + escapeKeyPathComponent(n);
656
- _adaptBuiltinStateObjectProperties(i, {
666
+ _adaptBuiltinStateObjectProperties(c, {
657
667
  ownKeys: true
658
668
  }, function () {
659
669
  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);
670
+ o = e && e.value;
671
+ hasConstructorOf(o, TypesonPromise) ? y.push([r, o, Boolean(s), c, j, n, c.type]) : e && (void 0 !== o || "substitute" in e) && setOwnEnumerable(j, n, o);
662
672
  });
663
- }), v && v({
673
+ }), w && w({
664
674
  endIterateOwn: true,
665
675
  end: true
666
- });
667
- if (i.iterateUnsetNumeric) {
676
+ }), (c.iterateSymbols || a.iterateSymbols) && (Object.getOwnPropertySymbols(t).filter(function (e) {
677
+ return Object.prototype.propertyIsEnumerable.call(t, e);
678
+ }).forEach(function (n) {
679
+ var _p$e;
680
+ var r = function resolveSymbolIdentity(e, t) {
681
+ var n = Symbol.keyFor(e);
682
+ if (void 0 !== n) return {
683
+ "for": n
684
+ };
685
+ var r = i$1.find(function (t) {
686
+ return Symbol[t] === e;
687
+ });
688
+ if (r) return {
689
+ wellKnown: r
690
+ };
691
+ var o = t.get(e);
692
+ return void 0 !== o ? {
693
+ registered: o
694
+ } : null;
695
+ }(n, _this3.symbolsByValue);
696
+ if (!r) {
697
+ if (a.throwOnUnregisteredSymbol) throw new TypeError("Cannot serialize a Symbol-keyed property whose Symbol has no portable identity (not global, not well-known, and not in the `symbols` option): " + String(n));
698
+ return;
699
+ }
700
+ var o = (_p$e = p[e]) !== null && _p$e !== void 0 ? _p$e : p[e] = [],
701
+ l = {
702
+ key: r
703
+ };
704
+ o.push(l);
705
+ var u = o.length - 1,
706
+ h = "$symbolKeys.".concat(escapeKeyPathComponent(e), ".").concat(String(u), ".value"),
707
+ f = {
708
+ value: t[n]
709
+ };
710
+ _adaptBuiltinStateObjectProperties(c, {
711
+ ownKeys: true
712
+ }, function () {
713
+ var e = getEncapsulatedValue(h, f, "value"),
714
+ t = e && e.value;
715
+ hasConstructorOf(t, TypesonPromise) ? y.push([h, t, Boolean(s), c, l, "value", c.type]) : e && (void 0 !== t || "substitute" in e) && setOwnEnumerable(l, "value", t);
716
+ });
717
+ }), w && w({
718
+ endIterateSymbols: true,
719
+ end: true
720
+ }));
721
+ if (c.iterateUnsetNumeric) {
668
722
  var _n4 = t.length;
669
723
  var _loop2 = function _loop2(_r) {
670
724
  if (_r in t) return 1; // continue
671
725
  var n = "".concat(e).concat(e ? "." : "").concat(String(_r));
672
- _adaptBuiltinStateObjectProperties(i, {
726
+ _adaptBuiltinStateObjectProperties(c, {
673
727
  ownKeys: false
674
728
  }, function () {
675
- var e = _encapsulate2(n, void 0, Boolean(o), i, a, l);
676
- hasConstructorOf(e, TypesonPromise) ? a.push([n, e, Boolean(o), i, w, _r, i.type]) : void 0 !== e && setOwnEnumerable(w, _r, e);
729
+ var e = _encapsulate2(n, void 0, Boolean(s), c, y, f);
730
+ hasConstructorOf(e, TypesonPromise) ? y.push([n, e, Boolean(s), c, j, _r, c.type]) : void 0 !== e && setOwnEnumerable(j, _r, e);
677
731
  });
678
732
  };
679
733
  for (var _r = 0; _r < _n4; _r++) {
680
734
  if (_loop2(_r)) continue;
681
735
  }
682
- v && v({
736
+ w && w({
683
737
  endIterateUnsetNumeric: true,
684
738
  end: true
685
739
  });
686
740
  }
687
- return w;
741
+ return j;
688
742
  },
689
- replace = function replace(e, t, n, r, s, o, i) {
690
- var c = s ? _this2.plainObjectReplacers : _this2.nonplainObjectReplacers;
691
- var y = c.length;
692
- for (; y--;) {
693
- var _s3 = c[y];
694
- if (_s3.test(t, n)) {
695
- var _c = _s3.type;
696
- if (Object.hasOwn(_this2.revivers, _c)) {
697
- var _t4 = p[e];
698
- p[e] = _t4 ? [_c].concat(_t4) : _c;
743
+ replace = function replace(e, t, n, r, o, s, i) {
744
+ var c = o ? _this3.plainObjectReplacers : _this3.nonplainObjectReplacers;
745
+ var a = c.length;
746
+ for (; a--;) {
747
+ var _o3 = c[a];
748
+ if (_o3.test(t, n)) {
749
+ var _c2 = _o3.type;
750
+ if (Object.hasOwn(_this3.revivers, _c2)) {
751
+ var _t4 = l[e];
752
+ l[e] = _t4 ? [_c2].concat(_t4) : _c2;
699
753
  }
700
754
  if (Object.assign(n, {
701
- type: _c,
755
+ type: _c2,
702
756
  replaced: true
703
- }), (a || !_s3.replaceAsync) && !_s3.replace) return i && i({
757
+ }), (y || !_o3.replaceAsync) && !_o3.replace) return i && i({
704
758
  typeDetected: true
705
- }), _encapsulate2(e, t, h && "readonly", n, r, o, _c);
706
- var _y = void 0;
759
+ }), _encapsulate2(e, t, b && "readonly", n, r, s, _c2);
760
+ var _a = void 0;
707
761
  if (i && i({
708
762
  replacing: true
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);
713
- return _encapsulate2(e, _y, h && "readonly", n, r, o, _c);
763
+ }), y || !_o3.replaceAsync) {
764
+ if (void 0 === _o3.replace) throw new TypeError("Missing replacer");
765
+ _a = _o3.replace(t, n);
766
+ } else _a = _o3.replaceAsync(t, n);
767
+ return _encapsulate2(e, _a, b && "readonly", n, r, s, _c2);
714
768
  }
715
769
  }
716
770
  return t;
717
771
  },
718
- b = _encapsulate2("", e, h, t !== null && t !== void 0 ? t : {}, l);
719
- if (l.length) return a && c.throwOnBadSyncType ? function () {
772
+ v = _encapsulate2("", e, b, t !== null && t !== void 0 ? t : {}, f);
773
+ if (f.length) return y && a.throwOnBadSyncType ? function () {
720
774
  throw new TypeError("Sync method requested but async result obtained");
721
- }() : Promise.resolve(_checkPromises(b, l)).then(finish);
722
- if (!a && c.throwOnBadSyncType) throw new TypeError("Async method requested but sync result obtained");
723
- return a && c.stringification ? [finish(b)] : a ? finish(b) : Promise.resolve(finish(b));
775
+ }() : Promise.resolve(_checkPromises(v, f)).then(finish);
776
+ if (!y && a.throwOnBadSyncType) throw new TypeError("Async method requested but sync result obtained");
777
+ return y && a.stringification ? [finish(v)] : y ? finish(v) : Promise.resolve(finish(v));
724
778
  }
725
779
  }, {
726
780
  key: "encapsulateSync",
@@ -743,114 +797,152 @@
743
797
  }, {
744
798
  key: "revive",
745
799
  value: function revive(e, t) {
746
- var _this3 = this;
747
- var o = _objectSpread2(_objectSpread2({
800
+ var _this4 = this;
801
+ var s = _objectSpread2(_objectSpread2({
748
802
  sync: true
749
803
  }, this.options), t),
750
- i = o.sync;
804
+ c = s.sync;
751
805
  function finishRevival(e) {
752
- if (i) return e;
753
- if (o.throwOnBadSyncType) throw new TypeError("Async method requested but sync result obtained");
806
+ if (c) return e;
807
+ if (s.throwOnBadSyncType) throw new TypeError("Async method requested but sync result obtained");
754
808
  return Promise.resolve(e);
755
809
  }
756
810
  if (!e || "object" != _typeof(e) || Array.isArray(e)) return finishRevival(e);
757
- var c = e.$types;
758
- if (true === c) return finishRevival(e.$);
759
- if (!c || "object" != _typeof(c) || Array.isArray(c)) return finishRevival(e);
760
- var a = [],
761
- p = Object.create(null),
762
- y = {};
763
- var u = true;
764
- c.$ && isPlainObject(c.$) && (e = e.$, c = c.$, u = false);
811
+ var a = e.$types;
812
+ if (true === a) return finishRevival(e.$);
813
+ var y = e.$symbolKeys;
814
+ var l = void 0 !== y;
815
+ if (!a || "object" != _typeof(a) || Array.isArray(a)) {
816
+ if (!y) return finishRevival(e);
817
+ a = {};
818
+ }
819
+ var p = [],
820
+ u = Object.create(null),
821
+ h = {};
822
+ var f = true;
823
+ a.$ && isPlainObject(a.$) && (e = e.$, a = a.$, f = false, l = false, void 0 !== y && isObject(e) && !r(e, "$symbolKeys") && (e.$symbolKeys = y, l = true));
765
824
  var executeReviver = function executeReviver(e, t) {
766
- var _this3$revivers$e;
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];
825
+ var _this4$revivers$e;
826
+ var _ref6 = (_this4$revivers$e = _this4.revivers[e]) !== null && _this4$revivers$e !== void 0 ? _this4$revivers$e : [],
827
+ _ref7 = _slicedToArray(_ref6, 1),
828
+ n = _ref7[0];
770
829
  if (!n) throw new Error("Unregistered type: " + e);
771
- if (i && !("revive" in n)) return t;
772
- if (!i && n.reviveAsync) return n.reviveAsync(t, y);
773
- if (n.revive) return n.revive(t, y);
830
+ if (c && !("revive" in n)) return t;
831
+ if (!c && n.reviveAsync) return n.reviveAsync(t, h);
832
+ if (n.revive) return n.revive(t, h);
774
833
  throw new Error("Missing reviver");
775
834
  },
776
- l = [];
835
+ b = [];
777
836
  function checkUndefined(e) {
778
837
  return hasConstructorOf(e, Undefined) ? void 0 : e;
779
838
  }
780
- var h = function () {
781
- if (!c) throw new Error("Found bad `types`");
782
- var t = [];
783
- if (Object.entries(c).forEach(function (_ref6) {
784
- var _ref7 = _slicedToArray(_ref6, 2),
785
- e = _ref7[0],
786
- n = _ref7[1];
787
- "#" !== n && [].concat(n).forEach(function (n) {
788
- var _this3$revivers$n;
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;
792
- r && (t.push({
793
- keypath: e,
794
- type: n
795
- }), delete c[e]);
796
- });
797
- }), t.length) return t.sort(nestedPathsFirst), t.reduce(function reducer(t, _ref0) {
798
- var n = _ref0.keypath,
799
- r = _ref0.type;
800
- if (isThenable(t)) return t.then(function (e) {
801
- return reducer(e, {
802
- keypath: n,
803
- type: r
839
+ var reHomeSymbolKeys = function reHomeSymbolKeys(e) {
840
+ if (!isObject(e)) return;
841
+ var t = l ? e.$symbolKeys : y;
842
+ t && (Object.entries(t).forEach(function (_ref8) {
843
+ var _ref9 = _slicedToArray(_ref8, 2),
844
+ t = _ref9[0],
845
+ n = _ref9[1];
846
+ var o = getByKeyPath(e, t, true);
847
+ isObject(o) && n.forEach(function (e) {
848
+ if (!r(e, "value")) return;
849
+ var t = function resolveSymbolFromIdentity(e, t) {
850
+ if ("for" in e) return Symbol["for"](e["for"]);
851
+ if ("wellKnown" in e) {
852
+ var _t5 = i$1.find(function (t) {
853
+ return t === e.wellKnown;
854
+ });
855
+ if (!_t5) throw new Error("Unknown well-known Symbol: " + e.wellKnown);
856
+ return Symbol[_t5];
857
+ }
858
+ if (!r(t, e.registered)) throw new Error("Unregistered symbol: " + e.registered);
859
+ return t[e.registered];
860
+ }(e.key, _this4.symbolsByName),
861
+ n = checkUndefined(e.value);
862
+ e.descriptor ? Object.defineProperty(o, t, _objectSpread2(_objectSpread2({
863
+ configurable: true,
864
+ enumerable: true,
865
+ writable: true
866
+ }, e.descriptor), {}, {
867
+ value: n
868
+ })) : o[t] = n;
804
869
  });
805
- });
806
- var s = getByKeyPath(e, n, true);
807
- if (s = executeReviver(r, s), hasConstructorOf(s, TypesonPromise)) return s.then(function (t) {
808
- var r = setAtKeyPath(e, n, t, true);
809
- r === t && (e = r);
810
- });
811
- var o = setAtKeyPath(e, n, s, true);
812
- o === s && (e = o);
813
- }, void 0);
814
- }();
815
- var f;
816
- return hasConstructorOf(h, TypesonPromise) ? f = h.then(function () {
870
+ }), l && delete e.$symbolKeys);
871
+ },
872
+ d = function () {
873
+ if (!a) throw new Error("Found bad `types`");
874
+ var t = [];
875
+ if (Object.entries(a).forEach(function (_ref0) {
876
+ var _ref1 = _slicedToArray(_ref0, 2),
877
+ e = _ref1[0],
878
+ n = _ref1[1];
879
+ "#" !== n && [].concat(n).forEach(function (n) {
880
+ var _this4$revivers$n;
881
+ var _ref10 = (_this4$revivers$n = _this4.revivers[n]) !== null && _this4$revivers$n !== void 0 ? _this4$revivers$n : [null, {}],
882
+ _ref11 = _slicedToArray(_ref10, 2),
883
+ r = _ref11[1].plain;
884
+ r && (t.push({
885
+ keypath: e,
886
+ type: n
887
+ }), delete a[e]);
888
+ });
889
+ }), t.length) return t.sort(nestedPathsFirst), t.reduce(function reducer(t, _ref12) {
890
+ var n = _ref12.keypath,
891
+ r = _ref12.type;
892
+ if (isThenable(t)) return t.then(function (e) {
893
+ return reducer(e, {
894
+ keypath: n,
895
+ type: r
896
+ });
897
+ });
898
+ var o = getByKeyPath(e, n, true);
899
+ if (o = executeReviver(r, o), hasConstructorOf(o, TypesonPromise)) return o.then(function (t) {
900
+ var r = setAtKeyPath(e, n, t, true);
901
+ r === t && (e = r);
902
+ });
903
+ var s = setAtKeyPath(e, n, o, true);
904
+ s === o && (e = s);
905
+ }, void 0);
906
+ }();
907
+ var m;
908
+ return hasConstructorOf(d, TypesonPromise) ? m = d.then(function () {
817
909
  return e;
818
- }) : (f = function _revive(e, t, o, y, h) {
819
- if (u && "$types" === e) return;
820
- var f = l.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) : {};
910
+ }) : (m = function _revive(e, t, s, i, y) {
911
+ if (f && "$types" === e) return;
912
+ var l = b.length,
913
+ h = r(a, e) ? a[e] : void 0,
914
+ d = o(t);
915
+ if (d || isPlainObject(t)) {
916
+ var _o4 = d ? new Array(t.length) : {};
825
917
  for (n(t).forEach(function (n) {
826
- var r = _revive(e + (e ? "." : "") + escapeKeyPathComponent(n), t[n], o !== null && o !== void 0 ? o : _s4, _s4, n),
918
+ var r = _revive(e + (e ? "." : "") + escapeKeyPathComponent(n), t[n], s !== null && s !== void 0 ? s : _o4, _o4, n),
827
919
  set = function set(e) {
828
- return hasConstructorOf(e, Undefined) ? setOwnEnumerable(_s4, n, void 0) : void 0 !== e && setOwnEnumerable(_s4, n, e), e;
920
+ return hasConstructorOf(e, Undefined) ? setOwnEnumerable(_o4, n, void 0) : void 0 !== e && setOwnEnumerable(_o4, n, e), e;
829
921
  };
830
- hasConstructorOf(r, TypesonPromise) ? l.push(r.then(function (e) {
922
+ hasConstructorOf(r, TypesonPromise) ? b.push(r.then(function (e) {
831
923
  return set(e);
832
924
  })) : set(r);
833
- }), t = _s4; a.length;) {
834
- var _a$ = _slicedToArray(a[0], 4),
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();
925
+ }), t = _o4; p.length;) {
926
+ var _p$ = _slicedToArray(p[0], 4),
927
+ _e2 = _p$[0],
928
+ _t6 = _p$[1],
929
+ _n5 = _p$[2],
930
+ _o5 = _p$[3],
931
+ _s2 = r(u, _t6),
932
+ _i = _s2 ? u[_t6] : getByKeyPath(_e2, _t6, true);
933
+ if (!_s2 && void 0 === _i) break;
934
+ setOwnEnumerable(_n5, _o5, _i), p.shift();
843
935
  }
844
936
  }
845
- if (!d) return p[e] = t, t;
846
- if ("#" === d) {
937
+ if (!h) return u[e] = t, t;
938
+ if ("#" === h) {
847
939
  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;
940
+ _n6 = r(u, _e3),
941
+ _o6 = _n6 ? u[_e3] : getByKeyPath(s, _e3, true);
942
+ return _n6 || void 0 !== _o6 || p.push([s, _e3, i, y]), _o6;
851
943
  }
852
944
  var applyType = function applyType(t) {
853
- var n = [].concat(d).reduce(function reducer(e, t) {
945
+ var n = [].concat(h).reduce(function reducer(e, t) {
854
946
  if (hasConstructorOf(e, TypesonPromise)) return e.then(function (e) {
855
947
  return reducer(e, t);
856
948
  });
@@ -858,23 +950,25 @@
858
950
  return executeReviver(t, e);
859
951
  }, t);
860
952
  return hasConstructorOf(n, TypesonPromise) ? n.then(function (t) {
861
- return p[e] = t, t;
862
- }) : (p[e] = n, n);
953
+ return u[e] = t, t;
954
+ }) : (u[e] = n, n);
863
955
  };
864
- return !i && l.length > f ? TypesonPromise.all(l.slice(f)).then(function () {
956
+ return !c && b.length > l ? TypesonPromise.all(b.slice(l)).then(function () {
865
957
  return applyType(t);
866
958
  }) : applyType(t);
867
- }("", e, null), l.length && (f = TypesonPromise.resolve(f).then(function (e) {
868
- return TypesonPromise.all([e].concat(l));
869
- }).then(function (_ref1) {
870
- var _ref10 = _slicedToArray(_ref1, 1),
871
- e = _ref10[0];
959
+ }("", e, null), b.length && (m = TypesonPromise.resolve(m).then(function (e) {
960
+ return TypesonPromise.all([e].concat(b));
961
+ }).then(function (_ref13) {
962
+ var _ref14 = _slicedToArray(_ref13, 1),
963
+ e = _ref14[0];
872
964
  return e;
873
- }))), isThenable(f) ? i && o.throwOnBadSyncType ? function () {
965
+ }))), y && (isThenable(m) ? m = m.then(function (e) {
966
+ return reHomeSymbolKeys(e), e;
967
+ }) : reHomeSymbolKeys(m)), isThenable(m) ? c && s.throwOnBadSyncType ? function () {
874
968
  throw new TypeError("Sync method requested but async result obtained");
875
- }() : hasConstructorOf(f, TypesonPromise) ? f.p.then(checkUndefined) : f : !i && o.throwOnBadSyncType ? function () {
969
+ }() : hasConstructorOf(m, TypesonPromise) ? m.p.then(checkUndefined) : m : !c && s.throwOnBadSyncType ? function () {
876
970
  throw new TypeError("Async method requested but sync result obtained");
877
- }() : i ? checkUndefined(f) : Promise.resolve(checkUndefined(f));
971
+ }() : c ? checkUndefined(m) : Promise.resolve(checkUndefined(m));
878
972
  }
879
973
  }, {
880
974
  key: "reviveSync",
@@ -897,22 +991,22 @@
897
991
  }, {
898
992
  key: "register",
899
993
  value: function register(e, t) {
900
- var _this4 = this;
994
+ var _this5 = this;
901
995
  var r = t !== null && t !== void 0 ? t : {},
902
996
  _reg = function reg(e) {
903
- s(e) ? e.forEach(function (e) {
997
+ o(e) ? e.forEach(function (e) {
904
998
  _reg(e);
905
999
  }) : n(e).forEach(function (t) {
906
1000
  var _n9;
907
1001
  if ("#" === t) throw new TypeError("# cannot be used as a type name as it is reserved for cyclic objects");
908
- if (i$1.includes(t)) throw new TypeError("Plain JSON object types are reserved as type names");
1002
+ if (c.includes(t)) throw new TypeError("Plain JSON object types are reserved as type names");
909
1003
  var n = e[t];
910
- if ([_this4.plainObjectReplacers, _this4.nonplainObjectReplacers].forEach(function (e) {
1004
+ if ([_this5.plainObjectReplacers, _this5.nonplainObjectReplacers].forEach(function (e) {
911
1005
  var n = e.findIndex(function (e) {
912
1006
  return e.type === t;
913
1007
  });
914
1008
  -1 !== n && e.splice(n, 1);
915
- }), delete _this4.revivers[t], delete _this4.types[t], "function" == typeof n) {
1009
+ }), delete _this5.revivers[t], delete _this5.types[t], "function" == typeof n) {
916
1010
  var _e4 = n;
917
1011
  n = {
918
1012
  test: function test(t) {
@@ -925,32 +1019,32 @@
925
1019
  return Object.assign(Object.create(_e4.prototype), t);
926
1020
  }
927
1021
  };
928
- } else if (s(n)) {
1022
+ } else if (o(n)) {
929
1023
  var _n7 = n,
930
1024
  _n8 = _slicedToArray(_n7, 3),
931
1025
  _e5 = _n8[0],
932
- _t6 = _n8[1],
1026
+ _t7 = _n8[1],
933
1027
  _r2 = _n8[2];
934
1028
  n = {
935
1029
  test: _e5,
936
- replace: _t6,
1030
+ replace: _t7,
937
1031
  revive: _r2
938
1032
  };
939
1033
  }
940
1034
  if (!((_n9 = n) !== null && _n9 !== void 0 && _n9.test)) return;
941
- var o = {
1035
+ var s = {
942
1036
  type: t,
943
1037
  test: n.test.bind(n)
944
1038
  };
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) {
1039
+ n.replace && (s.replace = n.replace.bind(n)), n.replaceAsync && (s.replaceAsync = n.replaceAsync.bind(n));
1040
+ var i = "number" == typeof r.fallback ? r.fallback : r.fallback ? 0 : 1 / 0;
1041
+ if (n.testPlainObjects ? _this5.plainObjectReplacers.splice(i, 0, s) : _this5.nonplainObjectReplacers.splice(i, 0, s), n.revive || n.reviveAsync) {
948
1042
  var _e6 = {};
949
- n.revive && (_e6.revive = n.revive.bind(n)), n.reviveAsync && (_e6.reviveAsync = n.reviveAsync.bind(n)), _this4.revivers[t] = [_e6, {
1043
+ n.revive && (_e6.revive = n.revive.bind(n)), n.reviveAsync && (_e6.reviveAsync = n.reviveAsync.bind(n)), _this5.revivers[t] = [_e6, {
950
1044
  plain: n.testPlainObjects
951
1045
  }];
952
1046
  }
953
- _this4.types[t] = n;
1047
+ _this5.types[t] = n;
954
1048
  });
955
1049
  };
956
1050
  return [].concat(e).forEach(function (e) {
@@ -963,7 +1057,7 @@
963
1057
  _classCallCheck(this, Undefined);
964
1058
  });
965
1059
  Undefined.__typeson__type__ = "TypesonUndefined";
966
- var i$1 = ["null", "boolean", "number", "string", "array", "object"];
1060
+ var c = ["null", "boolean", "number", "string", "array", "object"];
967
1061
 
968
1062
  /*
969
1063
  * base64-arraybuffer
@@ -3259,6 +3353,27 @@
3259
3353
  }
3260
3354
  });
3261
3355
 
3356
+ /**
3357
+ * @type {import('typeson').Preset}
3358
+ */
3359
+ var structuredCloningForStorage = structuredCloningThrowing.concat({
3360
+ checkSharedArrayBufferException: {
3361
+ test: function test(val) {
3362
+ // Per https://webidl.spec.whatwg.org/#idl-SharedArrayBuffer ,
3363
+ // `SharedArrayBuffer` is a structured-cloneable *transferable*
3364
+ // type only for `postMessage`-style contexts (with
3365
+ // `crossOriginIsolated`); storage-oriented consumers of the
3366
+ // structured clone algorithm (e.g. IndexedDB) reject it
3367
+ // outright instead, so this isn't part of the more general
3368
+ // `structuredCloningThrowing` preset this one builds on.
3369
+ if ({}.toString.call(val).slice(8, -1) === 'SharedArrayBuffer') {
3370
+ throw new DOMException('The object cannot be cloned.', 'DataCloneError');
3371
+ }
3372
+ return false;
3373
+ }
3374
+ }
3375
+ });
3376
+
3262
3377
  /**
3263
3378
  * @type {import('typeson').Preset}
3264
3379
  */
@@ -3272,7 +3387,7 @@
3272
3387
  // built-in into ecmasript standard.
3273
3388
  ];
3274
3389
 
3275
- exports.JSON_TYPES = i$1;
3390
+ exports.JSON_TYPES = c;
3276
3391
  exports.Typeson = Typeson;
3277
3392
  exports.TypesonPromise = TypesonPromise;
3278
3393
  exports.Undefined = Undefined;
@@ -3327,6 +3442,7 @@
3327
3442
  exports.sparseUndefined = sparseUndefined;
3328
3443
  exports.specialNumbers = specialNumbers;
3329
3444
  exports.structuredCloning = expObj;
3445
+ exports.structuredCloningForStorage = structuredCloningForStorage;
3330
3446
  exports.structuredCloningThrowing = structuredCloningThrowing;
3331
3447
  exports.symbol = symbol;
3332
3448
  exports.toStringTag = toStringTag;