UNPKG

jsox

Version:

Java Script Object eXchange.

2 lines (1 loc) 30.4 kB
"use strict";function getDefaultExportFromCjs(e){return e&&e.t&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var hasRequiredJsox,jsox$1={};function requireJsox(){if(hasRequiredJsox)return jsox$1;hasRequiredJsox=1;const e=JSON;if(void 0===exports)var exports={};return function(JSOX){JSOX.JSOX=JSOX,JSOX.version="1.2.125";const t="function"==typeof BigInt,n=["ab","u8","cu8","s8","u16","s16","u32","s32","u64","s64","f32","f64"];let r=null,i=null;const a=[ArrayBuffer,Uint8Array,Uint8ClampedArray,Int8Array,Uint16Array,Int16Array,Uint32Array,Int32Array,null,null,Float32Array,Float64Array],s=29,o=30,l=31,c={true:!0,false:!1,null:null,NaN:NaN,Infinity:1/0,undefined:void 0};class DateNS extends Date{constructor(e,t){super(e),this.i=t||0}}JSOX.DateNS=DateNS;const u=[];function f(){let e=u.pop();return e||(e={context:0,o:null,l:null,u:0,h:-1,valueType:0,elements:null}),e}function b(e){u.push(e)}JSOX.p=function(){};const h=[];function p(e){h.push(e)}JSOX.escape=function(e){let t,n="";if(!e)return e;for(t=0;t<e.length;t++)'"'!=e[t]&&"\\"!=e[t]&&"`"!=e[t]&&"'"!=e[t]||(n+="\\"),n+=e[t];return n};let d=new WeakMap,g=new Map,k=new Map,w=[];JSOX.reset=function(){d=new WeakMap,g=new Map,k=new Map,w=[]},JSOX.begin=function(e,r){const i={name:null,k:0,string:"",contains:null,className:null},c={line:1,m:1};let u,d,g=0,w=new Map,m=0,y=!0,x=!1,j=!1,O=null,v=null,S={j:null,O:null,v:null,push(e){let t=this.v;t?(this.v=t.next,t.node=e,t.next=null,t.S=this.O):t={node:e,next:null,S:this.O},this.O?this.O.next=t:this.j=t,this.O=t,this.length++},pop(){let e=this.O;return(this.O=e.S)||(this.j=null),e.next=this.v,this.O&&(this.O.next=null),e.next||(e.j=null),this.v=e,this.length--,e.node},length:0},N=[],I={},A=null,M=null,J=0,T=-1,X=0,$=0,C=!1,D=!1,F=!1,B=!1,U=!1,q={j:null,O:null,v:null,push(e){let t=this.v;t?(this.v=t.next,t.node=e,t.next=null,t.S=this.O):t={node:e,next:null,S:this.O},this.O?this.O.next=t:this.j=t,this.O=t},shift(){let e=this.j;return e?((this.j=e.next)||(this.O=null),e.next=this.v,this.v=e,e.node):null},unshift(e){let t=this.v;this.v=t.next,t.node=e,t.next=this.j,t.S=null,this.j||(this.O=t),this.j=t}},R=null,P=!1,_=!1,W=!1,H=!1,G=!1,L=!1,V=!1,K=0,Q=0,Y=!1,Z=!1,z=!1;function ee(e){throw new Error(`${e} at ${g} [${c.line}:${c.m}]`)}return{fromJSOX(e,t,n){if(w.get(e))throw new Error("Existing fromJSOX has been registered for prototype");if(t||(t=function(){}),t&&!("constructor"in t))throw new Error("Please pass a prototype like thing...");w.set(e,{N:t.prototype.constructor,I:n})},A(e,t){throw new Error("registerFromJSOX is deprecated, please update to use fromJSOX instead:"+e+t.toString())},M(){0!==$&&(1===$&&ee("Comment began at end of document"),3===$&&ee("Open comment '/*' is missing close at end of document"),4===$&&ee("Incomplete '/* *' close at end of document")),P&&ee("Incomplete string")},value(){this.M();let e=O;return O=void 0,e},reset(){m=0,y=!0,q.O&&(q.O.next=q.save),q.save=q.j,q.j=q.O=null,S.O&&(S.O.next=S.save),S.length=0,S.save=q.j,S.j=S.O=null,d=void 0,X=0,N=[],I={},A=null,M=null,J=0,i.k=0,i.name=null,i.string="",i.className=null,c.line=1,c.m=1,j=!1,$=0,Y=!1,P=!1,W=!1,H=!1,Z=!1},J(e,t){I[e]=t},write(t){let n;if("string"!=typeof t&&void 0!==t&&(t=String(t)),!y)throw new Error("Parser is still in an error state, please reset before resuming");for(n=this.T(t,!1);n>0&&("function"==typeof r&&function e(t,n){let i,a,s=t[n];if(s&&"object"==typeof s)for(i in s)Object.prototype.hasOwnProperty.call(s,i)&&(a=e(s,i),void 0!==a?s[i]=a:delete s[i]);return r.call(t,n,s)}({X:O},""),O=e(O),!(n<2));n=this.T());},parse(e,t){"string"!=typeof e&&(e=String(e)),this.reset();const n=this.T(e,!0);if(n>0){let e=this.value();if(void 0===e&&n>1)throw new Error("Pending value could not complete");return e="function"==typeof t?function e(n,r){let i,a,s=n[r];if(s&&"object"==typeof s)for(i in s)Object.prototype.hasOwnProperty.call(s,i)&&(a=e(s,i),void 0!==a?s[i]=a:delete s[i]);return t.call(n,r,s)}({X:e},""):e,e}this.M()},T(e,r){let I,ee,te,ne=0;function re(e,t){throw new Error(`${e} '${String.fromCodePoint(t)}' unexpected at ${g} (near '${te.substr(g>4?g-4:0,g>4?3:g-1)}[${String.fromCodePoint(t)}]${te.substr(g,10)}') [${c.line}:${c.m}]`)}function ie(){i.k=0,i.string="",i.contains=null}function ae(){let e=null;switch(i.k){case 5:if(!(i.string.length>13||13==i.string.length&&i[0]>"2")||Z||U||B||D||(z=!0),z){if(t)return BigInt(i.string);throw new Error("no builtin BigInt()",0)}if(Z){const e=i.string.match(/\.(\d\d\d\d*)/),t=e?e[1]:null;if(!t||t.length<4){const e=new Date(i.string);return isNaN(e.getTime())&&re("Bad Date format",I),e}{let e=t.substr(3);for(;e.length<6;)e+="0";const n=new DateNS(i.string,Number(e));return isNaN(n.getTime())&&re("Bad DateNS format"+n+n.getTime(),I),n}}return(j?-1:1)*Number(i.string);case 4:if(i.className){if(e=w.get(i.className),e||(e=k.get(i.className)),e&&e.I)return i.className=null,e.I.call(i.string);throw new Error("Double string error, no constructor for: new "+i.className+"("+i.string+")")}return i.string;case 2:return!0;case 3:return!1;case 7:case 8:return NaN;case 9:return-1/0;case 10:return 1/0;case 1:return null;case-1:case 12:return;case 6:return i.className&&(e=w.get(i.className),e||(e=k.get(i.className)),i.className=null,e&&e.I)?i.contains=e.I.call(i.contains):i.contains;case 13:if(T>=0){let e;if(e=i.contains.length?E(i.contains[0]):E(i.string),0===T)return T=-1,e;{const t=new a[T](e);return T=-1,t}}if(-2===T){let e,t=v;const n=i.contains.length;for(e=0;e<n;e++){const r=i.contains[e];let a=t[r];if(!a){let r=S.j,s=0;for(;r&&s<n&&s<S.length;){const n=i.contains[s];if(!r.next||n!==r.next.node.name)break;if(r.next)if("number"==typeof n){const e=r.next.node.elements;if(e&&n>=e.length){if(s===S.length-1){console.log("This is actually at the current object so use that",s,i.contains,d),a=d,s++,r=r.next;break}if(r.next.next&&n===e.length){a=r.next.next.node.elements,r=r.next,s++,t=a;continue}a=d,s++;break}}else{if(n!==r.next.node.name){a=r.next.node.elements[n],e=s;break}a=r.next.next?r.next.next.node.elements:d}else a=a[n];r=r.next,s++}e=s<n?s-1:s}if("object"==typeof a&&!a)throw new Error("Path did not resolve properly:"+i.contains+" at "+r+"("+e+")");t=a}return T=-3,t}return i.className&&(e=w.get(i.className),e||(e=k.get(i.className)),i.className=null,e&&e.I)?e.I.call(i.contains):i.contains;default:console.log("Unhandled value conversion.",i)}}function se(){if(-3==T)return 6===i.k&&d.push(i.contains),void(T=-1);if(12===i.k)d.push(void 0),delete d[d.length-1];else d.push(ae());ie()}function oe(){if(-3===T&&13===i.k)return ie(),void(T=-1);if(12===i.k)return;!i.name&&M&&(i.name=M.$[J++]);let e=ae();A&&A.C&&A.C.I?(e=A.C.I.call(d,i.name,e),e&&(d[i.name]=e)):d[i.name]=e,ie()}function le(e){if(0!==m){switch(j&&re("Negative outside of quotes, being converted to a string (would lose count of leading '-' characters)",e),m){case l:switch(i.k){case 2:i.string+="true";break;case 3:i.string+="false";break;case 1:i.string+="null";break;case 10:i.string+="Infinity";break;case 9:i.string+="-Infinity",re("Negative outside of quotes, being converted to a string",e);break;case 8:i.string+="NaN";break;case 7:i.string+="-NaN",re("Negative outside of quotes, being converted to a string",e);break;case-1:i.string+="undefined";break;case 4:case 0:break;default:console.log("Value of type "+i.k+" is not restored...")}break;case 1:i.string+="t";break;case 2:i.string+="tr";break;case 3:i.string+="tru";break;case 5:i.string+="f";break;case 6:i.string+="fa";break;case 7:i.string+="fal";break;case 8:i.string+="fals";break;case 9:i.string+="n";break;case 10:i.string+="nu";break;case 11:i.string+="nul";break;case 12:i.string+="u";break;case 13:i.string+="un";break;case 14:i.string+="und";break;case 15:i.string+="unde";break;case 16:i.string+="undef";break;case 17:i.string+="undefi";break;case 18:i.string+="undefin";break;case 19:i.string+="undefine";break;case 20:i.string+="N";break;case 21:i.string+="Na";break;case 22:i.string+="I";break;case 23:i.string+="In";break;case 24:i.string+="Inf";break;case 25:i.string+="Infi";break;case 26:i.string+="Infin";break;case 27:i.string+="Infini";break;case 28:i.string+="Infinit";break;case 0:case s:case o:break;case 32:re("String-keyword recovery fail (after whitespace)",e)}i.k=4,m<s&&(m=l)}else m=l,i.k=4;if(123==e)fe();else if(91==e)be();else if(44==e);else{if(32==e||13==e||10==e||9==e||65279==e||8232==e||8233==e)return;44==e||125==e||93==e||58==e||(i.string+=u)}}function ce(e){let t=0;for(;0==t&&g<te.length;){u=te.charAt(g);let n=te.codePointAt(g++);if(n>=65536&&(u+=te.charAt(g),g++),c.m++,n==e)W?(V?re("Incomplete hexidecimal sequence",n):L?re("Incomplete long unicode sequence",n):G&&re("Incomplete unicode sequence",n),H?(H=!1,t=1):i.string+=u,W=!1):t=1;else if(W){if(G){if(125==n){i.string+=String.fromCodePoint(K),G=!1,L=!1,W=!1;continue}if(K*=16,n>=48&&n<=57)K+=n-48;else if(n>=65&&n<=70)K+=n-65+10;else{if(!(n>=97&&n<=102)){re("(escaped character, parsing hex of \\u)",n),t=-1,G=!1,W=!1;continue}K+=n-97+10}continue}if(V||L){if(0===Q&&123===n){G=!0;continue}if(Q<2||L&&Q<4){if(K*=16,n>=48&&n<=57)K+=n-48;else if(n>=65&&n<=70)K+=n-65+10;else{if(!(n>=97&&n<=102)){re(L?"(escaped character, parsing hex of \\u)":"(escaped character, parsing hex of \\x)",n),t=-1,V=!1,W=!1;continue}K+=n-97+10}Q++,L?4==Q&&(i.string+=String.fromCodePoint(K),L=!1,W=!1):2==Q&&(i.string+=String.fromCodePoint(K),V=!1,W=!1);continue}}switch(n){case 13:H=!0,c.m=1;continue;case 8232:case 8233:c.m=1;case 10:H?H=!1:c.m=1,c.line++;break;case 116:i.string+="\t";break;case 98:i.string+="\b";break;case 110:i.string+="\n";break;case 114:i.string+="\r";break;case 102:i.string+="\f";break;case 118:i.string+="\v";break;case 48:i.string+="\0";break;case 120:V=!0,Q=0,K=0;continue;case 117:L=!0,Q=0,K=0;continue;default:i.string+=u}W=!1}else 92===n?W?(i.string+="\\",W=!1):(W=!0,K=0,Q=0):(H&&(H=!1,c.line++,c.m=2),i.string+=u)}return t}function ue(){let e;for(;(e=g)<te.length;){u=te.charAt(e);let t=te.codePointAt(g++);if(t>=256){c.m-=g-e,g=e;break}if(95!=t)if(c.m++,t>=48&&t<=57)F&&(U=!0),i.string+=u;else if(45==t||43==t)0==i.string.length||F&&!B&&!U?(45!=t||F||(j=!j),i.string+=u,B=!0):(j&&(i.string="-"+i.string,j=!1),i.string+=u,Z=!0);else{if(78==t){if(0==m)return _=!1,void(m=20);re("fault while parsing number;",t);break}if(73==t){if(0==m)return _=!1,void(m=22);re("fault while parsing number;",t);break}if(58==t&&Z)j&&(i.string="-"+i.string,j=!1),i.string+=u,Z=!0;else if(84==t&&Z)j&&(i.string="-"+i.string,j=!1),i.string+=u,Z=!0;else if(90==t&&Z)j&&(i.string="-"+i.string,j=!1),i.string+=u,Z=!0;else if(46==t){if(D||C||F){y=!1,re("fault while parsing number;",t);break}i.string+=u,D=!0}else{if(110==t){z=!0;break}if(C&&(t>=95&&t<=102||t>=65&&t<=70))i.string+=u;else if(120==t||98==t||111==t||88==t||66==t||79==t){if(C||"0"!=i.string){y=!1,re("fault while parsing number;",t);break}C=!0,i.string+=u}else{if(101!=t&&69!=t){if(32==t||13==t||10==t||9==t||47==t||35==t||44==t||125==t||93==t||123==t||91==t||34==t||39==t||96==t||58==t){c.m-=g-e,g=e;break}r&&(y=!1,re("fault while parsing number;",t));break}if(F){y=!1,re("fault while parsing number;",t);break}i.string+=u,F=!0}}}}r||g!=te.length?(_=!1,i.k=5,0==X&&(Y=!0)):_=!0}function fe(){let e,t=2,n=null,r={};if(m>0&&m<s&&le(123),e=he(),0==X)if(m==s||m==l&&(e||i.string.length)){if(e&&e.C&&e.C.N&&(r=new e.C.N),!e||!e.C&&i.string){if(n=N.find((e=>e.name===i.string)),n)x?(n.$.length=0,t=4):(r=new n.N,t=5);else{function o(){}N.push(n={name:i.string,N:e&&e.C&&e.C.N||o.constructor,$:[]}),t=4}x=!1}M=n,m=0}else m=s;else if(m==s||1===X||3===X||5==X)if(0!=m||4==i.k){if(e&&e.C)r=new e.C.N;else if(n=N.find((e=>e.name===i.string)),n)t=5,r={};else{function c(){}w.set(i.string,{N:c.prototype.constructor,I:null}),r=new c}m=0}else m=0;else if(2==X&&0==m)return re("fault while parsing; getting field name unexpected ",I),y=!1,!1;let a=f();return i.k=6,0===X?d=r:1==X?i.name=d.length:3!=X&&5!=X||(!i.name&&M&&(i.name=M.$[J++]),d[i.name]=r),a.context=X,a.elements=d,a.name=i.name,a.o=A,a.l=M,a.u=J,a.valueType=i.k,a.h=T,a.className=i.className,i.className=null,i.name=null,A=e,M=n,J=0,d=r,v||(v=d),S.push(a),ie(),X=t,!0}function be(){if(m>0&&m<s&&le(91),m==l&&i.string.length){let e=n.findIndex((e=>e===i.string));m=0,e>=0?(T=e,i.className=i.string,i.string=null):"ref"===i.string?(i.className=null,T=-2):w.get(i.string)||k.get(i.string)?i.className=i.string:re(`Unknown type '${i.string}' specified for array`,I)}else if(2==X||m==s||m==o)return re("Fault while parsing; while getting field name unexpected",I),y=!1,!1;{let e=f();i.k=13;let t=[];if(0==X)d=t;else if(1==X)-1==T&&d.push(t),i.name=d.length;else if(3==X)if(i.name||(console.log("This says it's resolved......."),T=-3),A&&A.C)if(A.C.I){const e=A.C.I.call(d,i.name,t);void 0!==e&&(t=d[i.name]=e)}else d[i.name]=t;else d[i.name]=t;e.context=X,e.elements=d,e.name=i.name,e.o=A,e.l=M,e.u=J,e.valueType=i.k,e.h=-1==T?-3:T,e.className=i.className,T=-1,i.className=null,i.name=null,A=null,M=null,J=0,d=t,v||(v=t),S.push(e),ie(),X=1}return!0}function he(){const e={C:null,D:null};return((e.C=w.get(i.string))||(e.C=k.get(i.string)))&&(i.className||(i.className=i.string,i.string=null)),i.string&&(e.D=N.find((e=>e.name===i.string)),!e.C&&e.D),e.C||e.D?e:null}if(!y)return-1;for(e&&e.length?(ee=function(){let e=h.pop();return e?e.n=0:e={F:null,n:0},e}(),ee.F=e,q.push(ee)):(_&&(_=!1,i.k=5,0==X&&(Y=!0),ne=1),0!==X&&re("Unclosed object at end of stream.",I));y&&(ee=q.shift());){if(g=ee.n,te=ee.F,P){let e=ce(R);e<0?y=!1:e>0&&(P=!1,y&&(i.k=4))}for(_&&ue();!Y&&y&&g<te.length;)if(u=te.charAt(g),I=te.codePointAt(g++),I>=65536&&(u+=te.charAt(g),g++),c.m++,$)if(1==$)if(42==I)$=3;else{if(47!=I)return re("fault while parsing;",I);$=2}else 2==$?10!=I&&13!=I||($=0):3==$?42==I&&($=4):$=47==I?0:3;else{switch(I){case 35:$=2;break;case 47:$=1;break;case 123:fe();break;case 91:be();break;case 58:if(5==X)m=0,i.name=i.string,i.string="",i.k=0;else if(2==X||4==X)if(4==X){if(!Object.keys(d).length){console.log("This is a full object, not a class def...",i.className);const e=()=>{};w.set(S.O.node.l.name,{N:e.prototype.constructor,I:null}),d=new e,X=3,i.name=i.string,m=0,i.string="",i.k=0,console.log("don't do default;s do a revive...")}}else 0!=m&&m!=l&&m!=s&&m!=o&&le(32),m=0,i.name=i.string,i.string="",X=2===X?3:6,i.k=0;else{if(0==X){console.log("Override colon found, allow class redefinition",X),x=!0;break}re(1==X?"(in array, got colon out of string):parsing fault;":3==X?"String unexpected":"(outside any object, got colon out of string):parsing fault;",I),y=!1}break;case 125:if(m==l&&(m=0),4==X)if(M){i.string&&M.$.push(i.string),ie();let e=S.pop();X=0,m=0,i.name=e.name,d=e.elements,M=e.l,J=e.u,T=e.h,i.k=e.valueType,i.className=e.className,v=null,b(e)}else re("State error; gathering class fields, and lost the class",I);else if(2==X||5==X){0!=i.k&&(M&&(i.name=M.$[J++]),oe()),i.k=6,A&&A.C&&(console.log("SOMETHING SHOULD AHVE BEEN REPLACED HERE??",A),console.log("The other version only revives on init"),d=new A.C.I(d,void 0,void 0)),i.contains=d,i.string="";let e=S.pop();X=e.context,i.name=e.name,d=e.elements,M=e.l,A=e.o,J=e.u,T=e.h,i.k=e.valueType,i.className=e.className,b(e),0==X&&(Y=!0)}else if(3==X){0===i.k&&(0==m?re("Fault while parsing; unexpected",I):le(I)),oe(),i.k=6,i.contains=d,m=0;let e=S.pop();X=e.context,i.name=e.name,d=e.elements,A=e.o,M=e.l,J=e.u,T=e.h,i.k=e.valueType,i.className=e.className,b(e),0==X&&(Y=!0)}else re("Fault while parsing; unexpected",I),y=!1;j=!1;break;case 93:if(m>=o&&(m=0),1==X){0!=i.k?se():0!==m&&(le(I),se()),i.contains=d;{let e=S.pop();i.name=e.name,i.className=e.className,X=e.context,d=e.elements,A=e.o,M=e.l,J=e.u,T=e.h,i.k=e.valueType,b(e)}i.k=13,0==X&&(Y=!0)}else re(`bad context ${X}; fault while parsing`,I),y=!1;j=!1;break;case 44:m<o&&0!=m&&le(I),m!=l&&m!=s||(m=0),4==X?M?(M.$.push(i.string),i.string="",m=s):re("State error; gathering class fields, and lost the class",I):2==X?M?(i.name=M.$[J++],0!=i.k&&(oe(),ie())):(i.string||i.k)&&re("State error; comma in field name and/or lost the class",I):5==X?(M?(-3==T||i.name||(i.name=M.$[J++]),0!=i.k&&(-3!=T&&oe(),ie())):0!=i.k&&(oe(),ie()),i.name=null):1==X?(0==i.k&&(i.k=12),se(),ie(),m=0):3==X&&0!=i.k?(X=2,0!=i.k&&(oe(),ie()),m=0):(y=!1,re("bad context; excessive commas while parsing;",I)),j=!1;break;default:switch(I){default:if(0!=X&&(3!=X||m!=s)&&2!=X&&m!=s&&4!=X){if(0==m&&(I>=48&&I<=57||43==I||46==I||45==I))C=!1,F=!1,Z=!1,z=!1,B=!1,U=!1,D=!1,i.string=u,ee.n=g,ue();else if(0==i.k)0!=m?le(I):(m=l,i.string+=u,i.k=4);else if(2==X)re("Multiple values found in field name",I);else if(3==X)if(4!=i.k&&(6!=i.k&&13!=i.k||re("String unexpected",I),le(I)),m==o){he()?i.string=u:re("String unexpected",I)}else m==l?i.string+=u:re("String unexpected",I);else if(1==X){if(m==o){i.className||(i.className=i.string,i.string=""),i.string+=u;break}m==l&&(i.string+=u)}break}switch(I){case 96:case 34:case 39:if(0==m||m==s){i.string.length&&(console.log("IN ARRAY AND FIXING?"),i.className=i.string,i.string=""),ce(I)?i.k=4:(R=I,P=!0)}else re("fault while parsing; quote not at start of field name",I);break;case 10:c.line++,c.m=1;case 13:case 32:case 8232:case 8233:case 9:case 65279:if(0===X&&m===l){m=0,0===X&&(Y=!0);break}if(0===m||m===o){0==X&&i.k&&(Y=!0);break}if(m===s){if(0===X){m=0,Y=!0;break}i.string.length&&console.log("STEP TO NEXT TOKEN."),m=o}else y=!1,re("fault while parsing; whitepsace unexpected",I);break;default:if(0==m&&(I>=48&&I<=57||43==I||46==I||45==I)){C=!1,F=!1,Z=!1,z=!1,B=!1,U=!1,D=!1,i.string=u,ee.n=g,ue();break}if(m===o&&(y=!1,re("fault while parsing; character unexpected",I)),0===m){m=s,i.k=4,i.string+=u;break}if(0==i.k)0!==m&&m!==l&&le(I);else{if(m===l||m===s){i.string+=u;break}if(2==X){if(m==s){i.string+=u;break}re("Multiple values found in field name",I)}3==X&&re("String unexpected",I)}}break;case 96:case 34:case 39:i.string&&(i.className=i.string),i.string="",ce(I)?(i.k=4,m=l):(R=I,P=!0);break;case 10:c.line++,c.m=1;case 32:case 9:case 13:case 8232:case 8233:case 65279:if(m==l){if(0==X){m=0,Y=!0;break}if(3==X){m=32;break}if(2==X){m=o;break}if(1==X){m=o;break}}if(0==m||m==o)break;m==s?i.string.length&&(m=o):m<l&&le(I);break;case 116:0==m?m=1:27==m?m=28:le(I);break;case 114:1==m?m=2:le(I);break;case 117:2==m?m=3:9==m?m=10:0==m?m=12:le(I);break;case 101:3==m?(i.k=2,m=l):8==m?(i.k=3,m=l):14==m?m=15:18==m?m=19:le(I);break;case 110:0==m?m=9:12==m?m=13:17==m?m=18:22==m?m=23:25==m?m=26:le(I);break;case 100:13==m?m=14:19==m?(i.k=-1,m=l):le(I);break;case 105:16==m?m=17:24==m?m=25:26==m?m=27:le(I);break;case 108:10==m?m=11:11==m?(i.k=1,m=l):6==m?m=7:le(I);break;case 102:0==m?m=5:15==m?m=16:23==m?m=24:le(I);break;case 97:5==m?m=6:20==m?m=21:le(I);break;case 115:7==m?m=8:le(I);break;case 73:0==m?m=22:le(I);break;case 78:0==m?m=20:21==m?(i.k=j?7:8,j=!1,m=l):le(I);break;case 121:28==m?(i.k=j?9:10,j=!1,m=l):le(I);break;case 45:0==m?j=!j:le(I);break;case 43:0!==m&&le(I)}}if(Y){m==l&&(m=0);break}}if(g==te.length?(p(ee),0==i.k&&r&&0!=m&&le(32),P||_||2==X?ne=0:0!=X||0==i.k&&!O||(Y=!0,ne=1)):(ee.n=g,q.unshift(ee),ne=2),Y){v=null;break}}return y?(Y&&0!=i.k&&(m=0,O=ae(),j=!1,i.string="",i.k=0),Y=!1,ne):-1}}};const m=[Object.freeze(JSOX.begin())];let y=0;function x(){return this&&this.valueOf()}JSOX.parse=function(e,t){let n,r=y++;m.length<=r&&m.push(Object.freeze(JSOX.begin())),n=m[r],"string"!=typeof e&&(e=String(e)),n.reset();const i=n.T(e,!0);if(i>0){let e=n.value();if(void 0===e&&i>1)throw new Error("Pending value could not complete");return e="function"==typeof t?function e(n,r){let i,a,s=n[r];if(s&&"object"==typeof s)for(i in s)Object.prototype.hasOwnProperty.call(s,i)&&(a=e(s,i),void 0!==a?s[i]=a:delete s[i]);return t.call(n,r,s)}({X:e},""):e,y--,e}n.M()},JSOX.defineClass=function(e,t){let n,r=Object.keys(t);for(let e=1;e<r.length;e++){let t,n;(t=r[e-1])>(n=r[e])&&(r[e-1]=n,r[e]=t,e?e-=2:e--)}w.push(n={name:e,tag:r.toString(),B:Object.getPrototypeOf(t),$:Object.keys(t)});for(let e=1;e<n.$.length;e++)if(n.$[e]<n.$[e-1]){let t=n.$[e-1];n.$[e-1]=n.$[e],n.$[e]=t,e>1&&(e-=2)}n.B===Object.getPrototypeOf({})&&(n.B=null)},JSOX.U=function(e,t,n){throw new Error("registerToJSOX deprecated; please use toJSOX:"+prototypeName+prototype.toString())},JSOX.toJSOX=function(e,t,n){if(t.prototype&&t.prototype===Object.prototype){let r=Object.keys(t).toString();if(g.get(r))throw new Error("Existing toJSOX has been registered for object type");g.set(r,{external:!0,name:e,I:n})}else{if(d.get(t.prototype))throw new Error("Existing toJSOX has been registered for prototype");d.set(t.prototype,{external:!0,name:e||n.constructor.name,I:n})}},JSOX.fromJSOX=function(e,t,n){if(t||(t=function(){}.prototype),k.get(e))throw new Error("Existing fromJSOX has been registered for prototype");if(t&&!("constructor"in t))throw new Error("Please pass a prototype like thing...");k.set(e,{N:t.prototype.constructor,I:n})},JSOX.A=function(e,t){throw new Error("deprecated; please adjust code to use fromJSOX:"+e+t.toString())},JSOX.addType=function(e,t,n,r){JSOX.toJSOX(e,t,n),JSOX.fromJSOX(e,t,r)},JSOX.q=function(e,t){throw new Error("registerToFrom deprecated; please use addType:"+e+t.toString())},JSOX.stringifier=function(){let t=[],n='"',a=new WeakMap;const s=[];let o=[];const l=new WeakMap,u=new Map;let f=null;const b=[];let h=!1;function p(e){return"string"==typeof e&&""===e?'""':"number"!=typeof e||isNaN(e)?e.includes("\ufeff")||e in c||/[0-9\-]/.test(e[0])||/[\n\r\t #\[\]{}()<>\~!+*/.:,\-"'`]/.test(e)?n+JSOX.escape(e)+n:e:["'",e.toString(),"'"].join("")}d.get(Object.prototype)||(d.set(Object.prototype,{external:!1,name:Object.prototype.constructor.name,I:null}),d.set(Date.prototype,{external:!1,name:"Date",I:function(){if(-621672192e5===this.getTime())return"0000-01-01T00:00:00.000Z";let e=-this.getTimezoneOffset(),t=e>=0?"+":"-",n=function(e){let t=Math.floor(Math.abs(e));return(t<10?"0":"")+t};return[this.getFullYear(),"-",n(this.getMonth()+1),"-",n(this.getDate()),"T",n(this.getHours()),":",n(this.getMinutes()),":",n(this.getSeconds()),"."+function(e){let t=Math.floor(Math.abs(e));return(t<100?"0":"")+(t<10?"0":"")+t}(this.getMilliseconds())+t,n(e/60),":",n(e%60)].join("")}}),d.set(DateNS.prototype,{external:!1,name:"DateNS",I:function(){let e=-this.getTimezoneOffset(),t=e>=0?"+":"-",n=function(e){let t=Math.floor(Math.abs(e));return(t<10?"0":"")+t};return[this.getFullYear(),"-",n(this.getMonth()+1),"-",n(this.getDate()),"T",n(this.getHours()),":",n(this.getMinutes()),":",n(this.getSeconds()),"."+function(e){let t=Math.floor(Math.abs(e));return(t<100?"0":"")+(t<10?"0":"")+t}(this.getMilliseconds())+function(e){let t=Math.floor(Math.abs(e));return(t<1e5?"0":"")+(t<1e4?"0":"")+(t<1e3?"0":"")+(t<100?"0":"")+(t<10?"0":"")+t}(this.i)+t,n(e/60),":",n(e%60)].join("")}}),d.set(Boolean.prototype,{external:!1,name:"Boolean",I:x}),d.set(Number.prototype,{external:!1,name:"Number",I:function(){return isNaN(this)?"NaN":isFinite(this)?String(this):this<0?"-Infinity":"Infinity"}}),d.set(String.prototype,{external:!1,name:"String",I:function(){return'"'+JSOX.escape(x.apply(this))+'"'}}),"function"==typeof BigInt&&d.set(BigInt.prototype,{external:!1,name:"BigInt",I:function(){return this+"n"}}),d.set(ArrayBuffer.prototype,{external:!0,name:"ab",I:function(){return"["+p(v(this))+"]"}}),d.set(Uint8Array.prototype,{external:!0,name:"u8",I:function(){return"["+p(v(this.buffer))+"]"}}),d.set(Uint8ClampedArray.prototype,{external:!0,name:"uc8",I:function(){return"["+p(v(this.buffer))+"]"}}),d.set(Int8Array.prototype,{external:!0,name:"s8",I:function(){return"["+p(v(this.buffer))+"]"}}),d.set(Uint16Array.prototype,{external:!0,name:"u16",I:function(){return"["+p(v(this.buffer))+"]"}}),d.set(Int16Array.prototype,{external:!0,name:"s16",I:function(){return"["+p(v(this.buffer))+"]"}}),d.set(Uint32Array.prototype,{external:!0,name:"u32",I:function(){return"["+p(v(this.buffer))+"]"}}),d.set(Int32Array.prototype,{external:!0,name:"s32",I:function(){return"["+p(v(this.buffer))+"]"}}),d.set(Float32Array.prototype,{external:!0,name:"f32",I:function(){return"["+p(v(this.buffer))+"]"}}),d.set(Float64Array.prototype,{external:!0,name:"f64",I:function(){return"["+p(v(this.buffer))+"]"}}),d.set(Float64Array.prototype,{external:!0,name:"f64",I:function(){return"["+p(v(this.buffer))+"]"}}),d.set(RegExp.prototype,i={external:!0,name:"regex",I:function(e,stringifier){return"'"+escape(this.source)+"'"}}),k.set("regex",{N:RegExp,I:function(e,t){return new RegExp(this)}}),d.set(Map.prototype,i={external:!0,name:"map",I:null}),k.set("map",{N:Map,I:function(e,t){if(!e)return this;this.set(e,t)}}),d.set(Array.prototype,r={external:!1,name:Array.prototype.constructor.name,I:null}));const stringifier={defineClass(e,n){let r,i=Object.keys(n);for(let e=1;e<i.length;e++){let t,n;(t=i[e-1])>(n=i[e])&&(i[e-1]=n,i[e]=t,e?e-=2:e--)}t.push(r={name:e,tag:i.toString(),B:Object.getPrototypeOf(n),$:Object.keys(n)});for(let e=1;e<r.$.length;e++)if(r.$[e]<r.$[e-1]){let t=r.$[e-1];r.$[e-1]=r.$[e],r.$[e]=t,e>1&&(e-=2)}r.B===Object.getPrototypeOf({})&&(r.B=null)},R(e){f=e},P:e=>!!o.find(((t,n)=>t===e&&n<o.length-1)),_(e){return f?f.apply(e,[this]):e},stringify:(e,n,c)=>function(e,n,c){if(void 0===e)return"undefined";if(null===e)return;let k,x,j,O;const v=typeof c,E=typeof n;if(k="",x="","number"===v)for(O=0;O<c;O+=1)x+=" ";else"string"===v&&(x=c);if(j=n,n&&"function"!==E&&("object"!==E||"number"!=typeof n.length))throw new Error("JSOX.stringify");s.length=0,a=new WeakMap;const S=N("",{X:e});return w.length=0,S;function N(e,n){var a=k;const c=r.I,O=i.I;r.I=E,i.I=S;const v=I(e,n);return r.I=c,i.I=O,v;function E(){let e,t=[],n=s.length;for(let e=0;e<this.length;e+=1)s[n]=e,t[e]=N(e,this)||"null";return s.length=n,o.length=n,e=0===t.length?"[]":k?["[\n",k,t.join(",\n"+k),"\n",a,"]"].join(""):"["+t.join(",")+"]",e}function S(){let e={W:null},t="{",n=!0;for(let[r,i]of this){e.W=i;let a=s.length;s[a]=r,t+=(n?"":",")+p(r)+":"+N("tmp",e),s.length=a,n=!1}return t+="}",t}function I(e,n){let r,i,c,O,v,E,S,I=s.length,A=!0,M=n[e],J="object"==typeof M;J&&null!==M&&f&&(b.find((e=>e===M))||(b.push(M),o[I]=M,A=!1,M=f.apply(M,[stringifier]),J="object"==typeof M,b.pop(),o.length=I,J="object"==typeof M));const T=null!=M&&Object.getPrototypeOf(M);let X=T&&(l.get(T)||d.get(T)||null),$=!X&&null!=M&&(u.get(Object.keys(M).toString())||g.get(Object.keys(M).toString())||null);"function"==typeof j&&(A=!1,M=j.call(n,e,M));let toJSOX=X&&X.I||$&&$.I;if(null!=M&&"object"==typeof M&&"function"==typeof toJSOX)if(b.find((e=>e===M)))c=m(M);else{if("object"==typeof M&&(c=m(M),c))return c;b.push(M),o[I]=M,M=toJSOX.call(M,stringifier),A=!1,b.pop(),X&&X.name&&"string"==typeof M&&"-"!==M[0]&&(M[0]<"0"||M[0]>"9")&&'"'!==M[0]&&"'"!==M[0]&&"`"!==M[0]&&"["!==M[0]&&"{"!==M[0]&&(M=" "+M),o.length=I}else if("object"==typeof M&&(c=m(M),c))return c;switch(typeof M){case"bigint":return M+"n";case"string":{M=A?p(M):M;let n="";return""===e&&(n=t.map((e=>e.name+"{"+e.$.join(",")+"}")).join(k?"\n":"")+w.map((e=>e.name+"{"+e.$.join(",")+"}")).join(k?"\n":"")+(k?"\n":"")),X&&X.external?n+X.name+M:$&&$.external?n+$.name+M:n+M}case"number":case"boolean":case"null":return String(M);case"object":if(c)return c;if(!M)return"null";if(k+=x,v=null,E=[],j&&"object"==typeof j){for(O=j.length,v=y(M,j),r=0;r<O;r+=1)"string"==typeof j[r]&&(i=j[r],s[I]=i,c=N(i,M),void 0!==c&&(v?E.push(c):E.push(p(i)+(k?": ":":")+c)));s.splice(I,1)}else{v=y(M);let e=[];for(i in M)if((!h||Object.prototype.propertyIsEnumerable.call(M,i))&&Object.prototype.hasOwnProperty.call(M,i)){let t;for(t=0;t<e.length;t++)if(e[t]>i){e.splice(t,0,i);break}t==e.length&&e.push(i)}for(let t=0;t<e.length;t++)i=e[t],Object.prototype.hasOwnProperty.call(M,i)&&(s[I]=i,c=N(i,M),void 0!==c&&(v?E.push(c):E.push(p(i)+(k?": ":":")+c)));s.splice(I,1)}S=""===e?(t.map((e=>e.name+"{"+e.$.join(",")+"}")).join(k?"\n":"")||w.map((e=>e.name+"{"+e.$.join(",")+"}")).join(k?"\n":""))+(k?"\n":""):"",X&&X.external&&(S+=p(X.name));let n=null;return v&&(n=p(v.name)),c=S+(0===E.length?"{}":k?(v?n:"")+"{\n"+k+E.join(",\n"+k)+"\n"+a+"}":(v?n:"")+"{"+E.join(",")+"}"),k=a,c}}}}(e,n,c),H(e){n=e},U(e,t,n){return this.toJSOX(e,t,n)},toJSOX(e,t,n){if(t.prototype&&t.prototype!==Object.prototype){if(l.get(t.prototype))throw new Error("Existing toJSOX has been registered for prototype");l.set(t.prototype,{external:!0,name:e||n.constructor.name,I:n})}else{let r=Object.keys(t).toString();if(u.get(r))throw new Error("Existing toJSOX has been registered for object type");u.set(r,{external:!0,name:e,I:n})}},get G(){return h},set G(e){h=e}};return stringifier;function m(t){if(null===t)return;let n=a.get(t);if(n)return"ref"+n;a.set(t,e.stringify(s))}function y(e,n){let r,i,a=Object.getPrototypeOf(e);if(i=t.find((e=>{if(e.B&&e.B===a)return!0})),i)return i;if(t.length||w.length){if(n)n=n.map((e=>"string"==typeof e?e:void 0)),r=n.toString();else{let t=Object.keys(e);for(let e=1;e<t.length;e++){let n,r;(n=t[e-1])>(r=t[e])&&(t[e-1]=r,t[e]=n,e?e-=2:e--)}r=t.toString()}i=t.find((e=>{if(e.tag===r)return!0})),i||(i=w.find((e=>{if(e.tag===r)return!0})))}return i}};const j="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789$_",O={L:-1,V:-1,K:62,Y:63,Z:62,ee:62,te:62,ne:63,re:63};for(let e=0;e<j.length;e++)O[j[e]]=e;function v(e){let t,n,r,i,a,s="",o=new Uint8Array(e),l=o.byteLength,c=l%3,u=l-c;for(let e=0;e<u;e+=3)a=o[e]<<16|o[e+1]<<8|o[e+2],t=(16515072&a)>>18,n=(258048&a)>>12,r=(4032&a)>>6,i=63&a,s+=j[t]+j[n]+j[r]+j[i];return 1==c?(a=o[u],t=(252&a)>>2,n=(3&a)<<4,s+=j[t]+j[n]+"=="):2==c&&(a=o[u]<<8|o[u+1],t=(64512&a)>>10,n=(1008&a)>>4,r=(15&a)<<2,s+=j[t]+j[n]+j[r]+"="),s}function E(e){let t;t=e.length%4==1?3*((e.length+3)/4|0)-3:e.length%4==2?3*((e.length+3)/4|0)-2:e.length%4==3?3*((e.length+3)/4|0)-1:-1==O[e[e.length-3]]?3*((e.length+3)/4|0)-3:-1==O[e[e.length-2]]?3*((e.length+3)/4|0)-2:-1==O[e[e.length-1]]?3*((e.length+3)/4|0)-1:3*((e.length+3)/4|0);let n,r=new ArrayBuffer(t),i=new Uint8Array(r),a=e.length+3>>2;for(n=0;n<a;n++){let t=O[e[4*n]],r=4*n+1<e.length?O[e[4*n+1]]:-1,a=r>=0&&4*n+2<e.length?O[e[4*n+2]]:-1,s=a>=0&&4*n+3<e.length?O[e[4*n+3]]:-1;r>=0&&(i[3*n+0]=t<<2|r>>4),a>=0&&(i[3*n+1]=r<<4|a>>2&15),s>=0&&(i[3*n+2]=a<<6|63&s)}return r}Object.freeze(O),JSOX.stringify=function(e,t,n){return JSOX.stringifier().stringify(e,t,n)},[[0,256,[16767487,16739071,130048,3670016,0,16777208,16777215,8388607]]].map((e=>({ie:e[0],ae:e[1],se:e[2]})))}(exports||{}),jsox$1}var jsoxExports=requireJsox(),jsox=getDefaultExportFromCjs(jsoxExports);module.exports=jsox;