(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 z(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 K(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 M(e="json"){if(e==="json"||e==="jsonl")return e;throw new TypeError('Invalid options: `mode` should be "json" or "jsonl"')}var F=Symbol("empty"),P=1,ee=2,$=0,J=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=y-1;a>=o;a--)x+=A[a]===P?"}":"]";o===0?(D(x),f={value:u,key:null,prev:null}):(c(j(x),!0),B());for(let a=o||1;a=y;a--)L--,x=(A[a]===P?"{":"[")+x;c(x,!1),B();for(let a=o-1;a>=y;a--)f=f.prev}y===0&&E(),o=y,g=!1}function H(t){if(typeof t!="string"){if(l!==null){let p=t;t=new Uint8Array(l.length+p.length),t.set(l),t.set(p,l.length),l=null}if(t[t.length-1]>127)for(let p=0;p>6===3){p++,(p!==4&&I>>3===30||p!==3&&I>>4===14||p!==2&&I>>5===6)&&(l=t.slice(t.length-p),t=t.subarray(0,-p));break}}t=te.decode(t)}return t}function Q(t){t=H(t);let p=t.length,I=V,x=0,a=0;e:for(let h=0;hx&&R(t,x,a),am("",f[c]),y=C,O=!0,N=[""],g=0;do o(),(d.length>=u||A===null&&c===S-1)&&(yield d,d="");while(A!==null)}function l(){if(g===0&&(N=i(y),d+="{"),g===N.length){d+=s&&!O?` ${s.repeat(w.length-1)}}`:"}",B();return}let c=N[g++];m(c,y[c])}function k(){if(g===0&&(d+="["),g===y.length){d+=s&&!O?` ${s.repeat(w.length-1)}]`:"]",B();return}m(g,y[g++])}function L(c){if(O?O=!1:d+=",",s&&A!==null&&(d+=` ${s.repeat(w.length)}`),o===l){let j=V.get(c);j===void 0&&V.set(c,j=Y(c)+(s?": ":":")),d+=j}}function m(c,j){if(j=z(y,c,j,r),j===null||typeof j!="object")(o!==l||j!==void 0)&&(L(c),D(j));else{if(w.includes(j))throw new TypeError("Converting circular structure to JSON");L(c),w.push(j),E(),o=Array.isArray(j)?k:l,y=j,O=!0,g=0}}function D(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:g,prev:A}}function B(){w.pop();let c=w.length>0?w[w.length-1]:C;o=Array.isArray(c)?k:l,y=c,O=!1,N=A.keys,g=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}=K(...n),b=!!s.continueOnCircular,u=s.space?.length||0,f=M(s.mode)==="jsonl"&&Array.isArray(e)?e:[e],S=new Map,V=new Map,w=new Set,C=[],A=!1,o=0,y=0,O=0;for(let g=0;g0&&(o+=1),N({"":f[g]},"",f[g]);return o===0&&f.length===1&&(o+=9),{bytes:isNaN(o)?1/0:o+y,spaceBytes:u>0&&isNaN(o)?1/0:y,circular:[...w]};function N(g,d,l){if(!A)if(l=z(g,d,l,r),l===null||typeof l!="object")(l!==void 0||Array.isArray(g))&&(o+=ge(l));else{if(C.includes(l)){w.add(l),o+=4,b||(A=!0);return}if(V.has(l)){o+=V.get(l);return}O++;let k=O,L=o,m=0;if(C.push(l),Array.isArray(l)){m=l.length;for(let D=0;D0&&m>0&&(y+=(Array.isArray(l)?0:m)+(1+C.length*u)*(m+1)-u),C.pop(),k!==O&&V.set(l,o-L)}}}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(W(e,n,r)):new ReadableStream({start(){this.generator=W(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: W,stringifyInfo: he}; }))); //# sourceMappingURL=json-ext.min.js.map