(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global.jsonExt = factory()); }(typeof globalThis != 'undefined' ? globalThis : typeof window != 'undefined' ? window : typeof global != 'undefined' ? global : typeof self != 'undefined' ? self : this, (function () { function _(e){return typeof e=="object"&&e!==null&&(typeof e[Symbol.iterator]=="function"||typeof e[Symbol.asyncIterator]=="function")}function R(e,n,r,i){switch(r&&typeof r.toJSON=="function"&&(r=r.toJSON()),i!==null&&(r=i.call(e,String(n),r)),typeof r){case"function":case"symbol":r=void 0;break;case"object":if(r!==null){let s=r.constructor;(s===String||s===Number||s===Boolean)&&(r=r.valueOf())}break}return r}function Z(e){return typeof e=="function"?e:Array.isArray(e)?[...new Set(e.map(r=>{let i=r&&r.constructor;return i===String||i===Number?String(r):null}).filter(r=>typeof r=="string"))]:null}function v(e){return typeof e=="number"?!Number.isFinite(e)||e<1?!1:" ".repeat(Math.min(e,10)):typeof e=="string"&&e.slice(0,10)||!1}function z(e,n){(e===null||Array.isArray(e)||typeof e!="object")&&(e={replacer:e,space:n});let r=Z(e.replacer),i=Object.keys;if(Array.isArray(r)){let s=r;i=()=>s,r=null}return{...e,replacer:r,getKeys:i,space:v(e.space)}}function K(e="json"){if(e==="json"||e==="jsonl")return e;throw new TypeError('Invalid options: `mode` should be "json" or "jsonl"')}var W=Symbol("empty"),T=1,ee=2,$=0,F=1,q=2,te=new TextDecoder;function ne(e,n){return e.name==="SyntaxError"&&n&&(e.message=e.message.replace(/at position (\d+)/,(r,i)=>"at position "+(Number(i)+n))),e}function re(e,n){let r=e.length;e.length+=n.length;for(let i=0;io){for(let a=p-1;a>=o;a--)x+=A[a]===T?"}":"]";o===0?(I(x),f={value:g,key:null,prev:null}):(c(m(x),!0),B());for(let a=o||1;a=p;a--)D--,x=(A[a]===T?"{":"[")+x;c(x,!1),B();for(let a=o-1;a>=p;a--)f=f.prev}p===0&&E(),o=p,y=!1}function H(t){if(typeof t!="string"){if(l!==null){let u=t;t=new Uint8Array(l.length+u.length),t.set(l),t.set(u,l.length),l=null}if(t[t.length-1]>127)for(let u=0;u>6===3){u++,(u!==4&&V>>3===30||u!==3&&V>>4===14||u!==2&&V>>5===6)&&(l=t.slice(t.length-u),t=t.subarray(0,-u));break}}t=te.decode(t)}return t}function Q(t){t=H(t);let u=t.length,V=L,x=0,a=0;e:for(let h=0;hx&&P(t,x,a),aj("",f[c]),p=C,O=!0,N=[""],y=0;do o(),(d.length>=g||A===null&&c===S-1)&&(yield d,d="");while(A!==null)}function l(){if(y===0&&(N=i(p),d+="{"),y===N.length){d+=s&&!O?` ${s.repeat(w.length-1)}}`:"}",B();return}let c=N[y++];j(c,p[c])}function k(){if(y===0&&(d+="["),y===p.length){d+=s&&!O?` ${s.repeat(w.length-1)}]`:"]",B();return}j(y,p[y++])}function D(c){if(O?O=!1:d+=",",s&&A!==null&&(d+=` ${s.repeat(w.length)}`),o===l){let m=L.get(c);m===void 0&&L.set(c,m=Y(c)+(s?": ":":")),d+=m}}function j(c,m){if(m=R(p,c,m,r),m===null||typeof m!="object")(o!==l||m!==void 0)&&(D(c),I(m));else{if(w.includes(m))throw new TypeError("Converting circular structure to JSON");D(c),w.push(m),E(),o=Array.isArray(m)?k:l,p=m,O=!0,y=0}}function I(c){switch(typeof c){case"string":d+=Y(c);break;case"number":d+=Number.isFinite(c)?String(c):"null";break;case"boolean":d+=c?"true":"false";break;case"undefined":case"object":d+="null";break;default:throw new TypeError(`Do not know how to serialize a ${c.constructor?.name||typeof c}`)}}function E(){A={keys:N,index:y,prev:A}}function B(){w.pop();let c=w.length>0?w[w.length-1]:C;o=Array.isArray(c)?k:l,p=c,O=!1,N=A.keys,y=A.index,A=A.prev}}var fe=typeof Object.hasOwn=="function"?Object.hasOwn:(e,n)=>Object.hasOwnProperty.call(e,n),ce={8:"\\b",9:"\\t",10:"\\n",12:"\\f",13:"\\r",34:'\\"',92:"\\\\"},ae=Uint8Array.from({length:2048},(e,n)=>fe(ce,n)?2:n<32?6:n<128?1:2);function ue(e){return e>=55296&&e<=56319}function pe(e){return e>=56320&&e<=57343}function G(e){if(!/[^\x20\x21\x23-\x5B\x5D-\x7F]/.test(e))return e.length+2;let n=0,r=!1;for(let i=0;i=1e9&&(n+=9,e=(e-e%1e9)/1e9),e>=1e4?e>=1e6?n+(e>=1e8?9:e>=1e7?8:7):n+(e>=1e5?6:5):n+(e>=100?e>=1e3?4:3:e>=10?2:1)}function ge(e){switch(typeof e){case"string":return G(e);case"number":return Number.isFinite(e)?Number.isInteger(e)?ye(e):String(e).length:4;case"boolean":return e?4:5;case"undefined":case"object":return 4;default:return 0}}function he(e,...n){let{replacer:r,getKeys:i,...s}=z(...n),b=!!s.continueOnCircular,g=s.space?.length||0,f=K(s.mode)==="jsonl"&&Array.isArray(e)?e:[e],S=new Map,L=new Map,w=new Set,C=[],A=!1,o=0,p=0,O=0;for(let y=0;y0&&(o+=1),N({"":f[y]},"",f[y]);return o===0&&f.length===1&&(o+=9),{bytes:isNaN(o)?1/0:o+p,spaceBytes:g>0&&isNaN(o)?1/0:p,circular:[...w]};function N(y,d,l){if(!A)if(l=R(y,d,l,r),l===null||typeof l!="object")(l!==void 0||Array.isArray(y))&&(o+=ge(l));else{if(C.includes(l)){w.add(l),o+=4,b||(A=!0);return}if(L.has(l)){o+=L.get(l);return}O++;let k=O,D=o,j=0;if(C.push(l),Array.isArray(l)){j=l.length;for(let I=0;I0&&j>0&&(p+=(Array.isArray(l)?0:j)+(1+C.length*g)*(j+1)-g),C.pop(),k!==O&&L.set(l,o-D)}}}function de(e){return U(_(e)?e:async function*(){let n=e.getReader();try{for(;;){let{value:r,done:i}=await n.read();if(i)break;yield r}}finally{n.releaseLock()}})}function be(e,n,r){return typeof ReadableStream.from=="function"?ReadableStream.from(M(e,n,r)):new ReadableStream({start(){this.generator=M(e,n,r)},pull(i){let{value:s,done:b}=this.generator.next();b?i.close():i.enqueue(s)},cancel(){this.generator=null}})}return{createStringifyWebStream: be,parseChunked: U,parseFromWebStream: de,stringifyChunked: M,stringifyInfo: he}; }))); //# sourceMappingURL=json-ext.min.js.map