typeson-registry 14.3.0 → 14.5.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 (73) hide show
  1. package/dist/index.js +60 -14
  2. package/dist/index.js.map +1 -1
  3. package/dist/index.min.js +2 -2
  4. package/dist/index.min.js.map +1 -1
  5. package/dist/index.umd.cjs +401 -262
  6. package/dist/index.umd.cjs.map +1 -1
  7. package/dist/index.umd.min.cjs +2 -2
  8. package/dist/index.umd.min.cjs.map +1 -1
  9. package/dist/polyfills/AudioData.d.ts.map +1 -1
  10. package/dist/polyfills/EncodedAudioChunk.d.ts.map +1 -1
  11. package/dist/polyfills/EncodedVideoChunk.d.ts.map +1 -1
  12. package/dist/polyfills/VideoFrame.d.ts.map +1 -1
  13. package/dist/presets/builtin.umd.cjs.map +1 -1
  14. package/dist/presets/postmessage.umd.cjs.map +1 -1
  15. package/dist/presets/socketio.umd.cjs.map +1 -1
  16. package/dist/presets/structured-cloning-for-storage.umd.cjs +1 -1
  17. package/dist/presets/structured-cloning-for-storage.umd.cjs.map +1 -1
  18. package/dist/presets/structured-cloning-throwing.umd.cjs +1 -1
  19. package/dist/presets/structured-cloning-throwing.umd.cjs.map +1 -1
  20. package/dist/presets/structured-cloning.umd.cjs +1 -1
  21. package/dist/presets/structured-cloning.umd.cjs.map +1 -1
  22. package/dist/presets/undef.umd.cjs.map +1 -1
  23. package/dist/presets/universal.umd.cjs.map +1 -1
  24. package/dist/types/arraybuffer.umd.cjs.map +1 -1
  25. package/dist/types/audiodata.umd.cjs.map +1 -1
  26. package/dist/types/bigint-object.umd.cjs.map +1 -1
  27. package/dist/types/blob.umd.cjs.map +1 -1
  28. package/dist/types/cryptokey.umd.cjs.map +1 -1
  29. package/dist/types/dataview.umd.cjs.map +1 -1
  30. package/dist/types/date.umd.cjs.map +1 -1
  31. package/dist/types/domexception.umd.cjs.map +1 -1
  32. package/dist/types/dommatrix.umd.cjs.map +1 -1
  33. package/dist/types/dompoint.umd.cjs.map +1 -1
  34. package/dist/types/domquad.umd.cjs.map +1 -1
  35. package/dist/types/domrect.umd.cjs.map +1 -1
  36. package/dist/types/encodedaudiochunk.d.ts.map +1 -1
  37. package/dist/types/encodedaudiochunk.umd.cjs +1 -1
  38. package/dist/types/encodedaudiochunk.umd.cjs.map +1 -1
  39. package/dist/types/encodedvideochunk.d.ts.map +1 -1
  40. package/dist/types/encodedvideochunk.umd.cjs +1 -1
  41. package/dist/types/encodedvideochunk.umd.cjs.map +1 -1
  42. package/dist/types/error.umd.cjs.map +1 -1
  43. package/dist/types/errors.umd.cjs.map +1 -1
  44. package/dist/types/file.umd.cjs.map +1 -1
  45. package/dist/types/filelist.umd.cjs.map +1 -1
  46. package/dist/types/imagebitmap.umd.cjs.map +1 -1
  47. package/dist/types/imagedata.d.ts.map +1 -1
  48. package/dist/types/imagedata.umd.cjs +1 -1
  49. package/dist/types/imagedata.umd.cjs.map +1 -1
  50. package/dist/types/intl-types.umd.cjs.map +1 -1
  51. package/dist/types/map.umd.cjs.map +1 -1
  52. package/dist/types/nonbuiltin-ignore.umd.cjs.map +1 -1
  53. package/dist/types/primitive-objects.umd.cjs.map +1 -1
  54. package/dist/types/promise.umd.cjs.map +1 -1
  55. package/dist/types/quotaexceedederror.umd.cjs.map +1 -1
  56. package/dist/types/regexp.umd.cjs.map +1 -1
  57. package/dist/types/set.umd.cjs.map +1 -1
  58. package/dist/types/typed-arrays-socketio.umd.cjs.map +1 -1
  59. package/dist/types/typed-arrays.umd.cjs.map +1 -1
  60. package/dist/types/undef.umd.cjs.map +1 -1
  61. package/dist/types/user-object.umd.cjs.map +1 -1
  62. package/dist/types/videoframe.d.ts.map +1 -1
  63. package/dist/types/videoframe.umd.cjs +1 -1
  64. package/dist/types/videoframe.umd.cjs.map +1 -1
  65. package/dist/types/webtransporterror.umd.cjs.map +1 -1
  66. package/package.json +8 -8
  67. package/polyfills/AudioData.js +6 -1
  68. package/polyfills/EncodedAudioChunk.js +2 -1
  69. package/polyfills/EncodedVideoChunk.js +2 -1
  70. package/polyfills/VideoFrame.js +30 -7
  71. package/polyfills/index.cjs +45 -16
  72. package/polyfills/index.cjs.map +1 -1
  73. package/polyfills/index.js +1 -0
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
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(void 0,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(t,n,r){if(""===n)return t;if(null===t||"object"!=typeof t)throw new TypeError("Unexpected non-object type");const s=n.indexOf("."),o=unescapeKeyPathComponent(-1===s?n:n.slice(0,s));if(!r||e(t,o)){if(-1!==s){const e=t[o];return void 0===e?void 0:getByKeyPath(e,n.slice(s+1),r)}return t[o]}}function setAtKeyPath(t,n,r,s){if(""===n)return r;let o=t,i=n;for(;;){if(!o||"object"!=typeof o)throw new TypeError("Unexpected non-object type");const n=i.indexOf("."),c=unescapeKeyPathComponent(-1===n?i:i.slice(0,n));if("__proto__"===c)throw new TypeError("Invalid property");if(-1===n)return o[c]=r,t;if(s&&!e(o,c))throw new TypeError("Invalid property");o=o[c],i=i.slice(n+1);}}function getJSONType(e){return null===e?"null":Array.isArray(e)?"array":typeof e}
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(void 0,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 o=t(n);if(!o)return null===r;const s=e(o,"constructor")&&o.constructor;return "function"!=typeof s?null===r:r===s||(null!==r&&Function.prototype.toString.call(s)===Function.prototype.toString.call(r)||"function"==typeof r&&"string"==typeof s.__typeson__type__&&s.__typeson__type__===r.__typeson__type__)}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(t,n,r){if(""===n)return t;if(null===t||"object"!=typeof t)throw new TypeError("Unexpected non-object type");const o=n.indexOf("."),s=unescapeKeyPathComponent(-1===o?n:n.slice(0,o));if(!r||e(t,s)){if(-1!==o){const e=t[s];return void 0===e?void 0:getByKeyPath(e,n.slice(o+1),r)}return t[s]}}function setAtKeyPath(t,n,r,o){if(""===n)return r;let s=t,i=n;for(;;){if(!s||"object"!=typeof s)throw new TypeError("Unexpected non-object type");const n=i.indexOf("."),c=unescapeKeyPathComponent(-1===n?i:i.slice(0,n));if("__proto__"===c)throw new TypeError("Invalid property");if(-1===n)return s[c]=r,t;if(o&&!e(s,c))throw new TypeError("Invalid property");s=s[c],i=i.slice(n+1);}}function getJSONType(e){return null===e?"null":Array.isArray(e)?"array":typeof e}
2
2
  /**
3
3
  * @file Typeson - JSON with types.
4
4
  * @license The MIT License (MIT)
5
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 setOwnEnumerable(e,t,n){Object.defineProperty(e,t,{configurable:true,enumerable:true,value:n,writable:true});}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 this.encapsulate(e,t,{...n,returnTypeNames:true})}rootTypeName(e,t,n={}){return this.encapsulate(e,t,{...n,iterateNone:true})}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){return setOwnEnumerable(a,p,await u.p),checkPromises(e,r)}return o?setOwnEnumerable(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 b,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,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)?(b=i.replaced?t:replace(e,t,i,a,false,l,v),b!==t&&(O={replaced:b})):b=t,v&&v(),b;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),T=s(t),P=(m||T)&&(!this.plainObjectReplacers.length||i.replaced)||i.iterateIn?t:replace(e,t,i,a,m||T,null,v);let w;if(P!==t?(b=P,O={replaced:P}):""===e&&hasConstructorOf(t,TypesonPromise)?(a.push([e,t,o,i,void 0,void 0,i.type]),b=t):T&&"object"!==i.iterateIn||"array"===i.iterateIn?(w=new Array(t.length),O={clone:w}):!m&&("object"!=typeof t||"toJSON"in t||hasConstructorOf(t,TypesonPromise)||hasConstructorOf(t,Promise)||hasConstructorOf(t,ArrayBuffer))&&"object"!==i.iterateIn?b=t:(w={},i.addLength&&(w.length=t.length),O={clone:w}),v&&v(),c.iterateNone)return w??b;if(!w)return b;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,w,n,i.type]):s&&(void 0!==c||"substitute"in s)&&setOwnEnumerable(w,n,c);});}v&&v({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,w,n,i.type]):e&&(void 0!==s||"substitute"in e)&&setOwnEnumerable(w,n,s);});}),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,w,r,i.type]):void 0!==e&&setOwnEnumerable(w,r,e);});}v&&v({endIterateUnsetNumeric:true,end:true});}return w},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},b=_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(b,l)).then(finish);if(!a&&c.throwOnBadSyncType)throw new TypeError("Async method requested but sync result obtained");return a&&c.stringification?[finish(b)]:a?finish(b):Promise.resolve(finish(b))}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,true);if(s=executeReviver(r,s),hasConstructorOf(s,TypesonPromise))return s.then(t=>{const r=setAtKeyPath(e,n,t,true);r===t&&(e=r);});const o=setAtKeyPath(e,n,s,true);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=r(c,e)?c[e]:void 0,b=s(t);if(b||isPlainObject(t)){const s=b?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)?setOwnEnumerable(s,n,void 0):void 0!==e&&setOwnEnumerable(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,true);if(!o&&void 0===i)break;setOwnEnumerable(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,true);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];if([this.plainObjectReplacers,this.nonplainObjectReplacers].forEach(e=>{const n=e.findIndex(e=>e.type===t);-1!==n&&e.splice(n,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 o={type:t,test:n.test.bind(n)};n.replace&&(o.replace=n.replace.bind(n)),n.replaceAsync&&(o.replaceAsync=n.replaceAsync.bind(n));const c="number"==typeof r.fallback?r.fallback:r.fallback?0:1/0;if(n.testPlainObjects?this.plainObjectReplacers.splice(c,0,o):this.nonplainObjectReplacers.splice(c,0,o),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"];
6
+ */const{keys:n,hasOwn:r}=Object,{isArray:o}=Array,s=["type","replaced","iterateIn","iterateUnsetNumeric","iterateSymbols","addLength"];function setOwnEnumerable(e,t,n){Object.defineProperty(e,t,{configurable:true,enumerable:true,value:n,writable:true});}const i$1=["asyncIterator","hasInstance","isConcatSpreadable","iterator","match","matchAll","replace","search","species","split","toPrimitive","toStringTag","unscopables"];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={},this.symbolsByName=Object.create(null),this.symbolsByValue=new Map;const t=e?.symbols;t&&Object.entries(t).forEach(([e,t])=>{if("symbol"!=typeof t)throw new TypeError("Non-symbol value supplied for `symbols` entry: "+e);this.symbolsByName[e]=t,this.symbolsByValue.set(t,e);});}stringify(e,t,n,r){r={...this.options,...r,stringification:true};const s=this.encapsulate(e,null,r);return o(s)?JSON.stringify(s[0],t,n):s.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 this.encapsulate(e,t,{...n,returnTypeNames:true})}rootTypeName(e,t,n={}){return this.encapsulate(e,t,{...n,iterateNone:true})}encapsulate(e,t,c){const a={sync:true,...this.options,...c},{sync:y}=a,l={},p={},u=[],h=[],f=[],b=!("cyclic"in a)||a.cyclic,{encapsulateObserver:d,encapsulateError:m}=a,finish=e=>{const t=Object.values(l);if(a.iterateNone)return t.length?t[0]:getJSONType(e);if(a.returnTypeNames)return !!t.length&&[...new Set(t)];const n=Object.keys(p).length>0,o=isObject(e)&&(r(e,"$types")||r(e,"$symbolKeys"));return n||t.length?(!o&&e&&isPlainObject(e)?t.length&&(e.$types=l):e={$:e,$types:{$:l}},n&&(e.$symbolKeys=p)):o&&(e={$:e,$types:true}),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=[],[o]=t.splice(0,1),[s,,i,c,a,y,l]=o,p=_encapsulate(s,n,i,c,r,true,l),u=hasConstructorOf(p,TypesonPromise);if(s&&u){return setOwnEnumerable(a,y,await p.p),checkPromises(e,r)}return s?setOwnEnumerable(a,y,p):e=u?p.p:p,checkPromises(e,r)})),e},_adaptBuiltinStateObjectProperties=(e,t,n)=>{Object.assign(e,t);const r=s.map(t=>{const n=e[t];return delete e[t],n});n(),s.forEach((t,n)=>{e[t]=r[n];});},_encapsulate=(e,t,s,c,y,f,b)=>{let v,O={};const w=d?function(n){const r=b??c.type??getJSONType(t);d(Object.assign(n??O,{keypath:e,value:t,cyclic:s,stateObj:c,promisesData:y,resolvingTypesonPromise:f,awaitingTypesonPromise:hasConstructorOf(t,TypesonPromise)},{type:r}));}:null,getEncapsulatedValue=(e,t,n)=>{try{return {value:_encapsulate(e,t[n],Boolean(s),c,y,f)}}catch(r){if(!m)throw r;const o=b??c.type??getJSONType(t),s=m({keypath:e,error:r,parent:t,key:n,stateObj:c,type:o});if(!s)throw r;if("substitute"in s)return {value:s.substitute,substitute:true};if(s.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=c.replaced?t:replace(e,t,c,y,false,f,w),v!==t&&(O={replaced:v})):v=t,w&&w(),v;if(null===t)return w&&w(),t;if(s&&t&&"object"==typeof t&&!c.iterateIn&&!c.iterateUnsetNumeric){const n=u.indexOf(t);if(-1!==n)return l[e]="#",w&&w({cyclicKeypath:h[n]}),"#"+h[n];true===s&&(u.push(t),h.push(e));}const g=isPlainObject(t),T=o(t),P=(g||T)&&(!this.plainObjectReplacers.length||c.replaced)||c.iterateIn?t:replace(e,t,c,y,g||T,null,w);let j;if(P!==t?(v=P,O={replaced:P}):""===e&&hasConstructorOf(t,TypesonPromise)?(y.push([e,t,s,c,void 0,void 0,c.type]),v=t):T&&"object"!==c.iterateIn||"array"===c.iterateIn?(j=new Array(t.length),O={clone:j}):!g&&("object"!=typeof t||"toJSON"in t||hasConstructorOf(t,TypesonPromise)||hasConstructorOf(t,Promise)||hasConstructorOf(t,ArrayBuffer))&&"object"!==c.iterateIn?v=t:(j={},c.addLength&&(j.length=t.length),O={clone:j}),w&&w(),a.iterateNone)return j??v;if(!j)return v;if(c.iterateIn){for(const n in t){const o={ownKeys:r(t,n)};_adaptBuiltinStateObjectProperties(c,o,()=>{const r=e+(e?".":"")+escapeKeyPathComponent(n),o=getEncapsulatedValue(r,t,n),i=o&&o.value;hasConstructorOf(i,TypesonPromise)?y.push([r,i,Boolean(s),c,j,n,c.type]):o&&(void 0!==i||"substitute"in o)&&setOwnEnumerable(j,n,i);});}w&&w({endIterateIn:true,end:true});}else n(t).forEach(function(n){const r=e+(e?".":"")+escapeKeyPathComponent(n);_adaptBuiltinStateObjectProperties(c,{ownKeys:true},()=>{const e=getEncapsulatedValue(r,t,n),o=e&&e.value;hasConstructorOf(o,TypesonPromise)?y.push([r,o,Boolean(s),c,j,n,c.type]):e&&(void 0!==o||"substitute"in e)&&setOwnEnumerable(j,n,o);});}),w&&w({endIterateOwn:true,end:true}),(c.iterateSymbols||a.iterateSymbols)&&(Object.getOwnPropertySymbols(t).filter(e=>Object.prototype.propertyIsEnumerable.call(t,e)).forEach(n=>{const r=function resolveSymbolIdentity(e,t){const n=Symbol.keyFor(e);if(void 0!==n)return {for:n};const r=i$1.find(t=>Symbol[t]===e);if(r)return {wellKnown:r};const o=t.get(e);return void 0!==o?{registered:o}:null}(n,this.symbolsByValue);if(!r){if(a.throwOnUnregisteredSymbol)throw new TypeError("Cannot serialize a Symbol-keyed property whose Symbol has no portable identity (not global, not well-known, and not in the `symbols` option): "+String(n));return}const o=p[e]??=[],l={key:r};o.push(l);const u=o.length-1,h=`$symbolKeys.${escapeKeyPathComponent(e)}.${String(u)}.value`,f={value:t[n]};_adaptBuiltinStateObjectProperties(c,{ownKeys:true},()=>{const e=getEncapsulatedValue(h,f,"value"),t=e&&e.value;hasConstructorOf(t,TypesonPromise)?y.push([h,t,Boolean(s),c,l,"value",c.type]):e&&(void 0!==t||"substitute"in e)&&setOwnEnumerable(l,"value",t);});}),w&&w({endIterateSymbols:true,end:true}));if(c.iterateUnsetNumeric){const n=t.length;for(let r=0;r<n;r++){if(r in t)continue;const n=`${e}${e?".":""}${String(r)}`;_adaptBuiltinStateObjectProperties(c,{ownKeys:false},()=>{const e=_encapsulate(n,void 0,Boolean(s),c,y,f);hasConstructorOf(e,TypesonPromise)?y.push([n,e,Boolean(s),c,j,r,c.type]):void 0!==e&&setOwnEnumerable(j,r,e);});}w&&w({endIterateUnsetNumeric:true,end:true});}return j},replace=(e,t,n,r,o,s,i)=>{const c=o?this.plainObjectReplacers:this.nonplainObjectReplacers;let a=c.length;for(;a--;){const o=c[a];if(o.test(t,n)){const{type:c}=o;if(Object.hasOwn(this.revivers,c)){const t=l[e];l[e]=t?[c].concat(t):c;}if(Object.assign(n,{type:c,replaced:true}),(y||!o.replaceAsync)&&!o.replace)return i&&i({typeDetected:true}),_encapsulate(e,t,b&&"readonly",n,r,s,c);let a;if(i&&i({replacing:true}),y||!o.replaceAsync){if(void 0===o.replace)throw new TypeError("Missing replacer");a=o.replace(t,n);}else a=o.replaceAsync(t,n);return _encapsulate(e,a,b&&"readonly",n,r,s,c)}}return t},v=_encapsulate("",e,b,t??{},f);if(f.length)return y&&a.throwOnBadSyncType?(()=>{throw new TypeError("Sync method requested but async result obtained")})():Promise.resolve(checkPromises(v,f)).then(finish);if(!y&&a.throwOnBadSyncType)throw new TypeError("Async method requested but sync result obtained");return y&&a.stringification?[finish(v)]:y?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 s={sync:true,...this.options,...t},{sync:c}=s;function finishRevival(e){if(c)return e;if(s.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 a=e.$types;if(true===a)return finishRevival(e.$);const y=e.$symbolKeys;let l=void 0!==y;if(!a||"object"!=typeof a||Array.isArray(a)){if(!y)return finishRevival(e);a={};}const p=[],u=Object.create(null),h={};let f=true;a.$&&isPlainObject(a.$)&&(e=e.$,a=a.$,f=false,l=false,void 0!==y&&isObject(e)&&!r(e,"$symbolKeys")&&(e.$symbolKeys=y,l=true));const executeReviver=(e,t)=>{const[n]=this.revivers[e]??[];if(!n)throw new Error("Unregistered type: "+e);if(c&&!("revive"in n))return t;if(!c&&n.reviveAsync)return n.reviveAsync(t,h);if(n.revive)return n.revive(t,h);throw new Error("Missing reviver")},b=[];function checkUndefined(e){return hasConstructorOf(e,Undefined)?void 0:e}const reHomeSymbolKeys=e=>{if(!isObject(e))return;const t=l?e.$symbolKeys:y;t&&(Object.entries(t).forEach(([t,n])=>{const o=getByKeyPath(e,t,true);isObject(o)&&n.forEach(e=>{if(!r(e,"value"))return;const t=function resolveSymbolFromIdentity(e,t){if("for"in e)return Symbol.for(e.for);if("wellKnown"in e){const t=i$1.find(t=>t===e.wellKnown);if(!t)throw new Error("Unknown well-known Symbol: "+e.wellKnown);return Symbol[t]}if(!r(t,e.registered))throw new Error("Unregistered symbol: "+e.registered);return t[e.registered]}(e.key,this.symbolsByName),n=checkUndefined(e.value);e.descriptor?Object.defineProperty(o,t,{configurable:true,enumerable:true,writable:true,...e.descriptor,value:n}):o[t]=n;});}),l&&delete e.$symbolKeys);},d=(()=>{if(!a)throw new Error("Found bad `types`");const t=[];if(Object.entries(a).forEach(([e,n])=>{"#"!==n&&[].concat(n).forEach(n=>{const[,{plain:r}]=this.revivers[n]??[null,{}];r&&(t.push({keypath:e,type:n}),delete a[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 o=getByKeyPath(e,n,true);if(o=executeReviver(r,o),hasConstructorOf(o,TypesonPromise))return o.then(t=>{const r=setAtKeyPath(e,n,t,true);r===t&&(e=r);});const s=setAtKeyPath(e,n,o,true);s===o&&(e=s);},void 0)})();let m;return hasConstructorOf(d,TypesonPromise)?m=d.then(()=>e):(m=function _revive(e,t,s,i,y){if(f&&"$types"===e)return;const l=b.length,h=r(a,e)?a[e]:void 0,d=o(t);if(d||isPlainObject(t)){const o=d?new Array(t.length):{};for(n(t).forEach(n=>{const r=_revive(e+(e?".":"")+escapeKeyPathComponent(n),t[n],s??o,o,n),set=e=>(hasConstructorOf(e,Undefined)?setOwnEnumerable(o,n,void 0):void 0!==e&&setOwnEnumerable(o,n,e),e);hasConstructorOf(r,TypesonPromise)?b.push(r.then(e=>set(e))):set(r);}),t=o;p.length;){const[[e,t,n,o]]=p,s=r(u,t),i=s?u[t]:getByKeyPath(e,t,true);if(!s&&void 0===i)break;setOwnEnumerable(n,o,i),p.shift();}}if(!h)return u[e]=t,t;if("#"===h){const e=t.slice(1),n=r(u,e),o=n?u[e]:getByKeyPath(s,e,true);return n||void 0!==o||p.push([s,e,i,y]),o}const applyType=t=>{const n=[].concat(h).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=>(u[e]=t,t)):(u[e]=n,n)};return !c&&b.length>l?TypesonPromise.all(b.slice(l)).then(()=>applyType(t)):applyType(t)}("",e,null),b.length&&(m=TypesonPromise.resolve(m).then(e=>TypesonPromise.all([e,...b])).then(([e])=>e))),y&&(isThenable(m)?m=m.then(e=>(reHomeSymbolKeys(e),e)):reHomeSymbolKeys(m)),isThenable(m)?c&&s.throwOnBadSyncType?(()=>{throw new TypeError("Sync method requested but async result obtained")})():hasConstructorOf(m,TypesonPromise)?m.p.then(checkUndefined):m:!c&&s.throwOnBadSyncType?(()=>{throw new TypeError("Async method requested but sync result obtained")})():c?checkUndefined(m):Promise.resolve(checkUndefined(m))}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=>{o(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(c.includes(t))throw new TypeError("Plain JSON object types are reserved as type names");let n=e[t];if([this.plainObjectReplacers,this.nonplainObjectReplacers].forEach(e=>{const n=e.findIndex(e=>e.type===t);-1!==n&&e.splice(n,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(o(n)){const[e,t,r]=n;n={test:e,replace:t,revive:r};}if(!n?.test)return;const s={type:t,test:n.test.bind(n)};n.replace&&(s.replace=n.replace.bind(n)),n.replaceAsync&&(s.replaceAsync=n.replaceAsync.bind(n));const i="number"==typeof r.fallback?r.fallback:r.fallback?0:1/0;if(n.testPlainObjects?this.plainObjectReplacers.splice(i,0,s):this.nonplainObjectReplacers.splice(i,0,s),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 c=["null","boolean","number","string","array","object"];
7
7
 
8
8
  /*
9
9
  * base64-arraybuffer
@@ -764,9 +764,16 @@ const encodedaudiochunk = {
764
764
  return {type, timestamp, duration, data};
765
765
  },
766
766
  revive ({type, timestamp, duration, data}) {
767
- return new EncodedAudioChunk({
768
- type, timestamp, duration, data: new Uint8Array(data)
769
- });
767
+ // A browser's `EncodedAudioChunkInit` has no `duration`
768
+ // default and coerces an explicit `null`/`undefined` to `0`,
769
+ // so only pass it through when the source chunk actually
770
+ // had one (otherwise `duration` must round-trip as `null`).
771
+ /** @type {EncodedAudioChunkInit} */
772
+ const init = {type, timestamp, data: new Uint8Array(data)};
773
+ if (duration !== null && duration !== undefined) {
774
+ init.duration = duration;
775
+ }
776
+ return new EncodedAudioChunk(init);
770
777
  }
771
778
  }
772
779
  };
@@ -788,9 +795,16 @@ const encodedvideochunk = {
788
795
  return {type, timestamp, duration, data};
789
796
  },
790
797
  revive ({type, timestamp, duration, data}) {
791
- return new EncodedVideoChunk({
792
- type, timestamp, duration, data: new Uint8Array(data)
793
- });
798
+ // A browser's `EncodedVideoChunkInit` has no `duration`
799
+ // default and coerces an explicit `null`/`undefined` to `0`,
800
+ // so only pass it through when the source chunk actually
801
+ // had one (otherwise `duration` must round-trip as `null`).
802
+ /** @type {EncodedVideoChunkInit} */
803
+ const init = {type, timestamp, data: new Uint8Array(data)};
804
+ if (duration !== null && duration !== undefined) {
805
+ init.duration = duration;
806
+ }
807
+ return new EncodedVideoChunk(init);
794
808
  }
795
809
  }
796
810
  };
@@ -1132,16 +1146,39 @@ const imagedata = {
1132
1146
  imagedata: {
1133
1147
  test (x) { return toStringTag(x) === 'ImageData'; },
1134
1148
  replace (d) {
1149
+ const pixelFormat = toStringTag(d.data) === 'Float16Array'
1150
+ /* c8 ignore next -- Not yet supported in `canvas` */
1151
+ ? 'rgba-float16'
1152
+ : 'rgba-unorm8';
1135
1153
  return {
1136
1154
  // Ensure `length` gets preserved for revival
1137
1155
  array: [...d.data],
1138
1156
  width: d.width,
1139
- height: d.height
1157
+ height: d.height,
1158
+ pixelFormat,
1159
+ colorSpace: d.colorSpace
1140
1160
  };
1141
1161
  },
1142
1162
  revive (o) {
1163
+ const {array, width, height, colorSpace, pixelFormat} = o;
1164
+ /* c8 ignore next 12 -- Not yet supported in `canvas` */
1165
+ if (pixelFormat === 'rgba-float16') {
1166
+ return new ImageData(
1167
+ // @ts-expect-error -- Ok
1168
+ new Float16Array(array),
1169
+ width,
1170
+ height,
1171
+ {
1172
+ colorSpace,
1173
+ pixelFormat
1174
+ }
1175
+ );
1176
+ }
1143
1177
  return new ImageData(
1144
- new Uint8ClampedArray(o.array), o.width, o.height
1178
+ new Uint8ClampedArray(array), width, height, {
1179
+ colorSpace,
1180
+ pixelFormat
1181
+ }
1145
1182
  );
1146
1183
  }
1147
1184
  }
@@ -1760,10 +1797,19 @@ const videoframe = {
1760
1797
  format, codedWidth, codedHeight, timestamp, duration,
1761
1798
  visibleRect, displayWidth, displayHeight, colorSpace, data
1762
1799
  }) {
1763
- return new VideoFrame(new Uint8Array(data), {
1764
- format, codedWidth, codedHeight, timestamp, duration,
1800
+ // A browser's `VideoFrameBufferInit` has no `duration` default
1801
+ // and coerces an explicit `null`/`undefined` to `0`, so only
1802
+ // pass it through when the source frame actually had one
1803
+ // (otherwise `duration` must round-trip as `null`).
1804
+ /** @type {VideoFrameBufferInit} */
1805
+ const init = {
1806
+ format, codedWidth, codedHeight, timestamp,
1765
1807
  visibleRect, displayWidth, displayHeight, colorSpace
1766
- });
1808
+ };
1809
+ if (duration !== null && duration !== undefined) {
1810
+ init.duration = duration;
1811
+ }
1812
+ return new VideoFrame(new Uint8Array(data), init);
1767
1813
  }
1768
1814
  }
1769
1815
  };
@@ -2210,5 +2256,5 @@ const universal = [
2210
2256
  // built-in into ecmasript standard.
2211
2257
  ];
2212
2258
 
2213
- export { i$1 as JSON_TYPES, Typeson, TypesonPromise, Undefined, arrayNonindexKeys, arraybuffer, audiodata, bigint, bigintObject, blob, expObj$1 as builtin, cloneable, cryptokey, dataview, date, domexception, dommatrix, dompoint, domquad, domrect, encodedaudiochunk, encodedvideochunk, error, errors, escapeKeyPathComponent, file, filelist, getByKeyPath, getJSONType, hasConstructorOf, imagebitmap, imagedata, infinity, intlTypes, isObject, isPlainObject, isThenable, isUserObject, map, nan, negativeInfinity, negativeZero, nonbuiltinIgnore, postmessage, primitiveObjects, promise, quotaexceedederror, regexp, resurrectable, set, setAtKeyPath, socketio, sparseUndefined, specialNumbers, expObj as structuredCloning, structuredCloningForStorage, structuredCloningThrowing, symbol, toStringTag, typedArrays, typedArraysSocketIO as typedArraysSocketio, undef$1 as undef, undef as undefPreset, unescapeKeyPathComponent, universal, userObject, videoframe, webtransporterror };
2259
+ export { c as JSON_TYPES, Typeson, TypesonPromise, Undefined, arrayNonindexKeys, arraybuffer, audiodata, bigint, bigintObject, blob, expObj$1 as builtin, cloneable, cryptokey, dataview, date, domexception, dommatrix, dompoint, domquad, domrect, encodedaudiochunk, encodedvideochunk, error, errors, escapeKeyPathComponent, file, filelist, getByKeyPath, getJSONType, hasConstructorOf, imagebitmap, imagedata, infinity, intlTypes, isObject, isPlainObject, isThenable, isUserObject, map, nan, negativeInfinity, negativeZero, nonbuiltinIgnore, postmessage, primitiveObjects, promise, quotaexceedederror, regexp, resurrectable, set, setAtKeyPath, socketio, sparseUndefined, specialNumbers, expObj as structuredCloning, structuredCloningForStorage, structuredCloningThrowing, symbol, toStringTag, typedArrays, typedArraysSocketIO as typedArraysSocketio, undef$1 as undef, undef as undefPreset, unescapeKeyPathComponent, universal, userObject, videoframe, webtransporterror };
2214
2260
  //# sourceMappingURL=index.js.map