typeson-registry 11.1.1 → 13.0.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 (105) hide show
  1. package/dist/index.js +36 -32
  2. package/dist/index.js.map +1 -1
  3. package/dist/index.min.js +6 -1
  4. package/dist/index.min.js.map +1 -1
  5. package/dist/index.umd.cjs +826 -1102
  6. package/dist/index.umd.cjs.map +1 -1
  7. package/dist/index.umd.min.cjs +8 -1
  8. package/dist/index.umd.min.cjs.map +1 -1
  9. package/dist/polyfills/createObjectURL.d.ts +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.map +1 -1
  20. package/dist/presets/special-numbers.umd.cjs +1 -1
  21. package/dist/presets/special-numbers.umd.cjs.map +1 -1
  22. package/dist/presets/structured-cloning-throwing.umd.cjs +3 -1
  23. package/dist/presets/structured-cloning-throwing.umd.cjs.map +1 -1
  24. package/dist/presets/structured-cloning.umd.cjs +3 -1
  25. package/dist/presets/structured-cloning.umd.cjs.map +1 -1
  26. package/dist/presets/undef.umd.cjs +1 -1
  27. package/dist/presets/undef.umd.cjs.map +1 -1
  28. package/dist/presets/universal.umd.cjs +1 -1
  29. package/dist/presets/universal.umd.cjs.map +1 -1
  30. package/dist/types/arraybuffer.d.ts.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.map +1 -1
  36. package/dist/types/blob.umd.cjs +1 -1
  37. package/dist/types/blob.umd.cjs.map +1 -1
  38. package/dist/types/cloneable.umd.cjs.map +1 -1
  39. package/dist/types/cryptokey.umd.cjs +3 -1
  40. package/dist/types/cryptokey.umd.cjs.map +1 -1
  41. package/dist/types/dataview.d.ts.map +1 -1
  42. package/dist/types/dataview.umd.cjs +1 -1
  43. package/dist/types/dataview.umd.cjs.map +1 -1
  44. package/dist/types/date.umd.cjs +1 -1
  45. package/dist/types/date.umd.cjs.map +1 -1
  46. package/dist/types/domexception.umd.cjs +1 -1
  47. package/dist/types/domexception.umd.cjs.map +1 -1
  48. package/dist/types/dommatrix.umd.cjs +1 -1
  49. package/dist/types/dommatrix.umd.cjs.map +1 -1
  50. package/dist/types/dompoint.umd.cjs +1 -1
  51. package/dist/types/dompoint.umd.cjs.map +1 -1
  52. package/dist/types/domquad.umd.cjs +1 -1
  53. package/dist/types/domquad.umd.cjs.map +1 -1
  54. package/dist/types/domrect.umd.cjs +1 -1
  55. package/dist/types/domrect.umd.cjs.map +1 -1
  56. package/dist/types/error.d.ts.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 +3 -1
  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.map +1 -1
  80. package/dist/types/nonbuiltin-ignore.umd.cjs +1 -1
  81. package/dist/types/nonbuiltin-ignore.umd.cjs.map +1 -1
  82. package/dist/types/primitive-objects.umd.cjs +1 -1
  83. package/dist/types/primitive-objects.umd.cjs.map +1 -1
  84. package/dist/types/promise.umd.cjs +3 -1
  85. package/dist/types/promise.umd.cjs.map +1 -1
  86. package/dist/types/regexp.d.ts.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.map +1 -1
  90. package/dist/types/set.umd.cjs +1 -1
  91. package/dist/types/set.umd.cjs.map +1 -1
  92. package/dist/types/symbol.umd.cjs.map +1 -1
  93. package/dist/types/typed-arrays-socketio.umd.cjs +1 -1
  94. package/dist/types/typed-arrays-socketio.umd.cjs.map +1 -1
  95. package/dist/types/typed-arrays.umd.cjs +1 -1
  96. package/dist/types/typed-arrays.umd.cjs.map +1 -1
  97. package/dist/types/undef.umd.cjs +1 -1
  98. package/dist/types/undef.umd.cjs.map +1 -1
  99. package/dist/types/user-object.umd.cjs +1 -1
  100. package/dist/types/user-object.umd.cjs.map +1 -1
  101. package/package.json +32 -29
  102. package/polyfills/createObjectURL.js +7 -3
  103. package/polyfills/createObjectURL.umd.cjs +3 -1
  104. package/polyfills/createObjectURL.umd.cjs.map +1 -1
  105. package/utils/generateUUID.js +1 -1
