function I(e){if(typeof e!="string")throw TypeError("Source must be a string");let o=0,a=1,n,c=!1;t();let d=w();if(g(),!c)throw new SyntaxError(f());return m(d),d;function t(){o6)throw new SyntaxError(f(h.u+" (too many hex digits)"))}if(i.length===0)throw new SyntaxError(f(h.u));let u=parseInt(i,16);if(u>1114111||u>=55296&&u<=57343)throw new SyntaxError(f(h.u+" (out of range)"));r+=String.fromCodePoint(u)}else{let i=L[n];if(!i)throw new SyntaxError(f(h.u+" "+JSON.stringify(n)));r+=i}s=!1}else if(n==="\\")s=!0;else{if(n==='"')break;if(n===` `)throw new SyntaxError(f());if(n<" "&&n!==" "||n==="\x7F")throw new SyntaxError(f());r+=n}return t(),r}function _(){if(n!=='"'||l(2)!=='""')return;t(),t(),t();let r=!1;n==="\r"&&l(1)===` `&&t(),n===` `&&(r=!0,t());let s="";for(;!c;){if(n==='"'&&l(2)==='""'){if(t(),t(),t(),s===""&&!r)throw new SyntaxError(f("Raw strings cannot be empty"));return s}s+=n,t()}throw new SyntaxError(f())}function O(){if(!y(n)&&n!=="-")return;let r="",s=!1;if(n==="-"&&(r+=n,t(),!y(n)))throw new SyntaxError(f());if(n==="0")r+=n,t();else for(;y(n);)r+=n,t();if(n==="."){if(s=!0,r+=n,t(),!y(n))throw new SyntaxError(f());for(;y(n);)r+=n,t()}if(n==="e"||n==="E"){if(s=!0,r+=n,t(),(n==="+"||n==="-")&&(r+=n,t()),!y(n))throw new SyntaxError(f());for(;y(n);)r+=n,t()}return s?parseFloat(r):K(r)}function C(){if(n!=="{")return;t(),g();let r={};if(n==="}")return t(),r;for(;;){let s=o,i;if(n==='"'?i=x():i=F(),Object.prototype.hasOwnProperty.call(r,i))throw o=s,new SyntaxError(f(`Duplicate key ${JSON.stringify(i)}`));if(g(),n!==":")throw new SyntaxError(f());t();let u=w();m(u),r[i]=u;let p=g();if(n==="}")return t(),r;if(n===","){if(t(),g(),n==="}")return t(),r}else{if(p)continue;throw new SyntaxError(f("Expected comma or newline between key-value pairs"))}}}function F(){let r="";for(;J(n);)r+=n,t();if(r==="")throw new SyntaxError(f());return r}function R(){if(n!=="[")return;t(),g();let r=[];if(n==="]")return t(),r;for(;;){let s=w();m(s),r.push(s);let i=g();if(n==="]")return t(),r;if(n===","){if(t(),g(),n==="]")return t(),r}else{if(i)continue;throw new SyntaxError(f("Expected comma or newline between values"))}}}function E(r,s){if(n===r[0]){for(let i=1;i="0"&&r<="9"||r>="A"&&r<="F"}function y(r){return r>="0"&&r<="9"}function J(r){return r>="A"&&r<="Z"||r>="a"&&r<="z"||r>="0"&&r<="9"||r==="_"||r==="-"}function K(r){if(r=="-0")return-0;let s=Number(r);if(s>=Number.MIN_SAFE_INTEGER&&s<=Number.MAX_SAFE_INTEGER)return s;let i=BigInt(r),u=-(2n**63n),p=2n**63n-1n;if(ip)throw new SyntaxError(`Integer ${r} is outside the 64-bit signed integer range on line ${a}.`);return i}function m(r){if(r===void 0)throw new SyntaxError(f())}function f(r=`Unexpected character ${JSON.stringify(n)}`){n||(r="Unexpected end of input");let s=e.substring(o-40,o).split(` `),i=s.at(-1)||"",u=e.substring(o,o+40).split(` `,1).at(0)||"";i===""&&(i=s.at(-2)||"",i+=" ",a--,u="");let p=` ${i}${u} `,S=` ${".".repeat(Math.max(0,i.length-1))}^ `;return`${r} on line ${a}. ${p}${S}`}}var L={'"':'"',"\\":"\\",n:` `,r:"\r",t:" "},h={u:"Invalid escape sequence"};function $(e){return N(e,0)}function N(e,o){let a=e===null?"null":Array.isArray(e)?"array":typeof e;switch(a){case"string":return k(e);case"boolean":return`${e}`;case"bigint":{let n=-(2n**63n),c=2n**63n-1n;if(ec)throw new Error(`Integer ${e} is outside the 64-bit signed integer range`);return`${e}`}case"number":{if(!Number.isFinite(e))throw new Error(`Cannot encode ${e} as a MAML value`);let n=`${e}`;if(!n.includes(".")&&!n.includes("e")&&!Number.isSafeInteger(e))throw new Error(`Integer ${e} cannot be represented losslessly as a number, use BigInt instead`);return n}case"null":case"undefined":return"null";case"array":{let n=e.length;if(n===0)return"[]";let c=b(o+1),d=b(o),t=`[ `;for(let l=0;l0&&(t+=` `),t+=c+N(e[l],o+1);return t+` `+d+"]"}case"object":{let n=Object.keys(e),c=n.length;if(c===0)return"{}";let d=b(o+1),t=b(o),l=`{ `;for(let w=0;w0&&(l+=` `);let x=n[w];l+=d+U(x)+": "+N(e[x],o+1)}return l+` `+t+"}"}default:throw new Error(`Unsupported value type: ${a}`)}}function k(e){let o='"';for(let a of e){let n=a.codePointAt(0);a==='"'?o+='\\"':a==="\\"?o+="\\\\":a===` `?o+="\\n":a==="\r"?o+="\\r":a===" "?o+="\\t":n<32||n===127?o+=`\\u{${n.toString(16).toUpperCase()}}`:o+=a}return o+'"'}var P=/^[A-Za-z0-9_-]+$/;function U(e){return P.test(e)?e:k(e)}function b(e){return" ".repeat(2*e)}(function(){return typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:Function("return this")()})().MAML={parse:I,stringify:$};