typeson-registry 12.0.0 → 13.0.1

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 (107) hide show
  1. package/dist/index.js +57 -51
  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 +724 -765
  6. package/dist/index.umd.cjs.map +1 -1
  7. package/dist/index.umd.min.cjs +7 -2
  8. package/dist/index.umd.min.cjs.map +1 -1
  9. package/dist/polyfills/createObjectURL.d.ts.map +1 -1
  10. package/dist/presets/array-nonindex-keys.umd.cjs +1 -1
  11. package/dist/presets/array-nonindex-keys.umd.cjs.map +1 -1
  12. package/dist/presets/builtin.umd.cjs +1 -1
  13. package/dist/presets/builtin.umd.cjs.map +1 -1
  14. package/dist/presets/postmessage.umd.cjs +1 -1
  15. package/dist/presets/postmessage.umd.cjs.map +1 -1
  16. package/dist/presets/socketio.umd.cjs +1 -1
  17. package/dist/presets/socketio.umd.cjs.map +1 -1
  18. package/dist/presets/sparse-undefined.umd.cjs +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 +2 -2
  23. package/dist/presets/structured-cloning-throwing.umd.cjs.map +1 -1
  24. package/dist/presets/structured-cloning.umd.cjs +2 -2
  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.umd.cjs +1 -1
  31. package/dist/types/arraybuffer.umd.cjs.map +1 -1
  32. package/dist/types/bigint-object.umd.cjs +1 -1
  33. package/dist/types/bigint-object.umd.cjs.map +1 -1
  34. package/dist/types/bigint.umd.cjs +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 +1 -1
  39. package/dist/types/cloneable.umd.cjs.map +1 -1
  40. package/dist/types/cryptokey.umd.cjs +2 -2
  41. package/dist/types/cryptokey.umd.cjs.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 +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 +30 -28
  104. package/polyfills/createObjectURL.js +7 -3
  105. package/polyfills/createObjectURL.umd.cjs +2 -2
  106. package/polyfills/createObjectURL.umd.cjs.map +1 -1
  107. package/utils/generateUUID.js +1 -1