package/dist/index.js CHANGED
@@ -1,4 +1,9 @@
1
- function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n);}return r}function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach((function(t){_defineProperty(e,t,r[t]);})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t));}));}return e}function _typeof(e){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,_toPropertyKey(n.key),n);}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _defineProperty(e,t,r){return (t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _slicedToArray(e,t){return function _arrayWithHoles(e){if(Array.isArray(e))return e}(e)||function _iterableToArrayLimit(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,c=[],s=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1;}else for(;!(s=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);s=!0);}catch(e){u=!0,o=e;}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return c}}(e,t)||_unsupportedIterableToArray(e,t)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _toConsumableArray(e){return function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}(e)||function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||_unsupportedIterableToArray(e)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return "Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function _toPropertyKey(e){var t=function _toPrimitive(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return ("string"===t?String:Number)(e)}(e,"string");return "symbol"==typeof t?t:String(t)}var e=_createClass((function TypesonPromise(e){_classCallCheck(this,TypesonPromise),this.p=new Promise(e);}));e.__typeson__type__="TypesonPromise","undefined"!=typeof Symbol&&Object.defineProperty(e.prototype,Symbol.toStringTag,{get:function get(){return "TypesonPromise"}}),e.prototype.then=function(t,r){var n=this;return new e((function(e,o){n.p.then((function(r){e(t?t(r):r);})).catch((function(e){return r?r(e):Promise.reject(e)})).then(e,o);}))},e.prototype.catch=function(e){return this.then((function(){}),e)},e.resolve=function(t){return new e((function(e){e(t);}))},e.reject=function(t){return new e((function(e,r){r(t);}))},e.all=function(t){return new e((function(e,r){Promise.all(t.map((function(e){return null!=e&&e.constructor&&"__typeson__type__"in e.constructor&&"TypesonPromise"===e.constructor.__typeson__type__?e.p:e}))).then(e,r);}))},e.race=function(t){return new e((function(e,r){Promise.race(t.map((function(e){return null!=e&&e.constructor&&"__typeson__type__"in e.constructor&&"TypesonPromise"===e.constructor.__typeson__type__?e.p:e}))).then(e,r);}))},e.allSettled=function(t){return new e((function(e,r){Promise.allSettled(t.map((function(e){return null!=e&&e.constructor&&"__typeson__type__"in e.constructor&&"TypesonPromise"===e.constructor.__typeson__type__?e.p:e}))).then(e,r);}))};var t=Object.hasOwn,r=Object.getPrototypeOf;function isThenable(e,t){return isObject(e)&&"function"==typeof e.then&&(!t||"function"==typeof e.catch)}function toStringTag(e){return Object.prototype.toString.call(e).slice(8,-1)}function hasConstructorOf(e,n){if(!e||"object"!==_typeof(e))return !1;var o=r(e);if(!o)return null===n;var i=t(o,"constructor")&&o.constructor;return "function"!=typeof i?null===n:n===i||(null!==n&&Function.prototype.toString.call(i)===Function.prototype.toString.call(n)||"function"==typeof n&&"string"==typeof i.__typeson__type__&&i.__typeson__type__===n.__typeson__type__)}function isPlainObject(e){return !(!e||"Object"!==toStringTag(e))&&(!r(e)||hasConstructorOf(e,Object))}function isUserObject(e){if(!e||"Object"!==toStringTag(e))return !1;var t=r(e);return !t||(hasConstructorOf(e,Object)||isUserObject(t))}function isObject(e){return null!==e&&"object"===_typeof(e)}function escapeKeyPathComponent(e){return e.replaceAll("''","''''").replace(/^$/,"''").replaceAll("~","~0").replaceAll(".","~1")}function unescapeKeyPathComponent(e){return e.replaceAll("~1",".").replaceAll("~0","~").replace(/^''$/,"").replaceAll("''''","''")}function getByKeyPath(e,t){if(""===t)return e;if(null===e||"object"!==_typeof(e))throw new TypeError("Unexpected non-object type");var r=t.indexOf(".");if(r>-1){var n=e[unescapeKeyPathComponent(t.slice(0,r))];return void 0===n?void 0:getByKeyPath(n,t.slice(r+1))}return e[unescapeKeyPathComponent(t)]}function setAtKeyPath(e,t,r){if(""===t)return r;if(!e||"object"!==_typeof(e))throw new TypeError("Unexpected non-object type");var n=t.indexOf(".");return n>-1?setAtKeyPath(e[unescapeKeyPathComponent(t.slice(0,n))],t.slice(n+1),r):(e[unescapeKeyPathComponent(t)]=r,e)}function getJSONType(e){return null===e?"null":Array.isArray(e)?"array":_typeof(e)}function _await(e,t,r){return (e&&e.then||(e=Promise.resolve(e)),t?e.then(t):e)}var n=Object.keys,o=Object.hasOwn,i$1=Array.isArray,a=["type","replaced","iterateIn","iterateUnsetNumeric","addLength"];function _async(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];try{return Promise.resolve(e.apply(this,t))}catch(e){return Promise.reject(e)}}}function nestedPathsFirst(e,t){var r,n;if(""===e.keypath)return -1;var o=null!==(r=e.keypath.match(/\./g))&&void 0!==r?r:0,i=null!==(n=t.keypath.match(/\./g))&&void 0!==n?n:0;return o&&(o=o.length),i&&(i=i.length),o>i?-1:o<i?1:e.keypath<t.keypath?-1:e.keypath>t.keypath?1:0}var c=function(){function Typeson(e){_classCallCheck(this,Typeson),this.options=e,this.plainObjectReplacers=[],this.nonplainObjectReplacers=[],this.revivers={},this.types={};}return _createClass(Typeson,[{key:"stringify",value:function stringify(e,t,r,n){n=_objectSpread2(_objectSpread2(_objectSpread2({},this.options),n),{},{stringification:!0});var o=this.encapsulate(e,null,n);return i$1(o)?JSON.stringify(o[0],t,r):o.then((function(e){return JSON.stringify(e,t,r)}))}},{key:"stringifySync",value:function stringifySync(e,t,r,n){return this.stringify(e,t,r,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},n),{},{sync:!0}))}},{key:"stringifyAsync",value:function stringifyAsync(e,t,r,n){return this.stringify(e,t,r,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},n),{},{sync:!1}))}},{key:"parse",value:function parse(e,t,r){return r=_objectSpread2(_objectSpread2(_objectSpread2({},this.options),r),{},{parse:!0}),this.revive(JSON.parse(e,t),r)}},{key:"parseSync",value:function parseSync(e,t,r){return this.parse(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!0}))}},{key:"parseAsync",value:function parseAsync(e,t,r){return this.parse(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!1}))}},{key:"specialTypeNames",value:function specialTypeNames(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.returnTypeNames=!0,this.encapsulate(e,t,r)}},{key:"rootTypeName",value:function rootTypeName(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.iterateNone=!0,this.encapsulate(e,t,r)}},{key:"encapsulate",value:function encapsulate(t,r,c){var s=this,u=_objectSpread2(_objectSpread2({sync:!0},this.options),c),l=u.sync,y={},p=[],f=[],v=[],h=!("cyclic"in u)||u.cyclic,d=u.encapsulateObserver,b=function finish(e){var t=Object.values(y);if(u.iterateNone)return t.length?t[0]:getJSONType(e);if(t.length){if(u.returnTypeNames)return _toConsumableArray(new Set(t));e&&isPlainObject(e)&&!o(e,"$types")?e.$types=y:e={$:e,$types:{$:y}};}else isObject(e)&&o(e,"$types")&&(e={$:e,$types:!0});return !u.returnTypeNames&&e},_=_async((function(t,r){return _await(Promise.all(r.map((function(e){return e[1].p}))),(function(n){return _await(Promise.all(n.map(_async((function(n){var o=!1,i=[],a=_slicedToArray(r.splice(0,1),1),c=_slicedToArray(a[0],7),s=c[0],u=c[2],l=c[3],y=c[4],p=c[5],f=c[6],v=m(s,n,u,l,i,!0,f),h=hasConstructorOf(v,e);return function _invoke(e,t){var r=e();return r&&r.then?r.then(t):t(r)}((function(){if(s&&h)return _await(v.p,(function(e){y[p]=e;var r=_(t,i);return o=!0,r}))}),(function(e){return o?e:(s?y[p]=v:t=h?v.p:v,_(t,i))}))})))),(function(){return t}))}))})),O=function _adaptBuiltinStateObjectProperties(e,t,r){Object.assign(e,t);var n=a.map((function(t){var r=e[t];return delete e[t],r}));r(),a.forEach((function(t,r){e[t]=n[r];}));},m=function _encapsulate(t,r,a,c,l,v,h){var b,_={},m=_typeof(r),g=d?function(n){var o,i=null!==(o=null!=h?h:c.type)&&void 0!==o?o:getJSONType(r);d(Object.assign(null!=n?n:_,{keypath:t,value:r,cyclic:a,stateObj:c,promisesData:l,resolvingTypesonPromise:v,awaitingTypesonPromise:hasConstructorOf(r,e)},{type:i}));}:null;if(["string","boolean","number","undefined"].includes(m))return void 0===r||Number.isNaN(r)||r===Number.NEGATIVE_INFINITY||r===Number.POSITIVE_INFINITY||0===r?(b=c.replaced?r:j(t,r,c,l,!1,v,g))!==r&&(_={replaced:b}):b=r,g&&g(),b;if(null===r)return g&&g(),r;if(a&&!c.iterateIn&&!c.iterateUnsetNumeric&&r&&"object"===_typeof(r)){var S=p.indexOf(r);if(!(S<0))return y[t]="#",g&&g({cyclicKeypath:f[S]}),"#"+f[S];!0===a&&(p.push(r),f.push(t));}var P,T,w=isPlainObject(r),A=i$1(r),C=(w||A)&&(!s.plainObjectReplacers.length||c.replaced)||c.iterateIn?r:j(t,r,c,l,w||A,null,g);if(C!==r?(b=C,_={replaced:C}):""===t&&hasConstructorOf(r,e)?(l.push([t,r,a,c,void 0,void 0,c.type]),b=r):A&&"object"!==c.iterateIn||"array"===c.iterateIn?(P=new Array(r.length),_={clone:P}):(["function","symbol"].includes(_typeof(r))||"toJSON"in r||hasConstructorOf(r,e)||hasConstructorOf(r,Promise)||hasConstructorOf(r,ArrayBuffer))&&!w&&"object"!==c.iterateIn?b=r:(P={},c.addLength&&(P.length=r.length),_={clone:P}),g&&g(),u.iterateNone)return null!==(T=P)&&void 0!==T?T:b;if(!P)return b;if(c.iterateIn){var k=function _loop(n){var i={ownKeys:o(r,n)};O(c,i,(function(){var o=t+(t?".":"")+escapeKeyPathComponent(n),i=_encapsulate(o,r[n],Boolean(a),c,l,v);hasConstructorOf(i,e)?l.push([o,i,Boolean(a),c,P,n,c.type]):void 0!==i&&(P[n]=i);}));};for(var N in r)k(N);g&&g({endIterateIn:!0,end:!0});}else n(r).forEach((function(n){var o=t+(t?".":"")+escapeKeyPathComponent(n);O(c,{ownKeys:!0},(function(){var t=_encapsulate(o,r[n],Boolean(a),c,l,v);hasConstructorOf(t,e)?l.push([o,t,Boolean(a),c,P,n,c.type]):void 0!==t&&(P[n]=t);}));})),g&&g({endIterateOwn:!0,end:!0});if(c.iterateUnsetNumeric){for(var I=r.length,E=function _loop2(n){if(!(n in r)){var o="".concat(t).concat(t?".":"").concat(n);O(c,{ownKeys:!1},(function(){var t=_encapsulate(o,void 0,Boolean(a),c,l,v);hasConstructorOf(t,e)?l.push([o,t,Boolean(a),c,P,n,c.type]):void 0!==t&&(P[n]=t);}));}},K=0;K<I;K++)E(K);g&&g({endIterateUnsetNumeric:!0,end:!0});}return P},j=function replace(e,t,r,n,o,i,a){for(var c=o?s.plainObjectReplacers:s.nonplainObjectReplacers,u=c.length;u--;){var p=c[u];if(p.test(t,r)){var f=p.type;if(s.revivers[f]){var v=y[e];y[e]=v?[f].concat(v):f;}if(Object.assign(r,{type:f,replaced:!0}),(l||!p.replaceAsync)&&!p.replace)return a&&a({typeDetected:!0}),m(e,t,h&&"readonly",r,n,i,f);a&&a({replacing:!0});var d=void 0;if(l||!p.replaceAsync){if(void 0===p.replace)throw new TypeError("Missing replacer");d=p.replace(t,r);}else d=p.replaceAsync(t,r);return m(e,d,h&&"readonly",r,n,i,f)}}return t},g=m("",t,h,null!=r?r:{},v);if(v.length)return l&&u.throwOnBadSyncType?function(){throw new TypeError("Sync method requested but async result obtained")}():Promise.resolve(_(g,v)).then(b);if(!l&&u.throwOnBadSyncType)throw new TypeError("Async method requested but sync result obtained");return u.stringification&&l?[b(g)]:l?b(g):Promise.resolve(b(g))}},{key:"encapsulateSync",value:function encapsulateSync(e,t,r){return this.encapsulate(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!0}))}},{key:"encapsulateAsync",value:function encapsulateAsync(e,t,r){return this.encapsulate(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!1}))}},{key:"revive",value:function revive(t,r){var o=this,a=_objectSpread2(_objectSpread2({sync:!0},this.options),r),c=a.sync;function finishRevival(e){if(c)return e;if(a.throwOnBadSyncType)throw new TypeError("Async method requested but sync result obtained");return Promise.resolve(e)}if(!t||"object"!==_typeof(t)||Array.isArray(t))return finishRevival(t);var u=t.$types;if(!0===u)return finishRevival(t.$);if(!u||"object"!==_typeof(u)||Array.isArray(u))return finishRevival(t);var l=[],y={},p=!0;u.$&&isPlainObject(u.$)&&(t=t.$,u=u.$,p=!1);var f=function executeReviver(e,t){var r,n=_slicedToArray(null!==(r=o.revivers[e])&&void 0!==r?r:[],1)[0];if(!n)throw new Error("Unregistered type: "+e);if(c&&!("revive"in n))return t;if(!c&&n.reviveAsync)return n.reviveAsync(t,y);if(n.revive)return n.revive(t,y);throw new Error("Missing reviver")},v=[];function checkUndefined(e){return hasConstructorOf(e,s)?void 0:e}var h,d=function revivePlainObjects(){var r=[];if(!u)throw new Error("Found bad `types`");if(Object.entries(u).forEach((function(e){var t=_slicedToArray(e,2),n=t[0],i=t[1];"#"!==i&&[].concat(i).forEach((function(e){var t;_slicedToArray(null!==(t=o.revivers[e])&&void 0!==t?t:[null,{}],2)[1].plain&&(r.push({keypath:n,type:e}),delete u[n]);}));})),r.length)return r.sort(nestedPathsFirst).reduce((function reducer(r,n){var o=n.keypath,i=n.type;if(isThenable(r))return r.then((function(e){return reducer(e,{keypath:o,type:i})}));var a=getByKeyPath(t,o);if(hasConstructorOf(a=f(i,a),e))return a.then((function(e){var r=setAtKeyPath(t,o,e);r===e&&(t=r);}));var c=setAtKeyPath(t,o,a);c===a&&(t=c);}),void 0)}();return hasConstructorOf(d,e)?h=d.then((function(){return t})):(h=function _revive(t,r,o,a,c){if(!p||"$types"!==t){var y=u[t],h=i$1(r);if(h||isPlainObject(r)){var d=h?new Array(r.length):{};for(n(r).forEach((function(n){var i=_revive(t+(t?".":"")+escapeKeyPathComponent(n),r[n],null!=o?o:d,d,n),a=function set(e){return hasConstructorOf(e,s)?d[n]=void 0:void 0!==e&&(d[n]=e),e};hasConstructorOf(i,e)?v.push(i.then((function(e){return a(e)}))):a(i);})),r=d;l.length;){var b=_slicedToArray(l[0],4),_=b[0],O=b[1],m=b[2],j=b[3],g=getByKeyPath(_,O);if(void 0===g)break;m[j]=g,l.splice(0,1);}}if(!y)return r;if("#"===y){var S=getByKeyPath(o,r.slice(1));return void 0===S&&l.push([o,r.slice(1),a,c]),S}return [].concat(y).reduce((function reducer(t,r){if(hasConstructorOf(t,e))return t.then((function(e){return reducer(e,r)}));if("string"!=typeof r)throw new TypeError("Bad type JSON");return f(r,t)}),r)}}("",t,null),v.length&&(h=e.resolve(h).then((function(t){return e.all([t].concat(v))})).then((function(e){return _slicedToArray(e,1)[0]})))),isThenable(h)?c&&a.throwOnBadSyncType?function(){throw new TypeError("Sync method requested but async result obtained")}():hasConstructorOf(h,e)?h.p.then(checkUndefined):h:!c&&a.throwOnBadSyncType?function(){throw new TypeError("Async method requested but sync result obtained")}():c?checkUndefined(h):Promise.resolve(checkUndefined(h))}},{key:"reviveSync",value:function reviveSync(e,t){return this.revive(e,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},t),{},{sync:!0}))}},{key:"reviveAsync",value:function reviveAsync(e,t){return this.revive(e,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},t),{},{sync:!1}))}},{key:"register",value:function register(e,t){var r=this,o=null!=t?t:{},a=function R(e){i$1(e)?e.forEach((function(e){return R(e)})):n(e).forEach((function(t){var n;if("#"===t)throw new TypeError("# cannot be used as a type name as it is reserved for cyclic objects");if(u.includes(t))throw new TypeError("Plain JSON object types are reserved as type names");var a=e[t],c=a&&"function"!=typeof a&&!Array.isArray(a)&&a.testPlainObjects?r.plainObjectReplacers:r.nonplainObjectReplacers,s=c.filter((function(e){return e.type===t}));if(s.length&&(c.splice(c.indexOf(s[0]),1),delete r.revivers[t],delete r.types[t]),"function"==typeof a){var l=a;a={test:function test(e){return e&&e.constructor===l},replace:function replace(e){return _objectSpread2({},e)},revive:function revive(e){return Object.assign(Object.create(l.prototype),e)}};}else if(i$1(a)){var y=_slicedToArray(a,3);a={test:y[0],replace:y[1],revive:y[2]};}if(null!==(n=a)&&void 0!==n&&n.test){var p={type:t,test:a.test.bind(a)};a.replace&&(p.replace=a.replace.bind(a)),a.replaceAsync&&(p.replaceAsync=a.replaceAsync.bind(a));var f="number"==typeof o.fallback?o.fallback:o.fallback?0:Number.POSITIVE_INFINITY;if(a.testPlainObjects?r.plainObjectReplacers.splice(f,0,p):r.nonplainObjectReplacers.splice(f,0,p),a.revive||a.reviveAsync){var v={};a.revive&&(v.revive=a.revive.bind(a)),a.reviveAsync&&(v.reviveAsync=a.reviveAsync.bind(a)),r.revivers[t]=[v,{plain:a.testPlainObjects}];}r.types[t]=a;}}));};return [].concat(e).forEach((function(e){return a(e)})),this}}]),Typeson}(),s=_createClass((function Undefined(){_classCallCheck(this,Undefined);}));s.__typeson__type__="TypesonUndefined";var u=["null","boolean","number","string","array","object"];
1
+ class TypesonPromise{constructor(e){this.p=new Promise(e);}}TypesonPromise.__typeson__type__="TypesonPromise","undefined"!=typeof Symbol&&Object.defineProperty(TypesonPromise.prototype,Symbol.toStringTag,{get:()=>"TypesonPromise"}),TypesonPromise.prototype.then=function(e,t){return new TypesonPromise((n,r)=>{this.p.then(function(t){n(e?e(t):t);}).catch(function(e){return t?t(e):Promise.reject(e)}).then(n,r);})},TypesonPromise.prototype.catch=function(e){return this.then(()=>{},e)},TypesonPromise.resolve=function(e){return new TypesonPromise(t=>{t(e);})},TypesonPromise.reject=function(e){return new TypesonPromise((t,n)=>{n(e);})},TypesonPromise.all=function(e){return new TypesonPromise(function(t,n){Promise.all(e.map(e=>e?.constructor&&"__typeson__type__"in e.constructor&&"TypesonPromise"===e.constructor.__typeson__type__?e.p:e)).then(t,n);})},TypesonPromise.race=function(e){return new TypesonPromise(function(t,n){Promise.race(e.map(e=>e?.constructor&&"__typeson__type__"in e.constructor&&"TypesonPromise"===e.constructor.__typeson__type__?e.p:e)).then(t,n);})},TypesonPromise.allSettled=function(e){return new TypesonPromise(function(t,n){Promise.allSettled(e.map(e=>e?.constructor&&"__typeson__type__"in e.constructor&&"TypesonPromise"===e.constructor.__typeson__type__?e.p:e)).then(t,n);})};const{hasOwn:e}=Object,t=Object.getPrototypeOf;function isThenable(e,t){return isObject(e)&&"function"==typeof e.then&&(!t||"function"==typeof e.catch)}function toStringTag(e){return Object.prototype.toString.call(e).slice(8,-1)}function hasConstructorOf(n,r){if(!n||"object"!=typeof n)return false;const s=t(n);if(!s)return null===r;const o=e(s,"constructor")&&s.constructor;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__)}function isPlainObject(e){if(!e||"Object"!==toStringTag(e))return false;return !t(e)||hasConstructorOf(e,Object)}function isUserObject(e){if(!e||"Object"!==toStringTag(e))return false;const n=t(e);return !n||(hasConstructorOf(e,Object)||isUserObject(n))}function isObject(e){return null!==e&&"object"==typeof e}function escapeKeyPathComponent(e){return e.replaceAll("''","''''").replace(/^$/u,"''").replaceAll("~","~0").replaceAll(".","~1")}function unescapeKeyPathComponent(e){return e.replaceAll("~1",".").replaceAll("~0","~").replace(/^''$/u,"").replaceAll("''''","''")}function getByKeyPath(e,t){if(""===t)return e;if(null===e||"object"!=typeof e)throw new TypeError("Unexpected non-object type");const n=t.indexOf(".");if(-1!==n){const r=e[unescapeKeyPathComponent(t.slice(0,n))];return void 0===r?void 0:getByKeyPath(r,t.slice(n+1))}return e[unescapeKeyPathComponent(t)]}function setAtKeyPath(e,t,n){if(""===t)return n;let r=e,s=t;for(;;){if(!r||"object"!=typeof r)throw new TypeError("Unexpected non-object type");if("__proto__"===s)throw new TypeError("Invalid property");const t=s.indexOf(".");if(-1===t)return r[unescapeKeyPathComponent(s)]=n,e;r=r[unescapeKeyPathComponent(s.slice(0,t))],s=s.slice(t+1);}}function getJSONType(e){return null===e?"null":Array.isArray(e)?"array":typeof e}
2
+ /**
3
+ * @file Typeson - JSON with types.
4
+ * @license The MIT License (MIT)
5
+ * @copyright (c) 2016-2018 David Fahlander, Brett Zamir
6
+ */const{keys:n,hasOwn:r}=Object,{isArray:s}=Array,o=["type","replaced","iterateIn","iterateUnsetNumeric","addLength"];function nestedPathsFirst(e,t){if(""===e.keypath)return -1;let n=e.keypath.match(/\./gu)??0,r=t.keypath.match(/\./gu)??0;return n&&(n=n.length),r&&(r=r.length),n>r?-1:n<r?1:e.keypath<t.keypath?-1:e.keypath>t.keypath?1:0}class Typeson{constructor(e){this.options=e,this.plainObjectReplacers=[],this.nonplainObjectReplacers=[],this.revivers={},this.types={};}stringify(e,t,n,r){r={...this.options,...r,stringification:true};const o=this.encapsulate(e,null,r);return s(o)?JSON.stringify(o[0],t,n):o.then(e=>JSON.stringify(e,t,n))}stringifySync(e,t,n,r){return this.stringify(e,t,n,{throwOnBadSyncType:true,...r,sync:true})}stringifyAsync(e,t,n,r){return this.stringify(e,t,n,{throwOnBadSyncType:true,...r,sync:false})}parse(e,t,n){return n={...this.options,...n,parse:true},this.revive(JSON.parse(e,t),n)}parseSync(e,t,n){return this.parse(e,t,{throwOnBadSyncType:true,...n,sync:true})}parseAsync(e,t,n){return this.parse(e,t,{throwOnBadSyncType:true,...n,sync:false})}specialTypeNames(e,t,n={}){return n.returnTypeNames=true,this.encapsulate(e,t,n)}rootTypeName(e,t,n={}){return n.iterateNone=true,this.encapsulate(e,t,n)}encapsulate(e,t,i){const c={sync:true,...this.options,...i},{sync:a}=c,p={},y=[],u=[],l=[],h=!("cyclic"in c)||c.cyclic,{encapsulateObserver:f}=c,finish=e=>{const t=Object.values(p);if(c.iterateNone)return t.length?t[0]:getJSONType(e);if(t.length){if(c.returnTypeNames)return [...new Set(t)];e&&isPlainObject(e)&&!r(e,"$types")?e.$types=p:e={$:e,$types:{$:p}};}else isObject(e)&&r(e,"$types")&&(e={$:e,$types:true});return !c.returnTypeNames&&e},checkPromises=async(e,t)=>{const n=await Promise.all(t.map(e=>e[1].p));return await Promise.all(n.map(async function(n){const r=[],[s]=t.splice(0,1),[o,,i,c,a,p,y]=s,u=_encapsulate(o,n,i,c,r,true,y),l=hasConstructorOf(u,TypesonPromise);if(o&&l){const t=await u.p;return a[p]=t,checkPromises(e,r)}return o?a[p]=u:e=l?u.p:u,checkPromises(e,r)})),e},_adaptBuiltinStateObjectProperties=(e,t,n)=>{Object.assign(e,t);const r=o.map(t=>{const n=e[t];return delete e[t],n});n(),o.forEach((t,n)=>{e[t]=r[n];});},_encapsulate=(e,t,o,i,a,l,h)=>{let d,O={};const v=f?function(n){const r=h??i.type??getJSONType(t);f(Object.assign(n??O,{keypath:e,value:t,cyclic:o,stateObj:i,promisesData:a,resolvingTypesonPromise:l,awaitingTypesonPromise:hasConstructorOf(t,TypesonPromise)},{type:r}));}:null;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={replaced:d})):d=t,v&&v(),d;if(null===t)return v&&v(),t;if(o&&t&&"object"==typeof t&&!i.iterateIn&&!i.iterateUnsetNumeric){const n=y.indexOf(t);if(-1!==n)return p[e]="#",v&&v({cyclicKeypath:u[n]}),"#"+u[n];true===o&&(y.push(t),u.push(e));}const m=isPlainObject(t),b=s(t),P=(m||b)&&(!this.plainObjectReplacers.length||i.replaced)||i.iterateIn?t:replace(e,t,i,a,m||b,null,v);let T;if(P!==t?(d=P,O={replaced:P}):""===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={clone:T}):!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={clone:T}),v&&v(),c.iterateNone)return T??d;if(!T)return d;if(i.iterateIn){for(const n in t){const s={ownKeys:r(t,n)};_adaptBuiltinStateObjectProperties(i,s,()=>{const r=e+(e?".":"")+escapeKeyPathComponent(n),s=_encapsulate(r,t[n],Boolean(o),i,a,l);hasConstructorOf(s,TypesonPromise)?a.push([r,s,Boolean(o),i,T,n,i.type]):void 0!==s&&(T[n]=s);});}v&&v({endIterateIn:true,end:true});}else n(t).forEach(function(n){const r=e+(e?".":"")+escapeKeyPathComponent(n);_adaptBuiltinStateObjectProperties(i,{ownKeys:true},()=>{const e=_encapsulate(r,t[n],Boolean(o),i,a,l);hasConstructorOf(e,TypesonPromise)?a.push([r,e,Boolean(o),i,T,n,i.type]):void 0!==e&&(T[n]=e);});}),v&&v({endIterateOwn:true,end:true});if(i.iterateUnsetNumeric){const n=t.length;for(let r=0;r<n;r++){if(r in t)continue;const n=`${e}${e?".":""}${String(r)}`;_adaptBuiltinStateObjectProperties(i,{ownKeys:false},()=>{const e=_encapsulate(n,void 0,Boolean(o),i,a,l);hasConstructorOf(e,TypesonPromise)?a.push([n,e,Boolean(o),i,T,r,i.type]):void 0!==e&&(T[r]=e);});}v&&v({endIterateUnsetNumeric:true,end:true});}return T},replace=(e,t,n,r,s,o,i)=>{const c=s?this.plainObjectReplacers:this.nonplainObjectReplacers;let y=c.length;for(;y--;){const s=c[y];if(s.test(t,n)){const{type:c}=s;if(Object.hasOwn(this.revivers,c)){const t=p[e];p[e]=t?[c].concat(t):c;}if(Object.assign(n,{type:c,replaced:true}),(a||!s.replaceAsync)&&!s.replace)return i&&i({typeDetected:true}),_encapsulate(e,t,h&&"readonly",n,r,o,c);let y;if(i&&i({replacing:true}),a||!s.replaceAsync){if(void 0===s.replace)throw new TypeError("Missing replacer");y=s.replace(t,n);}else y=s.replaceAsync(t,n);return _encapsulate(e,y,h&&"readonly",n,r,o,c)}}return t},d=_encapsulate("",e,h,t??{},l);if(l.length)return a&&c.throwOnBadSyncType?(()=>{throw new TypeError("Sync method requested but async result obtained")})():Promise.resolve(checkPromises(d,l)).then(finish);if(!a&&c.throwOnBadSyncType)throw new TypeError("Async method requested but sync result obtained");return a&&c.stringification?[finish(d)]:a?finish(d):Promise.resolve(finish(d))}encapsulateSync(e,t,n){return this.encapsulate(e,t,{throwOnBadSyncType:true,...n,sync:true})}encapsulateAsync(e,t,n){return this.encapsulate(e,t,{throwOnBadSyncType:true,...n,sync:false})}revive(e,t){const o={sync:true,...this.options,...t},{sync:i}=o;function finishRevival(e){if(i)return e;if(o.throwOnBadSyncType)throw new TypeError("Async method requested but sync result obtained");return Promise.resolve(e)}if(!e||"object"!=typeof e||Array.isArray(e))return finishRevival(e);let c=e.$types;if(true===c)return finishRevival(e.$);if(!c||"object"!=typeof c||Array.isArray(c))return finishRevival(e);const a=[],p=Object.create(null),y={};let u=true;c.$&&isPlainObject(c.$)&&(e=e.$,c=c.$,u=false);const executeReviver=(e,t)=>{const[n]=this.revivers[e]??[];if(!n)throw new Error("Unregistered type: "+e);if(i&&!("revive"in n))return t;if(!i&&n.reviveAsync)return n.reviveAsync(t,y);if(n.revive)return n.revive(t,y);throw new Error("Missing reviver")},l=[];function checkUndefined(e){return hasConstructorOf(e,Undefined)?void 0:e}const h=(()=>{if(!c)throw new Error("Found bad `types`");const t=[];if(Object.entries(c).forEach(([e,n])=>{"#"!==n&&[].concat(n).forEach(n=>{const[,{plain:r}]=this.revivers[n]??[null,{}];r&&(t.push({keypath:e,type:n}),delete c[e]);});}),t.length)return t.sort(nestedPathsFirst),t.reduce(function reducer(t,{keypath:n,type:r}){if(isThenable(t))return t.then(e=>reducer(e,{keypath:n,type:r}));let s=getByKeyPath(e,n);if(s=executeReviver(r,s),hasConstructorOf(s,TypesonPromise))return s.then(t=>{const r=setAtKeyPath(e,n,t);r===t&&(e=r);});const o=setAtKeyPath(e,n,s);o===s&&(e=o);},void 0)})();let f;return hasConstructorOf(h,TypesonPromise)?f=h.then(()=>e):(f=function _revive(e,t,o,y,h){if(u&&"$types"===e)return;const f=l.length,d=c[e],O=s(t);if(O||isPlainObject(t)){const s=O?new Array(t.length):{};for(n(t).forEach(n=>{const r=_revive(e+(e?".":"")+escapeKeyPathComponent(n),t[n],o??s,s,n),set=e=>(hasConstructorOf(e,Undefined)?s[n]=void 0:void 0!==e&&(s[n]=e),e);hasConstructorOf(r,TypesonPromise)?l.push(r.then(e=>set(e))):set(r);}),t=s;a.length;){const[[e,t,n,s]]=a,o=r(p,t),i=o?p[t]:getByKeyPath(e,t);if(!o&&void 0===i)break;n[s]=i,a.shift();}}if(!d)return p[e]=t,t;if("#"===d){const e=t.slice(1),n=r(p,e),s=n?p[e]:getByKeyPath(o,e);return n||void 0!==s||a.push([o,e,y,h]),s}const applyType=t=>{const n=[].concat(d).reduce(function reducer(e,t){if(hasConstructorOf(e,TypesonPromise))return e.then(e=>reducer(e,t));if("string"!=typeof t)throw new TypeError("Bad type JSON");return executeReviver(t,e)},t);return hasConstructorOf(n,TypesonPromise)?n.then(t=>(p[e]=t,t)):(p[e]=n,n)};return !i&&l.length>f?TypesonPromise.all(l.slice(f)).then(()=>applyType(t)):applyType(t)}("",e,null),l.length&&(f=TypesonPromise.resolve(f).then(e=>TypesonPromise.all([e,...l])).then(([e])=>e))),isThenable(f)?i&&o.throwOnBadSyncType?(()=>{throw new TypeError("Sync method requested but async result obtained")})():hasConstructorOf(f,TypesonPromise)?f.p.then(checkUndefined):f:!i&&o.throwOnBadSyncType?(()=>{throw new TypeError("Async method requested but sync result obtained")})():i?checkUndefined(f):Promise.resolve(checkUndefined(f))}reviveSync(e,t){return this.revive(e,{throwOnBadSyncType:true,...t,sync:true})}reviveAsync(e,t){return this.revive(e,{throwOnBadSyncType:true,...t,sync:false})}register(e,t){const r=t??{},reg=e=>{s(e)?e.forEach(e=>{reg(e);}):n(e).forEach(t=>{if("#"===t)throw new TypeError("# cannot be used as a type name as it is reserved for cyclic objects");if(i$1.includes(t))throw new TypeError("Plain JSON object types are reserved as type names");let n=e[t];const o=n&&"function"!=typeof n&&!Array.isArray(n)&&n.testPlainObjects?this.plainObjectReplacers:this.nonplainObjectReplacers,c=o.filter(function(e){return e.type===t});if(c.length&&(o.splice(o.indexOf(c[0]),1),delete this.revivers[t],delete this.types[t]),"function"==typeof n){const e=n;n={test:t=>t&&t.constructor===e,replace:e=>({...e}),revive:t=>Object.assign(Object.create(e.prototype),t)};}else if(s(n)){const[e,t,r]=n;n={test:e,replace:t,revive:r};}if(!n?.test)return;const a={type:t,test:n.test.bind(n)};n.replace&&(a.replace=n.replace.bind(n)),n.replaceAsync&&(a.replaceAsync=n.replaceAsync.bind(n));const p="number"==typeof r.fallback?r.fallback:r.fallback?0:1/0;if(n.testPlainObjects?this.plainObjectReplacers.splice(p,0,a):this.nonplainObjectReplacers.splice(p,0,a),n.revive||n.reviveAsync){const e={};n.revive&&(e.revive=n.revive.bind(n)),n.reviveAsync&&(e.reviveAsync=n.reviveAsync.bind(n)),this.revivers[t]=[e,{plain:n.testPlainObjects}];}this.types[t]=n;});};return [].concat(e).forEach(e=>{reg(e);}),this}}class Undefined{}Undefined.__typeson__type__="TypesonUndefined";const i$1=["null","boolean","number","string","array","object"];
2
7
 
