tjs-lang 0.2.8 → 0.3.0

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,16 +1,16 @@
1
- var q1=(X,K)=>()=>(K||X((K={exports:{}}).exports,K),K.exports);var X1=q1((dX,t8)=>{t8.exports={name:"tjs-lang",version:"0.2.8",description:"Type-safe JavaScript dialect with runtime validation, sandboxed VM execution, and AI agent orchestration. Transpiles TypeScript to validated JS with fuel-metered execution for untrusted code.",keywords:["typescript","transpiler","runtime-validation","type-safety","sandbox","virtual-machine","wasm-alternative","ai-agents","llm","orchestration","security","fuel-metering","capability-based","json-ast","untrusted-code"],license:"Apache-2.0",main:"./dist/index.js",exports:{".":{bun:"./src/index.ts",default:"./dist/index.js"},"./eval":{bun:"./src/lang/eval.ts",default:"./dist/lang/eval.js"},"./lang":{bun:"./src/lang/index.ts",default:"./dist/lang/index.js"},"./lang/eval":{bun:"./src/lang/eval.ts",default:"./dist/lang/eval.js"},"./lang/from-ts":{bun:"./src/lang/emitters/from-ts.ts",default:"./dist/lang/emitters/from-ts.js"},"./src":"./src/index.ts","./editors/monaco":"./editors/monaco/ajs-monarch.js","./editors/codemirror":"./editors/codemirror/ajs-language.js","./editors/ace":"./editors/ace/ajs-mode.js"},bin:{tjs:"./src/cli/tjs.ts",tjsx:"./src/cli/tjsx.ts","tjs-playground":"./src/cli/playground.ts","create-tjs-app":"./src/cli/create-app.ts","ajs-install-vscode":"./bin/install-vscode.sh","ajs-install-cursor":"./bin/install-cursor.sh"},type:"module",files:["dist","src","docs","editors","bin","demo","tjs-lang.svg","CONTEXT.md"],sideEffects:!1,repository:{type:"git",url:"https://github.com/tonioloewald/tjs-lang.git"},devDependencies:{"@codemirror/lang-javascript":"^6.2.4","@codemirror/state":"^6.5.3","@codemirror/view":"^6.39.9","@happy-dom/global-registrator":"^20.1.0","@types/bun":"latest","@types/jsdom":"^21.1.7","@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0","acorn-walk":"^8.3.4",chokidar:"^4.0.3",codemirror:"^6.0.2",eslint:"^8.57.1","firebase-admin":"^13.6.0","firebase-functions":"^7.0.5",marked:"^9.1.6",prettier:"^2.8.8",tosijs:"^1.2.0","tosijs-ui":"^1.2.0",typescript:"^5.6.2",valibot:"^0.36.0",vitest:"^2.0.5"},scripts:{format:"bun eslint src --fix && bun prettier --write .",lint:"eslint src","build:grammars":"bun editors/build-grammars.ts","test:fast":"SKIP_LLM_TESTS=1 SKIP_BENCHMARKS=1 bun test","test:llm":"bun test src/batteries/models.integration.test.ts",bench:"bun bin/benchmarks.ts",make:"rm -rf dist && bun format && bun run build:grammars && tsc -p tsconfig.build.json && bun scripts/build.ts","build:bundles":"bun scripts/build.ts",typecheck:"tsc --noEmit",latest:"rm -rf node_modules && bun install",docs:"node bin/docs.js",dev:"bun run bin/dev.ts","build:demo":"bun scripts/build-demo.ts","build:cli":"bun build src/cli/tjs.ts --compile --outfile=dist/tjs && bun build src/cli/tjsx.ts --compile --outfile=dist/tjsx","functions:build":"cd functions && npm run build","functions:deploy":"cd functions && npm run deploy","functions:serve":"cd functions && npm run serve","deploy:hosting":"firebase deploy --only hosting",deploy:"npm run functions:deploy && firebase deploy --only hosting",start:"bun run build:demo && bun run dev"},dependencies:{"@codemirror/lang-css":"^6.3.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-markdown":"^6.5.0","@codemirror/theme-one-dark":"^6.1.3",acorn:"^8.15.0",firebase:"^10.12.0","tosijs-schema":"^1.2.0"}}});import*as O6 from"acorn";class T extends Error{line;column;source;filename;constructor(X,K,Z,H){let Y=`${H||"<source>"}:${K.line}:${K.column}`;super(`${X} at ${Y}`);this.name="TranspileError",this.line=K.line,this.column=K.column,this.source=Z,this.filename=H}}class r extends T{constructor(X,K,Z,H){super(X,K,Z,H);this.name="SyntaxError"}formatWithContext(X=2){if(!this.source)return this.message;let K=this.source.split(`
1
+ var q1=(X,K)=>()=>(K||X((K={exports:{}}).exports,K),K.exports);var X1=q1((dX,t8)=>{t8.exports={name:"tjs-lang",version:"0.3.0",description:"Type-safe JavaScript dialect with runtime validation, sandboxed VM execution, and AI agent orchestration. Transpiles TypeScript to validated JS with fuel-metered execution for untrusted code.",keywords:["typescript","transpiler","runtime-validation","type-safety","sandbox","virtual-machine","wasm-alternative","ai-agents","llm","orchestration","security","fuel-metering","capability-based","json-ast","untrusted-code"],license:"Apache-2.0",main:"./dist/index.js",exports:{".":{bun:"./src/index.ts",default:"./dist/index.js"},"./eval":{bun:"./src/lang/eval.ts",default:"./dist/lang/eval.js"},"./lang":{bun:"./src/lang/index.ts",default:"./dist/lang/index.js"},"./lang/eval":{bun:"./src/lang/eval.ts",default:"./dist/lang/eval.js"},"./lang/from-ts":{bun:"./src/lang/emitters/from-ts.ts",default:"./dist/lang/emitters/from-ts.js"},"./src":"./src/index.ts","./editors/monaco":"./editors/monaco/ajs-monarch.js","./editors/codemirror":"./editors/codemirror/ajs-language.js","./editors/ace":"./editors/ace/ajs-mode.js"},bin:{tjs:"./src/cli/tjs.ts",tjsx:"./src/cli/tjsx.ts","tjs-playground":"./src/cli/playground.ts","create-tjs-app":"./src/cli/create-app.ts","ajs-install-vscode":"./bin/install-vscode.sh","ajs-install-cursor":"./bin/install-cursor.sh"},type:"module",files:["dist","src","docs","editors","bin","demo","tjs-lang.svg","CONTEXT.md"],sideEffects:!1,repository:{type:"git",url:"https://github.com/tonioloewald/tjs-lang.git"},devDependencies:{"@codemirror/lang-javascript":"^6.2.4","@codemirror/state":"^6.5.3","@codemirror/view":"^6.39.9","@happy-dom/global-registrator":"^20.1.0","@types/bun":"latest","@types/jsdom":"^21.1.7","@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0","acorn-walk":"^8.3.4",chokidar:"^4.0.3",codemirror:"^6.0.2",eslint:"^8.57.1","firebase-admin":"^13.6.0","firebase-functions":"^7.0.5",marked:"^9.1.6",prettier:"^2.8.8",tosijs:"^1.2.0","tosijs-ui":"^1.2.0",typescript:"^5.6.2",valibot:"^0.36.0",vitest:"^2.0.5"},scripts:{format:"bun eslint src --fix && bun prettier --write .",lint:"eslint src","build:grammars":"bun editors/build-grammars.ts","test:fast":"SKIP_LLM_TESTS=1 SKIP_BENCHMARKS=1 bun test","test:llm":"bun test src/batteries/models.integration.test.ts",bench:"bun bin/benchmarks.ts",make:"rm -rf dist && bun format && bun run build:grammars && tsc -p tsconfig.build.json && bun scripts/build.ts","build:bundles":"bun scripts/build.ts",typecheck:"tsc --noEmit",latest:"rm -rf node_modules && bun install",docs:"node bin/docs.js",dev:"bun run bin/dev.ts","build:demo":"bun scripts/build-demo.ts","build:cli":"bun build src/cli/tjs.ts --compile --outfile=dist/tjs && bun build src/cli/tjsx.ts --compile --outfile=dist/tjsx","functions:build":"cd functions && npm run build","functions:deploy":"cd functions && npm run deploy","functions:serve":"cd functions && npm run serve","deploy:hosting":"firebase deploy --only hosting",deploy:"npm run functions:deploy && firebase deploy --only hosting",start:"bun run build:demo && bun run dev"},dependencies:{"@codemirror/lang-css":"^6.3.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-markdown":"^6.5.0","@codemirror/theme-one-dark":"^6.1.3",acorn:"^8.15.0",firebase:"^10.12.0","tosijs-schema":"^1.2.0"}}});import*as O6 from"acorn";class T extends Error{line;column;source;filename;constructor(X,K,Z,H){let Y=`${H||"<source>"}:${K.line}:${K.column}`;super(`${X} at ${Y}`);this.name="TranspileError",this.line=K.line,this.column=K.column,this.source=Z,this.filename=H}}class t extends T{constructor(X,K,Z,H){super(X,K,Z,H);this.name="SyntaxError"}formatWithContext(X=2){if(!this.source)return this.message;let K=this.source.split(`
2
2
  `),Z=this.line-1,H=Math.max(0,Z-X),Y=Math.min(K.length-1,Z+X),J=[],$=String(Y+1).length;for(let Q=H;Q<=Y;Q++){let G=String(Q+1).padStart($),z=Q===Z?">":" ";if(J.push(`${z} ${G} | ${K[Q]}`),Q===Z){let D=" ".repeat($+4+this.column);J.push(`${D}^ ${this.message.split(" at ")[0]}`)}}return J.join(`
3
3
  `)}}function m(X){return{depth:X.depth+1,locals:new Map,parent:X,parameters:X.parameters,atoms:X.atoms,warnings:X.warnings,source:X.source,filename:X.filename,options:X.options}}function k(X){if(X.loc)return{line:X.loc.start.line,column:X.loc.start.column};return{line:1,column:0}}function p0(X,K){let Z="",H=0,Y,J,$="normal",Q=[],G=[{type:"top-level",braceDepth:0}],z=0,D=()=>G[G.length-1]?.type||"top-level",F=()=>{let _=G[G.length-1];return _?.type==="class-body"&&z===_.braceDepth+1};while(H<X.length){let _=X[H],q=X[H+1];switch($){case"single-string":if(Z+=_,_==="\\"&&H+1<X.length){Z+=q,H+=2;continue}if(_==="'")$="normal";H++;continue;case"double-string":if(Z+=_,_==="\\"&&H+1<X.length){Z+=q,H+=2;continue}if(_==='"')$="normal";H++;continue;case"template-string":if(Z+=_,_==="\\"&&H+1<X.length){Z+=q,H+=2;continue}if(_==="$"&&q==="{"){Z+=q,H+=2,Q.push(1),$="normal";continue}if(_==="`")$="normal";H++;continue;case"line-comment":if(Z+=_,_===`
4
- `)$="normal";H++;continue;case"block-comment":if(Z+=_,_==="*"&&q==="/"){Z+=q,H+=2,$="normal";continue}H++;continue;case"regex":if(Z+=_,_==="\\"&&H+1<X.length){Z+=q,H+=2;continue}if(_==="["){H++;while(H<X.length&&X[H]!=="]")if(Z+=X[H],X[H]==="\\"&&H+1<X.length)Z+=X[H+1],H+=2;else H++;if(H<X.length)Z+=X[H],H++;continue}if(_==="/"){H++;while(H<X.length&&/[gimsuy]/.test(X[H]))Z+=X[H],H++;$="normal";continue}H++;continue;case"normal":if(Q.length>0){if(_==="{")Q[Q.length-1]++;else if(_==="}"){if(Q[Q.length-1]--,Q[Q.length-1]===0){Q.pop(),Z+=_,H++,$="template-string";continue}}}if(_==="'"){Z+=_,H++,$="single-string";continue}if(_==='"'){Z+=_,H++,$="double-string";continue}if(_==="`"){Z+=_,H++,$="template-string";continue}if(_==="/"&&q==="/"){Z+=_+q,H+=2,$="line-comment";continue}if(_==="/"&&q==="*"){Z+=_+q,H+=2,$="block-comment";continue}if(_==="/"){let w=Z.trimEnd();if(!w[w.length-1]||/[=(!,;:{[&|?+\-*%<>~^]$/.test(w)||/\b(return|case|throw|in|of|typeof|instanceof|new|delete|void)\s*$/.test(w)){Z+=_,H++,$="regex";continue}}break}if(_==="{"){z++,Z+=_,H++;continue}if(_==="}"){z--;let w=G[G.length-1];if(w&&z===w.braceDepth)G.pop();Z+=_,H++;continue}let U=X.slice(H).match(/^class\s+\w+(?:\s+extends\s+\w+)?\s*\{/);if(U){let w=U[0].slice(0,-1);Z+=w,H+=w.length,G.push({type:"class-body",braceDepth:z});continue}let A=X.slice(H).match(/^function\s+(\w+)\s*\(/);if(A){let w=A[1],B=A[0].length,P=X[H+B],L=null,M=H+B;if(P==="?"||P==="!")if(L=P,M++,L==="!")K.unsafeFunctions.add(w);else K.safeFunctions.add(w);Z+=`function ${w}(`,H=M;let j=E0(X,H,"(",")");if(!j){Z+=X[H],H++;continue}let{content:V,endPos:E}=j;H=E;let h=i0(V,K,!0);Z+=h+")";let S=H;while(S<X.length&&/\s/.test(X[S]))S++;let i=X.slice(S,S+2);if(i==="->"||i==="-?"||i==="-!"){S+=2;while(S<X.length&&/\s/.test(X[S]))S++;let O=V0(X,S);if(O){let{type:g,endPos:X0}=O;if(Y===void 0){if(Y=g,i==="-?")J="safe";else if(i==="-!")J="unsafe"}H=X0}}continue}let I=X.slice(H).match(/^(constructor|(?:get|set)\s+\w+|async\s+\w+|\w+)\s*\(/);if(I&&F()){let w=I[1],B=I[0].length,P=H+B;Z+=w+"(",H=P;let L=E0(X,H,"(",")");if(!L){Z+=X[H],H++;continue}let{content:M,endPos:j}=L;H=j;let V=i0(M,K,!0);Z+=V+")";let E=H;while(E<X.length&&/\s/.test(X[E]))E++;if(X.slice(E,E+2)==="->"){E+=2;while(E<X.length&&/\s/.test(X[E]))E++;let S=V0(X,E);if(S)H=S.endPos}else if(X[E]===":"){E++;while(E<X.length&&/\s/.test(X[E]))E++;let S=V0(X,E);if(S)H=S.endPos}continue}if(X[H]==="("){let w=E0(X,H+1,"(",")");if(!w){Z+=X[H],H++;continue}let{content:B,endPos:P}=w,L=P;while(L<X.length&&/\s/.test(X[L]))L++;let M,j=X.slice(L,L+2);if(j==="->"||j==="-?"||j==="-!"){L+=2;while(L<X.length&&/\s/.test(X[L]))L++;let V=V0(X,L);if(V){M=V.type,L=V.endPos;while(L<X.length&&/\s/.test(X[L]))L++}}if(X.slice(L,L+2)==="=>"){let V=null,E=B,h=B.trimStart();if(h.startsWith("?")&&(h.length===1||/\s/.test(h[1])))V="?",E=h.slice(1);else if(h.startsWith("!")&&(h.length===1||/\s/.test(h[1])))V="!",E=h.slice(1);let S=i0(E,K,!1);Z+=`(${V==="?"?"/* safe */ ":V==="!"?"/* unsafe */ ":""}${S})`,H=P;while(H<L&&/\s/.test(X[H]))Z+=X[H],H++;if(M)H=L}else{let V=p0(B,K);Z+=`(${V.source})`,H=P}continue}Z+=X[H],H++}return{source:Z,returnType:Y,returnSafety:J}}function E0(X,K,Z,H){let Y=1,J=K,$=!1,Q="";while(J<X.length&&Y>0){let G=X[J];if(!$&&(G==="'"||G==='"'||G==="`"))$=!0,Q=G;else if($&&G===Q&&X[J-1]!=="\\")$=!1;else if(!$){if(G===Z)Y++;else if(G===H)Y--}J++}if(Y!==0)return null;return{content:X.slice(K,J-1),endPos:J}}function U1(X,K){let Z=K;while(Z<X.length&&/\s/.test(X[Z]))Z++;if(Z>=X.length)return null;let H=Z,Y=X[Z];if(Y==="{"||Y==="["){let $=Y==="{"?"}":"]",Q=E0(X,Z+1,Y,$);if(!Q)return null;return{value:X.slice(H,Q.endPos),endPos:Q.endPos}}if(Y==="'"||Y==='"'||Y==="`"){Z++;while(Z<X.length){if(X[Z]===Y&&X[Z-1]!=="\\")return Z++,{value:X.slice(H,Z),endPos:Z};Z++}return null}if(/[-+\d]/.test(Y)){while(Z<X.length&&/[\d.eE+-]/.test(X[Z]))Z++;return{value:X.slice(H,Z),endPos:Z}}let J=X.slice(Z).match(/^(true|false|null|undefined)\b/);if(J)return{value:J[1],endPos:Z+J[1].length};return null}function F0(X){return X.replace(/(?<!\|)\|(?!\|)/g," || ")}function V0(X,K){let Z=K,H=0,Y=!1,J="",$=!1,Q=(G)=>({type:F0(X.slice(K,G).trim()),endPos:G});while(Z<X.length){let G=X[Z];if(!Y&&(G==="'"||G==='"'||G==="`")){Y=!0,J=G,$=!0,Z++;continue}if(Y){if(G===J&&X[Z-1]!=="\\"){if(Y=!1,Z++,H===0){let z=Z;while(z<X.length&&/\s/.test(X[z]))z++;if(X[z]==="{"){if(!X.slice(z+1).match(/^\s*(\w+)\s*:/))return Q(Z)}if(X[z]!=="|"&&X[z]!=="&")return Q(Z)}continue}Z++;continue}if(G==="{"||G==="["||G==="("){H++,$=!0,Z++;continue}if(G==="}"||G==="]"||G===")"){if(H--,H===0){Z++;let z=Z;while(z<X.length&&/\s/.test(X[z]))z++;if(X[z]==="|"||X[z]==="&")continue;return Q(Z)}Z++;continue}if(H===0&&G==="{"){if($)return Q(Z);if(X.slice(Z+1).match(/^\s*(\w+)\s*:/)){H++,$=!0,Z++;continue}return Q(Z)}if(H===0&&(G==="|"||G==="&")){if(Z++,Z<X.length&&X[Z]==="|")Z++;while(Z<X.length&&/\s/.test(X[Z]))Z++;continue}if(H===0&&(/\d/.test(G)||G==="-"&&/\d/.test(X[Z+1]))){let z=Z;if(X[z]==="-")z++;while(z<X.length&&/\d/.test(X[z]))z++;if(z<X.length&&X[z]==="."&&/\d/.test(X[z+1])){z++;while(z<X.length&&/\d/.test(X[z]))z++}if(z<X.length&&(X[z]==="e"||X[z]==="E")){if(z++,z<X.length&&(X[z]==="+"||X[z]==="-"))z++;while(z<X.length&&/\d/.test(X[z]))z++}$=!0,Z=z;while(Z<X.length&&/\s/.test(X[Z]))Z++;if(Z<X.length&&X[Z]==="{")return{type:F0(X.slice(K,z).trim()),endPos:z};if(X[Z]!=="|"&&X[Z]!=="&")return{type:F0(X.slice(K,z).trim()),endPos:z};continue}if(H===0&&/[a-zA-Z_]/.test(G)){let z=Z;while(z<X.length&&/\w/.test(X[z]))z++;$=!0,Z=z;while(Z<X.length&&/\s/.test(X[Z]))Z++;if(Z<X.length&&X[Z]==="{"){if(!X.slice(Z+1).match(/^\s*(\w+)\s*:/)){let F=z;while(F>K&&/\s/.test(X[F-1]))F--;return{type:F0(X.slice(K,F).trim()),endPos:z}}}if(X[Z]!=="|"&&X[Z]!=="&")return{type:F0(X.slice(K,z).trim()),endPos:z};continue}Z++}if($)return Q(Z);return null}function i0(X,K,Z){let H=p0(X,{originalSource:X,requiredParams:K.requiredParams,unsafeFunctions:K.unsafeFunctions,safeFunctions:K.safeFunctions}).source,Y=S0(H),J=!1,$=new Set,Q=(z)=>{if(Z&&/^\w+$/.test(z)){if($.has(z))throw Error(`Duplicate parameter name '${z}'`);$.add(z)}};return Y.map((z)=>{let D=z.trim();if(!D)return z;if(Z&&D.startsWith("{")&&D.endsWith("}")){let q=D.slice(1,-1);return`{ ${E6(q,K)} }`}if(Z&&D.startsWith("[")&&D.endsWith("]")){let q=D.slice(1,-1);return`[ ${E6(q,K)} ]`}let F=D.match(/^(\w+)\s*\?\s*:\s*(.+)$/);if(F){let[,q,U]=F;return Q(q),J=!0,`${q} = ${U}`}if(!A1(D)){let q=D.match(/^(\w+)\s*=/);if(q)Q(q[1]);return J=!0,z}let _=w1(D);if(_!==-1){let q=D.slice(0,_).trim(),U=D.slice(_+1).trim();if(Q(q),J&&Z&&/^\w+$/.test(q))throw Error(`Required parameter '${q}' cannot follow optional parameter`);if(Z&&/^\w+$/.test(q))K.requiredParams.add(q);return`${q} = ${U}`}return z}).join(",")}function E6(X,K){return S0(X).map((Y)=>{let J=Y.trim();if(!J)return Y;let $=J.match(/^(\w+)\s*:\s*(\{[\s\S]*\})$/);if($){let[,z,D]=$;K.requiredParams.add(z);let F=C0(D);return`${z} = ${F}`}let Q=J.match(/^(\w+)\s*:\s*(\[[\s\S]*\])$/);if(Q){let[,z,D]=Q;K.requiredParams.add(z);let F=N0(D);return`${z} = ${F}`}let G=J.match(/^(\w+)\s*:\s*([\s\S]+)$/);if(G){let[,z,D]=G;return K.requiredParams.add(z),`${z} = ${D}`}return Y}).join(", ")}function C0(X){let K=X.slice(1,-1).trim();return`{ ${S0(K).map((Y)=>{let J=Y.trim();if(!J)return Y;let $=J.match(/^(\w+)\s*:\s*(\{[\s\S]*\})$/);if($){let[,F,_]=$;return`${F}: ${C0(_)}`}let Q=J.match(/^(\w+)\s*=\s*(\{[\s\S]*\})$/);if(Q){let[,F,_]=Q;return`${F}: ${C0(_)}`}let G=J.match(/^(\w+)\s*:\s*(\[[\s\S]*\])$/);if(G){let[,F,_]=G;return`${F}: ${N0(_)}`}let z=J.match(/^(\w+)\s*=\s*(\[[\s\S]*\])$/);if(z){let[,F,_]=z;return`${F}: ${N0(_)}`}let D=J.match(/^(\w+)\s*=\s*([\s\S]+)$/);if(D){let[,F,_]=D;return`${F}: ${_}`}return Y}).join(", ")} }`}function N0(X){let K=X.slice(1,-1).trim();return`[ ${S0(K).map((Y)=>{let J=Y.trim();if(!J)return Y;if(J.startsWith("{")&&J.endsWith("}"))return C0(J);if(J.startsWith("[")&&J.endsWith("]"))return N0(J);return Y}).join(", ")} ]`}function A1(X){let K=0,Z=!1,H=!1,Y=!1,J="";for(let $=0;$<X.length;$++){let Q=X[$];if(!Y&&(Q==="'"||Q==='"'||Q==="`")){Y=!0,J=Q;continue}if(Y){if(Q===J&&X[$-1]!=="\\")Y=!1;continue}if(Q==="("||Q==="{"||Q==="[")K++;else if(Q===")"||Q==="}"||Q==="]")K--;else if(K===0){if(Q===":")Z=!0;if(Q==="="&&X[$+1]!==">")H=!0}}return Z&&!H}function w1(X){let K=0,Z=!1,H="";for(let Y=0;Y<X.length;Y++){let J=X[Y];if(!Z&&(J==="'"||J==='"'||J==="`")){Z=!0,H=J;continue}if(Z){if(J===H&&X[Y-1]!=="\\")Z=!1;continue}if(J==="("||J==="{"||J==="[")K++;else if(J===")"||J==="}"||J==="]")K--;else if(K===0&&J===":")return Y}return-1}function O0(X,K={}){let Z=X,H,Y=new Set,J=new Set,$=new Set,Q={tjsEquals:!1,tjsClass:!1,tjsDate:!1,tjsNoeval:!1,tjsStandard:!1,tjsSafeEval:!1},G=X.match(/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*safety\s+(none|inputs|all)\b/);if(G)H=G[2],X=X.replace(/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*safety\s+(none|inputs|all)\s*/,"$1");let z=/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*(TjsStrict|TjsEquals|TjsClass|TjsDate|TjsNoeval|TjsStandard|TjsSafeEval)\b/,D;while(D=X.match(z)){let I=D[2];if(I==="TjsStrict")Q.tjsEquals=!0,Q.tjsClass=!0,Q.tjsDate=!0,Q.tjsNoeval=!0,Q.tjsStandard=!0;else if(I==="TjsEquals")Q.tjsEquals=!0;else if(I==="TjsClass")Q.tjsClass=!0;else if(I==="TjsDate")Q.tjsDate=!0;else if(I==="TjsNoeval")Q.tjsNoeval=!0;else if(I==="TjsStandard")Q.tjsStandard=!0;else if(I==="TjsSafeEval")Q.tjsSafeEval=!0;X=X.replace(new RegExp(`^(\\s*(?:\\/\\/[^\\n]*\\n|\\/\\*[\\s\\S]*?\\*\\/\\s*)*)\\s*${I}\\s*`),"$1")}if(Q.tjsStandard)X=P1(X);if(X=M1(X),Q.tjsEquals&&!K.vmTarget)X=j1(X);X=C1(X),X=N1(X),X=O1(X),X=S1(X),X=k1(X);let{source:F,returnType:_,returnSafety:q}=p0(X,{originalSource:Z,requiredParams:Y,unsafeFunctions:J,safeFunctions:$});X=F,X=R1(X);let U=I1(X);X=U.source;let A=g1(X,K.dangerouslySkipTests);if(X=A.source,Q.tjsClass)X=v1(X);if(Q.tjsDate)X=b1(X);if(Q.tjsNoeval)X=f1(X);return{source:X,returnType:_,returnSafety:q,moduleSafety:H,tjsModes:Q,originalSource:Z,requiredParams:Y,unsafeFunctions:J,safeFunctions:$,wasmBlocks:U.blocks,tests:A.tests,testErrors:A.errors}}function R1(X){let K="",Z=0;while(Z<X.length){let H=X.slice(Z).match(/^\btry\s*\{/);if(H){let J=Z+H[0].length-1+1,$=1,Q=J;while(Q<X.length&&$>0){let z=X[Q];if(z==="{")$++;else if(z==="}")$--;Q++}if($!==0){K+=X[Z],Z++;continue}if(X.slice(Q).match(/^\s*(catch|finally)\b/))K+=X.slice(Z,Q),Z=Q;else{let z=X.slice(J,Q-1);K+=`try {${z}} catch (__try_err) { return { $error: true, message: __try_err?.message || String(__try_err), op: 'try', cause: __try_err, stack: globalThis.__tjs?.getStack?.() } }`,Z=Q}}else K+=X[Z],Z++}return K}function I1(X){let K=[],Z="",H=0,Y=0;while(H<X.length){let J=X.slice(H).match(/^\bwasm\s*\{/);if(J){let $=H,Q=H+J[0].length,G=1,z=Q;while(z<X.length&&G>0){let j=X[z];if(j==="{")G++;else if(j==="}")G--;z++}if(G!==0){Z+=X[H],H++;continue}let D=X.slice(Q,z-1),F,_=z,q=X.slice(z).match(/^\s*fallback\s*\{/);if(q){let j=z+q[0].length;G=1;let V=j;while(V<X.length&&G>0){let E=X[V];if(E==="{")G++;else if(E==="}")G--;V++}if(G===0)F=X.slice(j,V-1),_=V}let A=B1(D).map((j)=>{let V=L1(X,$,j);return V?`${j}: ${V}`:j}),I={id:`__tjs_wasm_${Y}`,body:D,fallback:F,captures:A,start:$,end:_};K.push(I);let w=F??D,B=A.map((j)=>j.split(":")[0].trim()),P=B.length>0?B.join(", "):"",L=B.length>0?`globalThis.${I.id}(${P})`:`globalThis.${I.id}()`,M=`(globalThis.${I.id} ? ${L} : (() => {${w}})())`;Z+=M,H=_,Y++}else Z+=X[H],H++}return{source:Z,blocks:K}}function B1(X){let K=X.replace(/\/\/[^\n]*/g,"").replace(/\/\*[\s\S]*?\*\//g,""),Z=/\b([a-zA-Z_$][a-zA-Z0-9_$]*)\b/g,H=new Set,Y;while((Y=Z.exec(K))!==null)H.add(Y[1]);let J=new Set,$=/\b(?:let|const|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/g;while((Y=$.exec(K))!==null)J.add(Y[1]);let Q=/\bfor\s*\(\s*(?:let|const|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/g;while((Y=Q.exec(K))!==null)J.add(Y[1]);let G=new Set(["if","else","for","while","do","switch","case","break","continue","return","function","let","const","var","new","this","true","false","null","undefined","typeof","instanceof","in","of","try","catch","finally","throw","async","await","class","extends","super","import","export","default","from","as","static","get","set","yield","console","Math","Array","Object","String","Number","Boolean","Date","JSON","Promise","Map","Set","WeakMap","WeakSet","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","ArrayBuffer","DataView","Error","TypeError","RangeError","length","push","pop","shift","unshift","slice","splice","map","filter","reduce","forEach","find","findIndex","indexOf","includes","globalThis","window","document","Infinity","NaN","isNaN","isFinite","parseInt","parseFloat","encodeURI","decodeURI","eval"]),z=[];for(let D of H)if(!J.has(D)&&!G.has(D))z.push(D);return z.sort()}function L1(X,K,Z){let H=X.slice(0,K),Y=/function\s+\w+\s*\(([^)]*)\)\s*(?:->.*?)?\s*\{[^}]*$/,J=H.match(Y);if(!J){let $=/(?:const|let|var)?\s*\w+\s*=\s*(?:async\s*)?\(([^)]*)\)\s*(?:=>|->)?\s*\{[^}]*$/,Q=H.match($);if(!Q)return;return C6(Q[1],Z)}return C6(J[1],Z)}function C6(X,K){let Z=X.split(",").map((H)=>H.trim());for(let H of Z){let Y=H.match(new RegExp(`^${K}\\s*:\\s*([A-Za-z][A-Za-z0-9]*)`));if(Y)return Y[1];let J=H.match(new RegExp(`^${K}\\s*=\\s*(Float32Array|Float64Array|Int32Array|Uint8Array|Int8Array|Int16Array|Uint16Array|Uint32Array)`));if(J)return J[1]}return}function S0(X){let K=[],Z="",H=0,Y=!1,J=!1,$=0;while($<X.length){let Q=X[$],G=X[$+1];if(!J&&Q==="/"&&G==="/"){Y=!0,Z+="//",$+=2;continue}if(!Y&&Q==="/"&&G==="*"){J=!0,Z+="/*",$+=2;continue}if(Y&&Q===`
5
- `){Y=!1,Z+=Q,$++;continue}if(J&&Q==="*"&&G==="/"){J=!1,Z+="*/",$+=2;continue}if(Y||J){Z+=Q,$++;continue}if(Q==="("||Q==="{"||Q==="[")H++,Z+=Q;else if(Q===")"||Q==="}"||Q==="]")H--,Z+=Q;else if(Q===","&&H===0)K.push(Z),Z="";else Z+=Q;$++}if(Z.trim())K.push(Z);return K}function M1(X){let Z=new RegExp(`([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")\\s+IsNot\\s+([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")`,"g");X=X.replace(Z,"IsNot($1, $2)");let H=new RegExp(`([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")\\s+Is\\s+([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")`,"g");return X=X.replace(H,"Is($1, $2)"),X}function P1(X){let K=/^[\s]*[([/+\-`]/,Z=/[{([,;:+\-*/%=&|?<>!~^]\s*$|^\s*$/,H=/\b(return|throw|yield|await|case|default|extends|new|typeof|void|delete|in|of|instanceof)\s*$/,Y=X.split(`
4
+ `)$="normal";H++;continue;case"block-comment":if(Z+=_,_==="*"&&q==="/"){Z+=q,H+=2,$="normal";continue}H++;continue;case"regex":if(Z+=_,_==="\\"&&H+1<X.length){Z+=q,H+=2;continue}if(_==="["){H++;while(H<X.length&&X[H]!=="]")if(Z+=X[H],X[H]==="\\"&&H+1<X.length)Z+=X[H+1],H+=2;else H++;if(H<X.length)Z+=X[H],H++;continue}if(_==="/"){H++;while(H<X.length&&/[gimsuy]/.test(X[H]))Z+=X[H],H++;$="normal";continue}H++;continue;case"normal":if(Q.length>0){if(_==="{")Q[Q.length-1]++;else if(_==="}"){if(Q[Q.length-1]--,Q[Q.length-1]===0){Q.pop(),Z+=_,H++,$="template-string";continue}}}if(_==="'"){Z+=_,H++,$="single-string";continue}if(_==='"'){Z+=_,H++,$="double-string";continue}if(_==="`"){Z+=_,H++,$="template-string";continue}if(_==="/"&&q==="/"){Z+=_+q,H+=2,$="line-comment";continue}if(_==="/"&&q==="*"){Z+=_+q,H+=2,$="block-comment";continue}if(_==="/"){let w=Z.trimEnd();if(!w[w.length-1]||/[=(!,;:{[&|?+\-*%<>~^]$/.test(w)||/\b(return|case|throw|in|of|typeof|instanceof|new|delete|void)\s*$/.test(w)){Z+=_,H++,$="regex";continue}}break}if(_==="{"){z++,Z+=_,H++;continue}if(_==="}"){z--;let w=G[G.length-1];if(w&&z===w.braceDepth)G.pop();Z+=_,H++;continue}let U=X.slice(H).match(/^class\s+\w+(?:\s+extends\s+\w+)?\s*\{/);if(U){let w=U[0].slice(0,-1);Z+=w,H+=w.length,G.push({type:"class-body",braceDepth:z});continue}let A=X.slice(H).match(/^function\s+(\w+)\s*\(/);if(A){let w=A[1],B=A[0].length,j=X[H+B],L=null,M=H+B;if(j==="?"||j==="!")if(L=j,M++,L==="!")K.unsafeFunctions.add(w);else K.safeFunctions.add(w);Z+=`function ${w}(`,H=M;let P=E0(X,H,"(",")");if(!P){Z+=X[H],H++;continue}let{content:V,endPos:E}=P;H=E;let h=i0(V,K,!0);Z+=h+")";let S=H;while(S<X.length&&/\s/.test(X[S]))S++;let i=X.slice(S,S+2);if(i==="->"||i==="-?"||i==="-!"){S+=2;while(S<X.length&&/\s/.test(X[S]))S++;let O=V0(X,S);if(O){let{type:g,endPos:X0}=O;if(Y===void 0){if(Y=g,i==="-?")J="safe";else if(i==="-!")J="unsafe"}H=X0}}continue}let I=X.slice(H).match(/^(constructor|(?:get|set)\s+\w+|async\s+\w+|\w+)\s*\(/);if(I&&F()){let w=I[1],B=I[0].length,j=H+B;Z+=w+"(",H=j;let L=E0(X,H,"(",")");if(!L){Z+=X[H],H++;continue}let{content:M,endPos:P}=L;H=P;let V=i0(M,K,!0);Z+=V+")";let E=H;while(E<X.length&&/\s/.test(X[E]))E++;if(X.slice(E,E+2)==="->"){E+=2;while(E<X.length&&/\s/.test(X[E]))E++;let S=V0(X,E);if(S)H=S.endPos}else if(X[E]===":"){E++;while(E<X.length&&/\s/.test(X[E]))E++;let S=V0(X,E);if(S)H=S.endPos}continue}if(X[H]==="("){let w=E0(X,H+1,"(",")");if(!w){Z+=X[H],H++;continue}let{content:B,endPos:j}=w,L=j;while(L<X.length&&/\s/.test(X[L]))L++;let M,P=X.slice(L,L+2);if(P==="->"||P==="-?"||P==="-!"){L+=2;while(L<X.length&&/\s/.test(X[L]))L++;let V=V0(X,L);if(V){M=V.type,L=V.endPos;while(L<X.length&&/\s/.test(X[L]))L++}}if(X.slice(L,L+2)==="=>"){let V=null,E=B,h=B.trimStart();if(h.startsWith("?")&&(h.length===1||/\s/.test(h[1])))V="?",E=h.slice(1);else if(h.startsWith("!")&&(h.length===1||/\s/.test(h[1])))V="!",E=h.slice(1);let S=i0(E,K,!1);Z+=`(${V==="?"?"/* safe */ ":V==="!"?"/* unsafe */ ":""}${S})`,H=j;while(H<L&&/\s/.test(X[H]))Z+=X[H],H++;if(M)H=L}else{let V=p0(B,K);Z+=`(${V.source})`,H=j}continue}Z+=X[H],H++}return{source:Z,returnType:Y,returnSafety:J}}function E0(X,K,Z,H){let Y=1,J=K,$=!1,Q="";while(J<X.length&&Y>0){let G=X[J];if(!$&&(G==="'"||G==='"'||G==="`"))$=!0,Q=G;else if($&&G===Q&&X[J-1]!=="\\")$=!1;else if(!$){if(G===Z)Y++;else if(G===H)Y--}J++}if(Y!==0)return null;return{content:X.slice(K,J-1),endPos:J}}function U1(X,K){let Z=K;while(Z<X.length&&/\s/.test(X[Z]))Z++;if(Z>=X.length)return null;let H=Z,Y=X[Z];if(Y==="{"||Y==="["){let $=Y==="{"?"}":"]",Q=E0(X,Z+1,Y,$);if(!Q)return null;return{value:X.slice(H,Q.endPos),endPos:Q.endPos}}if(Y==="'"||Y==='"'||Y==="`"){Z++;while(Z<X.length){if(X[Z]===Y&&X[Z-1]!=="\\")return Z++,{value:X.slice(H,Z),endPos:Z};Z++}return null}if(/[-+\d]/.test(Y)){while(Z<X.length&&/[\d.eE+-]/.test(X[Z]))Z++;return{value:X.slice(H,Z),endPos:Z}}let J=X.slice(Z).match(/^(true|false|null|undefined)\b/);if(J)return{value:J[1],endPos:Z+J[1].length};return null}function F0(X){return X.replace(/(?<!\|)\|(?!\|)/g," || ")}function V0(X,K){let Z=K,H=0,Y=!1,J="",$=!1,Q=(G)=>({type:F0(X.slice(K,G).trim()),endPos:G});while(Z<X.length){let G=X[Z];if(!Y&&(G==="'"||G==='"'||G==="`")){Y=!0,J=G,$=!0,Z++;continue}if(Y){if(G===J&&X[Z-1]!=="\\"){if(Y=!1,Z++,H===0){let z=Z;while(z<X.length&&/\s/.test(X[z]))z++;if(X[z]==="{"){if(!X.slice(z+1).match(/^\s*(\w+)\s*:/))return Q(Z)}if(X[z]!=="|"&&X[z]!=="&")return Q(Z)}continue}Z++;continue}if(G==="{"||G==="["||G==="("){H++,$=!0,Z++;continue}if(G==="}"||G==="]"||G===")"){if(H--,H===0){Z++;let z=Z;while(z<X.length&&/\s/.test(X[z]))z++;if(X[z]==="|"||X[z]==="&")continue;return Q(Z)}Z++;continue}if(H===0&&G==="{"){if($)return Q(Z);if(X.slice(Z+1).match(/^\s*(\w+)\s*:/)){H++,$=!0,Z++;continue}return Q(Z)}if(H===0&&(G==="|"||G==="&")){if(Z++,Z<X.length&&X[Z]==="|")Z++;while(Z<X.length&&/\s/.test(X[Z]))Z++;continue}if(H===0&&(/\d/.test(G)||G==="-"&&/\d/.test(X[Z+1]))){let z=Z;if(X[z]==="-")z++;while(z<X.length&&/\d/.test(X[z]))z++;if(z<X.length&&X[z]==="."&&/\d/.test(X[z+1])){z++;while(z<X.length&&/\d/.test(X[z]))z++}if(z<X.length&&(X[z]==="e"||X[z]==="E")){if(z++,z<X.length&&(X[z]==="+"||X[z]==="-"))z++;while(z<X.length&&/\d/.test(X[z]))z++}$=!0,Z=z;while(Z<X.length&&/\s/.test(X[Z]))Z++;if(Z<X.length&&X[Z]==="{")return{type:F0(X.slice(K,z).trim()),endPos:z};if(X[Z]!=="|"&&X[Z]!=="&")return{type:F0(X.slice(K,z).trim()),endPos:z};continue}if(H===0&&/[a-zA-Z_]/.test(G)){let z=Z;while(z<X.length&&/\w/.test(X[z]))z++;$=!0,Z=z;while(Z<X.length&&/\s/.test(X[Z]))Z++;if(Z<X.length&&X[Z]==="{"){if(!X.slice(Z+1).match(/^\s*(\w+)\s*:/)){let F=z;while(F>K&&/\s/.test(X[F-1]))F--;return{type:F0(X.slice(K,F).trim()),endPos:z}}}if(X[Z]!=="|"&&X[Z]!=="&")return{type:F0(X.slice(K,z).trim()),endPos:z};continue}Z++}if($)return Q(Z);return null}function i0(X,K,Z){let H=p0(X,{originalSource:X,requiredParams:K.requiredParams,unsafeFunctions:K.unsafeFunctions,safeFunctions:K.safeFunctions}).source,Y=S0(H),J=!1,$=new Set,Q=(z)=>{if(Z&&/^\w+$/.test(z)){if($.has(z))throw Error(`Duplicate parameter name '${z}'`);$.add(z)}};return Y.map((z)=>{let D=z.trim();if(!D)return z;if(Z&&D.startsWith("{")&&D.endsWith("}")){let q=D.slice(1,-1);return`{ ${E6(q,K)} }`}if(Z&&D.startsWith("[")&&D.endsWith("]")){let q=D.slice(1,-1);return`[ ${E6(q,K)} ]`}let F=D.match(/^(\w+)\s*\?\s*:\s*(.+)$/);if(F){let[,q,U]=F;return Q(q),J=!0,`${q} = ${U}`}if(!A1(D)){let q=D.match(/^(\w+)\s*=/);if(q)Q(q[1]);return J=!0,z}let _=w1(D);if(_!==-1){let q=D.slice(0,_).trim(),U=D.slice(_+1).trim();if(Q(q),J&&Z&&/^\w+$/.test(q))throw Error(`Required parameter '${q}' cannot follow optional parameter`);if(Z&&/^\w+$/.test(q))K.requiredParams.add(q);return`${q} = ${U}`}return z}).join(",")}function E6(X,K){return S0(X).map((Y)=>{let J=Y.trim();if(!J)return Y;let $=J.match(/^(\w+)\s*:\s*(\{[\s\S]*\})$/);if($){let[,z,D]=$;K.requiredParams.add(z);let F=C0(D);return`${z} = ${F}`}let Q=J.match(/^(\w+)\s*:\s*(\[[\s\S]*\])$/);if(Q){let[,z,D]=Q;K.requiredParams.add(z);let F=N0(D);return`${z} = ${F}`}let G=J.match(/^(\w+)\s*:\s*([\s\S]+)$/);if(G){let[,z,D]=G;return K.requiredParams.add(z),`${z} = ${D}`}return Y}).join(", ")}function C0(X){let K=X.slice(1,-1).trim();return`{ ${S0(K).map((Y)=>{let J=Y.trim();if(!J)return Y;let $=J.match(/^(\w+)\s*:\s*(\{[\s\S]*\})$/);if($){let[,F,_]=$;return`${F}: ${C0(_)}`}let Q=J.match(/^(\w+)\s*=\s*(\{[\s\S]*\})$/);if(Q){let[,F,_]=Q;return`${F}: ${C0(_)}`}let G=J.match(/^(\w+)\s*:\s*(\[[\s\S]*\])$/);if(G){let[,F,_]=G;return`${F}: ${N0(_)}`}let z=J.match(/^(\w+)\s*=\s*(\[[\s\S]*\])$/);if(z){let[,F,_]=z;return`${F}: ${N0(_)}`}let D=J.match(/^(\w+)\s*=\s*([\s\S]+)$/);if(D){let[,F,_]=D;return`${F}: ${_}`}return Y}).join(", ")} }`}function N0(X){let K=X.slice(1,-1).trim();return`[ ${S0(K).map((Y)=>{let J=Y.trim();if(!J)return Y;if(J.startsWith("{")&&J.endsWith("}"))return C0(J);if(J.startsWith("[")&&J.endsWith("]"))return N0(J);return Y}).join(", ")} ]`}function A1(X){let K=0,Z=!1,H=!1,Y=!1,J="";for(let $=0;$<X.length;$++){let Q=X[$];if(!Y&&(Q==="'"||Q==='"'||Q==="`")){Y=!0,J=Q;continue}if(Y){if(Q===J&&X[$-1]!=="\\")Y=!1;continue}if(Q==="("||Q==="{"||Q==="[")K++;else if(Q===")"||Q==="}"||Q==="]")K--;else if(K===0){if(Q===":")Z=!0;if(Q==="="&&X[$+1]!==">")H=!0}}return Z&&!H}function w1(X){let K=0,Z=!1,H="";for(let Y=0;Y<X.length;Y++){let J=X[Y];if(!Z&&(J==="'"||J==='"'||J==="`")){Z=!0,H=J;continue}if(Z){if(J===H&&X[Y-1]!=="\\")Z=!1;continue}if(J==="("||J==="{"||J==="[")K++;else if(J===")"||J==="}"||J==="]")K--;else if(K===0&&J===":")return Y}return-1}function O0(X,K={}){let Z=X,H,Y=new Set,J=new Set,$=new Set,Q={tjsEquals:!1,tjsClass:!1,tjsDate:!1,tjsNoeval:!1,tjsStandard:!1,tjsSafeEval:!1},G=X.match(/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*safety\s+(none|inputs|all)\b/);if(G)H=G[2],X=X.replace(/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*safety\s+(none|inputs|all)\s*/,"$1");let z=/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*(TjsStrict|TjsEquals|TjsClass|TjsDate|TjsNoeval|TjsStandard|TjsSafeEval)\b/,D;while(D=X.match(z)){let I=D[2];if(I==="TjsStrict")Q.tjsEquals=!0,Q.tjsClass=!0,Q.tjsDate=!0,Q.tjsNoeval=!0,Q.tjsStandard=!0;else if(I==="TjsEquals")Q.tjsEquals=!0;else if(I==="TjsClass")Q.tjsClass=!0;else if(I==="TjsDate")Q.tjsDate=!0;else if(I==="TjsNoeval")Q.tjsNoeval=!0;else if(I==="TjsStandard")Q.tjsStandard=!0;else if(I==="TjsSafeEval")Q.tjsSafeEval=!0;X=X.replace(new RegExp(`^(\\s*(?:\\/\\/[^\\n]*\\n|\\/\\*[\\s\\S]*?\\*\\/\\s*)*)\\s*${I}\\s*`),"$1")}if(Q.tjsStandard)X=j1(X);if(X=M1(X),Q.tjsEquals&&!K.vmTarget)X=P1(X);X=C1(X),X=N1(X),X=O1(X),X=S1(X),X=k1(X);let{source:F,returnType:_,returnSafety:q}=p0(X,{originalSource:Z,requiredParams:Y,unsafeFunctions:J,safeFunctions:$});X=F,X=R1(X);let U=I1(X);X=U.source;let A=g1(X,K.dangerouslySkipTests);if(X=A.source,Q.tjsClass)X=v1(X);if(Q.tjsDate)X=b1(X);if(Q.tjsNoeval)X=f1(X);return{source:X,returnType:_,returnSafety:q,moduleSafety:H,tjsModes:Q,originalSource:Z,requiredParams:Y,unsafeFunctions:J,safeFunctions:$,wasmBlocks:U.blocks,tests:A.tests,testErrors:A.errors}}function R1(X){let K="",Z=0;while(Z<X.length){let H=X.slice(Z).match(/^\btry\s*\{/);if(H){let J=Z+H[0].length-1+1,$=1,Q=J;while(Q<X.length&&$>0){let z=X[Q];if(z==="{")$++;else if(z==="}")$--;Q++}if($!==0){K+=X[Z],Z++;continue}if(X.slice(Q).match(/^\s*(catch|finally)\b/))K+=X.slice(Z,Q),Z=Q;else{let z=X.slice(J,Q-1);K+=`try {${z}} catch (__try_err) { return { $error: true, message: __try_err?.message || String(__try_err), op: 'try', cause: __try_err, stack: globalThis.__tjs?.getStack?.() } }`,Z=Q}}else K+=X[Z],Z++}return K}function I1(X){let K=[],Z="",H=0,Y=0;while(H<X.length){let J=X.slice(H).match(/^\bwasm\s*\{/);if(J){let $=H,Q=H+J[0].length,G=1,z=Q;while(z<X.length&&G>0){let P=X[z];if(P==="{")G++;else if(P==="}")G--;z++}if(G!==0){Z+=X[H],H++;continue}let D=X.slice(Q,z-1),F,_=z,q=X.slice(z).match(/^\s*fallback\s*\{/);if(q){let P=z+q[0].length;G=1;let V=P;while(V<X.length&&G>0){let E=X[V];if(E==="{")G++;else if(E==="}")G--;V++}if(G===0)F=X.slice(P,V-1),_=V}let A=B1(D).map((P)=>{let V=L1(X,$,P);return V?`${P}: ${V}`:P}),I={id:`__tjs_wasm_${Y}`,body:D,fallback:F,captures:A,start:$,end:_};K.push(I);let w=F??D,B=A.map((P)=>P.split(":")[0].trim()),j=B.length>0?B.join(", "):"",L=B.length>0?`globalThis.${I.id}(${j})`:`globalThis.${I.id}()`,M=`(globalThis.${I.id} ? ${L} : (() => {${w}})())`;Z+=M,H=_,Y++}else Z+=X[H],H++}return{source:Z,blocks:K}}function B1(X){let K=X.replace(/\/\/[^\n]*/g,"").replace(/\/\*[\s\S]*?\*\//g,""),Z=/\b([a-zA-Z_$][a-zA-Z0-9_$]*)\b/g,H=new Set,Y;while((Y=Z.exec(K))!==null)H.add(Y[1]);let J=new Set,$=/\b(?:let|const|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/g;while((Y=$.exec(K))!==null)J.add(Y[1]);let Q=/\bfor\s*\(\s*(?:let|const|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/g;while((Y=Q.exec(K))!==null)J.add(Y[1]);let G=new Set(["if","else","for","while","do","switch","case","break","continue","return","function","let","const","var","new","this","true","false","null","undefined","typeof","instanceof","in","of","try","catch","finally","throw","async","await","class","extends","super","import","export","default","from","as","static","get","set","yield","console","Math","Array","Object","String","Number","Boolean","Date","JSON","Promise","Map","Set","WeakMap","WeakSet","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","ArrayBuffer","DataView","Error","TypeError","RangeError","length","push","pop","shift","unshift","slice","splice","map","filter","reduce","forEach","find","findIndex","indexOf","includes","globalThis","window","document","Infinity","NaN","isNaN","isFinite","parseInt","parseFloat","encodeURI","decodeURI","eval"]),z=[];for(let D of H)if(!J.has(D)&&!G.has(D))z.push(D);return z.sort()}function L1(X,K,Z){let H=X.slice(0,K),Y=/function\s+\w+\s*\(([^)]*)\)\s*(?:->.*?)?\s*\{[^}]*$/,J=H.match(Y);if(!J){let $=/(?:const|let|var)?\s*\w+\s*=\s*(?:async\s*)?\(([^)]*)\)\s*(?:=>|->)?\s*\{[^}]*$/,Q=H.match($);if(!Q)return;return C6(Q[1],Z)}return C6(J[1],Z)}function C6(X,K){let Z=X.split(",").map((H)=>H.trim());for(let H of Z){let Y=H.match(new RegExp(`^${K}\\s*:\\s*([A-Za-z][A-Za-z0-9]*)`));if(Y)return Y[1];let J=H.match(new RegExp(`^${K}\\s*=\\s*(Float32Array|Float64Array|Int32Array|Uint8Array|Int8Array|Int16Array|Uint16Array|Uint32Array)`));if(J)return J[1]}return}function S0(X){let K=[],Z="",H=0,Y=!1,J=!1,$=0;while($<X.length){let Q=X[$],G=X[$+1];if(!J&&Q==="/"&&G==="/"){Y=!0,Z+="//",$+=2;continue}if(!Y&&Q==="/"&&G==="*"){J=!0,Z+="/*",$+=2;continue}if(Y&&Q===`
5
+ `){Y=!1,Z+=Q,$++;continue}if(J&&Q==="*"&&G==="/"){J=!1,Z+="*/",$+=2;continue}if(Y||J){Z+=Q,$++;continue}if(Q==="("||Q==="{"||Q==="[")H++,Z+=Q;else if(Q===")"||Q==="}"||Q==="]")H--,Z+=Q;else if(Q===","&&H===0)K.push(Z),Z="";else Z+=Q;$++}if(Z.trim())K.push(Z);return K}function M1(X){let Z=new RegExp(`([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")\\s+IsNot\\s+([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")`,"g");X=X.replace(Z,"IsNot($1, $2)");let H=new RegExp(`([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")\\s+Is\\s+([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")`,"g");return X=X.replace(H,"Is($1, $2)"),X}function j1(X){let K=/^[\s]*[([/+\-`]/,Z=/[{([,;:+\-*/%=&|?<>!~^]\s*$|^\s*$/,H=/\b(return|throw|yield|await|case|default|extends|new|typeof|void|delete|in|of|instanceof)\s*$/,Y=X.split(`
6
6
  `),J=[];for(let $=0;$<Y.length;$++){let Q=Y[$],G=$>0?Y[$-1]:"";if($>0&&K.test(Q)){let z=G.replace(/\/\/.*$/,"").replace(/\/\*.*\*\/\s*$/,"");if(!Z.test(z)&&!H.test(z)){let D=Q.match(/^(\s*)/),F=D?D[1]:"",_=Q.slice(F.length);J.push(F+";"+_);continue}}J.push(Q)}return J.join(`
7
- `)}function j1(X){let K=[],Z=0,H="normal",Y=[];while(Z<X.length){let $=X[Z],Q=X[Z+1];switch(H){case"single-string":if($==="\\"&&Z+1<X.length){Z+=2;continue}if($==="'")H="normal";Z++;continue;case"double-string":if($==="\\"&&Z+1<X.length){Z+=2;continue}if($==='"')H="normal";Z++;continue;case"template-string":if($==="\\"&&Z+1<X.length){Z+=2;continue}if($==="$"&&Q==="{"){Z+=2,Y.push(1),H="normal";continue}if($==="`")H="normal";Z++;continue;case"line-comment":if($===`
8
- `)H="normal";Z++;continue;case"block-comment":if($==="*"&&Q==="/"){Z+=2,H="normal";continue}Z++;continue;case"regex":if($==="\\"&&Z+1<X.length){Z+=2;continue}if($==="["){Z++;while(Z<X.length&&X[Z]!=="]")if(X[Z]==="\\"&&Z+1<X.length)Z+=2;else Z++;if(Z<X.length)Z++;continue}if($==="/"){Z++;while(Z<X.length&&/[gimsuy]/.test(X[Z]))Z++;H="normal";continue}Z++;continue;case"normal":if(Y.length>0){if($==="{")Y[Y.length-1]++;else if($==="}"){if(Y[Y.length-1]--,Y[Y.length-1]===0){Y.pop(),Z++,H="template-string";continue}}}if($==="'"){Z++,H="single-string";continue}if($==='"'){Z++,H="double-string";continue}if($==="`"){Z++,H="template-string";continue}if($==="/"&&Q==="/"){Z+=2,H="line-comment";continue}if($==="/"&&Q==="*"){Z+=2,H="block-comment";continue}if($==="/"){let G=Z-1;while(G>=0&&/\s/.test(X[G]))G--;let z=G>=0?X[G]:"";if(!z||/[=(!,;:{[&|?+\-*%<>~^]/.test(z)||G>=5&&/\b(return|case|throw|in|of|typeof|instanceof|new|delete|void)$/.test(X.slice(Math.max(0,G-10),G+1))){Z++,H="regex";continue}}if($==="="&&Q==="="&&X[Z+2]!=="="&&X[Z-1]!=="!"){K.push({pos:Z,op:"=="}),Z+=2;continue}if($==="!"&&Q==="="&&X[Z+2]!=="="){K.push({pos:Z,op:"!="}),Z+=2;continue}break}Z++}if(K.length===0)return X;let J=X;for(let $=K.length-1;$>=0;$--){let{pos:Q,op:G}=K[$],z=G==="=="?"Is":"IsNot",D=V1(J,Q),F=E1(J,Q+2),_=J.slice(D,Q).trim(),q=J.slice(Q+2,F).trim();if(_&&q){let U=J.slice(0,D),A=J.slice(F),w=/[a-zA-Z0-9_$]$/.test(U)?" ":"";J=`${U}${w}${z}(${_}, ${q})${A}`}}return J}function V1(X,K){let Z=K-1;while(Z>=0&&/\s/.test(X[Z]))Z--;if(Z<0)return 0;let H=0,Y=!1,J="";while(Z>=0){let $=X[Z],Q=Z>0?X[Z-1]:"";if(Y){if($===J&&Q!=="\\")Y=!1;Z--;continue}if(($==='"'||$==="'"||$==="`")&&Q!=="\\"){Y=!0,J=$,Z--;continue}if($===")"||$==="]"){H++,Z--;continue}if($==="("||$==="["){if(H>0){H--,Z--;continue}return Z+1}if(H>0){Z--;continue}if($===";"||$==="{"||$==="}")return Z+1;if(/[a-z]/.test($)){let G=Z+1,z=Z;while(z>0&&/[a-z]/i.test(X[z-1]))z--;let D=X.slice(z,G),F=z>0?X[z-1]:"";if(!/[a-zA-Z0-9_$]/.test(F)){if(["return","throw","case","typeof","void","delete","await","yield","new"].includes(D))return G}}if($===">"&&Q==="=")return Z+1;if($==="="&&Q!=="="&&Q!=="!"&&Q!=="<"&&Q!==">")return Z+1;if($==="&"&&Q==="&")return Z+1;if($==="|"&&Q==="|")return Z+1;if($==="?"||$===":")return Z+1;if($===",")return Z+1;Z--}return 0}function E1(X,K){let Z=K;while(Z<X.length&&/\s/.test(X[Z]))Z++;if(Z>=X.length)return X.length;let H=0,Y=!1,J="";while(Z<X.length){let $=X[Z],Q=Z+1<X.length?X[Z+1]:"";if(Y){if($===J&&X[Z-1]!=="\\")Y=!1;Z++;continue}if(($==='"'||$==="'"||$==="`")&&X[Z-1]!=="\\"){Y=!0,J=$,Z++;continue}if($==="("||$==="["||$==="{"){H++,Z++;continue}if($===")"||$==="]"||$==="}"){if(H>0){H--,Z++;continue}return Z}if(H>0){Z++;continue}if($===";")return Z;if($==="&"&&Q==="&")return Z;if($==="|"&&Q==="|")return Z;if($==="?")return Z;if($===":")return Z;if($===",")return Z;if(($==="="||$==="!")&&Q==="="&&X[Z+2]!=="=")return Z;Z++}return X.length}function C1(X){let K="",Z=0;while(Z<X.length){let H=X.slice(Z).match(/^\bType\s+([A-Z][a-zA-Z0-9_]*)\s*/);if(H){let Y=H[1],J=Z+H[0].length,$=Y,Q=!1,G=X.slice(J).match(/^(['"`])([^]*?)\1\s*/);if(G){let _=J+G[0].length,q=X[_],U=q===void 0||_>=X.length||q!=="="&&q!=="{";if(q==="="||q==="{")$=G[2],Q=!0,J=_;else if(U){let A=G[0].trim(),I=G[0].slice(A.length);K+=`const ${Y} = Type('${Y}', ${A})${I}`,Z=_;continue}}let z,D=J,F=X.slice(J).match(/^=\s*/);if(F){J+=F[0].length;let _=X.slice(J).match(/^(\+?\d+(?:\.\d+)?|['"`][^'"`]*['"`]|\{[^}]*\}|\[[^\]]*\]|true|false|null)/);if(_){z=_[0],J+=_[0].length,D=J;let q=X.slice(J).match(/^\s*/);if(q)J+=q[0].length}}if(X[J]==="{"){let _=J+1,q=1,U=_;while(U<X.length&&q>0){let M=X[U];if(M==="{")q++;else if(M==="}")q--;U++}if(q!==0){K+=X[Z],Z++;continue}let A=X.slice(_,U-1).trim(),I=U,w=A.match(/description\s*:\s*(['"`])([^]*?)\1/);if(w&&!Q)$=w[2];let B,P=A.match(/example\s*:\s*/);if(P){let M=P.index+P[0].length,j=U1(A,M);if(j)B=j.value.trim()}let L=A.match(/predicate\s*\(([^)]*)\)\s*\{([^]*)\}/);if(L&&B){let M=L[1].trim(),j=L[2].trim(),V=z?`, ${z}`:"";K+=`const ${Y} = Type('${$}', (${M}) => { if (!globalThis.__tjs?.validate(${M}, globalThis.__tjs?.infer(${B}))) return false; ${j} }, ${B}${V})`}else if(L){let M=L[1].trim(),j=L[2].trim(),V=z?`, undefined, ${z}`:"";K+=`const ${Y} = Type('${$}', (${M}) => { ${j} }${V})`}else if(B){let M=z?`, ${z}`:"";K+=`const ${Y} = Type('${$}', undefined, ${B}${M})`}else if(z)K+=`const ${Y} = Type('${$}', ${z})`;else K+=`const ${Y} = Type('${$}')`;Z=I;continue}else if(z){K+=`const ${Y} = Type('${$}', ${z})`,Z=D;continue}else if(!G){let _=X.slice(J).match(/^(['"`][^]*?['"`]|\+?\d+(?:\.\d+)?|true|false|null|\{[^]*?\}|\[[^]*?\])/);if(_){let q=_[0];K+=`const ${Y} = Type('${Y}', ${q})`,Z=J+_[0].length;continue}}}K+=X[Z],Z++}return K}function N1(X){let K="",Z=0;while(Z<X.length){let H=X.slice(Z).match(/^\bGeneric\s+([A-Z][a-zA-Z0-9_]*)\s*<([^>]+)>\s*\{/);if(H){let Y=H[1],J=H[2],Q=Z+H[0].length-1+1,G=1,z=Q;while(z<X.length&&G>0){let I=X[z];if(I==="{")G++;else if(I==="}")G--;z++}if(G!==0){K+=X[Z],Z++;continue}let D=X.slice(Q,z-1).trim(),F=z,_=J.split(",").map((I)=>{let w=I.trim().split("=").map((B)=>B.trim());if(w.length===2)return`['${w[0]}', ${w[1]}]`;return`'${w[0]}'`}),q=D.match(/description\s*:\s*(['"`])([^]*?)\1/),U=D.match(/predicate\s*\(([^)]*)\)\s*\{([^]*)\}/),A=q?q[2]:Y;if(U){let I=U[1].trim().split(",").map((M)=>M.trim()),w=U[2].trim(),B=I[0]||"x",P=I.slice(1),L=P.map((M)=>`check${M}`);P.forEach((M,j)=>{w=w.replace(new RegExp(`\\b${M}\\s*\\(`,"g"),`${L[j]}(`)}),K+=`const ${Y} = Generic([${_.join(", ")}], (${B}, ${L.join(", ")}) => { ${w} }, '${A}')`}else K+=`const ${Y} = Generic([${_.join(", ")}], () => true, '${A}')`;Z=F;continue}K+=X[Z],Z++}return K}function O1(X){let K="",Z=0;while(Z<X.length){let H=X.slice(Z).match(/^\bUnion\s+([A-Z][a-zA-Z0-9_]*)\s+(['"`])([^]*?)\2\s*/);if(H){let Y=H[1],J=H[3],$=Z+H[0].length;if(X[$]==="{"){let Q=$+1,G=1,z=Q;while(z<X.length&&G>0){let q=X[z];if(q==="{")G++;else if(q==="}")G--;z++}if(G!==0){K+=X[Z],Z++;continue}let D=X.slice(Q,z-1).trim(),F=z,_=N6(D);K+=`const ${Y} = Union('${J}', [${_.join(", ")}])`,Z=F;continue}else{let Q=X.indexOf(`
9
- `,$);if(Q===-1)Q=X.length;let G=X.slice($,Q).trim();if(G){let z=N6(G);K+=`const ${Y} = Union('${J}', [${z.join(", ")}])`,Z=Q;continue}}}K+=X[Z],Z++}return K}function N6(X){let K=[],Z=X.split("|").map((H)=>H.trim());for(let H of Z){if(!H)continue;K.push(H)}return K}function S1(X){let K="",Z=0;while(Z<X.length){let H=X.slice(Z).match(/^\bEnum\s+([A-Z][a-zA-Z0-9_]*)\s+(['"`])([^]*?)\2\s*\{/);if(H){let Y=H[1],J=H[3],Q=Z+H[0].length-1+1,G=1,z=Q;while(z<X.length&&G>0){let U=X[z];if(U==="{")G++;else if(U==="}")G--;z++}if(G!==0){K+=X[Z],Z++;continue}let D=X.slice(Q,z-1).trim(),F=z,q=T1(D).map(([U,A])=>`${U}: ${A}`).join(", ");K+=`const ${Y} = Enum('${J}', { ${q} })`,Z=F;continue}K+=X[Z],Z++}return K}function T1(X){let K=[],Z=0,H=X.split(/[\n,]/).map((Y)=>Y.trim()).filter((Y)=>Y&&!Y.startsWith("//"));for(let Y of H){let J=Y.match(/^([A-Za-z_][A-Za-z0-9_]*)\s*(?:=\s*(.+))?$/);if(J){let $=J[1],Q=J[2]?.trim();if(Q!==void 0){K.push([$,Q]);let G=Number(Q);if(!isNaN(G))Z=G+1}else K.push([$,String(Z)]),Z++}}return K}function k1(X){return X.replace(/(?<=^|[;\n{])\s*([A-Z][a-zA-Z0-9_]*)\s*=(?!=)/gm,(K,Z)=>{return K.replace(Z,`const ${Z}`)})}function Z0(X,K={}){let{filename:Z="<source>",colonShorthand:H=!0,vmTarget:Y=!1}=K,{source:J,returnType:$,returnSafety:Q,moduleSafety:G,originalSource:z,requiredParams:D,unsafeFunctions:F,safeFunctions:_,wasmBlocks:q,tests:U,testErrors:A}=H?O0(X,{vmTarget:Y}):{source:X,returnType:void 0,returnSafety:void 0,moduleSafety:void 0,originalSource:X,requiredParams:new Set,unsafeFunctions:new Set,safeFunctions:new Set,wasmBlocks:[],tests:[],testErrors:[]};try{return{ast:O6.parse(J,{ecmaVersion:2022,sourceType:"module",locations:!0,allowReturnOutsideFunction:!1}),returnType:$,returnSafety:Q,moduleSafety:G,originalSource:z,requiredParams:D,unsafeFunctions:F,safeFunctions:_,wasmBlocks:q,tests:U,testErrors:A}}catch(I){let w=I.loc||{line:1,column:0};throw new r(I.message.replace(/\s*\(\d+:\d+\)$/,""),w,z,Z)}}function S6(X,K){for(let H of X.body){if(H.type==="ImportDeclaration")throw new r("Imports are not supported. All atoms must be registered with the VM.",H.loc?.start||{line:1,column:0},void 0,K);if(H.type==="ExportNamedDeclaration"||H.type==="ExportDefaultDeclaration")throw new r("Exports are not supported. The function is automatically exported.",H.loc?.start||{line:1,column:0},void 0,K);if(H.type==="ClassDeclaration")throw new r("Classes are not supported. Agent99 uses functional composition.",H.loc?.start||{line:1,column:0},void 0,K)}let Z=X.body.filter((H)=>H.type==="FunctionDeclaration");if(Z.length===0)throw new r("Source must contain a function declaration",{line:1,column:0},void 0,K);if(Z.length>1){let H=Z[1];throw new r("Only a single function per agent is allowed",H.loc?.start||{line:1,column:0},void 0,K)}return Z[0]}function q0(X,K){let Z={params:{}};if(!K.loc)return Z;let H=X.substring(0,K.start),Y=[...H.matchAll(/\/\*#([\s\S]*?)\*\//g)];if(Y.length>0){let D=Y[Y.length-1],F=H.substring(D.index+D[0].length);if(/^(?:\s|\/\/[^\n]*)*$/.test(F)){let _=D[1],q=_.split(`
7
+ `)}function P1(X){let K=[],Z=0,H="normal",Y=[];while(Z<X.length){let $=X[Z],Q=X[Z+1];switch(H){case"single-string":if($==="\\"&&Z+1<X.length){Z+=2;continue}if($==="'")H="normal";Z++;continue;case"double-string":if($==="\\"&&Z+1<X.length){Z+=2;continue}if($==='"')H="normal";Z++;continue;case"template-string":if($==="\\"&&Z+1<X.length){Z+=2;continue}if($==="$"&&Q==="{"){Z+=2,Y.push(1),H="normal";continue}if($==="`")H="normal";Z++;continue;case"line-comment":if($===`
8
+ `)H="normal";Z++;continue;case"block-comment":if($==="*"&&Q==="/"){Z+=2,H="normal";continue}Z++;continue;case"regex":if($==="\\"&&Z+1<X.length){Z+=2;continue}if($==="["){Z++;while(Z<X.length&&X[Z]!=="]")if(X[Z]==="\\"&&Z+1<X.length)Z+=2;else Z++;if(Z<X.length)Z++;continue}if($==="/"){Z++;while(Z<X.length&&/[gimsuy]/.test(X[Z]))Z++;H="normal";continue}Z++;continue;case"normal":if(Y.length>0){if($==="{")Y[Y.length-1]++;else if($==="}"){if(Y[Y.length-1]--,Y[Y.length-1]===0){Y.pop(),Z++,H="template-string";continue}}}if($==="'"){Z++,H="single-string";continue}if($==='"'){Z++,H="double-string";continue}if($==="`"){Z++,H="template-string";continue}if($==="/"&&Q==="/"){Z+=2,H="line-comment";continue}if($==="/"&&Q==="*"){Z+=2,H="block-comment";continue}if($==="/"){let G=Z-1;while(G>=0&&/\s/.test(X[G]))G--;let z=G>=0?X[G]:"";if(!z||/[=(!,;:{[&|?+\-*%<>~^]/.test(z)||G>=5&&/\b(return|case|throw|in|of|typeof|instanceof|new|delete|void)$/.test(X.slice(Math.max(0,G-10),G+1))){Z++,H="regex";continue}}if($==="="&&Q==="="&&X[Z+2]!=="="&&X[Z-1]!=="!"){K.push({pos:Z,op:"=="}),Z+=2;continue}if($==="!"&&Q==="="&&X[Z+2]!=="="){K.push({pos:Z,op:"!="}),Z+=2;continue}break}Z++}if(K.length===0)return X;let J=X;for(let $=K.length-1;$>=0;$--){let{pos:Q,op:G}=K[$],z=G==="=="?"Is":"IsNot",D=V1(J,Q),F=E1(J,Q+2),_=J.slice(D,Q).trim(),q=J.slice(Q+2,F).trim();if(_&&q){let U=J.slice(0,D),A=J.slice(F),w=/[a-zA-Z0-9_$]$/.test(U)?" ":"";J=`${U}${w}${z}(${_}, ${q})${A}`}}return J}function V1(X,K){let Z=K-1;while(Z>=0&&/\s/.test(X[Z]))Z--;if(Z<0)return 0;let H=0,Y=!1,J="";while(Z>=0){let $=X[Z],Q=Z>0?X[Z-1]:"";if(Y){if($===J&&Q!=="\\")Y=!1;Z--;continue}if(($==='"'||$==="'"||$==="`")&&Q!=="\\"){Y=!0,J=$,Z--;continue}if($===")"||$==="]"){H++,Z--;continue}if($==="("||$==="["){if(H>0){H--,Z--;continue}return Z+1}if(H>0){Z--;continue}if($===";"||$==="{"||$==="}")return Z+1;if(/[a-z]/.test($)){let G=Z+1,z=Z;while(z>0&&/[a-z]/i.test(X[z-1]))z--;let D=X.slice(z,G),F=z>0?X[z-1]:"";if(!/[a-zA-Z0-9_$]/.test(F)){if(["return","throw","case","typeof","void","delete","await","yield","new"].includes(D))return G}}if($===">"&&Q==="=")return Z+1;if($==="="&&Q!=="="&&Q!=="!"&&Q!=="<"&&Q!==">")return Z+1;if($==="&"&&Q==="&")return Z+1;if($==="|"&&Q==="|")return Z+1;if($==="?"||$===":")return Z+1;if($===",")return Z+1;Z--}return 0}function E1(X,K){let Z=K;while(Z<X.length&&/\s/.test(X[Z]))Z++;if(Z>=X.length)return X.length;let H=0,Y=!1,J="";while(Z<X.length){let $=X[Z],Q=Z+1<X.length?X[Z+1]:"";if(Y){if($===J&&X[Z-1]!=="\\")Y=!1;Z++;continue}if(($==='"'||$==="'"||$==="`")&&X[Z-1]!=="\\"){Y=!0,J=$,Z++;continue}if($==="("||$==="["||$==="{"){H++,Z++;continue}if($===")"||$==="]"||$==="}"){if(H>0){H--,Z++;continue}return Z}if(H>0){Z++;continue}if($===";")return Z;if($==="&"&&Q==="&")return Z;if($==="|"&&Q==="|")return Z;if($==="?")return Z;if($===":")return Z;if($===",")return Z;if(($==="="||$==="!")&&Q==="="&&X[Z+2]!=="=")return Z;Z++}return X.length}function C1(X){let K="",Z=0;while(Z<X.length){let H=X.slice(Z).match(/^\bType\s+([A-Z][a-zA-Z0-9_]*)\s*/);if(H){let Y=H[1],J=Z+H[0].length,$=Y,Q=!1,G=X.slice(J).match(/^(['"`])([^]*?)\1\s*/);if(G){let _=J+G[0].length,q=X[_],U=q===void 0||_>=X.length||q!=="="&&q!=="{";if(q==="="||q==="{")$=G[2],Q=!0,J=_;else if(U){let A=G[0].trim(),I=G[0].slice(A.length);K+=`const ${Y} = Type('${Y}', ${A})${I}`,Z=_;continue}}let z,D=J,F=X.slice(J).match(/^=\s*/);if(F){J+=F[0].length;let _=X.slice(J).match(/^(\+?\d+(?:\.\d+)?|['"`][^'"`]*['"`]|\{[^}]*\}|\[[^\]]*\]|true|false|null)/);if(_){z=_[0],J+=_[0].length,D=J;let q=X.slice(J).match(/^\s*/);if(q)J+=q[0].length}}if(X[J]==="{"){let _=J+1,q=1,U=_;while(U<X.length&&q>0){let M=X[U];if(M==="{")q++;else if(M==="}")q--;U++}if(q!==0){K+=X[Z],Z++;continue}let A=X.slice(_,U-1).trim(),I=U,w=A.match(/description\s*:\s*(['"`])([^]*?)\1/);if(w&&!Q)$=w[2];let B,j=A.match(/example\s*:\s*/);if(j){let M=j.index+j[0].length,P=U1(A,M);if(P)B=P.value.trim()}let L=A.match(/predicate\s*\(([^)]*)\)\s*\{([^]*)\}/);if(L&&B){let M=L[1].trim(),P=L[2].trim(),V=z?`, ${z}`:"";K+=`const ${Y} = Type('${$}', (${M}) => { if (!globalThis.__tjs?.validate(${M}, globalThis.__tjs?.infer(${B}))) return false; ${P} }, ${B}${V})`}else if(L){let M=L[1].trim(),P=L[2].trim(),V=z?`, undefined, ${z}`:"";K+=`const ${Y} = Type('${$}', (${M}) => { ${P} }${V})`}else if(B){let M=z?`, ${z}`:"";K+=`const ${Y} = Type('${$}', undefined, ${B}${M})`}else if(z)K+=`const ${Y} = Type('${$}', ${z})`;else K+=`const ${Y} = Type('${$}')`;Z=I;continue}else if(z){K+=`const ${Y} = Type('${$}', ${z})`,Z=D;continue}else if(!G){let _=X.slice(J).match(/^(['"`][^]*?['"`]|\+?\d+(?:\.\d+)?|true|false|null|\{[^]*?\}|\[[^]*?\])/);if(_){let q=_[0];K+=`const ${Y} = Type('${Y}', ${q})`,Z=J+_[0].length;continue}}}K+=X[Z],Z++}return K}function N1(X){let K="",Z=0;while(Z<X.length){let H=X.slice(Z).match(/^\bGeneric\s+([A-Z][a-zA-Z0-9_]*)\s*<([^>]+)>\s*\{/);if(H){let Y=H[1],J=H[2],Q=Z+H[0].length-1+1,G=1,z=Q;while(z<X.length&&G>0){let I=X[z];if(I==="{")G++;else if(I==="}")G--;z++}if(G!==0){K+=X[Z],Z++;continue}let D=X.slice(Q,z-1).trim(),F=z,_=J.split(",").map((I)=>{let w=I.trim().split("=").map((B)=>B.trim());if(w.length===2)return`['${w[0]}', ${w[1]}]`;return`'${w[0]}'`}),q=D.match(/description\s*:\s*(['"`])([^]*?)\1/),U=D.match(/predicate\s*\(([^)]*)\)\s*\{([^]*)\}/),A=q?q[2]:Y;if(U){let I=U[1].trim().split(",").map((M)=>M.trim()),w=U[2].trim(),B=I[0]||"x",j=I.slice(1),L=j.map((M)=>`check${M}`);j.forEach((M,P)=>{w=w.replace(new RegExp(`\\b${M}\\s*\\(`,"g"),`${L[P]}(`)}),K+=`const ${Y} = Generic([${_.join(", ")}], (${B}, ${L.join(", ")}) => { ${w} }, '${A}')`}else K+=`const ${Y} = Generic([${_.join(", ")}], () => true, '${A}')`;Z=F;continue}K+=X[Z],Z++}return K}function O1(X){let K="",Z=0;while(Z<X.length){let H=X.slice(Z).match(/^\bUnion\s+([A-Z][a-zA-Z0-9_]*)\s+(['"`])([^]*?)\2\s*/);if(H){let Y=H[1],J=H[3],$=Z+H[0].length;if(X[$]==="{"){let Q=$+1,G=1,z=Q;while(z<X.length&&G>0){let q=X[z];if(q==="{")G++;else if(q==="}")G--;z++}if(G!==0){K+=X[Z],Z++;continue}let D=X.slice(Q,z-1).trim(),F=z,_=N6(D);K+=`const ${Y} = Union('${J}', [${_.join(", ")}])`,Z=F;continue}else{let Q=X.indexOf(`
9
+ `,$);if(Q===-1)Q=X.length;let G=X.slice($,Q).trim();if(G){let z=N6(G);K+=`const ${Y} = Union('${J}', [${z.join(", ")}])`,Z=Q;continue}}}K+=X[Z],Z++}return K}function N6(X){let K=[],Z=X.split("|").map((H)=>H.trim());for(let H of Z){if(!H)continue;K.push(H)}return K}function S1(X){let K="",Z=0;while(Z<X.length){let H=X.slice(Z).match(/^\bEnum\s+([A-Z][a-zA-Z0-9_]*)\s+(['"`])([^]*?)\2\s*\{/);if(H){let Y=H[1],J=H[3],Q=Z+H[0].length-1+1,G=1,z=Q;while(z<X.length&&G>0){let U=X[z];if(U==="{")G++;else if(U==="}")G--;z++}if(G!==0){K+=X[Z],Z++;continue}let D=X.slice(Q,z-1).trim(),F=z,q=T1(D).map(([U,A])=>`${U}: ${A}`).join(", ");K+=`const ${Y} = Enum('${J}', { ${q} })`,Z=F;continue}K+=X[Z],Z++}return K}function T1(X){let K=[],Z=0,H=X.split(/[\n,]/).map((Y)=>Y.trim()).filter((Y)=>Y&&!Y.startsWith("//"));for(let Y of H){let J=Y.match(/^([A-Za-z_][A-Za-z0-9_]*)\s*(?:=\s*(.+))?$/);if(J){let $=J[1],Q=J[2]?.trim();if(Q!==void 0){K.push([$,Q]);let G=Number(Q);if(!isNaN(G))Z=G+1}else K.push([$,String(Z)]),Z++}}return K}function k1(X){return X.replace(/(?<=^|[;\n{])\s*([A-Z][a-zA-Z0-9_]*)\s*=(?!=)/gm,(K,Z)=>{return K.replace(Z,`const ${Z}`)})}function Z0(X,K={}){let{filename:Z="<source>",colonShorthand:H=!0,vmTarget:Y=!1}=K,{source:J,returnType:$,returnSafety:Q,moduleSafety:G,originalSource:z,requiredParams:D,unsafeFunctions:F,safeFunctions:_,wasmBlocks:q,tests:U,testErrors:A}=H?O0(X,{vmTarget:Y}):{source:X,returnType:void 0,returnSafety:void 0,moduleSafety:void 0,originalSource:X,requiredParams:new Set,unsafeFunctions:new Set,safeFunctions:new Set,wasmBlocks:[],tests:[],testErrors:[]};try{return{ast:O6.parse(J,{ecmaVersion:2022,sourceType:"module",locations:!0,allowReturnOutsideFunction:!1}),returnType:$,returnSafety:Q,moduleSafety:G,originalSource:z,requiredParams:D,unsafeFunctions:F,safeFunctions:_,wasmBlocks:q,tests:U,testErrors:A}}catch(I){let w=I.loc||{line:1,column:0};throw new t(I.message.replace(/\s*\(\d+:\d+\)$/,""),w,z,Z)}}function S6(X,K){for(let H of X.body){if(H.type==="ImportDeclaration")throw new t("Imports are not supported. All atoms must be registered with the VM.",H.loc?.start||{line:1,column:0},void 0,K);if(H.type==="ExportNamedDeclaration"||H.type==="ExportDefaultDeclaration")throw new t("Exports are not supported. The function is automatically exported.",H.loc?.start||{line:1,column:0},void 0,K);if(H.type==="ClassDeclaration")throw new t("Classes are not supported. Agent99 uses functional composition.",H.loc?.start||{line:1,column:0},void 0,K)}let Z=X.body.filter((H)=>H.type==="FunctionDeclaration");if(Z.length===0)throw new t("Source must contain a function declaration",{line:1,column:0},void 0,K);if(Z.length>1){let H=Z[1];throw new t("Only a single function per agent is allowed",H.loc?.start||{line:1,column:0},void 0,K)}return Z[0]}function q0(X,K){let Z={params:{}};if(!K.loc)return Z;let H=X.substring(0,K.start),Y=[...H.matchAll(/\/\*#([\s\S]*?)\*\//g)];if(Y.length>0){let D=Y[Y.length-1],F=H.substring(D.index+D[0].length);if(/^(?:\s|\/\/[^\n]*)*$/.test(F)){let _=D[1],q=_.split(`
10
10
  `),U=q.filter((A)=>A.trim().length>0).reduce((A,I)=>{let w=I.match(/^(\s*)/)?.[1].length||0;return Math.min(A,w)},1/0);if(U>0&&U<1/0)_=q.map((A)=>A.slice(U)).join(`
11
- `);return Z.description=_.trim(),Z}}let J=H.match(/\/\*\*[\s\S]*?\*\/\s*$/);if(!J)return Z;let $=J[0],Q=$.match(/\/\*\*\s*\n?\s*\*?\s*([^@\n][^\n]*)/m);if(Q)Z.description=Q[1].trim();let G=/@param\s+(?:\{[^}]+\}\s+)?(\w+)\s*-?\s*(.*)/g,z;while((z=G.exec($))!==null)Z.params[z[1]]=z[2].trim();return Z}function g1(X,K=!1){let Z=[],H=[],Y="",J=0;while(J<X.length){let $=X.slice(J).match(/^\btest\s+/);if($){let Q=J,G=J+$[0].length,z,D=X.slice(G).match(/^(['"`])([^]*?)\1\s*/);if(D)z=D[2],G+=D[0].length;if(X[G]==="{"){let F=G+1,_=1,q=F;while(q<X.length&&_>0){let U=X[q];if(U==="{")_++;else if(U==="}")_--;q++}if(_===0){let U=X.slice(F,q-1).trim(),A=q;if(Z.push({description:z,body:U,start:Q,end:A}),!K)try{Function(U)()}catch(B){let P=z||`test at position ${Q}`;H.push(`Test failed: ${P}
11
+ `);return Z.description=_.trim(),Z}}let J=H.match(/\/\*\*[\s\S]*?\*\/\s*$/);if(!J)return Z;let $=J[0],Q=$.match(/\/\*\*\s*\n?\s*\*?\s*([^@\n][^\n]*)/m);if(Q)Z.description=Q[1].trim();let G=/@param\s+(?:\{[^}]+\}\s+)?(\w+)\s*-?\s*(.*)/g,z;while((z=G.exec($))!==null)Z.params[z[1]]=z[2].trim();return Z}function g1(X,K=!1){let Z=[],H=[],Y="",J=0;while(J<X.length){let $=X.slice(J).match(/^\btest\s+/);if($){let Q=J,G=J+$[0].length,z,D=X.slice(G).match(/^(['"`])([^]*?)\1\s*/);if(D)z=D[2],G+=D[0].length;if(X[G]==="{"){let F=G+1,_=1,q=F;while(q<X.length&&_>0){let U=X[q];if(U==="{")_++;else if(U==="}")_--;q++}if(_===0){let U=X.slice(F,q-1).trim(),A=q;if(Z.push({description:z,body:U,start:Q,end:A}),!K)try{Function(U)()}catch(B){let j=z||`test at position ${Q}`;H.push(`Test failed: ${j}
12
12
  ${B.message||B}`)}let w=(X.slice(Q,A).match(/\n/g)||[]).length;Y+=`
13
- `.repeat(w),J=A;continue}}}Y+=X[J],J++}return{source:Y,tests:Z,errors:H}}function v1(X){let K=/\bclass\s+(\w+)(\s+extends\s+\w+)?\s*\{/g,Z="",H=0,Y;while((Y=K.exec(X))!==null){let J=Y[1],$=Y[2]||"",Q=Y.index,G=Q+Y[0].length-1,z=1,D=G+1;while(D<X.length&&z>0){let F=X[D];if(F==="{")z++;else if(F==="}")z--;D++}if(z===0){let F=D,_=X.slice(G,F);Z+=X.slice(H,Q),Z+=`let ${J} = class ${J}${$} ${_}; `,Z+=`${J} = new Proxy(${J}, { apply(t, _, a) { return Reflect.construct(t, a) } });`,H=F}}return Z+=X.slice(H),Z}function b1(X){let K=[{pattern:/\bnew\s+Date\b/,message:"new Date() is not allowed in TjsDate mode. Use Timestamp.now() or Timestamp.from()"},{pattern:/\bDate\.now\b/,message:"Date.now() is not allowed in TjsDate mode. Use Timestamp.now()"},{pattern:/\bDate\.parse\b/,message:"Date.parse() is not allowed in TjsDate mode. Use Timestamp.parse()"},{pattern:/\bDate\.UTC\b/,message:"Date.UTC() is not allowed in TjsDate mode. Use Timestamp.from()"}];for(let{pattern:Z,message:H}of K)if(Z.test(X))throw Error(H);return X}function f1(X){if(/(?<![A-Za-z_$])\beval\s*\(/.test(X))throw Error("eval() is not allowed in TjsNoeval mode. Use Eval() from TJS runtime for safe evaluation.");if(/\bnew\s+Function\s*\(/.test(X))throw Error("new Function() is not allowed in TjsNoeval mode. Use SafeFunction() from TJS runtime.");return X}import{parseExpressionAt as y1}from"acorn";function d(X){switch(X.type){case"Literal":{let K=X.value;if(K===null)return{kind:"null"};if(typeof K==="string")return{kind:"string"};if(typeof K==="number")return{kind:"number"};if(typeof K==="boolean")return{kind:"boolean"};return{kind:"any"}}case"ArrayExpression":{let K=X.elements;if(K.length===0)return{kind:"array",items:{kind:"any"}};return{kind:"array",items:d(K[0])}}case"ObjectExpression":{let K=X.properties,Z={};for(let H of K)if(H.type==="Property"&&H.key.type==="Identifier"){let Y=H.key.name;Z[Y]=d(H.value)}return{kind:"object",shape:Z}}case"LogicalExpression":{let{operator:K,left:Z,right:H}=X;if(K==="||"){let Y=d(Z),J=d(H);if(J.kind==="null")return{...Y,nullable:!0};if(Y.kind==="null")return{...J,nullable:!0};return{kind:"union",members:[Y,J]}}if(K==="&&")return d(H);if(K==="??")return d(H);return{kind:"any"}}case"Identifier":{if(X.name==="undefined")return{kind:"undefined"};return{kind:"any"}}case"UnaryExpression":{if(X.operator==="-"&&X.argument.type==="Literal"){if(typeof X.argument.value==="number")return{kind:"number"}}return{kind:"any"}}default:return{kind:"any"}}}function e(X,K){if(X.type==="Identifier")return{name:X.name,type:{kind:"any"},required:!0};if(X.type==="AssignmentPattern"){let{left:Z,right:H}=X;if(Z.type!=="Identifier")throw new T("Only simple parameter names are supported",k(X));let Y=Z.name,J=K?.has(Y)??!1,$=d(H),Q=t(H);return{name:Y,type:$,required:J,default:J?null:Q,example:Q,loc:{start:X.start,end:X.end}}}if(X.type==="ObjectPattern"){let Z=X.properties,H={},Y={};for(let J of Z)if(J.type==="Property"){let $=J.key.type==="Identifier"?J.key.name:String(J.key.value);if(J.value.type==="Identifier")H[$]={kind:"any"},Y[$]={name:$,type:{kind:"any"},required:!0};else if(J.value.type==="AssignmentPattern"){let Q=e(J.value,K),G=K?.has($)??!1;H[$]=Q.type,Y[$]={name:$,type:Q.type,required:G,default:G?null:Q.example,example:Q.example}}}return{name:"__destructured__",type:{kind:"object",shape:H,destructuredParams:Y},required:!0}}throw new T(`Unsupported parameter pattern: ${X.type}`,k(X))}function t(X){switch(X.type){case"Literal":return X.value;case"ArrayExpression":return X.elements.map((K)=>K?t(K):null);case"ObjectExpression":{let K={};for(let Z of X.properties)if(Z.type==="Property"&&Z.key.type==="Identifier")K[Z.key.name]=t(Z.value);return K}case"UnaryExpression":if(X.operator==="-"){let K=t(X.argument);return typeof K==="number"?-K:void 0}return;case"LogicalExpression":{let{operator:K,left:Z,right:H}=X;if(K==="&&"){if(Z.type==="Literal"&&Z.value===null)return null}if(K==="||")return t(Z)??t(H);if(K==="??")return t(Z)??t(H);return}default:return}}function T6(X){try{let K=y1(X,0,{ecmaVersion:2022});return d(K)}catch{return{kind:"any"}}}function n0(X){switch(X.kind){case"string":return X.nullable?"string | null":"string";case"number":return X.nullable?"number | null":"number";case"boolean":return X.nullable?"boolean | null":"boolean";case"null":return"null";case"any":return"any";case"array":{let K=X.items?n0(X.items):"any";return X.nullable?`${K}[] | null`:`${K}[]`}case"object":{if(!X.shape||Object.keys(X.shape).length===0)return X.nullable?"object | null":"object";let K=Object.entries(X.shape).map(([Z,H])=>`${Z}: ${n0(H)}`).join(", ");return X.nullable?`{ ${K} } | null`:`{ ${K} }`}case"union":return X.members?.map(n0).join(" | ")||"any";default:return"any"}}function T0(X){switch(X.kind){case"string":return{type:"string"};case"number":return{type:"number"};case"boolean":return{type:"boolean"};case"null":return{};case"undefined":return{};case"any":return{};case"array":return{type:"array",items:X.items?T0(X.items):{}};case"object":if(X.shape){let K={};for(let[Z,H]of Object.entries(X.shape))K[Z]=T0(H);return{type:"object",properties:K,additionalProperties:!1}}return{type:"object"};case"union":if(X.members)return{oneOf:X.members.map(T0)};return{};default:return{}}}function h1(X){let K={},Z=[];for(let[H,Y]of Object.entries(X))if(K[H]=T0(Y.type),Y.required)Z.push(H);return{type:"object",properties:K,required:Z.length>0?Z:void 0,additionalProperties:!1}}function c0(X,K,Z,H={},Y){let J=q0(K,X),$=new Map;for(let I of X.params){let w=e(I,Y);if(w.name==="__destructured__"&&w.type.kind==="object"&&w.type.destructuredParams)for(let[B,P]of Object.entries(w.type.destructuredParams))$.set(B,{...P,description:J.params[B]});else w.description=J.params[w.name],$.set(w.name,w)}let Q;if(Z)Q=T6(Z);let G={depth:0,locals:new Map,parameters:$,atoms:new Set(Object.keys(H.atoms||{})),warnings:[],source:K,filename:H.filename||"<source>",options:H},z=p(X.body,G),D=[],F=[],_=[];for(let[I,w]of $.entries())if(w.required)F.push(I);else if(w.default!==void 0)_.push({name:I,defaultValue:w.default});else F.push(I);if(F.length>0)D.push({op:"varsImport",keys:F});for(let{name:I,defaultValue:w}of _)D.push({op:"varsImport",keys:[I]}),D.push({op:"if",condition:{$expr:"binary",op:"==",left:{$expr:"ident",name:I},right:{$expr:"literal",value:null}},then:[{op:"varSet",key:I,value:w}]});D.push(...z);let q=Object.fromEntries($),U={name:X.id?.name||"anonymous",description:J.description,parameters:q,returns:Q},A=h1(q);return{ast:{op:"seq",steps:D,inputSchema:A},signature:U,warnings:G.warnings}}function p(X,K){let Z=[];for(let H of X.body){let Y=U0(H,K);if(Y)if(Array.isArray(Y))Z.push(...Y);else Z.push(Y)}return Z}function U0(X,K){switch(X.type){case"VariableDeclaration":return x1(X,K);case"ExpressionStatement":return m1(X,K);case"IfStatement":return l1(X,K);case"WhileStatement":return u1(X,K);case"ForOfStatement":return i1(X,K);case"TryStatement":return p1(X,K);case"ReturnStatement":return n1(X,K);case"ThrowStatement":throw new T("'throw' is not supported in AsyncJS. Use Error('message') to trigger error flow",k(X),K.source,K.filename);case"BlockStatement":return{op:"scope",steps:p(X,m(K))};case"EmptyStatement":return null;default:throw new T(`Unsupported statement type: ${X.type}`,k(X),K.source,K.filename)}}function x1(X,K){let Z=[],H=X.kind==="const",Y=H?"constSet":"varSet";for(let J of X.declarations){if(J.id.type!=="Identifier")throw new T("Only simple variable names are supported",k(J),K.source,K.filename);let $=J.id.name;if(J.init){let{step:Q,resultVar:G}=K0(J.init,K,$,H);if(Q)Z.push(Q);else if(G!==$)Z.push({op:Y,key:$,value:G});let z=d(J.init);K.locals.set($,z)}else{if(H)throw new T("const declarations must be initialized",k(J),K.source,K.filename);Z.push({op:"varSet",key:$,value:null}),K.locals.set($,{kind:"any",nullable:!0})}}return Z}function m1(X,K){let Z=X.expression;if(Z.type==="AssignmentExpression")return d1(Z,K);if(Z.type==="CallExpression"){let{step:H,resultVar:Y}=K0(Z,K);if(H)return H;if(Y)return{op:"varSet",key:"_",value:Y};return null}return K.warnings.push({message:"Expression statement has no effect",line:k(X).line,column:k(X).column}),null}function d1(X,K){if(X.left.type!=="Identifier")throw new T("Only simple variable assignment is supported",k(X),K.source,K.filename);let Z=X.left.name,{step:H,resultVar:Y}=K0(X.right,K,Z);if(H)return H;return{op:"varSet",key:Z,value:Y}}function l1(X,K){let Z=N(X.test,K),H=X.consequent.type==="BlockStatement"?p(X.consequent,m(K)):[U0(X.consequent,K)].filter(Boolean),Y;if(X.alternate)Y=X.alternate.type==="BlockStatement"?p(X.alternate,m(K)):[U0(X.alternate,K)].filter(Boolean);return{op:"if",condition:Z,then:H,...Y&&{else:Y}}}function u1(X,K){let Z=N(X.test,K),H=X.body.type==="BlockStatement"?p(X.body,m(K)):[U0(X.body,K)].filter(Boolean);return{op:"while",condition:Z,body:H}}function i1(X,K){let Z;if(X.left.type==="VariableDeclaration"){let $=X.left.declarations[0];if($.id.type!=="Identifier")throw new T("Only simple variable names are supported in for...of",k(X.left),K.source,K.filename);Z=$.id.name}else if(X.left.type==="Identifier")Z=X.left.name;else throw new T("Unsupported for...of left-hand side",k(X.left),K.source,K.filename);let H=f(X.right,K),Y=m(K);Y.locals.set(Z,{kind:"any"});let J=X.body.type==="BlockStatement"?p(X.body,Y):[U0(X.body,Y)].filter(Boolean);return{op:"map",items:H,as:Z,steps:J}}function p1(X,K){let Z=p(X.block,m(K)),H,Y;if(X.handler){let J=m(K);if(X.handler.param?.type==="Identifier")Y=X.handler.param.name,J.locals.set(Y,{kind:"any"});H=p(X.handler.body,J)}return{op:"try",try:Z,...H&&{catch:H},...Y&&{catchParam:Y}}}function n1(X,K){if(!X.argument)return{op:"return",value:{}};let{step:Z,resultVar:H}=K0(X.argument,K,"__returnVal__");if(Z)return[Z,{op:"return",value:H}];return{op:"return",value:f(X.argument,K)}}var g6=new Set(["Math","JSON","Array","Object","String","Number","console","Date","Schema"]),c1=new Set(["parseInt","parseFloat","isNaN","isFinite","encodeURI","decodeURI","encodeURIComponent","decodeURIComponent","Set","Date","filter"]),A0=new Set(["RegExp","Promise","Map","WeakSet","WeakMap","Symbol","Proxy","Reflect","Function","eval","setTimeout","setInterval","fetch","require","import","process","window","document","global","globalThis"]),o1=new Set(["toUpperCase","toLowerCase","trim","trimStart","trimEnd","charAt","charCodeAt","codePointAt","concat","includes","indexOf","lastIndexOf","startsWith","endsWith","slice","substring","substr","replace","replaceAll","match","search","padStart","padEnd","repeat","normalize","localeCompare","toString","valueOf","at","reverse","sort","fill","copyWithin","flat","flatMap","every","some","forEach","add","remove","has","clear","toArray","union","intersection","diff","format","isBefore","isAfter"]);function s1(X){if(X.callee.type==="Identifier"){let K=X.callee.name;return c1.has(K)||A0.has(K)}if(X.callee.type==="MemberExpression"){let K=X.callee;if(K.object.type==="Identifier"){let Z=K.object.name;if(g6.has(Z)||A0.has(Z))return!0}if(K.property.type==="Identifier"){let Z=K.property.name;if(o1.has(Z))return!0}}return!1}function a1(X){if(X.object.type==="Identifier"){let K=X.object.name;return g6.has(K)||A0.has(K)}return!1}var k6={RegExp:"RegExp is not available. Use string methods or the regexMatch atom.",Promise:"Promise is not needed. All operations are implicitly async.",Map:"Map is not available. Use plain objects instead.",WeakSet:"WeakSet is not available.",WeakMap:"WeakMap is not available.",Symbol:"Symbol is not available.",Proxy:"Proxy is not available.",Reflect:"Reflect is not available.",Function:"Function constructor is not available. Define functions normally.",eval:"eval is not available. Code is compiled, not evaluated.",setTimeout:"setTimeout is not available. Use the delay atom.",setInterval:"setInterval is not available. Use while loops with delay.",fetch:"fetch is not available. Use the httpFetch atom.",require:"require is not available. Atoms must be registered with the VM.",import:"import is not available. Atoms must be registered with the VM.",process:"process is not available. AsyncJS runs in a sandboxed environment.",window:"window is not available. AsyncJS runs in a sandboxed environment.",document:"document is not available. AsyncJS runs in a sandboxed environment.",global:"global is not available. AsyncJS runs in a sandboxed environment.",globalThis:"globalThis is not available. Use builtins directly."};function r1(X){if(X.callee.type==="Identifier"){let K=X.callee.name;if(A0.has(K))return k6[K]||`${K} is not available in AsyncJS.`}if(X.callee.type==="MemberExpression"){let K=X.callee;if(K.object.type==="Identifier"){let Z=K.object.name;if(A0.has(Z))return k6[Z]||`${Z} is not available in AsyncJS.`}}return null}function v6(X){return{Date:" Use Date() or Date('2024-01-15') instead - no 'new' needed.",Set:" Use Set([items]) instead - no 'new' needed.",Map:" Use plain objects instead of Map.",Array:" Use array literals like [1, 2, 3] instead.",Object:" Use object literals like { key: value } instead.",Error:" Return an error object like { error: 'message' } instead.",RegExp:" Use string methods or the regexMatch atom.",Promise:" Not needed - all operations are implicitly async.",WeakSet:" WeakSet is not available.",WeakMap:" WeakMap is not available."}[X]||" Use factory functions or object literals instead."}function K0(X,K,Z,H){let Y=H?"constSet":"varSet";if(X.type==="ChainExpression")return K0(X.expression,K,Z,H);if(X.type==="NewExpression"){let $=X,Q="constructor";if($.callee.type==="Identifier")Q=$.callee.name;let G=v6(Q);throw new T(`The 'new' keyword is not supported in AsyncJS.${G}`,k(X),K.source,K.filename)}if(X.type==="CallExpression"){let $=r1(X);if($)throw new T($,k(X),K.source,K.filename)}if(X.type==="CallExpression"&&s1(X)){let $=N(X,K);if(Z)return{step:{op:Y,key:Z,value:$},resultVar:Z};return{step:null,resultVar:$}}if(X.type==="MemberExpression"&&a1(X)){let $=N(X,K);if(Z)return{step:{op:Y,key:Z,value:$},resultVar:Z};return{step:null,resultVar:$}}if(X.type==="CallExpression")return t1(X,K,Z,H);if(X.type==="TemplateLiteral")return X8(X,K,Z,H);if(X.type==="BinaryExpression"||X.type==="LogicalExpression"||X.type==="UnaryExpression"){let $=N(X,K);if(Z)return{step:{op:Y,key:Z,value:$},resultVar:Z};return{step:null,resultVar:$}}return{step:null,resultVar:f(X,K)}}function t1(X,K,Z,H){let Y,J=!1,$;if(X.callee.type==="Identifier")Y=X.callee.name;else if(X.callee.type==="MemberExpression"){let G=X.callee;if(G.property.type==="Identifier")Y=G.property.name,J=!0,$=f(G.object,K);else throw new T("Computed method names are not supported",k(X),K.source,K.filename)}else throw new T("Only named function calls are supported",k(X),K.source,K.filename);if(J)return e1(Y,$,X.arguments,K,Z,H);if(Y==="console"&&X.callee.type==="MemberExpression");let Q=Z8(X,K);return{step:{op:Y,...Q,...Z&&{result:Z},...Z&&H&&{resultConst:!0}},resultVar:Z}}function e1(X,K,Z,H,Y,J){switch(X){case"map":if(Z.length>0&&(Z[0].type==="ArrowFunctionExpression"||Z[0].type==="FunctionExpression")){let $=Z[0],Q=$.params[0],G=Q?.type==="Identifier"?Q.name:"item",z=m(H);z.locals.set(G,{kind:"any"});let D;if($.body.type==="BlockStatement")D=p($.body,z);else{let{step:F,resultVar:_}=K0($.body,z,"result");D=F?[F]:[{op:"varSet",key:"result",value:_}]}return{step:{op:"map",items:K,as:G,steps:D,...Y&&{result:Y},...Y&&J&&{resultConst:!0}},resultVar:Y}}break;case"filter":if(Z.length>0&&(Z[0].type==="ArrowFunctionExpression"||Z[0].type==="FunctionExpression")){let $=Z[0],Q=$.params[0],G=Q?.type==="Identifier"?Q.name:"item",z=m(H);z.locals.set(G,{kind:"any"});let D;if($.body.type==="BlockStatement")throw new T("filter callback must be an expression, not a block",k(Z[0]),H.source,H.filename);else D=N($.body,z);return{step:{op:"filter",items:K,as:G,condition:D,...Y&&{result:Y},...Y&&J&&{resultConst:!0}},resultVar:Y}}break;case"find":if(Z.length>0&&(Z[0].type==="ArrowFunctionExpression"||Z[0].type==="FunctionExpression")){let $=Z[0],Q=$.params[0],G=Q?.type==="Identifier"?Q.name:"item",z=m(H);z.locals.set(G,{kind:"any"});let D;if($.body.type==="BlockStatement")throw new T("find callback must be an expression, not a block",k(Z[0]),H.source,H.filename);else D=N($.body,z);return{step:{op:"find",items:K,as:G,condition:D,...Y&&{result:Y},...Y&&J&&{resultConst:!0}},resultVar:Y}}break;case"reduce":if(Z.length>=2&&(Z[0].type==="ArrowFunctionExpression"||Z[0].type==="FunctionExpression")){let $=Z[0],Q=$.params[0],G=$.params[1],z=Q?.type==="Identifier"?Q.name:"acc",D=G?.type==="Identifier"?G.name:"item",F=m(H);F.locals.set(z,{kind:"any"}),F.locals.set(D,{kind:"any"});let _;if($.body.type==="BlockStatement")_=p($.body,F);else{let{step:U,resultVar:A}=K0($.body,F,"result");_=U?[U]:[{op:"varSet",key:"result",value:A}]}let q=f(Z[1],H);return{step:{op:"reduce",items:K,as:D,accumulator:z,initial:q,steps:_,...Y&&{result:Y},...Y&&J&&{resultConst:!0}},resultVar:Y}}break;case"slice":break;case"push":return{step:{op:"push",list:K,item:f(Z[0],H),...Y&&{result:Y},...Y&&J&&{resultConst:!0}},resultVar:Y};case"join":return{step:{op:"join",list:K,sep:Z.length>0?f(Z[0],H):"",...Y&&{result:Y},...Y&&J&&{resultConst:!0}},resultVar:Y};case"split":return{step:{op:"split",str:K,sep:Z.length>0?f(Z[0],H):"",...Y&&{result:Y},...Y&&J&&{resultConst:!0}},resultVar:Y}}return H.warnings.push({message:`Unknown method '${X}' - treating as atom call`,line:0,column:0}),{step:{op:X,receiver:K,args:Z.map(($)=>f($,H)),...Y&&{result:Y},...Y&&J&&{resultConst:!0}},resultVar:Y}}function X8(X,K,Z,H){let Y="",J={};for(let $=0;$<X.quasis.length;$++)if(Y+=X.quasis[$].value.cooked||X.quasis[$].value.raw,$<X.expressions.length){let Q=X.expressions[$],G=`_${$}`;J[G]=f(Q,K),Y+=`{{${G}}}`}return{step:{op:"template",tmpl:Y,vars:J,...Z&&{result:Z},...Z&&H&&{resultConst:!0}},resultVar:Z}}function N(X,K){switch(X.type){case"Literal":return{$expr:"literal",value:X.value};case"Identifier":return{$expr:"ident",name:X.name};case"MemberExpression":{let Z=X,H=N(Z.object,K),Y=Z.optional===!0;if(Z.computed){let $=Z.property;if($.type==="Literal")return{$expr:"member",object:H,property:String($.value),computed:!0,...Y&&{optional:!0}};throw new T("Computed member access with variables not yet supported",k(X),K.source,K.filename)}let J=Z.property.name;return{$expr:"member",object:H,property:J,...Y&&{optional:!0}}}case"ChainExpression":return N(X.expression,K);case"BinaryExpression":{let Z=X;return{$expr:"binary",op:Z.operator,left:N(Z.left,K),right:N(Z.right,K)}}case"LogicalExpression":{let Z=X;return{$expr:"logical",op:Z.operator,left:N(Z.left,K),right:N(Z.right,K)}}case"UnaryExpression":{let Z=X;return{$expr:"unary",op:Z.operator,argument:N(Z.argument,K)}}case"ConditionalExpression":{let Z=X;return{$expr:"conditional",test:N(Z.test,K),consequent:N(Z.consequent,K),alternate:N(Z.alternate,K)}}case"ArrayExpression":return{$expr:"array",elements:X.elements.filter((H)=>H!==null).map((H)=>N(H,K))};case"ObjectExpression":{let Z=X,H=[];for(let Y of Z.properties)if(Y.type==="Property"){let J=Y.key.type==="Identifier"?Y.key.name:String(Y.key.value);H.push({key:J,value:N(Y.value,K)})}return{$expr:"object",properties:H}}case"CallExpression":{let Z=X;if(Z.callee.type==="MemberExpression"){let H=Z.callee,Y=H.property.type==="Identifier"?H.property.name:String(H.property.value),J=H.optional===!0||Z.optional===!0;return{$expr:"methodCall",object:N(H.object,K),method:Y,arguments:Z.arguments.map(($)=>N($,K)),...J&&{optional:!0}}}if(Z.callee.type==="Identifier")return{$expr:"call",callee:Z.callee.name,arguments:Z.arguments.map((Y)=>N(Y,K))};throw new T("Complex function calls in expressions should be lifted to statements",k(X),K.source,K.filename)}case"NewExpression":{let Z=X,H="constructor";if(Z.callee.type==="Identifier")H=Z.callee.name;let Y=v6(H);throw new T(`The 'new' keyword is not supported in AsyncJS.${Y}`,k(X),K.source,K.filename)}case"TemplateLiteral":throw new T("Template literals inside expressions are not supported. Assign to a variable first: const msg = `hello ${name}`; then use msg",k(X),K.source,K.filename);default:throw new T(`Unsupported expression type in condition: ${X.type}`,k(X),K.source,K.filename)}}function f(X,K){switch(X.type){case"Literal":return X.value;case"Identifier":return X.name;case"MemberExpression":{let Z=X;if(Z.optional===!0)return N(X,K);let Y=f(Z.object,K);if(Y&&typeof Y==="object"&&Y.$expr){let $=Z.computed?String(Z.property.value):Z.property.name;return{$expr:"member",object:Y,property:$,...Z.computed&&{computed:!0}}}if(Z.computed)return`${Y}[${f(Z.property,K)}]`;let J=Z.property.name;if(typeof Y==="string")return`${Y}.${J}`;if(Y&&Y.$kind==="arg")return{$kind:"arg",path:`${Y.path}.${J}`};return`${Y}.${J}`}case"ChainExpression":return f(X.expression,K);case"ArrayExpression":return X.elements.map((Z)=>Z?f(Z,K):null);case"ObjectExpression":{let Z={};for(let H of X.properties)if(H.type==="Property"){let Y=H.key.type==="Identifier"?H.key.name:String(H.key.value);Z[Y]=f(H.value,K)}return Z}case"TemplateLiteral":return N(X,K);case"CallExpression":return N(X,K);case"BinaryExpression":case"LogicalExpression":case"UnaryExpression":case"ConditionalExpression":return N(X,K);default:return null}}function Z8(X,K){if(X.arguments.length===1&&X.arguments[0].type==="ObjectExpression"){let Z=X.arguments[0],H={};for(let Y of Z.properties)if(Y.type==="Property"){let J=Y.key.type==="Identifier"?Y.key.name:String(Y.key.value);H[J]=f(Y.value,K)}return H}return{args:X.arguments.map((Z)=>f(Z,K))}}import{parseExpressionAt as P8}from"acorn";function K8(X,K){let Z=K;while(Z>0&&X[Z-1]!==`
13
+ `.repeat(w),J=A;continue}}}Y+=X[J],J++}return{source:Y,tests:Z,errors:H}}function v1(X){let K=/\bclass\s+(\w+)(\s+extends\s+\w+)?\s*\{/g,Z="",H=0,Y;while((Y=K.exec(X))!==null){let J=Y[1],$=Y[2]||"",Q=Y.index,G=Q+Y[0].length-1,z=1,D=G+1;while(D<X.length&&z>0){let F=X[D];if(F==="{")z++;else if(F==="}")z--;D++}if(z===0){let F=D,_=X.slice(G,F);Z+=X.slice(H,Q),Z+=`let ${J} = class ${J}${$} ${_}; `,Z+=`${J} = new Proxy(${J}, { apply(t, _, a) { return Reflect.construct(t, a) } });`,H=F}}return Z+=X.slice(H),Z}function b1(X){let K=[{pattern:/\bnew\s+Date\b/,message:"new Date() is not allowed in TjsDate mode. Use Timestamp.now() or Timestamp.from()"},{pattern:/\bDate\.now\b/,message:"Date.now() is not allowed in TjsDate mode. Use Timestamp.now()"},{pattern:/\bDate\.parse\b/,message:"Date.parse() is not allowed in TjsDate mode. Use Timestamp.parse()"},{pattern:/\bDate\.UTC\b/,message:"Date.UTC() is not allowed in TjsDate mode. Use Timestamp.from()"}];for(let{pattern:Z,message:H}of K)if(Z.test(X))throw Error(H);return X}function f1(X){if(/(?<![A-Za-z_$])\beval\s*\(/.test(X))throw Error("eval() is not allowed in TjsNoeval mode. Use Eval() from TJS runtime for safe evaluation.");if(/\bnew\s+Function\s*\(/.test(X))throw Error("new Function() is not allowed in TjsNoeval mode. Use SafeFunction() from TJS runtime.");return X}import{parseExpressionAt as y1}from"acorn";function d(X){switch(X.type){case"Literal":{let K=X.value;if(K===null)return{kind:"null"};if(typeof K==="string")return{kind:"string"};if(typeof K==="number"){let Z=X.raw;if(Z&&Z.includes("."))return{kind:"number"};return{kind:"integer"}}if(typeof K==="boolean")return{kind:"boolean"};return{kind:"any"}}case"ArrayExpression":{let K=X.elements;if(K.length===0)return{kind:"array",items:{kind:"any"}};return{kind:"array",items:d(K[0])}}case"ObjectExpression":{let K=X.properties,Z={};for(let H of K)if(H.type==="Property"&&H.key.type==="Identifier"){let Y=H.key.name;Z[Y]=d(H.value)}return{kind:"object",shape:Z}}case"LogicalExpression":{let{operator:K,left:Z,right:H}=X;if(K==="||"){let Y=d(Z),J=d(H);if(J.kind==="null")return{...Y,nullable:!0};if(Y.kind==="null")return{...J,nullable:!0};return{kind:"union",members:[Y,J]}}if(K==="&&")return d(H);if(K==="??")return d(H);return{kind:"any"}}case"Identifier":{if(X.name==="undefined")return{kind:"undefined"};return{kind:"any"}}case"UnaryExpression":{let{operator:K,argument:Z}=X;if(K==="+"&&Z.type==="Literal"){if(typeof Z.value==="number")return{kind:"non-negative-integer"}}if(K==="-"&&Z.type==="Literal"){if(typeof Z.value==="number"){let Y=Z.raw;if(Y&&Y.includes("."))return{kind:"number"};return{kind:"integer"}}}return{kind:"any"}}default:return{kind:"any"}}}function e(X,K){if(X.type==="Identifier")return{name:X.name,type:{kind:"any"},required:!0};if(X.type==="AssignmentPattern"){let{left:Z,right:H}=X;if(Z.type!=="Identifier")throw new T("Only simple parameter names are supported",k(X));let Y=Z.name,J=K?.has(Y)??!1,$=d(H),Q=c(H);return{name:Y,type:$,required:J,default:J?null:Q,example:Q,loc:{start:X.start,end:X.end}}}if(X.type==="ObjectPattern"){let Z=X.properties,H={},Y={};for(let J of Z)if(J.type==="Property"){let $=J.key.type==="Identifier"?J.key.name:String(J.key.value);if(J.value.type==="Identifier")H[$]={kind:"any"},Y[$]={name:$,type:{kind:"any"},required:!0};else if(J.value.type==="AssignmentPattern"){let Q=e(J.value,K),G=K?.has($)??!1;H[$]=Q.type,Y[$]={name:$,type:Q.type,required:G,default:G?null:Q.example,example:Q.example}}}return{name:"__destructured__",type:{kind:"object",shape:H,destructuredParams:Y},required:!0}}throw new T(`Unsupported parameter pattern: ${X.type}`,k(X))}function c(X){switch(X.type){case"Literal":return X.value;case"ArrayExpression":return X.elements.map((K)=>K?c(K):null);case"ObjectExpression":{let K={};for(let Z of X.properties)if(Z.type==="Property"&&Z.key.type==="Identifier")K[Z.key.name]=c(Z.value);return K}case"UnaryExpression":if(X.operator==="-"){let K=c(X.argument);return typeof K==="number"?-K:void 0}if(X.operator==="+"){let K=c(X.argument);return typeof K==="number"?+K:void 0}return;case"LogicalExpression":{let{operator:K,left:Z,right:H}=X;if(K==="&&"){if(Z.type==="Literal"&&Z.value===null)return null}if(K==="||")return c(Z)??c(H);if(K==="??")return c(Z)??c(H);return}default:return}}function T6(X){try{let K=y1(X,0,{ecmaVersion:2022});return d(K)}catch{return{kind:"any"}}}function n0(X){switch(X.kind){case"string":return X.nullable?"string | null":"string";case"number":return X.nullable?"number | null":"number";case"integer":return X.nullable?"integer | null":"integer";case"non-negative-integer":return X.nullable?"non-negative integer | null":"non-negative integer";case"boolean":return X.nullable?"boolean | null":"boolean";case"null":return"null";case"any":return"any";case"array":{let K=X.items?n0(X.items):"any";return X.nullable?`${K}[] | null`:`${K}[]`}case"object":{if(!X.shape||Object.keys(X.shape).length===0)return X.nullable?"object | null":"object";let K=Object.entries(X.shape).map(([Z,H])=>`${Z}: ${n0(H)}`).join(", ");return X.nullable?`{ ${K} } | null`:`{ ${K} }`}case"union":return X.members?.map(n0).join(" | ")||"any";default:return"any"}}function T0(X){switch(X.kind){case"string":return{type:"string"};case"number":return{type:"number"};case"boolean":return{type:"boolean"};case"null":return{};case"undefined":return{};case"any":return{};case"array":return{type:"array",items:X.items?T0(X.items):{}};case"object":if(X.shape){let K={};for(let[Z,H]of Object.entries(X.shape))K[Z]=T0(H);return{type:"object",properties:K,additionalProperties:!1}}return{type:"object"};case"union":if(X.members)return{oneOf:X.members.map(T0)};return{};default:return{}}}function h1(X){let K={},Z=[];for(let[H,Y]of Object.entries(X))if(K[H]=T0(Y.type),Y.required)Z.push(H);return{type:"object",properties:K,required:Z.length>0?Z:void 0,additionalProperties:!1}}function c0(X,K,Z,H={},Y){let J=q0(K,X),$=new Map;for(let I of X.params){let w=e(I,Y);if(w.name==="__destructured__"&&w.type.kind==="object"&&w.type.destructuredParams)for(let[B,j]of Object.entries(w.type.destructuredParams))$.set(B,{...j,description:J.params[B]});else w.description=J.params[w.name],$.set(w.name,w)}let Q;if(Z)Q=T6(Z);let G={depth:0,locals:new Map,parameters:$,atoms:new Set(Object.keys(H.atoms||{})),warnings:[],source:K,filename:H.filename||"<source>",options:H},z=p(X.body,G),D=[],F=[],_=[];for(let[I,w]of $.entries())if(w.required)F.push(I);else if(w.default!==void 0)_.push({name:I,defaultValue:w.default});else F.push(I);if(F.length>0)D.push({op:"varsImport",keys:F});for(let{name:I,defaultValue:w}of _)D.push({op:"varsImport",keys:[I]}),D.push({op:"if",condition:{$expr:"binary",op:"==",left:{$expr:"ident",name:I},right:{$expr:"literal",value:null}},then:[{op:"varSet",key:I,value:w}]});D.push(...z);let q=Object.fromEntries($),U={name:X.id?.name||"anonymous",description:J.description,parameters:q,returns:Q},A=h1(q);return{ast:{op:"seq",steps:D,inputSchema:A},signature:U,warnings:G.warnings}}function p(X,K){let Z=[];for(let H of X.body){let Y=U0(H,K);if(Y)if(Array.isArray(Y))Z.push(...Y);else Z.push(Y)}return Z}function U0(X,K){switch(X.type){case"VariableDeclaration":return x1(X,K);case"ExpressionStatement":return m1(X,K);case"IfStatement":return l1(X,K);case"WhileStatement":return u1(X,K);case"ForOfStatement":return i1(X,K);case"TryStatement":return p1(X,K);case"ReturnStatement":return n1(X,K);case"ThrowStatement":throw new T("'throw' is not supported in AsyncJS. Use Error('message') to trigger error flow",k(X),K.source,K.filename);case"BlockStatement":return{op:"scope",steps:p(X,m(K))};case"EmptyStatement":return null;default:throw new T(`Unsupported statement type: ${X.type}`,k(X),K.source,K.filename)}}function x1(X,K){let Z=[],H=X.kind==="const",Y=H?"constSet":"varSet";for(let J of X.declarations){if(J.id.type!=="Identifier")throw new T("Only simple variable names are supported",k(J),K.source,K.filename);let $=J.id.name;if(J.init){let{step:Q,resultVar:G}=K0(J.init,K,$,H);if(Q)Z.push(Q);else if(G!==$)Z.push({op:Y,key:$,value:G});let z=d(J.init);K.locals.set($,z)}else{if(H)throw new T("const declarations must be initialized",k(J),K.source,K.filename);Z.push({op:"varSet",key:$,value:null}),K.locals.set($,{kind:"any",nullable:!0})}}return Z}function m1(X,K){let Z=X.expression;if(Z.type==="AssignmentExpression")return d1(Z,K);if(Z.type==="CallExpression"){let{step:H,resultVar:Y}=K0(Z,K);if(H)return H;if(Y)return{op:"varSet",key:"_",value:Y};return null}return K.warnings.push({message:"Expression statement has no effect",line:k(X).line,column:k(X).column}),null}function d1(X,K){if(X.left.type!=="Identifier")throw new T("Only simple variable assignment is supported",k(X),K.source,K.filename);let Z=X.left.name,{step:H,resultVar:Y}=K0(X.right,K,Z);if(H)return H;return{op:"varSet",key:Z,value:Y}}function l1(X,K){let Z=N(X.test,K),H=X.consequent.type==="BlockStatement"?p(X.consequent,m(K)):[U0(X.consequent,K)].filter(Boolean),Y;if(X.alternate)Y=X.alternate.type==="BlockStatement"?p(X.alternate,m(K)):[U0(X.alternate,K)].filter(Boolean);return{op:"if",condition:Z,then:H,...Y&&{else:Y}}}function u1(X,K){let Z=N(X.test,K),H=X.body.type==="BlockStatement"?p(X.body,m(K)):[U0(X.body,K)].filter(Boolean);return{op:"while",condition:Z,body:H}}function i1(X,K){let Z;if(X.left.type==="VariableDeclaration"){let $=X.left.declarations[0];if($.id.type!=="Identifier")throw new T("Only simple variable names are supported in for...of",k(X.left),K.source,K.filename);Z=$.id.name}else if(X.left.type==="Identifier")Z=X.left.name;else throw new T("Unsupported for...of left-hand side",k(X.left),K.source,K.filename);let H=f(X.right,K),Y=m(K);Y.locals.set(Z,{kind:"any"});let J=X.body.type==="BlockStatement"?p(X.body,Y):[U0(X.body,Y)].filter(Boolean);return{op:"map",items:H,as:Z,steps:J}}function p1(X,K){let Z=p(X.block,m(K)),H,Y;if(X.handler){let J=m(K);if(X.handler.param?.type==="Identifier")Y=X.handler.param.name,J.locals.set(Y,{kind:"any"});H=p(X.handler.body,J)}return{op:"try",try:Z,...H&&{catch:H},...Y&&{catchParam:Y}}}function n1(X,K){if(!X.argument)return{op:"return",value:{}};let{step:Z,resultVar:H}=K0(X.argument,K,"__returnVal__");if(Z)return[Z,{op:"return",value:H}];return{op:"return",value:f(X.argument,K)}}var g6=new Set(["Math","JSON","Array","Object","String","Number","console","Date","Schema"]),c1=new Set(["parseInt","parseFloat","isNaN","isFinite","encodeURI","decodeURI","encodeURIComponent","decodeURIComponent","Set","Date","filter"]),A0=new Set(["RegExp","Promise","Map","WeakSet","WeakMap","Symbol","Proxy","Reflect","Function","eval","setTimeout","setInterval","fetch","require","import","process","window","document","global","globalThis"]),o1=new Set(["toUpperCase","toLowerCase","trim","trimStart","trimEnd","charAt","charCodeAt","codePointAt","concat","includes","indexOf","lastIndexOf","startsWith","endsWith","slice","substring","substr","replace","replaceAll","match","search","padStart","padEnd","repeat","normalize","localeCompare","toString","valueOf","at","reverse","sort","fill","copyWithin","flat","flatMap","every","some","forEach","add","remove","has","clear","toArray","union","intersection","diff","format","isBefore","isAfter"]);function s1(X){if(X.callee.type==="Identifier"){let K=X.callee.name;return c1.has(K)||A0.has(K)}if(X.callee.type==="MemberExpression"){let K=X.callee;if(K.object.type==="Identifier"){let Z=K.object.name;if(g6.has(Z)||A0.has(Z))return!0}if(K.property.type==="Identifier"){let Z=K.property.name;if(o1.has(Z))return!0}}return!1}function a1(X){if(X.object.type==="Identifier"){let K=X.object.name;return g6.has(K)||A0.has(K)}return!1}var k6={RegExp:"RegExp is not available. Use string methods or the regexMatch atom.",Promise:"Promise is not needed. All operations are implicitly async.",Map:"Map is not available. Use plain objects instead.",WeakSet:"WeakSet is not available.",WeakMap:"WeakMap is not available.",Symbol:"Symbol is not available.",Proxy:"Proxy is not available.",Reflect:"Reflect is not available.",Function:"Function constructor is not available. Define functions normally.",eval:"eval is not available. Code is compiled, not evaluated.",setTimeout:"setTimeout is not available. Use the delay atom.",setInterval:"setInterval is not available. Use while loops with delay.",fetch:"fetch is not available. Use the httpFetch atom.",require:"require is not available. Atoms must be registered with the VM.",import:"import is not available. Atoms must be registered with the VM.",process:"process is not available. AsyncJS runs in a sandboxed environment.",window:"window is not available. AsyncJS runs in a sandboxed environment.",document:"document is not available. AsyncJS runs in a sandboxed environment.",global:"global is not available. AsyncJS runs in a sandboxed environment.",globalThis:"globalThis is not available. Use builtins directly."};function r1(X){if(X.callee.type==="Identifier"){let K=X.callee.name;if(A0.has(K))return k6[K]||`${K} is not available in AsyncJS.`}if(X.callee.type==="MemberExpression"){let K=X.callee;if(K.object.type==="Identifier"){let Z=K.object.name;if(A0.has(Z))return k6[Z]||`${Z} is not available in AsyncJS.`}}return null}function v6(X){return{Date:" Use Date() or Date('2024-01-15') instead - no 'new' needed.",Set:" Use Set([items]) instead - no 'new' needed.",Map:" Use plain objects instead of Map.",Array:" Use array literals like [1, 2, 3] instead.",Object:" Use object literals like { key: value } instead.",Error:" Return an error object like { error: 'message' } instead.",RegExp:" Use string methods or the regexMatch atom.",Promise:" Not needed - all operations are implicitly async.",WeakSet:" WeakSet is not available.",WeakMap:" WeakMap is not available."}[X]||" Use factory functions or object literals instead."}function K0(X,K,Z,H){let Y=H?"constSet":"varSet";if(X.type==="ChainExpression")return K0(X.expression,K,Z,H);if(X.type==="NewExpression"){let $=X,Q="constructor";if($.callee.type==="Identifier")Q=$.callee.name;let G=v6(Q);throw new T(`The 'new' keyword is not supported in AsyncJS.${G}`,k(X),K.source,K.filename)}if(X.type==="CallExpression"){let $=r1(X);if($)throw new T($,k(X),K.source,K.filename)}if(X.type==="CallExpression"&&s1(X)){let $=N(X,K);if(Z)return{step:{op:Y,key:Z,value:$},resultVar:Z};return{step:null,resultVar:$}}if(X.type==="MemberExpression"&&a1(X)){let $=N(X,K);if(Z)return{step:{op:Y,key:Z,value:$},resultVar:Z};return{step:null,resultVar:$}}if(X.type==="CallExpression")return t1(X,K,Z,H);if(X.type==="TemplateLiteral")return X8(X,K,Z,H);if(X.type==="BinaryExpression"||X.type==="LogicalExpression"||X.type==="UnaryExpression"){let $=N(X,K);if(Z)return{step:{op:Y,key:Z,value:$},resultVar:Z};return{step:null,resultVar:$}}return{step:null,resultVar:f(X,K)}}function t1(X,K,Z,H){let Y,J=!1,$;if(X.callee.type==="Identifier")Y=X.callee.name;else if(X.callee.type==="MemberExpression"){let G=X.callee;if(G.property.type==="Identifier")Y=G.property.name,J=!0,$=f(G.object,K);else throw new T("Computed method names are not supported",k(X),K.source,K.filename)}else throw new T("Only named function calls are supported",k(X),K.source,K.filename);if(J)return e1(Y,$,X.arguments,K,Z,H);if(Y==="console"&&X.callee.type==="MemberExpression");let Q=Z8(X,K);return{step:{op:Y,...Q,...Z&&{result:Z},...Z&&H&&{resultConst:!0}},resultVar:Z}}function e1(X,K,Z,H,Y,J){switch(X){case"map":if(Z.length>0&&(Z[0].type==="ArrowFunctionExpression"||Z[0].type==="FunctionExpression")){let $=Z[0],Q=$.params[0],G=Q?.type==="Identifier"?Q.name:"item",z=m(H);z.locals.set(G,{kind:"any"});let D;if($.body.type==="BlockStatement")D=p($.body,z);else{let{step:F,resultVar:_}=K0($.body,z,"result");D=F?[F]:[{op:"varSet",key:"result",value:_}]}return{step:{op:"map",items:K,as:G,steps:D,...Y&&{result:Y},...Y&&J&&{resultConst:!0}},resultVar:Y}}break;case"filter":if(Z.length>0&&(Z[0].type==="ArrowFunctionExpression"||Z[0].type==="FunctionExpression")){let $=Z[0],Q=$.params[0],G=Q?.type==="Identifier"?Q.name:"item",z=m(H);z.locals.set(G,{kind:"any"});let D;if($.body.type==="BlockStatement")throw new T("filter callback must be an expression, not a block",k(Z[0]),H.source,H.filename);else D=N($.body,z);return{step:{op:"filter",items:K,as:G,condition:D,...Y&&{result:Y},...Y&&J&&{resultConst:!0}},resultVar:Y}}break;case"find":if(Z.length>0&&(Z[0].type==="ArrowFunctionExpression"||Z[0].type==="FunctionExpression")){let $=Z[0],Q=$.params[0],G=Q?.type==="Identifier"?Q.name:"item",z=m(H);z.locals.set(G,{kind:"any"});let D;if($.body.type==="BlockStatement")throw new T("find callback must be an expression, not a block",k(Z[0]),H.source,H.filename);else D=N($.body,z);return{step:{op:"find",items:K,as:G,condition:D,...Y&&{result:Y},...Y&&J&&{resultConst:!0}},resultVar:Y}}break;case"reduce":if(Z.length>=2&&(Z[0].type==="ArrowFunctionExpression"||Z[0].type==="FunctionExpression")){let $=Z[0],Q=$.params[0],G=$.params[1],z=Q?.type==="Identifier"?Q.name:"acc",D=G?.type==="Identifier"?G.name:"item",F=m(H);F.locals.set(z,{kind:"any"}),F.locals.set(D,{kind:"any"});let _;if($.body.type==="BlockStatement")_=p($.body,F);else{let{step:U,resultVar:A}=K0($.body,F,"result");_=U?[U]:[{op:"varSet",key:"result",value:A}]}let q=f(Z[1],H);return{step:{op:"reduce",items:K,as:D,accumulator:z,initial:q,steps:_,...Y&&{result:Y},...Y&&J&&{resultConst:!0}},resultVar:Y}}break;case"slice":break;case"push":return{step:{op:"push",list:K,item:f(Z[0],H),...Y&&{result:Y},...Y&&J&&{resultConst:!0}},resultVar:Y};case"join":return{step:{op:"join",list:K,sep:Z.length>0?f(Z[0],H):"",...Y&&{result:Y},...Y&&J&&{resultConst:!0}},resultVar:Y};case"split":return{step:{op:"split",str:K,sep:Z.length>0?f(Z[0],H):"",...Y&&{result:Y},...Y&&J&&{resultConst:!0}},resultVar:Y}}return H.warnings.push({message:`Unknown method '${X}' - treating as atom call`,line:0,column:0}),{step:{op:X,receiver:K,args:Z.map(($)=>f($,H)),...Y&&{result:Y},...Y&&J&&{resultConst:!0}},resultVar:Y}}function X8(X,K,Z,H){let Y="",J={};for(let $=0;$<X.quasis.length;$++)if(Y+=X.quasis[$].value.cooked||X.quasis[$].value.raw,$<X.expressions.length){let Q=X.expressions[$],G=`_${$}`;J[G]=f(Q,K),Y+=`{{${G}}}`}return{step:{op:"template",tmpl:Y,vars:J,...Z&&{result:Z},...Z&&H&&{resultConst:!0}},resultVar:Z}}function N(X,K){switch(X.type){case"Literal":return{$expr:"literal",value:X.value};case"Identifier":return{$expr:"ident",name:X.name};case"MemberExpression":{let Z=X,H=N(Z.object,K),Y=Z.optional===!0;if(Z.computed){let $=Z.property;if($.type==="Literal")return{$expr:"member",object:H,property:String($.value),computed:!0,...Y&&{optional:!0}};throw new T("Computed member access with variables not yet supported",k(X),K.source,K.filename)}let J=Z.property.name;return{$expr:"member",object:H,property:J,...Y&&{optional:!0}}}case"ChainExpression":return N(X.expression,K);case"BinaryExpression":{let Z=X;return{$expr:"binary",op:Z.operator,left:N(Z.left,K),right:N(Z.right,K)}}case"LogicalExpression":{let Z=X;return{$expr:"logical",op:Z.operator,left:N(Z.left,K),right:N(Z.right,K)}}case"UnaryExpression":{let Z=X;return{$expr:"unary",op:Z.operator,argument:N(Z.argument,K)}}case"ConditionalExpression":{let Z=X;return{$expr:"conditional",test:N(Z.test,K),consequent:N(Z.consequent,K),alternate:N(Z.alternate,K)}}case"ArrayExpression":return{$expr:"array",elements:X.elements.filter((H)=>H!==null).map((H)=>N(H,K))};case"ObjectExpression":{let Z=X,H=[];for(let Y of Z.properties)if(Y.type==="Property"){let J=Y.key.type==="Identifier"?Y.key.name:String(Y.key.value);H.push({key:J,value:N(Y.value,K)})}return{$expr:"object",properties:H}}case"CallExpression":{let Z=X;if(Z.callee.type==="MemberExpression"){let H=Z.callee,Y=H.property.type==="Identifier"?H.property.name:String(H.property.value),J=H.optional===!0||Z.optional===!0;return{$expr:"methodCall",object:N(H.object,K),method:Y,arguments:Z.arguments.map(($)=>N($,K)),...J&&{optional:!0}}}if(Z.callee.type==="Identifier")return{$expr:"call",callee:Z.callee.name,arguments:Z.arguments.map((Y)=>N(Y,K))};throw new T("Complex function calls in expressions should be lifted to statements",k(X),K.source,K.filename)}case"NewExpression":{let Z=X,H="constructor";if(Z.callee.type==="Identifier")H=Z.callee.name;let Y=v6(H);throw new T(`The 'new' keyword is not supported in AsyncJS.${Y}`,k(X),K.source,K.filename)}case"TemplateLiteral":throw new T("Template literals inside expressions are not supported. Assign to a variable first: const msg = `hello ${name}`; then use msg",k(X),K.source,K.filename);default:throw new T(`Unsupported expression type in condition: ${X.type}`,k(X),K.source,K.filename)}}function f(X,K){switch(X.type){case"Literal":return X.value;case"Identifier":return X.name;case"MemberExpression":{let Z=X;if(Z.optional===!0)return N(X,K);let Y=f(Z.object,K);if(Y&&typeof Y==="object"&&Y.$expr){let $=Z.computed?String(Z.property.value):Z.property.name;return{$expr:"member",object:Y,property:$,...Z.computed&&{computed:!0}}}if(Z.computed)return`${Y}[${f(Z.property,K)}]`;let J=Z.property.name;if(typeof Y==="string")return`${Y}.${J}`;if(Y&&Y.$kind==="arg")return{$kind:"arg",path:`${Y.path}.${J}`};return`${Y}.${J}`}case"ChainExpression":return f(X.expression,K);case"ArrayExpression":return X.elements.map((Z)=>Z?f(Z,K):null);case"ObjectExpression":{let Z={};for(let H of X.properties)if(H.type==="Property"){let Y=H.key.type==="Identifier"?H.key.name:String(H.key.value);Z[Y]=f(H.value,K)}return Z}case"TemplateLiteral":return N(X,K);case"CallExpression":return N(X,K);case"BinaryExpression":case"LogicalExpression":case"UnaryExpression":case"ConditionalExpression":return N(X,K);default:return null}}function Z8(X,K){if(X.arguments.length===1&&X.arguments[0].type==="ObjectExpression"){let Z=X.arguments[0],H={};for(let Y of Z.properties)if(Y.type==="Property"){let J=Y.key.type==="Identifier"?Y.key.name:String(Y.key.value);H[J]=f(Y.value,K)}return H}return{args:X.arguments.map((Z)=>f(Z,K))}}import{parseExpressionAt as j8}from"acorn";function K8(X,K){let Z=K;while(Z>0&&X[Z-1]!==`
14
14
  `)Z--;if(X.slice(Z,K).includes("//"))return!0;let Y=0,J=!1;while(Y<K)if(!J&&X.slice(Y,Y+2)==="/*")J=!0,Y+=2;else if(J&&X.slice(Y,Y+2)==="*/")J=!1,Y+=2;else Y++;return J}function H8(X){let K=[],Z=/\/\*test\s+(['"`])([^'"`]*)\1\s*\{([\s\S]*?)\}\s*\*\/|\/\*test\s*\{([\s\S]*?)\}\s*\*\//g,H;while((H=Z.exec(X))!==null){let Y=H[2]||`embedded test ${K.length+1}`,J=(H[3]||H[4]||"").trim();K.push({description:Y,body:J,line:o0(X,H.index)})}return K}function s0(X){let K=[],Z=[],H=H8(X);K.push(...H);let Y=/test\s+(['"`])([^'"`]*)\1\s*\{|test\s*\(\s*(['"`])([^'"`]*)\3\s*\)\s*\{|test\s*\{/g,J=/mock\s*\{/g,$=X,Q,G=[];while((Q=Y.exec(X))!==null){let _=Q.index;if(K8(X,_))continue;let q=Q[2]||Q[4]||`test ${K.length+1}`,U=Q.index+Q[0].length,A=b6(X,U-1);if(A===-1)continue;let I=X.slice(U,A).trim();K.push({description:q,body:I,line:o0(X,_)}),G.push({start:_,end:A+1,desc:q})}let z=[];while((Q=J.exec(X))!==null){let _=Q.index,q=Q.index+Q[0].length,U=b6(X,q-1);if(U===-1)continue;let A=X.slice(q,U).trim();Z.push({body:A,line:o0(X,_)}),z.push({start:_,end:U+1})}let D=[...G,...z].sort((_,q)=>q.start-_.start);for(let _ of D)$=$.slice(0,_.start)+$.slice(_.end);$=$.replace(/\n\s*\n\s*\n/g,`
15
15
 
16
16
  `).trim();let F=Y8(K,Z);return{code:$,tests:K,mocks:Z,testRunner:F}}function b6(X,K){let Z=0,H=null,Y=!1;for(let J=K;J<X.length;J++){let $=X[J];if(Y){Y=!1;continue}if($==="\\"){Y=!0;continue}if(!H&&($==='"'||$==="'"||$==="`")){H=$;continue}if(H===$){H=null;continue}if(H)continue;if($==="{")Z++;if($==="}"){if(Z--,Z===0)return J}}return-1}function o0(X,K){return X.slice(0,K).split(`
@@ -136,20 +136,20 @@ function expect(actual) {
136
136
  }
137
137
  `,$8=f6+`
138
138
  `+y6;import*as h6 from"acorn";var l={i32:127,i64:126,f32:125,f64:124,v128:123,funcref:112,externref:111,void:64},w0={custom:0,type:1,import:2,function:3,table:4,memory:5,global:6,export:7,start:8,element:9,code:10,data:11},W={unreachable:0,nop:1,block:2,loop:3,if:4,else:5,end:11,br:12,br_if:13,br_table:14,return:15,call:16,call_indirect:17,drop:26,select:27,local_get:32,local_set:33,local_tee:34,global_get:35,global_set:36,i32_load:40,i64_load:41,f32_load:42,f64_load:43,i32_load8_s:44,i32_load8_u:45,i32_load16_s:46,i32_load16_u:47,i32_store:54,i64_store:55,f32_store:56,f64_store:57,i32_store8:58,i32_store16:59,memory_size:63,memory_grow:64,i32_const:65,i64_const:66,f32_const:67,f64_const:68,i32_eqz:69,i32_eq:70,i32_ne:71,i32_lt_s:72,i32_lt_u:73,i32_gt_s:74,i32_gt_u:75,i32_le_s:76,i32_le_u:77,i32_ge_s:78,i32_ge_u:79,i64_eqz:80,i64_eq:81,i64_ne:82,i64_lt_s:83,i64_lt_u:84,i64_gt_s:85,i64_gt_u:86,i64_le_s:87,i64_le_u:88,i64_ge_s:89,i64_ge_u:90,f32_eq:91,f32_ne:92,f32_lt:93,f32_gt:94,f32_le:95,f32_ge:96,f64_eq:97,f64_ne:98,f64_lt:99,f64_gt:100,f64_le:101,f64_ge:102,i32_clz:103,i32_ctz:104,i32_popcnt:105,i32_add:106,i32_sub:107,i32_mul:108,i32_div_s:109,i32_div_u:110,i32_rem_s:111,i32_rem_u:112,i32_and:113,i32_or:114,i32_xor:115,i32_shl:116,i32_shr_s:117,i32_shr_u:118,i32_rotl:119,i32_rotr:120,i64_add:124,i64_sub:125,i64_mul:126,i64_div_s:127,f32_abs:139,f32_neg:140,f32_ceil:141,f32_floor:142,f32_trunc:143,f32_nearest:144,f32_sqrt:145,f32_add:146,f32_sub:147,f32_mul:148,f32_div:149,f32_min:150,f32_max:151,f32_copysign:152,f64_abs:153,f64_neg:154,f64_ceil:155,f64_floor:156,f64_trunc:157,f64_nearest:158,f64_sqrt:159,f64_add:160,f64_sub:161,f64_mul:162,f64_div:163,f64_min:164,f64_max:165,f64_copysign:166,i32_wrap_i64:167,i32_trunc_f32_s:168,i32_trunc_f32_u:169,i32_trunc_f64_s:170,i32_trunc_f64_u:171,i64_extend_i32_s:172,i64_extend_i32_u:173,f32_convert_i32_s:178,f32_convert_i32_u:179,f32_convert_i64_s:180,f32_demote_f64:182,f64_convert_i32_s:183,f64_convert_i32_u:184,f64_convert_i64_s:185,f64_promote_f32:187,i32_reinterpret_f32:188,f32_reinterpret_i32:190,f64_reinterpret_i64:191,i32_extend8_s:192,i32_extend16_s:193},J8=Object.fromEntries(Object.entries(W).map(([X,K])=>[K,X.replace(/_/g,".")]));function C(X){let K=[];do{let Z=X&127;if(X>>>=7,X!==0)Z|=128;K.push(Z)}while(X!==0);return K}function B0(X){let K=[],Z=!0;while(Z){let H=X&127;if(X>>=7,X===0&&(H&64)===0||X===-1&&(H&64)!==0)Z=!1;else H|=128;K.push(H)}return K}function Q8(X){let K=new ArrayBuffer(4);return new Float32Array(K)[0]=X,[...new Uint8Array(K)]}function u(X){let K=new ArrayBuffer(8);return new Float64Array(K)[0]=X,[...new Uint8Array(K)]}function a0(X){let K=new TextEncoder().encode(X);return[...C(K.length),...K]}function R0(X,K){return[X,...C(K.length),...K]}function I0(X,K){let Z=0,H=0,Y=K;while(Y<X.length){let J=X[Y];if(Z|=(J&127)<<H,Y++,(J&128)===0)break;H+=7}return[Z,Y-K]}function z8(X,K){let Z=new ArrayBuffer(8),H=new Uint8Array(Z);for(let Y=0;Y<8;Y++)H[Y]=X[K+Y];return new Float64Array(Z)[0]}function G8(X,K,Z){let H=[],Y=1,J=()=>" ".repeat(Y),$=K.map((z,D)=>`(param $${z.name} ${z.type})`).join(" "),Q=Z.map((z,D)=>`(local $L${K.length+D} ${z})`).join(" ");if(H.push(`(func (export "compute") ${$} (result f64)`),Q)H.push(` ${Q}`);let G=0;while(G<X.length){let z=X[G],D=J8[z]||`unknown(0x${z.toString(16)})`;if(G++,z===W.local_get||z===W.local_set||z===W.local_tee){let[F,_]=I0(X,G);G+=_;let q=F<K.length?`$${K[F].name}`:`$L${F}`;H.push(`${J()}${D} ${q}`)}else if(z===W.br||z===W.br_if){let[F,_]=I0(X,G);G+=_,H.push(`${J()}${D} ${F}`)}else if(z===W.i32_const){let[F,_]=I0(X,G);G+=_,H.push(`${J()}i32.const ${F}`)}else if(z===W.f64_const){let F=z8(X,G);G+=8,H.push(`${J()}f64.const ${F}`)}else if(z===W.block||z===W.loop){let F=X[G];G++,H.push(`${J()}${D}${F===l.void?"":` (result ${F===l.f64?"f64":"i32"})`}`),Y++}else if(z===W.if){let F=X[G];G++,H.push(`${J()}if${F===l.void?"":` (result ${F===l.f64?"f64":"i32"})`}`),Y++}else if(z===W.else)Y--,H.push(`${J()}else`),Y++;else if(z===W.end)Y=Math.max(1,Y-1),H.push(`${J()}end`);else if(z===W.f64_load||z===W.f64_store||z===W.f32_load||z===W.f32_store||z===W.i32_load||z===W.i32_store){let[F,_]=I0(X,G);G+=_;let[q,U]=I0(X,G);G+=U,H.push(`${J()}${D}${q?` offset=${q}`:""}`)}else H.push(`${J()}${D}`)}return H.push(")"),H.join(`
139
- `)}var g0={Int8Array:{elementType:"i32",bytesPerElement:1,loadOp:W.i32_load8_s,storeOp:W.i32_store8},Uint8Array:{elementType:"i32",bytesPerElement:1,loadOp:W.i32_load8_u,storeOp:W.i32_store8},Uint8ClampedArray:{elementType:"i32",bytesPerElement:1,loadOp:W.i32_load8_u,storeOp:W.i32_store8},Int16Array:{elementType:"i32",bytesPerElement:2,loadOp:W.i32_load16_s,storeOp:W.i32_store16},Uint16Array:{elementType:"i32",bytesPerElement:2,loadOp:W.i32_load16_u,storeOp:W.i32_store16},Int32Array:{elementType:"i32",bytesPerElement:4,loadOp:W.i32_load,storeOp:W.i32_store},Uint32Array:{elementType:"i32",bytesPerElement:4,loadOp:W.i32_load,storeOp:W.i32_store},Float32Array:{elementType:"f32",bytesPerElement:4,loadOp:W.f32_load,storeOp:W.f32_store},Float64Array:{elementType:"f64",bytesPerElement:8,loadOp:W.f64_load,storeOp:W.f64_store}};function W8(X){let K={params:X,locals:new Map,nextLocalIndex:X.length,localTypes:[],warnings:[],errors:[],loopDepth:0,needsMathImports:new Set,needsMemory:!1,hasReturn:!1,wat:[],watIndent:1};return X.forEach((Z,H)=>{K.locals.set(Z.name,{index:H,type:Z.type})}),K}function k0(X,K,Z){if(X.locals.has(K))return X.errors.push(`Duplicate local declaration: ${K}`),X.locals.get(K).index;let H=X.nextLocalIndex++;return X.locals.set(K,{index:H,type:Z}),X.localTypes.push(Z),H}function H0(X,K){return X.locals.get(K)}function W0(X,K){switch(X.type){case"ExpressionStatement":{let Z=X.expression;return[...b(Z,K),W.drop]}case"ReturnStatement":{let Z=X;if(K.hasReturn=!0,!Z.argument)return[W.return];let H=b(Z.argument,K),Y=y(Z.argument,K);if(Y==="i32")H.push(W.f64_convert_i32_s);else if(Y==="f32")H.push(W.f64_promote_f32);return H.push(W.return),H}case"VariableDeclaration":{let Z=X,H=[];for(let Y of Z.declarations){if(Y.id.type!=="Identifier"){K.errors.push("Destructuring not supported in WASM blocks");continue}let J=Y.id.name,$="f64";if(Y.init)$=y(Y.init,K);let Q=k0(K,J,$);if(Y.init)H.push(...b(Y.init,K)),H.push(W.local_set,...C(Q))}return H}case"ForStatement":return _8(X,K);case"IfStatement":return D8(X,K);case"BlockStatement":{let Z=X,H=[];for(let Y of Z.body)H.push(...W0(Y,K));return H}default:return K.errors.push(`Unsupported statement type: ${X.type}`),[]}}function _8(X,K){let Z=[];if(X.init)if(X.init.type==="VariableDeclaration")Z.push(...W0(X.init,K));else Z.push(...b(X.init,K));if(Z.push(W.block,l.void),Z.push(W.loop,l.void),X.test)Z.push(...b(X.test,K)),Z.push(W.i32_eqz),Z.push(W.br_if,1);if(K.loopDepth++,X.body)Z.push(...W0(X.body,K));if(K.loopDepth--,X.update)Z.push(...b(X.update,K)),Z.push(W.drop);return Z.push(W.br,0),Z.push(W.end),Z.push(W.end),Z}function D8(X,K){let Z=[];if(Z.push(...b(X.test,K)),Z.push(W.if,l.void),Z.push(...W0(X.consequent,K)),X.alternate)Z.push(W.else),Z.push(...W0(X.alternate,K));return Z.push(W.end),Z}function y(X,K){switch(X.type){case"Literal":{let Z=X;if(typeof Z.value==="number"){if(Z.raw&&(Z.raw.includes(".")||Z.raw.includes("e")))return"f64";if(Number.isInteger(Z.value)&&Z.value>=-2147483648&&Z.value<=2147483647)return"i32";return"f64"}return"f64"}case"Identifier":return H0(K,X.name)?.type??"f64";case"BinaryExpression":case"AssignmentExpression":{let Z=X;if(["<",">","<=",">=","==","!=","===","!=="].includes(Z.operator))return"i32";if(["|","&","^","<<",">>",">>>"].includes(Z.operator))return"i32";let H=y(Z.left,K),Y=y(Z.right,K);if(H==="f64"||Y==="f64")return"f64";if(H==="f32"||Y==="f32")return"f32";return"i32"}case"UnaryExpression":{let Z=X;if(Z.operator==="!")return"i32";return y(Z.argument,K)}case"MemberExpression":{let Z=X;if(Z.object.type==="Identifier"){if(H0(K,Z.object.name)){let Y=K.params.find((J)=>J.name===Z.object.name);if(Y?.arrayType){let J=g0[Y.arrayType];if(J)return J.elementType}}}return"f64"}case"CallExpression":{let Z=X;if(Z.callee.type==="MemberExpression"){let H=Z.callee;if(H.object.type==="Identifier"&&H.object.name==="Math")return"f64"}return"f64"}default:return"f64"}}function b(X,K){switch(X.type){case"Literal":{let Z=X;if(typeof Z.value==="number"){let H=y(X,K);if(H==="i32")return[W.i32_const,...B0(Z.value|0)];else if(H==="f32")return[W.f32_const,...Q8(Z.value)];else return[W.f64_const,...u(Z.value)]}return K.errors.push(`Unsupported literal type: ${typeof Z.value}`),[W.f64_const,...u(0)]}case"Identifier":{let Z=X.name,H=H0(K,Z);if(H)return[W.local_get,...C(H.index)];return K.errors.push(`Unknown identifier: ${Z}`),[W.f64_const,...u(0)]}case"BinaryExpression":return F8(X,K);case"UnaryExpression":return q8(X,K);case"AssignmentExpression":return U8(X,K);case"UpdateExpression":return A8(X,K);case"MemberExpression":return w8(X,K);case"CallExpression":return I8(X,K);case"SequenceExpression":{let Z=X,H=[];for(let Y=0;Y<Z.expressions.length;Y++)if(H.push(...b(Z.expressions[Y],K)),Y<Z.expressions.length-1)H.push(W.drop);return H}default:return K.errors.push(`Unsupported expression type: ${X.type}`),[W.f64_const,...u(0)]}}function F8(X,K){let Z=b(X.left,K),H=b(X.right,K),Y=y(X,K),J=y(X.left,K),$=y(X.right,K),Q=["<",">","<=",">=","==","===","!=","!=="].includes(X.operator),G;if(J==="f64"||$==="f64")G="f64";else if(J==="f32"||$==="f32")G="f32";else G="i32";if(!Q&&Y==="f64")G="f64";let z=Z,D=H;if(G==="f64"){if(J==="i32")z=[...Z,W.f64_convert_i32_s];else if(J==="f32")z=[...Z,W.f64_promote_f32];if($==="i32")D=[...H,W.f64_convert_i32_s];else if($==="f32")D=[...H,W.f64_promote_f32]}else if(G==="f32"){if(J==="i32")z=[...Z,W.f32_convert_i32_s];if($==="i32")D=[...H,W.f32_convert_i32_s]}let _={"+":{i32:W.i32_add,f32:W.f32_add,f64:W.f64_add},"-":{i32:W.i32_sub,f32:W.f32_sub,f64:W.f64_sub},"*":{i32:W.i32_mul,f32:W.f32_mul,f64:W.f64_mul},"/":{i32:W.i32_div_s,f32:W.f32_div,f64:W.f64_div},"%":{i32:W.i32_rem_s},"<":{i32:W.i32_lt_s,f32:W.f32_lt,f64:W.f64_lt},">":{i32:W.i32_gt_s,f32:W.f32_gt,f64:W.f64_gt},"<=":{i32:W.i32_le_s,f32:W.f32_le,f64:W.f64_le},">=":{i32:W.i32_ge_s,f32:W.f32_ge,f64:W.f64_ge},"==":{i32:W.i32_eq,f32:W.f32_eq,f64:W.f64_eq},"===":{i32:W.i32_eq,f32:W.f32_eq,f64:W.f64_eq},"!=":{i32:W.i32_ne,f32:W.f32_ne,f64:W.f64_ne},"!==":{i32:W.i32_ne,f32:W.f32_ne,f64:W.f64_ne},"|":{i32:W.i32_or},"&":{i32:W.i32_and},"^":{i32:W.i32_xor},"<<":{i32:W.i32_shl},">>":{i32:W.i32_shr_s},">>>":{i32:W.i32_shr_u}}[X.operator];if(!_)return K.errors.push(`Unsupported operator: ${X.operator}`),[W.f64_const,...u(0)];let q=_[G]??_.f64??_.i32;if(q===void 0)return K.errors.push(`Operator ${X.operator} not supported for type ${G}`),[W.f64_const,...u(0)];return[...z,...D,q]}function q8(X,K){let Z=b(X.argument,K),H=y(X.argument,K);switch(X.operator){case"-":if(H==="i32")return[W.i32_const,0,...Z,W.i32_sub];else if(H==="f32")return[...Z,W.f32_neg];else return[...Z,W.f64_neg];case"!":return[...Z,W.i32_eqz];case"~":return[...Z,W.i32_const,...B0(-1),W.i32_xor];default:return K.errors.push(`Unsupported unary operator: ${X.operator}`),Z}}function U8(X,K){if(X.left.type==="MemberExpression")return R8(X.left,X.right,X.operator,K);if(X.left.type!=="Identifier")return K.errors.push("Assignment target must be identifier or array element"),[];let Z=X.left.name,H=H0(K,Z);if(!H)return K.errors.push(`Unknown variable: ${Z}`),[];let Y=[];if(X.operator==="="){Y.push(...b(X.right,K));let J=y(X.right,K);if(H.type==="f64"&&J==="i32")Y.push(W.f64_convert_i32_s);else if(H.type==="f64"&&J==="f32")Y.push(W.f64_promote_f32);else if(H.type==="i32"&&J==="f64")Y.push(W.i32_trunc_f64_s);else if(H.type==="i32"&&J==="f32")Y.push(W.i32_trunc_f32_s);else if(H.type==="f32"&&J==="i32")Y.push(W.f32_convert_i32_s);else if(H.type==="f32"&&J==="f64")Y.push(W.f32_demote_f64)}else{let J=y(X.right,K),$=H.type;if(J==="f64"||H.type==="f64")$="f64";else if(J==="f32"||H.type==="f32")$="f32";if(Y.push(W.local_get,...C(H.index)),$==="f64"&&H.type==="i32")Y.push(W.f64_convert_i32_s);else if($==="f64"&&H.type==="f32")Y.push(W.f64_promote_f32);else if($==="f32"&&H.type==="i32")Y.push(W.f32_convert_i32_s);if(Y.push(...b(X.right,K)),$==="f64"&&J==="i32")Y.push(W.f64_convert_i32_s);else if($==="f64"&&J==="f32")Y.push(W.f64_promote_f32);else if($==="f32"&&J==="i32")Y.push(W.f32_convert_i32_s);let Q=X.operator.slice(0,-1),z={"+":{i32:W.i32_add,f32:W.f32_add,f64:W.f64_add},"-":{i32:W.i32_sub,f32:W.f32_sub,f64:W.f64_sub},"*":{i32:W.i32_mul,f32:W.f32_mul,f64:W.f64_mul},"/":{i32:W.i32_div_s,f32:W.f32_div,f64:W.f64_div}}[Q]?.[$];if(!z)return K.errors.push(`Unsupported compound assignment: ${X.operator}`),[];if(Y.push(z),H.type==="i32"&&$==="f64")Y.push(W.i32_trunc_f64_s);else if(H.type==="i32"&&$==="f32")Y.push(W.i32_trunc_f32_s);else if(H.type==="f32"&&$==="f64")Y.push(W.f32_demote_f64)}return Y.push(W.local_tee,...C(H.index)),Y}function A8(X,K){if(X.argument.type!=="Identifier")return K.errors.push("Update expression argument must be identifier"),[];let Z=X.argument.name,H=H0(K,Z);if(!H)return K.errors.push(`Unknown variable: ${Z}`),[];let Y=[],J=H.type==="i32";if(X.prefix){if(Y.push(W.local_get,...C(H.index)),J)Y.push(W.i32_const,1),Y.push(X.operator==="++"?W.i32_add:W.i32_sub);else Y.push(W.f64_const,...u(1)),Y.push(X.operator==="++"?W.f64_add:W.f64_sub);Y.push(W.local_tee,...C(H.index))}else{if(Y.push(W.local_get,...C(H.index)),Y.push(W.local_get,...C(H.index)),J)Y.push(W.i32_const,1),Y.push(X.operator==="++"?W.i32_add:W.i32_sub);else Y.push(W.f64_const,...u(1)),Y.push(X.operator==="++"?W.f64_add:W.f64_sub);Y.push(W.local_set,...C(H.index))}return Y}function w8(X,K){if(X.object.type!=="Identifier")return K.errors.push("Array access requires identifier"),[];let Z=X.object.name,H=K.params.find((z)=>z.name===Z);if(!H?.isArray||!H.arrayType)return K.errors.push(`${Z} is not a typed array parameter`),[];let Y=g0[H.arrayType];if(!Y)return K.errors.push(`Unknown array type: ${H.arrayType}`),[];K.needsMemory=!0;let J=[],$=H0(K,Z);if(!$)return K.errors.push(`Unknown array: ${Z}`),[];if(J.push(W.local_get,...C($.index)),!X.computed||!X.property)return K.errors.push("Array access requires computed index"),[];let Q=b(X.property,K),G=y(X.property,K);if(J.push(...Q),G==="f64")J.push(W.i32_trunc_f64_s);if(Y.bytesPerElement>1)J.push(W.i32_const,...B0(Y.bytesPerElement)),J.push(W.i32_mul);return J.push(W.i32_add),J.push(Y.loadOp,0,0),J}function R8(X,K,Z,H){if(X.object.type!=="Identifier")return H.errors.push("Array store requires identifier"),[];let Y=X.object.name,J=H.params.find((U)=>U.name===Y);if(!J?.isArray||!J.arrayType)return H.errors.push(`${Y} is not a typed array parameter`),[];let $=g0[J.arrayType];if(!$)return H.errors.push(`Unknown array type: ${J.arrayType}`),[];H.needsMemory=!0;let Q=[],G=H0(H,Y);if(!G)return[];if(!X.computed||!X.property)return H.errors.push("Array store requires computed index"),[];let z=b(X.property,H),D=y(X.property,H),F=()=>{let U=[];if(U.push(W.local_get,...C(G.index)),U.push(...z),D==="f64")U.push(W.i32_trunc_f64_s);if($.bytesPerElement>1)U.push(W.i32_const,...B0($.bytesPerElement)),U.push(W.i32_mul);return U.push(W.i32_add),U};if(Z==="=")Q.push(...b(K,H));else{let U=k0(H,`__addr_${H.nextLocalIndex}`,"i32");Q.push(...F()),Q.push(W.local_tee,...C(U)),Q.push($.loadOp,0,0),Q.push(...b(K,H));let A=y(K,H);if($.elementType==="f32"&&A==="f64")Q.push(W.f32_demote_f64);else if($.elementType==="f64"&&A==="f32")Q.push(W.f64_promote_f32);else if($.elementType==="f32"&&A==="i32")Q.push(W.f32_convert_i32_s);else if($.elementType==="f64"&&A==="i32")Q.push(W.f64_convert_i32_s);else if($.elementType==="i32"&&A==="f64")Q.push(W.i32_trunc_f64_s);else if($.elementType==="i32"&&A==="f32")Q.push(W.i32_trunc_f32_s);let I=Z.slice(0,-1),w={"+":$.elementType==="i32"?W.i32_add:$.elementType==="f32"?W.f32_add:W.f64_add,"-":$.elementType==="i32"?W.i32_sub:$.elementType==="f32"?W.f32_sub:W.f64_sub,"*":$.elementType==="i32"?W.i32_mul:$.elementType==="f32"?W.f32_mul:W.f64_mul};Q.push(w[I]??W.f64_add);let B=k0(H,`__val_${H.nextLocalIndex}`,$.elementType);return Q.push(W.local_set,...C(B)),Q.push(W.local_get,...C(U)),Q.push(W.local_get,...C(B)),Q.push($.storeOp,0,0),Q.push(W.local_get,...C(B)),Q}let _=y(K,H);if($.elementType==="f32"&&_==="f64")Q.push(W.f32_demote_f64);else if($.elementType==="f64"&&_==="f32")Q.push(W.f64_promote_f32);else if($.elementType==="i32"&&_==="f64")Q.push(W.i32_trunc_f64_s);let q=k0(H,`__tmp_${H.nextLocalIndex}`,$.elementType);if(Q.push(W.local_set,...C(q)),Q.push(W.local_get,...C(G.index)),Q.push(...z),D==="f64")Q.push(W.i32_trunc_f64_s);if($.bytesPerElement>1)Q.push(W.i32_const,...B0($.bytesPerElement)),Q.push(W.i32_mul);return Q.push(W.i32_add),Q.push(W.local_get,...C(q)),Q.push($.storeOp,0,0),Q.push(W.local_get,...C(q)),Q}function I8(X,K){if(X.callee.type==="MemberExpression"){let Z=X.callee;if(Z.object.type==="Identifier"&&Z.object.name==="Math"&&Z.property.type==="Identifier"){let H=Z.property.name;return B8(H,X.arguments,K)}}return K.errors.push(`Unsupported function call: ${X.callee.type}`),[W.f64_const,...u(0)]}function B8(X,K,Z){let H=[];for(let Q of K){H.push(...b(Q,Z));let G=y(Q,Z);if(G==="i32")H.push(W.f64_convert_i32_s);else if(G==="f32")H.push(W.f64_promote_f32)}let J={abs:W.f64_abs,ceil:W.f64_ceil,floor:W.f64_floor,trunc:W.f64_trunc,sqrt:W.f64_sqrt,min:W.f64_min,max:W.f64_max}[X];if(J!==void 0)return H.push(J),H;if(["sin","cos","tan","asin","acos","atan","atan2","exp","log","pow"].includes(X))return Z.needsMathImports.add(X),Z.errors.push(`Math.${X} requires JS import (not yet implemented)`),[W.f64_const,...u(0)];return Z.errors.push(`Unknown Math method: ${X}`),[W.f64_const,...u(0)]}function L8(X){let K=X.split(":").map((J)=>J.trim()),Z=K[0];if(K.length===1)return{name:Z,type:"f64"};let H=K[1];if(g0[H])return{name:Z,type:"i32",isArray:!0,arrayType:H};return{name:Z,type:{i32:"i32",i64:"i64",f32:"f32",f64:"f64",number:"f64",int:"i32"}[H]??"f64"}}function M8(X,K,Z,H,Y){let J=[0,97,115,109,1,0,0,0],$=X.map((B)=>l[B.type]),Q=Y?[1,l.f64]:[0],G=R0(w0.type,[1,96,...C(X.length),...$,...Q]),z=[],D=[];if(H)D=R0(w0.import,[1,...a0("env"),...a0("memory"),2,0,1]);let F=R0(w0.function,[1,0]),_=R0(w0.export,[1,...a0("compute"),0,0]),q=[];if(Z.length>0){let B=Z[0],P=1;for(let L=1;L<Z.length;L++)if(Z[L]===B)P++;else q.push([...C(P),l[B]]),B=Z[L],P=1;q.push([...C(P),l[B]])}let A=[...[...C(q.length),...q.flat()],...K,W.end],I=R0(w0.code,[1,...C(A.length),...A]),w=[...J,...G];if(D.length>0)w.push(...D);return w.push(...F,..._,...I),w}function x6(X){try{let K=X.captures.map(L8),Z;try{let z=`function __wasm__(${K.map((D)=>D.name).join(", ")}) { ${X.body} }`;Z=h6.parse(z,{ecmaVersion:2022})}catch(z){return{bytes:new Uint8Array,warnings:[],success:!1,error:`Parse error: ${z.message}`}}let Y=Z.body[0].body.body,J=W8(K),$=[];for(let z of Y)$.push(...W0(z,J));if(J.errors.length>0)return{bytes:new Uint8Array,warnings:J.warnings,success:!1,error:J.errors.join("; ")};let Q=M8(K,$,J.localTypes,J.needsMemory,J.hasReturn),G=G8($,K,J.localTypes);return{bytes:new Uint8Array(Q),warnings:J.warnings,success:!0,needsMemory:J.needsMemory,wat:G}}catch(K){return{bytes:new Uint8Array,warnings:[],success:!1,error:K.message}}}function j8(X,K,Z,H){let Y=[],J=q0(K,X),$={},Q=!1,G,z;if(X.params.length===1&&(X.params[0].type==="ObjectPattern"||X.params[0].type==="AssignmentPattern"&&X.params[0].left.type==="ObjectPattern")){Q=!0;let _=X.params[0],q=_.type==="ObjectPattern"?_:_.left,U=e(q,Z);if(U.type.kind==="object"&&U.type.destructuredParams){G={},z=new Set;for(let[A,I]of Object.entries(U.type.destructuredParams))if($[A]={...I,description:J.params[A]},G[A]=I.type,I.required)z.add(A)}}else for(let _ of X.params)if(_.type==="Identifier"){let q=e(_,Z);$[_.name]={...q,required:Z.has(_.name),description:J.params[_.name]}}else if(_.type==="AssignmentPattern"&&_.left.type==="Identifier"){let q=e(_,Z);$[_.left.name]={...q,required:Z.has(_.left.name),description:J.params[_.left.name]}}else if(_.type==="ObjectPattern"){let q=e(_,Z);if(q.type.kind==="object"&&q.type.destructuredParams)for(let[U,A]of Object.entries(q.type.destructuredParams))$[U]={...A,description:J.params[U]}}let D;if(H)try{let _=P8(H,0,{ecmaVersion:2022});D=d(_)}catch{D={kind:"any"},Y.push(`Could not parse return type: ${H}`)}return{types:{name:X.id?.name||"anonymous",params:$,returns:D,description:J.description,isDestructuredParam:Q,destructuredShape:G,destructuredRequired:z},warnings:Y}}function V8(X,K,Z){let H=[],Y=Z?`${Z}:`:"",J=Z?`${Z}:${X}`:X;if(H.push(`__tjs.pushStack('${J}');`),K.isDestructuredParam&&K.destructuredShape){let Q=K.destructuredShape,G=K.destructuredRequired||new Set,z=Object.keys(Q);if(z.length===0)return null;for(let D of z)H.push(`if (${D} instanceof Error) return ${D};`);for(let[D,F]of Object.entries(Q)){let _=G.has(D),q=`${Y}${X}.${D}`,U=m6(D,F);if(U){let A=F.kind;if(_)H.push(`if (${U}) return __tjs.typeError('${q}', '${A}', ${D});`);else H.push(`if (${D} !== undefined && ${U}) return __tjs.typeError('${q}', '${A}', ${D});`)}}return H.length>0?H.join(`
139
+ `)}var g0={Int8Array:{elementType:"i32",bytesPerElement:1,loadOp:W.i32_load8_s,storeOp:W.i32_store8},Uint8Array:{elementType:"i32",bytesPerElement:1,loadOp:W.i32_load8_u,storeOp:W.i32_store8},Uint8ClampedArray:{elementType:"i32",bytesPerElement:1,loadOp:W.i32_load8_u,storeOp:W.i32_store8},Int16Array:{elementType:"i32",bytesPerElement:2,loadOp:W.i32_load16_s,storeOp:W.i32_store16},Uint16Array:{elementType:"i32",bytesPerElement:2,loadOp:W.i32_load16_u,storeOp:W.i32_store16},Int32Array:{elementType:"i32",bytesPerElement:4,loadOp:W.i32_load,storeOp:W.i32_store},Uint32Array:{elementType:"i32",bytesPerElement:4,loadOp:W.i32_load,storeOp:W.i32_store},Float32Array:{elementType:"f32",bytesPerElement:4,loadOp:W.f32_load,storeOp:W.f32_store},Float64Array:{elementType:"f64",bytesPerElement:8,loadOp:W.f64_load,storeOp:W.f64_store}};function W8(X){let K={params:X,locals:new Map,nextLocalIndex:X.length,localTypes:[],warnings:[],errors:[],loopDepth:0,needsMathImports:new Set,needsMemory:!1,hasReturn:!1,wat:[],watIndent:1};return X.forEach((Z,H)=>{K.locals.set(Z.name,{index:H,type:Z.type})}),K}function k0(X,K,Z){if(X.locals.has(K))return X.errors.push(`Duplicate local declaration: ${K}`),X.locals.get(K).index;let H=X.nextLocalIndex++;return X.locals.set(K,{index:H,type:Z}),X.localTypes.push(Z),H}function H0(X,K){return X.locals.get(K)}function W0(X,K){switch(X.type){case"ExpressionStatement":{let Z=X.expression;return[...b(Z,K),W.drop]}case"ReturnStatement":{let Z=X;if(K.hasReturn=!0,!Z.argument)return[W.return];let H=b(Z.argument,K),Y=y(Z.argument,K);if(Y==="i32")H.push(W.f64_convert_i32_s);else if(Y==="f32")H.push(W.f64_promote_f32);return H.push(W.return),H}case"VariableDeclaration":{let Z=X,H=[];for(let Y of Z.declarations){if(Y.id.type!=="Identifier"){K.errors.push("Destructuring not supported in WASM blocks");continue}let J=Y.id.name,$="f64";if(Y.init)$=y(Y.init,K);let Q=k0(K,J,$);if(Y.init)H.push(...b(Y.init,K)),H.push(W.local_set,...C(Q))}return H}case"ForStatement":return _8(X,K);case"IfStatement":return D8(X,K);case"BlockStatement":{let Z=X,H=[];for(let Y of Z.body)H.push(...W0(Y,K));return H}default:return K.errors.push(`Unsupported statement type: ${X.type}`),[]}}function _8(X,K){let Z=[];if(X.init)if(X.init.type==="VariableDeclaration")Z.push(...W0(X.init,K));else Z.push(...b(X.init,K));if(Z.push(W.block,l.void),Z.push(W.loop,l.void),X.test)Z.push(...b(X.test,K)),Z.push(W.i32_eqz),Z.push(W.br_if,1);if(K.loopDepth++,X.body)Z.push(...W0(X.body,K));if(K.loopDepth--,X.update)Z.push(...b(X.update,K)),Z.push(W.drop);return Z.push(W.br,0),Z.push(W.end),Z.push(W.end),Z}function D8(X,K){let Z=[];if(Z.push(...b(X.test,K)),Z.push(W.if,l.void),Z.push(...W0(X.consequent,K)),X.alternate)Z.push(W.else),Z.push(...W0(X.alternate,K));return Z.push(W.end),Z}function y(X,K){switch(X.type){case"Literal":{let Z=X;if(typeof Z.value==="number"){if(Z.raw&&(Z.raw.includes(".")||Z.raw.includes("e")))return"f64";if(Number.isInteger(Z.value)&&Z.value>=-2147483648&&Z.value<=2147483647)return"i32";return"f64"}return"f64"}case"Identifier":return H0(K,X.name)?.type??"f64";case"BinaryExpression":case"AssignmentExpression":{let Z=X;if(["<",">","<=",">=","==","!=","===","!=="].includes(Z.operator))return"i32";if(["|","&","^","<<",">>",">>>"].includes(Z.operator))return"i32";let H=y(Z.left,K),Y=y(Z.right,K);if(H==="f64"||Y==="f64")return"f64";if(H==="f32"||Y==="f32")return"f32";return"i32"}case"UnaryExpression":{let Z=X;if(Z.operator==="!")return"i32";return y(Z.argument,K)}case"MemberExpression":{let Z=X;if(Z.object.type==="Identifier"){if(H0(K,Z.object.name)){let Y=K.params.find((J)=>J.name===Z.object.name);if(Y?.arrayType){let J=g0[Y.arrayType];if(J)return J.elementType}}}return"f64"}case"CallExpression":{let Z=X;if(Z.callee.type==="MemberExpression"){let H=Z.callee;if(H.object.type==="Identifier"&&H.object.name==="Math")return"f64"}return"f64"}default:return"f64"}}function b(X,K){switch(X.type){case"Literal":{let Z=X;if(typeof Z.value==="number"){let H=y(X,K);if(H==="i32")return[W.i32_const,...B0(Z.value|0)];else if(H==="f32")return[W.f32_const,...Q8(Z.value)];else return[W.f64_const,...u(Z.value)]}return K.errors.push(`Unsupported literal type: ${typeof Z.value}`),[W.f64_const,...u(0)]}case"Identifier":{let Z=X.name,H=H0(K,Z);if(H)return[W.local_get,...C(H.index)];return K.errors.push(`Unknown identifier: ${Z}`),[W.f64_const,...u(0)]}case"BinaryExpression":return F8(X,K);case"UnaryExpression":return q8(X,K);case"AssignmentExpression":return U8(X,K);case"UpdateExpression":return A8(X,K);case"MemberExpression":return w8(X,K);case"CallExpression":return I8(X,K);case"SequenceExpression":{let Z=X,H=[];for(let Y=0;Y<Z.expressions.length;Y++)if(H.push(...b(Z.expressions[Y],K)),Y<Z.expressions.length-1)H.push(W.drop);return H}default:return K.errors.push(`Unsupported expression type: ${X.type}`),[W.f64_const,...u(0)]}}function F8(X,K){let Z=b(X.left,K),H=b(X.right,K),Y=y(X,K),J=y(X.left,K),$=y(X.right,K),Q=["<",">","<=",">=","==","===","!=","!=="].includes(X.operator),G;if(J==="f64"||$==="f64")G="f64";else if(J==="f32"||$==="f32")G="f32";else G="i32";if(!Q&&Y==="f64")G="f64";let z=Z,D=H;if(G==="f64"){if(J==="i32")z=[...Z,W.f64_convert_i32_s];else if(J==="f32")z=[...Z,W.f64_promote_f32];if($==="i32")D=[...H,W.f64_convert_i32_s];else if($==="f32")D=[...H,W.f64_promote_f32]}else if(G==="f32"){if(J==="i32")z=[...Z,W.f32_convert_i32_s];if($==="i32")D=[...H,W.f32_convert_i32_s]}let _={"+":{i32:W.i32_add,f32:W.f32_add,f64:W.f64_add},"-":{i32:W.i32_sub,f32:W.f32_sub,f64:W.f64_sub},"*":{i32:W.i32_mul,f32:W.f32_mul,f64:W.f64_mul},"/":{i32:W.i32_div_s,f32:W.f32_div,f64:W.f64_div},"%":{i32:W.i32_rem_s},"<":{i32:W.i32_lt_s,f32:W.f32_lt,f64:W.f64_lt},">":{i32:W.i32_gt_s,f32:W.f32_gt,f64:W.f64_gt},"<=":{i32:W.i32_le_s,f32:W.f32_le,f64:W.f64_le},">=":{i32:W.i32_ge_s,f32:W.f32_ge,f64:W.f64_ge},"==":{i32:W.i32_eq,f32:W.f32_eq,f64:W.f64_eq},"===":{i32:W.i32_eq,f32:W.f32_eq,f64:W.f64_eq},"!=":{i32:W.i32_ne,f32:W.f32_ne,f64:W.f64_ne},"!==":{i32:W.i32_ne,f32:W.f32_ne,f64:W.f64_ne},"|":{i32:W.i32_or},"&":{i32:W.i32_and},"^":{i32:W.i32_xor},"<<":{i32:W.i32_shl},">>":{i32:W.i32_shr_s},">>>":{i32:W.i32_shr_u}}[X.operator];if(!_)return K.errors.push(`Unsupported operator: ${X.operator}`),[W.f64_const,...u(0)];let q=_[G]??_.f64??_.i32;if(q===void 0)return K.errors.push(`Operator ${X.operator} not supported for type ${G}`),[W.f64_const,...u(0)];return[...z,...D,q]}function q8(X,K){let Z=b(X.argument,K),H=y(X.argument,K);switch(X.operator){case"-":if(H==="i32")return[W.i32_const,0,...Z,W.i32_sub];else if(H==="f32")return[...Z,W.f32_neg];else return[...Z,W.f64_neg];case"!":return[...Z,W.i32_eqz];case"~":return[...Z,W.i32_const,...B0(-1),W.i32_xor];default:return K.errors.push(`Unsupported unary operator: ${X.operator}`),Z}}function U8(X,K){if(X.left.type==="MemberExpression")return R8(X.left,X.right,X.operator,K);if(X.left.type!=="Identifier")return K.errors.push("Assignment target must be identifier or array element"),[];let Z=X.left.name,H=H0(K,Z);if(!H)return K.errors.push(`Unknown variable: ${Z}`),[];let Y=[];if(X.operator==="="){Y.push(...b(X.right,K));let J=y(X.right,K);if(H.type==="f64"&&J==="i32")Y.push(W.f64_convert_i32_s);else if(H.type==="f64"&&J==="f32")Y.push(W.f64_promote_f32);else if(H.type==="i32"&&J==="f64")Y.push(W.i32_trunc_f64_s);else if(H.type==="i32"&&J==="f32")Y.push(W.i32_trunc_f32_s);else if(H.type==="f32"&&J==="i32")Y.push(W.f32_convert_i32_s);else if(H.type==="f32"&&J==="f64")Y.push(W.f32_demote_f64)}else{let J=y(X.right,K),$=H.type;if(J==="f64"||H.type==="f64")$="f64";else if(J==="f32"||H.type==="f32")$="f32";if(Y.push(W.local_get,...C(H.index)),$==="f64"&&H.type==="i32")Y.push(W.f64_convert_i32_s);else if($==="f64"&&H.type==="f32")Y.push(W.f64_promote_f32);else if($==="f32"&&H.type==="i32")Y.push(W.f32_convert_i32_s);if(Y.push(...b(X.right,K)),$==="f64"&&J==="i32")Y.push(W.f64_convert_i32_s);else if($==="f64"&&J==="f32")Y.push(W.f64_promote_f32);else if($==="f32"&&J==="i32")Y.push(W.f32_convert_i32_s);let Q=X.operator.slice(0,-1),z={"+":{i32:W.i32_add,f32:W.f32_add,f64:W.f64_add},"-":{i32:W.i32_sub,f32:W.f32_sub,f64:W.f64_sub},"*":{i32:W.i32_mul,f32:W.f32_mul,f64:W.f64_mul},"/":{i32:W.i32_div_s,f32:W.f32_div,f64:W.f64_div}}[Q]?.[$];if(!z)return K.errors.push(`Unsupported compound assignment: ${X.operator}`),[];if(Y.push(z),H.type==="i32"&&$==="f64")Y.push(W.i32_trunc_f64_s);else if(H.type==="i32"&&$==="f32")Y.push(W.i32_trunc_f32_s);else if(H.type==="f32"&&$==="f64")Y.push(W.f32_demote_f64)}return Y.push(W.local_tee,...C(H.index)),Y}function A8(X,K){if(X.argument.type!=="Identifier")return K.errors.push("Update expression argument must be identifier"),[];let Z=X.argument.name,H=H0(K,Z);if(!H)return K.errors.push(`Unknown variable: ${Z}`),[];let Y=[],J=H.type==="i32";if(X.prefix){if(Y.push(W.local_get,...C(H.index)),J)Y.push(W.i32_const,1),Y.push(X.operator==="++"?W.i32_add:W.i32_sub);else Y.push(W.f64_const,...u(1)),Y.push(X.operator==="++"?W.f64_add:W.f64_sub);Y.push(W.local_tee,...C(H.index))}else{if(Y.push(W.local_get,...C(H.index)),Y.push(W.local_get,...C(H.index)),J)Y.push(W.i32_const,1),Y.push(X.operator==="++"?W.i32_add:W.i32_sub);else Y.push(W.f64_const,...u(1)),Y.push(X.operator==="++"?W.f64_add:W.f64_sub);Y.push(W.local_set,...C(H.index))}return Y}function w8(X,K){if(X.object.type!=="Identifier")return K.errors.push("Array access requires identifier"),[];let Z=X.object.name,H=K.params.find((z)=>z.name===Z);if(!H?.isArray||!H.arrayType)return K.errors.push(`${Z} is not a typed array parameter`),[];let Y=g0[H.arrayType];if(!Y)return K.errors.push(`Unknown array type: ${H.arrayType}`),[];K.needsMemory=!0;let J=[],$=H0(K,Z);if(!$)return K.errors.push(`Unknown array: ${Z}`),[];if(J.push(W.local_get,...C($.index)),!X.computed||!X.property)return K.errors.push("Array access requires computed index"),[];let Q=b(X.property,K),G=y(X.property,K);if(J.push(...Q),G==="f64")J.push(W.i32_trunc_f64_s);if(Y.bytesPerElement>1)J.push(W.i32_const,...B0(Y.bytesPerElement)),J.push(W.i32_mul);return J.push(W.i32_add),J.push(Y.loadOp,0,0),J}function R8(X,K,Z,H){if(X.object.type!=="Identifier")return H.errors.push("Array store requires identifier"),[];let Y=X.object.name,J=H.params.find((U)=>U.name===Y);if(!J?.isArray||!J.arrayType)return H.errors.push(`${Y} is not a typed array parameter`),[];let $=g0[J.arrayType];if(!$)return H.errors.push(`Unknown array type: ${J.arrayType}`),[];H.needsMemory=!0;let Q=[],G=H0(H,Y);if(!G)return[];if(!X.computed||!X.property)return H.errors.push("Array store requires computed index"),[];let z=b(X.property,H),D=y(X.property,H),F=()=>{let U=[];if(U.push(W.local_get,...C(G.index)),U.push(...z),D==="f64")U.push(W.i32_trunc_f64_s);if($.bytesPerElement>1)U.push(W.i32_const,...B0($.bytesPerElement)),U.push(W.i32_mul);return U.push(W.i32_add),U};if(Z==="=")Q.push(...b(K,H));else{let U=k0(H,`__addr_${H.nextLocalIndex}`,"i32");Q.push(...F()),Q.push(W.local_tee,...C(U)),Q.push($.loadOp,0,0),Q.push(...b(K,H));let A=y(K,H);if($.elementType==="f32"&&A==="f64")Q.push(W.f32_demote_f64);else if($.elementType==="f64"&&A==="f32")Q.push(W.f64_promote_f32);else if($.elementType==="f32"&&A==="i32")Q.push(W.f32_convert_i32_s);else if($.elementType==="f64"&&A==="i32")Q.push(W.f64_convert_i32_s);else if($.elementType==="i32"&&A==="f64")Q.push(W.i32_trunc_f64_s);else if($.elementType==="i32"&&A==="f32")Q.push(W.i32_trunc_f32_s);let I=Z.slice(0,-1),w={"+":$.elementType==="i32"?W.i32_add:$.elementType==="f32"?W.f32_add:W.f64_add,"-":$.elementType==="i32"?W.i32_sub:$.elementType==="f32"?W.f32_sub:W.f64_sub,"*":$.elementType==="i32"?W.i32_mul:$.elementType==="f32"?W.f32_mul:W.f64_mul};Q.push(w[I]??W.f64_add);let B=k0(H,`__val_${H.nextLocalIndex}`,$.elementType);return Q.push(W.local_set,...C(B)),Q.push(W.local_get,...C(U)),Q.push(W.local_get,...C(B)),Q.push($.storeOp,0,0),Q.push(W.local_get,...C(B)),Q}let _=y(K,H);if($.elementType==="f32"&&_==="f64")Q.push(W.f32_demote_f64);else if($.elementType==="f64"&&_==="f32")Q.push(W.f64_promote_f32);else if($.elementType==="i32"&&_==="f64")Q.push(W.i32_trunc_f64_s);let q=k0(H,`__tmp_${H.nextLocalIndex}`,$.elementType);if(Q.push(W.local_set,...C(q)),Q.push(W.local_get,...C(G.index)),Q.push(...z),D==="f64")Q.push(W.i32_trunc_f64_s);if($.bytesPerElement>1)Q.push(W.i32_const,...B0($.bytesPerElement)),Q.push(W.i32_mul);return Q.push(W.i32_add),Q.push(W.local_get,...C(q)),Q.push($.storeOp,0,0),Q.push(W.local_get,...C(q)),Q}function I8(X,K){if(X.callee.type==="MemberExpression"){let Z=X.callee;if(Z.object.type==="Identifier"&&Z.object.name==="Math"&&Z.property.type==="Identifier"){let H=Z.property.name;return B8(H,X.arguments,K)}}return K.errors.push(`Unsupported function call: ${X.callee.type}`),[W.f64_const,...u(0)]}function B8(X,K,Z){let H=[];for(let Q of K){H.push(...b(Q,Z));let G=y(Q,Z);if(G==="i32")H.push(W.f64_convert_i32_s);else if(G==="f32")H.push(W.f64_promote_f32)}let J={abs:W.f64_abs,ceil:W.f64_ceil,floor:W.f64_floor,trunc:W.f64_trunc,sqrt:W.f64_sqrt,min:W.f64_min,max:W.f64_max}[X];if(J!==void 0)return H.push(J),H;if(["sin","cos","tan","asin","acos","atan","atan2","exp","log","pow"].includes(X))return Z.needsMathImports.add(X),Z.errors.push(`Math.${X} requires JS import (not yet implemented)`),[W.f64_const,...u(0)];return Z.errors.push(`Unknown Math method: ${X}`),[W.f64_const,...u(0)]}function L8(X){let K=X.split(":").map((J)=>J.trim()),Z=K[0];if(K.length===1)return{name:Z,type:"f64"};let H=K[1];if(g0[H])return{name:Z,type:"i32",isArray:!0,arrayType:H};return{name:Z,type:{i32:"i32",i64:"i64",f32:"f32",f64:"f64",number:"f64",int:"i32"}[H]??"f64"}}function M8(X,K,Z,H,Y){let J=[0,97,115,109,1,0,0,0],$=X.map((B)=>l[B.type]),Q=Y?[1,l.f64]:[0],G=R0(w0.type,[1,96,...C(X.length),...$,...Q]),z=[],D=[];if(H)D=R0(w0.import,[1,...a0("env"),...a0("memory"),2,0,1]);let F=R0(w0.function,[1,0]),_=R0(w0.export,[1,...a0("compute"),0,0]),q=[];if(Z.length>0){let B=Z[0],j=1;for(let L=1;L<Z.length;L++)if(Z[L]===B)j++;else q.push([...C(j),l[B]]),B=Z[L],j=1;q.push([...C(j),l[B]])}let A=[...[...C(q.length),...q.flat()],...K,W.end],I=R0(w0.code,[1,...C(A.length),...A]),w=[...J,...G];if(D.length>0)w.push(...D);return w.push(...F,..._,...I),w}function x6(X){try{let K=X.captures.map(L8),Z;try{let z=`function __wasm__(${K.map((D)=>D.name).join(", ")}) { ${X.body} }`;Z=h6.parse(z,{ecmaVersion:2022})}catch(z){return{bytes:new Uint8Array,warnings:[],success:!1,error:`Parse error: ${z.message}`}}let Y=Z.body[0].body.body,J=W8(K),$=[];for(let z of Y)$.push(...W0(z,J));if(J.errors.length>0)return{bytes:new Uint8Array,warnings:J.warnings,success:!1,error:J.errors.join("; ")};let Q=M8(K,$,J.localTypes,J.needsMemory,J.hasReturn),G=G8($,K,J.localTypes);return{bytes:new Uint8Array(Q),warnings:J.warnings,success:!0,needsMemory:J.needsMemory,wat:G}}catch(K){return{bytes:new Uint8Array,warnings:[],success:!1,error:K.message}}}function P8(X,K,Z,H){let Y=[],J=q0(K,X),$={},Q=!1,G,z;if(X.params.length===1&&(X.params[0].type==="ObjectPattern"||X.params[0].type==="AssignmentPattern"&&X.params[0].left.type==="ObjectPattern")){Q=!0;let _=X.params[0],q=_.type==="ObjectPattern"?_:_.left,U=e(q,Z);if(U.type.kind==="object"&&U.type.destructuredParams){G={},z=new Set;for(let[A,I]of Object.entries(U.type.destructuredParams))if($[A]={...I,description:J.params[A]},G[A]=I.type,I.required)z.add(A)}}else for(let _ of X.params)if(_.type==="Identifier"){let q=e(_,Z);$[_.name]={...q,required:Z.has(_.name),description:J.params[_.name]}}else if(_.type==="AssignmentPattern"&&_.left.type==="Identifier"){let q=e(_,Z);$[_.left.name]={...q,required:Z.has(_.left.name),description:J.params[_.left.name]}}else if(_.type==="ObjectPattern"){let q=e(_,Z);if(q.type.kind==="object"&&q.type.destructuredParams)for(let[U,A]of Object.entries(q.type.destructuredParams))$[U]={...A,description:J.params[U]}}let D;if(H)try{let _=j8(H,0,{ecmaVersion:2022});D=d(_)}catch{D={kind:"any"},Y.push(`Could not parse return type: ${H}`)}return{types:{name:X.id?.name||"anonymous",params:$,returns:D,description:J.description,isDestructuredParam:Q,destructuredShape:G,destructuredRequired:z},warnings:Y}}function V8(X,K,Z){let H=[],Y=Z?`${Z}:`:"",J=Z?`${Z}:${X}`:X;if(H.push(`__tjs.pushStack('${J}');`),K.isDestructuredParam&&K.destructuredShape){let Q=K.destructuredShape,G=K.destructuredRequired||new Set,z=Object.keys(Q);if(z.length===0)return null;for(let D of z)H.push(`if (${D} instanceof Error) return ${D};`);for(let[D,F]of Object.entries(Q)){let _=G.has(D),q=`${Y}${X}.${D}`,U=m6(D,F);if(U){let A=F.kind;if(_)H.push(`if (${U}) return __tjs.typeError('${q}', '${A}', ${D});`);else H.push(`if (${D} !== undefined && ${U}) return __tjs.typeError('${q}', '${A}', ${D});`)}}return H.length>0?H.join(`
140
140
  `):null}let $=Object.entries(K.params);if($.length===0)return null;for(let[Q]of $)H.push(`if (${Q} instanceof Error) return ${Q};`);for(let[Q,G]of $){let z=`${Y}${X}.${Q}`,D=m6(Q,G.type);if(D){let F=G.type.kind;if(G.required)H.push(`if (${D}) return __tjs.typeError('${z}', '${F}', ${Q});`);else H.push(`if (${Q} !== undefined && ${D}) return __tjs.typeError('${z}', '${F}', ${Q});`)}}return H.length>0?H.join(`
141
- `):null}function E8(X,K){let H=new RegExp(`function\\s+${K}\\s*\\([^)]*\\)\\s*(-[>?!])\\s*`,"g").exec(X);if(!H)return null;let Y=X.slice(H.index+H[0].length);return u6(Y)}function C8(X,K){let H=new RegExp(`function\\s+${K}\\s*\\([^)]*\\)\\s*-([>?!])`,"g").exec(X);if(!H)return;let Y=H[1];if(Y==="?")return"safe";if(Y==="!")return"unsafe";return}function N8(X){let K=X.match(/^\/\*\s*tjs\s*<-\s*([^*]+?)\s*\*\//);return K?K[1].trim():void 0}function O8(X,K){let Z=new RegExp(`\\/\\*\\s*line\\s+(\\d+)\\s*\\*\\/\\s*(?:async\\s+)?function\\s+${K}\\s*\\(`,"m"),H=X.match(Z);return H?parseInt(H[1],10):void 0}function v0(X,K={}){let{filename:Z="<source>",runTests:H=!0,debug:Y=!1,resolvedImports:J={}}=K,$=[],G=N8(X)||Z,{code:z,tests:D,mocks:F,testRunner:_}=s0(X),{ast:q,originalSource:U,requiredParams:A,unsafeFunctions:I}=Z0(z,{filename:Z,colonShorthand:!0}),w=S8(q),B=O0(z),P={},L=[];for(let O of w){let g=O.id?.name||"anonymous",X0=E8(z,g),{types:a,warnings:z1}=j8(O,U,A,X0);$.push(...z1),P[g]=a;let j6=B.moduleSafety==="none"||I.has(g),G1=B.safeFunctions.has(g),W1=C8(z,g),_1=O8(X,g),u0={file:G,line:_1??O.loc?.start.line??0,column:O.loc?.start.column??0},D1=T8(g,a,{unsafe:j6,safe:G1,returnSafety:W1},{debug:Y,source:u0});if(L.push({position:O.end,text:`
142
- ${D1}`}),!j6){let F1=`${u0.file}:${u0.line}`,V6=V8(g,a,F1);if(V6&&O.body&&O.body.start!==void 0)L.push({position:O.body.start+1,text:`
141
+ `):null}function E8(X,K){let H=new RegExp(`function\\s+${K}\\s*\\([^)]*\\)\\s*(-[>?!])\\s*`,"g").exec(X);if(!H)return null;let Y=X.slice(H.index+H[0].length);return u6(Y)}function C8(X,K){let H=new RegExp(`function\\s+${K}\\s*\\([^)]*\\)\\s*-([>?!])`,"g").exec(X);if(!H)return;let Y=H[1];if(Y==="?")return"safe";if(Y==="!")return"unsafe";return}function N8(X){let K=X.match(/^\/\*\s*tjs\s*<-\s*([^*]+?)\s*\*\//);return K?K[1].trim():void 0}function O8(X,K){let Z=new RegExp(`\\/\\*\\s*line\\s+(\\d+)\\s*\\*\\/\\s*(?:async\\s+)?function\\s+${K}\\s*\\(`,"m"),H=X.match(Z);return H?parseInt(H[1],10):void 0}function v0(X,K={}){let{filename:Z="<source>",runTests:H=!0,debug:Y=!1,resolvedImports:J={}}=K,$=[],G=N8(X)||Z,{code:z,tests:D,mocks:F,testRunner:_}=s0(X),{ast:q,originalSource:U,requiredParams:A,unsafeFunctions:I}=Z0(z,{filename:Z,colonShorthand:!0}),w=S8(q),B=O0(z),j={},L=[];for(let O of w){let g=O.id?.name||"anonymous",X0=E8(z,g),{types:r,warnings:z1}=P8(O,U,A,X0);$.push(...z1),j[g]=r;let P6=B.moduleSafety==="none"||I.has(g),G1=B.safeFunctions.has(g),W1=C8(z,g),_1=O8(X,g),u0={file:G,line:_1??O.loc?.start.line??0,column:O.loc?.start.column??0},D1=T8(g,r,{unsafe:P6,safe:G1,returnSafety:W1},{debug:Y,source:u0});if(L.push({position:O.end,text:`
142
+ ${D1}`}),!P6){let F1=`${u0.file}:${u0.line}`,V6=V8(g,r,F1);if(V6&&O.body&&O.body.start!==void 0)L.push({position:O.body.start+1,text:`
143
143
  ${V6}
144
- `})}}L.sort((O,g)=>g.position-O.position);let M=B.source;for(let{position:O,text:g}of L)M=M.slice(0,O)+g+M.slice(O);let j=M.includes("__tjs.typeError("),V=M.includes("Is("),E=M.includes("IsNot("),h=B.tjsModes.tjsSafeEval;if(j||V||E||h){let O=`const __tjs = globalThis.__tjs?.createRuntime?.() ?? globalThis.__tjs;
144
+ `})}}L.sort((O,g)=>g.position-O.position);let M=B.source;for(let{position:O,text:g}of L)M=M.slice(0,O)+g+M.slice(O);let P=M.includes("__tjs.typeError("),V=M.includes("Is("),E=M.includes("IsNot("),h=B.tjsModes.tjsSafeEval;if(P||V||E||h){let O=`const __tjs = globalThis.__tjs?.createRuntime?.() ?? globalThis.__tjs;
145
145
  `;if(V||E){let g=[V&&"Is",E&&"IsNot"].filter(Boolean).join(", ");O+=`const { ${g} } = __tjs ?? {};
146
146
  `}M=O+M}if(h)M=`import { Eval, SafeFunction } from 'tjs-lang';
147
- `+M;let S;if(H){let O=b8(X);S=f8(D,F,O,M,J);let g=S.filter((X0)=>!X0.passed);if(g.length>0&&H===!0){let X0=g.map((a)=>{if(a.isSignatureTest)return` Function signature example is inconsistent:
148
- ${a.error}`;return` Test '${a.description}' failed:
149
- ${a.error}`});throw Error(`Transpile-time test failures:
147
+ `+M;let S;if(H){let O=b8(X);S=f8(D,F,O,M,J);let g=S.filter((X0)=>!X0.passed);if(g.length>0&&H===!0){let X0=g.map((r)=>{if(r.isSignatureTest)return` Function signature example is inconsistent:
148
+ ${r.error}`;return` Test '${r.description}' failed:
149
+ ${r.error}`});throw Error(`Transpile-time test failures:
150
150
  ${X0.join(`
151
- `)}`)}}if(H==="only")return{code:"",types:P,metadata:P,testResults:S,testCount:S?.length};let i;if(B.wasmBlocks.length>0){i=[];let O=x8(B.wasmBlocks);if(O.code)M=O.code+`
152
- `+M;i=O.results}return{code:M,types:P,metadata:P,warnings:$.length>0?$:void 0,testRunner:D.length>0?_:void 0,testCount:D.length>0?D.length:void 0,testResults:S,wasmCompiled:i}}function S8(X){let K=[];for(let Z of X.body)if(Z.type==="FunctionDeclaration")K.push(Z);else if(Z.type==="ExportNamedDeclaration"&&Z.declaration?.type==="FunctionDeclaration")K.push(Z.declaration);else if(Z.type==="ExportDefaultDeclaration"&&Z.declaration?.type==="FunctionDeclaration")K.push(Z.declaration);return K}function M0(X){let K={kind:X.kind};if(X.nullable)K.nullable=!0;if(X.items)K.items=M0(X.items);if(X.shape)K.shape=Object.fromEntries(Object.entries(X.shape).map(([Z,H])=>[Z,M0(H)]));if(X.members)K.members=X.members.map(M0);return K}function T8(X,K,Z={},H={}){let Y={};for(let[$,Q]of Object.entries(K.params)){if(Y[$]={type:M0(Q.type),required:Q.required},Q.default!==void 0)Y[$].default=Q.default;if(Q.description)Y[$].description=Q.description}let J={params:Y};if(K.returns){if(J.returns={type:M0(K.returns)},Z.returnSafety==="safe")J.safeReturn=!0;else if(Z.returnSafety==="unsafe")J.unsafeReturn=!0}if(K.description)J.description=K.description;if(Z.unsafe)J.unsafe=!0;if(Z.safe)J.safe=!0;if(H.source){let{file:$,line:Q}=H.source;J.source=`${$}:${Q}`}return`${X}.__tjs = ${JSON.stringify(J,null,2)}`}function m6(X,K){switch(K.kind){case"string":return`typeof ${X} !== 'string'`;case"number":return`typeof ${X} !== 'number'`;case"boolean":return`typeof ${X} !== 'boolean'`;case"null":return`${X} !== null`;case"undefined":return`${X} !== undefined`;case"array":return`!Array.isArray(${X})`;case"object":return`(typeof ${X} !== 'object' || ${X} === null || Array.isArray(${X}))`;case"any":return null;default:return null}}function k8(X,K,Z=0.000000001){if(X===K)return!0;if(typeof X==="number"&&typeof K==="number"){if(!Number.isInteger(X)||!Number.isInteger(K)){let H=Math.abs(X-K),Y=Math.max(Math.abs(X),Math.abs(K),1);return H/Y<Z}}return!1}function r0(X,K){if(X===K)return!0;if(k8(X,K))return!0;if(X===null||K===null)return X===K;if(X===void 0||K===void 0)return X===K;if(typeof X!==typeof K)return!1;if(typeof X!=="object")return!1;if(Array.isArray(X)&&Array.isArray(K)){if(X.length!==K.length)return!1;return X.every((Y,J)=>r0(Y,K[J]))}if(Array.isArray(X)!==Array.isArray(K))return!1;let Z=Object.keys(X),H=Object.keys(K);if(Z.length!==H.length)return!1;return Z.every((Y)=>r0(X[Y],K[Y]))}function t0(X,K,Z=""){if(K===null){if(X===null)return{matches:!0};return{matches:!1,error:`Expected null at '${Z}', got ${Y0(X)}`}}if(K===void 0){if(X===void 0)return{matches:!0};return{matches:!1,error:`Expected undefined at '${Z}', got ${Y0(X)}`}}if(typeof K==="number"){if(typeof X==="number")return{matches:!0};return{matches:!1,error:`Expected number at '${Z}', got ${Y0(X)}`}}if(typeof K==="string"){if(typeof X==="string")return{matches:!0};return{matches:!1,error:`Expected string at '${Z}', got ${Y0(X)}`}}if(typeof K==="boolean"){if(typeof X==="boolean")return{matches:!0};return{matches:!1,error:`Expected boolean at '${Z}', got ${Y0(X)}`}}if(Array.isArray(K)){if(!Array.isArray(X))return{matches:!1,error:`Expected array at '${Z}', got ${Y0(X)}`};if(K.length===0)return{matches:!0};let H=K[0];for(let Y=0;Y<X.length;Y++){let J=t0(X[Y],H,`${Z}[${Y}]`);if(!J.matches)return J}return{matches:!0}}if(typeof K==="object"&&K!==null){if(typeof X!=="object"||X===null||Array.isArray(X))return{matches:!1,error:`Expected object at '${Z}', got ${Y0(X)}`};for(let H of Object.keys(K)){let Y=Z?`${Z}.${H}`:H;if(!(H in X))return{matches:!1,error:`Missing property '${Y}'`};let J=t0(X[H],K[H],Y);if(!J.matches)return J}return{matches:!0}}if(X===K)return{matches:!0};return{matches:!1,error:`Type mismatch at '${Z}'`}}function Y0(X){if(X===null)return"null";if(X===void 0)return"undefined";if(Array.isArray(X))return"array";return typeof X}function L0(X,K=0){if(X===null)return"null";if(X===void 0)return"undefined";if(typeof X==="string")return JSON.stringify(X);if(typeof X==="number")return String(X);if(typeof X==="boolean")return String(X);if(Array.isArray(X)){if(X.length===0)return"[]";if(X.length<=3)return`[${X.map((Z)=>L0(Z,K)).join(", ")}]`;return`[${X.slice(0,3).map((Z)=>L0(Z,K)).join(", ")}, ...]`}if(typeof X==="object"){let Z=Object.entries(X);if(Z.length===0)return"{}";let H=(G)=>/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(G)?G:JSON.stringify(G);if(Z.length<=2)return`{${Z.map(([z,D])=>`${H(z)}: ${L0(D,K)}`).join(", ")}}`;let Y=" ".repeat(K+1),J=" ".repeat(K),$=Z.slice(0,8).map(([G,z])=>`${Y}${H(G)}: ${L0(z,K+1)}`).join(`,
151
+ `)}`)}}if(H==="only")return{code:"",types:j,metadata:j,testResults:S,testCount:S?.length};let i;if(B.wasmBlocks.length>0){i=[];let O=x8(B.wasmBlocks);if(O.code)M=O.code+`
152
+ `+M;i=O.results}return{code:M,types:j,metadata:j,warnings:$.length>0?$:void 0,testRunner:D.length>0?_:void 0,testCount:D.length>0?D.length:void 0,testResults:S,wasmCompiled:i}}function S8(X){let K=[];for(let Z of X.body)if(Z.type==="FunctionDeclaration")K.push(Z);else if(Z.type==="ExportNamedDeclaration"&&Z.declaration?.type==="FunctionDeclaration")K.push(Z.declaration);else if(Z.type==="ExportDefaultDeclaration"&&Z.declaration?.type==="FunctionDeclaration")K.push(Z.declaration);return K}function M0(X){let K={kind:X.kind};if(X.nullable)K.nullable=!0;if(X.items)K.items=M0(X.items);if(X.shape)K.shape=Object.fromEntries(Object.entries(X.shape).map(([Z,H])=>[Z,M0(H)]));if(X.members)K.members=X.members.map(M0);return K}function T8(X,K,Z={},H={}){let Y={};for(let[$,Q]of Object.entries(K.params)){if(Y[$]={type:M0(Q.type),required:Q.required},Q.default!==void 0)Y[$].default=Q.default;if(Q.description)Y[$].description=Q.description}let J={params:Y};if(K.returns){if(J.returns={type:M0(K.returns)},Z.returnSafety==="safe")J.safeReturn=!0;else if(Z.returnSafety==="unsafe")J.unsafeReturn=!0}if(K.description)J.description=K.description;if(Z.unsafe)J.unsafe=!0;if(Z.safe)J.safe=!0;if(H.source){let{file:$,line:Q}=H.source;J.source=`${$}:${Q}`}return`${X}.__tjs = ${JSON.stringify(J,null,2)}`}function m6(X,K){switch(K.kind){case"string":return`typeof ${X} !== 'string'`;case"number":return`typeof ${X} !== 'number'`;case"integer":return`(typeof ${X} !== 'number' || !Number.isInteger(${X}))`;case"non-negative-integer":return`(typeof ${X} !== 'number' || !Number.isInteger(${X}) || ${X} < 0)`;case"boolean":return`typeof ${X} !== 'boolean'`;case"null":return`${X} !== null`;case"undefined":return`${X} !== undefined`;case"array":return`!Array.isArray(${X})`;case"object":return`(typeof ${X} !== 'object' || ${X} === null || Array.isArray(${X}))`;case"any":return null;default:return null}}function k8(X,K,Z=0.000000001){if(X===K)return!0;if(typeof X==="number"&&typeof K==="number"){if(!Number.isInteger(X)||!Number.isInteger(K)){let H=Math.abs(X-K),Y=Math.max(Math.abs(X),Math.abs(K),1);return H/Y<Z}}return!1}function r0(X,K){if(X===K)return!0;if(k8(X,K))return!0;if(X===null||K===null)return X===K;if(X===void 0||K===void 0)return X===K;if(typeof X!==typeof K)return!1;if(typeof X!=="object")return!1;if(Array.isArray(X)&&Array.isArray(K)){if(X.length!==K.length)return!1;return X.every((Y,J)=>r0(Y,K[J]))}if(Array.isArray(X)!==Array.isArray(K))return!1;let Z=Object.keys(X),H=Object.keys(K);if(Z.length!==H.length)return!1;return Z.every((Y)=>r0(X[Y],K[Y]))}function t0(X,K,Z=""){if(K===null){if(X===null)return{matches:!0};return{matches:!1,error:`Expected null at '${Z}', got ${Y0(X)}`}}if(K===void 0){if(X===void 0)return{matches:!0};return{matches:!1,error:`Expected undefined at '${Z}', got ${Y0(X)}`}}if(typeof K==="number"){if(typeof X==="number")return{matches:!0};return{matches:!1,error:`Expected number at '${Z}', got ${Y0(X)}`}}if(typeof K==="string"){if(typeof X==="string")return{matches:!0};return{matches:!1,error:`Expected string at '${Z}', got ${Y0(X)}`}}if(typeof K==="boolean"){if(typeof X==="boolean")return{matches:!0};return{matches:!1,error:`Expected boolean at '${Z}', got ${Y0(X)}`}}if(Array.isArray(K)){if(!Array.isArray(X))return{matches:!1,error:`Expected array at '${Z}', got ${Y0(X)}`};if(K.length===0)return{matches:!0};let H=K[0];for(let Y=0;Y<X.length;Y++){let J=t0(X[Y],H,`${Z}[${Y}]`);if(!J.matches)return J}return{matches:!0}}if(typeof K==="object"&&K!==null){if(typeof X!=="object"||X===null||Array.isArray(X))return{matches:!1,error:`Expected object at '${Z}', got ${Y0(X)}`};for(let H of Object.keys(K)){let Y=Z?`${Z}.${H}`:H;if(!(H in X))return{matches:!1,error:`Missing property '${Y}'`};let J=t0(X[H],K[H],Y);if(!J.matches)return J}return{matches:!0}}if(X===K)return{matches:!0};return{matches:!1,error:`Type mismatch at '${Z}'`}}function Y0(X){if(X===null)return"null";if(X===void 0)return"undefined";if(Array.isArray(X))return"array";return typeof X}function L0(X,K=0){if(X===null)return"null";if(X===void 0)return"undefined";if(typeof X==="string")return JSON.stringify(X);if(typeof X==="number")return String(X);if(typeof X==="boolean")return String(X);if(Array.isArray(X)){if(X.length===0)return"[]";if(X.length<=3)return`[${X.map((Z)=>L0(Z,K)).join(", ")}]`;return`[${X.slice(0,3).map((Z)=>L0(Z,K)).join(", ")}, ...]`}if(typeof X==="object"){let Z=Object.entries(X);if(Z.length===0)return"{}";let H=(G)=>/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(G)?G:JSON.stringify(G);if(Z.length<=2)return`{${Z.map(([z,D])=>`${H(z)}: ${L0(D,K)}`).join(", ")}}`;let Y=" ".repeat(K+1),J=" ".repeat(K),$=Z.slice(0,8).map(([G,z])=>`${Y}${H(G)}: ${L0(z,K+1)}`).join(`,
153
153
  `),Q=Z.length>8?`,
154
154
  ${Y}...`:"";return`{
155
155
  ${$}${Q}
@@ -203,6 +203,41 @@ ${J}}`}return String(X)}function g8(X){let K=X.replace(/\/\*[\s\S]*?\*\//g,(Z)=>
203
203
  if (!__deepEqual(actual, expected)) {
204
204
  throw new Error('Expected ' + __format(expected) + ' but got ' + __format(actual))
205
205
  }
206
+ },
207
+ toContain(item) {
208
+ if (!Array.isArray(actual) || !actual.some(function(v) { return __deepEqual(v, item) })) {
209
+ throw new Error('Expected ' + __format(actual) + ' to contain ' + __format(item))
210
+ }
211
+ },
212
+ toBeTruthy() {
213
+ if (!actual) {
214
+ throw new Error('Expected ' + __format(actual) + ' to be truthy')
215
+ }
216
+ },
217
+ toBeFalsy() {
218
+ if (actual) {
219
+ throw new Error('Expected ' + __format(actual) + ' to be falsy')
220
+ }
221
+ },
222
+ toBeNull() {
223
+ if (actual !== null) {
224
+ throw new Error('Expected null but got ' + __format(actual))
225
+ }
226
+ },
227
+ toBeUndefined() {
228
+ if (actual !== undefined) {
229
+ throw new Error('Expected undefined but got ' + __format(actual))
230
+ }
231
+ },
232
+ toBeGreaterThan(n) {
233
+ if (!(actual > n)) {
234
+ throw new Error('Expected ' + __format(actual) + ' to be greater than ' + n)
235
+ }
236
+ },
237
+ toBeLessThan(n) {
238
+ if (!(actual < n)) {
239
+ throw new Error('Expected ' + __format(actual) + ' to be less than ' + n)
240
+ }
206
241
  }
207
242
  }
208
243
  }
@@ -254,11 +289,11 @@ for(const{id,b64,c,m}of __wasmBlocks){
254
289
  if(p.a&&a?.buffer){const ab=new Uint8Array(a.buffer,a.byteOffset,a.byteLength);ab.set(mv.slice(off,off+ab.length));off+=ab.length;off=(off+7)&~7}}
255
290
  return r};
256
291
  }})();
257
- `.trim(),results:K}}function f0(X,K={}){let{ast:Z,returnType:H,originalSource:Y,requiredParams:J}=Z0(X,{filename:K.filename,colonShorthand:!0,vmTarget:!0}),$=S6(Z,K.filename),{ast:Q,signature:G,warnings:z}=c0($,Y,H,K,J);return{ast:Q,signature:G,warnings:z}}function m8(X,...K){if(typeof X==="string")return f0(X).ast;let Z=X.reduce((H,Y,J)=>H+Y+(K[J]!==void 0?String(K[J]):""),"");return f0(Z).ast}function d8(X,K,Z){let{ast:H,signature:Y}=f0(X),J=async($)=>{return(await K.run(H,$,Z)).result};return J.signature=Y,J.ast=H,J}function b0(X){switch(X.kind){case"string":return{type:"string"};case"number":return{type:"number"};case"boolean":return{type:"boolean"};case"null":return{type:"null"};case"array":return{type:"array",items:X.items?b0(X.items):{}};case"object":if(!X.shape)return{type:"object"};return{type:"object",properties:Object.fromEntries(Object.entries(X.shape).map(([K,Z])=>[K,b0(Z)]))};case"union":if(!X.members)return{};return{anyOf:X.members.map(b0)};case"any":default:return{}}}function l8(X){return Object.entries(X).map(([K,Z])=>{let H=Z.signature,Y={},J=[];for(let[$,Q]of Object.entries(H.parameters)){if(Y[$]=b0(Q.type),Q.description)Y[$].description=Q.description;if(Q.required)J.push($)}return{type:"function",function:{name:K,description:H.description,parameters:{type:"object",properties:Y,required:J}}}})}function u8(X,K,...Z){if(typeof X==="string")return v0(X,K);let H=K!==void 0?[K,...Z]:Z,Y=X.reduce((J,$,Q)=>J+$+(H[Q]!==void 0?String(H[Q]):""),"");return v0(Y)}import{s as i6}from"tosijs-schema";function p6(X){if(X===null)return"null";if(X===void 0)return"undefined";if(Array.isArray(X))return"array";return typeof X}function y0(X){return i6.infer(X)}function e0(X){return y0(X)}e0.type=p6;e0.infer=y0;var i8=new Proxy(e0,{get(X,K){if(K==="type")return p6;if(K==="infer")return y0;return i6[K]},apply(X,K,Z){return y0(Z[0])}});function h0(X,K,Z,H,Y){if(!Z)Z=R;(function J($,Q,G){var z=G||$.type;if(Z[z]($,Q,J),K[z])K[z]($,Q)})(X,H,Y)}function n6(X,K,Z,H,Y){var J=[];if(!Z)Z=R;(function $(Q,G,z){var D=z||Q.type,F=Q!==J[J.length-1];if(F)J.push(Q);if(Z[D](Q,G,$),K[D])K[D](Q,G||J,J);if(F)J.pop()})(X,H,Y)}function X6(X,K,Z){Z(X,K)}function $0(X,K,Z){}var R={};R.Program=R.BlockStatement=R.StaticBlock=function(X,K,Z){for(var H=0,Y=X.body;H<Y.length;H+=1){var J=Y[H];Z(J,K,"Statement")}};R.Statement=X6;R.EmptyStatement=$0;R.ExpressionStatement=R.ParenthesizedExpression=R.ChainExpression=function(X,K,Z){return Z(X.expression,K,"Expression")};R.IfStatement=function(X,K,Z){if(Z(X.test,K,"Expression"),Z(X.consequent,K,"Statement"),X.alternate)Z(X.alternate,K,"Statement")};R.LabeledStatement=function(X,K,Z){return Z(X.body,K,"Statement")};R.BreakStatement=R.ContinueStatement=$0;R.WithStatement=function(X,K,Z){Z(X.object,K,"Expression"),Z(X.body,K,"Statement")};R.SwitchStatement=function(X,K,Z){Z(X.discriminant,K,"Expression");for(var H=0,Y=X.cases;H<Y.length;H+=1){var J=Y[H];Z(J,K)}};R.SwitchCase=function(X,K,Z){if(X.test)Z(X.test,K,"Expression");for(var H=0,Y=X.consequent;H<Y.length;H+=1){var J=Y[H];Z(J,K,"Statement")}};R.ReturnStatement=R.YieldExpression=R.AwaitExpression=function(X,K,Z){if(X.argument)Z(X.argument,K,"Expression")};R.ThrowStatement=R.SpreadElement=function(X,K,Z){return Z(X.argument,K,"Expression")};R.TryStatement=function(X,K,Z){if(Z(X.block,K,"Statement"),X.handler)Z(X.handler,K);if(X.finalizer)Z(X.finalizer,K,"Statement")};R.CatchClause=function(X,K,Z){if(X.param)Z(X.param,K,"Pattern");Z(X.body,K,"Statement")};R.WhileStatement=R.DoWhileStatement=function(X,K,Z){Z(X.test,K,"Expression"),Z(X.body,K,"Statement")};R.ForStatement=function(X,K,Z){if(X.init)Z(X.init,K,"ForInit");if(X.test)Z(X.test,K,"Expression");if(X.update)Z(X.update,K,"Expression");Z(X.body,K,"Statement")};R.ForInStatement=R.ForOfStatement=function(X,K,Z){Z(X.left,K,"ForInit"),Z(X.right,K,"Expression"),Z(X.body,K,"Statement")};R.ForInit=function(X,K,Z){if(X.type==="VariableDeclaration")Z(X,K);else Z(X,K,"Expression")};R.DebuggerStatement=$0;R.FunctionDeclaration=function(X,K,Z){return Z(X,K,"Function")};R.VariableDeclaration=function(X,K,Z){for(var H=0,Y=X.declarations;H<Y.length;H+=1){var J=Y[H];Z(J,K)}};R.VariableDeclarator=function(X,K,Z){if(Z(X.id,K,"Pattern"),X.init)Z(X.init,K,"Expression")};R.Function=function(X,K,Z){if(X.id)Z(X.id,K,"Pattern");for(var H=0,Y=X.params;H<Y.length;H+=1){var J=Y[H];Z(J,K,"Pattern")}Z(X.body,K,X.expression?"Expression":"Statement")};R.Pattern=function(X,K,Z){if(X.type==="Identifier")Z(X,K,"VariablePattern");else if(X.type==="MemberExpression")Z(X,K,"MemberPattern");else Z(X,K)};R.VariablePattern=$0;R.MemberPattern=X6;R.RestElement=function(X,K,Z){return Z(X.argument,K,"Pattern")};R.ArrayPattern=function(X,K,Z){for(var H=0,Y=X.elements;H<Y.length;H+=1){var J=Y[H];if(J)Z(J,K,"Pattern")}};R.ObjectPattern=function(X,K,Z){for(var H=0,Y=X.properties;H<Y.length;H+=1){var J=Y[H];if(J.type==="Property"){if(J.computed)Z(J.key,K,"Expression");Z(J.value,K,"Pattern")}else if(J.type==="RestElement")Z(J.argument,K,"Pattern")}};R.Expression=X6;R.ThisExpression=R.Super=R.MetaProperty=$0;R.ArrayExpression=function(X,K,Z){for(var H=0,Y=X.elements;H<Y.length;H+=1){var J=Y[H];if(J)Z(J,K,"Expression")}};R.ObjectExpression=function(X,K,Z){for(var H=0,Y=X.properties;H<Y.length;H+=1){var J=Y[H];Z(J,K)}};R.FunctionExpression=R.ArrowFunctionExpression=R.FunctionDeclaration;R.SequenceExpression=function(X,K,Z){for(var H=0,Y=X.expressions;H<Y.length;H+=1){var J=Y[H];Z(J,K,"Expression")}};R.TemplateLiteral=function(X,K,Z){for(var H=0,Y=X.quasis;H<Y.length;H+=1){var J=Y[H];Z(J,K)}for(var $=0,Q=X.expressions;$<Q.length;$+=1){var G=Q[$];Z(G,K,"Expression")}};R.TemplateElement=$0;R.UnaryExpression=R.UpdateExpression=function(X,K,Z){Z(X.argument,K,"Expression")};R.BinaryExpression=R.LogicalExpression=function(X,K,Z){Z(X.left,K,"Expression"),Z(X.right,K,"Expression")};R.AssignmentExpression=R.AssignmentPattern=function(X,K,Z){Z(X.left,K,"Pattern"),Z(X.right,K,"Expression")};R.ConditionalExpression=function(X,K,Z){Z(X.test,K,"Expression"),Z(X.consequent,K,"Expression"),Z(X.alternate,K,"Expression")};R.NewExpression=R.CallExpression=function(X,K,Z){if(Z(X.callee,K,"Expression"),X.arguments)for(var H=0,Y=X.arguments;H<Y.length;H+=1){var J=Y[H];Z(J,K,"Expression")}};R.MemberExpression=function(X,K,Z){if(Z(X.object,K,"Expression"),X.computed)Z(X.property,K,"Expression")};R.ExportNamedDeclaration=R.ExportDefaultDeclaration=function(X,K,Z){if(X.declaration)Z(X.declaration,K,X.type==="ExportNamedDeclaration"||X.declaration.id?"Statement":"Expression");if(X.source)Z(X.source,K,"Expression")};R.ExportAllDeclaration=function(X,K,Z){if(X.exported)Z(X.exported,K);Z(X.source,K,"Expression")};R.ImportDeclaration=function(X,K,Z){for(var H=0,Y=X.specifiers;H<Y.length;H+=1){var J=Y[H];Z(J,K)}Z(X.source,K,"Expression")};R.ImportExpression=function(X,K,Z){Z(X.source,K,"Expression")};R.ImportSpecifier=R.ImportDefaultSpecifier=R.ImportNamespaceSpecifier=R.Identifier=R.PrivateIdentifier=R.Literal=$0;R.TaggedTemplateExpression=function(X,K,Z){Z(X.tag,K,"Expression"),Z(X.quasi,K,"Expression")};R.ClassDeclaration=R.ClassExpression=function(X,K,Z){return Z(X,K,"Class")};R.Class=function(X,K,Z){if(X.id)Z(X.id,K,"Pattern");if(X.superClass)Z(X.superClass,K,"Expression");Z(X.body,K)};R.ClassBody=function(X,K,Z){for(var H=0,Y=X.body;H<Y.length;H+=1){var J=Y[H];Z(J,K)}};R.MethodDefinition=R.PropertyDefinition=R.Property=function(X,K,Z){if(X.computed)Z(X.key,K,"Expression");if(X.value)Z(X.value,K,"Expression")};var n8={unusedVariables:!0,undefinedVariables:!0,unreachableCode:!0,noExplicitNew:!0};function c8(X,K={}){let Z={...n8,...K},H=[],Y;try{Y=Z0(X,{filename:Z.filename,colonShorthand:!0}).ast}catch($){return{diagnostics:[{severity:"error",message:$.message,line:$.loc?.line,column:$.loc?.column,rule:"parse-error"}],valid:!1}}let J=[c6()];if(n6(Y,{FunctionDeclaration($,Q,G){let z=c6();J.push(z);for(let D of $.params)o8(z,D,"parameter");if($.id)(J[J.length-2]||J[0]).declarations.set($.id.name,{node:$.id,kind:"function",used:!1})},VariableDeclaration($){let Q=J[J.length-1];for(let G of $.declarations)if(G.id.type==="Identifier")Q.declarations.set(G.id.name,{node:G.id,kind:$.kind,used:!1})}}),h0(Y,{Identifier($){for(let Q=J.length-1;Q>=0;Q--){let G=J[Q].declarations.get($.name);if(G){G.used=!0;break}}}}),Z.unusedVariables)for(let $ of J)for(let[Q,G]of $.declarations){if(Q.startsWith("_"))continue;if(!G.used&&G.kind!=="function")H.push({severity:"warning",message:`'${Q}' is declared but never used`,line:G.node.loc?.start?.line,column:G.node.loc?.start?.column,rule:"no-unused-vars"})}if(Z.unreachableCode)h0(Y,{BlockStatement($){let Q=!1;for(let G of $.body){if(Q){H.push({severity:"warning",message:"Unreachable code after return statement",line:G.loc?.start?.line,column:G.loc?.start?.column,rule:"no-unreachable"});break}if(G.type==="ReturnStatement")Q=!0}}});if(Z.noExplicitNew)h0(Y,{NewExpression($){let Q="class";if($.callee.type==="Identifier")Q=$.callee.name;else if($.callee.type==="MemberExpression"){if($.callee.property.type==="Identifier")Q=$.callee.property.name}H.push({severity:"warning",message:`Unnecessary 'new' keyword. In TJS, classes are callable without 'new': ${Q}(...) instead of new ${Q}(...)`,line:$.loc?.start?.line,column:$.loc?.start?.column,rule:"no-explicit-new"})}});return{diagnostics:H,valid:H.filter(($)=>$.severity==="error").length===0}}function c6(){return{declarations:new Map}}function o8(X,K,Z){if(K.type==="Identifier")X.declarations.set(K.name,{node:K,kind:Z,used:!1});else if(K.type==="AssignmentPattern"&&K.left.type==="Identifier")X.declarations.set(K.left.name,{node:K.left,kind:Z,used:!1})}import{validate as Z1,s as d0}from"tosijs-schema";import{validate as Z6,s as x0}from"tosijs-schema";function J0(X){return X!==null&&typeof X==="object"&&"__runtimeType"in X&&X.__runtimeType===!0}function o6(X){return X!==null&&typeof X==="object"&&"schema"in X&&typeof X.schema==="object"}function s8(X){return X!==null&&typeof X==="object"&&"type"in X&&typeof X.type==="string"}function v(X,K,Z,H){let Y,J,$,Q=Z,G=H;if(typeof X==="string")if(Y=X,typeof K==="function"){if(J=K,Q!==void 0)$=x0.infer(Q)}else if(K===void 0&&Q!==void 0)$=x0.infer(Q);else if(o6(K))$=K;else if(s8(K))$=K;else if(K!==void 0)Q=K,G=Q,$=x0.infer(Q);else throw Error("Type(description) requires a predicate, schema, or example");else{if(o6(X))$=X;else $=X;Y=a8($)}return{description:Y,check:(D)=>{if(J)return J(D);if($)return Z6(D,$);return!1},schema:$,predicate:J,example:Q,default:G,__runtimeType:!0}}function a8(X){let K=X?.schema??X;if(K&&typeof K==="object"&&"type"in K){let Z=K;switch(Z.type){case"string":if(Z.format)return`string (${Z.format})`;if(Z.pattern)return`string matching ${Z.pattern}`;if(Z.minLength!==void 0&&Z.maxLength!==void 0)return`string (${Z.minLength}-${Z.maxLength} chars)`;return"string";case"number":case"integer":if(Z.minimum!==void 0&&Z.maximum!==void 0)return`${Z.type} (${Z.minimum}-${Z.maximum})`;if(Z.minimum!==void 0)return`${Z.type} >= ${Z.minimum}`;if(Z.maximum!==void 0)return`${Z.type} <= ${Z.maximum}`;return Z.type;case"boolean":return"boolean";case"array":return"array";case"object":return"object";case"null":return"null"}}return"value"}var K6=v("string",(X)=>typeof X==="string"),H6=v("number",(X)=>typeof X==="number"),Y6=v("boolean",(X)=>typeof X==="boolean"),$6=v("integer",(X)=>typeof X==="number"&&Number.isInteger(X)),J6=v("positive integer",(X)=>typeof X==="number"&&Number.isInteger(X)&&X>0),Q6=v("non-empty string",(X)=>typeof X==="string"&&X.length>0),z6=v("email address",(X)=>typeof X==="string"&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(X)),s6=(X)=>{try{return new URL(X),!0}catch{return!1}},G6=v("URL",(X)=>typeof X==="string"&&s6(X)),W6=v("UUID",(X)=>typeof X==="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(X)),a6=(X)=>{let K=new Date(X);return!isNaN(K.getTime())&&X.includes("T")},r6=(X)=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(X))return!1;let K=new Date(X+"T00:00:00Z");return!isNaN(K.getTime())},t6=v("ISO 8601 timestamp",(X)=>typeof X==="string"&&a6(X)),e6=v("date (YYYY-MM-DD)",(X)=>typeof X==="string"&&r6(X));function _6(X){return v(`${X.description} or null`,(K)=>K===null||X.check(K))}function D6(X){return v(`${X.description} (optional)`,(K)=>K===null||K===void 0||X.check(K))}function F6(X,K,...Z){if(typeof X==="string"&&Array.isArray(K)){let J=X,$=K,Q=new Set($);return{description:J,check:(z)=>Q.has(z),__runtimeType:!0,values:$}}let H=[];if(J0(X))H.push(X);if(J0(K))H.push(K);H.push(...Z);let Y=H.map((J)=>J.description).join(" | ");return v(Y,(J)=>H.some(($)=>$.check(J)))}function q6(X){return v(`array of ${X.description}`,(K)=>Array.isArray(K)&&K.every((Z)=>X.check(Z)))}function r8(X){if(J0(X))return(Z)=>X.check(Z);if(X&&typeof X==="object"&&"schema"in X)return(Z)=>Z6(Z,X);let K=x0.infer(X);return(Z)=>Z6(Z,K)}function P0(X,K,Z){let H=[],Y=[];for(let $ of X)if(typeof $==="string")H.push($),Y.push(void 0);else H.push($[0]),Y.push($[1]);let J=(...$)=>{let Q=H.map((z,D)=>{let F=D<$.length?$[D]:Y[D];if(F===void 0)return()=>!0;return r8(F)}),G=Z;return H.forEach((z,D)=>{let F=D<$.length?$[D]:Y[D],_="any";if(J0(F))_=F.description;else if(F!==void 0)_=typeof F==="string"?"string":JSON.stringify(F);G=G.replace(new RegExp(`\\b${z}\\b`,"g"),_)}),v(G,(z)=>K(z,...Q))};return J.params=H,J.description=Z,J}var U6=P0(["T","U"],(X,K,Z)=>Array.isArray(X)&&X.length===2&&K(X[0])&&Z(X[1]),"Pair<T, U>"),A6=P0(["V"],(X,K)=>typeof X==="object"&&X!==null&&!Array.isArray(X)&&Object.values(X).every(K),"Record<string, V>");function w6(X,K){let Z=Object.values(K),H=new Set(Z),Y=Object.keys(K),J={};for(let[Q,G]of Object.entries(K))J[G]=Q;return{description:X,check:(Q)=>H.has(Q),__runtimeType:!0,members:K,names:J,values:Z,keys:Y}}var e8=X1(),c=e8.version;function l0(X){let[K=0,Z=0,H=0]=X.split(".").map(Number);return{major:K,minor:Z,patch:H}}function R6(X,K){let Z=l0(X),H=l0(K);if(Z.major!==H.major)return Z.major<H.major?-1:1;if(Z.minor!==H.minor)return Z.minor<H.minor?-1:1;if(Z.patch!==H.patch)return Z.patch<H.patch?-1:1;return 0}function I6(X,K){let Z=l0(X),H=l0(K);return Z.major===H.major}class G0 extends Error{path;expected;actual;callStack;constructor(X,K,Z,H,Y){super(X);if(this.name="MonadicError",this.path=K,this.expected=Z,this.actual=H,this.callStack=Y,Error.captureStackTrace)Error.captureStackTrace(this,G0)}}function XX(X,K,Z){let H=Z===null?"null":typeof Z,Y=x.debug?Y1():void 0;return new G0(`Expected ${K} for '${X}', got ${H}`,X,K,H,Y)}function K1(X){return X instanceof G0}var B6={debug:!1,safety:"inputs",requireReturnTypes:!1,maxStackSize:100},x={...B6},s=[],D0=0;function ZX(){D0++}function KX(){if(D0>0)D0--}function HX(){return D0>0}function YX(X){x={...x,...X}}function $X(){return{...x}}function H1(X){if(x.debug&&X){s.push(X);let K=x.maxStackSize??100;while(s.length>K)s.shift()}}function m0(){if(x.debug)s.pop()}function Y1(){return[...s]}function JX(){x={...B6},s.length=0,D0=0}function j0(X,K){if(X!==null&&typeof X==="object"&&typeof X.Equals==="function")return X.Equals(K);if(K!==null&&typeof K==="object"&&typeof K.Equals==="function")return K.Equals(X);if(X===K)return!0;if((X===null||X===void 0)&&(K===null||K===void 0))return!0;if(X===null||X===void 0||K===null||K===void 0)return!1;if(typeof X!==typeof K)return!1;if(typeof X!=="object")return!1;if(Array.isArray(X)&&Array.isArray(K)){if(X.length!==K.length)return!1;return X.every((Y,J)=>j0(Y,K[J]))}if(Array.isArray(X)!==Array.isArray(K))return!1;let Z=Object.keys(X),H=Object.keys(K);if(Z.length!==H.length)return!1;return Z.every((Y)=>j0(X[Y],K[Y]))}function $1(X,K){return!j0(X,K)}function o(X){return X!==null&&typeof X==="object"&&X.$error===!0}function n(X,K){let Z={$error:!0,message:X,...K};if(x.debug&&s.length>0){let H=K?.path?[...s,K.path]:[...s];Z.stack=H}return Z}function L6(X,K){if(X.length===0)return n("Unknown error");if(X.length===1)return X[0];let Z=X.map((Y)=>{if(Y.path){let J=Y.path.split(".");return J[J.length-1]}return"unknown"}).join(", "),H=`Multiple parameter errors in ${K||"function"}: ${Z}`;return n(H,{path:K,errors:X})}function _0(X){if(X===null)return"null";if(X===void 0)return"undefined";if(Array.isArray(X))return"array";let K=typeof X;if(K!=="object")return K;let Z=X.constructor?.name;if(Z&&Z!=="Object")return Z;return"object"}function J1(X,K){if(X===null||X===void 0)return!1;if(typeof X!=="object"&&typeof X!=="function")return!1;let Z=X;while(Z!==null){if(Z.constructor?.name===K)return!0;Z=Object.getPrototypeOf(Z)}return!1}function z0(X,K,Z){if(o(X))return X;if(typeof K==="object"&&K!==null&&"check"in K){if(K.check(X))return null;return n(`Expected ${K.description} but got ${_0(X)}`,{path:Z,expected:K.description,actual:_0(X)})}let H=_0(X);if(K==="any")return null;if(K===H)return null;if(K==="number"&&H==="number")return null;if(K==="integer"&&H==="number"&&Number.isInteger(X))return null;if(K==="object"&&H==="object")return null;return n(`Expected ${K} but got ${H}`,{path:Z,expected:K,actual:H})}function M6(X,K,Z){for(let[H,Y]of Object.entries(K.params)){let J=X[H];if(o(J))return J;if(Y.required&&J===void 0){let Q=typeof Y.type==="string"?Y.type:Y.type.description;return n(`Missing required parameter '${H}'`,{path:Z?`${Z}.${H}`:H,expected:Q,actual:"undefined",loc:Y.loc})}if(J===void 0)continue;let $=z0(J,Y.type,Z?`${Z}.${H}`:H);if($){if(Y.loc)$.loc=Y.loc;return $}}return null}function P6(X,K){if(X.__tjs=K,!(K.safe||K.safeReturn||x.safety!=="none"&&!K.unsafe||K.returns&&x.safety==="all"&&!K.unsafeReturn))return X;let H=!!K.returns,Y=!!K.unsafe,J=!!K.safe,$=!!K.unsafeReturn,Q=!!K.safeReturn,G=Object.entries(K.params),z=G.length,D=X.name||K.name||"anonymous",F=function(..._){if(D0>0)return X.apply(this,_);let q=J||!Y&&x.safety!=="none",U=H&&(Q||!$&&x.safety==="all");if(!q&&!U)return X.apply(this,_);if(_.length>0&&o(_[0]))return _[0];if(q){let A=_.length===1&&typeof _[0]==="object"&&_[0]!==null&&!Array.isArray(_[0]),I=[];if(!A)for(let w=0;w<z;w++){let[B,P]=G[w],L=_[w];if(o(L)){I.push(L);continue}if(P.required&&L===void 0){I.push(n(`Missing required parameter '${B}'`,{path:`${D}.${B}`,expected:typeof P.type==="string"?P.type:P.type?.description||"value",actual:"undefined",loc:P.loc}));continue}if(L!==void 0){let M=z0(L,P.type,`${D}.${B}`);if(M){if(P.loc)M.loc=P.loc;I.push(M)}}}else{let w=_[0];for(let B=0;B<z;B++){let[P,L]=G[B],M=w[P];if(o(M)){I.push(M);continue}if(L.required&&M===void 0){I.push(n(`Missing required parameter '${P}'`,{path:`${D}.${P}`,expected:typeof L.type==="string"?L.type:L.type?.description||"value",actual:"undefined",loc:L.loc}));continue}if(M!==void 0){let j=z0(M,L.type,`${D}.${P}`);if(j){if(L.loc)j.loc=L.loc;I.push(j)}}}}if(I.length>0)return L6(I,D)}H1(D);try{let A=X.apply(this,_);if(U&&K.returns&&!o(A)){let I=z0(A,K.returns.type,`${D}()`);if(I)return m0(),I}return m0(),A}catch(A){return m0(),n(A.message||String(A),{path:D,cause:A})}};return Object.defineProperty(F,"name",{value:X.name}),F.__tjs=K,F}function Q1(X){let K=new Proxy(X,{construct(Z,H,Y){return Reflect.construct(Z,H,Y)},apply(Z,H,Y){return Reflect.construct(Z,Y)}});Object.defineProperty(K,"name",{value:X.name});for(let Z of Object.getOwnPropertyNames(X))if(Z!=="length"&&Z!=="name"&&Z!=="prototype")Object.defineProperty(K,Z,Object.getOwnPropertyDescriptor(X,Z));return K}function QX(){let X={...x},K=[],Z=0;function H(U){X={...X,...U}}function Y(){return{...X}}function J(U){if(X.debug&&U){K.push(U);let A=X.maxStackSize??100;while(K.length>A)K.shift()}}function $(){if(X.debug)K.pop()}function Q(){return[...K]}function G(){X={...B6},K.length=0,Z=0}function z(){Z++}function D(){if(Z>0)Z--}function F(){return Z>0}function _(U,A,I){let w=I===null?"null":typeof I,B=X.debug?Q():void 0;return new G0(`Expected ${A} for '${U}', got ${w}`,U,A,w,B)}function q(U,A){let I={$error:!0,message:U,...A};if(X.debug&&K.length>0){let w=A?.path?[...K,A.path]:[...K];I.stack=w}return I}return{version:c,MonadicError:G0,typeError:_,isMonadicError:K1,isError:o,error:q,composeErrors:L6,typeOf:_0,isNativeType:J1,checkType:z0,validateArgs:M6,wrap:P6,wrapClass:Q1,compareVersions:R6,versionsCompatible:I6,configure:H,getConfig:Y,pushStack:J,popStack:$,getStack:Q,resetRuntime:G,enterUnsafe:z,exitUnsafe:D,isUnsafeMode:F,validate:Z1,infer:d0.infer.bind(d0),Type:v,isRuntimeType:J0,Union:F6,Generic:P0,Enum:w6,Nullable:_6,Optional:D6,TArray:q6,TString:K6,TNumber:H6,TBoolean:Y6,TInteger:$6,TPositiveInt:J6,TNonEmptyString:Q6,TEmail:z6,TUrl:G6,TUuid:W6,TPair:U6,TRecord:A6,Is:j0,IsNot:$1}}var Q0={version:c,MonadicError:G0,typeError:XX,isMonadicError:K1,isError:o,error:n,composeErrors:L6,typeOf:_0,isNativeType:J1,checkType:z0,validateArgs:M6,wrap:P6,wrapClass:Q1,compareVersions:R6,versionsCompatible:I6,configure:YX,getConfig:$X,pushStack:H1,popStack:m0,getStack:Y1,resetRuntime:JX,enterUnsafe:ZX,exitUnsafe:KX,isUnsafeMode:HX,createRuntime:QX,validate:Z1,infer:d0.infer.bind(d0),Type:v,isRuntimeType:J0,Union:F6,Generic:P0,Enum:w6,Nullable:_6,Optional:D6,TArray:q6,TString:K6,TNumber:H6,TBoolean:Y6,TInteger:$6,TPositiveInt:J6,TNonEmptyString:Q6,TEmail:z6,TUrl:G6,TUuid:W6,Timestamp:t6,LegalDate:e6,TPair:U6,TRecord:A6,Is:j0,IsNot:$1};function zX(){let X=globalThis;if(X.__tjs){let K=X.__tjs.version;if(typeof K!=="string")return X.__tjs=Q0,Q0;let Z=R6(c,K);if(Z===0)return X.__tjs;if(I6(c,K))if(Z>0)console.info(`TJS runtime: upgrading ${K} → ${c}`),X.__tjs=Q0;else console.info(`TJS runtime: keeping ${K} (newer than ${c})`);else if(console.warn(`TJS runtime version conflict: ${K} vs ${c} (major version mismatch)`),Z>0)console.warn(`Upgrading to ${c} - check for breaking changes`),X.__tjs=Q0;return X.__tjs}return X.__tjs=Q0,Q0}function GX(X){return`
292
+ `.trim(),results:K}}function f0(X,K={}){let{ast:Z,returnType:H,originalSource:Y,requiredParams:J}=Z0(X,{filename:K.filename,colonShorthand:!0,vmTarget:!0}),$=S6(Z,K.filename),{ast:Q,signature:G,warnings:z}=c0($,Y,H,K,J);return{ast:Q,signature:G,warnings:z}}function m8(X,...K){if(typeof X==="string")return f0(X).ast;let Z=X.reduce((H,Y,J)=>H+Y+(K[J]!==void 0?String(K[J]):""),"");return f0(Z).ast}function d8(X,K,Z){let{ast:H,signature:Y}=f0(X),J=async($)=>{return(await K.run(H,$,Z)).result};return J.signature=Y,J.ast=H,J}function b0(X){switch(X.kind){case"string":return{type:"string"};case"number":return{type:"number"};case"boolean":return{type:"boolean"};case"null":return{type:"null"};case"array":return{type:"array",items:X.items?b0(X.items):{}};case"object":if(!X.shape)return{type:"object"};return{type:"object",properties:Object.fromEntries(Object.entries(X.shape).map(([K,Z])=>[K,b0(Z)]))};case"union":if(!X.members)return{};return{anyOf:X.members.map(b0)};case"any":default:return{}}}function l8(X){return Object.entries(X).map(([K,Z])=>{let H=Z.signature,Y={},J=[];for(let[$,Q]of Object.entries(H.parameters)){if(Y[$]=b0(Q.type),Q.description)Y[$].description=Q.description;if(Q.required)J.push($)}return{type:"function",function:{name:K,description:H.description,parameters:{type:"object",properties:Y,required:J}}}})}function u8(X,K,...Z){if(typeof X==="string")return v0(X,K);let H=K!==void 0?[K,...Z]:Z,Y=X.reduce((J,$,Q)=>J+$+(H[Q]!==void 0?String(H[Q]):""),"");return v0(Y)}import{s as i6}from"tosijs-schema";function p6(X){if(X===null)return"null";if(X===void 0)return"undefined";if(Array.isArray(X))return"array";return typeof X}function y0(X){return i6.infer(X)}function e0(X){return y0(X)}e0.type=p6;e0.infer=y0;var i8=new Proxy(e0,{get(X,K){if(K==="type")return p6;if(K==="infer")return y0;return i6[K]},apply(X,K,Z){return y0(Z[0])}});function h0(X,K,Z,H,Y){if(!Z)Z=R;(function J($,Q,G){var z=G||$.type;if(Z[z]($,Q,J),K[z])K[z]($,Q)})(X,H,Y)}function n6(X,K,Z,H,Y){var J=[];if(!Z)Z=R;(function $(Q,G,z){var D=z||Q.type,F=Q!==J[J.length-1];if(F)J.push(Q);if(Z[D](Q,G,$),K[D])K[D](Q,G||J,J);if(F)J.pop()})(X,H,Y)}function X6(X,K,Z){Z(X,K)}function $0(X,K,Z){}var R={};R.Program=R.BlockStatement=R.StaticBlock=function(X,K,Z){for(var H=0,Y=X.body;H<Y.length;H+=1){var J=Y[H];Z(J,K,"Statement")}};R.Statement=X6;R.EmptyStatement=$0;R.ExpressionStatement=R.ParenthesizedExpression=R.ChainExpression=function(X,K,Z){return Z(X.expression,K,"Expression")};R.IfStatement=function(X,K,Z){if(Z(X.test,K,"Expression"),Z(X.consequent,K,"Statement"),X.alternate)Z(X.alternate,K,"Statement")};R.LabeledStatement=function(X,K,Z){return Z(X.body,K,"Statement")};R.BreakStatement=R.ContinueStatement=$0;R.WithStatement=function(X,K,Z){Z(X.object,K,"Expression"),Z(X.body,K,"Statement")};R.SwitchStatement=function(X,K,Z){Z(X.discriminant,K,"Expression");for(var H=0,Y=X.cases;H<Y.length;H+=1){var J=Y[H];Z(J,K)}};R.SwitchCase=function(X,K,Z){if(X.test)Z(X.test,K,"Expression");for(var H=0,Y=X.consequent;H<Y.length;H+=1){var J=Y[H];Z(J,K,"Statement")}};R.ReturnStatement=R.YieldExpression=R.AwaitExpression=function(X,K,Z){if(X.argument)Z(X.argument,K,"Expression")};R.ThrowStatement=R.SpreadElement=function(X,K,Z){return Z(X.argument,K,"Expression")};R.TryStatement=function(X,K,Z){if(Z(X.block,K,"Statement"),X.handler)Z(X.handler,K);if(X.finalizer)Z(X.finalizer,K,"Statement")};R.CatchClause=function(X,K,Z){if(X.param)Z(X.param,K,"Pattern");Z(X.body,K,"Statement")};R.WhileStatement=R.DoWhileStatement=function(X,K,Z){Z(X.test,K,"Expression"),Z(X.body,K,"Statement")};R.ForStatement=function(X,K,Z){if(X.init)Z(X.init,K,"ForInit");if(X.test)Z(X.test,K,"Expression");if(X.update)Z(X.update,K,"Expression");Z(X.body,K,"Statement")};R.ForInStatement=R.ForOfStatement=function(X,K,Z){Z(X.left,K,"ForInit"),Z(X.right,K,"Expression"),Z(X.body,K,"Statement")};R.ForInit=function(X,K,Z){if(X.type==="VariableDeclaration")Z(X,K);else Z(X,K,"Expression")};R.DebuggerStatement=$0;R.FunctionDeclaration=function(X,K,Z){return Z(X,K,"Function")};R.VariableDeclaration=function(X,K,Z){for(var H=0,Y=X.declarations;H<Y.length;H+=1){var J=Y[H];Z(J,K)}};R.VariableDeclarator=function(X,K,Z){if(Z(X.id,K,"Pattern"),X.init)Z(X.init,K,"Expression")};R.Function=function(X,K,Z){if(X.id)Z(X.id,K,"Pattern");for(var H=0,Y=X.params;H<Y.length;H+=1){var J=Y[H];Z(J,K,"Pattern")}Z(X.body,K,X.expression?"Expression":"Statement")};R.Pattern=function(X,K,Z){if(X.type==="Identifier")Z(X,K,"VariablePattern");else if(X.type==="MemberExpression")Z(X,K,"MemberPattern");else Z(X,K)};R.VariablePattern=$0;R.MemberPattern=X6;R.RestElement=function(X,K,Z){return Z(X.argument,K,"Pattern")};R.ArrayPattern=function(X,K,Z){for(var H=0,Y=X.elements;H<Y.length;H+=1){var J=Y[H];if(J)Z(J,K,"Pattern")}};R.ObjectPattern=function(X,K,Z){for(var H=0,Y=X.properties;H<Y.length;H+=1){var J=Y[H];if(J.type==="Property"){if(J.computed)Z(J.key,K,"Expression");Z(J.value,K,"Pattern")}else if(J.type==="RestElement")Z(J.argument,K,"Pattern")}};R.Expression=X6;R.ThisExpression=R.Super=R.MetaProperty=$0;R.ArrayExpression=function(X,K,Z){for(var H=0,Y=X.elements;H<Y.length;H+=1){var J=Y[H];if(J)Z(J,K,"Expression")}};R.ObjectExpression=function(X,K,Z){for(var H=0,Y=X.properties;H<Y.length;H+=1){var J=Y[H];Z(J,K)}};R.FunctionExpression=R.ArrowFunctionExpression=R.FunctionDeclaration;R.SequenceExpression=function(X,K,Z){for(var H=0,Y=X.expressions;H<Y.length;H+=1){var J=Y[H];Z(J,K,"Expression")}};R.TemplateLiteral=function(X,K,Z){for(var H=0,Y=X.quasis;H<Y.length;H+=1){var J=Y[H];Z(J,K)}for(var $=0,Q=X.expressions;$<Q.length;$+=1){var G=Q[$];Z(G,K,"Expression")}};R.TemplateElement=$0;R.UnaryExpression=R.UpdateExpression=function(X,K,Z){Z(X.argument,K,"Expression")};R.BinaryExpression=R.LogicalExpression=function(X,K,Z){Z(X.left,K,"Expression"),Z(X.right,K,"Expression")};R.AssignmentExpression=R.AssignmentPattern=function(X,K,Z){Z(X.left,K,"Pattern"),Z(X.right,K,"Expression")};R.ConditionalExpression=function(X,K,Z){Z(X.test,K,"Expression"),Z(X.consequent,K,"Expression"),Z(X.alternate,K,"Expression")};R.NewExpression=R.CallExpression=function(X,K,Z){if(Z(X.callee,K,"Expression"),X.arguments)for(var H=0,Y=X.arguments;H<Y.length;H+=1){var J=Y[H];Z(J,K,"Expression")}};R.MemberExpression=function(X,K,Z){if(Z(X.object,K,"Expression"),X.computed)Z(X.property,K,"Expression")};R.ExportNamedDeclaration=R.ExportDefaultDeclaration=function(X,K,Z){if(X.declaration)Z(X.declaration,K,X.type==="ExportNamedDeclaration"||X.declaration.id?"Statement":"Expression");if(X.source)Z(X.source,K,"Expression")};R.ExportAllDeclaration=function(X,K,Z){if(X.exported)Z(X.exported,K);Z(X.source,K,"Expression")};R.ImportDeclaration=function(X,K,Z){for(var H=0,Y=X.specifiers;H<Y.length;H+=1){var J=Y[H];Z(J,K)}Z(X.source,K,"Expression")};R.ImportExpression=function(X,K,Z){Z(X.source,K,"Expression")};R.ImportSpecifier=R.ImportDefaultSpecifier=R.ImportNamespaceSpecifier=R.Identifier=R.PrivateIdentifier=R.Literal=$0;R.TaggedTemplateExpression=function(X,K,Z){Z(X.tag,K,"Expression"),Z(X.quasi,K,"Expression")};R.ClassDeclaration=R.ClassExpression=function(X,K,Z){return Z(X,K,"Class")};R.Class=function(X,K,Z){if(X.id)Z(X.id,K,"Pattern");if(X.superClass)Z(X.superClass,K,"Expression");Z(X.body,K)};R.ClassBody=function(X,K,Z){for(var H=0,Y=X.body;H<Y.length;H+=1){var J=Y[H];Z(J,K)}};R.MethodDefinition=R.PropertyDefinition=R.Property=function(X,K,Z){if(X.computed)Z(X.key,K,"Expression");if(X.value)Z(X.value,K,"Expression")};var n8={unusedVariables:!0,undefinedVariables:!0,unreachableCode:!0,noExplicitNew:!0};function c8(X,K={}){let Z={...n8,...K},H=[],Y;try{Y=Z0(X,{filename:Z.filename,colonShorthand:!0}).ast}catch($){return{diagnostics:[{severity:"error",message:$.message,line:$.loc?.line,column:$.loc?.column,rule:"parse-error"}],valid:!1}}let J=[c6()];if(n6(Y,{FunctionDeclaration($,Q,G){let z=c6();J.push(z);for(let D of $.params)o8(z,D,"parameter");if($.id)(J[J.length-2]||J[0]).declarations.set($.id.name,{node:$.id,kind:"function",used:!1})},VariableDeclaration($){let Q=J[J.length-1];for(let G of $.declarations)if(G.id.type==="Identifier")Q.declarations.set(G.id.name,{node:G.id,kind:$.kind,used:!1})}}),h0(Y,{Identifier($){for(let Q=J.length-1;Q>=0;Q--){let G=J[Q].declarations.get($.name);if(G){G.used=!0;break}}}}),Z.unusedVariables)for(let $ of J)for(let[Q,G]of $.declarations){if(Q.startsWith("_"))continue;if(!G.used&&G.kind!=="function")H.push({severity:"warning",message:`'${Q}' is declared but never used`,line:G.node.loc?.start?.line,column:G.node.loc?.start?.column,rule:"no-unused-vars"})}if(Z.unreachableCode)h0(Y,{BlockStatement($){let Q=!1;for(let G of $.body){if(Q){H.push({severity:"warning",message:"Unreachable code after return statement",line:G.loc?.start?.line,column:G.loc?.start?.column,rule:"no-unreachable"});break}if(G.type==="ReturnStatement")Q=!0}}});if(Z.noExplicitNew)h0(Y,{NewExpression($){let Q="class";if($.callee.type==="Identifier")Q=$.callee.name;else if($.callee.type==="MemberExpression"){if($.callee.property.type==="Identifier")Q=$.callee.property.name}H.push({severity:"warning",message:`Unnecessary 'new' keyword. In TJS, classes are callable without 'new': ${Q}(...) instead of new ${Q}(...)`,line:$.loc?.start?.line,column:$.loc?.start?.column,rule:"no-explicit-new"})}});return{diagnostics:H,valid:H.filter(($)=>$.severity==="error").length===0}}function c6(){return{declarations:new Map}}function o8(X,K,Z){if(K.type==="Identifier")X.declarations.set(K.name,{node:K,kind:Z,used:!1});else if(K.type==="AssignmentPattern"&&K.left.type==="Identifier")X.declarations.set(K.left.name,{node:K.left,kind:Z,used:!1})}import{validate as Z1,s as d0}from"tosijs-schema";import{validate as Z6,s as x0}from"tosijs-schema";function J0(X){return X!==null&&typeof X==="object"&&"__runtimeType"in X&&X.__runtimeType===!0}function o6(X){return X!==null&&typeof X==="object"&&"schema"in X&&typeof X.schema==="object"}function s8(X){return X!==null&&typeof X==="object"&&"type"in X&&typeof X.type==="string"}function v(X,K,Z,H){let Y,J,$,Q=Z,G=H;if(typeof X==="string")if(Y=X,typeof K==="function"){if(J=K,Q!==void 0)$=x0.infer(Q)}else if(K===void 0&&Q!==void 0)$=x0.infer(Q);else if(o6(K))$=K;else if(s8(K))$=K;else if(K!==void 0)Q=K,G=Q,$=x0.infer(Q);else throw Error("Type(description) requires a predicate, schema, or example");else{if(o6(X))$=X;else $=X;Y=a8($)}let z;if($){let F=$?.schema??$;if(F&&typeof F==="object"&&Array.isArray(F.examples))z=F.examples}if(Q===void 0&&z&&z.length>0)Q=z[0];return{description:Y,check:(F)=>{if(J)return J(F);if($)return Z6(F,$);return!1},schema:$,predicate:J,example:Q,examples:z,default:G,__runtimeType:!0}}function a8(X){let K=X?.schema??X;if(K&&typeof K==="object"&&"type"in K){let Z=K;switch(Z.type){case"string":if(Z.format)return`string (${Z.format})`;if(Z.pattern)return`string matching ${Z.pattern}`;if(Z.minLength!==void 0&&Z.maxLength!==void 0)return`string (${Z.minLength}-${Z.maxLength} chars)`;return"string";case"number":case"integer":if(Z.minimum!==void 0&&Z.maximum!==void 0)return`${Z.type} (${Z.minimum}-${Z.maximum})`;if(Z.minimum!==void 0)return`${Z.type} >= ${Z.minimum}`;if(Z.maximum!==void 0)return`${Z.type} <= ${Z.maximum}`;return Z.type;case"boolean":return"boolean";case"array":return"array";case"object":return"object";case"null":return"null"}}return"value"}var K6=v("string",(X)=>typeof X==="string"),H6=v("number",(X)=>typeof X==="number"),Y6=v("boolean",(X)=>typeof X==="boolean"),$6=v("integer",(X)=>typeof X==="number"&&Number.isInteger(X)),J6=v("positive integer",(X)=>typeof X==="number"&&Number.isInteger(X)&&X>0),Q6=v("non-empty string",(X)=>typeof X==="string"&&X.length>0),z6=v("email address",(X)=>typeof X==="string"&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(X)),s6=(X)=>{try{return new URL(X),!0}catch{return!1}},G6=v("URL",(X)=>typeof X==="string"&&s6(X)),W6=v("UUID",(X)=>typeof X==="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(X)),a6=(X)=>{let K=new Date(X);return!isNaN(K.getTime())&&X.includes("T")},r6=(X)=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(X))return!1;let K=new Date(X+"T00:00:00Z");return!isNaN(K.getTime())},t6=v("ISO 8601 timestamp",(X)=>typeof X==="string"&&a6(X)),e6=v("date (YYYY-MM-DD)",(X)=>typeof X==="string"&&r6(X));function _6(X){return v(`${X.description} or null`,(K)=>K===null||X.check(K))}function D6(X){return v(`${X.description} (optional)`,(K)=>K===null||K===void 0||X.check(K))}function F6(X,K,...Z){if(typeof X==="string"&&Array.isArray(K)){let J=X,$=K,Q=new Set($);return{description:J,check:(z)=>Q.has(z),__runtimeType:!0,values:$}}let H=[];if(J0(X))H.push(X);if(J0(K))H.push(K);H.push(...Z);let Y=H.map((J)=>J.description).join(" | ");return v(Y,(J)=>H.some(($)=>$.check(J)))}function q6(X){return v(`array of ${X.description}`,(K)=>Array.isArray(K)&&K.every((Z)=>X.check(Z)))}function r8(X){if(J0(X))return(Z)=>X.check(Z);if(X&&typeof X==="object"&&"schema"in X)return(Z)=>Z6(Z,X);let K=x0.infer(X);return(Z)=>Z6(Z,K)}function j0(X,K,Z){let H=[],Y=[];for(let $ of X)if(typeof $==="string")H.push($),Y.push(void 0);else H.push($[0]),Y.push($[1]);let J=(...$)=>{let Q=H.map((z,D)=>{let F=D<$.length?$[D]:Y[D];if(F===void 0)return()=>!0;return r8(F)}),G=Z;return H.forEach((z,D)=>{let F=D<$.length?$[D]:Y[D],_="any";if(J0(F))_=F.description;else if(F!==void 0)_=typeof F==="string"?"string":JSON.stringify(F);G=G.replace(new RegExp(`\\b${z}\\b`,"g"),_)}),v(G,(z)=>K(z,...Q))};return J.params=H,J.description=Z,J}var U6=j0(["T","U"],(X,K,Z)=>Array.isArray(X)&&X.length===2&&K(X[0])&&Z(X[1]),"Pair<T, U>"),A6=j0(["V"],(X,K)=>typeof X==="object"&&X!==null&&!Array.isArray(X)&&Object.values(X).every(K),"Record<string, V>");function w6(X,K){let Z=Object.values(K),H=new Set(Z),Y=Object.keys(K),J={};for(let[Q,G]of Object.entries(K))J[G]=Q;return{description:X,check:(Q)=>H.has(Q),__runtimeType:!0,members:K,names:J,values:Z,keys:Y}}var e8=X1(),o=e8.version;function l0(X){let[K=0,Z=0,H=0]=X.split(".").map(Number);return{major:K,minor:Z,patch:H}}function R6(X,K){let Z=l0(X),H=l0(K);if(Z.major!==H.major)return Z.major<H.major?-1:1;if(Z.minor!==H.minor)return Z.minor<H.minor?-1:1;if(Z.patch!==H.patch)return Z.patch<H.patch?-1:1;return 0}function I6(X,K){let Z=l0(X),H=l0(K);return Z.major===H.major}class G0 extends Error{path;expected;actual;callStack;constructor(X,K,Z,H,Y){super(X);if(this.name="MonadicError",this.path=K,this.expected=Z,this.actual=H,this.callStack=Y,Error.captureStackTrace)Error.captureStackTrace(this,G0)}}function XX(X,K,Z){let H=Z===null?"null":typeof Z,Y=x.debug?Y1():void 0;return new G0(`Expected ${K} for '${X}', got ${H}`,X,K,H,Y)}function K1(X){return X instanceof G0}var B6={debug:!1,safety:"inputs",requireReturnTypes:!1,maxStackSize:100},x={...B6},a=[],D0=0;function ZX(){D0++}function KX(){if(D0>0)D0--}function HX(){return D0>0}function YX(X){x={...x,...X}}function $X(){return{...x}}function H1(X){if(x.debug&&X){a.push(X);let K=x.maxStackSize??100;while(a.length>K)a.shift()}}function m0(){if(x.debug)a.pop()}function Y1(){return[...a]}function JX(){x={...B6},a.length=0,D0=0}function P0(X,K){if(X!==null&&typeof X==="object"&&typeof X.Equals==="function")return X.Equals(K);if(K!==null&&typeof K==="object"&&typeof K.Equals==="function")return K.Equals(X);if(X===K)return!0;if((X===null||X===void 0)&&(K===null||K===void 0))return!0;if(X===null||X===void 0||K===null||K===void 0)return!1;if(typeof X!==typeof K)return!1;if(typeof X!=="object")return!1;if(Array.isArray(X)&&Array.isArray(K)){if(X.length!==K.length)return!1;return X.every((Y,J)=>P0(Y,K[J]))}if(Array.isArray(X)!==Array.isArray(K))return!1;let Z=Object.keys(X),H=Object.keys(K);if(Z.length!==H.length)return!1;return Z.every((Y)=>P0(X[Y],K[Y]))}function $1(X,K){return!P0(X,K)}function s(X){return X!==null&&typeof X==="object"&&X.$error===!0}function n(X,K){let Z={$error:!0,message:X,...K};if(x.debug&&a.length>0){let H=K?.path?[...a,K.path]:[...a];Z.stack=H}return Z}function L6(X,K){if(X.length===0)return n("Unknown error");if(X.length===1)return X[0];let Z=X.map((Y)=>{if(Y.path){let J=Y.path.split(".");return J[J.length-1]}return"unknown"}).join(", "),H=`Multiple parameter errors in ${K||"function"}: ${Z}`;return n(H,{path:K,errors:X})}function _0(X){if(X===null)return"null";if(X===void 0)return"undefined";if(Array.isArray(X))return"array";let K=typeof X;if(K!=="object")return K;let Z=X.constructor?.name;if(Z&&Z!=="Object")return Z;return"object"}function J1(X,K){if(X===null||X===void 0)return!1;if(typeof X!=="object"&&typeof X!=="function")return!1;let Z=X;while(Z!==null){if(Z.constructor?.name===K)return!0;Z=Object.getPrototypeOf(Z)}return!1}function z0(X,K,Z){if(s(X))return X;if(typeof K==="object"&&K!==null&&"check"in K){if(K.check(X))return null;return n(`Expected ${K.description} but got ${_0(X)}`,{path:Z,expected:K.description,actual:_0(X)})}let H=_0(X);if(K==="any")return null;if(K===H)return null;if(K==="number"&&H==="number")return null;if(K==="integer"&&H==="number"&&Number.isInteger(X))return null;if(K==="non-negative-integer"&&H==="number"&&Number.isInteger(X)&&X>=0)return null;if(K==="object"&&H==="object")return null;return n(`Expected ${K} but got ${H}`,{path:Z,expected:K,actual:H})}function M6(X,K,Z){for(let[H,Y]of Object.entries(K.params)){let J=X[H];if(s(J))return J;if(Y.required&&J===void 0){let Q=typeof Y.type==="string"?Y.type:Y.type.description;return n(`Missing required parameter '${H}'`,{path:Z?`${Z}.${H}`:H,expected:Q,actual:"undefined",loc:Y.loc})}if(J===void 0)continue;let $=z0(J,Y.type,Z?`${Z}.${H}`:H);if($){if(Y.loc)$.loc=Y.loc;return $}}return null}function j6(X,K){if(X.__tjs=K,!(K.safe||K.safeReturn||x.safety!=="none"&&!K.unsafe||K.returns&&x.safety==="all"&&!K.unsafeReturn))return X;let H=!!K.returns,Y=!!K.unsafe,J=!!K.safe,$=!!K.unsafeReturn,Q=!!K.safeReturn,G=Object.entries(K.params),z=G.length,D=X.name||K.name||"anonymous",F=function(..._){if(D0>0)return X.apply(this,_);let q=J||!Y&&x.safety!=="none",U=H&&(Q||!$&&x.safety==="all");if(!q&&!U)return X.apply(this,_);if(_.length>0&&s(_[0]))return _[0];if(q){let A=_.length===1&&typeof _[0]==="object"&&_[0]!==null&&!Array.isArray(_[0]),I=[];if(!A)for(let w=0;w<z;w++){let[B,j]=G[w],L=_[w];if(s(L)){I.push(L);continue}if(j.required&&L===void 0){I.push(n(`Missing required parameter '${B}'`,{path:`${D}.${B}`,expected:typeof j.type==="string"?j.type:j.type?.description||"value",actual:"undefined",loc:j.loc}));continue}if(L!==void 0){let M=z0(L,j.type,`${D}.${B}`);if(M){if(j.loc)M.loc=j.loc;I.push(M)}}}else{let w=_[0];for(let B=0;B<z;B++){let[j,L]=G[B],M=w[j];if(s(M)){I.push(M);continue}if(L.required&&M===void 0){I.push(n(`Missing required parameter '${j}'`,{path:`${D}.${j}`,expected:typeof L.type==="string"?L.type:L.type?.description||"value",actual:"undefined",loc:L.loc}));continue}if(M!==void 0){let P=z0(M,L.type,`${D}.${j}`);if(P){if(L.loc)P.loc=L.loc;I.push(P)}}}}if(I.length>0)return L6(I,D)}H1(D);try{let A=X.apply(this,_);if(U&&K.returns&&!s(A)){let I=z0(A,K.returns.type,`${D}()`);if(I)return m0(),I}return m0(),A}catch(A){return m0(),n(A.message||String(A),{path:D,cause:A})}};return Object.defineProperty(F,"name",{value:X.name}),F.__tjs=K,F}function Q1(X){let K=new Proxy(X,{construct(Z,H,Y){return Reflect.construct(Z,H,Y)},apply(Z,H,Y){return Reflect.construct(Z,Y)}});Object.defineProperty(K,"name",{value:X.name});for(let Z of Object.getOwnPropertyNames(X))if(Z!=="length"&&Z!=="name"&&Z!=="prototype")Object.defineProperty(K,Z,Object.getOwnPropertyDescriptor(X,Z));return K}function QX(){let X={...x},K=[],Z=0;function H(U){X={...X,...U}}function Y(){return{...X}}function J(U){if(X.debug&&U){K.push(U);let A=X.maxStackSize??100;while(K.length>A)K.shift()}}function $(){if(X.debug)K.pop()}function Q(){return[...K]}function G(){X={...B6},K.length=0,Z=0}function z(){Z++}function D(){if(Z>0)Z--}function F(){return Z>0}function _(U,A,I){let w=I===null?"null":typeof I,B=X.debug?Q():void 0;return new G0(`Expected ${A} for '${U}', got ${w}`,U,A,w,B)}function q(U,A){let I={$error:!0,message:U,...A};if(X.debug&&K.length>0){let w=A?.path?[...K,A.path]:[...K];I.stack=w}return I}return{version:o,MonadicError:G0,typeError:_,isMonadicError:K1,isError:s,error:q,composeErrors:L6,typeOf:_0,isNativeType:J1,checkType:z0,validateArgs:M6,wrap:j6,wrapClass:Q1,compareVersions:R6,versionsCompatible:I6,configure:H,getConfig:Y,pushStack:J,popStack:$,getStack:Q,resetRuntime:G,enterUnsafe:z,exitUnsafe:D,isUnsafeMode:F,validate:Z1,infer:d0.infer.bind(d0),Type:v,isRuntimeType:J0,Union:F6,Generic:j0,Enum:w6,Nullable:_6,Optional:D6,TArray:q6,TString:K6,TNumber:H6,TBoolean:Y6,TInteger:$6,TPositiveInt:J6,TNonEmptyString:Q6,TEmail:z6,TUrl:G6,TUuid:W6,TPair:U6,TRecord:A6,Is:P0,IsNot:$1}}var Q0={version:o,MonadicError:G0,typeError:XX,isMonadicError:K1,isError:s,error:n,composeErrors:L6,typeOf:_0,isNativeType:J1,checkType:z0,validateArgs:M6,wrap:j6,wrapClass:Q1,compareVersions:R6,versionsCompatible:I6,configure:YX,getConfig:$X,pushStack:H1,popStack:m0,getStack:Y1,resetRuntime:JX,enterUnsafe:ZX,exitUnsafe:KX,isUnsafeMode:HX,createRuntime:QX,validate:Z1,infer:d0.infer.bind(d0),Type:v,isRuntimeType:J0,Union:F6,Generic:j0,Enum:w6,Nullable:_6,Optional:D6,TArray:q6,TString:K6,TNumber:H6,TBoolean:Y6,TInteger:$6,TPositiveInt:J6,TNonEmptyString:Q6,TEmail:z6,TUrl:G6,TUuid:W6,Timestamp:t6,LegalDate:e6,TPair:U6,TRecord:A6,Is:P0,IsNot:$1};function zX(){let X=globalThis;if(X.__tjs){let K=X.__tjs.version;if(typeof K!=="string")return X.__tjs=Q0,Q0;let Z=R6(o,K);if(Z===0)return X.__tjs;if(I6(o,K))if(Z>0)console.info(`TJS runtime: upgrading ${K} → ${o}`),X.__tjs=Q0;else console.info(`TJS runtime: keeping ${K} (newer than ${o})`);else if(console.warn(`TJS runtime version conflict: ${K} vs ${o} (major version mismatch)`),Z>0)console.warn(`Upgrading to ${o} - check for breaking changes`),X.__tjs=Q0;return X.__tjs}return X.__tjs=Q0,Q0}function GX(X){return`
258
293
  // TJS runtime wrapper (skips unsafe functions)
259
294
  if (typeof ${X}.__tjs === 'object' && !${X}.__tjs.unsafe && typeof globalThis.__tjs?.wrap === 'function') {
260
295
  ${X} = globalThis.__tjs.wrap(${X}, ${X}.__tjs)
261
296
  }
262
- `.trim()}export{P6 as wrap,M6 as validateArgs,n0 as typeToString,_0 as typeOf,v0 as transpileToJS,f0 as transpile,c0 as transformFunction,u8 as tjs,$8 as testUtils,Q0 as runtime,O0 as preprocess,T6 as parseReturnType,e as parseParameter,Z0 as parse,c8 as lint,o as isError,zX as installRuntime,d as inferTypeFromValue,l8 as getToolDefinitions,s0 as extractTests,q0 as extractTDoc,t as extractLiteralValue,y6 as expectFunction,n as error,GX as emitRuntimeWrapper,d8 as createAgent,z0 as checkType,f6 as assertFunction,m8 as ajs,c as TJS_VERSION,i8 as Schema};
297
+ `.trim()}export{j6 as wrap,M6 as validateArgs,n0 as typeToString,_0 as typeOf,v0 as transpileToJS,f0 as transpile,c0 as transformFunction,u8 as tjs,$8 as testUtils,Q0 as runtime,O0 as preprocess,T6 as parseReturnType,e as parseParameter,Z0 as parse,c8 as lint,s as isError,zX as installRuntime,d as inferTypeFromValue,l8 as getToolDefinitions,s0 as extractTests,q0 as extractTDoc,c as extractLiteralValue,y6 as expectFunction,n as error,GX as emitRuntimeWrapper,d8 as createAgent,z0 as checkType,f6 as assertFunction,m8 as ajs,o as TJS_VERSION,i8 as Schema};
263
298
 
264
- //# debugId=86356C12F4E13E0F64756E2164756E21
299
+ //# debugId=608884568E0C267F64756E2164756E21