seroval 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -9
- package/dist/cjs/development/index.cjs +145 -139
- package/dist/cjs/development/index.cjs.map +2 -2
- package/dist/cjs/production/index.cjs +3 -3
- package/dist/esm/development/index.mjs +145 -139
- package/dist/esm/development/index.mjs.map +2 -2
- package/dist/esm/production/index.mjs +3 -3
- package/dist/types/context.d.ts +2 -4
- package/dist/types/tree/types.d.ts +2 -2
- package/package.json +2 -2
- package/src/context.ts +35 -45
- package/src/tree/async.ts +21 -19
- package/src/tree/deserialize.ts +1 -1
- package/src/tree/primitives.ts +21 -21
- package/src/tree/serialize.ts +65 -65
- package/src/tree/sync.ts +20 -18
- package/src/tree/types.ts +3 -3
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var I=(c=>(c[c.AggregateError=1]="AggregateError",c[c.ArrayPrototypeValues=2]="ArrayPrototypeValues",c[c.ArrowFunction=4]="ArrowFunction",c[c.BigInt=8]="BigInt",c[c.ErrorPrototypeStack=16]="ErrorPrototypeStack",c[c.Map=32]="Map",c[c.MethodShorthand=64]="MethodShorthand",c[c.ObjectAssign=128]="ObjectAssign",c[c.Promise=256]="Promise",c[c.Set=512]="Set",c[c.Symbol=1024]="Symbol",c[c.TypedArray=2048]="TypedArray",c[c.BigIntTypedArray=4096]="BigIntTypedArray",c))(I||{});var
|
|
2
|
-
`:o="\\n";break;case"\r":o="\\r";break;case"\u2028":o="\\u2028";break;case"\u2029":o="\\u2029";break;default:continue}r+=e.slice(n,t)+o,n=t+1}return n===0?r=e:r+=e.slice(n),r}function
|
|
3
|
-
`).replace(/\\r/g,"\r").replace(/\\u2028/g,"\u2028").replace(/\\u2029/g,"\u2029")}var Ee={[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"},C={[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},Ie={[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 B={t:2,i:void 0,s:!0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,n:void 0},T={t:2,i:void 0,s:!1,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,n:void 0},j={t:4,i:void 0,s:void 0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,n:void 0},U={t:3,i:void 0,s:void 0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,n:void 0},M={t:5,i:void 0,s:void 0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,n:void 0},D={t:6,i:void 0,s:void 0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,n: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,n:void 0},L={t:8,i:void 0,s:void 0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,n:void 0};function x(e){return{t:0,i:void 0,s:e,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,n:void 0}}function F(e){return{t:1,i:void 0,s:A(e),l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,n:void 0}}function K(e,r){return S(e.features&8,'Unsupported type "BigInt"'),{t:9,i:void 0,s:r.toString(),l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,n:void 0}}function W(e){return{t:10,i:e,s:void 0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,n:void 0}}function Y(e,r){return{t:11,i:e,s:r.toISOString(),l:void 0,c:void 0,m:void 0,d:void 0,n:void 0,a:void 0}}function Z(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,n:void 0}}function G(e,r,n){let t=n.constructor.name;S(e.features&2048,`Unsupported value type "${t}"`);let a=n.length,o=new Array(a);for(let i=0;i<a;i++)o[i]=n[i].toString();return{t:22,i:r,s:o,l:n.byteOffset,c:t,m:void 0,d:void 0,a:void 0,n:void 0}}var Re=4104;function H(e,r,n){let t=n.constructor.name;S((e.features&Re)===Re,`Unsupported value type "${t}"`);let a=n.length,o=new Array(a);for(let i=0;i<a;i++)o[i]=n[i].toString();return{t:23,i:r,s:o,l:n.byteOffset,c:t,m:void 0,d:void 0,a:void 0,n:void 0}}function J(e){return{t:24,i:void 0,s:C[e],l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,n:void 0}}function P(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 ke(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 V(e,r){let n,t=P(r);r.name!==t?n={name:r.name}:r.constructor.name!==t&&(n={name:r.constructor.name});let a=Object.getOwnPropertyNames(r);for(let o of a)o!=="name"&&o!=="message"&&(o==="stack"?e.features&16&&(n=n||{},n[o]=r[o]):(n=n||{},n[o]=r[o]));return n}function $(e){let r=Object.getOwnPropertyNames(e);if(r.length){let n={};for(let t of r)n[t]=e[t];return n}}function N(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 Oe(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 xe=/^[$A-Z_][0-9A-Z_$]*$/i;function oe(e){let r=e[0];return(r==="$"||r==="_"||r>="A"&&r<="Z"||r>="a"&&r<="z")&&xe.test(e)}async function se(e,r){let n=r.length,t=new Array(n),a=new Array(n),o;for(let i=0;i<n;i++)i in r&&(o=r[i],N(o)?a[i]=o:t[i]=await p(e,o));for(let i=0;i<n;i++)i in a&&(t[i]=await p(e,a[i]));return t}async function Fe(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 se(e,n),n:void 0}}async function Ke(e,r,n){S(e.features&32,'Unsupported type "Map"');let t=n.size,a=new Array(t),o=new Array(t),i=new Array(t),d=new Array(t),s=0,u=0;for(let[l,f]of n.entries())N(l)||N(f)?(i[s]=l,d[s]=f,s++):(a[u]=await p(e,l),o[u]=await p(e,f),u++);for(let l=0;l<s;l++)a[u+l]=await p(e,i[l]),o[u+l]=await p(e,d[l]);return{t:14,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:{k:a,v:o,s:t},a:void 0,n:void 0}}async function We(e,r,n){S(e.features&512,'Unsupported type "Set"');let t=n.size,a=new Array(t),o=new Array(t),i=0,d=0;for(let s of n.keys())N(s)?o[i++]=s:a[d++]=await p(e,s);for(let s=0;s<i;s++)a[d+s]=await p(e,o[s]);return{t:13,i:r,s:void 0,l:t,c:void 0,m:void 0,d:void 0,a,n:void 0}}async function Q(e,r){let n=Object.keys(r),t=n.length,a=new Array(t),o=new Array(t),i=new Array(t),d=new Array(t),s=0,u=0,l;for(let f of n)l=r[f],N(l)?(i[s]=f,d[s]=l,s++):(a[u]=f,o[u]=await p(e,l),u++);for(let f=0;f<s;f++)a[u+f]=i[f],o[u+f]=await p(e,d[f]);return{k:a,v:o,s:t}}async function we(e,r,n){S(e.features&1024,'Unsupported type "Iterable"');let t=$(n),a=Array.from(n);return{t:21,i:r,s:void 0,l:a.length,c:void 0,m:void 0,d:t?await Q(e,t):void 0,a:await se(e,a),n:void 0}}async function q(e,r,n){return S(e.features&256,'Unsupported type "Promise"'),n.then(async t=>({t:18,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,n:await p(e,t)}))}async function Ce(e,r,n,t){return Symbol.iterator in n?we(e,r,n):"then"in n&&typeof n.then=="function"?q(e,r,n):{t:t?17:16,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:await Q(e,n),a:void 0,n:void 0}}async function Ve(e,r,n){let t=V(e,n),a=t?await Q(e,t):void 0;return{t:20,i:r,s:void 0,l:n.errors.length,c:void 0,m:n.message,d:a,a:await se(e,n.errors),n:void 0}}async function ie(e,r,n){let t=V(e,n),a=t?await Q(e,t):void 0;return{t:19,i:r,s:void 0,l:void 0,c:P(n),m:n.message,d:a,a:void 0,n:void 0}}async function p(e,r){switch(typeof r){case"boolean":return r?B:T;case"undefined":return j;case"string":return F(r);case"number":return r!==r?L:Object.is(r,-0)?M:Object.is(r,1/0)?D:Object.is(r,-1/0)?_:x(r);case"bigint":return K(e,r);case"object":{if(!r)return U;let n=O(e,r,!0);if(e.markedRefs.has(n))return W(n);if(Array.isArray(r))return Fe(e,n,r);switch(r.constructor){case Date:return Y(n,r);case RegExp:return Z(n,r);case Promise:return q(e,n,r);case Int8Array:case Int16Array:case Int32Array:case Uint8Array:case Uint16Array:case Uint32Array:case Uint8ClampedArray:case Float32Array:case Float64Array:return G(e,n,r);case BigInt64Array:case BigUint64Array:return H(e,n,r);case Map:return Ke(e,n,r);case Set:return We(e,n,r);case Object:return Ce(e,n,r,!1);case void 0:return Ce(e,n,r,!0);case AggregateError:return e.features&1?Ve(e,n,r):ie(e,n,r);case Error:case EvalError:case RangeError:case ReferenceError:case SyntaxError:case TypeError:case URIError:return ie(e,n,r);default:break}if(r instanceof AggregateError&&e.features&1)return Ve(e,n,r);if(r instanceof Error)return ie(e,n,r);if(r instanceof Promise)return q(e,n,r);if(Symbol.iterator in r)return we(e,n,r);if("then"in r&&typeof r.then=="function")return q(e,n,r);throw new Error("Unsupported type")}case"symbol":return S(e.features&1024,'Unsupported type "symbol"'),S(r in C,"seroval only supports well-known symbols"),J(r);default:throw new Error("Unsupported type")}}async function X(e,r){let n=await p(e,r),t=n.t===16||n.t===21;return[n,O(e,r,!1),t]}function v(e,r,n){return e.valueMap.set(r,n),n}function le(e,r,n){let t;for(let a=0,o=r.a.length;a<o;a++)t=r.a[a],t&&(n[a]=E(e,t));return n}function Ye(e,r){let n=v(e,r.i,new Array(r.l));return e.stack.push(r.i),le(e,r,n),e.stack.pop(),n}function de(e,r,n){if(r.s===0)return{};for(let t=0;t<r.s;t++)n[r.k[t]]=E(e,r.v[t]);return n}function Ze(e,r){let n=v(e,r.i,Object.create(null));return e.stack.push(r.i),de(e,r.d,n),e.stack.pop(),n}function Ge(e,r){let n=v(e,r.i,{});return e.stack.push(r.i),de(e,r.d,n),e.stack.pop(),n}function He(e,r){let n=v(e,r.i,new Set);e.stack.push(r.i);for(let t=0,a=r.a.length;t<a;t++)n.add(E(e,r.a[t]));return e.stack.pop(),n}function Je(e,r){let n=v(e,r.i,new Map);e.stack.push(r.i);for(let t=0;t<r.d.s;t++)n.set(E(e,r.d.k[t]),E(e,r.d.v[t]));return e.stack.pop(),n}function ue(e,r,n){if(r.d){e.stack.push(r.i);let t=de(e,r.d,{});e.stack.pop(),Object.assign(n,t)}return n}function $e(e,r){let n=v(e,r.i,new AggregateError([],r.m));return e.stack.push(r.i),n.errors=le(e,r,new Array(r.l)),e.stack.pop(),ue(e,r,n)}function qe(e,r){let n=ke(r.c),t=v(e,r.i,new n(r.m));return ue(e,r,t)}function Qe(){let e;return{resolve(r){e(r)},promise:new Promise(r=>{e=r})}}function Xe(e,r){let n=Qe(),t=v(e,r.i,n.promise);return n.resolve(E(e,r.n)),t}function er(e,r){let n=Oe(r.c),t=new n,a=v(e,r.i,new n(t.buffer,r.l));for(let o=0,i=r.s.length;o<i;o++)a[o]=r.t===23?BigInt(r.s[o]):Number(r.s[o]);return a}function rr(e,r){let n=[];le(e,r,n);let t=v(e,r.i,{[Symbol.iterator]:()=>n.values()});return ue(e,r,t)}function E(e,r){switch(r.t){case 0:case 2:return r.s;case 1:return Ae(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 Ye(e,r);case 16:return Ge(e,r);case 17:return Ze(e,r);case 11:return v(e,r.i,new Date(r.s));case 12:return v(e,r.i,new RegExp(r.c,r.m));case 13:return He(e,r);case 14:return Je(e,r);case 23:case 22:return er(e,r);case 20:return $e(e,r);case 19:return qe(e,r);case 21:return rr(e,r);case 18:return Xe(e,r);case 24:return Ie[r.s];default:throw new Error("Unsupported type")}}function ee(e){switch(e.t){case"index":return e.s+"="+e.v;case"map":return e.s+".set("+e.k+","+e.v+")";case"set":return e.s+".add("+e.v+")";default:return""}}function nr(e){let r=[],n=e[0],t=n,a;for(let o=1,i=e.length;o<i;o++)a=e[o],a.t===t.t?a.t==="index"&&a.v===t.v?n={t:"index",s:a.s,k:void 0,v:ee(n)}:a.t==="map"&&a.s===t.s?n={t:"map",s:ee(n),k:a.k,v:a.v}:a.t==="set"&&a.s===t.s?n={t:"set",s:ee(n),k:void 0,v:a.v}:(r.push(n),n=a):(r.push(n),n=a),t=a;return r.push(n),r}function ze(e){if(e.length){let r="",n=nr(e);for(let t=0,a=n.length;t<a;t++)r+=ee(n[t])+",";return r}}function Pe(e){return ze(e.assignments)}function he(e,r,n){e.assignments.push({t:"index",s:r,k:void 0,v:n})}function tr(e,r,n){R(e,r),e.assignments.push({t:"set",s:m(e,r),k:void 0,v:n})}function fe(e,r,n,t){R(e,r),e.assignments.push({t:"map",s:m(e,r),k:n,v:t})}function ce(e,r,n,t){R(e,r),he(e,m(e,r)+"["+n.toString()+"]",t)}function Be(e,r,n,t){R(e,r),he(e,m(e,r)+"."+n,t)}function b(e,r,n){return e.markedRefs.has(r)?m(e,r)+"="+n:n}function k(e,r){return r.t===10&&e.stack.includes(r.i)}function Se(e,r){let n=r.l,t="",a,o=!1;for(let i=0;i<n;i++)i!==0&&(t+=","),a=r.a[i],a?k(e,a)?(ce(e,r.i,i,m(e,a.i)),o=!0):(t+=y(e,a),o=!1):o=!0;return o&&(t+=","),"["+t+"]"}function ar(e,r){e.stack.push(r.i);let n=Se(e,r);return e.stack.pop(),b(e,r.i,n)}function Te(e,r,n){if(n.s===0)return"{}";let t="";e.stack.push(r);let a,o,i,d,s,u=!1;for(let l=0;l<n.s;l++)a=n.k[l],o=n.v[l],i=Number(a),d=i>=0||oe(a),k(e,o)?(s=m(e,o.i),d&&Number.isNaN(i)?Be(e,r,a,s):ce(e,r,d?a:'"'+A(a)+'"',s)):(u&&(t+=","),t+=d?a:'"'+A(a)+'"',t+=":"+y(e,o),u=!0);return e.stack.pop(),"{"+t+"}"}function or(e,r,n,t){let a=Te(e,n,r);return a!=="{}"?"Object.assign("+t+","+a+")":t}function ir(e,r,n){e.stack.push(r);let t=[],a,o,i,d,s,u;for(let l=0;l<n.s;l++)a=e.stack,e.stack=[],o=y(e,n.v[l]),e.stack=a,i=n.k[l],d=Number(i),s=e.assignments,e.assignments=t,u=d>=0||oe(i),u&&Number.isNaN(d)?Be(e,r,i,o):ce(e,r,u?i:'"'+A(i)+'"',o),e.assignments=s;return e.stack.pop(),ze(t)}function re(e,r,n,t){if(n)if(e.features&128)t=or(e,n,r,t);else{R(e,r);let a=ir(e,r,n);if(a){let o=m(e,r);return"("+b(e,r,t)+","+a+o+")"}}return b(e,r,t)}function sr(e,r){return re(e,r.i,r.d,"Object.create(null)")}function lr(e,r){return b(e,r.i,Te(e,r.i,r.d))}function dr(e,r){let n="new Set",t=r.l;if(t){let a="";e.stack.push(r.i);let o,i=!1;for(let d=0;d<t;d++)o=r.a[d],k(e,o)?tr(e,r.i,m(e,o.i)):(i&&(a+=","),a+=y(e,o),i=!0);e.stack.pop(),a&&(n+="(["+a+"])")}return b(e,r.i,n)}function ur(e,r){let n="new Map";if(r.d.s){let t="";e.stack.push(r.i);let a,o,i,d,s,u=!1;for(let l=0;l<r.d.s;l++)a=r.d.k[l],o=r.d.v[l],k(e,a)?(i=m(e,a.i),k(e,o)?(d=m(e,o.i),fe(e,r.i,i,d)):(s=e.stack,e.stack=[],fe(e,r.i,i,y(e,o)),e.stack=s)):k(e,o)?(d=m(e,o.i),s=e.stack,e.stack=[],fe(e,r.i,y(e,a),d),e.stack=s):(u&&(t+=","),t+="["+y(e,a)+","+y(e,o)+"]",u=!0);e.stack.pop(),t&&(n+="(["+t+"])")}return b(e,r.i,n)}function fr(e,r){e.stack.push(r.i);let n="new AggregateError("+Se(e,r)+',"'+A(r.m)+'")';return e.stack.pop(),re(e,r.i,r.d,n)}function cr(e,r){let n="new "+r.c+'("'+A(r.m)+'")';return re(e,r.i,r.d,n)}function Sr(e,r){let n;if(k(e,r.n)){let t=m(e,r.n.i);e.features&4?n="Promise.resolve().then(()=>"+t+")":n="Promise.resolve().then(function(){return "+t+"})"}else{e.stack.push(r.i);let t=y(e,r.n);e.stack.pop(),n="Promise.resolve("+t+")"}return b(e,r.i,n)}function mr(e,r){let n="";for(let a=0,o=r.s.length;a<o;a++)a!==0&&(n+=","),n+=r.s[a],r.t===23&&(n+="n");let t="["+n+"]";return r.l!==0&&(t+=","+r.l.toString()),b(e,r.i,"new "+r.c+"("+t+")")}function yr(e,r){let n=e.stack;e.stack=[];let t=Se(e,r);e.stack=n;let a=t;return e.features&2?a+=".values()":a+="[Symbol.iterator]()",e.features&4?a="{[Symbol.iterator]:()=>"+a+"}":e.features&64?a="{[Symbol.iterator](){return "+a+"}}":a="{[Symbol.iterator]:function(){return "+a+"}}",re(e,r.i,r.d,a)}function y(e,r){switch(r.t){case 0:return String(r.s);case 1:return'"'+r.s+'"';case 2:return r.s?"!0":"!1";case 4:return"undefined";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 m(e,r.i);case 15:return ar(e,r);case 16:return lr(e,r);case 17:return sr(e,r);case 11:return b(e,r.i,'new Date("'+r.s+'")');case 12:return b(e,r.i,"/"+r.c+"/"+r.m);case 13:return dr(e,r);case 14:return ur(e,r);case 23:case 22:return mr(e,r);case 20:return fr(e,r);case 19:return cr(e,r);case 21:return yr(e,r);case 18:return Sr(e,r);case 24:return Ee[r.s];default:throw new Error("Unsupported type")}}function ye(e,r){let n=r.length,t=new Array(n),a=new Array(n),o;for(let i=0;i<n;i++)i in r&&(o=r[i],N(o)?a[i]=o:t[i]=g(e,o));for(let i=0;i<n;i++)i in a&&(t[i]=g(e,a[i]));return t}function Nr(e,r,n){return{t:15,i:r,s:void 0,l:n.length,c:void 0,m:void 0,d:void 0,a:ye(e,n),n:void 0}}function pr(e,r,n){S(e.features&32,'Unsupported type "Map"');let t=n.size,a=new Array(t),o=new Array(t),i=new Array(t),d=new Array(t),s=0,u=0;for(let[l,f]of n.entries())N(l)||N(f)?(i[s]=l,d[s]=f,s++):(a[u]=g(e,l),o[u]=g(e,f),u++);for(let l=0;l<s;l++)a[u+l]=g(e,i[l]),o[u+l]=g(e,d[l]);return{t:14,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:{k:a,v:o,s:t},a:void 0,n:void 0}}function vr(e,r,n){S(e.features&512,'Unsupported type "Set"');let t=n.size,a=new Array(t),o=new Array(t),i=0,d=0;for(let s of n.keys())N(s)?o[i++]=s:a[d++]=g(e,s);for(let s=0;s<i;s++)a[d+s]=g(e,o[s]);return{t:13,i:r,s:void 0,l:t,c:void 0,m:void 0,d:void 0,a,n:void 0}}function ne(e,r){let n=Object.keys(r),t=n.length,a=new Array(t),o=new Array(t),i=new Array(t),d=new Array(t),s=0,u=0,l;for(let f of n)l=r[f],N(l)?(i[s]=f,d[s]=l,s++):(a[u]=f,o[u]=g(e,l),u++);for(let f=0;f<s;f++)a[u+f]=i[f],o[u+f]=g(e,d[f]);return{k:a,v:o,s:t}}function Me(e,r,n){S(e.features&1024,'Unsupported type "Iterable"');let t=$(n),a=Array.from(n);return{t:21,i:r,s:void 0,l:a.length,c:void 0,m:void 0,d:t?ne(e,t):void 0,a:ye(e,a),n:void 0}}function je(e,r,n,t){return Symbol.iterator in n?Me(e,r,n):{t:t?17:16,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:ne(e,n),a:void 0,n:void 0}}function Ue(e,r,n){let t=V(e,n),a=t?ne(e,t):void 0;return{t:20,i:r,s:void 0,l:n.errors.length,c:void 0,m:n.message,d:a,a:ye(e,n.errors),n:void 0}}function me(e,r,n){let t=V(e,n),a=t?ne(e,t):void 0;return{t:19,i:r,s:void 0,l:void 0,c:P(n),m:n.message,d:a,a:void 0,n:void 0}}function g(e,r){switch(typeof r){case"boolean":return r?B:T;case"undefined":return j;case"string":return F(r);case"number":return r!==r?L:Object.is(r,-0)?M:Object.is(r,1/0)?D:Object.is(r,-1/0)?_:x(r);case"bigint":return K(e,r);case"object":{if(!r)return U;let n=O(e,r,!0);if(e.markedRefs.has(n))return W(n);if(Array.isArray(r))return Nr(e,n,r);switch(r.constructor){case Date:return Y(n,r);case RegExp:return Z(n,r);case Int8Array:case Int16Array:case Int32Array:case Uint8Array:case Uint16Array:case Uint32Array:case Uint8ClampedArray:case Float32Array:case Float64Array:return G(e,n,r);case BigInt64Array:case BigUint64Array:return H(e,n,r);case Map:return pr(e,n,r);case Set:return vr(e,n,r);case Object:return je(e,n,r,!1);case void 0:return je(e,n,r,!0);case AggregateError:return e.features&1?Ue(e,n,r):me(e,n,r);case Error:case EvalError:case RangeError:case ReferenceError:case SyntaxError:case TypeError:case URIError:return me(e,n,r);default:break}if(r instanceof AggregateError&&e.features&1)return Ue(e,n,r);if(r instanceof Error)return me(e,n,r);if(Symbol.iterator in r)return Me(e,n,r);throw new Error("Unsupported type")}case"symbol":return S(e.features&1024,'Unsupported type "symbol"'),S(r in C,"seroval only supports well-known symbols"),J(r);default:throw new Error("Unsupported type")}}function te(e,r){let n=g(e,r),t=n.t===16||n.t===21;return[n,O(e,r,!1),t]}function Ne(e,r,n,t){if(e.vars.length){let a=Pe(e),o=t;if(a){let d=m(e,r);o=t+","+a+d,t.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?"("+t+")":t}function gr(e,r){let n=w(r),[t,a,o]=te(n,e),i=z(n),d=y(i,t);return Ne(i,a,o,d)}async function jt(e,r){let n=w(r),[t,a,o]=await X(n,e),i=z(n),d=y(i,t);return Ne(i,a,o,d)}function Ut(e){return(0,eval)(e)}function Mt(e,r){let n=w(r),[t,a,o]=te(n,e);return{t,r:a,i:o,f:n.features,m:Array.from(n.markedRefs)}}async function Dt(e,r){let n=w(r),[t,a,o]=await X(n,e);return{t,r:a,i:o,f:n.features,m:Array.from(n.markedRefs)}}function _t(e){let r=z({features:e.f,markedRefs:e.m}),n=y(r,e.t);return Ne(r,e.r,e.i,n)}function Lt(e){let r=z({features:e.f,markedRefs:e.m});return E(r,e.t)}var xt=gr;export{I as Feature,_t as compileJSON,xt as default,Ut as deserialize,Lt as fromJSON,gr as serialize,jt as serializeAsync,Mt as toJSON,Dt as toJSONAsync};
|
|
1
|
+
var I=(c=>(c[c.AggregateError=1]="AggregateError",c[c.ArrayPrototypeValues=2]="ArrayPrototypeValues",c[c.ArrowFunction=4]="ArrowFunction",c[c.BigInt=8]="BigInt",c[c.ErrorPrototypeStack=16]="ErrorPrototypeStack",c[c.Map=32]="Map",c[c.MethodShorthand=64]="MethodShorthand",c[c.ObjectAssign=128]="ObjectAssign",c[c.Promise=256]="Promise",c[c.Set=512]="Set",c[c.Symbol=1024]="Symbol",c[c.TypedArray=2048]="TypedArray",c[c.BigIntTypedArray=4096]="BigIntTypedArray",c))(I||{});var be="hjkmoquxzABCDEFGHIJKLNPQRTUVWXYZ$_",ve=be.length,Ae="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$_",ge=Ae.length;function se(e){let r=e%ve,n=be[r];for(e=(e-r)/ve;e>0;)r=e%ge,n+=Ae[r],e=(e-r)/ge;return n}var Le={disabledFeatures:0};function h(e={}){let r=Object.assign({},Le,e||{});return{markedRefs:new Set,refs:new Map,features:8191^r.disabledFeatures}}function V(e){return{stack:[],vars:[],assignments:[],validRefs:[],refSize:0,features:e.features,markedRefs:new Set(e.markedRefs),valueMap:new Map}}function R(e,r){e.markedRefs.add(r)}function m(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=se(n),e.vars[n]=t),t}function P(e,r){let n=e.refs.get(r);return n==null?e.refs.size:n}function z(e,r){let n=e.refs.get(r);if(n==null){let t=e.refs.size;return e.refs.set(r,t),t}return R(e,n),n}function S(e,r){if(!e)throw new Error(r)}function A(e){let r="",n=0;for(let t=0,a=e.length;t<a;t++){let o;switch(e[t]){case'"':o='\\"';break;case"\\":o="\\\\";break;case"<":o="\\x3C";break;case`
|
|
2
|
+
`:o="\\n";break;case"\r":o="\\r";break;case"\u2028":o="\\u2028";break;case"\u2029":o="\\u2029";break;default:continue}r+=e.slice(n,t)+o,n=t+1}return n===0?r=e:r+=e.slice(n),r}function Ee(e){return e.replace(/\\"/g,'"').replace(/\\\\/g,"\\").replace(/\\x3C/g,"<").replace(/\\n/g,`
|
|
3
|
+
`).replace(/\\r/g,"\r").replace(/\\u2028/g,"\u2028").replace(/\\u2029/g,"\u2029")}var Ie={[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"},O={[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},Re={[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 T={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},U={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},j={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},M={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},D={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},_={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},L={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},x={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};function F(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}}function K(e){return{t:1,i:void 0,s:A(e),l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0}}function W(e,r){return S(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}}function Y(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}}function Z(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}}function G(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}}function H(e,r,n){let t=n.constructor.name;S(e.features&2048,`Unsupported value type "${t}"`);let a=n.length,o=new Array(a);for(let i=0;i<a;i++)o[i]=""+n[i];return{t:22,i:r,s:o,l:n.byteOffset,c:t,m:void 0,d:void 0,a:void 0,f:void 0}}var ke=4104;function J(e,r,n){let t=n.constructor.name;S((e.features&ke)===ke,`Unsupported value type "${t}"`);let a=n.length,o=new Array(a);for(let i=0;i<a;i++)o[i]=""+n[i];return{t:23,i:r,s:o,l:n.byteOffset,c:t,m:void 0,d:void 0,a:void 0,f:void 0}}function $(e){return{t:24,i:void 0,s:O[e],l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:void 0}}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 Oe(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 C(e,r){let n,t=w(r);r.name!==t?n={name:r.name}:r.constructor.name!==t&&(n={name:r.constructor.name});let a=Object.getOwnPropertyNames(r);for(let o of a)o!=="name"&&o!=="message"&&(o==="stack"?e.features&16&&(n=n||{},n[o]=r[o]):(n=n||{},n[o]=r[o]));return n}function q(e){let r=Object.getOwnPropertyNames(e);if(r.length){let n={};for(let t of r)n[t]=e[t];return n}}function N(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 Ce(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 xe=/^[$A-Z_][0-9A-Z_$]*$/i;function le(e){let r=e[0];return(r==="$"||r==="_"||r>="A"&&r<="Z"||r>="a"&&r<="z")&&xe.test(e)}async function de(e,r){let n=r.length,t=new Array(n),a=new Array(n),o;for(let i=0;i<n;i++)i in r&&(o=r[i],N(o)?a[i]=o:t[i]=await p(e,o));for(let i=0;i<n;i++)i in a&&(t[i]=await p(e,a[i]));return t}async function Fe(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 de(e,n),f:void 0}}async function Ke(e,r,n){S(e.features&32,'Unsupported type "Map"');let t=n.size,a=new Array(t),o=new Array(t),i=new Array(t),d=new Array(t),s=0,u=0;for(let[l,f]of n.entries())N(l)||N(f)?(i[s]=l,d[s]=f,s++):(a[u]=await p(e,l),o[u]=await p(e,f),u++);for(let l=0;l<s;l++)a[u+l]=await p(e,i[l]),o[u+l]=await p(e,d[l]);return{t:14,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:{k:a,v:o,s:t},a:void 0,f:void 0}}async function We(e,r,n){S(e.features&512,'Unsupported type "Set"');let t=n.size,a=new Array(t),o=new Array(t),i=0,d=0;for(let s of n.keys())N(s)?o[i++]=s:a[d++]=await p(e,s);for(let s=0;s<i;s++)a[d+s]=await p(e,o[s]);return{t:13,i:r,s:void 0,l:t,c:void 0,m:void 0,d:void 0,a,f:void 0}}async function ee(e,r){let n=Object.keys(r),t=n.length,a=new Array(t),o=new Array(t),i=new Array(t),d=new Array(t),s=0,u=0,l;for(let f of n)l=r[f],N(l)?(i[s]=f,d[s]=l,s++):(a[u]=f,o[u]=await p(e,l),u++);for(let f=0;f<s;f++)a[u+f]=i[f],o[u+f]=await p(e,d[f]);return{k:a,v:o,s:t}}async function we(e,r,n){S(e.features&1024,'Unsupported type "Iterable"');let t=q(n),a=Array.from(n);return{t:21,i:r,s:void 0,l:a.length,c:void 0,m:void 0,d:t?await ee(e,t):void 0,a:await de(e,a),f:void 0}}async function X(e,r,n){return S(e.features&256,'Unsupported type "Promise"'),n.then(async t=>({t:18,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:void 0,a:void 0,f:await p(e,t)}))}async function he(e,r,n,t){return Symbol.iterator in n?we(e,r,n):"then"in n&&typeof n.then=="function"?X(e,r,n):{t:t?17:16,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:await ee(e,n),a:void 0,f:void 0}}async function Ve(e,r,n){let t=C(e,n),a=t?await ee(e,t):void 0;return{t:20,i:r,s:void 0,l:n.errors.length,c:void 0,m:n.message,d:a,a:await de(e,n.errors),f:void 0}}async function Q(e,r,n){let t=C(e,n),a=t?await ee(e,t):void 0;return{t:19,i:r,s:void 0,l:void 0,c:w(n),m:n.message,d:a,a:void 0,f:void 0}}async function p(e,r){switch(typeof r){case"boolean":return r?T:U;case"undefined":return j;case"string":return K(r);case"number":switch(r){case 1/0:return _;case-1/0:return L;default:break}return r!==r?x:Object.is(r,-0)?D:F(r);case"bigint":return W(e,r);case"object":{if(!r)return M;let n=z(e,r);if(e.markedRefs.has(n))return Y(n);if(Array.isArray(r))return Fe(e,n,r);switch(r.constructor){case Date:return Z(n,r);case RegExp:return G(n,r);case Promise:return X(e,n,r);case Int8Array:case Int16Array:case Int32Array:case Uint8Array:case Uint16Array:case Uint32Array:case Uint8ClampedArray:case Float32Array:case Float64Array:return H(e,n,r);case BigInt64Array:case BigUint64Array:return J(e,n,r);case Map:return Ke(e,n,r);case Set:return We(e,n,r);case Object:return he(e,n,r,!1);case void 0:return he(e,n,r,!0);case AggregateError:return e.features&1?Ve(e,n,r):Q(e,n,r);case Error:case EvalError:case RangeError:case ReferenceError:case SyntaxError:case TypeError:case URIError:return Q(e,n,r);default:break}if(r instanceof AggregateError)return e.features&1?Ve(e,n,r):Q(e,n,r);if(r instanceof Error)return Q(e,n,r);if(r instanceof Promise)return X(e,n,r);if(Symbol.iterator in r)return we(e,n,r);if("then"in r&&typeof r.then=="function")return X(e,n,r);throw new Error("Unsupported type")}case"symbol":return S(e.features&1024,'Unsupported type "symbol"'),S(r in O,"seroval only supports well-known symbols"),$(r);default:throw new Error("Unsupported type")}}async function re(e,r){let n=await p(e,r),t=n.t===16||n.t===21;return[n,P(e,r),t]}function v(e,r,n){return e.valueMap.set(r,n),n}function ue(e,r,n){let t;for(let a=0,o=r.a.length;a<o;a++)t=r.a[a],t&&(n[a]=E(e,t));return n}function Ye(e,r){let n=v(e,r.i,new Array(r.l));return e.stack.push(r.i),ue(e,r,n),e.stack.pop(),n}function fe(e,r,n){if(r.s===0)return{};for(let t=0;t<r.s;t++)n[r.k[t]]=E(e,r.v[t]);return n}function Ze(e,r){let n=v(e,r.i,Object.create(null));return e.stack.push(r.i),fe(e,r.d,n),e.stack.pop(),n}function Ge(e,r){let n=v(e,r.i,{});return e.stack.push(r.i),fe(e,r.d,n),e.stack.pop(),n}function He(e,r){let n=v(e,r.i,new Set);e.stack.push(r.i);for(let t=0,a=r.a.length;t<a;t++)n.add(E(e,r.a[t]));return e.stack.pop(),n}function Je(e,r){let n=v(e,r.i,new Map);e.stack.push(r.i);for(let t=0;t<r.d.s;t++)n.set(E(e,r.d.k[t]),E(e,r.d.v[t]));return e.stack.pop(),n}function ce(e,r,n){if(r.d){e.stack.push(r.i);let t=fe(e,r.d,{});e.stack.pop(),Object.assign(n,t)}return n}function $e(e,r){let n=v(e,r.i,new AggregateError([],r.m));return e.stack.push(r.i),n.errors=ue(e,r,new Array(r.l)),e.stack.pop(),ce(e,r,n)}function qe(e,r){let n=Oe(r.c),t=v(e,r.i,new n(r.m));return ce(e,r,t)}function Qe(){let e;return{resolve(r){e(r)},promise:new Promise(r=>{e=r})}}function Xe(e,r){let n=Qe(),t=v(e,r.i,n.promise);return n.resolve(E(e,r.f)),t}function er(e,r){let n=Ce(r.c),t=new n,a=v(e,r.i,new n(t.buffer,r.l));for(let o=0,i=r.s.length;o<i;o++)a[o]=r.t===23?BigInt(r.s[o]):Number(r.s[o]);return a}function rr(e,r){let n=[];ue(e,r,n);let t=v(e,r.i,{[Symbol.iterator]:()=>n.values()});return ce(e,r,t)}function E(e,r){switch(r.t){case 0:case 2:return r.s;case 1:return Ee(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 Ye(e,r);case 16:return Ge(e,r);case 17:return Ze(e,r);case 11:return v(e,r.i,new Date(r.s));case 12:return v(e,r.i,new RegExp(r.c,r.m));case 13:return He(e,r);case 14:return Je(e,r);case 23:case 22:return er(e,r);case 20:return $e(e,r);case 19:return qe(e,r);case 21:return rr(e,r);case 18:return Xe(e,r);case 24:return Re[r.s];default:throw new Error("Unsupported type")}}function ne(e){switch(e.t){case"index":return e.s+"="+e.v;case"map":return e.s+".set("+e.k+","+e.v+")";case"set":return e.s+".add("+e.v+")";default:return""}}function nr(e){let r=[],n=e[0],t=n,a;for(let o=1,i=e.length;o<i;o++){if(a=e[o],a.t===t.t)switch(a.t){case"index":a.v===t.v?n={t:"index",s:a.s,k:void 0,v:ne(n)}:(r.push(n),n=a);break;case"map":a.s===t.s?n={t:"map",s:ne(n),k:a.k,v:a.v}:(r.push(n),n=a);break;case"set":a.s===t.s?n={t:"set",s:ne(n),k:void 0,v:a.v}:(r.push(n),n=a);break;default:break}else r.push(n),n=a;t=a}return r.push(n),r}function Pe(e){if(e.length){let r="",n=nr(e);for(let t=0,a=n.length;t<a;t++)r+=ne(n[t])+",";return r}}function ze(e){return Pe(e.assignments)}function Be(e,r,n){e.assignments.push({t:"index",s:r,k:void 0,v:n})}function tr(e,r,n){R(e,r),e.assignments.push({t:"set",s:m(e,r),k:void 0,v:n})}function Se(e,r,n,t){R(e,r),e.assignments.push({t:"map",s:m(e,r),k:n,v:t})}function me(e,r,n,t){R(e,r),Be(e,m(e,r)+"["+n+"]",t)}function Te(e,r,n,t){R(e,r),Be(e,m(e,r)+"."+n,t)}function b(e,r,n){return e.markedRefs.has(r)?m(e,r)+"="+n:n}function k(e,r){return r.t===10&&e.stack.includes(r.i)}function ye(e,r){let n=r.l,t="",a,o=!1;for(let i=0;i<n;i++)i!==0&&(t+=","),a=r.a[i],a?k(e,a)?(me(e,r.i,i,m(e,a.i)),o=!0):(t+=y(e,a),o=!1):o=!0;return"["+t+(o?",]":"]")}function ar(e,r){e.stack.push(r.i);let n=ye(e,r);return e.stack.pop(),b(e,r.i,n)}function Ue(e,r,n){if(n.s===0)return"{}";let t="";e.stack.push(r);let a,o,i,d,s,u=!1;for(let l=0;l<n.s;l++)a=n.k[l],o=n.v[l],i=Number(a),d=i>=0||le(a),k(e,o)?(s=m(e,o.i),d&&Number.isNaN(i)?Te(e,r,a,s):me(e,r,d?a:'"'+A(a)+'"',s)):(t+=(u?",":"")+(d?a:'"'+A(a)+'"')+":"+y(e,o),u=!0);return e.stack.pop(),"{"+t+"}"}function or(e,r,n,t){let a=Ue(e,n,r);return a!=="{}"?"Object.assign("+t+","+a+")":t}function ir(e,r,n){e.stack.push(r);let t=[],a,o,i,d,s,u;for(let l=0;l<n.s;l++)a=e.stack,e.stack=[],o=y(e,n.v[l]),e.stack=a,i=n.k[l],d=Number(i),s=e.assignments,e.assignments=t,u=d>=0||le(i),u&&Number.isNaN(d)?Te(e,r,i,o):me(e,r,u?i:'"'+A(i)+'"',o),e.assignments=s;return e.stack.pop(),Pe(t)}function te(e,r,n,t){if(n)if(e.features&128)t=or(e,n,r,t);else{R(e,r);let a=ir(e,r,n);if(a)return"("+b(e,r,t)+","+a+m(e,r)+")"}return b(e,r,t)}function sr(e,r){return te(e,r.i,r.d,"Object.create(null)")}function lr(e,r){return b(e,r.i,Ue(e,r.i,r.d))}function dr(e,r){let n="new Set",t=r.l;if(t){let a="";e.stack.push(r.i);let o,i=!1;for(let d=0;d<t;d++)o=r.a[d],k(e,o)?tr(e,r.i,m(e,o.i)):(a+=(i?",":"")+y(e,o),i=!0);e.stack.pop(),a&&(n+="(["+a+"])")}return b(e,r.i,n)}function ur(e,r){let n="new Map";if(r.d.s){let t="";e.stack.push(r.i);let a,o,i,d,s,u=!1;for(let l=0;l<r.d.s;l++)a=r.d.k[l],o=r.d.v[l],k(e,a)?(i=m(e,a.i),k(e,o)?(d=m(e,o.i),Se(e,r.i,i,d)):(s=e.stack,e.stack=[],Se(e,r.i,i,y(e,o)),e.stack=s)):k(e,o)?(d=m(e,o.i),s=e.stack,e.stack=[],Se(e,r.i,y(e,a),d),e.stack=s):(t+=(u?",[":"[")+y(e,a)+","+y(e,o)+"]",u=!0);e.stack.pop(),t&&(n+="(["+t+"])")}return b(e,r.i,n)}function fr(e,r){e.stack.push(r.i);let n="new AggregateError("+ye(e,r)+',"'+A(r.m)+'")';return e.stack.pop(),te(e,r.i,r.d,n)}function cr(e,r){let n="new "+r.c+'("'+A(r.m)+'")';return te(e,r.i,r.d,n)}function Sr(e,r){let n;if(k(e,r.f)){let t=m(e,r.f.i);e.features&4?n="Promise.resolve().then(()=>"+t+")":n="Promise.resolve().then(function(){return "+t+"})"}else{e.stack.push(r.i);let t=y(e,r.f);e.stack.pop(),n="Promise.resolve("+t+")"}return b(e,r.i,n)}function mr(e,r){let n="",t=r.t===23;for(let o=0,i=r.s.length;o<i;o++)n+=(o!==0?",":"")+r.s[o]+(t?"n":"");let a="["+n+"]"+(r.l!==0?","+r.l:"");return b(e,r.i,"new "+r.c+"("+a+")")}function yr(e,r){let n=e.stack;e.stack=[];let t=ye(e,r);e.stack=n;let a=t;return e.features&2?a+=".values()":a+="[Symbol.iterator]()",e.features&4?a="{[Symbol.iterator]:()=>"+a+"}":e.features&64?a="{[Symbol.iterator](){return "+a+"}}":a="{[Symbol.iterator]:function(){return "+a+"}}",te(e,r.i,r.d,a)}function y(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 m(e,r.i);case 15:return ar(e,r);case 16:return lr(e,r);case 17:return sr(e,r);case 11:return b(e,r.i,'new Date("'+r.s+'")');case 12:return b(e,r.i,"/"+r.c+"/"+r.m);case 13:return dr(e,r);case 14:return ur(e,r);case 23:case 22:return mr(e,r);case 20:return fr(e,r);case 19:return cr(e,r);case 21:return yr(e,r);case 18:return Sr(e,r);case 24:return Ie[r.s];default:throw new Error("Unsupported type")}}function Ne(e,r){let n=r.length,t=new Array(n),a=new Array(n),o;for(let i=0;i<n;i++)i in r&&(o=r[i],N(o)?a[i]=o:t[i]=g(e,o));for(let i=0;i<n;i++)i in a&&(t[i]=g(e,a[i]));return t}function Nr(e,r,n){return{t:15,i:r,s:void 0,l:n.length,c:void 0,m:void 0,d:void 0,a:Ne(e,n),f:void 0}}function pr(e,r,n){S(e.features&32,'Unsupported type "Map"');let t=n.size,a=new Array(t),o=new Array(t),i=new Array(t),d=new Array(t),s=0,u=0;for(let[l,f]of n.entries())N(l)||N(f)?(i[s]=l,d[s]=f,s++):(a[u]=g(e,l),o[u]=g(e,f),u++);for(let l=0;l<s;l++)a[u+l]=g(e,i[l]),o[u+l]=g(e,d[l]);return{t:14,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:{k:a,v:o,s:t},a:void 0,f:void 0}}function vr(e,r,n){S(e.features&512,'Unsupported type "Set"');let t=n.size,a=new Array(t),o=new Array(t),i=0,d=0;for(let s of n.keys())N(s)?o[i++]=s:a[d++]=g(e,s);for(let s=0;s<i;s++)a[d+s]=g(e,o[s]);return{t:13,i:r,s:void 0,l:t,c:void 0,m:void 0,d:void 0,a,f:void 0}}function oe(e,r){let n=Object.keys(r),t=n.length,a=new Array(t),o=new Array(t),i=new Array(t),d=new Array(t),s=0,u=0,l;for(let f of n)l=r[f],N(l)?(i[s]=f,d[s]=l,s++):(a[u]=f,o[u]=g(e,l),u++);for(let f=0;f<s;f++)a[u+f]=i[f],o[u+f]=g(e,d[f]);return{k:a,v:o,s:t}}function De(e,r,n){S(e.features&1024,'Unsupported type "Iterable"');let t=q(n),a=Array.from(n);return{t:21,i:r,s:void 0,l:a.length,c:void 0,m:void 0,d:t?oe(e,t):void 0,a:Ne(e,a),f:void 0}}function je(e,r,n,t){return Symbol.iterator in n?De(e,r,n):{t:t?17:16,i:r,s:void 0,l:void 0,c:void 0,m:void 0,d:oe(e,n),a:void 0,f:void 0}}function Me(e,r,n){let t=C(e,n),a=t?oe(e,t):void 0;return{t:20,i:r,s:void 0,l:n.errors.length,c:void 0,m:n.message,d:a,a:Ne(e,n.errors),f:void 0}}function ae(e,r,n){let t=C(e,n),a=t?oe(e,t):void 0;return{t:19,i:r,s:void 0,l:void 0,c:w(n),m:n.message,d:a,a:void 0,f:void 0}}function g(e,r){switch(typeof r){case"boolean":return r?T:U;case"undefined":return j;case"string":return K(r);case"number":switch(r){case 1/0:return _;case-1/0:return L;default:break}return r!==r?x:Object.is(r,-0)?D:F(r);case"bigint":return W(e,r);case"object":{if(!r)return M;let n=z(e,r);if(e.markedRefs.has(n))return Y(n);if(Array.isArray(r))return Nr(e,n,r);switch(r.constructor){case Date:return Z(n,r);case RegExp:return G(n,r);case Int8Array:case Int16Array:case Int32Array:case Uint8Array:case Uint16Array:case Uint32Array:case Uint8ClampedArray:case Float32Array:case Float64Array:return H(e,n,r);case BigInt64Array:case BigUint64Array:return J(e,n,r);case Map:return pr(e,n,r);case Set:return vr(e,n,r);case Object:return je(e,n,r,!1);case void 0:return je(e,n,r,!0);case AggregateError:return e.features&1?Me(e,n,r):ae(e,n,r);case Error:case EvalError:case RangeError:case ReferenceError:case SyntaxError:case TypeError:case URIError:return ae(e,n,r);default:break}if(r instanceof AggregateError)return e.features&1?Me(e,n,r):ae(e,n,r);if(r instanceof Error)return ae(e,n,r);if(Symbol.iterator in r)return De(e,n,r);throw new Error("Unsupported type")}case"symbol":return S(e.features&1024,'Unsupported type "symbol"'),S(r in O,"seroval only supports well-known symbols"),$(r);default:throw new Error("Unsupported type")}}function ie(e,r){let n=g(e,r),t=n.t===16||n.t===21;return[n,P(e,r),t]}function pe(e,r,n,t){if(e.vars.length){let a=ze(e),o=t;if(a){let d=m(e,r);o=t+","+a+d,t.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?"("+t+")":t}function gr(e,r){let n=h(r),[t,a,o]=ie(n,e),i=V(n),d=y(i,t);return pe(i,a,o,d)}async function Ut(e,r){let n=h(r),[t,a,o]=await re(n,e),i=V(n),d=y(i,t);return pe(i,a,o,d)}function jt(e){return(0,eval)(e)}function Mt(e,r){let n=h(r),[t,a,o]=ie(n,e);return{t,r:a,i:o,f:n.features,m:Array.from(n.markedRefs)}}async function Dt(e,r){let n=h(r),[t,a,o]=await re(n,e);return{t,r:a,i:o,f:n.features,m:Array.from(n.markedRefs)}}function _t(e){let r=V({features:e.f,markedRefs:e.m}),n=y(r,e.t);return pe(r,e.r,e.i,n)}function Lt(e){let r=V({features:e.f,markedRefs:e.m});return E(r,e.t)}var xt=gr;export{I as Feature,_t as compileJSON,xt as default,jt as deserialize,Lt as fromJSON,gr as serialize,Ut as serializeAsync,Mt as toJSON,Dt as toJSONAsync};
|
package/dist/types/context.d.ts
CHANGED
|
@@ -51,8 +51,6 @@ export declare function markRef(ctx: ParserContext | SerializationContext, curre
|
|
|
51
51
|
* Calling this function means the value has been referenced somewhere
|
|
52
52
|
*/
|
|
53
53
|
export declare function getRefParam(ctx: SerializationContext, index: number): string;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
*/
|
|
57
|
-
export declare function createRef(ctx: ParserContext, current: unknown, mark: boolean): number;
|
|
54
|
+
export declare function getRootID(ctx: ParserContext, current: AsyncServerValue): number;
|
|
55
|
+
export declare function createRef(ctx: ParserContext, current: AsyncServerValue): number;
|
|
58
56
|
export {};
|
|
@@ -35,7 +35,7 @@ export interface SerovalBaseNode {
|
|
|
35
35
|
m: string | undefined;
|
|
36
36
|
d: SerovalDictionaryNode | undefined;
|
|
37
37
|
a: SerovalNode[] | undefined;
|
|
38
|
-
|
|
38
|
+
f: SerovalNode | undefined;
|
|
39
39
|
}
|
|
40
40
|
export interface SerovalObjectRecordNode {
|
|
41
41
|
k: string[];
|
|
@@ -142,7 +142,7 @@ export interface SerovalNullConstructorNode extends SerovalBaseNode {
|
|
|
142
142
|
}
|
|
143
143
|
export interface SerovalPromiseNode extends SerovalBaseNode {
|
|
144
144
|
t: SerovalNodeType.Promise;
|
|
145
|
-
|
|
145
|
+
f: SerovalNode;
|
|
146
146
|
i: number;
|
|
147
147
|
}
|
|
148
148
|
export interface SerovalErrorNode extends SerovalBaseNode {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "seroval",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.5.
|
|
4
|
+
"version": "0.5.1",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
7
7
|
"src"
|
|
@@ -64,5 +64,5 @@
|
|
|
64
64
|
"typesVersions": {
|
|
65
65
|
"*": {}
|
|
66
66
|
},
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "2154c039056b24f706dbb1c2006acd99383e9305"
|
|
68
68
|
}
|
package/src/context.ts
CHANGED
|
@@ -94,61 +94,51 @@ export function createSerializationContext(options: SerializationOptions): Seria
|
|
|
94
94
|
export function markRef(ctx: ParserContext | SerializationContext, current: number) {
|
|
95
95
|
ctx.markedRefs.add(current);
|
|
96
96
|
}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Creates a new reference ID from a given reference ID
|
|
100
|
-
* This new reference ID means that the reference itself
|
|
101
|
-
* has been referenced at least once, and is used to generate
|
|
102
|
-
* the variables
|
|
103
|
-
*/
|
|
104
|
-
function createValidRef(
|
|
105
|
-
ctx: SerializationContext,
|
|
106
|
-
index: number,
|
|
107
|
-
) {
|
|
108
|
-
const current = ctx.validRefs[index];
|
|
109
|
-
if (current == null) {
|
|
110
|
-
const value = ctx.refSize++;
|
|
111
|
-
ctx.validRefs[index] = value;
|
|
112
|
-
return value;
|
|
113
|
-
}
|
|
114
|
-
return current;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
97
|
/**
|
|
118
98
|
* Creates the reference param (identifier) from the given reference ID
|
|
119
99
|
* Calling this function means the value has been referenced somewhere
|
|
120
100
|
*/
|
|
121
101
|
export function getRefParam(ctx: SerializationContext, index: number) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
102
|
+
/**
|
|
103
|
+
* Creates a new reference ID from a given reference ID
|
|
104
|
+
* This new reference ID means that the reference itself
|
|
105
|
+
* has been referenced at least once, and is used to generate
|
|
106
|
+
* the variables
|
|
107
|
+
*/
|
|
108
|
+
let actualIndex = ctx.validRefs[index];
|
|
109
|
+
if (actualIndex == null) {
|
|
110
|
+
actualIndex = ctx.refSize++;
|
|
111
|
+
ctx.validRefs[index] = actualIndex;
|
|
125
112
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
113
|
+
let identifier = ctx.vars[actualIndex];
|
|
114
|
+
if (identifier == null) {
|
|
115
|
+
identifier = getIdentifier(actualIndex);
|
|
116
|
+
ctx.vars[actualIndex] = identifier;
|
|
117
|
+
}
|
|
118
|
+
return identifier;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export function getRootID(
|
|
122
|
+
ctx: ParserContext,
|
|
123
|
+
current: AsyncServerValue,
|
|
124
|
+
) {
|
|
125
|
+
const ref = ctx.refs.get(current);
|
|
126
|
+
if (ref == null) {
|
|
127
|
+
return ctx.refs.size;
|
|
128
|
+
}
|
|
129
|
+
return ref;
|
|
129
130
|
}
|
|
130
131
|
|
|
131
|
-
/**
|
|
132
|
-
* Creates a reference ID from the given values
|
|
133
|
-
*/
|
|
134
132
|
export function createRef(
|
|
135
133
|
ctx: ParserContext,
|
|
136
|
-
current:
|
|
137
|
-
|
|
138
|
-
): number {
|
|
139
|
-
// Check if reference number already exists
|
|
134
|
+
current: AsyncServerValue,
|
|
135
|
+
) {
|
|
140
136
|
const ref = ctx.refs.get(current);
|
|
141
|
-
if (ref
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
if (mark) {
|
|
146
|
-
markRef(ctx, ref);
|
|
147
|
-
}
|
|
148
|
-
return ref;
|
|
137
|
+
if (ref == null) {
|
|
138
|
+
const id = ctx.refs.size;
|
|
139
|
+
ctx.refs.set(current, id);
|
|
140
|
+
return id;
|
|
149
141
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
ctx.refs.set(current, id);
|
|
153
|
-
return id;
|
|
142
|
+
markRef(ctx, ref);
|
|
143
|
+
return ref;
|
|
154
144
|
}
|
package/src/tree/async.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
3
3
|
import assert from '../assert';
|
|
4
4
|
import { Feature } from '../compat';
|
|
5
|
-
import { createRef, ParserContext } from '../context';
|
|
5
|
+
import { createRef, getRootID, ParserContext } from '../context';
|
|
6
6
|
import {
|
|
7
7
|
AsyncServerValue,
|
|
8
8
|
BigIntTypedArrayValue,
|
|
@@ -100,7 +100,7 @@ async function generateArrayNode(
|
|
|
100
100
|
m: undefined,
|
|
101
101
|
d: undefined,
|
|
102
102
|
a: await generateNodeList(ctx, current),
|
|
103
|
-
|
|
103
|
+
f: undefined,
|
|
104
104
|
};
|
|
105
105
|
}
|
|
106
106
|
|
|
@@ -142,7 +142,7 @@ async function generateMapNode(
|
|
|
142
142
|
m: undefined,
|
|
143
143
|
d: { k: keyNodes, v: valueNodes, s: len },
|
|
144
144
|
a: undefined,
|
|
145
|
-
|
|
145
|
+
f: undefined,
|
|
146
146
|
};
|
|
147
147
|
}
|
|
148
148
|
|
|
@@ -178,7 +178,7 @@ async function generateSetNode(
|
|
|
178
178
|
m: undefined,
|
|
179
179
|
d: undefined,
|
|
180
180
|
a: nodes,
|
|
181
|
-
|
|
181
|
+
f: undefined,
|
|
182
182
|
};
|
|
183
183
|
}
|
|
184
184
|
|
|
@@ -238,7 +238,7 @@ async function generateIterableNode(
|
|
|
238
238
|
? await generateProperties(ctx, options as Record<string, AsyncServerValue>)
|
|
239
239
|
: undefined,
|
|
240
240
|
a: await generateNodeList(ctx, array),
|
|
241
|
-
|
|
241
|
+
f: undefined,
|
|
242
242
|
};
|
|
243
243
|
}
|
|
244
244
|
|
|
@@ -258,7 +258,7 @@ async function generatePromiseNode(
|
|
|
258
258
|
// Parse options first before the items
|
|
259
259
|
d: undefined,
|
|
260
260
|
a: undefined,
|
|
261
|
-
|
|
261
|
+
f: await parse(ctx, value),
|
|
262
262
|
}));
|
|
263
263
|
}
|
|
264
264
|
|
|
@@ -283,7 +283,7 @@ async function generateObjectNode(
|
|
|
283
283
|
m: undefined,
|
|
284
284
|
d: await generateProperties(ctx, current as Record<string, AsyncServerValue>),
|
|
285
285
|
a: undefined,
|
|
286
|
-
|
|
286
|
+
f: undefined,
|
|
287
287
|
};
|
|
288
288
|
}
|
|
289
289
|
|
|
@@ -305,7 +305,7 @@ async function generateAggregateErrorNode(
|
|
|
305
305
|
m: current.message,
|
|
306
306
|
d: optionsNode,
|
|
307
307
|
a: await generateNodeList(ctx, current.errors as AsyncServerValue[]),
|
|
308
|
-
|
|
308
|
+
f: undefined,
|
|
309
309
|
};
|
|
310
310
|
}
|
|
311
311
|
|
|
@@ -327,7 +327,7 @@ async function generateErrorNode(
|
|
|
327
327
|
m: current.message,
|
|
328
328
|
d: optionsNode,
|
|
329
329
|
a: undefined,
|
|
330
|
-
|
|
330
|
+
f: undefined,
|
|
331
331
|
};
|
|
332
332
|
}
|
|
333
333
|
|
|
@@ -343,6 +343,11 @@ async function parse(
|
|
|
343
343
|
case 'string':
|
|
344
344
|
return createStringNode(current);
|
|
345
345
|
case 'number':
|
|
346
|
+
switch (current) {
|
|
347
|
+
case Infinity: return INFINITY_NODE;
|
|
348
|
+
case -Infinity: return NEG_INFINITY_NODE;
|
|
349
|
+
default: break;
|
|
350
|
+
}
|
|
346
351
|
// eslint-disable-next-line no-self-compare
|
|
347
352
|
if (current !== current) {
|
|
348
353
|
return NAN_NODE;
|
|
@@ -350,12 +355,6 @@ async function parse(
|
|
|
350
355
|
if (Object.is(current, -0)) {
|
|
351
356
|
return NEG_ZERO_NODE;
|
|
352
357
|
}
|
|
353
|
-
if (Object.is(current, Infinity)) {
|
|
354
|
-
return INFINITY_NODE;
|
|
355
|
-
}
|
|
356
|
-
if (Object.is(current, -Infinity)) {
|
|
357
|
-
return NEG_INFINITY_NODE;
|
|
358
|
-
}
|
|
359
358
|
return createNumberNode(current);
|
|
360
359
|
case 'bigint':
|
|
361
360
|
return createBigIntNode(ctx, current);
|
|
@@ -365,7 +364,7 @@ async function parse(
|
|
|
365
364
|
}
|
|
366
365
|
// Non-primitive values needs a reference ID
|
|
367
366
|
// mostly because the values themselves are stateful
|
|
368
|
-
const id = createRef(ctx, current
|
|
367
|
+
const id = createRef(ctx, current);
|
|
369
368
|
if (ctx.markedRefs.has(id)) {
|
|
370
369
|
return createReferenceNode(id);
|
|
371
370
|
}
|
|
@@ -434,8 +433,11 @@ async function parse(
|
|
|
434
433
|
default:
|
|
435
434
|
break;
|
|
436
435
|
}
|
|
437
|
-
if (current instanceof AggregateError
|
|
438
|
-
|
|
436
|
+
if (current instanceof AggregateError) {
|
|
437
|
+
if (ctx.features & Feature.AggregateError) {
|
|
438
|
+
return generateAggregateErrorNode(ctx, id, current);
|
|
439
|
+
}
|
|
440
|
+
return generateErrorNode(ctx, id, current);
|
|
439
441
|
}
|
|
440
442
|
if (current instanceof Error) {
|
|
441
443
|
return generateErrorNode(ctx, id, current);
|
|
@@ -469,5 +471,5 @@ export default async function parseAsync(
|
|
|
469
471
|
const result = await parse(ctx, current);
|
|
470
472
|
const isObject = result.t === SerovalNodeType.Object
|
|
471
473
|
|| result.t === SerovalNodeType.Iterable;
|
|
472
|
-
return [result,
|
|
474
|
+
return [result, getRootID(ctx, current), isObject] as const;
|
|
473
475
|
}
|
package/src/tree/deserialize.ts
CHANGED
|
@@ -195,7 +195,7 @@ function deserializePromise(
|
|
|
195
195
|
) {
|
|
196
196
|
const deferred = createDeferred();
|
|
197
197
|
const result = assignRef(ctx, node.i, deferred.promise);
|
|
198
|
-
deferred.resolve(deserializeTree(ctx, node.
|
|
198
|
+
deferred.resolve(deserializeTree(ctx, node.f));
|
|
199
199
|
return result;
|
|
200
200
|
}
|
|
201
201
|
|
package/src/tree/primitives.ts
CHANGED
|
@@ -33,7 +33,7 @@ export const TRUE_NODE: SerovalBooleanNode = {
|
|
|
33
33
|
m: undefined,
|
|
34
34
|
d: undefined,
|
|
35
35
|
a: undefined,
|
|
36
|
-
|
|
36
|
+
f: undefined,
|
|
37
37
|
};
|
|
38
38
|
export const FALSE_NODE: SerovalBooleanNode = {
|
|
39
39
|
t: SerovalNodeType.Boolean,
|
|
@@ -44,7 +44,7 @@ export const FALSE_NODE: SerovalBooleanNode = {
|
|
|
44
44
|
m: undefined,
|
|
45
45
|
d: undefined,
|
|
46
46
|
a: undefined,
|
|
47
|
-
|
|
47
|
+
f: undefined,
|
|
48
48
|
};
|
|
49
49
|
export const UNDEFINED_NODE: SerovalUndefinedNode = {
|
|
50
50
|
t: SerovalNodeType.Undefined,
|
|
@@ -55,7 +55,7 @@ export const UNDEFINED_NODE: SerovalUndefinedNode = {
|
|
|
55
55
|
m: undefined,
|
|
56
56
|
d: undefined,
|
|
57
57
|
a: undefined,
|
|
58
|
-
|
|
58
|
+
f: undefined,
|
|
59
59
|
};
|
|
60
60
|
export const NULL_NODE: SerovalNullNode = {
|
|
61
61
|
t: SerovalNodeType.Null,
|
|
@@ -66,7 +66,7 @@ export const NULL_NODE: SerovalNullNode = {
|
|
|
66
66
|
m: undefined,
|
|
67
67
|
d: undefined,
|
|
68
68
|
a: undefined,
|
|
69
|
-
|
|
69
|
+
f: undefined,
|
|
70
70
|
};
|
|
71
71
|
export const NEG_ZERO_NODE: SerovalNegativeZeroNode = {
|
|
72
72
|
t: SerovalNodeType.NegativeZero,
|
|
@@ -77,7 +77,7 @@ export const NEG_ZERO_NODE: SerovalNegativeZeroNode = {
|
|
|
77
77
|
m: undefined,
|
|
78
78
|
d: undefined,
|
|
79
79
|
a: undefined,
|
|
80
|
-
|
|
80
|
+
f: undefined,
|
|
81
81
|
};
|
|
82
82
|
export const INFINITY_NODE: SerovalInfinityNode = {
|
|
83
83
|
t: SerovalNodeType.Infinity,
|
|
@@ -88,7 +88,7 @@ export const INFINITY_NODE: SerovalInfinityNode = {
|
|
|
88
88
|
m: undefined,
|
|
89
89
|
d: undefined,
|
|
90
90
|
a: undefined,
|
|
91
|
-
|
|
91
|
+
f: undefined,
|
|
92
92
|
};
|
|
93
93
|
export const NEG_INFINITY_NODE: SerovalNegativeInfinityNode = {
|
|
94
94
|
t: SerovalNodeType.NegativeInfinity,
|
|
@@ -99,7 +99,7 @@ export const NEG_INFINITY_NODE: SerovalNegativeInfinityNode = {
|
|
|
99
99
|
m: undefined,
|
|
100
100
|
d: undefined,
|
|
101
101
|
a: undefined,
|
|
102
|
-
|
|
102
|
+
f: undefined,
|
|
103
103
|
};
|
|
104
104
|
export const NAN_NODE: SerovalNaNNode = {
|
|
105
105
|
t: SerovalNodeType.NaN,
|
|
@@ -110,7 +110,7 @@ export const NAN_NODE: SerovalNaNNode = {
|
|
|
110
110
|
m: undefined,
|
|
111
111
|
d: undefined,
|
|
112
112
|
a: undefined,
|
|
113
|
-
|
|
113
|
+
f: undefined,
|
|
114
114
|
};
|
|
115
115
|
|
|
116
116
|
export function createNumberNode(value: number): SerovalNumberNode {
|
|
@@ -123,7 +123,7 @@ export function createNumberNode(value: number): SerovalNumberNode {
|
|
|
123
123
|
m: undefined,
|
|
124
124
|
d: undefined,
|
|
125
125
|
a: undefined,
|
|
126
|
-
|
|
126
|
+
f: undefined,
|
|
127
127
|
};
|
|
128
128
|
}
|
|
129
129
|
|
|
@@ -137,7 +137,7 @@ export function createStringNode(value: string): SerovalStringNode {
|
|
|
137
137
|
m: undefined,
|
|
138
138
|
d: undefined,
|
|
139
139
|
a: undefined,
|
|
140
|
-
|
|
140
|
+
f: undefined,
|
|
141
141
|
};
|
|
142
142
|
}
|
|
143
143
|
|
|
@@ -149,13 +149,13 @@ export function createBigIntNode(
|
|
|
149
149
|
return {
|
|
150
150
|
t: SerovalNodeType.BigInt,
|
|
151
151
|
i: undefined,
|
|
152
|
-
s: current
|
|
152
|
+
s: '' + current,
|
|
153
153
|
l: undefined,
|
|
154
154
|
c: undefined,
|
|
155
155
|
m: undefined,
|
|
156
156
|
d: undefined,
|
|
157
157
|
a: undefined,
|
|
158
|
-
|
|
158
|
+
f: undefined,
|
|
159
159
|
};
|
|
160
160
|
}
|
|
161
161
|
|
|
@@ -169,7 +169,7 @@ export function createReferenceNode(id: number): SerovalReferenceNode {
|
|
|
169
169
|
m: undefined,
|
|
170
170
|
d: undefined,
|
|
171
171
|
a: undefined,
|
|
172
|
-
|
|
172
|
+
f: undefined,
|
|
173
173
|
};
|
|
174
174
|
}
|
|
175
175
|
|
|
@@ -182,7 +182,7 @@ export function createDateNode(id: number, current: Date): SerovalDateNode {
|
|
|
182
182
|
c: undefined,
|
|
183
183
|
m: undefined,
|
|
184
184
|
d: undefined,
|
|
185
|
-
|
|
185
|
+
f: undefined,
|
|
186
186
|
a: undefined,
|
|
187
187
|
};
|
|
188
188
|
}
|
|
@@ -197,7 +197,7 @@ export function createRegExpNode(id: number, current: RegExp): SerovalRegExpNode
|
|
|
197
197
|
m: current.flags,
|
|
198
198
|
d: undefined,
|
|
199
199
|
a: undefined,
|
|
200
|
-
|
|
200
|
+
f: undefined,
|
|
201
201
|
};
|
|
202
202
|
}
|
|
203
203
|
|
|
@@ -211,7 +211,7 @@ export function createTypedArrayNode(
|
|
|
211
211
|
const len = current.length;
|
|
212
212
|
const values = new Array<string>(len);
|
|
213
213
|
for (let i = 0; i < len; i++) {
|
|
214
|
-
values[i] = current[i]
|
|
214
|
+
values[i] = '' + current[i];
|
|
215
215
|
}
|
|
216
216
|
return {
|
|
217
217
|
t: SerovalNodeType.TypedArray,
|
|
@@ -222,7 +222,7 @@ export function createTypedArrayNode(
|
|
|
222
222
|
m: undefined,
|
|
223
223
|
d: undefined,
|
|
224
224
|
a: undefined,
|
|
225
|
-
|
|
225
|
+
f: undefined,
|
|
226
226
|
};
|
|
227
227
|
}
|
|
228
228
|
|
|
@@ -241,18 +241,18 @@ export function createBigIntTypedArrayNode(
|
|
|
241
241
|
const len = current.length;
|
|
242
242
|
const values = new Array<string>(len);
|
|
243
243
|
for (let i = 0; i < len; i++) {
|
|
244
|
-
values[i] = current[i]
|
|
244
|
+
values[i] = '' + current[i];
|
|
245
245
|
}
|
|
246
246
|
return {
|
|
247
247
|
t: SerovalNodeType.BigIntTypedArray,
|
|
248
248
|
i: id,
|
|
249
249
|
s: values,
|
|
250
|
-
l:
|
|
250
|
+
l: current.byteOffset,
|
|
251
251
|
c: constructor,
|
|
252
252
|
m: undefined,
|
|
253
253
|
d: undefined,
|
|
254
254
|
a: undefined,
|
|
255
|
-
|
|
255
|
+
f: undefined,
|
|
256
256
|
};
|
|
257
257
|
}
|
|
258
258
|
|
|
@@ -268,6 +268,6 @@ export function createWKSymbolNode(
|
|
|
268
268
|
m: undefined,
|
|
269
269
|
d: undefined,
|
|
270
270
|
a: undefined,
|
|
271
|
-
|
|
271
|
+
f: undefined,
|
|
272
272
|
};
|
|
273
273
|
}
|