3
8
  /*
4
9
  * base64-arraybuffer
@@ -107,7 +112,7 @@ const arraybuffer = {
107
112
  stateObj.buffers = [];
108
113
  }
109
114
  const index = stateObj.buffers.indexOf(b);
110
- if (index > -1) {
115
+ if (index !== -1) {
111
116
  return {index};
112
117
  }
113
118
  stateObj.buffers.push(b);
@@ -139,8 +144,6 @@ const arraybuffer = {
139
144
  const buffer = decode(
140
145
  /** @type {string} */ (b64.s),
141
146
  b64.resizable
142
- // todo[engine:node@>20]: Remove comment
143
- /* c8 ignore next -- Node >= 20 */
144
147
  ? {maxByteLength: b64.maxByteLength}
145
148
  : undefined
146
149
  );
@@ -287,7 +290,7 @@ const blob = {
287
290
  return new Blob([string2arraybuffer(stringContents)], {type});
288
291
  },
289
292
  replaceAsync (b) {
290
- return new e((resolve, reject) => {
293
+ return new TypesonPromise((resolve, reject) => {
291
294
  /*
292
295
  if (b.isClosed) { // On MDN, but not in https://w3c.github.io/FileAPI/#dfn-Blob
293
296
  reject(new Error('The Blob is closed'));
@@ -323,7 +326,7 @@ const blob = {
323
326
  * it may be troublesome to bundle and not strongly needed)
324
327
  * @returns {string}
325
328
  */
326
- function generateUUID () { // Adapted from original: public domain/MIT: http://stackoverflow.com/a/8809472/271577
329
+ function generateUUID () { // Adapted from original: public domain/MIT: https://stackoverflow.com/a/8809472/271577
327
330
  /* c8 ignore next */
328
331
  let d = Date.now();
329
332
 
@@ -380,7 +383,7 @@ const cryptokey = {
380
383
  /** @type {CryptoKey} */
381
384
  key
382
385
  ) {
383
- return new e(async (resolve, reject) => {
386
+ return new TypesonPromise(async (resolve, reject) => {
384
387
  /** @type {JsonWebKey} */
385
388
  let jwk;
386
389
  try {
@@ -435,7 +438,7 @@ const dataview = {
435
438
  stateObj.buffers = [];
436
439
  }
437
440
  const index = stateObj.buffers.indexOf(buffer);
438
- if (index > -1) {
441
+ if (index !== -1) {
439
442
  return {index, byteOffset, byteLength};
440
443
  }
441
444
  stateObj.buffers.push(buffer);
@@ -469,8 +472,6 @@ const dataview = {
469
472
  } else {
470
473
  buffer = decode(
471
474
  encoded,
472
- // todo[engine:node@>20]: Remove comment
473
- /* c8 ignore next 3 -- Depends on Node version */
474
475
  resizable
475
476
  ? {maxByteLength}
476
477
  : maxByteLength
@@ -497,7 +498,7 @@ const date = {
497
498
  },
498
499
  revive (time) {
499
500
  if (time === 'NaN') {
500
- return new Date(Number.NaN);
501
+ return new Date(NaN);
501
502
  }
502
503
  return new Date(time);
503
504
  }
@@ -711,9 +712,11 @@ const error = {
711
712
  * columnNumber?: import('typeson').Integer
712
713
  * }}
713
714
  */ (new Error(obj.message));
715
+ /* eslint-disable unicorn/no-error-property-assignment -- Ok */
714
716
  e.name = obj.name;
715
717
  e.cause = obj.cause;
716
718
  e.stack = obj.stack;
719
+ /* eslint-enable unicorn/no-error-property-assignment -- Ok */
717
720
  e.fileName = obj.fileName;
718
721
  e.lineNumber = obj.lineNumber;
719
722
  e.columnNumber = obj.columnNumber;
@@ -731,6 +734,7 @@ const error = {
731
734
  const errors = {};
732
735
 
733
736
  // JS standard
737
+ // eslint-disable-next-line unicorn/no-top-level-side-effects -- Too cumbersome
734
738
  [
735
739
  TypeError, RangeError, SyntaxError, ReferenceError,
736
740
  EvalError, URIError
@@ -748,7 +752,6 @@ if (typeof InternalError === 'function') {
748
752
  create$2(InternalError);
749
753
  }
750
754
 
751
- /* eslint-disable jsdoc/valid-types -- https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/131 */
752
755
  /**
753
756
  * Non-standard.
754
757
  * @typedef {{
@@ -756,7 +759,6 @@ if (typeof InternalError === 'function') {
756
759
  * (message?: string, options?: ErrorOptions): EvalError;
757
760
  * }} InternalErrorConstructor
758
761
  */
759
- /* eslint-enable jsdoc/valid-types -- https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/131 */
760
762
 
761
763
  /**
762
764
  * Comprises all built-in errors.
@@ -847,7 +849,7 @@ const file = {
847
849
  });
848
850
  },
849
851
  replaceAsync (f) {
850
- return new e(function (resolve, reject) {
852
+ return new TypesonPromise(function (resolve, reject) {
851
853
  /*
852
854
  if (f.isClosed) { // On MDN, but not in https://w3c.github.io/FileAPI/#dfn-Blob
853
855
  reject(new Error('The File is closed'));
@@ -970,7 +972,7 @@ const imagebitmap = {
970
972
  canvas.getContext('2d')
971
973
  );
972
974
  const img = document.createElement('img');
973
- // The onload is needed by some browsers per http://stackoverflow.com/a/4776378/271577
975
+ // The onload is needed by some browsers per https://stackoverflow.com/a/4776378/271577
974
976
  img.addEventListener('load', function () {
975
977
  ctx.drawImage(img, 0, 0);
976
978
  });
@@ -990,13 +992,13 @@ const imagebitmap = {
990
992
  canvas.getContext('2d')
991
993
  );
992
994
  const img = document.createElement('img');
993
- // The onload is needed by some browsers per http://stackoverflow.com/a/4776378/271577
995
+ // The onload is needed by some browsers per https://stackoverflow.com/a/4776378/271577
994
996
  img.addEventListener('load', function () {
995
997
  ctx.drawImage(img, 0, 0);
996
998
  });
997
999
  img.src = o.dataURL;
998
1000
 
999
- return new e(async (resolve, reject) => {
1001
+ return new TypesonPromise(async (resolve, reject) => {
1000
1002
  try {
1001
1003
  const resp = await createImageBitmap(canvas);
1002
1004
  resolve(resp);
@@ -1041,9 +1043,9 @@ const imagedata = {
1041
1043
  */
1042
1044
  const infinity = {
1043
1045
  infinity: {
1044
- test (x) { return x === Number.POSITIVE_INFINITY; },
1046
+ test (x) { return x === Infinity; },
1045
1047
  replace (/* n */) { return 'Infinity'; },
1046
- revive (/* s */) { return Number.POSITIVE_INFINITY; }
1048
+ revive (/* s */) { return Infinity; }
1047
1049
  }
1048
1050
  };
1049
1051
 
@@ -1088,7 +1090,7 @@ const intlTypes = {
1088
1090
  const map = {
1089
1091
  map: {
1090
1092
  test (x) { return toStringTag(x) === 'Map'; },
1091
- replace (mp) { return [...mp.entries()]; },
1093
+ replace (mp) { return mp.entries().toArray(); },
1092
1094
  revive (entries) { return new Map(entries); }
1093
1095
  }
1094
1096
  };
@@ -1100,7 +1102,7 @@ const nan = {
1100
1102
  nan: {
1101
1103
  test (x) { return Number.isNaN(x); },
1102
1104
  replace (/* n */) { return 'NaN'; },
1103
- revive (/* s */) { return Number.NaN; }
1105
+ revive (/* s */) { return NaN; }
1104
1106
  }
1105
1107
  };
1106
1108
 
@@ -1109,9 +1111,9 @@ const nan = {
1109
1111
  */
1110
1112
  const negativeInfinity = {
1111
1113
  negativeInfinity: {
1112
- test (x) { return x === Number.NEGATIVE_INFINITY; },
1114
+ test (x) { return x === -Infinity; },
1113
1115
  replace (/* n */) { return '-Infinity'; },
1114
- revive (/* s */) { return Number.NEGATIVE_INFINITY; }
1116
+ revive (/* s */) { return -Infinity; }
1115
1117
  }
1116
1118
  };
1117
1119
 
@@ -1215,7 +1217,7 @@ const promise = {
1215
1217
  return toStringTag(x) === 'Promise';
1216
1218
  },
1217
1219
  replaceAsync (prom) {
1218
- return new e(async (resolve) => {
1220
+ return new TypesonPromise(async (resolve) => {
1219
1221
  try {
1220
1222
  resolve({
1221
1223
  value: await prom
@@ -1248,7 +1250,10 @@ const regexp = {
1248
1250
  (rexp.ignoreCase ? 'i' : '') +
1249
1251
  (rexp.multiline ? 'm' : '') +
1250
1252
  (rexp.sticky ? 'y' : '') +
1251
- (rexp.unicode ? 'u' : '')
1253
+ (rexp.unicode ? 'u' : '') +
1254
+ (rexp.unicodeSets ? 'v' : '') +
1255
+ (rexp.hasIndices ? 'd' : '') +
1256
+ (rexp.dotAll ? 's' : '')
1252
1257
  };
1253
1258
  },
1254
1259
  revive ({source, flags}) { return new RegExp(source, flags); }
@@ -1294,7 +1299,7 @@ const set = {
1294
1299
  set: {
1295
1300
  test (x) { return toStringTag(x) === 'Set'; },
1296
1301
  replace (st) {
1297
- return [...st.values()];
1302
+ return st.values().toArray();
1298
1303
  },
1299
1304
  revive (values) {
1300
1305
  return new Set(values);
@@ -1425,7 +1430,7 @@ function create (TypedArray) {
1425
1430
  stateObj.buffers = [];
1426
1431
  }
1427
1432
  const index = stateObj.buffers.indexOf(buffer);
1428
- if (index > -1) {
1433
+ if (index !== -1) {
1429
1434
  return {index, byteOffset, length: l};
1430
1435
  }
1431
1436
  stateObj.buffers.push(buffer);
@@ -1459,14 +1464,13 @@ function create (TypedArray) {
1459
1464
  } else {
1460
1465
  buffer = decode(
1461
1466
  encoded,
1462
- // todo[engine:node@>20]: Remove comment
1463
- /* c8 ignore next 3 -- Depends on Node version */
1464
1467
  resizable
1465
1468
  ? {maxByteLength}
1466
1469
  : undefined
1467
1470
  );
1468
1471
  stateObj.buffers.push(buffer);
1469
1472
  }
1473
+
1470
1474
  return new TypedArray(buffer, byteOffset, len);
1471
1475
  }
1472
1476
  };
@@ -1508,7 +1512,7 @@ const undef$1 = {
1508
1512
  revive (/* s */) {
1509
1513
  // Will add `undefined` (returning `undefined` would instead
1510
1514
  // avoid explicitly setting)
1511
- return new s();
1515
+ return new Undefined();
1512
1516
  }
1513
1517
  }
1514
1518
  };
@@ -1546,7 +1550,7 @@ const arrayNonindexKeys = [
1546
1550
  // `Number.parseInt(Number())` since scientific
1547
1551
  // notation will be pre-resolved if a number
1548
1552
  // was given, and it will otherwise be a string
1549
- return String(Number.parseInt(k)) !== k;
1553
+ return String(Number(k)) !== k;
1550
1554
  })
1551
1555
  ) {
1552
1556
  stateObj.iterateIn = 'object';
@@ -1847,5 +1851,5 @@ const universal = [
1847
1851
  // built-in into ecmasript standard.
1848
1852
  ];
1849
1853
 
1850
- export { u as JSON_TYPES, c as Typeson, e as TypesonPromise, s as Undefined, arrayNonindexKeys, arraybuffer, bigint, bigintObject, blob, expObj$1 as builtin, cloneable, cryptokey, dataview, date, domexception, dommatrix, dompoint, domquad, domrect, error, errors, escapeKeyPathComponent, file, filelist, getByKeyPath, getJSONType, hasConstructorOf, imagebitmap, imagedata, infinity, intlTypes, isObject, isPlainObject, isThenable, isUserObject, map, nan, negativeInfinity, negativeZero, nonbuiltinIgnore, postmessage, primitiveObjects, promise, regexp, resurrectable, set, setAtKeyPath, socketio, sparseUndefined, specialNumbers, expObj as structuredCloning, structuredCloningThrowing, symbol, toStringTag, typedArrays, typedArraysSocketIO as typedArraysSocketio, undef$1 as undef, undef as undefPreset, unescapeKeyPathComponent, universal, userObject };
1854
+ export { i$1 as JSON_TYPES, Typeson, TypesonPromise, Undefined, arrayNonindexKeys, arraybuffer, bigint, bigintObject, blob, expObj$1 as builtin, cloneable, cryptokey, dataview, date, domexception, dommatrix, dompoint, domquad, domrect, error, errors, escapeKeyPathComponent, file, filelist, getByKeyPath, getJSONType, hasConstructorOf, imagebitmap, imagedata, infinity, intlTypes, isObject, isPlainObject, isThenable, isUserObject, map, nan, negativeInfinity, negativeZero, nonbuiltinIgnore, postmessage, primitiveObjects, promise, regexp, resurrectable, set, setAtKeyPath, socketio, sparseUndefined, specialNumbers, expObj as structuredCloning, structuredCloningThrowing, symbol, toStringTag, typedArrays, typedArraysSocketIO as typedArraysSocketio, undef$1 as undef, undef as undefPreset, unescapeKeyPathComponent, universal, userObject };
1851
1855
  //# sourceMappingURL=index.js.map