package/dist/index.js CHANGED
@@ -1,4 +1,9 @@
1
- function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _createClass(e,t,r){return t&&function _defineProperties(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||false,n.configurable=true,"value"in n&&(n.writable=true),Object.defineProperty(e,_toPropertyKey(n.key),n);}}(e.prototype,t),Object.defineProperty(e,"prototype",{writable:false}),e}function _defineProperty(e,t,r){return (t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true}):e[t]=r,e}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),true).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 _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=true,u=false;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=true,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 _toPropertyKey(e){var t=function _toPrimitive(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return "symbol"==typeof t?t:t+""}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 _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var r={}.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}}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 false;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 false;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(-1!==r){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");if("__proto__"===t)throw new TypeError("Invalid property");var n=t.indexOf(".");return -1!==n?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(){return _createClass((function Typeson(e){_classCallCheck(this,Typeson),this.options=e,this.plainObjectReplacers=[],this.nonplainObjectReplacers=[],this.revivers={},this.types={};}),[{key:"stringify",value:function stringify(e,t,r,n){n=_objectSpread2(_objectSpread2(_objectSpread2({},this.options),n),{},{stringification:true});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:true},n),{},{sync:true}))}},{key:"stringifyAsync",value:function stringifyAsync(e,t,r,n){return this.stringify(e,t,r,_objectSpread2(_objectSpread2({throwOnBadSyncType:true},n),{},{sync:false}))}},{key:"parse",value:function parse(e,t,r){return r=_objectSpread2(_objectSpread2(_objectSpread2({},this.options),r),{},{parse:true}),this.revive(JSON.parse(e,t),r)}},{key:"parseSync",value:function parseSync(e,t,r){return this.parse(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:true},r),{},{sync:true}))}},{key:"parseAsync",value:function parseAsync(e,t,r){return this.parse(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:true},r),{},{sync:false}))}},{key:"specialTypeNames",value:function specialTypeNames(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.returnTypeNames=true,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=true,this.encapsulate(e,t,r)}},{key:"encapsulate",value:function encapsulate(t,r,c){var s=this,u=_objectSpread2(_objectSpread2({sync:true},this.options),c),y=u.sync,l={},p=[],f=[],v=[],h=!("cyclic"in u)||u.cyclic,d=u.encapsulateObserver,b=function finish(e){var t=Object.values(l);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=l:e={$:e,$types:{$:l}};}else isObject(e)&&o(e,"$types")&&(e={$:e,$types:true});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=false,i=[],a=_slicedToArray(r.splice(0,1),1),c=_slicedToArray(a[0],7),s=c[0],u=c[2],y=c[3],l=c[4],p=c[5],f=c[6],v=m(s,n,u,y,i,true,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){l[p]=e;var r=_(t,i);return o=true,r}))}),(function(e){return o?e:(s?l[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,y,v,h){var b,_={},g=_typeof(r),S=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:y,resolvingTypesonPromise:v,awaitingTypesonPromise:hasConstructorOf(r,e)},{type:i}));}:null;if(["string","boolean","number","undefined"].includes(g))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,y,false,v,S))!==r&&(_={replaced:b}):b=r,S&&S(),b;if(null===r)return S&&S(),r;if(a&&!c.iterateIn&&!c.iterateUnsetNumeric&&r&&"object"===_typeof(r)){var w=p.indexOf(r);if(-1!==w)return l[t]="#",S&&S({cyclicKeypath:f[w]}),"#"+f[w];true===a&&(p.push(r),f.push(t));}var T,P=isPlainObject(r),A=i$1(r),C=(P||A)&&(!s.plainObjectReplacers.length||c.replaced)||c.iterateIn?r:j(t,r,c,y,P||A,null,S);if(C!==r?(b=C,_={replaced:C}):""===t&&hasConstructorOf(r,e)?(y.push([t,r,a,c,void 0,void 0,c.type]),b=r):A&&"object"!==c.iterateIn||"array"===c.iterateIn?(T=new Array(r.length),_={clone:T}):(["function","symbol"].includes(_typeof(r))||"toJSON"in r||hasConstructorOf(r,e)||hasConstructorOf(r,Promise)||hasConstructorOf(r,ArrayBuffer))&&!P&&"object"!==c.iterateIn?b=r:(T={},c.addLength&&(T.length=r.length),_={clone:T}),S&&S(),u.iterateNone)return null!=T?T:b;if(!T)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=m(o,r[n],Boolean(a),c,y,v);hasConstructorOf(i,e)?y.push([o,i,Boolean(a),c,T,n,c.type]):void 0!==i&&(T[n]=i);}));};for(var N in r)k(N);S&&S({endIterateIn:true,end:true});}else n(r).forEach((function(n){var o=t+(t?".":"")+escapeKeyPathComponent(n);O(c,{ownKeys:true},(function(){var t=m(o,r[n],Boolean(a),c,y,v);hasConstructorOf(t,e)?y.push([o,t,Boolean(a),c,T,n,c.type]):void 0!==t&&(T[n]=t);}));})),S&&S({endIterateOwn:true,end:true});if(c.iterateUnsetNumeric){for(var I=r.length,E=function _loop2(n){if(!(n in r)){var o="".concat(t).concat(t?".":"").concat(String(n));O(c,{ownKeys:false},(function(){var t=m(o,void 0,Boolean(a),c,y,v);hasConstructorOf(t,e)?y.push([o,t,Boolean(a),c,T,n,c.type]):void 0!==t&&(T[n]=t);}));}},K=0;K<I;K++)E(K);S&&S({endIterateUnsetNumeric:true,end:true});}return T},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=l[e];l[e]=v?[f].concat(v):f;}if(Object.assign(r,{type:f,replaced:true}),(y||!p.replaceAsync)&&!p.replace)return a&&a({typeDetected:true}),m(e,t,h&&"readonly",r,n,i,f);a&&a({replacing:true});var d=void 0;if(y||!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 y&&u.throwOnBadSyncType?function(){throw new TypeError("Sync method requested but async result obtained")}():Promise.resolve(_(g,v)).then(b);if(!y&&u.throwOnBadSyncType)throw new TypeError("Async method requested but sync result obtained");return u.stringification&&y?[b(g)]:y?b(g):Promise.resolve(b(g))}},{key:"encapsulateSync",value:function encapsulateSync(e,t,r){return this.encapsulate(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:true},r),{},{sync:true}))}},{key:"encapsulateAsync",value:function encapsulateAsync(e,t,r){return this.encapsulate(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:true},r),{},{sync:false}))}},{key:"revive",value:function revive(t,r){var o=this,a=_objectSpread2(_objectSpread2({sync:true},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(true===u)return finishRevival(t.$);if(!u||"object"!==_typeof(u)||Array.isArray(u))return finishRevival(t);var y=[],l={},p=true;u.$&&isPlainObject(u.$)&&(t=t.$,u=u.$,p=false);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,l);if(n.revive)return n.revive(t,l);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),r.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 l=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;y.length;){var b=_slicedToArray(y[0],4),_=b[0],O=b[1],m=b[2],j=b[3],g=getByKeyPath(_,O);if(void 0===g)break;m[j]=g,y.splice(0,1);}}if(!l)return r;if("#"===l){var S=getByKeyPath(o,r.slice(1));return void 0===S&&y.push([o,r.slice(1),a,c]),S}return [].concat(l).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:true},t),{},{sync:true}))}},{key:"reviveAsync",value:function reviveAsync(e,t){return this.revive(e,_objectSpread2(_objectSpread2({throwOnBadSyncType:true},t),{},{sync:false}))}},{key:"register",value:function register(e,t){var r=this,o=null!=t?t:{},a=function reg(e){i$1(e)?e.forEach((function(e){a(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 y=a;a={test:function test(e){return e&&e.constructor===y},replace:function replace(e){return _objectSpread2({},e)},revive:function revive(e){return Object.assign(Object.create(y.prototype),e)}};}else if(i$1(a)){var l=_slicedToArray(a,3);a={test:l[0],replace:l[1],revive:l[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){a(e);})),this}}])}(),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,encapsulateError:d}=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 v,O={};const b=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,getEncapsulatedValue=(e,t,n)=>{try{return {value:_encapsulate(e,t[n],Boolean(o),i,a,l)}}catch(r){if(!d)throw r;const s=h??i.type??getJSONType(t),o=d({keypath:e,error:r,parent:t,key:n,stateObj:i,type:s});if(!o)throw r;if("substitute"in o)return {value:o.substitute,substitute:true};if(o.ignore)return;throw r}};if(["string","boolean","number","undefined"].includes(typeof t))return void 0===t||t===1/0||0===t||t===-1/0||Number.isNaN(t)?(v=i.replaced?t:replace(e,t,i,a,false,l,b),v!==t&&(O={replaced:v})):v=t,b&&b(),v;if(null===t)return b&&b(),t;if(o&&t&&"object"==typeof t&&!i.iterateIn&&!i.iterateUnsetNumeric){const n=y.indexOf(t);if(-1!==n)return p[e]="#",b&&b({cyclicKeypath:u[n]}),"#"+u[n];true===o&&(y.push(t),u.push(e));}const m=isPlainObject(t),P=s(t),T=(m||P)&&(!this.plainObjectReplacers.length||i.replaced)||i.iterateIn?t:replace(e,t,i,a,m||P,null,b);let g;if(T!==t?(v=T,O={replaced:T}):""===e&&hasConstructorOf(t,TypesonPromise)?(a.push([e,t,o,i,void 0,void 0,i.type]),v=t):P&&"object"!==i.iterateIn||"array"===i.iterateIn?(g=new Array(t.length),O={clone:g}):!m&&("object"!=typeof t||"toJSON"in t||hasConstructorOf(t,TypesonPromise)||hasConstructorOf(t,Promise)||hasConstructorOf(t,ArrayBuffer))&&"object"!==i.iterateIn?v=t:(g={},i.addLength&&(g.length=t.length),O={clone:g}),b&&b(),c.iterateNone)return g??v;if(!g)return v;if(i.iterateIn){for(const n in t){const s={ownKeys:r(t,n)};_adaptBuiltinStateObjectProperties(i,s,()=>{const r=e+(e?".":"")+escapeKeyPathComponent(n),s=getEncapsulatedValue(r,t,n),c=s&&s.value;hasConstructorOf(c,TypesonPromise)?a.push([r,c,Boolean(o),i,g,n,i.type]):s&&(void 0!==c||"substitute"in s)&&(g[n]=c);});}b&&b({endIterateIn:true,end:true});}else n(t).forEach(function(n){const r=e+(e?".":"")+escapeKeyPathComponent(n);_adaptBuiltinStateObjectProperties(i,{ownKeys:true},()=>{const e=getEncapsulatedValue(r,t,n),s=e&&e.value;hasConstructorOf(s,TypesonPromise)?a.push([r,s,Boolean(o),i,g,n,i.type]):e&&(void 0!==s||"substitute"in e)&&(g[n]=s);});}),b&&b({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,g,r,i.type]):void 0!==e&&(g[r]=e);});}b&&b({endIterateUnsetNumeric:true,end:true});}return g},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},v=_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(v,l)).then(finish);if(!a&&c.throwOnBadSyncType)throw new TypeError("Async method requested but sync result obtained");return a&&c.stringification?[finish(v)]:a?finish(v):Promise.resolve(finish(v))}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],v=s(t);if(v||isPlainObject(t)){const s=v?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
@@ -285,7 +290,7 @@ const blob = {
285
290
  return new Blob([string2arraybuffer(stringContents)], {type});
286
291
  },
287
292
  replaceAsync (b) {
288
- return new e((resolve, reject) => {
293
+ return new TypesonPromise((resolve, reject) => {
289
294
  /*
290
295
  if (b.isClosed) { // On MDN, but not in https://w3c.github.io/FileAPI/#dfn-Blob
291
296
  reject(new Error('The Blob is closed'));
@@ -321,7 +326,7 @@ const blob = {
321
326
  * it may be troublesome to bundle and not strongly needed)
322
327
  * @returns {string}
323
328
  */
324
- 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
325
330
  /* c8 ignore next */
326
331
  let d = Date.now();
327
332
 
@@ -378,7 +383,7 @@ const cryptokey = {
378
383
  /** @type {CryptoKey} */
379
384
  key
380
385
  ) {
381
- return new e(async (resolve, reject) => {
386
+ return new TypesonPromise(async (resolve, reject) => {
382
387
  /** @type {JsonWebKey} */
383
388
  let jwk;
384
389
  try {
@@ -400,12 +405,12 @@ const cryptokey = {
400
405
  const {
401
406
  jwk, algorithm, usages
402
407
  } = /**
403
- * @type {{
404
- * jwk: JsonWebKey,
405
- * algorithm: KeyAlgorithm,
406
- * usages: KeyUsage[]
407
- * }}
408
- */ (obj);
408
+ * @type {{
409
+ * jwk: JsonWebKey,
410
+ * algorithm: KeyAlgorithm,
411
+ * usages: KeyUsage[]
412
+ * }}
413
+ */ (obj);
409
414
 
410
415
  return crypto.subtle.importKey(
411
416
  'jwk', jwk, algorithm, true, usages
@@ -493,7 +498,7 @@ const date = {
493
498
  },
494
499
  revive (time) {
495
500
  if (time === 'NaN') {
496
- return new Date(Number.NaN);
501
+ return new Date(NaN);
497
502
  }
498
503
  return new Date(time);
499
504
  }
@@ -698,18 +703,20 @@ const error = {
698
703
  },
699
704
  revive (obj) {
700
705
  const e = /**
701
- * @type {{
702
- * name: string,
703
- * cause: Error,
704
- * stack: string,
705
- * fileName?: string,
706
- * lineNumber?: import('typeson').Integer,
707
- * columnNumber?: import('typeson').Integer
708
- * }}
709
- */ (new Error(obj.message));
706
+ * @type {{
707
+ * name: string,
708
+ * cause: Error,
709
+ * stack: string,
710
+ * fileName?: string,
711
+ * lineNumber?: import('typeson').Integer,
712
+ * columnNumber?: import('typeson').Integer
713
+ * }}
714
+ */ (new Error(obj.message));
715
+ /* eslint-disable unicorn/no-error-property-assignment -- Ok */
710
716
  e.name = obj.name;
711
717
  e.cause = obj.cause;
712
718
  e.stack = obj.stack;
719
+ /* eslint-enable unicorn/no-error-property-assignment -- Ok */
713
720
  e.fileName = obj.fileName;
714
721
  e.lineNumber = obj.lineNumber;
715
722
  e.columnNumber = obj.columnNumber;
@@ -727,6 +734,7 @@ const error = {
727
734
  const errors = {};
728
735
 
729
736
  // JS standard
737
+ // eslint-disable-next-line unicorn/no-top-level-side-effects -- Too cumbersome
730
738
  [
731
739
  TypeError, RangeError, SyntaxError, ReferenceError,
732
740
  EvalError, URIError
@@ -744,7 +752,6 @@ if (typeof InternalError === 'function') {
744
752
  create$2(InternalError);
745
753
  }
746
754
 
747
- /* eslint-disable jsdoc/valid-types -- https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/131 */
748
755
  /**
749
756
  * Non-standard.
750
757
  * @typedef {{
@@ -752,7 +759,6 @@ if (typeof InternalError === 'function') {
752
759
  * (message?: string, options?: ErrorOptions): EvalError;
753
760
  * }} InternalErrorConstructor
754
761
  */
755
- /* eslint-enable jsdoc/valid-types -- https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/131 */
756
762
 
757
763
  /**
758
764
  * Comprises all built-in errors.
@@ -779,24 +785,24 @@ function create$2 (Ctor) {
779
785
  const isAggregateError = typeof AggregateError !== 'undefined' &&
780
786
  Ctor === AggregateError;
781
787
  const e = /**
782
- * @type {{
783
- * name: string,
784
- * cause: Error,
785
- * stack: string,
786
- * fileName?: string,
787
- * lineNumber?: import('typeson').Integer,
788
- * columnNumber?: import('typeson').Integer
789
- * }}
790
- */ (isAggregateError
788
+ * @type {{
789
+ * name: string,
790
+ * cause: Error,
791
+ * stack: string,
792
+ * fileName?: string,
793
+ * lineNumber?: import('typeson').Integer,
794
+ * columnNumber?: import('typeson').Integer
795
+ * }}
796
+ */ (isAggregateError
791
797
  ? new /** @type {AggregateErrorConstructor} */ (
792
798
  Ctor
793
799
  )(obj.errors, obj.message)
794
800
  : new /**
795
- * @type {TypeErrorConstructor|RangeErrorConstructor|
796
- * SyntaxErrorConstructor|ReferenceErrorConstructor|
797
- * EvalErrorConstructor|URIErrorConstructor|
798
- * InternalErrorConstructor}
799
- */ (Ctor)(obj.message));
801
+ * @type {TypeErrorConstructor|RangeErrorConstructor|
802
+ * SyntaxErrorConstructor|ReferenceErrorConstructor|
803
+ * EvalErrorConstructor|URIErrorConstructor|
804
+ * InternalErrorConstructor}
805
+ */ (Ctor)(obj.message));
800
806
 
801
807
  e.name = obj.name;
802
808
  e.cause = obj.cause;
@@ -843,7 +849,7 @@ const file = {
843
849
  });
844
850
  },
845
851
  replaceAsync (f) {
846
- return new e(function (resolve, reject) {
852
+ return new TypesonPromise(function (resolve, reject) {
847
853
  /*
848
854
  if (f.isClosed) { // On MDN, but not in https://w3c.github.io/FileAPI/#dfn-Blob
849
855
  reject(new Error('The File is closed'));
@@ -966,7 +972,7 @@ const imagebitmap = {
966
972
  canvas.getContext('2d')
967
973
  );
968
974
  const img = document.createElement('img');
969
- // 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
970
976
  img.addEventListener('load', function () {
971
977
  ctx.drawImage(img, 0, 0);
972
978
  });
@@ -986,13 +992,13 @@ const imagebitmap = {
986
992
  canvas.getContext('2d')
987
993
  );
988
994
  const img = document.createElement('img');
989
- // 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
990
996
  img.addEventListener('load', function () {
991
997
  ctx.drawImage(img, 0, 0);
992
998
  });
993
999
  img.src = o.dataURL;
994
1000
 
995
- return new e(async (resolve, reject) => {
1001
+ return new TypesonPromise(async (resolve, reject) => {
996
1002
  try {
997
1003
  const resp = await createImageBitmap(canvas);
998
1004
  resolve(resp);
@@ -1037,9 +1043,9 @@ const imagedata = {
1037
1043
  */
1038
1044
  const infinity = {
1039
1045
  infinity: {
1040
- test (x) { return x === Number.POSITIVE_INFINITY; },
1046
+ test (x) { return x === Infinity; },
1041
1047
  replace (/* n */) { return 'Infinity'; },
1042
- revive (/* s */) { return Number.POSITIVE_INFINITY; }
1048
+ revive (/* s */) { return Infinity; }
1043
1049
  }
1044
1050
  };
1045
1051
 
@@ -1084,7 +1090,7 @@ const intlTypes = {
1084
1090
  const map = {
1085
1091
  map: {
1086
1092
  test (x) { return toStringTag(x) === 'Map'; },
1087
- replace (mp) { return [...mp.entries()]; },
1093
+ replace (mp) { return mp.entries().toArray(); },
1088
1094
  revive (entries) { return new Map(entries); }
1089
1095
  }
1090
1096
  };
@@ -1096,7 +1102,7 @@ const nan = {
1096
1102
  nan: {
1097
1103
  test (x) { return Number.isNaN(x); },
1098
1104
  replace (/* n */) { return 'NaN'; },
1099
- revive (/* s */) { return Number.NaN; }
1105
+ revive (/* s */) { return NaN; }
1100
1106
  }
1101
1107
  };
1102
1108
 
@@ -1105,9 +1111,9 @@ const nan = {
1105
1111
  */
1106
1112
  const negativeInfinity = {
1107
1113
  negativeInfinity: {
1108
- test (x) { return x === Number.NEGATIVE_INFINITY; },
1114
+ test (x) { return x === -Infinity; },
1109
1115
  replace (/* n */) { return '-Infinity'; },
1110
- revive (/* s */) { return Number.NEGATIVE_INFINITY; }
1116
+ revive (/* s */) { return -Infinity; }
1111
1117
  }
1112
1118
  };
1113
1119
 
@@ -1211,7 +1217,7 @@ const promise = {
1211
1217
  return toStringTag(x) === 'Promise';
1212
1218
  },
1213
1219
  replaceAsync (prom) {
1214
- return new e(async (resolve) => {
1220
+ return new TypesonPromise(async (resolve) => {
1215
1221
  try {
1216
1222
  resolve({
1217
1223
  value: await prom
@@ -1293,7 +1299,7 @@ const set = {
1293
1299
  set: {
1294
1300
  test (x) { return toStringTag(x) === 'Set'; },
1295
1301
  replace (st) {
1296
- return [...st.values()];
1302
+ return st.values().toArray();
1297
1303
  },
1298
1304
  revive (values) {
1299
1305
  return new Set(values);
@@ -1506,7 +1512,7 @@ const undef$1 = {
1506
1512
  revive (/* s */) {
1507
1513
  // Will add `undefined` (returning `undefined` would instead
1508
1514
  // avoid explicitly setting)
1509
- return new s();
1515
+ return new Undefined();
1510
1516
  }
1511
1517
  }
1512
1518
  };
@@ -1544,7 +1550,7 @@ const arrayNonindexKeys = [
1544
1550
  // `Number.parseInt(Number())` since scientific
1545
1551
  // notation will be pre-resolved if a number
1546
1552
  // was given, and it will otherwise be a string
1547
- return String(Number.parseInt(k)) !== k;
1553
+ return String(Number(k)) !== k;
1548
1554
  })
1549
1555
  ) {
1550
1556
  stateObj.iterateIn = 'object';
@@ -1845,5 +1851,5 @@ const universal = [
1845
1851
  // built-in into ecmasript standard.
1846
1852
  ];
1847
1853
 
1848
- 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 };
1849
1855
  //# sourceMappingURL=index.js.map