seroval 0.4.0-alpha.12 → 0.4.0-alpha.13

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.
@@ -1,2 +1,2 @@
1
- var ge=Object.defineProperty;var pe=(r,e,t)=>e in r?ge(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var R=(r,e,t)=>(pe(r,typeof e!="symbol"?e+"":e,t),t);function me(r,e){let t=r[0]-e[0];return t===0&&(t=r[1]-e[1]),t===0&&(t=r[2]-e[2]),t}var X={[1]:{es:[2021,0,0],chrome:[85,0,0],edge:[85,0,0],firefox:[79,0,0],opera:[71,0,0],safari:[14,0,0],ios:[14,0,0],samsung:[14,0,0],deno:[1,2,0],node:[15,0,0]},[2]:{es:[6,0,0],chrome:[66,0,0],edge:[14,0,0],firefox:[60,0,0],opera:[53,0,0],safari:[9,0,0],ios:[9,0,0],samsung:[9,0,0],deno:[1,0,0],node:[10,9,0]},[4]:{es:[6,0,0],chrome:[45,0,0],edge:[12,0,0],firefox:[24,0,0],opera:[32,0,0],safari:[10,0,0],ios:[10,0,0],samsung:[5,0,0],deno:[1,0,0],node:[4,0,0]},[8]:{es:[2020,0,0],chrome:[67,0,0],edge:[79,0,0],firefox:[68,0,0],opera:[54,0,0],safari:[14,0,0],ios:[14,0,0],samsung:[9,0,0],deno:[1,0,0],node:[10,4,0]},[16]:{es:[6,0,0],chrome:[38,0,0],edge:[12,0,0],firefox:[13,0,0],opera:[25,0,0],safari:[8,0,0],ios:[8,0,0],samsung:[3,0,0],deno:[1,0,0],node:[0,12,0]},[32]:{es:[6,0,0],chrome:[39,0,0],edge:[12,0,0],firefox:[34,0,0],opera:[26,0,0],safari:[9,0,0],ios:[9,0,0],samsung:[4,0,0],deno:[1,0,0],node:[4,0,0]},[64]:{es:[6,0,0],chrome:[45,0,0],edge:[12,0,0],firefox:[34,0,0],opera:[32,0,0],safari:[9,0,0],ios:[9,0,0],samsung:[5,0,0],deno:[1,0,0],node:[4,0,0]},[128]:{es:[6,0,0],chrome:[32,0,0],edge:[12,0,0],firefox:[29,0,0],opera:[19,0,0],safari:[8,0,0],ios:[8,0,0],samsung:[2,0,0],deno:[1,0,0],node:[0,12,0]},[256]:{es:[6,0,0],chrome:[38,0,0],edge:[12,0,0],firefox:[13,0,0],opera:[25,0,0],safari:[8,0,0],ios:[8,0,0],samsung:[3,0,0],deno:[1,0,0],node:[0,12,0]},[512]:{es:[6,0,0],chrome:[43,0,0],edge:[12,0,0],firefox:[36,0,0],opera:[30,0,0],safari:[10,0,0],ios:[10,0,0],samsung:[4,0,0],deno:[1,0,0],node:[0,12,0]},[1024]:{es:[6,0,0],chrome:[7,0,0],edge:[12,0,0],firefox:[4,0,0],opera:[11,6,0],safari:[5,1,0],ios:[4,2,0],samsung:[1,0,0],deno:[1,0,0],node:[0,10,0]},[2048]:{es:[2020,0,0],chrome:[67,0,0],edge:[79,0,0],firefox:[68,0,0],opera:[54,6,0],safari:[15,1,0],ios:[15,2,0],samsung:[9,0,0],deno:[1,0,0],node:[10,4,0]}},K=["chrome","deno","edge","es","firefox","ios","node","opera","safari","samsung"];function Se(r){for(let e=0,t=K.length;e<t;e++){let n=r.substring(0,K[e].length);if(n===K[e])return n}throw new Error(`Invalid target "${r}"`)}function ee(r){let e=Se(r),t=r.substring(e.length),[n,o="0",s="0"]=t.split(".");return[e,[Number(n),Number(o),Number(s)]]}function ye(r){if(Array.isArray(r)){let e=[];for(let t=0,n=r.length;t<n;t++)e.push(ee(r[t]));return e}return[ee(r)]}function re(r){let e=ye(r),t=0;for(let n of Object.keys(X)){let o=X[n],s=!0;for(let[a,d]of e){let i=o[a];s=s&&!!i&&me(i,d)<=0}s&&(t|=Number(n))}return t}var oe="hjkmoquxzABCDEFGHIJKLNPQRTUVWXYZ$_",te=oe.length,ae="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$_",ne=ae.length;function Z(r){let e=r%te,t=oe[e];for(r=(r-e)/te;r>0;)e=r%ne,t+=ae[e],r=(r-e)/ne;return t}var Ne={target:"es2023"};function h(r={}){let e=Object.assign({},Ne,r||{});return{markedRefs:{},refs:new Map,features:re(e.target)}}function O(r){return{stack:[],vars:[],assignments:[],validRefs:[],refSize:0,features:r.features,markedRefs:r.markedRefs}}function v(r,e){r.markedRefs[e]=1}function ve(r,e){let t=r.validRefs[e];if(t==null){let n=r.refSize++;return r.validRefs[e]=n,n}return t}function c(r,e){let t=ve(r,e);if(r.vars[t])return r.vars[t];let n=Z(t);return r.vars[t]=n,n}function b(r,e,t){let n=r.refs.get(e);if(n!=null)return t&&v(r,n),n;let o=r.refs.size;return r.refs.set(e,o),o}function S(r,e){if(!r)throw new Error(e)}function N(r){let e="",t=0;for(let n=0,o=r.length;n<o;n++){let s;switch(r[n]){case'"':s='\\"';break;case"\\":s="\\\\";break;case"<":s="\\x3C";break;case`
2
- `:s="\\n";break;case"\r":s="\\r";break;case"\u2028":s="\\u2028";break;case"\u2029":s="\\u2029";break;default:continue}e+=r.slice(t,n)+s,t=n+1}return t===0?e=r:e+=r.slice(t),`"${e}"`}function g(r){return{t:0,i:void 0,s:r,l:void 0,m:void 0,c:void 0,d:void 0,a:void 0,n:void 0}}var P=g("!0"),x=g("!1"),w=g("void 0"),z=g(null),C=g("-0"),Xe=g("1/0"),er=g("-1/0");function j(r,e){return S(r.features&8,'Unsupported type "BigInt"'),{t:1,i:void 0,a:void 0,s:`${e}n`,l:void 0,m:void 0,c:void 0,d:void 0,n:void 0}}function T(r){return{t:2,i:r,a:void 0,s:void 0,l:void 0,m:void 0,c:void 0,d:void 0,n:void 0}}function $(r,e){return{t:3,i:r,a:void 0,s:e.toISOString(),l:void 0,m:void 0,c:void 0,d:void 0,n:void 0}}function B(r,e){return{t:4,i:r,a:void 0,s:String(e),l:void 0,m:void 0,c:void 0,d:void 0,n:void 0}}function D(r,e,t){let n=t.constructor.name;return S(r.features&1024,`Unsupported value type "${n}"`),{t:14,i:e,a:void 0,s:t.toString(),l:t.byteOffset,m:void 0,c:n,d:void 0,n:void 0}}function U(r,e,t){let n=t.constructor.name;S(r.features&2048,`Unsupported value type "${n}"`);let o="",s=t.length-1;for(let a=0;a<s;a++)o+=`${t[a]}n,`;return o+=`"${t[s]}"`,{t:15,i:e,a:void 0,s:o,l:t.byteOffset,m:void 0,c:n,d:void 0,n:void 0}}function I(r){return r instanceof EvalError?"EvalError":r instanceof RangeError?"RangeError":r instanceof ReferenceError?"ReferenceError":r instanceof SyntaxError?"SyntaxError":r instanceof TypeError?"TypeError":r instanceof URIError?"URIError":"Error"}function E(r){let e,t=I(r);r.name!==t?e={name:r.name}:r.constructor.name!==t&&(e={name:r.constructor.name});let n=Object.getOwnPropertyNames(r);for(let o of n)o!=="name"&&o!=="message"&&(e=e||{},e[o]=r[o]);return e}function M(r){let e=Object.getOwnPropertyNames(r);if(e.length){let t={};for(let n of e)t[n]=r[n];return t}}function A(r,e){return e.t===2&&r.stack.includes(e.i)}function y(r){if(!r||typeof r!="object"||Array.isArray(r))return!1;switch(r.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 r}var q=class{constructor(e){R(this,"ctx");this.ctx=e}async generateNodeList(e){let t=e.length,n=new Array(t),o=new Array(t),s;for(let a=0;a<t;a++)a in e&&(s=e[a],y(s)?o[a]=s:n[a]=await this.parse(s));for(let a=0;a<t;a++)a in o&&(n[a]=await this.parse(o[a]));return n}async generateArrayNode(e,t){return{t:7,i:e,a:await this.generateNodeList(t),s:void 0,l:void 0,m:void 0,c:void 0,d:void 0,n:void 0}}async generateMapNode(e,t){S(this.ctx.features&16,'Unsupported type "Map"');let n=t.size,o=new Array(n),s=new Array(n),a=new Array(n),d=new Array(n),i=0,f=0;for(let[l,u]of t.entries())y(l)||y(u)?(a[i]=l,d[i]=u,i++):(o[f]=await this.parse(l),s[f]=await this.parse(u),f++);for(let l=0;l<i;l++)o[f+l]=await this.parse(a[l]),s[f+l]=await this.parse(d[l]);return{t:6,i:e,a:void 0,s:void 0,l:void 0,m:void 0,c:void 0,d:{k:o,v:s,s:n},n:void 0}}async generateSetNode(e,t){S(this.ctx.features&256,'Unsupported type "Set"');let n=t.size,o=new Array(n),s=new Array(n),a=0,d=0;for(let i of t.keys())y(i)?s[a++]=i:o[d++]=await this.parse(i);for(let i=0;i<a;i++)o[d+i]=await this.parse(s[i]);return{t:5,i:e,a:o,s:void 0,l:void 0,m:void 0,c:void 0,d:void 0,n:void 0}}async generateProperties(e){let t=Object.keys(e),n=t.length,o=new Array(n),s=new Array(n),a=new Array(n),d=new Array(n),i=0,f=0,l;for(let u of t)l=e[u],y(l)?(a[i]=u,d[i]=l,i++):(o[f]=u,s[f]=await this.parse(l),f++);for(let u=0;u<i;u++)o[f+u]=a[u],s[f+u]=await this.parse(d[u]);return{k:o,v:s,s:n}}async generateIterableNode(e,t){S(this.ctx.features&512,'Unsupported type "Iterable"');let n=M(t);return{t:13,i:e,s:void 0,l:void 0,m:void 0,c:void 0,d:n?await this.generateProperties(n):void 0,a:await this.generateNodeList(Array.from(t)),n:void 0}}async generatePromiseNode(e,t){return S(this.ctx.features&128,'Unsupported type "Promise"'),t.then(async n=>({t:10,i:e,s:void 0,l:void 0,m:void 0,c:void 0,d:void 0,a:void 0,n:await this.parse(n)}))}async generateObjectNode(e,t,n){return Symbol.iterator in t?this.generateIterableNode(e,t):"then"in t&&typeof t.then=="function"?this.generatePromiseNode(e,t):{t:n?9:8,i:e,s:void 0,l:void 0,m:void 0,c:void 0,d:await this.generateProperties(t),a:void 0,n:void 0}}async generateAggregateErrorNode(e,t){let n=E(t),o=n?await this.generateProperties(n):void 0;return{t:12,i:e,a:void 0,s:void 0,l:void 0,m:t.message,c:void 0,d:o,n:await this.parse(t.errors)}}async generateErrorNode(e,t){let n=E(t),o=n?await this.generateProperties(n):void 0;return{t:11,i:e,a:void 0,s:void 0,l:void 0,m:t.message,c:I(t),d:o,n:void 0}}async parse(e){switch(typeof e){case"boolean":return e?P:x;case"undefined":return w;case"string":return g(N(e));case"number":return Object.is(e,-0)?C:Object.is(e,1/0)?g("1/0"):Object.is(e,-1/0)?g("-1/0"):g(e);case"bigint":return j(this.ctx,e);case"object":{if(!e)return z;let t=b(this.ctx,e,!0);if(this.ctx.markedRefs[t])return T(t);if(Array.isArray(e))return this.generateArrayNode(t,e);switch(e.constructor){case Date:return $(t,e);case RegExp:return B(t,e);case Promise:return this.generatePromiseNode(t,e);case Int8Array:case Int16Array:case Int32Array:case Uint8Array:case Uint16Array:case Uint32Array:case Uint8ClampedArray:case Float32Array:case Float64Array:return D(this.ctx,t,e);case BigInt64Array:case BigUint64Array:return U(this.ctx,t,e);case Map:return this.generateMapNode(t,e);case Set:return this.generateSetNode(t,e);case Object:return this.generateObjectNode(t,e,!1);case void 0:return this.generateObjectNode(t,e,!0);case AggregateError:return this.ctx.features&1?this.generateAggregateErrorNode(t,e):this.generateErrorNode(t,e);case Error:case EvalError:case RangeError:case ReferenceError:case SyntaxError:case TypeError:case URIError:return this.generateErrorNode(t,e);default:break}if(e instanceof AggregateError&&this.ctx.features&1)return this.generateAggregateErrorNode(t,e);if(e instanceof Error)return this.generateErrorNode(t,e);if(e instanceof Promise)return this.generatePromiseNode(t,e);if(Symbol.iterator in e)return this.generateIterableNode(t,e);if("then"in e&&typeof e.then=="function")return this.generatePromiseNode(t,e);throw new Error("Unsupported type")}default:throw new Error("Unsupported type")}}};async function _(r,e){let t=await new q(r).parse(e),n=t.t===8||t.t===13;return[t,b(r,e,!1),n]}function L(r){switch(r.type){case"index":return`${r.source}=${r.value}`;case"map":return`${r.source}.set(${r.key},${r.value})`;case"set":return`${r.source}.add(${r.value})`;default:return""}}function Ae(r){let e=[],t=r[0],n=t;for(let o=1,s=r.length;o<s;o++){let a=r[o];a.type===n.type?a.type==="index"&&a.value===n.value?t={type:"index",source:a.source,value:L(t)}:a.type==="map"&&a.source===n.source?t={type:"map",source:L(t),key:a.key,value:a.value}:a.type==="set"&&a.source===n.source?t={type:"set",source:L(t),value:a.value}:(e.push(t),t=a):(e.push(t),t=a),n=a}return e.push(t),e}function se(r){if(r.length){let e="",t=Ae(r);for(let n=0,o=t.length;n<o;n++)e+=`${L(t[n])},`;return e}}function ie(r){return se(r.assignments)}function p(r,e,t){return r.markedRefs[e]?`${c(r,e)}=${t}`:t}function de(r,e,t){r.assignments.push({type:"index",source:e,value:t})}function be(r,e,t){v(r,e),r.assignments.push({type:"set",source:c(r,e),value:t})}function G(r,e,t,n){v(r,e),r.assignments.push({type:"map",source:c(r,e),key:t,value:n})}function W(r,e,t,n){v(r,e),de(r,`${c(r,e)}[${t}]`,n)}function le(r,e,t,n){v(r,e),de(r,`${c(r,e)}.${t}`,n)}var ue=/^([$A-Z_][0-9A-Z_$]*)$/i;function F(r,e,t){r.stack.push(e);let n=[];for(let o=0;o<t.s;o++){let s=r.stack;r.stack=[];let a=m(r,t.v[o]);r.stack=s;let d=t.k[o],i=Number(d),f=r.assignments;r.assignments=n;let l=i>=0||ue.test(d);l&&Number.isNaN(i)?le(r,e,d,a):W(r,e,l?d:N(d),a),r.assignments=f}return r.stack.pop(),se(n)}function fe(r,e,t){if(t.s===0)return"{}";let n="";r.stack.push(e);for(let o=0;o<t.s;o++){let s=t.k[o],a=t.v[o],d=Number(s),i=d>=0||ue.test(s);if(A(r,a)){let f=c(r,a.i);i&&Number.isNaN(d)?le(r,e,s,f):W(r,e,i?s:N(s),f)}else n+=`${i?s:N(s)}:${m(r,a)},`}return r.stack.pop(),`{${n.substring(0,n.length-1)}}`}function Ee(r,e){let t;if(A(r,e.n))t=`Promise.resolve().then(()=>${c(r,e.n.i)})`;else{r.stack.push(e.i);let n=m(r,e.n);r.stack.pop(),t=`Promise.resolve(${n})`}return p(r,e.i,t)}function he(r,e){let t=`[${e.s}]`;return e.l!==0&&(t+=`,${e.l}`),p(r,e.i,`new ${e.c}(${t})`)}function Ie(r,e){let t="new Set",n=e.a.length;if(n){let o="";r.stack.push(e.i);for(let s=0;s<n;s++){let a=e.a[s];A(r,a)?be(r,e.i,c(r,a.i)):o+=`${m(r,a)},`}r.stack.pop(),o&&(t+=`([${o.substring(0,o.length-1)}])`)}return p(r,e.i,t)}function Re(r,e){let t="new Map";if(e.d.s){let n="";r.stack.push(e.i);for(let o=0;o<e.d.s;o++){let s=e.d.k[o],a=e.d.v[o];if(A(r,s)){let d=c(r,s.i);if(A(r,a)){let i=c(r,a.i);G(r,e.i,d,i)}else{let i=r.stack;r.stack=[],G(r,e.i,d,m(r,a)),r.stack=i}}else if(A(r,a)){let d=c(r,a.i),i=r.stack;r.stack=[],G(r,e.i,m(r,s),d),r.stack=i}else n+=`[${m(r,s)},${m(r,a)}],`}r.stack.pop(),n&&(t+=`([${n.substring(0,n.length-1)}])`)}return p(r,e.i,t)}function ce(r,e){let t=e.a.length,n="";for(let o=0;o<t;o++){let s=e.a[o];s?A(r,s)?(W(r,e.i,o,c(r,s.i)),n+=","):(n+=m(r,s),o<t-1&&(n+=",")):n+=","}return`[${n}]`}function Oe(r,e){r.stack.push(e.i);let t=ce(r,e);return r.stack.pop(),p(r,e.i,t)}function J(r,e,t,n){let o=fe(r,t,e);return o!=="{}"?`Object.assign(${n},${o})`:n}function Ve(r,e){r.stack.push(e.i);let t=`new AggregateError(${m(r,e.n)},${N(e.m)})`;if(r.stack.pop(),e.d)if(r.features&64)t=J(r,e.d,e.i,t);else{v(r,e.i);let n=F(r,e.i,e.d);if(n){let o=c(r,e.i);return`(${p(r,e.i,t)},${n}${o})`}}return p(r,e.i,t)}function ke(r,e){let t=`new ${e.c}(${N(e.m)})`;if(e.d)if(r.features&64)t=J(r,e.d,e.i,t);else{v(r,e.i);let n=F(r,e.i,e.d);if(n){let o=c(r,e.i);return`(${p(r,e.i,t)},${n}${o})`}}return p(r,e.i,t)}function Pe(r,e){let t=r.stack;r.stack=[];let n=ce(r,e);r.stack=t;let o;if(r.features&2?o=`${n}.values()`:o=`${n}[Symbol.iterator]()`,r.features&4?o=`{[Symbol.iterator]:()=>${o}}`:r.features&32?o=`{[Symbol.iterator](){return ${o}}}`:o=`{[Symbol.iterator]:function(){return ${o}}}`,e.d)if(r.features&64)o=J(r,e.d,e.i,o);else{v(r,e.i);let s=F(r,e.i,e.d);if(s){let a=c(r,e.i);return`(${p(r,e.i,o)},${s}${a})`}}return p(r,e.i,o)}function xe(r,e){let t="Object.create(null)";if(r.features&64)t=J(r,e.d,e.i,t);else{v(r,e.i);let n=F(r,e.i,e.d);if(n){let o=c(r,e.i);return`(${p(r,e.i,t)},${n}${o})`}}return p(r,e.i,t)}function m(r,e){switch(e.t){case 0:return String(e.s);case 2:return c(r,e.i);case 10:return Ee(r,e);case 1:return e.s;case 3:return p(r,e.i,`new Date("${e.s}")`);case 4:return p(r,e.i,e.s);case 15:case 14:return he(r,e);case 5:return Ie(r,e);case 6:return Re(r,e);case 7:return Oe(r,e);case 12:return Ve(r,e);case 11:return ke(r,e);case 13:return Pe(r,e);case 9:return xe(r,e);case 8:return p(r,e.i,fe(r,e.i,e.d));default:throw new Error("Unsupported type")}}var Y=class{constructor(e){R(this,"ctx");this.ctx=e}generateNodeList(e){let t=e.length,n=new Array(t),o=new Array(t),s;for(let a=0;a<t;a++)a in e&&(s=e[a],y(s)?o[a]=s:n[a]=this.parse(s));for(let a=0;a<t;a++)a in o&&(n[a]=this.parse(o[a]));return n}generateArrayNode(e,t){return{t:7,i:e,a:this.generateNodeList(t),s:void 0,l:void 0,m:void 0,c:void 0,d:void 0,n:void 0}}generateMapNode(e,t){S(this.ctx.features&16,'Unsupported type "Map"');let n=t.size,o=new Array(n),s=new Array(n),a=new Array(n),d=new Array(n),i=0,f=0;for(let[l,u]of t.entries())y(l)||y(u)?(a[i]=l,d[i]=u,i++):(o[f]=this.parse(l),s[f]=this.parse(u),f++);for(let l=0;l<i;l++)o[f+l]=this.parse(a[l]),s[f+l]=this.parse(d[l]);return{t:6,i:e,a:void 0,s:void 0,l:void 0,m:void 0,c:void 0,d:{k:o,v:s,s:n},n:void 0}}generateSetNode(e,t){S(this.ctx.features&256,'Unsupported type "Set"');let n=t.size,o=new Array(n),s=new Array(n),a=0,d=0;for(let i of t.keys())y(i)?s[a++]=i:o[d++]=this.parse(i);for(let i=0;i<a;i++)o[d+i]=this.parse(s[i]);return{t:5,i:e,a:o,s:void 0,l:void 0,m:void 0,c:void 0,d:void 0,n:void 0}}generateProperties(e){let t=Object.keys(e),n=t.length,o=new Array(n),s=new Array(n),a=new Array(n),d=new Array(n),i=0,f=0,l;for(let u of t)l=e[u],y(l)?(a[i]=u,d[i]=l,i++):(o[f]=u,s[f]=this.parse(l),f++);for(let u=0;u<i;u++)o[f+u]=a[u],s[f+u]=this.parse(d[u]);return{k:o,v:s,s:n}}generateIterableNode(e,t){S(this.ctx.features&512,'Unsupported type "Iterable"');let n=M(t);return{t:13,i:e,s:void 0,l:void 0,m:void 0,c:void 0,d:n?this.generateProperties(n):void 0,a:this.generateNodeList(Array.from(t)),n:void 0}}generateObjectNode(e,t,n){return Symbol.iterator in t?this.generateIterableNode(e,t):{t:n?9:8,i:e,s:void 0,l:void 0,m:void 0,c:void 0,d:this.generateProperties(t),a:void 0,n:void 0}}generateAggregateErrorNode(e,t){let n=E(t),o=n?this.generateProperties(n):void 0;return{t:12,i:e,a:void 0,s:void 0,l:void 0,m:t.message,c:void 0,d:o,n:this.parse(t.errors)}}generateErrorNode(e,t){let n=E(t),o=n?this.generateProperties(n):void 0;return{t:11,i:e,a:void 0,s:void 0,l:void 0,m:t.message,c:I(t),d:o,n:void 0}}parse(e){switch(typeof e){case"boolean":return e?P:x;case"undefined":return w;case"string":return g(N(e));case"number":return Object.is(e,-0)?C:Object.is(e,1/0)?g("1/0"):Object.is(e,-1/0)?g("-1/0"):g(e);case"bigint":return j(this.ctx,e);case"object":{if(!e)return z;let t=b(this.ctx,e,!0);if(this.ctx.markedRefs[t])return T(t);if(Array.isArray(e))return this.generateArrayNode(t,e);switch(e.constructor){case Date:return $(t,e);case RegExp:return B(t,e);case Int8Array:case Int16Array:case Int32Array:case Uint8Array:case Uint16Array:case Uint32Array:case Uint8ClampedArray:case Float32Array:case Float64Array:return D(this.ctx,t,e);case BigInt64Array:case BigUint64Array:return U(this.ctx,t,e);case Map:return this.generateMapNode(t,e);case Set:return this.generateSetNode(t,e);case Object:return this.generateObjectNode(t,e,!1);case void 0:return this.generateObjectNode(t,e,!0);case AggregateError:return this.ctx.features&1?this.generateAggregateErrorNode(t,e):this.generateErrorNode(t,e);case Error:case EvalError:case RangeError:case ReferenceError:case SyntaxError:case TypeError:case URIError:return this.generateErrorNode(t,e);default:break}if(e instanceof AggregateError&&this.ctx.features&1)return this.generateAggregateErrorNode(t,e);if(e instanceof Error)return this.generateErrorNode(t,e);if(Symbol.iterator in e)return this.generateIterableNode(t,e);throw new Error("Unsupported type")}default:throw new Error("Unsupported type")}}};function H(r,e){let t=new Y(r).parse(e),n=t.t===8||t.t===13;return[t,b(r,e,!1),n]}function Q(r,e,t,n){if(r.vars.length){let o=ie(r),s=n;if(o){let d=c(r,e);n.startsWith(`${d}=`)?s=`${n},${o}${d}`:s=`${d}=${n},${o}${d}`}let a=r.vars.length>1?r.vars.join(","):r.vars[0];return r.features&4?(a=r.vars.length>1||r.vars.length===0?`(${a})`:a,`(${a}=>(${s}))()`):`(function(${a}){return ${s}})()`}return t?`(${n})`:n}function we(r,e){let t=h(e),[n,o,s]=H(t,r),a=O(t),d=m(a,n);return Q(a,o,s,d)}async function At(r,e){let t=h(e),[n,o,s]=await _(t,r),a=O(t),d=m(a,n);return Q(a,o,s,d)}function ze(r){return(0,eval)(r)}function bt(r,e){let t=h(e),[n,o,s]=H(t,r);return JSON.stringify([n,o,s,t.features,t.markedRefs])}async function Et(r,e){let t=h(e),[n,o,s]=await _(t,r);return JSON.stringify([n,o,s,t.features,t.markedRefs])}function Ce(r){let e=JSON.parse(r),t=O({features:e[3],markedRefs:e[4]}),n=m(t,e[0]);return Q(t,e[1],e[2],n)}function ht(r){return ze(Ce(r))}var It=we;export{Ce as compileJSON,It as default,ze as deserialize,ht as fromJSON,we as serialize,At as serializeAsync,bt as toJSON,Et as toJSONAsync};
1
+ var Ie=Object.defineProperty;var Ve=(r,e,t)=>e in r?Ie(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var i=(r,e,t)=>(Ve(r,typeof e!="symbol"?e+"":e,t),t);function Re(r,e){let t=r[0]-e[0];return t===0&&(t=r[1]-e[1]),t===0&&(t=r[2]-e[2]),t}var de={[1]:{es:[2021,0,0],chrome:[85,0,0],edge:[85,0,0],firefox:[79,0,0],opera:[71,0,0],safari:[14,0,0],ios:[14,0,0],samsung:[14,0,0],deno:[1,2,0],node:[15,0,0]},[2]:{es:[6,0,0],chrome:[66,0,0],edge:[14,0,0],firefox:[60,0,0],opera:[53,0,0],safari:[9,0,0],ios:[9,0,0],samsung:[9,0,0],deno:[1,0,0],node:[10,9,0]},[4]:{es:[6,0,0],chrome:[45,0,0],edge:[12,0,0],firefox:[24,0,0],opera:[32,0,0],safari:[10,0,0],ios:[10,0,0],samsung:[5,0,0],deno:[1,0,0],node:[4,0,0]},[8]:{es:[2020,0,0],chrome:[67,0,0],edge:[79,0,0],firefox:[68,0,0],opera:[54,0,0],safari:[14,0,0],ios:[14,0,0],samsung:[9,0,0],deno:[1,0,0],node:[10,4,0]},[16]:{es:[6,0,0],chrome:[38,0,0],edge:[12,0,0],firefox:[13,0,0],opera:[25,0,0],safari:[8,0,0],ios:[8,0,0],samsung:[3,0,0],deno:[1,0,0],node:[0,12,0]},[32]:{es:[6,0,0],chrome:[39,0,0],edge:[12,0,0],firefox:[34,0,0],opera:[26,0,0],safari:[9,0,0],ios:[9,0,0],samsung:[4,0,0],deno:[1,0,0],node:[4,0,0]},[64]:{es:[6,0,0],chrome:[45,0,0],edge:[12,0,0],firefox:[34,0,0],opera:[32,0,0],safari:[9,0,0],ios:[9,0,0],samsung:[5,0,0],deno:[1,0,0],node:[4,0,0]},[128]:{es:[6,0,0],chrome:[32,0,0],edge:[12,0,0],firefox:[29,0,0],opera:[19,0,0],safari:[8,0,0],ios:[8,0,0],samsung:[2,0,0],deno:[1,0,0],node:[0,12,0]},[256]:{es:[6,0,0],chrome:[38,0,0],edge:[12,0,0],firefox:[13,0,0],opera:[25,0,0],safari:[8,0,0],ios:[8,0,0],samsung:[3,0,0],deno:[1,0,0],node:[0,12,0]},[512]:{es:[6,0,0],chrome:[43,0,0],edge:[12,0,0],firefox:[36,0,0],opera:[30,0,0],safari:[10,0,0],ios:[10,0,0],samsung:[4,0,0],deno:[1,0,0],node:[0,12,0]},[1024]:{es:[6,0,0],chrome:[7,0,0],edge:[12,0,0],firefox:[4,0,0],opera:[11,6,0],safari:[5,1,0],ios:[4,2,0],samsung:[1,0,0],deno:[1,0,0],node:[0,10,0]},[2048]:{es:[2020,0,0],chrome:[67,0,0],edge:[79,0,0],firefox:[68,0,0],opera:[54,6,0],safari:[15,1,0],ios:[15,2,0],samsung:[9,0,0],deno:[1,0,0],node:[10,4,0]}},se=["chrome","deno","edge","es","firefox","ios","node","opera","safari","samsung"];function ke(r){for(let e=0,t=se.length;e<t;e++){let s=r.substring(0,se[e].length);if(s===se[e])return s}throw new Error(`Invalid target "${r}"`)}function pe(r){let e=ke(r),t=r.substring(e.length),[s,o="0",a="0"]=t.split(".");return[e,[Number(s),Number(o),Number(a)]]}function Pe(r){if(Array.isArray(r)){let e=[];for(let t=0,s=r.length;t<s;t++)e.push(pe(r[t]));return e}return[pe(r)]}function ge(r){let e=Pe(r),t=0;for(let s of Object.keys(de)){let o=de[s],a=!0;for(let[n,u]of e){let l=o[n];a=a&&!!l&&Re(l,u)<=0}a&&(t|=Number(s))}return t}var ye="hjkmoquxzABCDEFGHIJKLNPQRTUVWXYZ$_",me=ye.length,Ne="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$_",Se=Ne.length;function oe(r){let e=r%me,t=ye[e];for(r=(r-e)/me;r>0;)e=r%Se,t+=Ne[e],r=(r-e)/Se;return t}var Te={target:"es2023"},h=class{constructor(e={}){i(this,"refs",new Map);i(this,"markedRefs",{});i(this,"features");let t=Object.assign({},Te,e||{});this.features=ge(t.target)}},E=class{constructor(e){i(this,"stack",[]);i(this,"validRefs",[]);i(this,"refSize",0);i(this,"vars",[]);i(this,"assignments",[]);i(this,"features");i(this,"markedRefs");this.features=e.features,this.markedRefs=e.markedRefs}};function b(r,e){r.markedRefs[e]=1}function ze(r,e){let t=r.validRefs[e];if(t==null){let s=r.refSize++;return r.validRefs[e]=s,s}return t}function p(r,e){let t=ze(r,e);if(r.vars[t])return r.vars[t];let s=oe(t);return r.vars[t]=s,s}function w(r,e,t){let s=r.refs.get(e);if(s!=null)return t&&b(r,s),s;let o=r.refs.size;return r.refs.set(e,o),o}function g(r,e){if(!r)throw new Error(e)}function v(r){let e="",t=0;for(let s=0,o=r.length;s<o;s++){let a;switch(r[s]){case'"':a='\\"';break;case"\\":a="\\\\";break;case"<":a="\\x3C";break;case`
2
+ `:a="\\n";break;case"\r":a="\\r";break;case"\u2028":a="\\u2028";break;case"\u2029":a="\\u2029";break;default:continue}e+=r.slice(t,s)+a,t=s+1}return t===0?e=r:e+=r.slice(t),`"${e}"`}var L=class{constructor(e,t,s){i(this,"k");i(this,"v");i(this,"s");this.k=e,this.v=t,this.s=s}},O=class{constructor(e,t,s){i(this,"k");i(this,"v");i(this,"s");this.k=e,this.v=t,this.s=s}},m=class{constructor(e){i(this,"t",0);i(this,"s");this.s=e}},I=class{constructor(e){i(this,"t",2);i(this,"i");this.i=e}},V=class{constructor(e){i(this,"t",1);i(this,"s");this.s=`${e}n`}},R=class{constructor(e,t){i(this,"t",3);i(this,"i");i(this,"s");this.i=e,this.s=t.toISOString()}},k=class{constructor(e,t){i(this,"t",4);i(this,"i");i(this,"s");this.i=e,this.s=String(t)}},P=class{constructor(e,t){i(this,"t",14);i(this,"i");i(this,"s");i(this,"l");i(this,"c");this.i=e,this.s=t.toString(),this.l=t.byteOffset,this.c=t.constructor.name}},T=class{constructor(e,t){i(this,"t",15);i(this,"i");i(this,"s");i(this,"l");i(this,"c");let s="",o=t.length-1;for(let a=0;a<o;a++)s+=`${t[a]}n,`;s+=`"${t[o]}"`,this.i=e,this.s=s,this.l=t.byteOffset,this.c=t.constructor.name}},z=class{constructor(e,t){i(this,"t",5);i(this,"i");i(this,"a");this.i=e,this.a=t}},$=class{constructor(e,t){i(this,"t",6);i(this,"i");i(this,"d");this.i=e,this.d=t}},j=class{constructor(e,t){i(this,"t",7);i(this,"i");i(this,"a");this.i=e,this.a=t}},C=class{constructor(e,t){i(this,"t",8);i(this,"i");i(this,"d");this.i=e,this.d=t}},x=class{constructor(e,t){i(this,"t",9);i(this,"i");i(this,"d");this.i=e,this.d=t}},F=class{constructor(e,t){i(this,"t",10);i(this,"i");i(this,"n");this.i=e,this.n=t}},B=class{constructor(e,t,s,o){i(this,"t",11);i(this,"i");i(this,"c");i(this,"m");i(this,"d");this.i=e,this.c=t,this.m=s,this.d=o}},U=class{constructor(e,t,s,o){i(this,"t",12);i(this,"i");i(this,"m");i(this,"d");i(this,"n");this.i=e,this.m=t,this.d=s,this.n=o}},D=class{constructor(e,t,s){i(this,"t",13);i(this,"i");i(this,"d");i(this,"a");this.i=e,this.d=t,this.a=s}};var J=new m("!0"),G=new m("!1"),Y=new m("void 0"),H=new m(null),K=new m("-0"),Z=new m("1/0"),q=new m("-1/0");function M(r){return r instanceof EvalError?"EvalError":r instanceof RangeError?"RangeError":r instanceof ReferenceError?"ReferenceError":r instanceof SyntaxError?"SyntaxError":r instanceof TypeError?"TypeError":r instanceof URIError?"URIError":"Error"}function _(r){let e,t=M(r);r.name!==t?e={name:r.name}:r.constructor.name!==t&&(e={name:r.constructor.name});let s=Object.getOwnPropertyNames(r);for(let o of s)o!=="name"&&o!=="message"&&(e=e||{},e[o]=r[o]);return e}function W(r){let e=Object.getOwnPropertyNames(r);if(e.length){let t={};for(let s of e)t[s]=r[s];return t}}function A(r,e){return e.t===2&&r.stack.includes(e.i)}function N(r){if(!r||typeof r!="object"||Array.isArray(r))return!1;switch(r.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 r}var ne=class{constructor(e){i(this,"ctx");this.ctx=e}async generateNodeList(e){let t=e.length,s=new Array(t),o=new Array(t),a;for(let n=0;n<t;n++)n in e&&(a=e[n],N(a)?o[n]=a:s[n]=await this.parse(a));for(let n=0;n<t;n++)n in o&&(s[n]=await this.parse(o[n]));return s}async generateArrayNode(e,t){return new j(e,await this.generateNodeList(t))}async generateMapNode(e,t){g(this.ctx.features&16,'Unsupported type "Map"');let s=t.size,o=new Array(s),a=new Array(s),n=new Array(s),u=new Array(s),l=0,d=0;for(let[c,f]of t.entries())N(c)||N(f)?(n[l]=c,u[l]=f,l++):(o[d]=await this.parse(c),a[d]=await this.parse(f),d++);for(let c=0;c<l;c++)o[d+c]=await this.parse(n[c]),a[d+c]=await this.parse(u[c]);return new $(e,new O(o,a,s))}async generateSetNode(e,t){g(this.ctx.features&256,'Unsupported type "Set"');let s=t.size,o=new Array(s),a=new Array(s),n=0,u=0;for(let l of t.keys())N(l)?a[n++]=l:o[u++]=await this.parse(l);for(let l=0;l<n;l++)o[u+l]=await this.parse(a[l]);return new z(e,o)}async generateProperties(e){let t=Object.keys(e),s=t.length,o=new Array(s),a=new Array(s),n=new Array(s),u=new Array(s),l=0,d=0,c;for(let f of t)c=e[f],N(c)?(n[l]=f,u[l]=c,l++):(o[d]=f,a[d]=await this.parse(c),d++);for(let f=0;f<l;f++)o[d+f]=n[f],a[d+f]=await this.parse(u[f]);return new L(o,a,s)}async generateIterableNode(e,t){g(this.ctx.features&512,'Unsupported type "Iterable"');let s=W(t);return new D(e,s?await this.generateProperties(s):void 0,await this.generateNodeList(Array.from(t)))}async generatePromiseNode(e,t){return g(this.ctx.features&128,'Unsupported type "Promise"'),t.then(async s=>new F(e,await this.parse(s)))}async generateObjectNode(e,t,s){if(Symbol.iterator in t)return this.generateIterableNode(e,t);if("then"in t&&typeof t.then=="function")return this.generatePromiseNode(e,t);let o=await this.generateProperties(t);return s?new x(e,o):new C(e,o)}async generateAggregateErrorNode(e,t){let s=_(t),o=s?await this.generateProperties(s):void 0;return new U(e,t.message,o,await this.parse(t.errors))}async generateErrorNode(e,t){let s=_(t),o=s?await this.generateProperties(s):void 0;return new B(e,M(t),t.message,o)}async parse(e){switch(typeof e){case"boolean":return e?J:G;case"undefined":return Y;case"string":return new m(v(e));case"number":return Object.is(e,-0)?K:Object.is(e,1/0)?Z:Object.is(e,-1/0)?q:new m(e);case"bigint":return g(this.ctx.features&8,'Unsupported type "BigInt"'),new V(e);case"object":{if(!e)return H;let t=w(this.ctx,e,!0);if(this.ctx.markedRefs[t])return new I(t);if(Array.isArray(e))return this.generateArrayNode(t,e);switch(e.constructor){case Date:return new R(t,e);case RegExp:return new k(t,e);case Promise:return this.generatePromiseNode(t,e);case Int8Array:case Int16Array:case Int32Array:case Uint8Array:case Uint16Array:case Uint32Array:case Uint8ClampedArray:case Float32Array:case Float64Array:return g(this.ctx.features&1024,`Unsupported value type "${e.constructor.name}"`),new P(t,e);case BigInt64Array:case BigUint64Array:return g(this.ctx.features&2048,`Unsupported value type "${e.constructor.name}"`),new T(t,e);case Map:return this.generateMapNode(t,e);case Set:return this.generateSetNode(t,e);case Object:return this.generateObjectNode(t,e,!1);case void 0:return this.generateObjectNode(t,e,!0);case AggregateError:return this.ctx.features&1?this.generateAggregateErrorNode(t,e):this.generateErrorNode(t,e);case Error:case EvalError:case RangeError:case ReferenceError:case SyntaxError:case TypeError:case URIError:return this.generateErrorNode(t,e);default:break}if(e instanceof AggregateError&&this.ctx.features&1)return this.generateAggregateErrorNode(t,e);if(e instanceof Error)return this.generateErrorNode(t,e);if(e instanceof Promise)return this.generatePromiseNode(t,e);if(Symbol.iterator in e)return this.generateIterableNode(t,e);if("then"in e&&typeof e.then=="function")return this.generatePromiseNode(t,e);throw new Error("Unsupported type")}default:throw new Error("Unsupported type")}}};async function Q(r,e){let t=await new ne(r).parse(e),s=t.t===8||t.t===13;return[t,w(r,e,!1),s]}function X(r){switch(r.type){case"index":return`${r.source}=${r.value}`;case"map":return`${r.source}.set(${r.key},${r.value})`;case"set":return`${r.source}.add(${r.value})`;default:return""}}function $e(r){let e=[],t=r[0],s=t;for(let o=1,a=r.length;o<a;o++){let n=r[o];n.type===s.type?n.type==="index"&&n.value===s.value?t={type:"index",source:n.source,value:X(t)}:n.type==="map"&&n.source===s.source?t={type:"map",source:X(t),key:n.key,value:n.value}:n.type==="set"&&n.source===s.source?t={type:"set",source:X(t),value:n.value}:(e.push(t),t=n):(e.push(t),t=n),s=n}return e.push(t),e}function ve(r){if(r.length){let e="",t=$e(r);for(let s=0,o=t.length;s<o;s++)e+=`${X(t[s])},`;return e}}function be(r){return ve(r.assignments)}function S(r,e,t){return r.markedRefs[e]?`${p(r,e)}=${t}`:t}function Ae(r,e,t){r.assignments.push({type:"index",source:e,value:t})}function je(r,e,t){b(r,e),r.assignments.push({type:"set",source:p(r,e),value:t})}function le(r,e,t,s){b(r,e),r.assignments.push({type:"map",source:p(r,e),key:t,value:s})}function ue(r,e,t,s){b(r,e),Ae(r,`${p(r,e)}[${t}]`,s)}function he(r,e,t,s){b(r,e),Ae(r,`${p(r,e)}.${t}`,s)}var Ee=/^([$A-Z_][0-9A-Z_$]*)$/i;function ee(r,e,t){r.stack.push(e);let s=[];for(let o=0;o<t.s;o++){let a=r.stack;r.stack=[];let n=y(r,t.v[o]);r.stack=a;let u=t.k[o],l=Number(u),d=r.assignments;r.assignments=s;let c=l>=0||Ee.test(u);c&&Number.isNaN(l)?he(r,e,u,n):ue(r,e,c?u:v(u),n),r.assignments=d}return r.stack.pop(),ve(s)}function we(r,e,t){if(t.s===0)return"{}";let s="";r.stack.push(e);for(let o=0;o<t.s;o++){let a=t.k[o],n=t.v[o],u=Number(a),l=u>=0||Ee.test(a);if(A(r,n)){let d=p(r,n.i);l&&Number.isNaN(u)?he(r,e,a,d):ue(r,e,l?a:v(a),d)}else s+=`${l?a:v(a)}:${y(r,n)},`}return r.stack.pop(),`{${s.substring(0,s.length-1)}}`}function Ce(r,e){let t;if(A(r,e.n))t=`Promise.resolve().then(()=>${p(r,e.n.i)})`;else{r.stack.push(e.i);let s=y(r,e.n);r.stack.pop(),t=`Promise.resolve(${s})`}return S(r,e.i,t)}function xe(r,e){let t=`[${e.s}]`;return e.l!==0&&(t+=`,${e.l}`),S(r,e.i,`new ${e.c}(${t})`)}function Be(r,e){let t="new Set",s=e.a.length;if(s){let o="";r.stack.push(e.i);for(let a=0;a<s;a++){let n=e.a[a];A(r,n)?je(r,e.i,p(r,n.i)):o+=`${y(r,n)},`}r.stack.pop(),o&&(t+=`([${o.substring(0,o.length-1)}])`)}return S(r,e.i,t)}function Ue(r,e){let t="new Map";if(e.d.s){let s="";r.stack.push(e.i);for(let o=0;o<e.d.s;o++){let a=e.d.k[o],n=e.d.v[o];if(A(r,a)){let u=p(r,a.i);if(A(r,n)){let l=p(r,n.i);le(r,e.i,u,l)}else{let l=r.stack;r.stack=[],le(r,e.i,u,y(r,n)),r.stack=l}}else if(A(r,n)){let u=p(r,n.i),l=r.stack;r.stack=[],le(r,e.i,y(r,a),u),r.stack=l}else s+=`[${y(r,a)},${y(r,n)}],`}r.stack.pop(),s&&(t+=`([${s.substring(0,s.length-1)}])`)}return S(r,e.i,t)}function Oe(r,e){let t=e.a.length,s="";for(let o=0;o<t;o++){let a=e.a[o];a?A(r,a)?(ue(r,e.i,o,p(r,a.i)),s+=","):(s+=y(r,a),o<t-1&&(s+=",")):s+=","}return`[${s}]`}function De(r,e){r.stack.push(e.i);let t=Oe(r,e);return r.stack.pop(),S(r,e.i,t)}function re(r,e,t,s){let o=we(r,t,e);return o!=="{}"?`Object.assign(${s},${o})`:s}function _e(r,e){r.stack.push(e.i);let t=`new AggregateError(${y(r,e.n)},${v(e.m)})`;if(r.stack.pop(),e.d)if(r.features&64)t=re(r,e.d,e.i,t);else{b(r,e.i);let s=ee(r,e.i,e.d);if(s){let o=p(r,e.i);return`(${S(r,e.i,t)},${s}${o})`}}return S(r,e.i,t)}function Me(r,e){let t=`new ${e.c}(${v(e.m)})`;if(e.d)if(r.features&64)t=re(r,e.d,e.i,t);else{b(r,e.i);let s=ee(r,e.i,e.d);if(s){let o=p(r,e.i);return`(${S(r,e.i,t)},${s}${o})`}}return S(r,e.i,t)}function Le(r,e){let t=r.stack;r.stack=[];let s=Oe(r,e);r.stack=t;let o;if(r.features&2?o=`${s}.values()`:o=`${s}[Symbol.iterator]()`,r.features&4?o=`{[Symbol.iterator]:()=>${o}}`:r.features&32?o=`{[Symbol.iterator](){return ${o}}}`:o=`{[Symbol.iterator]:function(){return ${o}}}`,e.d)if(r.features&64)o=re(r,e.d,e.i,o);else{b(r,e.i);let a=ee(r,e.i,e.d);if(a){let n=p(r,e.i);return`(${S(r,e.i,o)},${a}${n})`}}return S(r,e.i,o)}function Fe(r,e){let t="Object.create(null)";if(r.features&64)t=re(r,e.d,e.i,t);else{b(r,e.i);let s=ee(r,e.i,e.d);if(s){let o=p(r,e.i);return`(${S(r,e.i,t)},${s}${o})`}}return S(r,e.i,t)}function y(r,e){switch(e.t){case 0:return String(e.s);case 2:return p(r,e.i);case 10:return Ce(r,e);case 1:return e.s;case 3:return S(r,e.i,`new Date("${e.s}")`);case 4:return S(r,e.i,e.s);case 15:case 14:return xe(r,e);case 5:return Be(r,e);case 6:return Ue(r,e);case 7:return De(r,e);case 12:return _e(r,e);case 11:return Me(r,e);case 13:return Le(r,e);case 9:return Fe(r,e);case 8:return S(r,e.i,we(r,e.i,e.d));default:throw new Error("Unsupported type")}}var ce=class{constructor(e){i(this,"ctx");this.ctx=e}generateNodeList(e){let t=e.length,s=new Array(t),o=new Array(t),a;for(let n=0;n<t;n++)n in e&&(a=e[n],N(a)?o[n]=a:s[n]=this.parse(a));for(let n=0;n<t;n++)n in o&&(s[n]=this.parse(o[n]));return s}generateArrayNode(e,t){return new j(e,this.generateNodeList(t))}generateMapNode(e,t){g(this.ctx.features&16,'Unsupported type "Map"');let s=t.size,o=new Array(s),a=new Array(s),n=new Array(s),u=new Array(s),l=0,d=0;for(let[c,f]of t.entries())N(c)||N(f)?(n[l]=c,u[l]=f,l++):(o[d]=this.parse(c),a[d]=this.parse(f),d++);for(let c=0;c<l;c++)o[d+c]=this.parse(n[c]),a[d+c]=this.parse(u[c]);return new $(e,new O(o,a,s))}generateSetNode(e,t){g(this.ctx.features&256,'Unsupported type "Set"');let s=t.size,o=new Array(s),a=new Array(s),n=0,u=0;for(let l of t.keys())N(l)?a[n++]=l:o[u++]=this.parse(l);for(let l=0;l<n;l++)o[u+l]=this.parse(a[l]);return new z(e,o)}generateProperties(e){let t=Object.keys(e),s=t.length,o=new Array(s),a=new Array(s),n=new Array(s),u=new Array(s),l=0,d=0,c;for(let f of t)c=e[f],N(c)?(n[l]=f,u[l]=c,l++):(o[d]=f,a[d]=this.parse(c),d++);for(let f=0;f<l;f++)o[d+f]=n[f],a[d+f]=this.parse(u[f]);return{k:o,v:a,s}}generateIterableNode(e,t){g(this.ctx.features&512,'Unsupported type "Iterable"');let s=W(t);return new D(e,s?this.generateProperties(s):void 0,this.generateNodeList(Array.from(t)))}generateObjectNode(e,t,s){return Symbol.iterator in t?this.generateIterableNode(e,t):s?new x(e,this.generateProperties(t)):new C(e,this.generateProperties(t))}generateAggregateErrorNode(e,t){let s=_(t),o=s?this.generateProperties(s):void 0;return new U(e,t.message,o,this.parse(t.errors))}generateErrorNode(e,t){let s=_(t),o=s?this.generateProperties(s):void 0;return new B(e,M(t),t.message,o)}parse(e){switch(typeof e){case"boolean":return e?J:G;case"undefined":return Y;case"string":return new m(v(e));case"number":return Object.is(e,-0)?K:Object.is(e,1/0)?Z:Object.is(e,-1/0)?q:new m(e);case"bigint":return g(this.ctx.features&8,'Unsupported type "BigInt"'),new V(e);case"object":{if(!e)return H;let t=w(this.ctx,e,!0);if(this.ctx.markedRefs[t])return new I(t);if(Array.isArray(e))return this.generateArrayNode(t,e);switch(e.constructor){case Date:return new R(t,e);case RegExp:return new k(t,e);case Int8Array:case Int16Array:case Int32Array:case Uint8Array:case Uint16Array:case Uint32Array:case Uint8ClampedArray:case Float32Array:case Float64Array:return g(this.ctx.features&1024,`Unsupported value type "${e.constructor.name}"`),new P(t,e);case BigInt64Array:case BigUint64Array:return g(this.ctx.features&2048,`Unsupported value type "${e.constructor.name}"`),new T(t,e);case Map:return this.generateMapNode(t,e);case Set:return this.generateSetNode(t,e);case Object:return this.generateObjectNode(t,e,!1);case void 0:return this.generateObjectNode(t,e,!0);case AggregateError:return this.ctx.features&1?this.generateAggregateErrorNode(t,e):this.generateErrorNode(t,e);case Error:case EvalError:case RangeError:case ReferenceError:case SyntaxError:case TypeError:case URIError:return this.generateErrorNode(t,e);default:break}if(e instanceof AggregateError&&this.ctx.features&1)return this.generateAggregateErrorNode(t,e);if(e instanceof Error)return this.generateErrorNode(t,e);if(Symbol.iterator in e)return this.generateIterableNode(t,e);throw new Error("Unsupported type")}default:throw new Error("Unsupported type")}}};function te(r,e){let t=new ce(r).parse(e),s=t.t===8||t.t===13;return[t,w(r,e,!1),s]}function fe(r,e,t,s){if(r.vars.length){let o=be(r),a=s;if(o){let u=p(r,e);s.startsWith(`${u}=`)?a=`${s},${o}${u}`:a=`${u}=${s},${o}${u}`}let n=r.vars.length>1?r.vars.join(","):r.vars[0];return r.features&4?(n=r.vars.length>1||r.vars.length===0?`(${n})`:n,`(${n}=>(${a}))()`):`(function(${n}){return ${a}})()`}return t?`(${s})`:s}function Je(r,e){let t=new h(e),[s,o,a]=te(t,r),n=new E(t),u=y(n,s);return fe(n,o,a,u)}async function at(r,e){let t=new h(e),[s,o,a]=await Q(t,r),n=new E(t),u=y(n,s);return fe(n,o,a,u)}function Ge(r){return(0,eval)(r)}function nt(r,e){let t=new h(e),[s,o,a]=te(t,r);return JSON.stringify([s,o,a,t.features,t.markedRefs])}async function it(r,e){let t=new h(e),[s,o,a]=await Q(t,r);return JSON.stringify([s,o,a,t.features,t.markedRefs])}function Ye(r){let e=JSON.parse(r),t=new E({features:e[3],markedRefs:e[4]}),s=y(t,e[0]);return fe(t,e[1],e[2],s)}function lt(r){return Ge(Ye(r))}var ut=Je;export{Ye as compileJSON,ut as default,Ge as deserialize,lt as fromJSON,Je as serialize,at as serializeAsync,nt as toJSON,it as toJSONAsync};
@@ -15,29 +15,29 @@ interface SetAssignment {
15
15
  value: string;
16
16
  }
17
17
  export type Assignment = IndexAssignment | MapAssignment | SetAssignment;
18
- export interface ParserContext {
18
+ export interface Options {
19
+ target: string | string[];
20
+ }
21
+ export declare class ParserContext {
19
22
  refs: Map<unknown, number>;
20
23
  markedRefs: Record<number, number>;
21
24
  features: number;
25
+ constructor(options?: Partial<Options>);
26
+ }
27
+ export interface SerializationOptions {
28
+ markedRefs: Record<number, number>;
29
+ features: number;
22
30
  }
23
- export interface SerializationContext {
31
+ export declare class SerializationContext {
24
32
  stack: number[];
25
33
  validRefs: number[];
26
34
  refSize: number;
27
- markedRefs: Record<number, number>;
28
35
  vars: string[];
29
36
  assignments: Assignment[];
30
37
  features: number;
31
- }
32
- export interface Options {
33
- target: string | string[];
34
- }
35
- export declare function createParserContext(options?: Partial<Options>): ParserContext;
36
- export interface SerializationOptions {
37
38
  markedRefs: Record<number, number>;
38
- features: number;
39
+ constructor(options: SerializationOptions);
39
40
  }
40
- export declare function createSerializationContext(options: SerializationOptions): SerializationContext;
41
41
  /**
42
42
  * Increments the number of references the referenced value has
43
43
  */
@@ -1,7 +1,4 @@
1
- import { ParserContext } from '../context';
2
- import { BigIntTypedArrayValue, TypedArrayValue } from '../types';
3
- import { SerovalBigIntNode, SerovalBigIntTypedArrayNode, SerovalDateNode, SerovalPrimitiveNode, SerovalReferenceNode, SerovalRegExpNode, SerovalTypedArrayNode } from './types';
4
- export declare function createPrimitiveNode(value: string | number | null): SerovalPrimitiveNode;
1
+ import { SerovalPrimitiveNode } from './types';
5
2
  export declare const TRUE_NODE: SerovalPrimitiveNode;
6
3
  export declare const FALSE_NODE: SerovalPrimitiveNode;
7
4
  export declare const UNDEFINED_NODE: SerovalPrimitiveNode;
@@ -9,9 +6,3 @@ export declare const NULL_NODE: SerovalPrimitiveNode;
9
6
  export declare const NEG_ZERO_NODE: SerovalPrimitiveNode;
10
7
  export declare const INFINITY_NODE: SerovalPrimitiveNode;
11
8
  export declare const NEG_INFINITY_NODE: SerovalPrimitiveNode;
12
- export declare function createBigIntNode(ctx: ParserContext, current: bigint): SerovalBigIntNode;
13
- export declare function createReferenceNode(id: number): SerovalReferenceNode;
14
- export declare function createDateNode(id: number, current: Date): SerovalDateNode;
15
- export declare function createRegExpNode(id: number, current: RegExp): SerovalRegExpNode;
16
- export declare function createTypedArrayNode(ctx: ParserContext, id: number, current: TypedArrayValue): SerovalTypedArrayNode;
17
- export declare function createBigIntTypedArrayNode(ctx: ParserContext, id: number, current: BigIntTypedArrayValue): SerovalBigIntTypedArrayNode;
@@ -1,4 +1,4 @@
1
- import { PrimitiveValue } from '../types';
1
+ import { BigIntTypedArrayValue, PrimitiveValue, TypedArrayValue } from '../types';
2
2
  export declare const enum SerovalNodeType {
3
3
  Primitive = 0,
4
4
  BigInt = 1,
@@ -18,111 +18,130 @@ export declare const enum SerovalNodeType {
18
18
  BigIntTypedArray = 15
19
19
  }
20
20
  export interface SerovalBaseNode {
21
- t: SerovalNodeType;
22
- s: PrimitiveValue | undefined;
23
- i: number | undefined;
24
- l: number | undefined;
25
- c: string | undefined;
26
- d: SerovalDictionaryNode | undefined;
27
- m: string | undefined;
28
- n: SerovalNode | undefined;
29
- a: SerovalNode[] | undefined;
30
- }
31
- export interface SerovalObjectRecordNode {
21
+ t?: SerovalNodeType;
22
+ s?: PrimitiveValue;
23
+ i?: number;
24
+ l?: number;
25
+ c?: string;
26
+ d?: SerovalDictionaryNode;
27
+ m?: string;
28
+ n?: SerovalNode;
29
+ a?: SerovalNode[];
30
+ }
31
+ export declare class SerovalObjectRecordNode {
32
32
  k: string[];
33
33
  v: SerovalNode[];
34
34
  s: number;
35
+ constructor(k: string[], v: SerovalNode[], s: number);
35
36
  }
36
- export interface SerovalMapRecordNode {
37
+ export declare class SerovalMapRecordNode {
37
38
  k: SerovalNode[];
38
39
  v: SerovalNode[];
39
40
  s: number;
41
+ constructor(k: SerovalNode[], v: SerovalNode[], s: number);
40
42
  }
41
43
  export type SerovalDictionaryNode = SerovalObjectRecordNode | SerovalMapRecordNode;
42
- export interface SerovalPrimitiveNode extends SerovalBaseNode {
44
+ export declare class SerovalPrimitiveNode implements SerovalBaseNode {
43
45
  t: SerovalNodeType.Primitive;
46
+ s: string | number | null;
47
+ constructor(current: string | number | null);
44
48
  }
45
- export interface SerovalReferenceNode extends SerovalBaseNode {
49
+ export declare class SerovalReferenceNode implements SerovalBaseNode {
46
50
  t: SerovalNodeType.Reference;
47
51
  i: number;
52
+ constructor(id: number);
48
53
  }
49
- export interface SerovalBigIntNode extends SerovalBaseNode {
54
+ export declare class SerovalBigIntNode implements SerovalBaseNode {
50
55
  t: SerovalNodeType.BigInt;
51
56
  s: string;
57
+ constructor(current: bigint);
52
58
  }
53
- export interface SerovalDateNode extends SerovalBaseNode {
59
+ export declare class SerovalDateNode implements SerovalBaseNode {
54
60
  t: SerovalNodeType.Date;
55
61
  i: number;
56
62
  s: string;
63
+ constructor(id: number, current: Date);
57
64
  }
58
- export interface SerovalRegExpNode extends SerovalBaseNode {
65
+ export declare class SerovalRegExpNode implements SerovalBaseNode {
59
66
  t: SerovalNodeType.RegExp;
60
67
  i: number;
61
68
  s: string;
69
+ constructor(id: number, current: RegExp);
62
70
  }
63
- export interface SerovalTypedArrayNode extends SerovalBaseNode {
71
+ export declare class SerovalTypedArrayNode implements SerovalBaseNode {
64
72
  t: SerovalNodeType.TypedArray;
65
73
  i: number;
66
74
  s: string;
67
75
  l: number;
68
76
  c: string;
77
+ constructor(id: number, current: TypedArrayValue);
69
78
  }
70
- export interface SerovalBigIntTypedArrayNode extends SerovalBaseNode {
79
+ export declare class SerovalBigIntTypedArrayNode implements SerovalBaseNode {
71
80
  t: SerovalNodeType.BigIntTypedArray;
72
81
  i: number;
73
82
  s: string;
74
83
  l: number;
75
84
  c: string;
85
+ constructor(id: number, current: BigIntTypedArrayValue);
76
86
  }
77
87
  export type SerovalSemiPrimitiveNode = SerovalBigIntNode | SerovalDateNode | SerovalRegExpNode | SerovalTypedArrayNode | SerovalBigIntTypedArrayNode;
78
- export interface SerovalSetNode extends SerovalBaseNode {
88
+ export declare class SerovalSetNode implements SerovalBaseNode {
79
89
  t: SerovalNodeType.Set;
80
- a: SerovalNode[];
81
90
  i: number;
91
+ a: SerovalNode[];
92
+ constructor(id: number, a: SerovalNode[]);
82
93
  }
83
- export interface SerovalMapNode extends SerovalBaseNode {
94
+ export declare class SerovalMapNode implements SerovalBaseNode {
84
95
  t: SerovalNodeType.Map;
85
- d: SerovalMapRecordNode;
86
96
  i: number;
97
+ d: SerovalMapRecordNode;
98
+ constructor(id: number, d: SerovalMapRecordNode);
87
99
  }
88
- export interface SerovalArrayNode extends SerovalBaseNode {
100
+ export declare class SerovalArrayNode implements SerovalBaseNode {
89
101
  t: SerovalNodeType.Array;
90
- a: SerovalNode[];
91
102
  i: number;
103
+ a: SerovalNode[];
104
+ constructor(id: number, a: SerovalNode[]);
92
105
  }
93
- export interface SerovalObjectNode extends SerovalBaseNode {
106
+ export declare class SerovalObjectNode implements SerovalBaseNode {
94
107
  t: SerovalNodeType.Object;
95
- d: SerovalObjectRecordNode;
96
108
  i: number;
109
+ d: SerovalObjectRecordNode;
110
+ constructor(id: number, d: SerovalObjectRecordNode);
97
111
  }
98
- export interface SerovalNullConstructorNode extends SerovalBaseNode {
112
+ export declare class SerovalNullConstructorNode implements SerovalBaseNode {
99
113
  t: SerovalNodeType.NullConstructor;
100
- d: SerovalObjectRecordNode;
101
114
  i: number;
115
+ d: SerovalObjectRecordNode;
116
+ constructor(id: number, d: SerovalObjectRecordNode);
102
117
  }
103
- export interface SerovalPromiseNode extends SerovalBaseNode {
118
+ export declare class SerovalPromiseNode implements SerovalBaseNode {
104
119
  t: SerovalNodeType.Promise;
105
- n: SerovalNode;
106
120
  i: number;
121
+ n: SerovalNode;
122
+ constructor(id: number, n: SerovalNode);
107
123
  }
108
- export interface SerovalErrorNode extends SerovalBaseNode {
124
+ export declare class SerovalErrorNode implements SerovalBaseNode {
109
125
  t: SerovalNodeType.Error;
126
+ i: number;
110
127
  c: string;
111
128
  m: string;
112
129
  d: SerovalObjectRecordNode | undefined;
113
- i: number;
130
+ constructor(id: number, c: string, m: string, d: SerovalObjectRecordNode | undefined);
114
131
  }
115
- export interface SerovalAggregateErrorNode extends SerovalBaseNode {
132
+ export declare class SerovalAggregateErrorNode implements SerovalBaseNode {
116
133
  t: SerovalNodeType.AggregateError;
134
+ i: number;
117
135
  m: string;
118
136
  d: SerovalObjectRecordNode | undefined;
119
137
  n: SerovalNode;
120
- i: number;
138
+ constructor(id: number, m: string, d: SerovalObjectRecordNode | undefined, n: SerovalNode);
121
139
  }
122
- export interface SerovalIterableNode extends SerovalBaseNode {
140
+ export declare class SerovalIterableNode implements SerovalBaseNode {
123
141
  t: SerovalNodeType.Iterable;
142
+ i: number;
124
143
  d: SerovalObjectRecordNode | undefined;
125
144
  a: SerovalNode[];
126
- i: number;
145
+ constructor(id: number, d: SerovalObjectRecordNode | undefined, a: SerovalNode[]);
127
146
  }
128
147
  export type SerovalNode = SerovalPrimitiveNode | SerovalReferenceNode | SerovalSemiPrimitiveNode | SerovalSetNode | SerovalMapNode | SerovalArrayNode | SerovalObjectNode | SerovalNullConstructorNode | SerovalPromiseNode | SerovalErrorNode | SerovalAggregateErrorNode | SerovalIterableNode;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "seroval",
3
3
  "type": "module",
4
- "version": "0.4.0-alpha.12",
4
+ "version": "0.4.0-alpha.13",
5
5
  "files": [
6
6
  "dist",
7
7
  "src"
@@ -64,5 +64,5 @@
64
64
  "typesVersions": {
65
65
  "*": {}
66
66
  },
67
- "gitHead": "1154b39e7437e0f6bf9e1c3e814917bd308a2154"
67
+ "gitHead": "3f71e898ce27170bade38120eddc9afe96390498"
68
68
  }
package/src/context.ts CHANGED
@@ -1,3 +1,5 @@
1
+ /* eslint-disable prefer-object-spread */
2
+ /* eslint-disable max-classes-per-file */
1
3
  import { parseTargets } from './compat';
2
4
  import getIdentifier from './get-identifier';
3
5
 
@@ -26,27 +28,6 @@ export type Assignment =
26
28
  | MapAssignment
27
29
  | SetAssignment;
28
30
 
29
- export interface ParserContext {
30
- refs: Map<unknown, number>;
31
- markedRefs: Record<number, number>;
32
- features: number;
33
- }
34
-
35
- export interface SerializationContext {
36
- stack: number[];
37
- // Map tree refs to actual refs
38
- validRefs: number[];
39
- refSize: number;
40
- // Refs that are...referenced
41
- markedRefs: Record<number, number>;
42
- // Variables
43
- vars: string[];
44
- // Array of assignments to be done (used for recursion)
45
- assignments: Assignment[];
46
- // Supported features
47
- features: number;
48
- }
49
-
50
31
  export interface Options {
51
32
  target: string | string[];
52
33
  }
@@ -55,14 +36,17 @@ const DEFAULT_OPTIONS: Options = {
55
36
  target: 'es2023',
56
37
  };
57
38
 
58
- export function createParserContext(options: Partial<Options> = {}): ParserContext {
59
- // eslint-disable-next-line prefer-object-spread
60
- const result = Object.assign({}, DEFAULT_OPTIONS, options || {});
61
- return {
62
- markedRefs: {},
63
- refs: new Map(),
64
- features: parseTargets(result.target),
65
- };
39
+ export class ParserContext {
40
+ refs = new Map<unknown, number>();
41
+
42
+ markedRefs: Record<number, number> = {};
43
+
44
+ features: number;
45
+
46
+ constructor(options: Partial<Options> = {}) {
47
+ const result = Object.assign({}, DEFAULT_OPTIONS, options || {});
48
+ this.features = parseTargets(result.target);
49
+ }
66
50
  }
67
51
 
68
52
  export interface SerializationOptions {
@@ -70,16 +54,30 @@ export interface SerializationOptions {
70
54
  features: number;
71
55
  }
72
56
 
73
- export function createSerializationContext(options: SerializationOptions): SerializationContext {
74
- return {
75
- stack: [],
76
- vars: [],
77
- assignments: [],
78
- validRefs: [],
79
- refSize: 0,
80
- features: options.features,
81
- markedRefs: options.markedRefs,
82
- };
57
+ export class SerializationContext {
58
+ stack: number[] = [];
59
+
60
+ // Map tree refs to actual refs
61
+ validRefs: number[] = [];
62
+
63
+ refSize = 0;
64
+
65
+ // Variables
66
+ vars: string[] = [];
67
+
68
+ // Array of assignments to be done (used for recursion)
69
+ assignments: Assignment[] = [];
70
+
71
+ // Supported features
72
+ features: number;
73
+
74
+ // Refs that are...referenced
75
+ markedRefs: Record<number, number>;
76
+
77
+ constructor(options: SerializationOptions) {
78
+ this.features = options.features;
79
+ this.markedRefs = options.markedRefs;
80
+ }
83
81
  }
84
82
 
85
83
  /**
package/src/index.ts CHANGED
@@ -4,8 +4,7 @@ import {
4
4
  SerializationContext,
5
5
  getRefParam,
6
6
  Options,
7
- createParserContext,
8
- createSerializationContext,
7
+ ParserContext,
9
8
  } from './context';
10
9
  import parseAsync from './tree/async';
11
10
  import serializeTree, { resolvePatches } from './tree/serialize';
@@ -70,9 +69,9 @@ export function serialize<T extends ServerValue>(
70
69
  source: T,
71
70
  options?: Partial<Options>,
72
71
  ) {
73
- const ctx = createParserContext(options);
72
+ const ctx = new ParserContext(options);
74
73
  const [tree, rootID, isObject] = parseSync(ctx, source);
75
- const serial = createSerializationContext(ctx);
74
+ const serial = new SerializationContext(ctx);
76
75
  const result = serializeTree(serial, tree);
77
76
  return finalize(serial, rootID, isObject, result);
78
77
  }
@@ -81,9 +80,9 @@ export async function serializeAsync<T extends AsyncServerValue>(
81
80
  source: T,
82
81
  options?: Partial<Options>,
83
82
  ) {
84
- const ctx = createParserContext(options);
83
+ const ctx = new ParserContext(options);
85
84
  const [tree, rootID, isObject] = await parseAsync(ctx, source);
86
- const serial = createSerializationContext(ctx);
85
+ const serial = new SerializationContext(ctx);
87
86
  const result = serializeTree(serial, tree);
88
87
  return finalize(serial, rootID, isObject, result);
89
88
  }
@@ -105,7 +104,7 @@ export function toJSON<T extends ServerValue>(
105
104
  source: T,
106
105
  options?: Partial<Options>,
107
106
  ) {
108
- const ctx = createParserContext(options);
107
+ const ctx = new ParserContext(options);
109
108
  const [tree, root, isObject] = parseSync(ctx, source);
110
109
  return JSON.stringify([
111
110
  tree,
@@ -120,7 +119,7 @@ export async function toJSONAsync<T extends AsyncServerValue>(
120
119
  source: T,
121
120
  options?: Partial<Options>,
122
121
  ) {
123
- const ctx = createParserContext(options);
122
+ const ctx = new ParserContext(options);
124
123
  const [tree, root, isObject] = await parseAsync(ctx, source);
125
124
  return JSON.stringify([
126
125
  tree,
@@ -133,7 +132,7 @@ export async function toJSONAsync<T extends AsyncServerValue>(
133
132
 
134
133
  export function compileJSON(source: string): string {
135
134
  const parsed = JSON.parse(source) as SerovalJSON;
136
- const serial = createSerializationContext({
135
+ const serial = new SerializationContext({
137
136
  features: parsed[3],
138
137
  markedRefs: parsed[4],
139
138
  });