seroval 0.7.0 → 0.9.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 (42) hide show
  1. package/dist/cjs/development/index.cjs +1247 -1069
  2. package/dist/cjs/development/index.cjs.map +4 -4
  3. package/dist/cjs/production/index.cjs +3 -3
  4. package/dist/esm/development/index.mjs +1247 -1069
  5. package/dist/esm/development/index.mjs.map +4 -4
  6. package/dist/esm/production/index.mjs +3 -3
  7. package/dist/types/assert.d.ts +1 -1
  8. package/dist/types/context.d.ts +8 -2
  9. package/dist/types/index.d.ts +3 -4
  10. package/dist/types/string.d.ts +1 -1
  11. package/dist/types/tree/UnsupportedTypeError.d.ts +3 -0
  12. package/dist/types/tree/async.d.ts +3 -3
  13. package/dist/types/tree/constants.d.ts +11 -0
  14. package/dist/types/tree/deserialize.d.ts +2 -2
  15. package/dist/types/tree/primitives.d.ts +9 -15
  16. package/dist/types/tree/serialize.d.ts +2 -2
  17. package/dist/types/tree/shared.d.ts +12 -8
  18. package/dist/types/tree/sync.d.ts +3 -3
  19. package/dist/types/tree/types.d.ts +74 -71
  20. package/dist/types/tree/web-api.d.ts +2 -2
  21. package/dist/types/types.d.ts +4 -4
  22. package/package.json +11 -9
  23. package/src/assert.ts +2 -2
  24. package/src/compat.ts +0 -1
  25. package/src/context.ts +20 -7
  26. package/src/get-identifier.ts +1 -1
  27. package/src/index.ts +35 -26
  28. package/src/string.ts +2 -2
  29. package/src/tree/UnsupportedTypeError.ts +8 -0
  30. package/src/tree/async.ts +256 -233
  31. package/src/tree/constants.ts +73 -0
  32. package/src/tree/deserialize.ts +112 -93
  33. package/src/tree/primitives.ts +93 -134
  34. package/src/tree/reference.ts +3 -3
  35. package/src/tree/serialize.ts +307 -201
  36. package/src/tree/shared.ts +45 -22
  37. package/src/tree/symbols.ts +13 -13
  38. package/src/tree/sync.ts +236 -198
  39. package/src/tree/types.ts +87 -94
  40. package/src/tree/web-api.ts +14 -7
  41. package/src/types.ts +7 -3
  42. package/src/tree/iterator.ts +0 -14
@@ -1,3 +1,3 @@
1
- var z=(S=>(S[S.AggregateError=1]="AggregateError",S[S.ArrayPrototypeValues=2]="ArrayPrototypeValues",S[S.ArrowFunction=4]="ArrowFunction",S[S.BigInt=8]="BigInt",S[S.ErrorPrototypeStack=16]="ErrorPrototypeStack",S[S.Map=32]="Map",S[S.MethodShorthand=64]="MethodShorthand",S[S.ObjectAssign=128]="ObjectAssign",S[S.Promise=256]="Promise",S[S.Set=512]="Set",S[S.Symbol=1024]="Symbol",S[S.TypedArray=2048]="TypedArray",S[S.BigIntTypedArray=4096]="BigIntTypedArray",S[S.WebAPI=8192]="WebAPI",S))(z||{});var Be="hjkmoquxzABCDEFGHIJKLNPQRTUVWXYZ$_",Ce=Be.length,Oe="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$_",he=Oe.length;function ye(e){let r=e%Ce,n=Be[r];for(e=(e-r)/Ce;e>0;)r=e%he,n+=Oe[r],e=(e-r)/he;return n}var rr={disabledFeatures:0};function F(e={}){let r=Object.assign({},rr,e||{});return{markedRefs:new Set,refs:new Map,features:16383^r.disabledFeatures}}function j(e){return{stack:[],vars:[],assignments:[],validRefs:[],refSize:0,features:e.features,markedRefs:new Set(e.markedRefs),valueMap:new Map}}function k(e,r){e.markedRefs.add(r)}function p(e,r){let n=e.validRefs[r];n==null&&(n=e.refSize++,e.validRefs[r]=n);let a=e.vars[n];return a==null&&(a=ye(n),e.vars[n]=a),a}function H(e,r){let n=e.refs.get(r);return n==null?e.refs.size:n}function R(e,r){let n=e.refs.get(r);if(n==null){let a=e.refs.size;return e.refs.set(r,a),a}return k(e,n),n}function f(e,r){if(!e)throw new Error(r)}function nr(e){switch(e){case'"':return'\\"';case"\\":return"\\\\";case`
2
- `:return"\\n";case"\r":return"\\r";case"\b":return"\\b";case" ":return"\\t";case"\f":return"\\f";case"<":return"\\x3C";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:return}}function b(e){let r="",n=0,a;for(let t=0,o=e.length;t<o;t++)a=nr(e[t]),a&&(r+=e.slice(n,t)+a,n=t+1);return n===0?r=e:r+=e.slice(n),r}function A(e){return e.replace(/\\"/g,'"').replace(/\\\\/g,"\\").replace(/\\n/g,`
3
- `).replace(/\\r/g,"\r").replace(/\\b/g,"\b").replace(/\\t/g," ").replace(/\\f/g,"\f").replace(/\\x3C/g,"<").replace(/\\u2028/g,"\u2028").replace(/\\u2029/g,"\u2029")}var be=new Map,B=new Map;function ar(e,r){return be.set(r,e),B.set(e,r),r}function P(e){return be.has(e)}function tr(e){return B.has(e)}function Ue(e){return f(P(e),"Missing reference id"),be.get(e)}function De(e){return f(tr(e),"Missing reference for id:"+e),B.get(e)}var U="__SEROVAL__";typeof globalThis!==void 0?Object.defineProperty(globalThis,U,{value:B,configurable:!0,writable:!1,enumerable:!1}):typeof window!==void 0?Object.defineProperty(window,U,{value:B,configurable:!0,writable:!1,enumerable:!1}):typeof self!==void 0?Object.defineProperty(self,U,{value:B,configurable:!0,writable:!1,enumerable:!1}):typeof global!==void 0&&Object.defineProperty(global,U,{value:B,configurable:!0,writable:!1,enumerable:!1});var Te={[0]:"Symbol.asyncIterator",[1]:"Symbol.hasInstance",[2]:"Symbol.isConcatSpreadable",[3]:"Symbol.iterator",[4]:"Symbol.match",[5]:"Symbol.matchAll",[6]:"Symbol.replace",[7]:"Symbol.search",[8]:"Symbol.species",[9]:"Symbol.split",[10]:"Symbol.toPrimitive",[11]:"Symbol.toStringTag",[12]:"Symbol.unscopables"},ve={[Symbol.asyncIterator]:0,[Symbol.hasInstance]:1,[Symbol.isConcatSpreadable]:2,[Symbol.iterator]:3,[Symbol.match]:4,[Symbol.matchAll]:5,[Symbol.replace]:6,[Symbol.search]:7,[Symbol.species]:8,[Symbol.split]:9,[Symbol.toPrimitive]:10,[Symbol.toStringTag]:11,[Symbol.unscopables]:12},Le={[0]:Symbol.asyncIterator,[1]:Symbol.hasInstance,[2]:Symbol.isConcatSpreadable,[3]:Symbol.iterator,[4]:Symbol.match,[5]:Symbol.matchAll,[6]:Symbol.replace,[7]:Symbol.search,[8]:Symbol.species,[9]:Symbol.split,[10]:Symbol.toPrimitive,[11]:Symbol.toStringTag,[12]:Symbol.unscopables};var W={t:2,i:void 0,s:!0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0},K={t:2,i:void 0,s:!1,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0},Y={t:4,i:void 0,s:void 0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0},Z={t:3,i:void 0,s:void 0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0},G={t:5,i:void 0,s:void 0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0},J={t:6,i:void 0,s:void 0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0},$={t:7,i:void 0,s:void 0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0},q={t:8,i:void 0,s:void 0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0};function Q(e){return{t:0,i:void 0,s:e,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0}}function X(e){return{t:1,i:void 0,s:b(e),l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0}}function ee(e,r){return f(e.features&8,'Unsupported type "BigInt"'),{t:9,i:void 0,s:""+r,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0}}function C(e){return{t:10,i:e,s:void 0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0}}function re(e,r){return{t:11,i:e,s:r.toISOString(),l:void 0,c:void 0,m:void 0,d:void 0,f:void 0,a:void 0,b:void 0}}function ne(e,r){return{t:12,i:e,s:void 0,l:void 0,c:r.source,m:r.flags,d:void 0,a:void 0,f:void 0,b:void 0}}function M(e,r){let n=new Uint8Array(r),a=n.length,t=new Array(a);for(let o=0;o<a;o++)t[o]=n[o];return{t:28,i:e,s:t,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0}}function D(e,r){let n=R(e,r);return e.markedRefs.has(n)?C(n):M(n,r)}function ae(e,r,n){let a=n.constructor.name;return f(e.features&2048,`Unsupported value type "${a}"`),{t:22,i:r,s:void 0,l:n.length,c:a,m:void 0,d:void 0,a:void 0,f:D(e,n.buffer),b:n.byteOffset}}var Ve=4104;function te(e,r,n){let a=n.constructor.name;return f((e.features&Ve)===Ve,`Unsupported value type "${a}"`),{t:23,i:r,s:void 0,l:n.length,c:a,m:void 0,d:void 0,a:void 0,f:D(e,n.buffer),b:n.byteOffset}}function oe(e,r){return f(e.features&1024,'Unsupported type "symbol"'),f(r in ve,"seroval only supports well-known symbols"),{t:24,i:void 0,s:ve[r],l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0}}function h(e,r){return{t:27,i:e,s:b(Ue(r)),l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0}}function ie(e,r,n){return{t:29,i:r,s:void 0,l:n.byteLength,c:void 0,m:void 0,d:void 0,a:void 0,f:D(e,n.buffer),b:n.byteOffset}}function _(e){return e instanceof EvalError?"EvalError":e instanceof RangeError?"RangeError":e instanceof ReferenceError?"ReferenceError":e instanceof SyntaxError?"SyntaxError":e instanceof TypeError?"TypeError":e instanceof URIError?"URIError":"Error"}function Fe(e){switch(e){case"Error":return Error;case"EvalError":return EvalError;case"RangeError":return RangeError;case"ReferenceError":return ReferenceError;case"SyntaxError":return SyntaxError;case"TypeError":return TypeError;case"URIError":return URIError;default:throw new Error(`Unknown Error constructor "${e}"`)}}function T(e,r){let n,a=_(r);r.name!==a?n={name:r.name}:r.constructor.name!==a&&(n={name:r.constructor.name});let t=Object.getOwnPropertyNames(r);for(let o of t)o!=="name"&&o!=="message"&&(o==="stack"?e.features&16&&(n=n||{},n[o]=r[o]):(n=n||{},n[o]=r[o]));return n}function se(e){let r=Object.getOwnPropertyNames(e);if(r.length){let n={};for(let a of r)n[a]=e[a];return n}}function w(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;switch(e.constructor){case Map:case Set:case Int8Array:case Int16Array:case Int32Array:case Uint8Array:case Uint16Array:case Uint32Array:case Uint8ClampedArray:case Float32Array:case Float64Array:case BigInt64Array:case BigUint64Array:return!1;default:break}return Symbol.iterator in e}function je(e){switch(e){case"Int8Array":return Int8Array;case"Int16Array":return Int16Array;case"Int32Array":return Int32Array;case"Uint8Array":return Uint8Array;case"Uint16Array":return Uint16Array;case"Uint32Array":return Uint32Array;case"Uint8ClampedArray":return Uint8ClampedArray;case"Float32Array":return Float32Array;case"Float64Array":return Float64Array;case"BigInt64Array":return BigInt64Array;case"BigUint64Array":return BigUint64Array;default:throw new Error(`Unknown TypedArray "${e}"`)}}var or=/^[$A-Z_][0-9A-Z_$]*$/i;function Ae(e){let r=e[0];return(r==="$"||r==="_"||r>="A"&&r<="Z"||r>="a"&&r<="z")&&or.test(e)}function de(e,r,n){return f(e.features&8192,'Unsupported type "URL"'),{t:25,i:r,s:b(n.href),l:void 0,c:void 0,m:void 0,d:void 0,f:void 0,a:void 0,b:void 0}}function le(e,r,n){return f(e.features&8192,'Unsupported type "URLSearchParams"'),{t:26,i:r,s:b(n.toString()),l:void 0,c:void 0,m:void 0,d:void 0,f:void 0,a:void 0,b:void 0}}async function xe(e,r,n){return f(e.features&8192,'Unsupported type "Blob"'),{t:30,i:r,s:void 0,l:void 0,c:b(n.type),m:void 0,d:void 0,f:D(e,await n.arrayBuffer()),a:void 0,b:void 0}}async function Me(e,r,n){return f(e.features&8192,'Unsupported type "File"'),{t:31,i:r,s:void 0,l:void 0,c:b(n.type),m:b(n.name),d:void 0,f:D(e,await n.arrayBuffer()),a:void 0,b:n.lastModified}}async function We(e,r){let n=r.length,a=new Array(n),t=new Array(n),o;for(let i=0;i<n;i++)i in r&&(o=r[i],w(o)?t[i]=o:a[i]=await E(e,o));for(let i=0;i<n;i++)i in t&&(a[i]=await E(e,t[i]));return a}async function ir(e,r,n){return{t:15,i:r,s:void 0,l:n.length,c:void 0,m:void 0,d:void 0,a:await We(e,n),f:void 0,b:void 0}}async function sr(e,r,n){f(e.features&32,'Unsupported type "Map"');let a=n.size,t=new Array(a),o=new Array(a),i=new Array(a),d=new Array(a),s=0,u=0;for(let[l,N]of n.entries())w(l)||w(N)?(i[s]=l,d[s]=N,s++):(t[u]=await E(e,l),o[u]=await E(e,N),u++);for(let l=0;l<s;l++)t[u+l]=await E(e,i[l]),o[u+l]=await E(e,d[l]);return{t:14,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:{k:t,v:o,s:a},a:void 0,f:void 0,b:void 0}}async function dr(e,r,n){f(e.features&512,'Unsupported type "Set"');let a=n.size,t=new Array(a),o=new Array(a),i=0,d=0;for(let s of n.keys())w(s)?o[i++]=s:t[d++]=await E(e,s);for(let s=0;s<i;s++)t[d+s]=await E(e,o[s]);return{t:13,i:r,s:void 0,l:a,c:void 0,m:void 0,d:void 0,a:t,f:void 0,b:void 0}}async function L(e,r){let n=Object.keys(r),a=n.length,t=new Array(a),o=new Array(a),i=new Array(a),d=new Array(a),s=0,u=0,l,N;for(let c of n)l=r[c],N=b(c),w(l)?(i[s]=N,d[s]=l,s++):(t[u]=N,o[u]=await E(e,l),u++);for(let c=0;c<s;c++)t[u+c]=i[c],o[u+c]=await E(e,d[c]);return{k:t,v:o,s:a}}async function Ke(e,r,n){f(e.features&1024,'Unsupported type "Iterable"');let a=se(n),t=Array.from(n);return{t:21,i:r,s:void 0,l:t.length,c:void 0,m:void 0,d:a?await L(e,a):void 0,a:await We(e,t),f:void 0,b:void 0}}async function fe(e,r,n){return f(e.features&256,'Unsupported type "Promise"'),n.then(async a=>({t:18,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:await E(e,a),b:void 0}))}async function _e(e,r,n,a){return Symbol.iterator in n?Ke(e,r,n):"then"in n&&typeof n.then=="function"?fe(e,r,n):{t:a?17:16,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:await L(e,n),a:void 0,f:void 0,b:void 0}}async function He(e,r,n){let a=T(e,n),t=a?await L(e,a):void 0;return{t:20,i:r,s:void 0,l:void 0,c:void 0,m:b(n.message),d:t,a:void 0,f:void 0,b:void 0}}async function ue(e,r,n){let a=T(e,n),t=a?await L(e,a):void 0;return{t:19,i:r,s:void 0,l:void 0,c:_(n),m:b(n.message),d:t,a:void 0,f:void 0,b:void 0}}async function lr(e,r,n){f(e.features&8192,'Unsupported type "Headers"');let a={};return n.forEach((t,o)=>{a[o]=t}),{t:32,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:await L(e,a),a:void 0,f:void 0,b:void 0}}async function ur(e,r,n){f(e.features&8192,'Unsupported type "FormData"');let a={};return n.forEach((t,o)=>{a[o]=t}),{t:33,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:await L(e,a),a:void 0,f:void 0,b:void 0}}async function E(e,r){switch(typeof r){case"boolean":return r?W:K;case"undefined":return Y;case"string":return X(r);case"number":switch(r){case 1/0:return J;case-1/0:return $;default:return r!==r?q:Object.is(r,-0)?G:Q(r)}case"bigint":return ee(e,r);case"object":{if(!r)return Z;let n=R(e,r);if(e.markedRefs.has(n))return C(n);if(P(r))return h(n,r);if(Array.isArray(r))return ir(e,n,r);switch(r.constructor){case Date:return re(n,r);case RegExp:return ne(n,r);case Promise:return fe(e,n,r);case ArrayBuffer:return M(n,r);case Int8Array:case Int16Array:case Int32Array:case Uint8Array:case Uint16Array:case Uint32Array:case Uint8ClampedArray:case Float32Array:case Float64Array:return ae(e,n,r);case BigInt64Array:case BigUint64Array:return te(e,n,r);case DataView:return ie(e,n,r);case Map:return sr(e,n,r);case Set:return dr(e,n,r);case Object:return _e(e,n,r,!1);case void 0:return _e(e,n,r,!0);case AggregateError:return e.features&1?He(e,n,r):ue(e,n,r);case Error:case EvalError:case RangeError:case ReferenceError:case SyntaxError:case TypeError:case URIError:return ue(e,n,r);case URL:return de(e,n,r);case URLSearchParams:return le(e,n,r);case Blob:return xe(e,n,r);case File:return Me(e,n,r);case Headers:return lr(e,n,r);case FormData:return ur(e,n,r);default:break}if(r instanceof AggregateError)return e.features&1?He(e,n,r):ue(e,n,r);if(r instanceof Error)return ue(e,n,r);if(r instanceof Promise)return fe(e,n,r);if(Symbol.iterator in r)return Ke(e,n,r);if("then"in r&&typeof r.then=="function")return fe(e,n,r);throw new Error("Unsupported type")}case"symbol":if(P(r)){let n=R(e,r);return e.markedRefs.has(n)?C(n):h(n,r)}return oe(e,r);case"function":{f(P(r),"Cannot serialize function without reference ID.");let n=R(e,r);return e.markedRefs.has(n)?C(n):h(n,r)}default:throw new Error("Unsupported type")}}async function ce(e,r){let n=await E(e,r),a=n.t===16||n.t===21;return[n,H(e,r),a]}function m(e,r,n){return e.markedRefs.has(r)&&e.valueMap.set(r,n),n}function fr(e,r){let n=m(e,r.i,new Array(r.l)),a;for(let t=0,o=r.l;t<o;t++)a=r.a[t],a&&(n[t]=v(e,a));return n}function we(e,r,n){if(r.s===0)return{};for(let a=0;a<r.s;a++)n[A(r.k[a])]=v(e,r.v[a]);return n}function cr(e,r){let n=m(e,r.i,Object.create(null));return we(e,r.d,n),n}function Sr(e,r){let n=m(e,r.i,{});return we(e,r.d,n),n}function mr(e,r){let n=m(e,r.i,new Set);for(let a=0,t=r.l;a<t;a++)n.add(v(e,r.a[a]));return n}function Nr(e,r){let n=m(e,r.i,new Map);for(let a=0,t=r.d.s;a<t;a++)n.set(v(e,r.d.k[a]),v(e,r.d.v[a]));return n}function Ee(e,r,n){if(r.d){let a=we(e,r.d,{});Object.assign(n,a)}return n}function pr(e,r){let n=m(e,r.i,new AggregateError([],A(r.m)));return Ee(e,r,n)}function gr(e,r){let n=Fe(r.c),a=m(e,r.i,new n(A(r.m)));return Ee(e,r,a)}function yr(){let e;return{resolve(r){e(r)},promise:new Promise(r=>{e=r})}}function br(e,r){let n=yr(),a=m(e,r.i,n.promise);return n.resolve(v(e,r.f)),a}function vr(e,r){let n=new Uint8Array(r.s);return m(e,r.i,n.buffer)}function Ar(e,r){let n=je(r.c),a=v(e,r.f);return m(e,r.i,new n(a,r.b,r.l))}function wr(e,r){let n=[],a;for(let o=0,i=r.l;o<i;o++)a=r.a[o],a&&(n[o]=v(e,a));let t=m(e,r.i,{[Symbol.iterator]:()=>n.values()});return Ee(e,r,t)}function Er(e,r){return m(e,r.i,new Date(r.s))}function kr(e,r){return m(e,r.i,new RegExp(r.c,r.m))}function Ir(e,r){return m(e,r.i,new URL(A(r.s)))}function Rr(e,r){return m(e,r.i,new URLSearchParams(A(r.s)))}function zr(e,r){return m(e,r.i,De(A(r.s)))}function Pr(e,r){let n=v(e,r.f);return m(e,r.i,new DataView(n,r.b,r.l))}function Cr(e,r){let n=v(e,r.f);return m(e,r.i,new Blob([n],{type:A(r.c)}))}function hr(e,r){let n=v(e,r.f);return m(e,r.i,new File([n],A(r.m),{type:A(r.c),lastModified:r.b}))}function Br(e,r){let n=m(e,r.i,new Headers);for(let a=0,t=r.d.s;a<t;a++)n.set(A(r.d.k[a]),v(e,r.d.v[a]));return n}function Or(e,r){let n=m(e,r.i,new FormData);for(let a=0,t=r.d.s;a<t;a++)n.set(A(r.d.k[a]),v(e,r.d.v[a]));return n}function v(e,r){switch(r.t){case 0:case 2:return r.s;case 1:return A(r.s);case 4:return;case 3:return null;case 5:return-0;case 6:return 1/0;case 7:return-1/0;case 8:return NaN;case 9:return BigInt(r.s);case 10:return e.valueMap.get(r.i);case 15:return fr(e,r);case 16:return Sr(e,r);case 17:return cr(e,r);case 11:return Er(e,r);case 12:return kr(e,r);case 13:return mr(e,r);case 14:return Nr(e,r);case 28:return vr(e,r);case 23:case 22:return Ar(e,r);case 29:return Pr(e,r);case 20:return pr(e,r);case 19:return gr(e,r);case 21:return wr(e,r);case 18:return br(e,r);case 24:return Le[r.s];case 25:return Ir(e,r);case 26:return Rr(e,r);case 27:return zr(e,r);case 30:return Cr(e,r);case 31:return hr(e,r);case 32:return Br(e,r);case 33:return Or(e,r);default:throw new Error("Unsupported type")}}function Se(e){switch(e.t){case"index":return e.s+"="+e.v;case"set":return e.s+".set("+e.k+","+e.v+")";case"add":return e.s+".add("+e.v+")";case"append":return e.s+".append("+e.k+","+e.v+")";default:return""}}function Ur(e){let r=[],n=e[0],a=n,t;for(let o=1,i=e.length;o<i;o++){if(t=e[o],t.t===a.t)switch(t.t){case"index":t.v===a.v?n={t:"index",s:t.s,k:void 0,v:Se(n)}:(r.push(n),n=t);break;case"set":t.s===a.s?n={t:"set",s:Se(n),k:t.k,v:t.v}:(r.push(n),n=t);break;case"add":t.s===a.s?n={t:"add",s:Se(n),k:void 0,v:t.v}:(r.push(n),n=t);break;case"append":r.push(n),n=t;break;default:break}else r.push(n),n=t;a=t}return r.push(n),r}function Ie(e){if(e.length){let r="",n=Ur(e);for(let a=0,t=n.length;a<t;a++)r+=Se(n[a])+",";return r}}function Ye(e){return Ie(e.assignments)}function Ze(e,r,n){e.assignments.push({t:"index",s:r,k:void 0,v:n})}function Dr(e,r,n){e.assignments.push({t:"add",s:p(e,r),k:void 0,v:n})}function ke(e,r,n,a){e.assignments.push({t:"set",s:p(e,r),k:n,v:a})}function Tr(e,r,n,a){e.assignments.push({t:"append",s:p(e,r),k:n,v:a})}function Re(e,r,n,a){Ze(e,p(e,r)+"["+n+"]",a)}function Ge(e,r,n,a){k(e,r),Ze(e,p(e,r)+"."+n,a)}function y(e,r,n){return e.markedRefs.has(r)?p(e,r)+"="+n:n}function O(e,r){return r.t===10&&e.stack.includes(r.i)}function Je(e,r){let n=r.l,a="",t,o=!1;for(let i=0;i<n;i++)i!==0&&(a+=","),t=r.a[i],t?O(e,t)?(k(e,r.i),Re(e,r.i,i,p(e,t.i)),o=!0):(a+=g(e,t),o=!1):o=!0;return"["+a+(o?",]":"]")}function Lr(e,r){e.stack.push(r.i);let n=Je(e,r);return e.stack.pop(),y(e,r.i,n)}function ze(e,r,n){if(n.s===0)return"{}";let a="";e.stack.push(r);let t,o,i,d,s,u=!1,l=n.k,N=n.v;for(let c=0,ge=n.s;c<ge;c++)t=l[c],o=N[c],i=Number(t),d=i>=0||Ae(t),O(e,o)?(s=p(e,o.i),d&&Number.isNaN(i)?(k(e,r),Ge(e,r,t,s)):(k(e,r),Re(e,r,d?t:'"'+t+'"',s))):(a+=(u?",":"")+(d?t:'"'+t+'"')+":"+g(e,o),u=!0);return e.stack.pop(),"{"+a+"}"}function Vr(e,r,n,a){let t=ze(e,n,r);return t!=="{}"?"Object.assign("+a+","+t+")":a}function Fr(e,r,n){e.stack.push(r);let a=[],t,o,i,d,s,u,l=n.k,N=n.v;for(let c=0,ge=n.s;c<ge;c++)t=e.stack,e.stack=[],o=g(e,N[c]),e.stack=t,i=l[c],d=Number(i),s=e.assignments,e.assignments=a,u=d>=0||Ae(i),u&&Number.isNaN(d)?Ge(e,r,i,o):Re(e,r,u?i:'"'+i+'"',o),e.assignments=s;return e.stack.pop(),Ie(a)}function me(e,r,n,a){if(n)if(e.features&128)a=Vr(e,n,r,a);else{k(e,r);let t=Fr(e,r,n);if(t)return"("+y(e,r,a)+","+t+p(e,r)+")"}return y(e,r,a)}function jr(e,r){return me(e,r.i,r.d,"Object.create(null)")}function xr(e,r){return y(e,r.i,ze(e,r.i,r.d))}function Mr(e,r){let n="new Set",a=r.l;if(a){let t="";e.stack.push(r.i);let o,i=!1;for(let d=0;d<a;d++)o=r.a[d],O(e,o)?(k(e,r.i),Dr(e,r.i,p(e,o.i))):(t+=(i?",":"")+g(e,o),i=!0);e.stack.pop(),t&&(n+="(["+t+"])")}return y(e,r.i,n)}function _r(e,r){let n="new Map";if(r.d.s){let a="";e.stack.push(r.i);let t,o,i,d,s,u=!1;for(let l=0;l<r.d.s;l++)t=r.d.k[l],o=r.d.v[l],O(e,t)?(i=p(e,t.i),k(e,r.i),O(e,o)?(d=p(e,o.i),ke(e,r.i,i,d)):(s=e.stack,e.stack=[],ke(e,r.i,i,g(e,o)),e.stack=s)):O(e,o)?(d=p(e,o.i),k(e,r.i),s=e.stack,e.stack=[],ke(e,r.i,g(e,t),d),e.stack=s):(a+=(u?",[":"[")+g(e,t)+","+g(e,o)+"]",u=!0);e.stack.pop(),a&&(n+="(["+a+"])")}return y(e,r.i,n)}function Hr(e,r){e.stack.push(r.i);let n='new AggregateError([],"'+r.m+'")';return e.stack.pop(),me(e,r.i,r.d,n)}function Wr(e,r){let n="new "+r.c+'("'+r.m+'")';return me(e,r.i,r.d,n)}function Kr(e,r){let n;if(O(e,r.f)){let a=p(e,r.f.i);e.features&4?n="Promise.resolve().then(()=>"+a+")":n="Promise.resolve().then(function(){return "+a+"})"}else{e.stack.push(r.i);let a=g(e,r.f);e.stack.pop(),n="Promise.resolve("+a+")"}return y(e,r.i,n)}function Yr(e,r){let n="new Uint8Array(";if(r.s.length){n+="[";for(let a=0,t=r.s.length;a<t;a++)n+=(a>0?",":"")+r.s[a];n+="]"}return y(e,r.i,n+").buffer")}function Zr(e,r){let n=g(e,r.f)+","+r.b+","+r.l;return y(e,r.i,"new "+r.c+"("+n+")")}function Gr(e,r){let n=e.stack;e.stack=[];let a=Je(e,r);e.stack=n;let t=a;return e.features&2?t+=".values()":t+="[Symbol.iterator]()",e.features&4?t="{[Symbol.iterator]:()=>"+t+"}":e.features&64?t="{[Symbol.iterator](){return "+t+"}}":t="{[Symbol.iterator]:function(){return "+t+"}}",me(e,r.i,r.d,t)}function Jr(e,r){return y(e,r.i,'new Date("'+r.s+'")')}function $r(e,r){return y(e,r.i,"/"+r.c+"/"+r.m)}function qr(e,r){return y(e,r.i,'new URL("'+r.s+'")')}function Qr(e,r){return y(e,r.i,r.s?'new URLSearchParams("'+r.s+'")':"new URLSearchParams")}function Xr(e,r){return y(e,r.i,U+'.get("'+r.s+'")')}function en(e,r){let n=g(e,r.f)+","+r.b+","+r.l;return y(e,r.i,"new DataView("+n+")")}function rn(e,r){let n="["+g(e,r.f)+'],{type:"'+r.c+'"}';return y(e,r.i,"new Blob("+n+")")}function nn(e,r){let n='{type:"'+r.c+'",lastModified:'+r.b+"}",a="["+g(e,r.f)+'],"'+r.m+'",'+n;return y(e,r.i,"new File("+a+")")}function an(e,r){return y(e,r.i,"new Headers("+ze(e,r.i,r.d)+")")}function tn(e,r){e.stack.push(r.i);let n=[],a,t,o,i;for(let d=0;d<r.d.s;d++)a=e.stack,e.stack=[],t=g(e,r.d.v[d]),o=r.d.k[d],e.stack=a,i=e.assignments,e.assignments=n,Tr(e,r.i,'"'+o+'"',t),e.assignments=i;return e.stack.pop(),Ie(n)}function on(e,r){r.d.s&&k(e,r.i);let n=y(e,r.i,"new FormData()");return r.d.s?"("+n+","+tn(e,r)+p(e,r.i)+")":n}function g(e,r){switch(r.t){case 0:return""+r.s;case 1:return'"'+r.s+'"';case 2:return r.s?"!0":"!1";case 4:return"void 0";case 3:return"null";case 5:return"-0";case 6:return"1/0";case 7:return"-1/0";case 8:return"NaN";case 9:return r.s+"n";case 10:return p(e,r.i);case 15:return Lr(e,r);case 16:return xr(e,r);case 17:return jr(e,r);case 11:return Jr(e,r);case 12:return $r(e,r);case 13:return Mr(e,r);case 14:return _r(e,r);case 28:return Yr(e,r);case 23:case 22:return Zr(e,r);case 29:return en(e,r);case 20:return Hr(e,r);case 19:return Wr(e,r);case 21:return Gr(e,r);case 18:return Kr(e,r);case 24:return Te[r.s];case 25:return qr(e,r);case 26:return Qr(e,r);case 27:return Xr(e,r);case 30:return rn(e,r);case 31:return nn(e,r);case 32:return an(e,r);case 33:return on(e,r);default:throw new Error("Unsupported type")}}function Qe(e,r){let n=r.length,a=new Array(n),t=new Array(n),o;for(let i=0;i<n;i++)i in r&&(o=r[i],w(o)?t[i]=o:a[i]=I(e,o));for(let i=0;i<n;i++)i in t&&(a[i]=I(e,t[i]));return a}function sn(e,r,n){return{t:15,i:r,s:void 0,l:n.length,c:void 0,m:void 0,d:void 0,a:Qe(e,n),f:void 0,b:void 0}}function dn(e,r,n){f(e.features&32,'Unsupported type "Map"');let a=n.size,t=new Array(a),o=new Array(a),i=new Array(a),d=new Array(a),s=0,u=0;for(let[l,N]of n.entries())w(l)||w(N)?(i[s]=l,d[s]=N,s++):(t[u]=I(e,l),o[u]=I(e,N),u++);for(let l=0;l<s;l++)t[u+l]=I(e,i[l]),o[u+l]=I(e,d[l]);return{t:14,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:{k:t,v:o,s:a},a:void 0,f:void 0,b:void 0}}function ln(e,r,n){f(e.features&512,'Unsupported type "Set"');let a=n.size,t=new Array(a),o=new Array(a),i=0,d=0;for(let s of n.keys())w(s)?o[i++]=s:t[d++]=I(e,s);for(let s=0;s<i;s++)t[d+s]=I(e,o[s]);return{t:13,i:r,s:void 0,l:a,c:void 0,m:void 0,d:void 0,a:t,f:void 0,b:void 0}}function V(e,r){let n=Object.keys(r),a=n.length,t=new Array(a),o=new Array(a),i=new Array(a),d=new Array(a),s=0,u=0,l,N;for(let c of n)l=r[c],N=b(c),w(l)?(i[s]=N,d[s]=l,s++):(t[u]=N,o[u]=I(e,l),u++);for(let c=0;c<s;c++)t[u+c]=i[c],o[u+c]=I(e,d[c]);return{k:t,v:o,s:a}}function Xe(e,r,n){f(e.features&1024,'Unsupported type "Iterable"');let a=se(n),t=Array.from(n);return{t:21,i:r,s:void 0,l:t.length,c:void 0,m:void 0,d:a?V(e,a):void 0,a:Qe(e,t),f:void 0,b:void 0}}function $e(e,r,n,a){return Symbol.iterator in n?Xe(e,r,n):{t:a?17:16,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:V(e,n),a:void 0,f:void 0,b:void 0}}function qe(e,r,n){let a=T(e,n),t=a?V(e,a):void 0;return{t:20,i:r,s:void 0,l:void 0,c:void 0,m:b(n.message),d:t,a:void 0,f:void 0,b:void 0}}function Ne(e,r,n){let a=T(e,n),t=a?V(e,a):void 0;return{t:19,i:r,s:void 0,l:void 0,c:_(n),m:b(n.message),d:t,a:void 0,f:void 0,b:void 0}}function un(e,r,n){f(e.features&8192,'Unsupported type "Headers"');let a={};return n.forEach((t,o)=>{a[o]=t}),{t:32,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:V(e,a),a:void 0,f:void 0,b:void 0}}function fn(e,r,n){f(e.features&8192,'Unsupported type "FormData"');let a={};return n.forEach((t,o)=>{a[o]=t}),{t:33,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:V(e,a),a:void 0,f:void 0,b:void 0}}function I(e,r){switch(typeof r){case"boolean":return r?W:K;case"undefined":return Y;case"string":return X(r);case"number":switch(r){case 1/0:return J;case-1/0:return $;default:return r!==r?q:Object.is(r,-0)?G:Q(r)}case"bigint":return ee(e,r);case"object":{if(!r)return Z;let n=R(e,r);if(e.markedRefs.has(n))return C(n);if(P(r))return h(n,r);if(Array.isArray(r))return sn(e,n,r);switch(r.constructor){case Date:return re(n,r);case RegExp:return ne(n,r);case ArrayBuffer:return M(n,r);case Int8Array:case Int16Array:case Int32Array:case Uint8Array:case Uint16Array:case Uint32Array:case Uint8ClampedArray:case Float32Array:case Float64Array:return ae(e,n,r);case BigInt64Array:case BigUint64Array:return te(e,n,r);case DataView:return ie(e,n,r);case Map:return dn(e,n,r);case Set:return ln(e,n,r);case Object:return $e(e,n,r,!1);case void 0:return $e(e,n,r,!0);case AggregateError:return e.features&1?qe(e,n,r):Ne(e,n,r);case Error:case EvalError:case RangeError:case ReferenceError:case SyntaxError:case TypeError:case URIError:return Ne(e,n,r);case URL:return de(e,n,r);case URLSearchParams:return le(e,n,r);case Headers:return un(e,n,r);case FormData:return fn(e,n,r);default:break}if(r instanceof AggregateError)return e.features&1?qe(e,n,r):Ne(e,n,r);if(r instanceof Error)return Ne(e,n,r);if(Symbol.iterator in r)return Xe(e,n,r);throw new Error("Unsupported type")}case"symbol":if(P(r)){let n=R(e,r);return e.markedRefs.has(n)?C(n):h(n,r)}return oe(e,r);case"function":{f(P(r),"Cannot serialize function without reference ID.");let n=R(e,r);return e.markedRefs.has(n)?C(n):h(n,r)}default:throw new Error("Unsupported type")}}function pe(e,r){let n=I(e,r),a=n.t===16||n.t===21;return[n,H(e,r),a]}function Pe(e,r,n,a){if(e.vars.length){let t=Ye(e),o=a;if(t){let d=p(e,r);o=a+","+t+d,a.startsWith(d+"=")||(o=d+"="+o)}let i=e.vars.length>1?e.vars.join(","):e.vars[0];return e.features&4?(i=e.vars.length>1||e.vars.length===0?"("+i+")":i,"("+i+"=>("+o+"))()"):"(function("+i+"){return "+o+"})()"}return n?"("+a+")":a}function cn(e,r){let n=F(r),[a,t,o]=pe(n,e),i=j(n),d=g(i,a);return Pe(i,t,o,d)}async function Eo(e,r){let n=F(r),[a,t,o]=await ce(n,e),i=j(n),d=g(i,a);return Pe(i,t,o,d)}function ko(e){return(0,eval)(e)}function Io(e,r){let n=F(r),[a,t,o]=pe(n,e);return{t:a,r:t,i:o,f:n.features,m:Array.from(n.markedRefs)}}async function Ro(e,r){let n=F(r),[a,t,o]=await ce(n,e);return{t:a,r:t,i:o,f:n.features,m:Array.from(n.markedRefs)}}function zo(e){let r=j({features:e.f,markedRefs:e.m}),n=g(r,e.t);return Pe(r,e.r,e.i,n)}function Po(e){let r=j({features:e.f,markedRefs:e.m});return v(r,e.t)}var Co=cn;export{z as Feature,zo as compileJSON,ar as createReference,Co as default,ko as deserialize,Po as fromJSON,cn as serialize,Eo as serializeAsync,Io as toJSON,Ro as toJSONAsync};
1
+ var P=(m=>(m[m.AggregateError=1]="AggregateError",m[m.ArrayPrototypeValues=2]="ArrayPrototypeValues",m[m.ArrowFunction=4]="ArrowFunction",m[m.BigInt=8]="BigInt",m[m.ErrorPrototypeStack=16]="ErrorPrototypeStack",m[m.Map=32]="Map",m[m.MethodShorthand=64]="MethodShorthand",m[m.ObjectAssign=128]="ObjectAssign",m[m.Promise=256]="Promise",m[m.Set=512]="Set",m[m.Symbol=1024]="Symbol",m[m.TypedArray=2048]="TypedArray",m[m.BigIntTypedArray=4096]="BigIntTypedArray",m[m.WebAPI=8192]="WebAPI",m))(P||{});var Oe="hjkmoquxzABCDEFGHIJKLNPQRTUVWXYZ$_",Ie=Oe.length,Be="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$_",Pe=Be.length;function ce(e){let r=e%Ie,n=Oe[r];for(e=(e-r)/Ie;e>0;)r=e%Pe,n+=Be[r],e=(e-r)/Pe;return n}var dr={disabledFeatures:0};function M(e={}){let r=Object.assign({},dr,e);return{markedRefs:new Set,refs:new Map,features:16383^r.disabledFeatures}}function _(e){return{stack:[],vars:[],assignments:[],validRefs:[],refSize:0,features:e.features,markedRefs:new Set(e.markedRefs),valueMap:new Map,flags:[]}}function z(e,r){e.markedRefs.add(r)}function N(e,r){let n=e.validRefs[r];n==null&&(n=e.refSize++,e.validRefs[r]=n);let t=e.vars[n];return t==null&&(t=ce(n),e.vars[n]=t),t}function K(e,r){let n=e.refs.get(r);return n==null?e.refs.size:n}function I(e,r){let n=e.refs.get(r);if(n==null){let t=e.refs.size;return e.refs.set(r,t),t}return z(e,n),n}function y(e,r){if(!e)throw r}function lr(e){switch(e){case'"':return'\\"';case"\\":return"\\\\";case`
2
+ `:return"\\n";case"\r":return"\\r";case"\b":return"\\b";case" ":return"\\t";case"\f":return"\\f";case"<":return"\\x3C";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:return}}function v(e){let r="",n=0,t;for(let o=0,a=e.length;o<a;o++)t=lr(e[o]),t&&(r+=e.slice(n,o)+t,n=o+1);return n===0?r=e:r+=e.slice(n),r}function C(e){return e.replace(/\\"/g,'"').replace(/\\\\/g,"\\").replace(/\\n/g,`
3
+ `).replace(/\\r/g,"\r").replace(/\\b/g,"\b").replace(/\\t/g," ").replace(/\\f/g,"\f").replace(/\\x3C/g,"<").replace(/\\u2028/g,"\u2028").replace(/\\u2029/g,"\u2029")}var{toString:ur}=Object.prototype,S=class extends Error{constructor(r){super('Unsupported type "'+ur.call(r)+'"')}};function O(e){return{t:2,i:void 0,s:e,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0,o:void 0}}var G=O(2),J=O(3),Z=O(1),$=O(0),he=O(4),Te=O(5),De=O(6),Ue=O(7);function je(e){switch(e.s){case 2:return"!0";case 3:return"!1";case 1:return"void 0";case 0:return"null";case 4:return"-0";case 5:return"1/0";case 6:return"-1/0";case 7:return"NaN";default:throw new Error("invariant")}}function Fe(e){switch(e.s){case 2:return!0;case 3:return!1;case 1:return;case 0:return null;case 4:return-0;case 5:return 1/0;case 6:return-1/0;case 7:return NaN;default:throw new Error("invariant")}}var me=new Map,D=new Map;function fr(e,r){return me.set(r,e),D.set(e,r),r}function B(e){return me.has(e)}function cr(e){return D.has(e)}function xe(e){return y(B(e),new Error("Missing reference id")),me.get(e)}function Le(e){return y(cr(e),new Error("Missing reference for id:"+e)),D.get(e)}var j="__SEROVAL__";typeof globalThis!==void 0?Object.defineProperty(globalThis,j,{value:D,configurable:!0,writable:!1,enumerable:!1}):typeof window!==void 0?Object.defineProperty(window,j,{value:D,configurable:!0,writable:!1,enumerable:!1}):typeof self!==void 0?Object.defineProperty(self,j,{value:D,configurable:!0,writable:!1,enumerable:!1}):typeof global!==void 0&&Object.defineProperty(global,j,{value:D,configurable:!0,writable:!1,enumerable:!1});var Ve={[0]:"Symbol.asyncIterator",[1]:"Symbol.hasInstance",[2]:"Symbol.isConcatSpreadable",[3]:"Symbol.iterator",[4]:"Symbol.match",[5]:"Symbol.matchAll",[6]:"Symbol.replace",[7]:"Symbol.search",[8]:"Symbol.species",[9]:"Symbol.split",[10]:"Symbol.toPrimitive",[11]:"Symbol.toStringTag",[12]:"Symbol.unscopables"},Se={[Symbol.asyncIterator]:0,[Symbol.hasInstance]:1,[Symbol.isConcatSpreadable]:2,[Symbol.iterator]:3,[Symbol.match]:4,[Symbol.matchAll]:5,[Symbol.replace]:6,[Symbol.search]:7,[Symbol.species]:8,[Symbol.split]:9,[Symbol.toPrimitive]:10,[Symbol.toStringTag]:11,[Symbol.unscopables]:12},Me={[0]:Symbol.asyncIterator,[1]:Symbol.hasInstance,[2]:Symbol.isConcatSpreadable,[3]:Symbol.iterator,[4]:Symbol.match,[5]:Symbol.matchAll,[6]:Symbol.replace,[7]:Symbol.search,[8]:Symbol.species,[9]:Symbol.split,[10]:Symbol.toPrimitive,[11]:Symbol.toStringTag,[12]:Symbol.unscopables};function q(e){switch(e){case 1/0:return Te;case-1/0:return De;default:return e!==e?Ue:Object.is(e,-0)?he:{t:0,i:void 0,s:e,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0,o:void 0}}}function Q(e){return{t:1,i:void 0,s:v(e),l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0,o:void 0}}function X(e,r){return y(e.features&8,new S(r)),{t:3,i:void 0,s:""+r,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0,o:void 0}}function U(e){return{t:4,i:e,s:void 0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0,o:void 0}}function ee(e,r){return{t:5,i:e,s:r.toISOString(),l:void 0,c:void 0,m:void 0,d:void 0,f:void 0,a:void 0,b:void 0,o:void 0}}function re(e,r){return{t:6,i:e,s:void 0,l:void 0,c:r.source,m:r.flags,d:void 0,a:void 0,f:void 0,b:void 0,o:void 0}}function H(e,r){let n=new Uint8Array(r),t=n.length,o=new Array(t);for(let a=0;a<t;a++)o[a]=n[a];return{t:21,i:e,s:o,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0,o:void 0}}function F(e,r){let n=I(e,r);return e.markedRefs.has(n)?U(n):H(n,r)}function ne(e,r,n){return y(e.features&2048,new S(n)),{t:15,i:r,s:void 0,l:n.length,c:n.constructor.name,m:void 0,d:void 0,a:void 0,f:F(e,n.buffer),b:n.byteOffset,o:void 0}}var _e=4104;function te(e,r,n){return y((e.features&_e)===_e,new S(n)),{t:16,i:r,s:void 0,l:n.length,c:n.constructor.name,m:void 0,d:void 0,a:void 0,f:F(e,n.buffer),b:n.byteOffset,o:void 0}}function mr(e,r,n){return y(e.features&1024,new S(n)),y(n in Se,new Error("Only well-known symbols are supported.")),{t:17,i:r,s:Se[n],l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0,o:void 0}}function x(e,r){return{t:20,i:e,s:v(xe(r)),l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0,b:void 0,o:void 0}}function oe(e,r,n){return{t:22,i:r,s:void 0,l:n.byteLength,c:void 0,m:void 0,d:void 0,a:void 0,f:F(e,n.buffer),b:n.byteOffset,o:void 0}}function ae(e,r){let n=I(e,r);return e.markedRefs.has(n)?U(n):B(r)?x(n,r):mr(e,n,r)}function ie(e,r){y(B(r),new Error("Cannot serialize function without reference ID."));let n=I(e,r);return e.markedRefs.has(n)?U(n):x(n,r)}function W(e){return e instanceof EvalError?"EvalError":e instanceof RangeError?"RangeError":e instanceof ReferenceError?"ReferenceError":e instanceof SyntaxError?"SyntaxError":e instanceof TypeError?"TypeError":e instanceof URIError?"URIError":"Error"}function He(e){switch(e){case"Error":return Error;case"EvalError":return EvalError;case"RangeError":return RangeError;case"ReferenceError":return ReferenceError;case"SyntaxError":return SyntaxError;case"TypeError":return TypeError;case"URIError":return URIError;default:throw new Error(`Unknown Error constructor "${e}"`)}}function L(e,r){let n,t=W(r);r.name!==t?n={name:r.name}:r.constructor.name!==t&&(n={name:r.constructor.name});let o=Object.getOwnPropertyNames(r);for(let a of o)a!=="name"&&a!=="message"&&(a==="stack"?e.features&16&&(n=n||{},n[a]=r[a]):(n=n||{},n[a]=r[a]));return n}function k(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;switch(e.constructor){case Map:case Set:case Int8Array:case Int16Array:case Int32Array:case Uint8Array:case Uint16Array:case Uint32Array:case Uint8ClampedArray:case Float32Array:case Float64Array:case BigInt64Array:case BigUint64Array:return!1;default:break}return Symbol.iterator in e}function We(e){switch(e){case"Int8Array":return Int8Array;case"Int16Array":return Int16Array;case"Int32Array":return Int32Array;case"Uint8Array":return Uint8Array;case"Uint16Array":return Uint16Array;case"Uint32Array":return Uint32Array;case"Uint8ClampedArray":return Uint8ClampedArray;case"Float32Array":return Float32Array;case"Float64Array":return Float64Array;case"BigInt64Array":return BigInt64Array;case"BigUint64Array":return BigUint64Array;default:throw new Error(`Unknown TypedArray "${e}"`)}}var Sr=/^[$A-Z_][0-9A-Z_$]*$/i;function ye(e){let r=e[0];return(r==="$"||r==="_"||r>="A"&&r<="Z"||r>="a"&&r<="z")&&Sr.test(e)}function V(e){return Object.isFrozen(e)?3:Object.isSealed(e)?2:Object.isExtensible(e)?0:1}function se(e,r,n){return y(e.features&8192,new S(n)),{t:18,i:r,s:v(n.href),l:void 0,c:void 0,m:void 0,d:void 0,f:void 0,a:void 0,b:void 0,o:void 0}}function de(e,r,n){return y(e.features&8192,new S(n)),{t:19,i:r,s:v(n.toString()),l:void 0,c:void 0,m:void 0,d:void 0,f:void 0,a:void 0,b:void 0,o:void 0}}async function Ye(e,r,n){return y(e.features&8192,new S(n)),{t:23,i:r,s:void 0,l:void 0,c:v(n.type),m:void 0,d:void 0,f:F(e,await n.arrayBuffer()),a:void 0,b:void 0,o:void 0}}async function Ge(e,r,n){return y(e.features&8192,new S(n)),{t:24,i:r,s:void 0,l:void 0,c:v(n.type),m:v(n.name),d:void 0,f:F(e,await n.arrayBuffer()),a:void 0,b:n.lastModified,o:void 0}}function yr(e,r){let n=r.length,t=new Array(n),o=new Array(n),a;for(let i=0;i<n;i++)i in r&&(a=r[i],k(a)?o[i]=a:t[i]=w(e,a));for(let i=0;i<n;i++)i in o&&(t[i]=w(e,o[i]));return t}function Ze(e,r,n){return{t:9,i:r,s:void 0,l:n.length,c:void 0,m:void 0,d:void 0,a:yr(e,n),f:void 0,b:void 0,o:V(n)}}function gr(e,r,n){y(e.features&32,new S(n));let t=n.size,o=new Array(t),a=new Array(t),i=new Array(t),u=new Array(t),s=0,d=0;for(let[f,c]of n.entries())k(f)||k(c)?(i[s]=f,u[s]=c,s++):(o[d]=w(e,f),a[d]=w(e,c),d++);for(let f=0;f<s;f++)o[d+f]=w(e,i[f]),a[d+f]=w(e,u[f]);return{t:8,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:{k:o,v:a,s:t},a:void 0,f:void 0,b:void 0,o:void 0}}function pr(e,r,n){y(e.features&512,new S(n));let t=n.size,o=new Array(t),a=new Array(t),i=0,u=0;for(let s of n.keys())k(s)?a[i++]=s:o[u++]=w(e,s);for(let s=0;s<i;s++)o[u+s]=w(e,a[s]);return{t:7,i:r,s:void 0,l:t,c:void 0,m:void 0,d:void 0,a:o,f:void 0,b:void 0,o:void 0}}function Ne(e,r){let n=Object.keys(r),t=n.length,o=new Array(t),a=new Array(t),i=new Array(t),u=new Array(t),s=0,d=0,f,c;for(let l of n)f=r[l],c=v(l),k(f)?(i[s]=c,u[s]=f,s++):(o[d]=c,a[d]=w(e,f),d++);for(let l=0;l<s;l++)o[d+l]=i[l],a[d+l]=w(e,u[l]);if(e.features&1024&&Symbol.iterator in r){o[t]=0;let l=Array.from(r),R=I(e,l);a[t]=Ze(e,R,l),t++}return{k:o,v:a,s:t}}function $e(e,r){let n=Object.keys(r),t=n.length,o=new Array(t),a=new Array(t),i=new Array(t),u=new Array(t),s=0,d=0,f,c;for(let l of n)f=r[l],c=v(l),k(f)?(i[s]=c,u[s]=f,s++):(o[d]=c,a[d]=w(e,f),d++);for(let l=0;l<s;l++)o[d+l]=i[l],a[d+l]=w(e,u[l]);return{k:o,v:a,s:t}}function ge(e,r,n,t){return{t:t?11:10,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:Ne(e,n),a:void 0,f:void 0,b:void 0,o:V(n)}}function Je(e,r,n){let t=L(e,n),o=t?Ne(e,t):void 0;return{t:14,i:r,s:void 0,l:void 0,c:void 0,m:v(n.message),d:o,a:void 0,f:void 0,b:void 0,o:void 0}}function le(e,r,n){let t=L(e,n),o=t?Ne(e,t):void 0;return{t:13,i:r,s:void 0,l:void 0,c:W(n),m:v(n.message),d:o,a:void 0,f:void 0,b:void 0,o:void 0}}function Nr(e,r,n){y(e.features&8192,new S(n));let t={};return n.forEach((o,a)=>{t[a]=o}),{t:25,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:$e(e,t),a:void 0,f:void 0,b:void 0,o:void 0}}function br(e,r,n){y(e.features&8192,new S(n));let t={};return n.forEach((o,a)=>{t[a]=o}),{t:26,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:$e(e,t),a:void 0,f:void 0,b:void 0,o:void 0}}function vr(e,r,n){return{t:27,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:w(e,n.valueOf()),b:void 0,o:void 0}}function Ar(e,r){if(!r)return $;let n=I(e,r);if(e.markedRefs.has(n))return U(n);if(B(r))return x(n,r);if(Array.isArray(r))return Ze(e,n,r);switch(r.constructor){case Number:case Boolean:case String:case BigInt:case Function:case Symbol:return vr(e,n,r);case Date:return ee(n,r);case RegExp:return re(n,r);case ArrayBuffer:return H(n,r);case Int8Array:case Int16Array:case Int32Array:case Uint8Array:case Uint16Array:case Uint32Array:case Uint8ClampedArray:case Float32Array:case Float64Array:return ne(e,n,r);case BigInt64Array:case BigUint64Array:return te(e,n,r);case DataView:return oe(e,n,r);case Map:return gr(e,n,r);case Set:return pr(e,n,r);case Object:return ge(e,n,r,!1);case void 0:return ge(e,n,r,!0);case AggregateError:return e.features&1?Je(e,n,r):le(e,n,r);case Error:case EvalError:case RangeError:case ReferenceError:case SyntaxError:case TypeError:case URIError:return le(e,n,r);case URL:return se(e,n,r);case URLSearchParams:return de(e,n,r);case Headers:return Nr(e,n,r);case FormData:return br(e,n,r);default:break}if(r instanceof AggregateError)return e.features&1?Je(e,n,r):le(e,n,r);if(r instanceof Error)return le(e,n,r);if(Symbol.iterator in r)return ge(e,n,r,!!r.constructor);throw new S(r)}function w(e,r){switch(typeof r){case"boolean":return r?G:J;case"undefined":return Z;case"string":return Q(r);case"number":return q(r);case"bigint":return X(e,r);case"object":return Ar(e,r);case"symbol":return ae(e,r);case"function":return ie(e,r);default:throw new S(r)}}async function wr(e,r){let n=r.length,t=new Array(n),o=new Array(n),a;for(let i=0;i<n;i++)i in r&&(a=r[i],k(a)?o[i]=a:t[i]=await A(e,a));for(let i=0;i<n;i++)i in o&&(t[i]=await A(e,o[i]));return t}async function Xe(e,r,n){return{t:9,i:r,s:void 0,l:n.length,c:void 0,m:void 0,d:void 0,a:await wr(e,n),f:void 0,b:void 0,o:V(n)}}async function Er(e,r,n){y(e.features&32,new S(n));let t=n.size,o=new Array(t),a=new Array(t),i=new Array(t),u=new Array(t),s=0,d=0;for(let[f,c]of n.entries())k(f)||k(c)?(i[s]=f,u[s]=c,s++):(o[d]=await A(e,f),a[d]=await A(e,c),d++);for(let f=0;f<s;f++)o[d+f]=await A(e,i[f]),a[d+f]=await A(e,u[f]);return{t:8,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:{k:o,v:a,s:t},a:void 0,f:void 0,b:void 0,o:void 0}}async function kr(e,r,n){y(e.features&512,new S(n));let t=n.size,o=new Array(t),a=new Array(t),i=0,u=0;for(let s of n.keys())k(s)?a[i++]=s:o[u++]=await A(e,s);for(let s=0;s<i;s++)o[u+s]=await A(e,a[s]);return{t:7,i:r,s:void 0,l:t,c:void 0,m:void 0,d:void 0,a:o,f:void 0,b:void 0,o:void 0}}async function ve(e,r){let n=Object.keys(r),t=n.length,o=new Array(t),a=new Array(t),i=new Array(t),u=new Array(t),s=0,d=0,f,c;for(let l of n)f=r[l],c=v(l),k(f)?(i[s]=c,u[s]=f,s++):(o[d]=c,a[d]=await A(e,f),d++);for(let l=0;l<s;l++)o[d+l]=i[l],a[d+l]=await A(e,u[l]);if(e.features&1024&&Symbol.iterator in r){o[t]=0;let l=Array.from(r);a[t]=await Xe(e,I(e,l),l),t++}return{k:o,v:a,s:t}}async function er(e,r){let n=Object.keys(r),t=n.length,o=new Array(t),a=new Array(t),i=new Array(t),u=new Array(t),s=0,d=0,f,c;for(let l of n)f=r[l],c=v(l),k(f)?(i[s]=c,u[s]=f,s++):(o[d]=c,a[d]=await A(e,f),d++);for(let l=0;l<s;l++)o[d+l]=i[l],a[d+l]=await A(e,u[l]);return{k:o,v:a,s:t}}async function qe(e,r,n){return y(e.features&256,new S(n)),{t:12,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:await A(e,await n),b:void 0,o:void 0}}async function be(e,r,n,t){return{t:t?11:10,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:await ve(e,n),a:void 0,f:void 0,b:void 0,o:V(n)}}async function Qe(e,r,n){let t=L(e,n),o=t?await ve(e,t):void 0;return{t:14,i:r,s:void 0,l:void 0,c:void 0,m:v(n.message),d:o,a:void 0,f:void 0,b:void 0,o:void 0}}async function ue(e,r,n){let t=L(e,n),o=t?await ve(e,t):void 0;return{t:13,i:r,s:void 0,l:void 0,c:W(n),m:v(n.message),d:o,a:void 0,f:void 0,b:void 0,o:void 0}}async function Rr(e,r,n){y(e.features&8192,new S(n));let t={};return n.forEach((o,a)=>{t[a]=o}),{t:25,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:await er(e,t),a:void 0,f:void 0,b:void 0,o:void 0}}async function Cr(e,r,n){y(e.features&8192,new S(n));let t={};return n.forEach((o,a)=>{t[a]=o}),{t:26,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:await er(e,t),a:void 0,f:void 0,b:void 0,o:void 0}}async function zr(e,r,n){return{t:27,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:await A(e,n.valueOf()),b:void 0,o:void 0}}async function Ir(e,r){if(!r)return $;let n=I(e,r);if(e.markedRefs.has(n))return U(n);if(B(r))return x(n,r);if(Array.isArray(r))return Xe(e,n,r);switch(r.constructor){case Number:case Boolean:case String:case BigInt:case Function:case Symbol:return zr(e,n,r);case Date:return ee(n,r);case RegExp:return re(n,r);case Promise:return qe(e,n,r);case ArrayBuffer:return H(n,r);case Int8Array:case Int16Array:case Int32Array:case Uint8Array:case Uint16Array:case Uint32Array:case Uint8ClampedArray:case Float32Array:case Float64Array:return ne(e,n,r);case BigInt64Array:case BigUint64Array:return te(e,n,r);case DataView:return oe(e,n,r);case Map:return Er(e,n,r);case Set:return kr(e,n,r);case Object:return be(e,n,r,!1);case void 0:return be(e,n,r,!0);case AggregateError:return e.features&1?Qe(e,n,r):ue(e,n,r);case Error:case EvalError:case RangeError:case ReferenceError:case SyntaxError:case TypeError:case URIError:return ue(e,n,r);case URL:return se(e,n,r);case URLSearchParams:return de(e,n,r);case Blob:return Ye(e,n,r);case File:return Ge(e,n,r);case Headers:return Rr(e,n,r);case FormData:return Cr(e,n,r);default:break}if(r instanceof AggregateError)return e.features&1?Qe(e,n,r):ue(e,n,r);if(r instanceof Error)return ue(e,n,r);if(r instanceof Promise)return qe(e,n,r);if(Symbol.iterator in r)return be(e,n,r,!!r.constructor);throw new S(r)}async function A(e,r){switch(typeof r){case"boolean":return r?G:J;case"undefined":return Z;case"string":return Q(r);case"number":return q(r);case"bigint":return X(e,r);case"object":return Ir(e,r);case"symbol":return ae(e,r);case"function":return ie(e,r);default:throw new S(r)}}function rr(e,r){switch(r){case 3:return Object.freeze(e);case 1:return Object.preventExtensions(e);case 2:return Object.seal(e);default:return e}}function b(e,r,n){return e.markedRefs.has(r)&&e.valueMap.set(r,n),n}function Pr(e,r){let n=r.l,t=b(e,r.i,new Array(n)),o;for(let a=0;a<n;a++)o=r.a[a],o&&(t[a]=E(e,o));return rr(t,r.o),t}function nr(e,r,n){let t=r.s;if(t){let o,a,i=r.k,u=r.v;for(let s=0;s<t;s++)switch(o=i[s],a=E(e,u[s]),o){case 0:{let d=a;n[Symbol.iterator]=()=>d.values()}break;default:n[C(o)]=a;break}}return n}function Or(e,r){let n=b(e,r.i,r.t===10?{}:Object.create(null));return nr(e,r.d,n),rr(n,r.o),n}function Br(e,r){let n=b(e,r.i,new Set),t=r.a;for(let o=0,a=r.l;o<a;o++)n.add(E(e,t[o]));return n}function hr(e,r){let n=b(e,r.i,new Map),t=r.d.k,o=r.d.v;for(let a=0,i=r.d.s;a<i;a++)n.set(E(e,t[a]),E(e,o[a]));return n}function tr(e,r,n){if(r.d){let t=nr(e,r.d,{});Object.assign(n,t)}return n}function Tr(e,r){let n=b(e,r.i,new AggregateError([],C(r.m)));return tr(e,r,n)}function Dr(e,r){let n=He(r.c),t=b(e,r.i,new n(C(r.m)));return tr(e,r,t)}function Ur(){let e;return{resolve(r){e(r)},promise:new Promise(r=>{e=r})}}async function jr(e,r){let n=Ur(),t=b(e,r.i,n.promise);return n.resolve(E(e,r.f)),t}function Fr(e,r){let n=new Uint8Array(r.s);return b(e,r.i,n.buffer)}function xr(e,r){let n=We(r.c),t=E(e,r.f);return b(e,r.i,new n(t,r.b,r.l))}function Lr(e,r){return b(e,r.i,new Date(r.s))}function Vr(e,r){return b(e,r.i,new RegExp(r.c,r.m))}function Mr(e,r){return b(e,r.i,new URL(C(r.s)))}function _r(e,r){return b(e,r.i,new URLSearchParams(C(r.s)))}function Kr(e,r){return b(e,r.i,Le(C(r.s)))}function Hr(e,r){let n=E(e,r.f);return b(e,r.i,new DataView(n,r.b,r.l))}function Wr(e,r){let n=E(e,r.f);return b(e,r.i,new Blob([n],{type:C(r.c)}))}function Yr(e,r){let n=E(e,r.f);return b(e,r.i,new File([n],C(r.m),{type:C(r.c),lastModified:r.b}))}function Gr(e,r){let n=b(e,r.i,new Headers),t=r.d.k,o=r.d.v;for(let a=0,i=r.d.s;a<i;a++)n.set(C(t[a]),E(e,o[a]));return n}function Jr(e,r){let n=b(e,r.i,new FormData),t=r.d.k,o=r.d.v;for(let a=0,i=r.d.s;a<i;a++)n.set(C(t[a]),E(e,o[a]));return n}function Zr(e,r){return b(e,r.i,Object(E(e,r.f)))}function E(e,r){switch(r.t){case 2:return Fe(r);case 0:return r.s;case 1:return C(r.s);case 3:return BigInt(r.s);case 4:return e.valueMap.get(r.i);case 9:return Pr(e,r);case 10:case 11:return Or(e,r);case 5:return Lr(e,r);case 6:return Vr(e,r);case 7:return Br(e,r);case 8:return hr(e,r);case 21:return Fr(e,r);case 16:case 15:return xr(e,r);case 22:return Hr(e,r);case 14:return Tr(e,r);case 13:return Dr(e,r);case 12:return jr(e,r);case 17:return Me[r.s];case 18:return Mr(e,r);case 19:return _r(e,r);case 20:return Kr(e,r);case 23:return Wr(e,r);case 24:return Yr(e,r);case 25:return Gr(e,r);case 26:return Jr(e,r);case 27:return Zr(e,r);default:throw new Error("invariant")}}function fe(e){switch(e.t){case"index":return e.s+"="+e.v;case"set":return e.s+".set("+e.k+","+e.v+")";case"add":return e.s+".add("+e.v+")";case"append":return e.s+".append("+e.k+","+e.v+")";default:return""}}var $r={[3]:"Object.freeze",[2]:"Object.seal",[1]:"Object.preventExtensions",[0]:void 0};function qr(e){let r=[],n=e[0],t=n,o;for(let a=1,i=e.length;a<i;a++){if(o=e[a],o.t===t.t)switch(o.t){case"index":o.v===t.v?n={t:"index",s:o.s,k:void 0,v:fe(n)}:(r.push(n),n=o);break;case"set":o.s===t.s?n={t:"set",s:fe(n),k:o.k,v:o.v}:(r.push(n),n=o);break;case"add":o.s===t.s?n={t:"add",s:fe(n),k:void 0,v:o.v}:(r.push(n),n=o);break;case"append":r.push(n),n=o;break;default:break}else r.push(n),n=o;t=o}return r.push(n),r}function Ee(e){if(e.length){let r="",n=qr(e);for(let t=0,o=n.length;t<o;t++)r+=fe(n[t])+",";return r}}function ke(e,r,n){r!==0&&(z(e,n),e.flags.push({type:r,value:N(e,n)}))}function Qr(e){let r="";for(let n=0,t=e.flags.length;n<t;n++){let o=e.flags[n];r+=$r[o.type]+"("+o.value+"),"}return r}function or(e){let r=Ee(e.assignments),n=Qr(e);return r?n?r+n:r:n}function ar(e,r,n){e.assignments.push({t:"index",s:r,k:void 0,v:n})}function Xr(e,r,n){e.assignments.push({t:"add",s:N(e,r),k:void 0,v:n})}function Ae(e,r,n,t){e.assignments.push({t:"set",s:N(e,r),k:n,v:t})}function en(e,r,n,t){e.assignments.push({t:"append",s:N(e,r),k:n,v:t})}function Y(e,r,n,t){ar(e,N(e,r)+"["+n+"]",t)}function we(e,r,n,t){z(e,r),ar(e,N(e,r)+"."+n,t)}function p(e,r,n){return e.markedRefs.has(r)?N(e,r)+"="+n:n}function h(e,r){return r.t===4&&e.stack.includes(r.i)}function rn(e,r){let n=r.i;e.stack.push(n);let t="",o,a=!1,i=r.a;for(let u=0,s=r.l;u<s;u++)u!==0&&(t+=","),o=i[u],o?h(e,o)?(z(e,n),Y(e,n,u,N(e,o.i)),a=!0):(t+=g(e,o),a=!1):a=!0;return e.stack.pop(),ke(e,r.o,r.i),p(e,n,"["+t+(a?",]":"]"))}function ir(e){return e.features&2?".values()":"[Symbol.iterator]()"}function nn(e,r){let n=e.stack;e.stack=[];let t=g(e,r)+ir(e);return e.stack=n,e.features&4?t="[Symbol.iterator]:()=>"+t:e.features&64?t="[Symbol.iterator](){return "+t+"}":t="[Symbol.iterator]:function(){return "+t+"}",t}function Re(e,r,n){let t=n.s;if(t===0)return"{}";let o="";e.stack.push(r);let a,i,u,s,d,f=!1,c=n.k,l=n.v;for(let R=0;R<t;R++)switch(a=c[R],i=l[R],a){case 0:o+=(f?",":"")+nn(e,i),f=!0;break;default:u=Number(a),s=u>=0||ye(a),h(e,i)?(d=N(e,i.i),z(e,r),s&&Number.isNaN(u)?we(e,r,a,d):Y(e,r,s?a:'"'+a+'"',d)):(o+=(f?",":"")+(s?a:'"'+a+'"')+":"+g(e,i),f=!0);break}return e.stack.pop(),"{"+o+"}"}function tn(e,r,n,t){let o=Re(e,n,r);return o!=="{}"?"Object.assign("+t+","+o+")":t}function on(e,r,n){e.stack.push(r);let t=[],o,a,i,u=n.k,s=n.v;for(let d=0,f=n.s;d<f;d++)switch(o=u[d],a=s[d],o){case 0:{let c=e.stack;e.stack=[];let l=g(e,a)+ir(e);e.stack=c,i=e.assignments,e.assignments=t,Y(e,r,"Symbol.iterator",e.features&4?"()=>"+l:"function(){return "+l+"}"),e.assignments=i}break;default:{let c=g(e,a),l=Number(o),R=l>=0||ye(o);h(e,a)?R&&Number.isNaN(l)?we(e,r,o,c):Y(e,r,R?o:'"'+o+'"',c):(i=e.assignments,e.assignments=t,R&&Number.isNaN(l)?we(e,r,o,c):Y(e,r,R?o:'"'+o+'"',c),e.assignments=i)}}return e.stack.pop(),Ee(t)}function Ce(e,r,n,t){if(n)if(e.features&128)t=tn(e,n,r,t);else{z(e,r);let o=on(e,r,n);if(o)return"("+p(e,r,t)+","+o+N(e,r)+")"}return p(e,r,t)}var an="Object.create(null)";function sn(e,r){return ke(e,r.o,r.i),Ce(e,r.i,r.d,an)}function dn(e,r){return ke(e,r.o,r.i),p(e,r.i,Re(e,r.i,r.d))}function ln(e,r){let n="new Set",t=r.l,o=r.i;if(t){let a="",i,u=!1,s=r.a;e.stack.push(o);for(let d=0;d<t;d++)i=s[d],h(e,i)?(z(e,o),Xr(e,o,N(e,i.i))):(a+=(u?",":"")+g(e,i),u=!0);e.stack.pop(),a&&(n+="(["+a+"])")}return p(e,o,n)}function un(e,r){let n="new Map",t=r.d.s,o=r.i;if(t){let a="",i,u,s,d,f,c=!1,l=r.d.k,R=r.d.v;e.stack.push(o);for(let m=0;m<t;m++)i=l[m],u=R[m],h(e,i)?(s=N(e,o),z(e,o),h(e,u)?(d=N(e,u.i),Ae(e,o,s,d)):(f=e.stack,e.stack=[],Ae(e,o,s,g(e,u)),e.stack=f)):h(e,u)?(d=N(e,u.i),z(e,o),f=e.stack,e.stack=[],Ae(e,o,g(e,i),d),e.stack=f):(a+=(c?",[":"[")+g(e,i)+","+g(e,u)+"]",c=!0);e.stack.pop(),a&&(n+="(["+a+"])")}return p(e,o,n)}function fn(e,r){let n=r.i;e.stack.push(n);let t='new AggregateError([],"'+r.m+'")';return e.stack.pop(),Ce(e,n,r.d,t)}function cn(e,r){return Ce(e,r.i,r.d,"new "+r.c+'("'+r.m+'")')}function mn(e,r){let n,t=r.f,o=r.i;if(h(e,t)){let a=N(e,t.i);e.features&4?n="Promise.resolve().then(()=>"+a+")":n="Promise.resolve().then(function(){return "+a+"})"}else{e.stack.push(o);let a=g(e,t);e.stack.pop(),n="Promise.resolve("+a+")"}return p(e,o,n)}function Sn(e,r){let n="new Uint8Array(",t=r.s,o=t.length;if(o){n+="[";for(let a=0;a<o;a++)n+=(a>0?",":"")+t[a];n+="]"}return p(e,r.i,n+").buffer")}function yn(e,r){return p(e,r.i,"new "+r.c+"("+g(e,r.f)+","+r.b+","+r.l+")")}function gn(e,r){return p(e,r.i,'new Date("'+r.s+'")')}function pn(e,r){return p(e,r.i,"/"+r.c+"/"+r.m)}function Nn(e,r){return p(e,r.i,'new URL("'+r.s+'")')}function bn(e,r){return p(e,r.i,r.s?'new URLSearchParams("'+r.s+'")':"new URLSearchParams")}function vn(e,r){return p(e,r.i,j+'.get("'+r.s+'")')}function An(e,r){return p(e,r.i,"new DataView("+g(e,r.f)+","+r.b+","+r.l+")")}function wn(e,r){return p(e,r.i,"new Blob(["+g(e,r.f)+'],{type:"'+r.c+'"})')}function En(e,r){return p(e,r.i,"new File(["+g(e,r.f)+'],"'+r.m+'",{type:"'+r.c+'",lastModified:'+r.b+"})")}function kn(e,r){return p(e,r.i,"new Headers("+Re(e,r.i,r.d)+")")}function Rn(e,r){let n,t,o=r.d.k,a=r.d.v,i=r.i,u=[],s;e.stack.push(i);for(let d=0,f=r.d.s;d<f;d++)t=o[d],n=g(e,a[d]),s=e.assignments,e.assignments=u,en(e,i,'"'+t+'"',n),e.assignments=s;return e.stack.pop(),Ee(u)}function Cn(e,r){let n=r.d.s,t=r.i;n&&z(e,t);let o=p(e,t,"new FormData()");if(n){let a=Rn(e,r);return"("+o+","+(a==null?"":a)+N(e,t)+")"}return o}function zn(e,r){return p(e,r.i,"Object("+g(e,r.f)+")")}function In(e,r){return p(e,r.i,Ve[r.s])}function g(e,r){switch(r.t){case 0:return""+r.s;case 1:return'"'+r.s+'"';case 2:return je(r);case 3:return r.s+"n";case 4:return N(e,r.i);case 9:return rn(e,r);case 10:return dn(e,r);case 11:return sn(e,r);case 5:return gn(e,r);case 6:return pn(e,r);case 7:return ln(e,r);case 8:return un(e,r);case 21:return Sn(e,r);case 16:case 15:return yn(e,r);case 22:return An(e,r);case 14:return fn(e,r);case 13:return cn(e,r);case 12:return mn(e,r);case 17:return In(e,r);case 18:return Nn(e,r);case 19:return bn(e,r);case 20:return vn(e,r);case 23:return wn(e,r);case 24:return En(e,r);case 25:return kn(e,r);case 26:return Cn(e,r);case 27:return zn(e,r);default:throw new Error("invariant")}}function ze(e,r,n,t){if(e.vars.length){let o=or(e),a=t;if(o){let u=N(e,r);a=t+","+o+u,t.startsWith(u+"=")||(a=u+"="+a)}let i=e.vars.length>1?e.vars.join(","):e.vars[0];return e.features&4?(i=e.vars.length>1||e.vars.length===0?"("+i+")":i,"("+i+"=>("+a+"))()"):"(function("+i+"){return "+a+"})()"}return n?"("+t+")":t}function Pn(e,r){let n=M(r),t=w(n,e),o=_(n),a=g(o,t);return ze(o,K(n,e),t.t===10,a)}async function to(e,r){let n=M(r),t=await A(n,e),o=_(n),a=g(o,t);return ze(o,K(n,e),t.t===10,a)}function oo(e){return(0,eval)(e)}function ao(e,r){let n=M(r);return{t:w(n,e),r:K(n,e),f:n.features,m:Array.from(n.markedRefs)}}async function io(e,r){let n=M(r);return{t:await A(n,e),r:K(n,e),f:n.features,m:Array.from(n.markedRefs)}}function so(e){let r=_({features:e.f,markedRefs:e.m}),n=g(r,e.t);return ze(r,e.r,e.t.i===10,n)}function lo(e){let r=_({features:e.f,markedRefs:e.m});return E(r,e.t)}var uo=Pn;export{P as Feature,so as compileJSON,fr as createReference,uo as default,oo as deserialize,lo as fromJSON,Pn as serialize,to as serializeAsync,ao as toJSON,io as toJSONAsync};
@@ -1 +1 @@
1
- export default function assert(cond: unknown, error: string): asserts cond;
1
+ export default function assert(cond: unknown, error: Error): asserts cond;
@@ -1,3 +1,4 @@
1
+ import type { SerovalObjectFlags } from './tree/types';
1
2
  interface IndexAssignment {
2
3
  t: 'index';
3
4
  s: string;
@@ -28,15 +29,20 @@ export interface ParserContext {
28
29
  markedRefs: Set<number>;
29
30
  features: number;
30
31
  }
32
+ export interface FlaggedObject {
33
+ type: SerovalObjectFlags;
34
+ value: string;
35
+ }
31
36
  export interface SerializationContext {
32
37
  stack: number[];
33
- validRefs: number[];
38
+ validRefs: (number | undefined)[];
34
39
  refSize: number;
35
40
  markedRefs: Set<number>;
36
- vars: string[];
41
+ vars: (string | undefined)[];
37
42
  assignments: Assignment[];
38
43
  features: number;
39
44
  valueMap: Map<number, unknown>;
45
+ flags: FlaggedObject[];
40
46
  }
41
47
  export interface Options {
42
48
  disabledFeatures: number;
@@ -1,6 +1,6 @@
1
- import { Options } from './context';
2
- import { SerovalNode } from './tree/types';
3
- export { AsyncServerValue, ServerValue, PrimitiveValue, CommonServerValue, SemiPrimitiveValue, ErrorValue, } from './types';
1
+ import type { Options } from './context';
2
+ import type { SerovalNode } from './tree/types';
3
+ export type { AsyncServerValue, ServerValue, PrimitiveValue, CommonServerValue, SemiPrimitiveValue, ErrorValue, } from './types';
4
4
  export { Feature } from './compat';
5
5
  export declare function serialize<T>(source: T, options?: Partial<Options>): string;
6
6
  export declare function serializeAsync<T>(source: T, options?: Partial<Options>): Promise<string>;
@@ -8,7 +8,6 @@ export declare function deserialize<T>(source: string): T;
8
8
  export interface SerovalJSON {
9
9
  t: SerovalNode;
10
10
  r: number;
11
- i: boolean;
12
11
  f: number;
13
12
  m: number[];
14
13
  }
@@ -1,3 +1,3 @@
1
- export declare function serializeChar(str: string): "\\\"" | "\\\\" | "\\n" | "\\r" | "\\b" | "\\t" | "\\f" | "\\x3C" | "\\u2028" | "\\u2029" | undefined;
1
+ export declare function serializeChar(str: string): string | undefined;
2
2
  export declare function serializeString(str: string): string;
3
3
  export declare function deserializeString(str: string): string;
@@ -0,0 +1,3 @@
1
+ export default class UnsupportedTypeError extends Error {
2
+ constructor(value: unknown);
3
+ }
@@ -1,3 +1,3 @@
1
- import { ParserContext } from '../context';
2
- import { SerovalNode } from './types';
3
- export default function parseAsync<T>(ctx: ParserContext, current: T): Promise<readonly [SerovalNode, number, boolean]>;
1
+ import type { ParserContext } from '../context';
2
+ import type { SerovalNode } from './types';
3
+ export default function parseAsync<T>(ctx: ParserContext, current: T): Promise<SerovalNode>;
@@ -0,0 +1,11 @@
1
+ import type { SerovalConstantNode } from './types';
2
+ export declare const TRUE_NODE: SerovalConstantNode;
3
+ export declare const FALSE_NODE: SerovalConstantNode;
4
+ export declare const UNDEFINED_NODE: SerovalConstantNode;
5
+ export declare const NULL_NODE: SerovalConstantNode;
6
+ export declare const NEG_ZERO_NODE: SerovalConstantNode;
7
+ export declare const INFINITY_NODE: SerovalConstantNode;
8
+ export declare const NEG_INFINITY_NODE: SerovalConstantNode;
9
+ export declare const NAN_NODE: SerovalConstantNode;
10
+ export declare function serializeConstant(node: SerovalConstantNode): string;
11
+ export declare function deserializeConstant(node: SerovalConstantNode): unknown;
@@ -1,3 +1,3 @@
1
- import { SerializationContext } from '../context';
2
- import { SerovalNode } from './types';
1
+ import type { SerializationContext } from '../context';
2
+ import type { SerovalNode } from './types';
3
3
  export default function deserializeTree(ctx: SerializationContext, node: SerovalNode): unknown;
@@ -1,25 +1,19 @@
1
- import { ParserContext } from '../context';
2
- import { BigIntTypedArrayValue, TypedArrayValue } from '../types';
3
- import { WellKnownSymbols } from './symbols';
4
- import { SerovalBigIntNode, SerovalBigIntTypedArrayNode, SerovalBooleanNode, SerovalDateNode, SerovalInfinityNode, SerovalNaNNode, SerovalNegativeInfinityNode, SerovalNegativeZeroNode, SerovalNullNode, SerovalNumberNode, SerovalIndexedValueNode, SerovalRegExpNode, SerovalStringNode, SerovalTypedArrayNode, SerovalUndefinedNode, SerovalWKSymbolNode, SerovalReferenceNode, SerovalArrayBufferNode, SerovalDataViewNode } from './types';
5
- export declare const TRUE_NODE: SerovalBooleanNode;
6
- export declare const FALSE_NODE: SerovalBooleanNode;
7
- export declare const UNDEFINED_NODE: SerovalUndefinedNode;
8
- export declare const NULL_NODE: SerovalNullNode;
9
- export declare const NEG_ZERO_NODE: SerovalNegativeZeroNode;
10
- export declare const INFINITY_NODE: SerovalInfinityNode;
11
- export declare const NEG_INFINITY_NODE: SerovalNegativeInfinityNode;
12
- export declare const NAN_NODE: SerovalNaNNode;
13
- export declare function createNumberNode(value: number): SerovalNumberNode;
1
+ import type { ParserContext } from '../context';
2
+ import type { BigIntTypedArrayValue, TypedArrayValue } from '../types';
3
+ import type { WellKnownSymbols } from './symbols';
4
+ import type { SerovalBigIntNode, SerovalBigIntTypedArrayNode, SerovalDateNode, SerovalIndexedValueNode, SerovalRegExpNode, SerovalStringNode, SerovalTypedArrayNode, SerovalWKSymbolNode, SerovalReferenceNode, SerovalArrayBufferNode, SerovalDataViewNode, SerovalNode } from './types';
5
+ export declare function createNumberNode(value: number): SerovalNode;
14
6
  export declare function createStringNode(value: string): SerovalStringNode;
15
7
  export declare function createBigIntNode(ctx: ParserContext, current: bigint): SerovalBigIntNode;
16
8
  export declare function createIndexedValueNode(id: number): SerovalIndexedValueNode;
17
9
  export declare function createDateNode(id: number, current: Date): SerovalDateNode;
18
10
  export declare function createRegExpNode(id: number, current: RegExp): SerovalRegExpNode;
19
11
  export declare function createArrayBufferNode(id: number, current: ArrayBuffer): SerovalArrayBufferNode;
20
- export declare function serializeArrayBuffer(ctx: ParserContext, current: ArrayBuffer): SerovalIndexedValueNode | SerovalArrayBufferNode;
12
+ export declare function serializeArrayBuffer(ctx: ParserContext, current: ArrayBuffer): SerovalNode;
21
13
  export declare function createTypedArrayNode(ctx: ParserContext, id: number, current: TypedArrayValue): SerovalTypedArrayNode;
22
14
  export declare function createBigIntTypedArrayNode(ctx: ParserContext, id: number, current: BigIntTypedArrayValue): SerovalBigIntTypedArrayNode;
23
- export declare function createWKSymbolNode(ctx: ParserContext, current: WellKnownSymbols): SerovalWKSymbolNode;
15
+ export declare function createWKSymbolNode(ctx: ParserContext, id: number, current: WellKnownSymbols): SerovalWKSymbolNode;
24
16
  export declare function createReferenceNode<T>(id: number, ref: T): SerovalReferenceNode;
25
17
  export declare function createDataViewNode(ctx: ParserContext, id: number, current: DataView): SerovalDataViewNode;
18
+ export declare function createSymbolNode(ctx: ParserContext, current: symbol): SerovalNode;
19
+ export declare function createFunctionNode(ctx: ParserContext, current: Function): SerovalNode;
@@ -1,4 +1,4 @@
1
- import { SerializationContext } from '../context';
2
- import { SerovalNode } from './types';
1
+ import type { SerializationContext } from '../context';
2
+ import type { SerovalNode } from './types';
3
3
  export declare function resolvePatches(ctx: SerializationContext): string | undefined;
4
4
  export default function serializeTree(ctx: SerializationContext, node: SerovalNode): string;
@@ -1,9 +1,13 @@
1
- import { ParserContext } from '../context';
2
- import { AsyncServerValue, ErrorValue } from '../types';
3
- export declare function getErrorConstructorName(error: ErrorValue): "EvalError" | "RangeError" | "ReferenceError" | "SyntaxError" | "TypeError" | "URIError" | "Error";
4
- export declare function getErrorConstructor(errorName: string): ErrorConstructor;
5
- export declare function getErrorOptions(ctx: ParserContext, error: Error): Record<string, any> | undefined;
6
- export declare function getIterableOptions(obj: Iterable<any>): Record<string, unknown> | undefined;
7
- export declare function isIterable(value: unknown): value is Iterable<AsyncServerValue>;
8
- export declare function getTypedArrayConstructor(name: string): Int8ArrayConstructor | Uint8ArrayConstructor | Uint8ClampedArrayConstructor | Int16ArrayConstructor | Uint16ArrayConstructor | Int32ArrayConstructor | Uint32ArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor | BigInt64ArrayConstructor | BigUint64ArrayConstructor;
1
+ import type { ParserContext } from '../context';
2
+ import type { ErrorValue } from '../types';
3
+ import { SerovalObjectFlags } from './types';
4
+ export declare function getErrorConstructorName(error: ErrorValue): string;
5
+ type ErrorConstructors = ErrorConstructor | EvalErrorConstructor | RangeErrorConstructor | ReferenceErrorConstructor | SyntaxErrorConstructor | TypeErrorConstructor | URIErrorConstructor;
6
+ export declare function getErrorConstructor(errorName: string): ErrorConstructors;
7
+ export declare function getErrorOptions(ctx: ParserContext, error: Error): Record<string, unknown> | undefined;
8
+ export declare function isIterable(value: unknown): value is Iterable<unknown>;
9
+ type TypedArrayConstructor = Int8ArrayConstructor | Int16ArrayConstructor | Int32ArrayConstructor | Uint8ArrayConstructor | Uint16ArrayConstructor | Uint32ArrayConstructor | Uint8ClampedArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor | BigInt64ArrayConstructor | BigUint64ArrayConstructor;
10
+ export declare function getTypedArrayConstructor(name: string): TypedArrayConstructor;
9
11
  export declare function isValidIdentifier(name: string): boolean;
12
+ export declare function getObjectFlag(obj: unknown): SerovalObjectFlags;
13
+ export {};
@@ -1,3 +1,3 @@
1
- import { ParserContext } from '../context';
2
- import { SerovalNode } from './types';
3
- export default function parseSync<T>(ctx: ParserContext, current: T): readonly [SerovalNode, number, boolean];
1
+ import type { ParserContext } from '../context';
2
+ import type { SerovalNode } from './types';
3
+ export default function parseSync<T>(ctx: ParserContext, current: T): SerovalNode;
@@ -1,63 +1,82 @@
1
- import { Symbols } from './symbols';
1
+ import type { Symbols } from './symbols';
2
+ export declare const enum SerovalConstant {
3
+ Null = 0,
4
+ Undefined = 1,
5
+ True = 2,
6
+ False = 3,
7
+ NegativeZero = 4,
8
+ Infinity = 5,
9
+ NegativeInfinity = 6,
10
+ NaN = 7
11
+ }
2
12
  export declare const enum SerovalNodeType {
3
13
  Number = 0,
4
14
  String = 1,
5
- Boolean = 2,
6
- Null = 3,
7
- Undefined = 4,
8
- NegativeZero = 5,
9
- Infinity = 6,
10
- NegativeInfinity = 7,
11
- NaN = 8,
12
- BigInt = 9,
13
- IndexedValue = 10,
14
- Date = 11,
15
- RegExp = 12,
16
- Set = 13,
17
- Map = 14,
18
- Array = 15,
19
- Object = 16,
20
- NullConstructor = 17,
21
- Promise = 18,
22
- Error = 19,
23
- AggregateError = 20,
24
- Iterable = 21,
25
- TypedArray = 22,
26
- BigIntTypedArray = 23,
27
- WKSymbol = 24,
28
- URL = 25,
29
- URLSearchParams = 26,
30
- Reference = 27,
31
- ArrayBuffer = 28,
32
- DataView = 29,
33
- Blob = 30,
34
- File = 31,
35
- Headers = 32,
36
- FormData = 33
15
+ Constant = 2,
16
+ BigInt = 3,
17
+ IndexedValue = 4,
18
+ Date = 5,
19
+ RegExp = 6,
20
+ Set = 7,
21
+ Map = 8,
22
+ Array = 9,
23
+ Object = 10,
24
+ NullConstructor = 11,
25
+ Promise = 12,
26
+ Error = 13,
27
+ AggregateError = 14,
28
+ TypedArray = 15,
29
+ BigIntTypedArray = 16,
30
+ WKSymbol = 17,
31
+ URL = 18,
32
+ URLSearchParams = 19,
33
+ Reference = 20,
34
+ ArrayBuffer = 21,
35
+ DataView = 22,
36
+ Blob = 23,
37
+ File = 24,
38
+ Headers = 25,
39
+ FormData = 26,
40
+ Boxed = 27
41
+ }
42
+ export declare const enum SerovalObjectFlags {
43
+ None = 0,
44
+ NonExtensible = 1,
45
+ Sealed = 2,
46
+ Frozen = 3
37
47
  }
38
48
  export interface SerovalBaseNode {
39
49
  t: SerovalNodeType;
40
50
  i: number | undefined;
41
- s: any;
51
+ s: unknown;
42
52
  l: number | undefined;
43
53
  c: string | undefined;
44
54
  m: string | undefined;
45
- d: SerovalDictionaryNode | undefined;
46
- a: SerovalNode[] | undefined;
55
+ d: SerovalObjectRecordNode | SerovalMapRecordNode | undefined;
56
+ a: (SerovalNode | undefined)[] | undefined;
47
57
  f: SerovalNode | undefined;
48
58
  b: number | undefined;
59
+ o: SerovalObjectFlags | undefined;
49
60
  }
50
- export interface SerovalObjectRecordNode {
61
+ export declare const enum SerovalObjectRecordSpecialKey {
62
+ SymbolIterator = 0
63
+ }
64
+ export type SerovalObjectRecordKey = string | SerovalObjectRecordSpecialKey;
65
+ export interface SerovalPlainRecordNode {
51
66
  k: string[];
52
67
  v: SerovalNode[];
53
68
  s: number;
54
69
  }
70
+ export interface SerovalObjectRecordNode {
71
+ k: SerovalObjectRecordKey[];
72
+ v: SerovalNode[];
73
+ s: number;
74
+ }
55
75
  export interface SerovalMapRecordNode {
56
76
  k: SerovalNode[];
57
77
  v: SerovalNode[];
58
78
  s: number;
59
79
  }
60
- export type SerovalDictionaryNode = SerovalObjectRecordNode | SerovalMapRecordNode;
61
80
  export interface SerovalNumberNode extends SerovalBaseNode {
62
81
  t: SerovalNodeType.Number;
63
82
  s: number;
@@ -66,29 +85,11 @@ export interface SerovalStringNode extends SerovalBaseNode {
66
85
  t: SerovalNodeType.String;
67
86
  s: string;
68
87
  }
69
- export interface SerovalBooleanNode extends SerovalBaseNode {
70
- t: SerovalNodeType.Boolean;
71
- s: boolean;
72
- }
73
- export interface SerovalNullNode extends SerovalBaseNode {
74
- t: SerovalNodeType.Null;
75
- }
76
- export interface SerovalUndefinedNode extends SerovalBaseNode {
77
- t: SerovalNodeType.Undefined;
78
- }
79
- export interface SerovalNegativeZeroNode extends SerovalBaseNode {
80
- t: SerovalNodeType.NegativeZero;
81
- }
82
- export interface SerovalInfinityNode extends SerovalBaseNode {
83
- t: SerovalNodeType.Infinity;
84
- }
85
- export interface SerovalNegativeInfinityNode extends SerovalBaseNode {
86
- t: SerovalNodeType.NegativeInfinity;
87
- }
88
- export interface SerovalNaNNode extends SerovalBaseNode {
89
- t: SerovalNodeType.NaN;
88
+ export interface SerovalConstantNode extends SerovalBaseNode {
89
+ t: SerovalNodeType.Constant;
90
+ s: SerovalConstant;
90
91
  }
91
- export type SerovalPrimitiveNode = SerovalNumberNode | SerovalStringNode | SerovalBooleanNode | SerovalNullNode | SerovalUndefinedNode | SerovalNegativeZeroNode | SerovalNegativeInfinityNode | SerovalInfinityNode | SerovalNaNNode;
92
+ export type SerovalPrimitiveNode = SerovalNumberNode | SerovalStringNode | SerovalConstantNode;
92
93
  export interface SerovalIndexedValueNode extends SerovalBaseNode {
93
94
  t: SerovalNodeType.IndexedValue;
94
95
  i: number;
@@ -144,18 +145,21 @@ export interface SerovalMapNode extends SerovalBaseNode {
144
145
  export interface SerovalArrayNode extends SerovalBaseNode {
145
146
  t: SerovalNodeType.Array;
146
147
  l: number;
147
- a: SerovalNode[];
148
+ a: (SerovalNode | undefined)[];
148
149
  i: number;
150
+ o: SerovalObjectFlags;
149
151
  }
150
152
  export interface SerovalObjectNode extends SerovalBaseNode {
151
153
  t: SerovalNodeType.Object;
152
154
  d: SerovalObjectRecordNode;
153
155
  i: number;
156
+ o: SerovalObjectFlags;
154
157
  }
155
158
  export interface SerovalNullConstructorNode extends SerovalBaseNode {
156
159
  t: SerovalNodeType.NullConstructor;
157
160
  d: SerovalObjectRecordNode;
158
161
  i: number;
162
+ o: SerovalObjectFlags;
159
163
  }
160
164
  export interface SerovalPromiseNode extends SerovalBaseNode {
161
165
  t: SerovalNodeType.Promise;
@@ -175,15 +179,9 @@ export interface SerovalAggregateErrorNode extends SerovalBaseNode {
175
179
  m: string;
176
180
  d: SerovalObjectRecordNode | undefined;
177
181
  }
178
- export interface SerovalIterableNode extends SerovalBaseNode {
179
- t: SerovalNodeType.Iterable;
180
- d: SerovalObjectRecordNode | undefined;
181
- l: number;
182
- a: SerovalNode[];
183
- i: number;
184
- }
185
182
  export interface SerovalWKSymbolNode extends SerovalBaseNode {
186
183
  t: SerovalNodeType.WKSymbol;
184
+ i: number;
187
185
  s: Symbols;
188
186
  }
189
187
  export interface SerovalURLNode extends SerovalBaseNode {
@@ -225,11 +223,16 @@ export interface SerovalFileNode extends SerovalBaseNode {
225
223
  export interface SerovalHeadersNode extends SerovalBaseNode {
226
224
  t: SerovalNodeType.Headers;
227
225
  i: number;
228
- d: SerovalObjectRecordNode;
226
+ d: SerovalPlainRecordNode;
229
227
  }
230
228
  export interface SerovalFormDataNode extends SerovalBaseNode {
231
229
  t: SerovalNodeType.FormData;
232
230
  i: number;
233
- d: SerovalObjectRecordNode;
231
+ d: SerovalPlainRecordNode;
232
+ }
233
+ export interface SerovalBoxedNode extends SerovalBaseNode {
234
+ t: SerovalNodeType.Boxed;
235
+ i: number;
236
+ f: SerovalNode;
234
237
  }
235
- export type SerovalNode = SerovalPrimitiveNode | SerovalIndexedValueNode | SerovalSemiPrimitiveNode | SerovalSetNode | SerovalMapNode | SerovalArrayNode | SerovalObjectNode | SerovalNullConstructorNode | SerovalPromiseNode | SerovalErrorNode | SerovalAggregateErrorNode | SerovalIterableNode | SerovalWKSymbolNode | SerovalURLNode | SerovalURLSearchParamsNode | SerovalReferenceNode | SerovalArrayBufferNode | SerovalDataViewNode | SerovalBlobNode | SerovalFileNode | SerovalHeadersNode | SerovalFormDataNode;
238
+ export type SerovalNode = SerovalPrimitiveNode | SerovalIndexedValueNode | SerovalSemiPrimitiveNode | SerovalSetNode | SerovalMapNode | SerovalArrayNode | SerovalObjectNode | SerovalNullConstructorNode | SerovalPromiseNode | SerovalErrorNode | SerovalAggregateErrorNode | SerovalWKSymbolNode | SerovalURLNode | SerovalURLSearchParamsNode | SerovalReferenceNode | SerovalArrayBufferNode | SerovalDataViewNode | SerovalBlobNode | SerovalFileNode | SerovalHeadersNode | SerovalFormDataNode | SerovalBoxedNode;
@@ -1,5 +1,5 @@
1
- import { ParserContext } from '../context';
2
- import { SerovalBlobNode, SerovalFileNode, SerovalURLNode, SerovalURLSearchParamsNode } from './types';
1
+ import type { ParserContext } from '../context';
2
+ import type { SerovalBlobNode, SerovalFileNode, SerovalURLNode, SerovalURLSearchParamsNode } from './types';
3
3
  export declare function createURLNode(ctx: ParserContext, id: number, current: URL): SerovalURLNode;
4
4
  export declare function createURLSearchParamsNode(ctx: ParserContext, id: number, current: URLSearchParams): SerovalURLSearchParamsNode;
5
5
  export declare function createBlobNode(ctx: ParserContext, id: number, current: Blob): Promise<SerovalBlobNode>;
@@ -1,10 +1,10 @@
1
- import { WellKnownSymbols } from './tree/symbols';
1
+ import type { WellKnownSymbols } from './tree/symbols';
2
2
  export type PrimitiveValue = boolean | string | number | undefined | null | WellKnownSymbols;
3
3
  export type ErrorValue = Error | AggregateError | EvalError | RangeError | ReferenceError | TypeError | SyntaxError | URIError;
4
4
  export type TypedArrayValue = Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array;
5
5
  export type BigIntTypedArrayValue = BigInt64Array | BigUint64Array;
6
- export type WebAPIValue = URL | URLSearchParams;
7
- export type SemiPrimitiveValue = RegExp | Date | TypedArrayValue | BigIntTypedArrayValue | bigint | WebAPIValue;
6
+ export type WebAPIValue = URL | URLSearchParams | Blob | File;
7
+ export type SemiPrimitiveValue = RegExp | Date | ArrayBuffer | DataView | TypedArrayValue | BigIntTypedArrayValue | bigint | WebAPIValue;
8
8
  export type CommonServerValue = PrimitiveValue | SemiPrimitiveValue | ErrorValue;
9
9
  export type ServerValue = CommonServerValue | Array<ServerValue> | readonly ServerValue[] | Iterable<ServerValue> | {
10
10
  [key: string | number]: ServerValue;
@@ -15,6 +15,6 @@ export type AsyncServerValue = CommonServerValue | Array<AsyncServerValue> | rea
15
15
  [key: string | number]: AsyncServerValue;
16
16
  } | {
17
17
  readonly [key: string | number]: AsyncServerValue;
18
- } | Set<AsyncServerValue> | Map<AsyncServerValue, AsyncServerValue> | PromiseLike<AsyncServerValue>;
18
+ } | Set<AsyncServerValue> | Map<AsyncServerValue, AsyncServerValue> | Promise<AsyncServerValue>;
19
19
  export type NonPrimitiveServerValue<T> = T extends PrimitiveValue ? never : T;
20
20
  export type MaybePromise<T> = T | Promise<T>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "seroval",
3
3
  "type": "module",
4
- "version": "0.7.0",
4
+ "version": "0.9.0",
5
5
  "files": [
6
6
  "dist",
7
7
  "src"
@@ -14,14 +14,15 @@
14
14
  "pridepack"
15
15
  ],
16
16
  "devDependencies": {
17
- "@types/node": "^18.15.3",
18
- "eslint": "^8.32.0",
19
- "eslint-config-lxsmnsyc": "^0.5.1",
17
+ "@types/node": "^20.4.0",
18
+ "@vitest/ui": "^0.33.0",
19
+ "eslint": "^8.44.0",
20
+ "eslint-config-lxsmnsyc": "^0.6.5",
20
21
  "node-fetch-native": "^1.1.0",
21
- "pridepack": "2.4.1",
22
- "tslib": "^2.4.1",
22
+ "pridepack": "2.4.4",
23
+ "tslib": "^2.5.0",
23
24
  "typescript": "^4.9.4",
24
- "vitest": "^0.28.1"
25
+ "vitest": "^0.33.0"
25
26
  },
26
27
  "scripts": {
27
28
  "prepublishOnly": "pridepack clean && pridepack build",
@@ -32,7 +33,8 @@
32
33
  "watch": "pridepack watch",
33
34
  "start": "pridepack start",
34
35
  "dev": "pridepack dev",
35
- "test": "vitest"
36
+ "test": "vitest",
37
+ "test:ui": "vitest --ui"
36
38
  },
37
39
  "private": false,
38
40
  "description": "Stringify JS values",
@@ -65,5 +67,5 @@
65
67
  "typesVersions": {
66
68
  "*": {}
67
69
  },
68
- "gitHead": "187cbd91a44f5e88c6a87288d9ea440ddbaf5be0"
70
+ "gitHead": "a3bfdc3ac2246b5b067f67af1f10d7a416bfed5f"
69
71
  }
package/src/assert.ts CHANGED
@@ -1,5 +1,5 @@
1
- export default function assert(cond: unknown, error: string): asserts cond {
1
+ export default function assert(cond: unknown, error: Error): asserts cond {
2
2
  if (!cond) {
3
- throw new Error(error);
3
+ throw error;
4
4
  }
5
5
  }
package/src/compat.ts CHANGED
@@ -1,4 +1,3 @@
1
- /* eslint-disable guard-for-in */
2
1
  /**
3
2
  * References
4
3
  * - https://kangax.github.io/compat-table/es6/