tjs-lang 0.6.35 → 0.6.37

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.
package/dist/index.js CHANGED
@@ -1,47 +1,47 @@
1
- var h8=Object.defineProperty;var x8=(Z,$)=>()=>($||Z(($={exports:{}}).exports,$),$.exports);var u8=(Z)=>Z;function d8(Z,$){this[Z]=u8.bind(null,$)}var l8=(Z,$)=>{for(var X in $)h8(Z,X,{get:$[X],enumerable:!0,configurable:!0,set:d8.bind($,X)})};var m8=(Z,$)=>()=>(Z&&($=Z(Z=0)),$);var T4=((Z)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(Z,{get:($,X)=>(typeof require<"u"?require:$)[X]}):Z)(function(Z){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+Z+'" is not supported')});var _7=x8((JH,NZ)=>{NZ.exports={name:"tjs-lang",version:"0.6.35",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","CLAUDE.md"],sideEffects:!1,repository:{type:"git",url:"https://github.com/tonioloewald/tjs-lang.git"},devDependencies:{"@codemirror/lang-css":"^6.3.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-javascript":"^6.2.4","@codemirror/lang-markdown":"^6.5.0","@codemirror/state":"^6.5.3","@codemirror/theme-one-dark":"^6.1.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:"^10.12.0","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 build:demo && npm run functions:deploy && firebase deploy --only hosting",start:"bun run build:demo && bun run dev"},dependencies:{acorn:"^8.15.0","acorn-walk":"^8.3.4","tosijs-schema":"^1.2.0"}}});var D6={};l8(D6,{sep:()=>M8,resolve:()=>F4,relative:()=>U8,posix:()=>j8,parse:()=>R8,normalize:()=>q6,join:()=>L8,isAbsolute:()=>_8,format:()=>B8,extname:()=>I8,dirname:()=>D8,delimiter:()=>w8,default:()=>wX,basename:()=>A8,_makeLong:()=>q8});function w1(Z){if(typeof Z!=="string")throw TypeError("Path must be a string. Received "+JSON.stringify(Z))}function J8(Z,$){var X="",Q=0,H=-1,K=0,Y;for(var z=0;z<=Z.length;++z){if(z<Z.length)Y=Z.charCodeAt(z);else if(Y===47)break;else Y=47;if(Y===47){if(H===z-1||K===1);else if(H!==z-1&&K===2){if(X.length<2||Q!==2||X.charCodeAt(X.length-1)!==46||X.charCodeAt(X.length-2)!==46){if(X.length>2){var W=X.lastIndexOf("/");if(W!==X.length-1){if(W===-1)X="",Q=0;else X=X.slice(0,W),Q=X.length-1-X.lastIndexOf("/");H=z,K=0;continue}}else if(X.length===2||X.length===1){X="",Q=0,H=z,K=0;continue}}if($){if(X.length>0)X+="/..";else X="..";Q=2}}else{if(X.length>0)X+="/"+Z.slice(H+1,z);else X=Z.slice(H+1,z);Q=z-H-1}H=z,K=0}else if(Y===46&&K!==-1)++K;else K=-1}return X}function MX(Z,$){var X=$.dir||$.root,Q=$.base||($.name||"")+($.ext||"");if(!X)return Q;if(X===$.root)return X+Q;return X+Z+Q}function F4(){var Z="",$=!1,X;for(var Q=arguments.length-1;Q>=-1&&!$;Q--){var H;if(Q>=0)H=arguments[Q];else{if(X===void 0)X=process.cwd();H=X}if(w1(H),H.length===0)continue;Z=H+"/"+Z,$=H.charCodeAt(0)===47}if(Z=J8(Z,!$),$)if(Z.length>0)return"/"+Z;else return"/";else if(Z.length>0)return Z;else return"."}function q6(Z){if(w1(Z),Z.length===0)return".";var $=Z.charCodeAt(0)===47,X=Z.charCodeAt(Z.length-1)===47;if(Z=J8(Z,!$),Z.length===0&&!$)Z=".";if(Z.length>0&&X)Z+="/";if($)return"/"+Z;return Z}function _8(Z){return w1(Z),Z.length>0&&Z.charCodeAt(0)===47}function L8(){if(arguments.length===0)return".";var Z;for(var $=0;$<arguments.length;++$){var X=arguments[$];if(w1(X),X.length>0)if(Z===void 0)Z=X;else Z+="/"+X}if(Z===void 0)return".";return q6(Z)}function U8(Z,$){if(w1(Z),w1($),Z===$)return"";if(Z=F4(Z),$=F4($),Z===$)return"";var X=1;for(;X<Z.length;++X)if(Z.charCodeAt(X)!==47)break;var Q=Z.length,H=Q-X,K=1;for(;K<$.length;++K)if($.charCodeAt(K)!==47)break;var Y=$.length,z=Y-K,W=H<z?H:z,G=-1,J=0;for(;J<=W;++J){if(J===W){if(z>W){if($.charCodeAt(K+J)===47)return $.slice(K+J+1);else if(J===0)return $.slice(K+J)}else if(H>W){if(Z.charCodeAt(X+J)===47)G=J;else if(J===0)G=0}break}var L=Z.charCodeAt(X+J),_=$.charCodeAt(K+J);if(L!==_)break;else if(L===47)G=J}var U="";for(J=X+G+1;J<=Q;++J)if(J===Q||Z.charCodeAt(J)===47)if(U.length===0)U+="..";else U+="/..";if(U.length>0)return U+$.slice(K+G);else{if(K+=G,$.charCodeAt(K)===47)++K;return $.slice(K)}}function q8(Z){return Z}function D8(Z){if(w1(Z),Z.length===0)return".";var $=Z.charCodeAt(0),X=$===47,Q=-1,H=!0;for(var K=Z.length-1;K>=1;--K)if($=Z.charCodeAt(K),$===47){if(!H){Q=K;break}}else H=!1;if(Q===-1)return X?"/":".";if(X&&Q===1)return"//";return Z.slice(0,Q)}function A8(Z,$){if($!==void 0&&typeof $!=="string")throw TypeError('"ext" argument must be a string');w1(Z);var X=0,Q=-1,H=!0,K;if($!==void 0&&$.length>0&&$.length<=Z.length){if($.length===Z.length&&$===Z)return"";var Y=$.length-1,z=-1;for(K=Z.length-1;K>=0;--K){var W=Z.charCodeAt(K);if(W===47){if(!H){X=K+1;break}}else{if(z===-1)H=!1,z=K+1;if(Y>=0)if(W===$.charCodeAt(Y)){if(--Y===-1)Q=K}else Y=-1,Q=z}}if(X===Q)Q=z;else if(Q===-1)Q=Z.length;return Z.slice(X,Q)}else{for(K=Z.length-1;K>=0;--K)if(Z.charCodeAt(K)===47){if(!H){X=K+1;break}}else if(Q===-1)H=!1,Q=K+1;if(Q===-1)return"";return Z.slice(X,Q)}}function I8(Z){w1(Z);var $=-1,X=0,Q=-1,H=!0,K=0;for(var Y=Z.length-1;Y>=0;--Y){var z=Z.charCodeAt(Y);if(z===47){if(!H){X=Y+1;break}continue}if(Q===-1)H=!1,Q=Y+1;if(z===46){if($===-1)$=Y;else if(K!==1)K=1}else if($!==-1)K=-1}if($===-1||Q===-1||K===0||K===1&&$===Q-1&&$===X+1)return"";return Z.slice($,Q)}function B8(Z){if(Z===null||typeof Z!=="object")throw TypeError('The "pathObject" argument must be of type Object. Received type '+typeof Z);return MX("/",Z)}function R8(Z){w1(Z);var $={root:"",dir:"",base:"",ext:"",name:""};if(Z.length===0)return $;var X=Z.charCodeAt(0),Q=X===47,H;if(Q)$.root="/",H=1;else H=0;var K=-1,Y=0,z=-1,W=!0,G=Z.length-1,J=0;for(;G>=H;--G){if(X=Z.charCodeAt(G),X===47){if(!W){Y=G+1;break}continue}if(z===-1)W=!1,z=G+1;if(X===46){if(K===-1)K=G;else if(J!==1)J=1}else if(K!==-1)J=-1}if(K===-1||z===-1||J===0||J===1&&K===z-1&&K===Y+1){if(z!==-1)if(Y===0&&Q)$.base=$.name=Z.slice(1,z);else $.base=$.name=Z.slice(Y,z)}else{if(Y===0&&Q)$.name=Z.slice(1,K),$.base=Z.slice(1,z);else $.name=Z.slice(Y,K),$.base=Z.slice(Y,z);$.ext=Z.slice(K,z)}if(Y>0)$.dir=Z.slice(0,Y-1);else if(Q)$.dir="/";return $}var M8="/",w8=":",j8,wX;var A6=m8(()=>{j8=((Z)=>(Z.posix=Z,Z))({resolve:F4,normalize:q6,isAbsolute:_8,join:L8,relative:U8,_makeLong:q8,dirname:D8,basename:A8,extname:I8,format:B8,parse:R8,sep:M8,delimiter:w8,win32:null,posix:null}),wX=j8});import*as X7 from"acorn";class p extends Error{line;column;source;filename;constructor(Z,$,X,Q){let H=`${Q||"<source>"}:${$.line}:${$.column}`;super(`${Z} at ${H}`);this.name="TranspileError",this.line=$.line,this.column=$.column,this.source=X,this.filename=Q}}class H1 extends p{constructor(Z,$,X,Q){super(Z,$,X,Q);this.name="SyntaxError"}formatWithContext(Z=2){if(!this.source)return this.message;let $=this.source.split(`
1
+ var h8=Object.defineProperty;var x8=(Z,$)=>()=>($||Z(($={exports:{}}).exports,$),$.exports);var u8=(Z)=>Z;function d8(Z,$){this[Z]=u8.bind(null,$)}var l8=(Z,$)=>{for(var X in $)h8(Z,X,{get:$[X],enumerable:!0,configurable:!0,set:d8.bind($,X)})};var m8=(Z,$)=>()=>(Z&&($=Z(Z=0)),$);var T4=((Z)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(Z,{get:($,X)=>(typeof require<"u"?require:$)[X]}):Z)(function(Z){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+Z+'" is not supported')});var _7=x8((LH,NZ)=>{NZ.exports={name:"tjs-lang",version:"0.6.37",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","CLAUDE.md"],sideEffects:!1,repository:{type:"git",url:"https://github.com/tonioloewald/tjs-lang.git"},devDependencies:{"@codemirror/lang-css":"^6.3.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-javascript":"^6.2.4","@codemirror/lang-markdown":"^6.5.0","@codemirror/state":"^6.5.3","@codemirror/theme-one-dark":"^6.1.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:"^10.12.0","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 build:demo && npm run functions:deploy && firebase deploy --only hosting",start:"bun run build:demo && bun run dev"},dependencies:{acorn:"^8.15.0","acorn-walk":"^8.3.4","tosijs-schema":"^1.2.0"}}});var D6={};l8(D6,{sep:()=>M8,resolve:()=>F4,relative:()=>U8,posix:()=>j8,parse:()=>R8,normalize:()=>q6,join:()=>L8,isAbsolute:()=>_8,format:()=>B8,extname:()=>I8,dirname:()=>D8,delimiter:()=>w8,default:()=>FX,basename:()=>A8,_makeLong:()=>q8});function j1(Z){if(typeof Z!=="string")throw TypeError("Path must be a string. Received "+JSON.stringify(Z))}function J8(Z,$){var X="",Q=0,H=-1,K=0,Y;for(var z=0;z<=Z.length;++z){if(z<Z.length)Y=Z.charCodeAt(z);else if(Y===47)break;else Y=47;if(Y===47){if(H===z-1||K===1);else if(H!==z-1&&K===2){if(X.length<2||Q!==2||X.charCodeAt(X.length-1)!==46||X.charCodeAt(X.length-2)!==46){if(X.length>2){var W=X.lastIndexOf("/");if(W!==X.length-1){if(W===-1)X="",Q=0;else X=X.slice(0,W),Q=X.length-1-X.lastIndexOf("/");H=z,K=0;continue}}else if(X.length===2||X.length===1){X="",Q=0,H=z,K=0;continue}}if($){if(X.length>0)X+="/..";else X="..";Q=2}}else{if(X.length>0)X+="/"+Z.slice(H+1,z);else X=Z.slice(H+1,z);Q=z-H-1}H=z,K=0}else if(Y===46&&K!==-1)++K;else K=-1}return X}function jX(Z,$){var X=$.dir||$.root,Q=$.base||($.name||"")+($.ext||"");if(!X)return Q;if(X===$.root)return X+Q;return X+Z+Q}function F4(){var Z="",$=!1,X;for(var Q=arguments.length-1;Q>=-1&&!$;Q--){var H;if(Q>=0)H=arguments[Q];else{if(X===void 0)X=process.cwd();H=X}if(j1(H),H.length===0)continue;Z=H+"/"+Z,$=H.charCodeAt(0)===47}if(Z=J8(Z,!$),$)if(Z.length>0)return"/"+Z;else return"/";else if(Z.length>0)return Z;else return"."}function q6(Z){if(j1(Z),Z.length===0)return".";var $=Z.charCodeAt(0)===47,X=Z.charCodeAt(Z.length-1)===47;if(Z=J8(Z,!$),Z.length===0&&!$)Z=".";if(Z.length>0&&X)Z+="/";if($)return"/"+Z;return Z}function _8(Z){return j1(Z),Z.length>0&&Z.charCodeAt(0)===47}function L8(){if(arguments.length===0)return".";var Z;for(var $=0;$<arguments.length;++$){var X=arguments[$];if(j1(X),X.length>0)if(Z===void 0)Z=X;else Z+="/"+X}if(Z===void 0)return".";return q6(Z)}function U8(Z,$){if(j1(Z),j1($),Z===$)return"";if(Z=F4(Z),$=F4($),Z===$)return"";var X=1;for(;X<Z.length;++X)if(Z.charCodeAt(X)!==47)break;var Q=Z.length,H=Q-X,K=1;for(;K<$.length;++K)if($.charCodeAt(K)!==47)break;var Y=$.length,z=Y-K,W=H<z?H:z,G=-1,J=0;for(;J<=W;++J){if(J===W){if(z>W){if($.charCodeAt(K+J)===47)return $.slice(K+J+1);else if(J===0)return $.slice(K+J)}else if(H>W){if(Z.charCodeAt(X+J)===47)G=J;else if(J===0)G=0}break}var L=Z.charCodeAt(X+J),_=$.charCodeAt(K+J);if(L!==_)break;else if(L===47)G=J}var U="";for(J=X+G+1;J<=Q;++J)if(J===Q||Z.charCodeAt(J)===47)if(U.length===0)U+="..";else U+="/..";if(U.length>0)return U+$.slice(K+G);else{if(K+=G,$.charCodeAt(K)===47)++K;return $.slice(K)}}function q8(Z){return Z}function D8(Z){if(j1(Z),Z.length===0)return".";var $=Z.charCodeAt(0),X=$===47,Q=-1,H=!0;for(var K=Z.length-1;K>=1;--K)if($=Z.charCodeAt(K),$===47){if(!H){Q=K;break}}else H=!1;if(Q===-1)return X?"/":".";if(X&&Q===1)return"//";return Z.slice(0,Q)}function A8(Z,$){if($!==void 0&&typeof $!=="string")throw TypeError('"ext" argument must be a string');j1(Z);var X=0,Q=-1,H=!0,K;if($!==void 0&&$.length>0&&$.length<=Z.length){if($.length===Z.length&&$===Z)return"";var Y=$.length-1,z=-1;for(K=Z.length-1;K>=0;--K){var W=Z.charCodeAt(K);if(W===47){if(!H){X=K+1;break}}else{if(z===-1)H=!1,z=K+1;if(Y>=0)if(W===$.charCodeAt(Y)){if(--Y===-1)Q=K}else Y=-1,Q=z}}if(X===Q)Q=z;else if(Q===-1)Q=Z.length;return Z.slice(X,Q)}else{for(K=Z.length-1;K>=0;--K)if(Z.charCodeAt(K)===47){if(!H){X=K+1;break}}else if(Q===-1)H=!1,Q=K+1;if(Q===-1)return"";return Z.slice(X,Q)}}function I8(Z){j1(Z);var $=-1,X=0,Q=-1,H=!0,K=0;for(var Y=Z.length-1;Y>=0;--Y){var z=Z.charCodeAt(Y);if(z===47){if(!H){X=Y+1;break}continue}if(Q===-1)H=!1,Q=Y+1;if(z===46){if($===-1)$=Y;else if(K!==1)K=1}else if($!==-1)K=-1}if($===-1||Q===-1||K===0||K===1&&$===Q-1&&$===X+1)return"";return Z.slice($,Q)}function B8(Z){if(Z===null||typeof Z!=="object")throw TypeError('The "pathObject" argument must be of type Object. Received type '+typeof Z);return jX("/",Z)}function R8(Z){j1(Z);var $={root:"",dir:"",base:"",ext:"",name:""};if(Z.length===0)return $;var X=Z.charCodeAt(0),Q=X===47,H;if(Q)$.root="/",H=1;else H=0;var K=-1,Y=0,z=-1,W=!0,G=Z.length-1,J=0;for(;G>=H;--G){if(X=Z.charCodeAt(G),X===47){if(!W){Y=G+1;break}continue}if(z===-1)W=!1,z=G+1;if(X===46){if(K===-1)K=G;else if(J!==1)J=1}else if(K!==-1)J=-1}if(K===-1||z===-1||J===0||J===1&&K===z-1&&K===Y+1){if(z!==-1)if(Y===0&&Q)$.base=$.name=Z.slice(1,z);else $.base=$.name=Z.slice(Y,z)}else{if(Y===0&&Q)$.name=Z.slice(1,K),$.base=Z.slice(1,z);else $.name=Z.slice(Y,K),$.base=Z.slice(Y,z);$.ext=Z.slice(K,z)}if(Y>0)$.dir=Z.slice(0,Y-1);else if(Q)$.dir="/";return $}var M8="/",w8=":",j8,FX;var A6=m8(()=>{j8=((Z)=>(Z.posix=Z,Z))({resolve:F4,normalize:q6,isAbsolute:_8,join:L8,relative:U8,_makeLong:q8,dirname:D8,basename:A8,extname:I8,format:B8,parse:R8,sep:M8,delimiter:w8,win32:null,posix:null}),FX=j8});import*as X7 from"acorn";class n extends Error{line;column;source;filename;constructor(Z,$,X,Q){let H=`${Q||"<source>"}:${$.line}:${$.column}`;super(`${Z} at ${H}`);this.name="TranspileError",this.line=$.line,this.column=$.column,this.source=X,this.filename=Q}}class z1 extends n{constructor(Z,$,X,Q){super(Z,$,X,Q);this.name="SyntaxError"}formatWithContext(Z=2){if(!this.source)return this.message;let $=this.source.split(`
2
2
  `),X=this.line-1,Q=Math.max(0,X-Z),H=Math.min($.length-1,X+Z),K=[],Y=String(H+1).length;for(let z=Q;z<=H;z++){let W=String(z+1).padStart(Y),G=z===X?">":" ";if(K.push(`${G} ${W} | ${$[z]}`),z===X){let J=" ".repeat(Y+4+this.column);K.push(`${J}^ ${this.message.split(" at ")[0]}`)}}return K.join(`
3
- `)}}class i8 extends p{expected;received;suggestion;constructor(Z,$,X){super(Z,$,X?.source,X?.filename);this.name="TypeError",this.expected=X?.expected,this.received=X?.received,this.suggestion=X?.suggestion}}function G1(Z){return{depth:Z.depth+1,locals:new Map,parent:Z,parameters:Z.parameters,atoms:Z.atoms,warnings:Z.warnings,source:Z.source,filename:Z.filename,options:Z.options}}function p8(Z,$){if($.locals.has(Z))return $.locals.get(Z);if($.parameters.has(Z))return $.parameters.get(Z)?.type;if($.parent)return p8(Z,$.parent);return}function n(Z){if(Z.loc)return{line:Z.loc.start.line,column:Z.loc.start.column};return{line:1,column:0}}function b0(Z,$){let X="",Q=0,H,K,Y="normal",z=[],W=[{type:"top-level",braceDepth:0}],G=0,J=()=>W[W.length-1]?.type||"top-level",L=()=>{let _=W[W.length-1];return _?.type==="class-body"&&G===_.braceDepth+1};while(Q<Z.length){let _=Z[Q],U=Z[Q+1];switch(Y){case"single-string":if(X+=_,_==="\\"&&Q+1<Z.length){X+=U,Q+=2;continue}if(_==="'")Y="normal";Q++;continue;case"double-string":if(X+=_,_==="\\"&&Q+1<Z.length){X+=U,Q+=2;continue}if(_==='"')Y="normal";Q++;continue;case"template-string":if(X+=_,_==="\\"&&Q+1<Z.length){X+=U,Q+=2;continue}if(_==="$"&&U==="{"){X+=U,Q+=2,z.push(1),Y="normal";continue}if(_==="`")Y="normal";Q++;continue;case"line-comment":if(X+=_,_===`
4
- `)Y="normal";Q++;continue;case"block-comment":if(X+=_,_==="*"&&U==="/"){X+=U,Q+=2,Y="normal";continue}Q++;continue;case"regex":if(X+=_,_==="\\"&&Q+1<Z.length){X+=U,Q+=2;continue}if(_==="["){Q++;while(Q<Z.length&&Z[Q]!=="]")if(X+=Z[Q],Z[Q]==="\\"&&Q+1<Z.length)X+=Z[Q+1],Q+=2;else Q++;if(Q<Z.length)X+=Z[Q],Q++;continue}if(_==="/"){Q++;while(Q<Z.length&&/[gimsuy]/.test(Z[Q]))X+=Z[Q],Q++;Y="normal";continue}Q++;continue;case"normal":if(z.length>0){if(_==="{")z[z.length-1]++;else if(_==="}"){if(z[z.length-1]--,z[z.length-1]===0){z.pop(),X+=_,Q++,Y="template-string";continue}}}if(_==="'"){X+=_,Q++,Y="single-string";continue}if(_==='"'){X+=_,Q++,Y="double-string";continue}if(_==="`"){X+=_,Q++,Y="template-string";continue}if(_==="/"&&U==="/"){X+=_+U,Q+=2,Y="line-comment";continue}if(_==="/"&&U==="*"){X+=_+U,Q+=2,Y="block-comment";continue}if(_==="/"){let R=X.trimEnd();if(!R[R.length-1]||/[=(!,;:{[&|?+\-*%<>~^]$/.test(R)||/\b(return|case|throw|in|of|typeof|instanceof|new|delete|void)\s*$/.test(R)){X+=_,Q++,Y="regex";continue}}break}if(_==="{"){G++,X+=_,Q++;continue}if(_==="}"){G--;let R=W[W.length-1];if(R&&G===R.braceDepth)W.pop();X+=_,Q++;continue}let q=Z.slice(Q).match(/^class\s+\w+(?:\s+extends\s+\w+)?\s*\{/);if(q){let R=q[0].slice(0,-1);X+=R,Q+=R.length,W.push({type:"class-body",braceDepth:G});continue}let I=Z.slice(Q).match(/^function\s+(\w+)\s*\(/);if(I){let R=I[1],P=I[0].length,B=Z[Q+P],F=null,N=Q+P;if(B==="?"||B==="!")if(F=B,N++,F==="!")$.unsafeFunctions.add(R);else $.safeFunctions.add(R);X+=`function ${R}(`,Q=N;let V=S0(Z,Q,"(",")");if(!V){X+=Z[Q],Q++;continue}let{content:w,endPos:C}=V;Q=C;let O=S4(w,$,!0);X+=O+")";let k=Q;while(k<Z.length&&/\s/.test(Z[k]))k++;let S=Z.slice(k,k+2);if(S==="->"||S==="-?"||S==="-!"){k+=2;while(k<Z.length&&/\s/.test(Z[k]))k++;let b=T0(Z,k);if(b){let{type:h,endPos:u}=b;if(H===void 0){if(H=h,S==="-?")K="safe";else if(S==="-!")K="unsafe"}Q=u}}continue}let M=Z.slice(Q).match(/^(constructor|(?:get|set)\s+\w+|async\s+\w+|\w+)\s*\(/);if(M&&L()){let R=M[1],P=M[0].length,B=Q+P;X+=R+"(",Q=B;let F=S0(Z,Q,"(",")");if(!F){X+=Z[Q],Q++;continue}let{content:N,endPos:V}=F;Q=V;let w=S4(N,$,!0);X+=w+")";let C=Q;while(C<Z.length&&/\s/.test(Z[C]))C++;let O=Z.slice(C,C+2);if(O==="->"||O==="-!"||O==="-?"){C+=2;while(C<Z.length&&/\s/.test(Z[C]))C++;let k=T0(Z,C);if(k)Q=k.endPos}else if(Z[C]===":"){C++;while(C<Z.length&&/\s/.test(Z[C]))C++;let k=T0(Z,C);if(k)Q=k.endPos}continue}if(Z[Q]==="("){let R=S0(Z,Q+1,"(",")");if(!R){X+=Z[Q],Q++;continue}let{content:P,endPos:B}=R,F=B;while(F<Z.length&&/\s/.test(Z[F]))F++;let N,V=Z.slice(F,F+2);if(V==="->"||V==="-?"||V==="-!"){F+=2;while(F<Z.length&&/\s/.test(Z[F]))F++;let w=T0(Z,F);if(w){N=w.type,F=w.endPos;while(F<Z.length&&/\s/.test(Z[F]))F++}}if(Z.slice(F,F+2)==="=>"){let w=null,C=P,O=P.trimStart();if(O.startsWith("?")&&(O.length===1||/\s/.test(O[1])))w="?",C=O.slice(1);else if(O.startsWith("!")&&(O.length===1||/\s/.test(O[1])))w="!",C=O.slice(1);let k=S4(C,$,!1);X+=`(${w==="?"?"/* safe */ ":w==="!"?"/* unsafe */ ":""}${k})`,Q=B;while(Q<F&&/\s/.test(Z[Q]))X+=Z[Q],Q++;if(N)Q=F}else{let w=b0(P,$);X+=`(${w.source})`,Q=B}continue}X+=Z[Q],Q++}return{source:X,returnType:H,returnSafety:K}}function S0(Z,$,X,Q){let H=1,K=$,Y=!1,z="";while(K<Z.length&&H>0){let W=Z[K];if(!Y&&(W==="'"||W==='"'||W==="`"))Y=!0,z=W;else if(Y&&W===z&&Z[K-1]!=="\\")Y=!1;else if(!Y){if(W===X)H++;else if(W===Q)H--}K++}if(H!==0)return null;return{content:Z.slice($,K-1),endPos:K}}function S6(Z,$){let X=$;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X>=Z.length)return null;let Q=X,H=Z[X];if(H==="{"||H==="["){let Y=H==="{"?"}":"]",z=S0(Z,X+1,H,Y);if(!z)return null;return{value:Z.slice(Q,z.endPos),endPos:z.endPos}}if(H==="'"||H==='"'||H==="`"){X++;while(X<Z.length){if(Z[X]===H&&Z[X-1]!=="\\")return X++,{value:Z.slice(Q,X),endPos:X};X++}return null}if(/[-+\d]/.test(H)){while(X<Z.length&&/[\d.eE+-]/.test(Z[X]))X++;return{value:Z.slice(Q,X),endPos:X}}let K=Z.slice(X).match(/^(true|false|null|undefined)\b/);if(K)return{value:K[1],endPos:X+K[1].length};return null}function Y0(Z){return Z.replace(/(?<!\|)\|(?!\|)/g," || ")}function T0(Z,$){let X=$,Q=0,H=!1,K="",Y=!1,z=(W)=>({type:Y0(Z.slice($,W).trim()),endPos:W});while(X<Z.length){let W=Z[X];if(!H&&(W==="'"||W==='"'||W==="`")){H=!0,K=W,Y=!0,X++;continue}if(H){if(W===K&&Z[X-1]!=="\\"){if(H=!1,X++,Q===0){let G=X;while(G<Z.length&&/\s/.test(Z[G]))G++;if(Z[G]==="{"){if(!Z.slice(G+1).match(/^\s*(\w+)\s*:/))return z(X)}if(Z[G]!=="|"&&Z[G]!=="&")return z(X)}continue}X++;continue}if(W==="{"||W==="["||W==="("){Q++,Y=!0,X++;continue}if(W==="}"||W==="]"||W===")"){if(Q--,Q===0){X++;let G=X;while(G<Z.length&&/\s/.test(Z[G]))G++;if(Z[G]==="|"||Z[G]==="&")continue;return z(X)}X++;continue}if(Q===0&&W==="{"){if(Y)return z(X);if(Z.slice(X+1).match(/^\s*(\w+)\s*:/)){Q++,Y=!0,X++;continue}return z(X)}if(Q===0&&(W==="|"||W==="&")){if(X++,X<Z.length&&Z[X]==="|")X++;while(X<Z.length&&/\s/.test(Z[X]))X++;continue}if(Q===0&&(/\d/.test(W)||W==="-"&&/\d/.test(Z[X+1]))){let G=X;if(Z[G]==="-")G++;while(G<Z.length&&/\d/.test(Z[G]))G++;if(G<Z.length&&Z[G]==="."&&/\d/.test(Z[G+1])){G++;while(G<Z.length&&/\d/.test(Z[G]))G++}if(G<Z.length&&(Z[G]==="e"||Z[G]==="E")){if(G++,G<Z.length&&(Z[G]==="+"||Z[G]==="-"))G++;while(G<Z.length&&/\d/.test(Z[G]))G++}Y=!0,X=G;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X<Z.length&&Z[X]==="{")return{type:Y0(Z.slice($,G).trim()),endPos:G};if(Z[X]!=="|"&&Z[X]!=="&")return{type:Y0(Z.slice($,G).trim()),endPos:G};continue}if(Q===0&&/[a-zA-Z_]/.test(W)){let G=X;while(G<Z.length&&/\w/.test(Z[G]))G++;Y=!0,X=G;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X<Z.length&&Z[X]==="("){Q++,X++;continue}if(X<Z.length&&Z[X]==="{"){if(!Z.slice(X+1).match(/^\s*(\w+)\s*:/)){let L=G;while(L>$&&/\s/.test(Z[L-1]))L--;return{type:Y0(Z.slice($,L).trim()),endPos:G}}}if(Z[X]!=="|"&&Z[X]!=="&")return{type:Y0(Z.slice($,G).trim()),endPos:G};continue}X++}if(Y)return z(X);return null}function v0(Z){let $=[],X="",Q=0,H=!1,K=!1,Y=0;while(Y<Z.length){let z=Z[Y],W=Z[Y+1];if(!K&&z==="/"&&W==="/"){H=!0,X+="//",Y+=2;continue}if(!H&&z==="/"&&W==="*"){K=!0,X+="/*",Y+=2;continue}if(H&&z===`
5
- `){H=!1,X+=z,Y++;continue}if(K&&z==="*"&&W==="/"){K=!1,X+="*/",Y+=2;continue}if(H||K){X+=z,Y++;continue}if(z==="("||z==="{"||z==="[")Q++,X+=z;else if(z===")"||z==="}"||z==="]")Q--,X+=z;else if(z===","&&Q===0)$.push(X),X="";else X+=z;Y++}if(X.trim())$.push(X);return $}function S4(Z,$,X){let Q=b0(Z,{originalSource:Z,requiredParams:$.requiredParams,unsafeFunctions:$.unsafeFunctions,safeFunctions:$.safeFunctions}).source,H=v0(Q),K=!1,Y=new Set,z=(G)=>{if(X&&/^\w+$/.test(G)){if(Y.has(G))throw Error(`Duplicate parameter name '${G}'`);Y.add(G)}};return H.map((G)=>{let J=G.trim();if(!J)return G;if(X&&J.startsWith("{")&&J.endsWith("}")){let U=J.slice(1,-1);return`{ ${E6(U,$)} }`}if(X&&J.startsWith("[")&&J.endsWith("]")){let U=J.slice(1,-1);return`[ ${E6(U,$)} ]`}if(J.startsWith("...")){let U=T6(J);if(U!==-1)return J.slice(0,U).trim();return G}let L=J.match(/^(\w+)\s*\?\s*:\s*(.+)$/);if(L){let[,U,q]=L;return z(U),K=!0,`${U} = ${q}`}if(!n8(J)){let U=J.match(/^(\w+)\s*=/);if(U)z(U[1]);return K=!0,G}let _=T6(J);if(_!==-1){let U=J.slice(0,_).trim(),q=J.slice(_+1).trim();if(z(U),K&&X&&/^\w+$/.test(U));if(X&&/^\w+$/.test(U))$.requiredParams.add(U);return`${U} = ${q}`}return G}).join(",")}function E6(Z,$){return v0(Z).map((H)=>{let K=H.trim();if(!K)return H;let Y=K.match(/^(\w+)\s*:\s*(\{[\s\S]*\})$/);if(Y){let[,G,J]=Y;$.requiredParams.add(G);let L=k0(J);return`${G} = ${L}`}let z=K.match(/^(\w+)\s*:\s*(\[[\s\S]*\])$/);if(z){let[,G,J]=z;$.requiredParams.add(G);let L=g0(J);return`${G} = ${L}`}let W=K.match(/^(\w+)\s*:\s*([\s\S]+)$/);if(W){let[,G,J]=W;return $.requiredParams.add(G),`${G} = ${J}`}return H}).join(", ")}function k0(Z){let $=Z.slice(1,-1).trim();return`{ ${v0($).map((H)=>{let K=H.trim();if(!K)return H;let Y=K.match(/^(\w+)\s*:\s*(\{[\s\S]*\})$/);if(Y){let[,L,_]=Y;return`${L}: ${k0(_)}`}let z=K.match(/^(\w+)\s*=\s*(\{[\s\S]*\})$/);if(z){let[,L,_]=z;return`${L}: ${k0(_)}`}let W=K.match(/^(\w+)\s*:\s*(\[[\s\S]*\])$/);if(W){let[,L,_]=W;return`${L}: ${g0(_)}`}let G=K.match(/^(\w+)\s*=\s*(\[[\s\S]*\])$/);if(G){let[,L,_]=G;return`${L}: ${g0(_)}`}let J=K.match(/^(\w+)\s*=\s*([\s\S]+)$/);if(J){let[,L,_]=J;return`${L}: ${_}`}return H}).join(", ")} }`}function g0(Z){let $=Z.slice(1,-1).trim();return`[ ${v0($).map((H)=>{let K=H.trim();if(!K)return H;if(K.startsWith("{")&&K.endsWith("}"))return k0(K);if(K.startsWith("[")&&K.endsWith("]"))return g0(K);return H}).join(", ")} ]`}function n8(Z){let $=0,X=!1,Q=!1,H=!1,K="";for(let Y=0;Y<Z.length;Y++){let z=Z[Y];if(!H&&(z==="'"||z==='"'||z==="`")){H=!0,K=z;continue}if(H){if(z===K&&Z[Y-1]!=="\\")H=!1;continue}if(z==="("||z==="{"||z==="[")$++;else if(z===")"||z==="}"||z==="]")$--;else if($===0){if(z===":")X=!0;if(z==="="&&Z[Y+1]!==">")Q=!0}}return X&&!Q}function T6(Z){let $=0,X=!1,Q="";for(let H=0;H<Z.length;H++){let K=Z[H];if(!X&&(K==="'"||K==='"'||K==="`")){X=!0,Q=K;continue}if(X){if(K===Q&&Z[H-1]!=="\\")X=!1;continue}if(K==="("||K==="{"||K==="[")$++;else if(K===")"||K==="}"||K==="]")$--;else if($===0&&K===":")return H}return-1}function c8(Z,$){let X=Z.match($);if(!X)return null;let Q=X.index+X[0].length-1,H=1,K=Q+1;while(K<Z.length&&H>0){if(Z[K]==="{")H++;else if(Z[K]==="}")H--;K++}if(H!==0)return null;let Y=Z.slice(Q,K),z=[X[0].slice(0,-1)+Y,Y];return z.index=X.index,z}function v6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\btry\s*\{/);if(Q){let K=X+Q[0].length-1+1,Y=1,z=K;while(z<Z.length&&Y>0){let G=Z[z];if(G==="{")Y++;else if(G==="}")Y--;z++}if(Y!==0){$+=Z[X],X++;continue}if(Z.slice(z).match(/^\s*(catch|finally)\b/))$+=Z.slice(X,z),X=z;else{let G=Z.slice(K,z-1);$+=`try {${G}} catch (__try_err) { return new (__tjs?.MonadicError ?? Error)(__try_err?.message || String(__try_err), 'try', undefined, undefined, __tjs?.getStack?.()) }`,X=z}}else $+=Z[X],X++}return $}function f6(Z){let $=[],X="",Q=0,H=0;while(Q<Z.length){let K=Z.slice(Q).match(/^\bwasm\s*\{/);if(K){let Y=Q,z=Q+K[0].length,W=1,G=z;while(G<Z.length&&W>0){let V=Z[G];if(V==="{")W++;else if(V==="}")W--;G++}if(W!==0){X+=Z[Q],Q++;continue}let J=Z.slice(z,G-1),L,_=G,U=Z.slice(G).match(/^\s*fallback\s*\{/);if(U){let V=G+U[0].length;W=1;let w=V;while(w<Z.length&&W>0){let C=Z[w];if(C==="{")W++;else if(C==="}")W--;w++}if(W===0)L=Z.slice(V,w-1),_=w}let I=s8(J).map((V)=>{let w=a8(Z,Y,V);return w?`${V}: ${w}`:V}),M={id:`__tjs_wasm_${H}`,body:J,fallback:L,captures:I,start:Y,end:_};$.push(M);let R=L??J,P=I.map((V)=>V.split(":")[0].trim()),B=P.length>0?P.join(", "):"",F=P.length>0?`globalThis.${M.id}(${B})`:`globalThis.${M.id}()`,N=`(globalThis.${M.id} ? ${F} : (() => {${R}})())`;X+=N,Q=_,H++}else X+=Z[Q],Q++}return{source:X,blocks:$}}function o8(Z){return Z.startsWith("f32x4_")||Z.startsWith("v128_")}function s8(Z){let $=Z.replace(/\/\/[^\n]*/g,"").replace(/\/\*[\s\S]*?\*\//g,""),X=new Set,Q=/\.([a-zA-Z_$][a-zA-Z0-9_$]*)\b/g,H;while((H=Q.exec($))!==null)X.add(H[1]);let K=/(?<!\.)(\b[a-zA-Z_$][a-zA-Z0-9_$]*)\b/g,Y=new Set;while((H=K.exec($))!==null)Y.add(H[1]);for(let _ of X){if(!Y.has(_))continue;let U=new RegExp(`(?<!\\.)\\b${_}\\b`,"g"),q=new RegExp(`\\.${_}\\b`,"g"),I=$.match(U)?.length||0,M=$.match(q)?.length||0;if(I<=M)Y.delete(_)}let z=new Set,W=/\b(?:let|const|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/g;while((H=W.exec($))!==null)z.add(H[1]);let G=/\bfor\s*\(\s*(?:let|const|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/g;while((H=G.exec($))!==null)z.add(H[1]);let J=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","wasmBuffer"]),L=[];for(let _ of Y)if(!z.has(_)&&!J.has(_)&&!o8(_))L.push(_);return L.sort()}function a8(Z,$,X){let Q=Z.slice(0,$),H=/function\s+\w+\s*\(([^)]*)\)\s*(?:->.*?)?\s*\{[^}]*$/,K=Q.match(H);if(!K){let Y=/(?:const|let|var)?\s*\w+\s*=\s*(?:async\s*)?\(([^)]*)\)\s*(?:=>|->)?\s*\{[^}]*$/,z=Q.match(Y);if(!z)return;return k6(z[1],X)}return k6(K[1],X)}function k6(Z,$){let X=Z.split(",").map((Q)=>Q.trim());for(let Q of X){let H=Q.match(new RegExp(`^${$}\\s*:\\s*([A-Za-z][A-Za-z0-9]*)`));if(H)return H[1];let K=Q.match(new RegExp(`^${$}\\s*=\\s*(Float32Array|Float64Array|Int32Array|Uint8Array|Int8Array|Int16Array|Uint16Array|Uint32Array)`));if(K)return K[1]}return}function y6(Z){let X=new RegExp(`([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")\\s+IsNot\\s+([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")`,"g");Z=Z.replace(X,"IsNot($1, $2)");let Q=new RegExp(`([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")\\s+Is\\s+([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")`,"g");return Z=Z.replace(Q,"Is($1, $2)"),Z}function h6(Z){let $=/^[\s]*[([/+\-`]/,X=/[{([,;:+\-*/%=&|?<>!~^]\s*$|^\s*$/,Q=/\b(return|throw|yield|await|case|default|extends|new|typeof|void|delete|in|of|instanceof)\s*$/,H=Z.split(`
3
+ `)}}class i8 extends n{expected;received;suggestion;constructor(Z,$,X){super(Z,$,X?.source,X?.filename);this.name="TypeError",this.expected=X?.expected,this.received=X?.received,this.suggestion=X?.suggestion}}function _1(Z){return{depth:Z.depth+1,locals:new Map,parent:Z,parameters:Z.parameters,atoms:Z.atoms,warnings:Z.warnings,source:Z.source,filename:Z.filename,options:Z.options}}function p8(Z,$){if($.locals.has(Z))return $.locals.get(Z);if($.parameters.has(Z))return $.parameters.get(Z)?.type;if($.parent)return p8(Z,$.parent);return}function c(Z){if(Z.loc)return{line:Z.loc.start.line,column:Z.loc.start.column};return{line:1,column:0}}function b0(Z,$){let X="",Q=0,H,K,Y="normal",z=[],W=[{type:"top-level",braceDepth:0}],G=0,J=()=>W[W.length-1]?.type||"top-level",L=()=>{let _=W[W.length-1];return _?.type==="class-body"&&G===_.braceDepth+1};while(Q<Z.length){let _=Z[Q],U=Z[Q+1];switch(Y){case"single-string":if(X+=_,_==="\\"&&Q+1<Z.length){X+=U,Q+=2;continue}if(_==="'")Y="normal";Q++;continue;case"double-string":if(X+=_,_==="\\"&&Q+1<Z.length){X+=U,Q+=2;continue}if(_==='"')Y="normal";Q++;continue;case"template-string":if(X+=_,_==="\\"&&Q+1<Z.length){X+=U,Q+=2;continue}if(_==="$"&&U==="{"){X+=U,Q+=2,z.push(1),Y="normal";continue}if(_==="`")Y="normal";Q++;continue;case"line-comment":if(X+=_,_===`
4
+ `)Y="normal";Q++;continue;case"block-comment":if(X+=_,_==="*"&&U==="/"){X+=U,Q+=2,Y="normal";continue}Q++;continue;case"regex":if(X+=_,_==="\\"&&Q+1<Z.length){X+=U,Q+=2;continue}if(_==="["){Q++;while(Q<Z.length&&Z[Q]!=="]")if(X+=Z[Q],Z[Q]==="\\"&&Q+1<Z.length)X+=Z[Q+1],Q+=2;else Q++;if(Q<Z.length)X+=Z[Q],Q++;continue}if(_==="/"){Q++;while(Q<Z.length&&/[gimsuy]/.test(Z[Q]))X+=Z[Q],Q++;Y="normal";continue}Q++;continue;case"normal":if(z.length>0){if(_==="{")z[z.length-1]++;else if(_==="}"){if(z[z.length-1]--,z[z.length-1]===0){z.pop(),X+=_,Q++,Y="template-string";continue}}}if(_==="'"){X+=_,Q++,Y="single-string";continue}if(_==='"'){X+=_,Q++,Y="double-string";continue}if(_==="`"){X+=_,Q++,Y="template-string";continue}if(_==="/"&&U==="/"){X+=_+U,Q+=2,Y="line-comment";continue}if(_==="/"&&U==="*"){X+=_+U,Q+=2,Y="block-comment";continue}if(_==="/"){let R=X.trimEnd();if(!R[R.length-1]||/[=(!,;:{[&|?+\-*%<>~^]$/.test(R)||/\b(return|case|throw|in|of|typeof|instanceof|new|delete|void)\s*$/.test(R)){X+=_,Q++,Y="regex";continue}}break}if(_==="{"){G++,X+=_,Q++;continue}if(_==="}"){G--;let R=W[W.length-1];if(R&&G===R.braceDepth)W.pop();X+=_,Q++;continue}let q=Z.slice(Q).match(/^class\s+\w+(?:\s+extends\s+\w+)?\s*\{/);if(q){let R=q[0].slice(0,-1);X+=R,Q+=R.length,W.push({type:"class-body",braceDepth:G});continue}let A=Z.slice(Q).match(/^function\s+(\w+)\s*\(/);if(A){let R=A[1],F=A[0].length,B=Z[Q+F],w=null,O=Q+F;if(B==="?"||B==="!")if(w=B,O++,w==="!")$.unsafeFunctions.add(R);else $.safeFunctions.add(R);X+=`function ${R}(`,Q=O;let V=S0(Z,Q,"(",")");if(!V){X+=Z[Q],Q++;continue}let{content:C,endPos:S}=V;Q=S;let P=S4(C,$,!0);X+=P+")";let k=Q;while(k<Z.length&&/\s/.test(Z[k]))k++;let E=Z.slice(k,k+2);if(E==="->"||E==="-?"||E==="-!"){k+=2;while(k<Z.length&&/\s/.test(Z[k]))k++;let v=T0(Z,k);if(v){let{type:g,endPos:y}=v;if(H===void 0){if(H=g,E==="-?")K="safe";else if(E==="-!")K="unsafe"}Q=y}}continue}let M=Z.slice(Q).match(/^(constructor|(?:get|set)\s+\w+|async\s+\w+|\w+)\s*\(/);if(M&&L()){let R=M[1],F=M[0].length,B=Q+F;X+=R+"(",Q=B;let w=S0(Z,Q,"(",")");if(!w){X+=Z[Q],Q++;continue}let{content:O,endPos:V}=w;Q=V;let C=S4(O,$,!0);X+=C+")";let S=Q;while(S<Z.length&&/\s/.test(Z[S]))S++;let P=Z.slice(S,S+2);if(P==="->"||P==="-!"||P==="-?"){S+=2;while(S<Z.length&&/\s/.test(Z[S]))S++;let k=T0(Z,S);if(k)Q=k.endPos}else if(Z[S]===":"){S++;while(S<Z.length&&/\s/.test(Z[S]))S++;let k=T0(Z,S);if(k)Q=k.endPos}continue}if(Z[Q]==="("){let R=S0(Z,Q+1,"(",")");if(!R){X+=Z[Q],Q++;continue}let{content:F,endPos:B}=R,w=B;while(w<Z.length&&/\s/.test(Z[w]))w++;let O,V=Z.slice(w,w+2);if(V==="->"||V==="-?"||V==="-!"){w+=2;while(w<Z.length&&/\s/.test(Z[w]))w++;let C=T0(Z,w);if(C){O=C.type,w=C.endPos;while(w<Z.length&&/\s/.test(Z[w]))w++}}if(Z.slice(w,w+2)==="=>"){let C=null,S=F,P=F.trimStart();if(P.startsWith("?")&&(P.length===1||/\s/.test(P[1])))C="?",S=P.slice(1);else if(P.startsWith("!")&&(P.length===1||/\s/.test(P[1])))C="!",S=P.slice(1);let k=S4(S,$,!1);X+=`(${C==="?"?"/* safe */ ":C==="!"?"/* unsafe */ ":""}${k})`,Q=B;while(Q<w&&/\s/.test(Z[Q]))X+=Z[Q],Q++;if(O)Q=w}else{let C=b0(F,$);X+=`(${C.source})`,Q=B}continue}X+=Z[Q],Q++}return{source:X,returnType:H,returnSafety:K}}function S0(Z,$,X,Q){let H=1,K=$,Y=!1,z="";while(K<Z.length&&H>0){let W=Z[K];if(!Y&&(W==="'"||W==='"'||W==="`"))Y=!0,z=W;else if(Y&&W===z&&Z[K-1]!=="\\")Y=!1;else if(!Y){if(W===X)H++;else if(W===Q)H--}K++}if(H!==0)return null;return{content:Z.slice($,K-1),endPos:K}}function S6(Z,$){let X=$;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X>=Z.length)return null;let Q=X,H=Z[X];if(H==="{"||H==="["){let Y=H==="{"?"}":"]",z=S0(Z,X+1,H,Y);if(!z)return null;return{value:Z.slice(Q,z.endPos),endPos:z.endPos}}if(H==="'"||H==='"'||H==="`"){X++;while(X<Z.length){if(Z[X]===H&&Z[X-1]!=="\\")return X++,{value:Z.slice(Q,X),endPos:X};X++}return null}if(/[-+\d]/.test(H)){while(X<Z.length&&/[\d.eE+-]/.test(Z[X]))X++;return{value:Z.slice(Q,X),endPos:X}}let K=Z.slice(X).match(/^(true|false|null|undefined)\b/);if(K)return{value:K[1],endPos:X+K[1].length};return null}function Y0(Z){return Z.replace(/(?<!\|)\|(?!\|)/g," || ")}function T0(Z,$){let X=$,Q=0,H=!1,K="",Y=!1,z=(W)=>({type:Y0(Z.slice($,W).trim()),endPos:W});while(X<Z.length){let W=Z[X];if(!H&&(W==="'"||W==='"'||W==="`")){H=!0,K=W,Y=!0,X++;continue}if(H){if(W===K&&Z[X-1]!=="\\"){if(H=!1,X++,Q===0){let G=X;while(G<Z.length&&/\s/.test(Z[G]))G++;if(Z[G]==="{"){if(!Z.slice(G+1).match(/^\s*(\w+)\s*:/))return z(X)}if(Z[G]!=="|"&&Z[G]!=="&")return z(X)}continue}X++;continue}if(W==="{"||W==="["||W==="("){Q++,Y=!0,X++;continue}if(W==="}"||W==="]"||W===")"){if(Q--,Q===0){X++;let G=X;while(G<Z.length&&/\s/.test(Z[G]))G++;if(Z[G]==="|"||Z[G]==="&")continue;return z(X)}X++;continue}if(Q===0&&W==="{"){if(Y)return z(X);if(Z.slice(X+1).match(/^\s*(\w+)\s*:/)){Q++,Y=!0,X++;continue}return z(X)}if(Q===0&&(W==="|"||W==="&")){if(X++,X<Z.length&&Z[X]==="|")X++;while(X<Z.length&&/\s/.test(Z[X]))X++;continue}if(Q===0&&(/\d/.test(W)||W==="-"&&/\d/.test(Z[X+1]))){let G=X;if(Z[G]==="-")G++;while(G<Z.length&&/\d/.test(Z[G]))G++;if(G<Z.length&&Z[G]==="."&&/\d/.test(Z[G+1])){G++;while(G<Z.length&&/\d/.test(Z[G]))G++}if(G<Z.length&&(Z[G]==="e"||Z[G]==="E")){if(G++,G<Z.length&&(Z[G]==="+"||Z[G]==="-"))G++;while(G<Z.length&&/\d/.test(Z[G]))G++}Y=!0,X=G;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X<Z.length&&Z[X]==="{")return{type:Y0(Z.slice($,G).trim()),endPos:G};if(Z[X]!=="|"&&Z[X]!=="&")return{type:Y0(Z.slice($,G).trim()),endPos:G};continue}if(Q===0&&/[a-zA-Z_]/.test(W)){let G=X;while(G<Z.length&&/\w/.test(Z[G]))G++;Y=!0,X=G;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X<Z.length&&Z[X]==="("){Q++,X++;continue}if(X<Z.length&&Z[X]==="{"){if(!Z.slice(X+1).match(/^\s*(\w+)\s*:/)){let L=G;while(L>$&&/\s/.test(Z[L-1]))L--;return{type:Y0(Z.slice($,L).trim()),endPos:G}}}if(Z[X]!=="|"&&Z[X]!=="&")return{type:Y0(Z.slice($,G).trim()),endPos:G};continue}X++}if(Y)return z(X);return null}function v0(Z){let $=[],X="",Q=0,H=!1,K=!1,Y=0;while(Y<Z.length){let z=Z[Y],W=Z[Y+1];if(!K&&z==="/"&&W==="/"){H=!0,X+="//",Y+=2;continue}if(!H&&z==="/"&&W==="*"){K=!0,X+="/*",Y+=2;continue}if(H&&z===`
5
+ `){H=!1,X+=z,Y++;continue}if(K&&z==="*"&&W==="/"){K=!1,X+="*/",Y+=2;continue}if(H||K){X+=z,Y++;continue}if(z==="("||z==="{"||z==="[")Q++,X+=z;else if(z===")"||z==="}"||z==="]")Q--,X+=z;else if(z===","&&Q===0)$.push(X),X="";else X+=z;Y++}if(X.trim())$.push(X);return $}function S4(Z,$,X){let Q=b0(Z,{originalSource:Z,requiredParams:$.requiredParams,unsafeFunctions:$.unsafeFunctions,safeFunctions:$.safeFunctions}).source,H=v0(Q),K=!1,Y=new Set,z=(G)=>{if(X&&/^\w+$/.test(G)){if(Y.has(G))throw Error(`Duplicate parameter name '${G}'`);Y.add(G)}};return H.map((G)=>{let J=G.trim();if(!J)return G;if(X&&J.startsWith("{")&&J.endsWith("}")){let U=J.slice(1,-1);return`{ ${E6(U,$)} }`}if(X&&J.startsWith("[")&&J.endsWith("]")){let U=J.slice(1,-1);return`[ ${E6(U,$)} ]`}if(J.startsWith("...")){let U=T6(J);if(U!==-1)return J.slice(0,U).trim();return G}let L=J.match(/^(\w+)\s*\?\s*:\s*(.+)$/);if(L){let[,U,q]=L;return z(U),K=!0,`${U} = ${q}`}if(!n8(J)){let U=J.match(/^(\w+)\s*=/);if(U)z(U[1]);return K=!0,G}let _=T6(J);if(_!==-1){let U=J.slice(0,_).trim(),q=J.slice(_+1).trim();if(z(U),K&&X&&/^\w+$/.test(U));if(X&&/^\w+$/.test(U))$.requiredParams.add(U);return`${U} = ${q}`}return G}).join(",")}function E6(Z,$){return v0(Z).map((H)=>{let K=H.trim();if(!K)return H;let Y=K.match(/^(\w+)\s*:\s*(\{[\s\S]*\})$/);if(Y){let[,G,J]=Y;$.requiredParams.add(G);let L=k0(J);return`${G} = ${L}`}let z=K.match(/^(\w+)\s*:\s*(\[[\s\S]*\])$/);if(z){let[,G,J]=z;$.requiredParams.add(G);let L=g0(J);return`${G} = ${L}`}let W=K.match(/^(\w+)\s*:\s*([\s\S]+)$/);if(W){let[,G,J]=W;return $.requiredParams.add(G),`${G} = ${J}`}return H}).join(", ")}function k0(Z){let $=Z.slice(1,-1).trim();return`{ ${v0($).map((H)=>{let K=H.trim();if(!K)return H;let Y=K.match(/^(\w+)\s*:\s*(\{[\s\S]*\})$/);if(Y){let[,L,_]=Y;return`${L}: ${k0(_)}`}let z=K.match(/^(\w+)\s*=\s*(\{[\s\S]*\})$/);if(z){let[,L,_]=z;return`${L}: ${k0(_)}`}let W=K.match(/^(\w+)\s*:\s*(\[[\s\S]*\])$/);if(W){let[,L,_]=W;return`${L}: ${g0(_)}`}let G=K.match(/^(\w+)\s*=\s*(\[[\s\S]*\])$/);if(G){let[,L,_]=G;return`${L}: ${g0(_)}`}let J=K.match(/^(\w+)\s*=\s*([\s\S]+)$/);if(J){let[,L,_]=J;return`${L}: ${_}`}return H}).join(", ")} }`}function g0(Z){let $=Z.slice(1,-1).trim();return`[ ${v0($).map((H)=>{let K=H.trim();if(!K)return H;if(K.startsWith("{")&&K.endsWith("}"))return k0(K);if(K.startsWith("[")&&K.endsWith("]"))return g0(K);return H}).join(", ")} ]`}function n8(Z){let $=0,X=!1,Q=!1,H=!1,K="";for(let Y=0;Y<Z.length;Y++){let z=Z[Y];if(!H&&(z==="'"||z==='"'||z==="`")){H=!0,K=z;continue}if(H){if(z===K&&Z[Y-1]!=="\\")H=!1;continue}if(z==="("||z==="{"||z==="[")$++;else if(z===")"||z==="}"||z==="]")$--;else if($===0){if(z===":")X=!0;if(z==="="&&Z[Y+1]!==">")Q=!0}}return X&&!Q}function T6(Z){let $=0,X=!1,Q="";for(let H=0;H<Z.length;H++){let K=Z[H];if(!X&&(K==="'"||K==='"'||K==="`")){X=!0,Q=K;continue}if(X){if(K===Q&&Z[H-1]!=="\\")X=!1;continue}if(K==="("||K==="{"||K==="[")$++;else if(K===")"||K==="}"||K==="]")$--;else if($===0&&K===":")return H}return-1}function c8(Z,$){let X=Z.match($);if(!X)return null;let Q=X.index+X[0].length-1,H=1,K=Q+1;while(K<Z.length&&H>0){if(Z[K]==="{")H++;else if(Z[K]==="}")H--;K++}if(H!==0)return null;let Y=Z.slice(Q,K),z=[X[0].slice(0,-1)+Y,Y];return z.index=X.index,z}function v6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\btry\s*\{/);if(Q){let K=X+Q[0].length-1+1,Y=1,z=K;while(z<Z.length&&Y>0){let G=Z[z];if(G==="{")Y++;else if(G==="}")Y--;z++}if(Y!==0){$+=Z[X],X++;continue}if(Z.slice(z).match(/^\s*(catch|finally)\b/))$+=Z.slice(X,z),X=z;else{let G=Z.slice(K,z-1);$+=`try {${G}} catch (__try_err) { return new (__tjs?.MonadicError ?? Error)(__try_err?.message || String(__try_err), 'try', undefined, undefined, __tjs?.getStack?.()) }`,X=z}}else $+=Z[X],X++}return $}function f6(Z){let $=[],X="",Q=0,H=0;while(Q<Z.length){let K=Z.slice(Q).match(/^\bwasm\s*\{/);if(K){let Y=Q,z=Q+K[0].length,W=1,G=z;while(G<Z.length&&W>0){let V=Z[G];if(V==="{")W++;else if(V==="}")W--;G++}if(W!==0){X+=Z[Q],Q++;continue}let J=Z.slice(z,G-1),L,_=G,U=Z.slice(G).match(/^\s*fallback\s*\{/);if(U){let V=G+U[0].length;W=1;let C=V;while(C<Z.length&&W>0){let S=Z[C];if(S==="{")W++;else if(S==="}")W--;C++}if(W===0)L=Z.slice(V,C-1),_=C}let A=s8(J).map((V)=>{let C=a8(Z,Y,V);return C?`${V}: ${C}`:V}),M={id:`__tjs_wasm_${H}`,body:J,fallback:L,captures:A,start:Y,end:_};$.push(M);let R=L??J,F=A.map((V)=>V.split(":")[0].trim()),B=F.length>0?F.join(", "):"",w=F.length>0?`globalThis.${M.id}(${B})`:`globalThis.${M.id}()`,O=`(globalThis.${M.id} ? ${w} : (() => {${R}})())`;X+=O,Q=_,H++}else X+=Z[Q],Q++}return{source:X,blocks:$}}function o8(Z){return Z.startsWith("f32x4_")||Z.startsWith("v128_")}function s8(Z){let $=Z.replace(/\/\/[^\n]*/g,"").replace(/\/\*[\s\S]*?\*\//g,""),X=new Set,Q=/\.([a-zA-Z_$][a-zA-Z0-9_$]*)\b/g,H;while((H=Q.exec($))!==null)X.add(H[1]);let K=/(?<!\.)(\b[a-zA-Z_$][a-zA-Z0-9_$]*)\b/g,Y=new Set;while((H=K.exec($))!==null)Y.add(H[1]);for(let _ of X){if(!Y.has(_))continue;let U=new RegExp(`(?<!\\.)\\b${_}\\b`,"g"),q=new RegExp(`\\.${_}\\b`,"g"),A=$.match(U)?.length||0,M=$.match(q)?.length||0;if(A<=M)Y.delete(_)}let z=new Set,W=/\b(?:let|const|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/g;while((H=W.exec($))!==null)z.add(H[1]);let G=/\bfor\s*\(\s*(?:let|const|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/g;while((H=G.exec($))!==null)z.add(H[1]);let J=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","wasmBuffer"]),L=[];for(let _ of Y)if(!z.has(_)&&!J.has(_)&&!o8(_))L.push(_);return L.sort()}function a8(Z,$,X){let Q=Z.slice(0,$),H=/function\s+\w+\s*\(([^)]*)\)\s*(?:->.*?)?\s*\{[^}]*$/,K=Q.match(H);if(!K){let Y=/(?:const|let|var)?\s*\w+\s*=\s*(?:async\s*)?\(([^)]*)\)\s*(?:=>|->)?\s*\{[^}]*$/,z=Q.match(Y);if(!z)return;return k6(z[1],X)}return k6(K[1],X)}function k6(Z,$){let X=Z.split(",").map((Q)=>Q.trim());for(let Q of X){let H=Q.match(new RegExp(`^${$}\\s*:\\s*([A-Za-z][A-Za-z0-9]*)`));if(H)return H[1];let K=Q.match(new RegExp(`^${$}\\s*=\\s*(Float32Array|Float64Array|Int32Array|Uint8Array|Int8Array|Int16Array|Uint16Array|Uint32Array)`));if(K)return K[1]}return}function y6(Z){let X=new RegExp(`([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")\\s+IsNot\\s+([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")`,"g");Z=Z.replace(X,"IsNot($1, $2)");let Q=new RegExp(`([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")\\s+Is\\s+([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")`,"g");return Z=Z.replace(Q,"Is($1, $2)"),Z}function h6(Z){let $=/^[\s]*[([/+\-`]/,X=/[{([,;:+\-*/%=&|?<>!~^]\s*$|^\s*$/,Q=/\b(return|throw|yield|await|case|default|extends|new|typeof|void|delete|in|of|instanceof)\s*$/,H=Z.split(`
6
6
  `),K=[];for(let Y=0;Y<H.length;Y++){let z=H[Y],W=Y>0?H[Y-1]:"";if(Y>0&&$.test(z)){let G=W.replace(/\/\/.*$/,"").replace(/\/\*.*\*\/\s*$/,"");if(!X.test(G)&&!Q.test(G)){let J=z.match(/^(\s*)/),L=J?J[1]:"",_=z.slice(L.length);K.push(L+";"+_);continue}}K.push(z)}return K.join(`
7
7
  `)}function x6(Z){Z=Z.replace(/\btypeof\s+([a-zA-Z_$][\w$.]*(?:\?\.[\w$]+)*)/g,"TypeOf($1)");let $=[],X=0,Q="normal",H=[];while(X<Z.length){let Y=Z[X],z=Z[X+1];switch(Q){case"single-string":if(Y==="\\"&&X+1<Z.length){X+=2;continue}if(Y==="'")Q="normal";X++;continue;case"double-string":if(Y==="\\"&&X+1<Z.length){X+=2;continue}if(Y==='"')Q="normal";X++;continue;case"template-string":if(Y==="\\"&&X+1<Z.length){X+=2;continue}if(Y==="$"&&z==="{"){X+=2,H.push(1),Q="normal";continue}if(Y==="`")Q="normal";X++;continue;case"line-comment":if(Y===`
8
- `)Q="normal";X++;continue;case"block-comment":if(Y==="*"&&z==="/"){X+=2,Q="normal";continue}X++;continue;case"regex":if(Y==="\\"&&X+1<Z.length){X+=2;continue}if(Y==="["){X++;while(X<Z.length&&Z[X]!=="]")if(Z[X]==="\\"&&X+1<Z.length)X+=2;else X++;if(X<Z.length)X++;continue}if(Y==="/"){X++;while(X<Z.length&&/[gimsuy]/.test(Z[X]))X++;Q="normal";continue}X++;continue;case"normal":if(H.length>0){if(Y==="{")H[H.length-1]++;else if(Y==="}"){if(H[H.length-1]--,H[H.length-1]===0){H.pop(),X++,Q="template-string";continue}}}if(Y==="'"){X++,Q="single-string";continue}if(Y==='"'){X++,Q="double-string";continue}if(Y==="`"){X++,Q="template-string";continue}if(Y==="/"&&z==="/"){X+=2,Q="line-comment";continue}if(Y==="/"&&z==="*"){X+=2,Q="block-comment";continue}if(Y==="/"){let W=X-1;while(W>=0&&/\s/.test(Z[W]))W--;let G=W>=0?Z[W]:"";if(!G||/[=(!,;:{[&|?+\-*%<>~^]/.test(G)||W>=5&&/\b(return|case|throw|in|of|typeof|instanceof|new|delete|void)$/.test(Z.slice(Math.max(0,W-10),W+1))){X++,Q="regex";continue}}if(Y==="="&&z==="="&&Z[X+2]!=="="&&Z[X-1]!=="!"){$.push({pos:X,op:"=="}),X+=2;continue}if(Y==="!"&&z==="="&&Z[X+2]!=="="){$.push({pos:X,op:"!="}),X+=2;continue}break}X++}if($.length===0)return Z;let K=Z;for(let Y=$.length-1;Y>=0;Y--){let{pos:z,op:W}=$[Y],G=W==="=="?"Eq":"NotEq",J=r8(K,z),L=t8(K,z+2),_=K.slice(J,z).trim(),U=K.slice(z+2,L).trim();if(_&&U){let q=K.slice(0,J),I=K.slice(L),R=/[a-zA-Z0-9_$]$/.test(q)?" ":"";K=`${q}${R}${G}(${_}, ${U})${I}`}}return K}function r8(Z,$){let X=$-1;while(X>=0&&/\s/.test(Z[X]))X--;if(X<0)return 0;let Q=0,H=!1,K="";while(X>=0){let Y=Z[X],z=X>0?Z[X-1]:"";if(H){if(Y===K&&z!=="\\")H=!1;X--;continue}if((Y==='"'||Y==="'"||Y==="`")&&z!=="\\"){H=!0,K=Y,X--;continue}if(Y===")"||Y==="]"||Y==="}"){Q++,X--;continue}if(Y==="("||Y==="["){if(Q>0){Q--,X--;continue}return X+1}if(Y==="{"){if(Q>0){Q--,X--;continue}return X+1}if(Q>0){X--;continue}if(Y===";")return X+1;if(/[a-z]/.test(Y)){let W=X+1,G=X;while(G>0&&/[a-z]/i.test(Z[G-1]))G--;let J=Z.slice(G,W),L=G>0?Z[G-1]:"";if(!/[a-zA-Z0-9_$]/.test(L)){if(["return","throw","case","typeof","void","delete","await","yield"].includes(J))return W;if(J==="new")return G}}if(Y===">"&&z==="=")return X+1;if(Y==="="&&z!=="="&&z!=="!"&&z!=="<"&&z!==">")return X+1;if(Y==="&"&&z==="&")return X+1;if(Y==="|"&&z==="|")return X+1;if(Y==="?"||Y===":")return X+1;if(Y===",")return X+1;X--}return 0}function t8(Z,$){let X=$;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X>=Z.length)return Z.length;let Q=0,H=!1,K="";while(X<Z.length){let Y=Z[X],z=X+1<Z.length?Z[X+1]:"";if(H){if(Y===K&&Z[X-1]!=="\\")H=!1;X++;continue}if((Y==='"'||Y==="'"||Y==="`")&&Z[X-1]!=="\\"){H=!0,K=Y,X++;continue}if(Y==="("||Y==="["||Y==="{"){Q++,X++;continue}if(Y===")"||Y==="]"||Y==="}"){if(Q>0){Q--,X++;continue}return X}if(Q>0){X++;continue}if(Y===";")return X;if(Y==="&"&&z==="&")return X;if(Y==="|"&&z==="|")return X;if(Y==="?")return X;if(Y===":")return X;if(Y===",")return X;if((Y==="="||Y==="!")&&z==="="&&Z[X+2]!=="=")return X;X++}return Z.length}function u6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\bType\s+([A-Z_][a-zA-Z0-9_]*)\s*/);if(Q){let H=Q[1],K=X+Q[0].length,Y=H,z=!1,W=Z.slice(K).match(/^(['"`])([^]*?)\1\s*/);if(W){let _=K+W[0].length,U=Z[_],q=U===void 0||_>=Z.length||U!=="="&&U!=="{";if(U==="="||U==="{")Y=W[2],z=!0,K=_;else if(q){let I=W[0].trim(),M=W[0].slice(I.length);$+=`const ${H} = Type('${H}', ${I})${M}`,X=_;continue}}let G,J=K,L=Z.slice(K).match(/^=\s*/);if(L){K+=L[0].length;let _=Z.slice(K).match(/^(\+?\d+(?:\.\d+)?|['"`][^'"`]*['"`]|\{[^}]*\}|\[[^\]]*\]|true|false|null)/);if(_){G=_[0],K+=_[0].length,J=K;let U=Z.slice(K).match(/^\s*/);if(U)K+=U[0].length}}if(Z[K]==="{"){let _=K+1,U=1,q=_;while(q<Z.length&&U>0){let N=Z[q];if(N==="{")U++;else if(N==="}")U--;q++}if(U!==0){$+=Z[X],X++;continue}let I=Z.slice(_,q-1).trim(),M=q,R=I.match(/description\s*:\s*(['"`])([^]*?)\1/);if(R&&!z)Y=R[2];let P,B=I.match(/example\s*:\s*/);if(B){let N=B.index+B[0].length,V=S6(I,N);if(V)P=V.value.trim()}let F=I.match(/predicate\s*\(([^)]*)\)\s*\{([^]*)\}/);if(F&&P){let N=F[1].trim(),V=F[2].trim(),w=G?`, ${G}`:"";$+=`const ${H} = Type('${Y}', (${N}) => { if (!globalThis.__tjs?.validate(${N}, globalThis.__tjs?.infer(${P}))) return false; ${V} }, ${P}${w})`}else if(F){let N=F[1].trim(),V=F[2].trim(),w=G?`, undefined, ${G}`:"";$+=`const ${H} = Type('${Y}', (${N}) => { ${V} }${w})`}else if(P){let N=G?`, ${G}`:"";$+=`const ${H} = Type('${Y}', undefined, ${P}${N})`}else if(G)$+=`const ${H} = Type('${Y}', ${G})`;else $+=`const ${H} = Type('${Y}')`;X=M;continue}else if(G){$+=`const ${H} = Type('${Y}', ${G})`,X=J;continue}else if(!W){let _=Z.slice(K).match(/^(['"`][^]*?['"`]|\+?\d+(?:\.\d+)?|true|false|null|\{[^]*?\}|\[[^]*?\])/);if(_){let U=_[0];$+=`const ${H} = Type('${H}', ${U})`,X=K+_[0].length;continue}}}$+=Z[X],X++}return $}function d6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\bFunctionPredicate\s+([A-Z_][a-zA-Z0-9_]*)\s*(?:<([^>]+)>)?\s*/);if(Q){let H=Q[1],K=Q[2],Y=X+Q[0].length;if(Z[Y]==="{"){let z=1,W=Y+1;while(W<Z.length&&z>0){if(Z[W]==="{")z++;else if(Z[W]==="}")z--;W++}if(z===0){let G=Z.slice(Y+1,W-1).trim(),J=c8(G,/params\s*:\s*\{/),L=G.match(/returns\s*:\s*(.+?)(?:\n|$)/),_=G.match(/returnContract\s*:\s*['"](\w+)['"]/),U=G.match(/description\s*:\s*(['"])([^]*?)\1/),q=[];if(J)q.push(`params: ${J[1]}`);if(L)q.push(`returns: ${L[1].trim()}`);if(_)q.push(`returnContract: '${_[1]}'`);let I=U?U[2]:H;if(K){let M=K.split(",").map((P)=>{let B=P.trim().split("=").map((F)=>F.trim());if(B.length===2){let F=B[1]==="any"||B[1]==="undefined"?"null":B[1];return`['${B[0]}', ${F}]`}return`'${B[0]}'`}),R=K.split(",").map((P)=>P.trim().split("=")[0].trim());$+=`const ${H} = FunctionPredicate('${I}', [${M.join(", ")}], (${R.join(", ")}) => ({ ${q.join(", ")} }))`}else $+=`const ${H} = FunctionPredicate('${I}', { ${q.join(", ")} })`;X=W;continue}}if(Z[Y]==="("){let z=1,W=Y+1;while(W<Z.length&&z>0){if(Z[W]==="(")z++;else if(Z[W]===")")z--;W++}if(z===0){let G=Z.slice(Y+1,W-1).trim(),J=G.indexOf(",");if(J!==-1){let L=G.slice(0,J).trim(),_=G.slice(J+1).trim();$+=`const ${H} = FunctionPredicate(${_}, ${L})`}else $+=`const ${H} = FunctionPredicate('${H}', ${G})`;X=W;continue}}}$+=Z[X],X++}return $}function l6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\bGeneric\s+([A-Z][a-zA-Z0-9_]*)\s*<([^>]+)>\s*\{/);if(Q){let H=Q[1],K=Q[2],z=X+Q[0].length-1+1,W=1,G=z;while(G<Z.length&&W>0){let P=Z[G];if(P==="{")W++;else if(P==="}")W--;G++}if(W!==0){$+=Z[X],X++;continue}let J=Z.slice(z,G-1).trim(),L=G,_=K.split(",").map((P)=>{let B=P.trim().split("=").map((F)=>F.trim());if(B.length===2){let F=B[1]==="any"||B[1]==="undefined"?"null":B[1];return`['${B[0]}', ${F}]`}return`'${B[0]}'`}),U=J,q=U.search(/\bdeclaration\s*\{/);if(q!==-1){let P=U.indexOf("{",q),B=1,F=P+1;while(F<U.length&&B>0){if(U[F]==="{")B++;else if(U[F]==="}")B--;F++}U=U.slice(0,q)+U.slice(F)}let I=U.match(/description\s*:\s*(['"`])([^]*?)\1/),M=U.match(/predicate\s*\(([^)]*)\)\s*\{([^]*)\}/),R=I?I[2]:H;if(M){let P=M[1].trim().split(",").map((w)=>w.trim()),B=M[2].trim(),F=P[0]||"x",N=P.slice(1),V=N.map((w)=>`check${w}`);N.forEach((w,C)=>{B=B.replace(new RegExp(`\\b${w}\\s*\\(`,"g"),`${V[C]}(`)}),$+=`const ${H} = Generic([${_.join(", ")}], (${F}, ${V.join(", ")}) => { ${B} }, '${R}')`}else $+=`const ${H} = Generic([${_.join(", ")}], () => true, '${R}')`;X=L;continue}$+=Z[X],X++}return $}function m6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\bUnion\s+([A-Z][a-zA-Z0-9_]*)\s+(['"`])([^]*?)\2\s*/);if(Q){let H=Q[1],K=Q[3],Y=X+Q[0].length;if(Z[Y]==="{"){let z=Y+1,W=1,G=z;while(G<Z.length&&W>0){let U=Z[G];if(U==="{")W++;else if(U==="}")W--;G++}if(W!==0){$+=Z[X],X++;continue}let J=Z.slice(z,G-1).trim(),L=G,_=g6(J);$+=`const ${H} = Union('${K}', [${_.join(", ")}])`,X=L;continue}else{let z=Z.indexOf(`
9
- `,Y);if(z===-1)z=Z.length;let W=Z.slice(Y,z).trim();if(W){let G=g6(W);$+=`const ${H} = Union('${K}', [${G.join(", ")}])`,X=z;continue}}}$+=Z[X],X++}return $}function g6(Z){let $=[],X=Z.split("|").map((Q)=>Q.trim());for(let Q of X){if(!Q)continue;$.push(Q)}return $}function i6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\bEnum\s+([A-Z][a-zA-Z0-9_]*)\s+(['"`])([^]*?)\2\s*\{/);if(Q){let H=Q[1],K=Q[3],z=X+Q[0].length-1+1,W=1,G=z;while(G<Z.length&&W>0){let q=Z[G];if(q==="{")W++;else if(q==="}")W--;G++}if(W!==0){$+=Z[X],X++;continue}let J=Z.slice(z,G-1).trim(),L=G,U=e8(J).map(([q,I])=>`${q}: ${I}`).join(", ");$+=`const ${H} = Enum('${K}', { ${U} })`,X=L;continue}$+=Z[X],X++}return $}function e8(Z){let $=[],X=0,Q=Z.split(/[\n,]/).map((H)=>H.trim()).filter((H)=>H&&!H.startsWith("//"));for(let H of Q){let K=H.match(/^([A-Za-z_][A-Za-z0-9_]*)\s*(?:=\s*(.+))?$/);if(K){let Y=K[1],z=K[2]?.trim();if(z!==void 0){$.push([Y,z]);let W=Number(z);if(!isNaN(W))X=W+1}else $.push([Y,String(X)]),X++}}return $}function p6(Z){let $=new Map,X="",Q=0;while(Q<Z.length){let H=Z.slice(Q),K=H.match(/^(\s*)extend\s+([A-Z]\w*)\s*\{/);if(!K){if(Q===0||Z[Q-1]===`
10
- `||Z[Q-1]===";"||Z[Q-1]==="}"){let B=H.match(/^(\s*)extend\s+([A-Z]\w*)\s*\{/)}X+=Z[Q],Q++;continue}let Y=K[1],z=K[2],W=Q+K[0].length-1,G=W0(Z,W),J=Z.slice(W+1,G-1).trim(),L=[],_=0,U=Z.slice(W+1,G-1);while(_<U.length){let B=U.slice(_).match(/^(\s*)(async\s+)?(\w+)\s*\(/);if(!B){_++;continue}let F=B[1],N=!!B[2],V=B[3],w=_+B[0].length-1,C=1,O=w+1;while(O<U.length&&C>0){if(U[O]==="(")C++;if(U[O]===")")C--;O++}let k=U.slice(w+1,O-1),S=O;while(S<U.length&&/\s/.test(U[S]))S++;if(U[S]==="="&&U[S+1]===">"){let W1=z0(Z,W+1+_);throw new H1(`Arrow functions are not allowed in extend blocks (method '${V}' in extend ${z}). Use regular function syntax instead, as extension methods need 'this' binding.`,W1)}if(U[S]!=="{"){_++;continue}let b=W0(U,S),h=U.slice(_,b).trim(),u=k.split(",").map((W1)=>W1.trim()).filter((W1)=>W1.length>0).map((W1)=>{let k1=W1.match(/^(\w+)\s*:\s*(.+)$/);if(k1)return`${k1[1]} = ${k1[2]}`;return W1}).join(", "),U1=N?"async ":"",H0=U.slice(S+1,b-1);L.push({name:V,isAsync:N,fullText:`${V}: ${U1}function(${u}) {${H0}}`}),_=b}let q=!$.has(z);if(q)$.set(z,new Set);let I=$.get(z);for(let P of L)I.add(P.name);let M=L.map((P)=>` ${P.fullText}`).join(`,
8
+ `)Q="normal";X++;continue;case"block-comment":if(Y==="*"&&z==="/"){X+=2,Q="normal";continue}X++;continue;case"regex":if(Y==="\\"&&X+1<Z.length){X+=2;continue}if(Y==="["){X++;while(X<Z.length&&Z[X]!=="]")if(Z[X]==="\\"&&X+1<Z.length)X+=2;else X++;if(X<Z.length)X++;continue}if(Y==="/"){X++;while(X<Z.length&&/[gimsuy]/.test(Z[X]))X++;Q="normal";continue}X++;continue;case"normal":if(H.length>0){if(Y==="{")H[H.length-1]++;else if(Y==="}"){if(H[H.length-1]--,H[H.length-1]===0){H.pop(),X++,Q="template-string";continue}}}if(Y==="'"){X++,Q="single-string";continue}if(Y==='"'){X++,Q="double-string";continue}if(Y==="`"){X++,Q="template-string";continue}if(Y==="/"&&z==="/"){X+=2,Q="line-comment";continue}if(Y==="/"&&z==="*"){X+=2,Q="block-comment";continue}if(Y==="/"){let W=X-1;while(W>=0&&/\s/.test(Z[W]))W--;let G=W>=0?Z[W]:"";if(!G||/[=(!,;:{[&|?+\-*%<>~^]/.test(G)||W>=5&&/\b(return|case|throw|in|of|typeof|instanceof|new|delete|void)$/.test(Z.slice(Math.max(0,W-10),W+1))){X++,Q="regex";continue}}if(Y==="="&&z==="="&&Z[X+2]!=="="&&Z[X-1]!=="!"){$.push({pos:X,op:"=="}),X+=2;continue}if(Y==="!"&&z==="="&&Z[X+2]!=="="){$.push({pos:X,op:"!="}),X+=2;continue}break}X++}if($.length===0)return Z;let K=Z;for(let Y=$.length-1;Y>=0;Y--){let{pos:z,op:W}=$[Y],G=W==="=="?"Eq":"NotEq",J=r8(K,z),L=t8(K,z+2),_=K.slice(J,z).trim(),U=K.slice(z+2,L).trim();if(_&&U){let q=K.slice(0,J),A=K.slice(L),R=/[a-zA-Z0-9_$]$/.test(q)?" ":"";K=`${q}${R}${G}(${_}, ${U})${A}`}}return K}function r8(Z,$){let X=$-1;while(X>=0&&/\s/.test(Z[X]))X--;if(X<0)return 0;let Q=0,H=!1,K="";while(X>=0){let Y=Z[X],z=X>0?Z[X-1]:"";if(H){if(Y===K&&z!=="\\")H=!1;X--;continue}if((Y==='"'||Y==="'"||Y==="`")&&z!=="\\"){H=!0,K=Y,X--;continue}if(Y===")"||Y==="]"||Y==="}"){Q++,X--;continue}if(Y==="("||Y==="["){if(Q>0){Q--,X--;continue}return X+1}if(Y==="{"){if(Q>0){Q--,X--;continue}return X+1}if(Q>0){X--;continue}if(Y===";")return X+1;if(/[a-z]/.test(Y)){let W=X+1,G=X;while(G>0&&/[a-z]/i.test(Z[G-1]))G--;let J=Z.slice(G,W),L=G>0?Z[G-1]:"";if(!/[a-zA-Z0-9_$]/.test(L)){if(["return","throw","case","typeof","void","delete","await","yield"].includes(J))return W;if(J==="new")return G}}if(Y===">"&&z==="=")return X+1;if(Y==="="&&z!=="="&&z!=="!"&&z!=="<"&&z!==">")return X+1;if(Y==="&"&&z==="&")return X+1;if(Y==="|"&&z==="|")return X+1;if(Y==="?"||Y===":")return X+1;if(Y===",")return X+1;X--}return 0}function t8(Z,$){let X=$;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X>=Z.length)return Z.length;let Q=0,H=!1,K="";while(X<Z.length){let Y=Z[X],z=X+1<Z.length?Z[X+1]:"";if(H){if(Y===K&&Z[X-1]!=="\\")H=!1;X++;continue}if((Y==='"'||Y==="'"||Y==="`")&&Z[X-1]!=="\\"){H=!0,K=Y,X++;continue}if(Y==="("||Y==="["||Y==="{"){Q++,X++;continue}if(Y===")"||Y==="]"||Y==="}"){if(Q>0){Q--,X++;continue}return X}if(Q>0){X++;continue}if(Y===";")return X;if(Y==="&"&&z==="&")return X;if(Y==="|"&&z==="|")return X;if(Y==="?")return X;if(Y===":")return X;if(Y===",")return X;if((Y==="="||Y==="!")&&z==="="&&Z[X+2]!=="=")return X;X++}return Z.length}function u6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\bType\s+([A-Z_][a-zA-Z0-9_]*)\s*/);if(Q){let H=Q[1],K=X+Q[0].length,Y=H,z=!1,W=Z.slice(K).match(/^(['"`])([^]*?)\1\s*/);if(W){let _=K+W[0].length,U=Z[_],q=U===void 0||_>=Z.length||U!=="="&&U!=="{";if(U==="="||U==="{")Y=W[2],z=!0,K=_;else if(q){let A=W[0].trim(),M=W[0].slice(A.length);$+=`const ${H} = Type('${H}', ${A})${M}`,X=_;continue}}let G,J=K,L=Z.slice(K).match(/^=\s*/);if(L){K+=L[0].length;let _=Z.slice(K).match(/^(\+?\d+(?:\.\d+)?|['"`][^'"`]*['"`]|\{[^}]*\}|\[[^\]]*\]|true|false|null)/);if(_){G=_[0],K+=_[0].length,J=K;let U=Z.slice(K).match(/^\s*/);if(U)K+=U[0].length}}if(Z[K]==="{"){let _=K+1,U=1,q=_;while(q<Z.length&&U>0){let O=Z[q];if(O==="{")U++;else if(O==="}")U--;q++}if(U!==0){$+=Z[X],X++;continue}let A=Z.slice(_,q-1).trim(),M=q,R=A.match(/description\s*:\s*(['"`])([^]*?)\1/);if(R&&!z)Y=R[2];let F,B=A.match(/example\s*:\s*/);if(B){let O=B.index+B[0].length,V=S6(A,O);if(V)F=V.value.trim()}let w=A.match(/predicate\s*\(([^)]*)\)\s*\{([^]*)\}/);if(w&&F){let O=w[1].trim(),V=w[2].trim(),C=G?`, ${G}`:"";$+=`const ${H} = Type('${Y}', (${O}) => { if (!globalThis.__tjs?.validate(${O}, globalThis.__tjs?.infer(${F}))) return false; ${V} }, ${F}${C})`}else if(w){let O=w[1].trim(),V=w[2].trim(),C=G?`, undefined, ${G}`:"";$+=`const ${H} = Type('${Y}', (${O}) => { ${V} }${C})`}else if(F){let O=G?`, ${G}`:"";$+=`const ${H} = Type('${Y}', undefined, ${F}${O})`}else if(G)$+=`const ${H} = Type('${Y}', ${G})`;else $+=`const ${H} = Type('${Y}')`;X=M;continue}else if(G){$+=`const ${H} = Type('${Y}', ${G})`,X=J;continue}else if(!W){let _=Z.slice(K).match(/^(['"`][^]*?['"`]|\+?\d+(?:\.\d+)?|true|false|null|\{[^]*?\}|\[[^]*?\])/);if(_){let U=_[0];$+=`const ${H} = Type('${H}', ${U})`,X=K+_[0].length;continue}}}$+=Z[X],X++}return $}function d6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\bFunctionPredicate\s+([A-Z_][a-zA-Z0-9_]*)\s*(?:<([^>]+)>)?\s*/);if(Q){let H=Q[1],K=Q[2],Y=X+Q[0].length;if(Z[Y]==="{"){let z=1,W=Y+1;while(W<Z.length&&z>0){if(Z[W]==="{")z++;else if(Z[W]==="}")z--;W++}if(z===0){let G=Z.slice(Y+1,W-1).trim(),J=c8(G,/params\s*:\s*\{/),L=G.match(/returns\s*:\s*(.+?)(?:\n|$)/),_=G.match(/returnContract\s*:\s*['"](\w+)['"]/),U=G.match(/description\s*:\s*(['"])([^]*?)\1/),q=[];if(J)q.push(`params: ${J[1]}`);if(L)q.push(`returns: ${L[1].trim()}`);if(_)q.push(`returnContract: '${_[1]}'`);let A=U?U[2]:H;if(K){let M=K.split(",").map((F)=>{let B=F.trim().split("=").map((w)=>w.trim());if(B.length===2){let w=B[1]==="any"||B[1]==="undefined"?"null":B[1];return`['${B[0]}', ${w}]`}return`'${B[0]}'`}),R=K.split(",").map((F)=>F.trim().split("=")[0].trim());$+=`const ${H} = FunctionPredicate('${A}', [${M.join(", ")}], (${R.join(", ")}) => ({ ${q.join(", ")} }))`}else $+=`const ${H} = FunctionPredicate('${A}', { ${q.join(", ")} })`;X=W;continue}}if(Z[Y]==="("){let z=1,W=Y+1;while(W<Z.length&&z>0){if(Z[W]==="(")z++;else if(Z[W]===")")z--;W++}if(z===0){let G=Z.slice(Y+1,W-1).trim(),J=G.indexOf(",");if(J!==-1){let L=G.slice(0,J).trim(),_=G.slice(J+1).trim();$+=`const ${H} = FunctionPredicate(${_}, ${L})`}else $+=`const ${H} = FunctionPredicate('${H}', ${G})`;X=W;continue}}}$+=Z[X],X++}return $}function l6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\bGeneric\s+([A-Z][a-zA-Z0-9_]*)\s*<([^>]+)>\s*\{/);if(Q){let H=Q[1],K=Q[2],z=X+Q[0].length-1+1,W=1,G=z;while(G<Z.length&&W>0){let F=Z[G];if(F==="{")W++;else if(F==="}")W--;G++}if(W!==0){$+=Z[X],X++;continue}let J=Z.slice(z,G-1).trim(),L=G,_=K.split(",").map((F)=>{let B=F.trim().split("=").map((w)=>w.trim());if(B.length===2){let w=B[1]==="any"||B[1]==="undefined"?"null":B[1];return`['${B[0]}', ${w}]`}return`'${B[0]}'`}),U=J,q=U.search(/\bdeclaration\s*\{/);if(q!==-1){let F=U.indexOf("{",q),B=1,w=F+1;while(w<U.length&&B>0){if(U[w]==="{")B++;else if(U[w]==="}")B--;w++}U=U.slice(0,q)+U.slice(w)}let A=U.match(/description\s*:\s*(['"`])([^]*?)\1/),M=U.match(/predicate\s*\(([^)]*)\)\s*\{([^]*)\}/),R=A?A[2]:H;if(M){let F=M[1].trim().split(",").map((C)=>C.trim()),B=M[2].trim(),w=F[0]||"x",O=F.slice(1),V=O.map((C)=>`check${C}`);O.forEach((C,S)=>{B=B.replace(new RegExp(`\\b${C}\\s*\\(`,"g"),`${V[S]}(`)}),$+=`const ${H} = Generic([${_.join(", ")}], (${w}, ${V.join(", ")}) => { ${B} }, '${R}')`}else $+=`const ${H} = Generic([${_.join(", ")}], () => true, '${R}')`;X=L;continue}$+=Z[X],X++}return $}function m6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\bUnion\s+([A-Z][a-zA-Z0-9_]*)\s+(['"`])([^]*?)\2\s*/);if(Q){let H=Q[1],K=Q[3],Y=X+Q[0].length;if(Z[Y]==="{"){let z=Y+1,W=1,G=z;while(G<Z.length&&W>0){let U=Z[G];if(U==="{")W++;else if(U==="}")W--;G++}if(W!==0){$+=Z[X],X++;continue}let J=Z.slice(z,G-1).trim(),L=G,_=g6(J);$+=`const ${H} = Union('${K}', [${_.join(", ")}])`,X=L;continue}else{let z=Z.indexOf(`
9
+ `,Y);if(z===-1)z=Z.length;let W=Z.slice(Y,z).trim();if(W){let G=g6(W);$+=`const ${H} = Union('${K}', [${G.join(", ")}])`,X=z;continue}}}$+=Z[X],X++}return $}function g6(Z){let $=[],X=Z.split("|").map((Q)=>Q.trim());for(let Q of X){if(!Q)continue;$.push(Q)}return $}function i6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\bEnum\s+([A-Z][a-zA-Z0-9_]*)\s+(['"`])([^]*?)\2\s*\{/);if(Q){let H=Q[1],K=Q[3],z=X+Q[0].length-1+1,W=1,G=z;while(G<Z.length&&W>0){let q=Z[G];if(q==="{")W++;else if(q==="}")W--;G++}if(W!==0){$+=Z[X],X++;continue}let J=Z.slice(z,G-1).trim(),L=G,U=e8(J).map(([q,A])=>`${q}: ${A}`).join(", ");$+=`const ${H} = Enum('${K}', { ${U} })`,X=L;continue}$+=Z[X],X++}return $}function e8(Z){let $=[],X=0,Q=Z.split(/[\n,]/).map((H)=>H.trim()).filter((H)=>H&&!H.startsWith("//"));for(let H of Q){let K=H.match(/^([A-Za-z_][A-Za-z0-9_]*)\s*(?:=\s*(.+))?$/);if(K){let Y=K[1],z=K[2]?.trim();if(z!==void 0){$.push([Y,z]);let W=Number(z);if(!isNaN(W))X=W+1}else $.push([Y,String(X)]),X++}}return $}function p6(Z){let $=new Map,X="",Q=0;while(Q<Z.length){let H=Z.slice(Q),K=H.match(/^(\s*)extend\s+([A-Z]\w*)\s*\{/);if(!K){if(Q===0||Z[Q-1]===`
10
+ `||Z[Q-1]===";"||Z[Q-1]==="}"){let B=H.match(/^(\s*)extend\s+([A-Z]\w*)\s*\{/)}X+=Z[Q],Q++;continue}let Y=K[1],z=K[2],W=Q+K[0].length-1,G=W0(Z,W),J=Z.slice(W+1,G-1).trim(),L=[],_=0,U=Z.slice(W+1,G-1);while(_<U.length){let B=U.slice(_).match(/^(\s*)(async\s+)?(\w+)\s*\(/);if(!B){_++;continue}let w=B[1],O=!!B[2],V=B[3],C=_+B[0].length-1,S=1,P=C+1;while(P<U.length&&S>0){if(U[P]==="(")S++;if(U[P]===")")S--;P++}let k=U.slice(C+1,P-1),E=P;while(E<U.length&&/\s/.test(U[E]))E++;if(U[E]==="="&&U[E+1]===">"){let X1=z0(Z,W+1+_);throw new z1(`Arrow functions are not allowed in extend blocks (method '${V}' in extend ${z}). Use regular function syntax instead, as extension methods need 'this' binding.`,X1)}if(U[E]!=="{"){_++;continue}let v=W0(U,E),g=U.slice(_,v).trim(),y=k.split(",").map((X1)=>X1.trim()).filter((X1)=>X1.length>0).map((X1)=>{let g1=X1.match(/^(\w+)\s*:\s*(.+)$/);if(g1)return`${g1[1]} = ${g1[2]}`;return X1}).join(", "),o=O?"async ":"",p=U.slice(E+1,v-1);L.push({name:V,isAsync:O,fullText:`${V}: ${o}function(${y}) {${p}}`}),_=v}let q=!$.has(z);if(q)$.set(z,new Set);let A=$.get(z);for(let F of L)A.add(F.name);let M=L.map((F)=>` ${F.fullText}`).join(`,
11
11
  `),R;if(q)R=`${Y}const __ext_${z} = {
12
12
  ${M}
13
13
  ${Y}}
14
14
  `;else R=`${Y}Object.assign(__ext_${z}, {
15
15
  ${M}
16
16
  ${Y}})
17
- `;for(let P of L)R+=`${Y}if (__tjs?.registerExtension) { __tjs.registerExtension('${z}', '${P.name}', __ext_${z}.${P.name}) }
17
+ `;for(let F of L)R+=`${Y}if (__tjs?.registerExtension) { __tjs.registerExtension('${z}', '${F.name}', __ext_${z}.${F.name}) }
18
18
  `;X+=R,Q=G}if(Q<=Z.length&&X.length<Z.length);return{source:X,extensions:$}}function G0(Z,$){if($.size===0)return Z;let X=new Map;for(let[H,K]of $)for(let Y of K){if(!X.has(Y))X.set(Y,[]);X.get(Y).push(H)}let Q=Z;for(let[H,K]of X){if(!K.includes("String"))continue;let Y=new RegExp(`('(?:[^'\\\\]|\\\\.)*')\\.(${H})\\((\\))?`,"g");Q=Q.replace(Y,(G,J,L,_)=>{return _?`__ext_String.${L}.call(${J})`:`__ext_String.${L}.call(${J}, `});let z=new RegExp(`("(?:[^"\\\\]|\\\\.)*")\\.(${H})\\((\\))?`,"g");Q=Q.replace(z,(G,J,L,_)=>{return _?`__ext_String.${L}.call(${J})`:`__ext_String.${L}.call(${J}, `});let W=new RegExp("(`(?:[^`\\\\]|\\\\.)*`)\\."+H+"\\((\\))?","g");Q=Q.replace(W,(G,J,L)=>{return L?`__ext_String.${H}.call(${J})`:`__ext_String.${H}.call(${J}, `})}for(let[H,K]of X){if(!K.includes("Array"))continue;let Y=`].${H}(`,z=0,W;while((W=Q.indexOf(Y,z))!==-1){let G=1,J=W-1,L=!1;while(J>=0&&G>0){let _=Q[J];if(L){if(_===L&&(J===0||Q[J-1]!=="\\"))L=!1}else{if(_==="]")G++;if(_==="[")G--;if(_==="'"||_==='"'||_==="`")L=_}J--}if(G===0){let _=Q.slice(J+1,W+1),U=Q.slice(0,J+1),q=Q.slice(W+Y.length);if(q[0]===")")Q=`${U}__ext_Array.${H}.call(${_})${q.slice(1)}`;else Q=`${U}__ext_Array.${H}.call(${_}, ${q}`}z=W+1}}for(let[H,K]of X){if(!K.includes("Number"))continue;let Y=new RegExp(`(\\d+(?:\\.\\d+)?)\\.(${H})\\((\\))?`,"g");Q=Q.replace(Y,(z,W,G,J)=>{return J?`__ext_Number.${G}.call(${W})`:`__ext_Number.${G}.call(${W}, `})}return Q}function z0(Z,$){let X=1,Q=0;for(let H=0;H<$&&H<Z.length;H++)if(Z[H]===`
19
19
  `)X++,Q=0;else Q++;return{line:X,column:Q}}function n6(Z,$){let X=$.trim();if(/^['"`]/.test(X))return`typeof ${Z} === 'string'`;if(X==="true"||X==="false")return`typeof ${Z} === 'boolean'`;if(X==="null")return`${Z} === null`;if(X==="undefined")return`${Z} === undefined`;if(X.startsWith("["))return`Array.isArray(${Z})`;if(X.startsWith("{"))return`(typeof ${Z} === 'object' && ${Z} !== null && !Array.isArray(${Z}))`;if(/^\+\d+/.test(X))return`(typeof ${Z} === 'number' && Number.isInteger(${Z}) && ${Z} >= 0)`;if(/^-?\d+\.\d+/.test(X))return`typeof ${Z} === 'number'`;if(/^-?\d+$/.test(X))return`(typeof ${Z} === 'number' && Number.isInteger(${Z}))`;return"true"}function f0(Z){let $=Z.trim();if(/^['"`]/.test($))return"string";if($==="true"||$==="false")return"boolean";if($==="null")return"null";if($==="undefined")return"undefined";if($.startsWith("["))return"array";if($.startsWith("{"))return"object";if(/^\+\d+/.test($))return"non-negative-integer";if(/^-?\d+\.\d+/.test($))return"number";if(/^-?\d+$/.test($))return"integer";return"any"}function k4(Z,$){let X=[],Q=0,H="",K=!1;for(let z=0;z<Z.length;z++){let W=Z[z];if(!K&&(W==="'"||W==='"'||W==="`")){K=W,H+=W;continue}if(K){if(H+=W,W==="\\"){if(z++,z<Z.length)H+=Z[z];continue}if(W===K)K=!1;continue}if(W==="("||W==="["||W==="{"){Q++,H+=W;continue}if(W===")"||W==="]"||W==="}"){Q--,H+=W;continue}if(W===","&&Q===0){let G=b6(H.trim(),$);if(G)X.push(G);H="";continue}H+=W}let Y=H.trim();if(Y){let z=b6(Y,$);if(z)X.push(z)}return X}function b6(Z,$){let X=Z.replace(/^\/\*\s*unsafe\s*\*\/\s*/,"");if(X.startsWith("..."))return null;let Q=X.indexOf("=");if(Q===-1)return{name:X.trim(),defaultValue:"",required:!0};let H=X.slice(0,Q).trim(),K=X.slice(Q+1).trim();return{name:H,defaultValue:K,required:$.has(H)}}function W0(Z,$){let X=1,Q=$+1,H=!1,K=!1,Y=!1;while(Q<Z.length&&X>0){let z=Z[Q],W=Q+1<Z.length?Z[Q+1]:"";if(K){if(z===`
20
- `)K=!1;Q++;continue}if(Y){if(z==="*"&&W==="/"){Y=!1,Q+=2;continue}Q++;continue}if(H){if(z==="\\"){Q+=2;continue}if(z===H)H=!1;Q++;continue}if(z==="/"&&W==="/"){K=!0,Q+=2;continue}if(z==="/"&&W==="*"){Y=!0,Q+=2;continue}if(z==="'"||z==='"'||z==="`"){H=z,Q++;continue}if(z==="{")X++;if(z==="}")X--;Q++}return Q}function c6(Z,$){let X=new Set,Q=/(?:^|(?<=[\n;{}]))\s*(export\s+)?(async\s+)?function\s+(\w+)\s*\(/gm,H=new Map,K,Y=[];while((K=Q.exec(Z))!==null){let L=!!K[1],_=!!K[2],U=K[3],q=K.index,I=q,R=K[0].indexOf("function");if(R>=0)I=q+R;Y.push({name:U,fullMatchStart:q,funcKeywordStart:I,exported:L,isAsync:_})}for(let L of Y)if(!H.has(L.name))H.set(L.name,[]);let z=new Map;for(let L of Y)z.set(L.name,(z.get(L.name)||0)+1);let W=new Set;for(let[L,_]of z)if(_>1)W.add(L);if(W.size===0)return{source:Z,polymorphicNames:X};for(let L of Y){if(!W.has(L.name))continue;let _=Z.indexOf("(",L.funcKeywordStart);if(_===-1)continue;let U=1,q=_+1;while(q<Z.length&&U>0){if(Z[q]==="(")U++;if(Z[q]===")")U--;q++}let I=q-1,M=Z.slice(_+1,I),R=q;while(R<Z.length&&Z[R]!=="{")R++;if(R>=Z.length)continue;let P=W0(Z,R),B=L.fullMatchStart;while(B>0&&Z[B-1]===" ")B--;let F=H.get(L.name),N=k4(M,$);if(M.includes("...")){let w=z0(Z,L.funcKeywordStart);throw new H1(`Rest parameters are not supported in polymorphic function '${L.name}'. Use separate function names instead.`,w)}F.push({index:F.length+1,start:B,end:P,text:Z.slice(B,P),exported:L.exported,isAsync:L.isAsync,params:N})}for(let[L,_]of H){if(_.length<2)continue;let U=_.filter((q)=>q.isAsync).length;if(U>0&&U<_.length){let q=z0(Z,_[0].start);throw new H1(`Polymorphic function '${L}': all variants must be either sync or async, not mixed.`,q)}for(let q=0;q<_.length;q++)for(let I=q+1;I<_.length;I++){let M=_[q],R=_[I];if(M.params.length!==R.params.length)continue;let P=!0;for(let B=0;B<M.params.length;B++){let F=M.params[B].defaultValue?f0(M.params[B].defaultValue):"any",N=R.params[B].defaultValue?f0(R.params[B].defaultValue):"any";if(F!==N){P=!1;break}}if(P){let B=z0(Z,R.start);throw new H1(`Polymorphic function '${L}': variants ${q+1} and ${I+1} have ambiguous signatures (same parameter types at every position). Overloads must differ by arity or parameter types.`,B)}}}let G=[];for(let[L,_]of H){if(_.length<2)continue;for(let U of _)G.push({name:L,variant:U})}G.sort((L,_)=>_.variant.start-L.variant.start);let J=Z;for(let{name:L,variant:_}of G){let U=_.isAsync?"async ":"",q=_.text.replace(new RegExp(`(?:export\\s+)?${U?U.replace(/\s+$/,"\\s+"):""}function\\s+${L}\\s*\\(`),`${U}function ${L}$$${_.index}(`);J=J.slice(0,_.start)+q+J.slice(_.end)}for(let[L,_]of H){if(_.length<2)continue;X.add(L);let U=_[0].isAsync,q=_.some((F)=>F.exported),I=U?"async ":"",M=q?"export ":"",R=[..._].sort((F,N)=>{if(F.params.length!==N.params.length)return 0;let V=0,w=0;for(let C of F.params){let O=C.defaultValue?f0(C.defaultValue):"any";if(O==="non-negative-integer")V+=3;else if(O==="integer")V+=2;else if(O!=="any")V+=1}for(let C of N.params){let O=C.defaultValue?f0(C.defaultValue):"any";if(O==="non-negative-integer")w+=3;else if(O==="integer")w+=2;else if(O!=="any")w+=1}return w-V}),P=[];for(let F of R){let N=[`__args.length === ${F.params.length}`],V=[];for(let w=0;w<F.params.length;w++){let C=F.params[w];if(V.push(`__args[${w}]`),C.defaultValue){let O=n6(`__args[${w}]`,C.defaultValue);if(O!=="true")N.push(O)}}P.push(` if (${N.join(" && ")}) return ${L}$${F.index}(${V.join(", ")})`)}let B=`
21
- ${M}${I}function ${L}(...__args) {
22
- ${P.join(`
20
+ `)K=!1;Q++;continue}if(Y){if(z==="*"&&W==="/"){Y=!1,Q+=2;continue}Q++;continue}if(H){if(z==="\\"){Q+=2;continue}if(z===H)H=!1;Q++;continue}if(z==="/"&&W==="/"){K=!0,Q+=2;continue}if(z==="/"&&W==="*"){Y=!0,Q+=2;continue}if(z==="'"||z==='"'||z==="`"){H=z,Q++;continue}if(z==="{")X++;if(z==="}")X--;Q++}return Q}function c6(Z,$){let X=new Set,Q=/(?:^|(?<=[\n;{}]))\s*(export\s+)?(async\s+)?function\s+(\w+)\s*\(/gm,H=new Map,K,Y=[];while((K=Q.exec(Z))!==null){let L=!!K[1],_=!!K[2],U=K[3],q=K.index,A=q,R=K[0].indexOf("function");if(R>=0)A=q+R;Y.push({name:U,fullMatchStart:q,funcKeywordStart:A,exported:L,isAsync:_})}for(let L of Y)if(!H.has(L.name))H.set(L.name,[]);let z=new Map;for(let L of Y)z.set(L.name,(z.get(L.name)||0)+1);let W=new Set;for(let[L,_]of z)if(_>1)W.add(L);if(W.size===0)return{source:Z,polymorphicNames:X};for(let L of Y){if(!W.has(L.name))continue;let _=Z.indexOf("(",L.funcKeywordStart);if(_===-1)continue;let U=1,q=_+1;while(q<Z.length&&U>0){if(Z[q]==="(")U++;if(Z[q]===")")U--;q++}let A=q-1,M=Z.slice(_+1,A),R=q;while(R<Z.length&&Z[R]!=="{")R++;if(R>=Z.length)continue;let F=W0(Z,R),B=L.fullMatchStart;while(B>0&&Z[B-1]===" ")B--;let w=H.get(L.name),O=k4(M,$);if(M.includes("...")){let C=z0(Z,L.funcKeywordStart);throw new z1(`Rest parameters are not supported in polymorphic function '${L.name}'. Use separate function names instead.`,C)}w.push({index:w.length+1,start:B,end:F,text:Z.slice(B,F),exported:L.exported,isAsync:L.isAsync,params:O})}for(let[L,_]of H){if(_.length<2)continue;let U=_.filter((q)=>q.isAsync).length;if(U>0&&U<_.length){let q=z0(Z,_[0].start);throw new z1(`Polymorphic function '${L}': all variants must be either sync or async, not mixed.`,q)}for(let q=0;q<_.length;q++)for(let A=q+1;A<_.length;A++){let M=_[q],R=_[A];if(M.params.length!==R.params.length)continue;let F=!0;for(let B=0;B<M.params.length;B++){let w=M.params[B].defaultValue?f0(M.params[B].defaultValue):"any",O=R.params[B].defaultValue?f0(R.params[B].defaultValue):"any";if(w!==O){F=!1;break}}if(F){let B=z0(Z,R.start);throw new z1(`Polymorphic function '${L}': variants ${q+1} and ${A+1} have ambiguous signatures (same parameter types at every position). Overloads must differ by arity or parameter types.`,B)}}}let G=[];for(let[L,_]of H){if(_.length<2)continue;for(let U of _)G.push({name:L,variant:U})}G.sort((L,_)=>_.variant.start-L.variant.start);let J=Z;for(let{name:L,variant:_}of G){let U=_.isAsync?"async ":"",q=_.text.replace(new RegExp(`(?:export\\s+)?${U?U.replace(/\s+$/,"\\s+"):""}function\\s+${L}\\s*\\(`),`${U}function ${L}$$${_.index}(`);J=J.slice(0,_.start)+q+J.slice(_.end)}for(let[L,_]of H){if(_.length<2)continue;X.add(L);let U=_[0].isAsync,q=_.some((w)=>w.exported),A=U?"async ":"",M=q?"export ":"",R=[..._].sort((w,O)=>{if(w.params.length!==O.params.length)return 0;let V=0,C=0;for(let S of w.params){let P=S.defaultValue?f0(S.defaultValue):"any";if(P==="non-negative-integer")V+=3;else if(P==="integer")V+=2;else if(P!=="any")V+=1}for(let S of O.params){let P=S.defaultValue?f0(S.defaultValue):"any";if(P==="non-negative-integer")C+=3;else if(P==="integer")C+=2;else if(P!=="any")C+=1}return C-V}),F=[];for(let w of R){let O=[`__args.length === ${w.params.length}`],V=[];for(let C=0;C<w.params.length;C++){let S=w.params[C];if(V.push(`__args[${C}]`),S.defaultValue){let P=n6(`__args[${C}]`,S.defaultValue);if(P!=="true")O.push(P)}}F.push(` if (${O.join(" && ")}) return ${L}$${w.index}(${V.join(", ")})`)}let B=`
21
+ ${M}${A}function ${L}(...__args) {
22
+ ${F.join(`
23
23
  `)}
24
24
  return __tjs.typeError('${L}', 'no matching overload', __args)
25
25
  }
26
- `;J+=B}return{source:J,polymorphicNames:X}}function o6(Z){return Z.replace(/(?<=^|[;\n{])\s*([A-Z][a-zA-Z0-9_]*)\s*=(?!=)/gm,($,X)=>{return $.replace(X,`const ${X}`)})}function s6(Z,$=!1){let X=[],Q=[],H="",K=0;while(K<Z.length){let Y=Z.slice(K).match(/^\btest\s+/);if(Y){let z=K,W=K+Y[0].length,G,J=Z.slice(W).match(/^(['"`])([^]*?)\1\s*/);if(J)G=J[2],W+=J[0].length;if(Z[W]==="{"){let L=W+1,_=1,U=L;while(U<Z.length&&_>0){let q=Z[U];if(q==="{")_++;else if(q==="}")_--;U++}if(_===0){let q=Z.slice(L,U-1).trim(),I=U,M=(Z.slice(0,z).match(/\n/g)||[]).length+1;if(X.push({description:G,body:q,start:z,end:I,line:M}),!$)try{Function(q)()}catch(B){let F=G||`test at line ${M}`;Q.push(`Test failed: ${F} (line ${M})
27
- ${B.message||B}`)}let P=(Z.slice(z,I).match(/\n/g)||[]).length;H+=`
28
- `.repeat(P),K=I;continue}}}H+=Z[K],K++}return{source:H,tests:X,errors:Q}}function a6(Z,$){let X=new Set,Q=/\bclass\s+(\w+)(\s+extends\s+\w+)?\s*\{/g,H,K=[];while((H=Q.exec(Z))!==null){let z=H[1],W=H[2]?.trim()||"",G=H.index+H[0].length-1,J=W0(Z,G),L=Z.slice(G,J);K.push({className:z,extendsClause:W,bodyStart:G,bodyEnd:J,body:L})}let Y=Z;for(let z=K.length-1;z>=0;z--){let{className:W,extendsClause:G,bodyStart:J,bodyEnd:L,body:_}=K[z],U=/\bconstructor\s*\(/g,q,I=[];while((q=U.exec(_))!==null)I.push(q.index);if(I.length<2)continue;X.add(W);let M=[];for(let w=0;w<I.length;w++){let C=I[w],O=_.indexOf("(",C),k=1,S=O+1;while(S<_.length&&k>0){if(_[S]==="(")k++;if(_[S]===")")k--;S++}let b=_.slice(O+1,S-1),h=S;while(h<_.length&&_[h]!=="{")h++;let u=W0(_,h),U1=_.slice(h+1,u-1);M.push({index:w+1,paramStr:b,bodyText:U1,fullStart:C,fullEnd:u})}let R=_.slice(0,M[0].fullEnd),P=M[M.length-1].fullEnd;R+=_.slice(P);let B=_;for(let w=M.length-1;w>=1;w--){let C=M[w],O=C.fullStart;while(O>0&&B[O-1]===" ")O--;if(O>0&&B[O-1]===`
29
- `)O--;B=B.slice(0,O)+B.slice(C.fullEnd)}let F="";for(let w=1;w<M.length;w++){let C=M[w],O=k4(C.paramStr,$);if(C.paramStr.includes("...")){let S=z0(Z,J+C.fullStart);throw new H1(`Rest parameters are not supported in polymorphic constructors for '${W}'.`,S)}F+=`
30
- function ${W}$ctor$${C.index}(${C.paramStr}) {`,F+=`
31
- const __obj = Object.create(${W}.prototype)`,F+=`
32
- ;(function() {${C.bodyText}}).call(__obj)`,F+=`
33
- return __obj`,F+=`
26
+ `;J+=B}return{source:J,polymorphicNames:X}}function o6(Z){return Z.replace(/(?<=^|[;\n{])\s*([A-Z][a-zA-Z0-9_]*)\s*=(?!=)/gm,($,X)=>{return $.replace(X,`const ${X}`)})}function s6(Z,$=!1){let X=[],Q=[],H="",K=0;while(K<Z.length){let Y=Z.slice(K).match(/^\btest\s+/);if(Y){let z=K,W=K+Y[0].length,G,J=Z.slice(W).match(/^(['"`])([^]*?)\1\s*/);if(J)G=J[2],W+=J[0].length;if(Z[W]==="{"){let L=W+1,_=1,U=L;while(U<Z.length&&_>0){let q=Z[U];if(q==="{")_++;else if(q==="}")_--;U++}if(_===0){let q=Z.slice(L,U-1).trim(),A=U,M=(Z.slice(0,z).match(/\n/g)||[]).length+1;if(X.push({description:G,body:q,start:z,end:A,line:M}),!$)try{Function(q)()}catch(B){let w=G||`test at line ${M}`;Q.push(`Test failed: ${w} (line ${M})
27
+ ${B.message||B}`)}let F=(Z.slice(z,A).match(/\n/g)||[]).length;H+=`
28
+ `.repeat(F),K=A;continue}}}H+=Z[K],K++}return{source:H,tests:X,errors:Q}}function a6(Z,$){let X=new Set,Q=/\bclass\s+(\w+)(\s+extends\s+\w+)?\s*\{/g,H,K=[];while((H=Q.exec(Z))!==null){let z=H[1],W=H[2]?.trim()||"",G=H.index+H[0].length-1,J=W0(Z,G),L=Z.slice(G,J);K.push({className:z,extendsClause:W,bodyStart:G,bodyEnd:J,body:L})}let Y=Z;for(let z=K.length-1;z>=0;z--){let{className:W,extendsClause:G,bodyStart:J,bodyEnd:L,body:_}=K[z],U=/\bconstructor\s*\(/g,q,A=[];while((q=U.exec(_))!==null)A.push(q.index);if(A.length<2)continue;X.add(W);let M=[];for(let C=0;C<A.length;C++){let S=A[C],P=_.indexOf("(",S),k=1,E=P+1;while(E<_.length&&k>0){if(_[E]==="(")k++;if(_[E]===")")k--;E++}let v=_.slice(P+1,E-1),g=E;while(g<_.length&&_[g]!=="{")g++;let y=W0(_,g),o=_.slice(g+1,y-1);M.push({index:C+1,paramStr:v,bodyText:o,fullStart:S,fullEnd:y})}let R=_.slice(0,M[0].fullEnd),F=M[M.length-1].fullEnd;R+=_.slice(F);let B=_;for(let C=M.length-1;C>=1;C--){let S=M[C],P=S.fullStart;while(P>0&&B[P-1]===" ")P--;if(P>0&&B[P-1]===`
29
+ `)P--;B=B.slice(0,P)+B.slice(S.fullEnd)}let w="";for(let C=1;C<M.length;C++){let S=M[C],P=k4(S.paramStr,$);if(S.paramStr.includes("...")){let E=z0(Z,J+S.fullStart);throw new z1(`Rest parameters are not supported in polymorphic constructors for '${W}'.`,E)}w+=`
30
+ function ${W}$ctor$${S.index}(${S.paramStr}) {`,w+=`
31
+ const __obj = Object.create(${W}.prototype)`,w+=`
32
+ ;(function() {${S.bodyText}}).call(__obj)`,w+=`
33
+ return __obj`,w+=`
34
34
  }
35
- `}let N=[];for(let w=0;w<M.length;w++){let C=M[w],O=k4(C.paramStr,$),k=[`a.length === ${O.length}`];for(let S=0;S<O.length;S++){let b=O[S];if(b.defaultValue){let h=n6(`a[${S}]`,b.defaultValue);if(h!=="true")k.push(h)}}if(w===0)N.push(` if (${k.join(" && ")}) return Reflect.construct(t, a)`);else{let S=O.map((b,h)=>`a[${h}]`).join(", ");N.push(` if (${k.join(" && ")}) return ${W}$ctor$${C.index}(${S})`)}}F+=`
35
+ `}let O=[];for(let C=0;C<M.length;C++){let S=M[C],P=k4(S.paramStr,$),k=[`a.length === ${P.length}`];for(let E=0;E<P.length;E++){let v=P[E];if(v.defaultValue){let g=n6(`a[${E}]`,v.defaultValue);if(g!=="true")k.push(g)}}if(C===0)O.push(` if (${k.join(" && ")}) return Reflect.construct(t, a)`);else{let E=P.map((v,g)=>`a[${g}]`).join(", ");O.push(` if (${k.join(" && ")}) return ${W}$ctor$${S.index}(${E})`)}}w+=`
36
36
  function ${W}$dispatch(t, a) {
37
- `,F+=N.join(`
37
+ `,w+=O.join(`
38
38
  `)+`
39
- `,F+=` return __tjs.typeError('${W}', 'no matching constructor', a)
40
- `,F+=`}
41
- `,Y=Y.slice(0,J)+B+Y.slice(L);let V=J+B.length;Y=Y.slice(0,V)+F+Y.slice(V)}return{source:Y,polyCtorClasses:X}}function r6(Z,$=new Set){let X=/\bclass\s+(\w+)(\s+extends\s+\w+)?\s*\{/g,Q="",H=0,K;while((K=X.exec(Z))!==null){let Y=K[1],z=K[2]||"",W=K.index,G=W+K[0].length-1,J=1,L=G+1;while(L<Z.length&&J>0){let _=Z[L];if(_==="{")J++;else if(_==="}")J--;L++}if(J===0){let _=L,U=Z.slice(G,_);if(Q+=Z.slice(H,W),Q+=`let ${Y} = class ${Y}${z} ${U}; `,$.has(Y))Q+=`${Y} = new Proxy(${Y}, { apply(t, _, a) { return ${Y}$dispatch(t, a) }, construct(t, a) { return ${Y}$dispatch(t, a) } });`;else Q+=`${Y} = new Proxy(${Y}, { apply(t, _, a) { return Reflect.construct(t, a) } });`;H=_}}return Q+=Z.slice(H),Q}function t6(Z){let $=[{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:X,message:Q}of $)if(X.test(Z))throw Error(Q);return Z}function e6(Z){let $=new Set,X=/\bconst!\s+(\w+)\b/g,Q;while((Q=X.exec(Z))!==null)$.add(Q[1]);if($.size===0)return Z;Z=Z.replace(/\bconst!\s+/g,"const ");let H=Z.replace(/\/\*[\s\S]*?\*\//g,"").replace(/\/\/[^\n]*/g,"");for(let K of $){if(new RegExp(`\\b${K}\\s*(?:\\.[\\w]+|\\[[^\\]]+\\])\\s*(?:=(?!=)|\\+\\+|--|\\+=|-=|\\*=|\\/=|%=|&&=|\\|\\|=|\\?\\?=|<<=|>>=|>>>=|\\^=|&=|\\|=)`,"g").test(H))throw Error(`Cannot mutate immutable binding '${K}'. const! bindings are read-only at compile time.`);if(new RegExp(`(?:\\+\\+|--)\\s*${K}\\s*(?:\\.[\\w]+|\\[[^\\]]+\\])`,"g").test(H))throw Error(`Cannot mutate immutable binding '${K}'. const! bindings are read-only at compile time.`);if(new RegExp(`\\bdelete\\s+${K}\\s*(?:\\.[\\w]+|\\[[^\\]]+\\])`,"g").test(H))throw Error(`Cannot mutate immutable binding '${K}'. const! bindings are read-only at compile time.`);if(new RegExp(`\\b${K}\\s*\\.\\s*(?:${"push|pop|splice|shift|unshift|sort|reverse|fill|copyWithin|set"})\\s*\\(`,"g").test(H))throw Error(`Cannot call mutating method on immutable binding '${K}'. const! bindings are read-only at compile time.`)}return Z}function Z7(Z){if(/(?<![a-zA-Z_$])\bvar\s+/.test(Z))throw Error("var is not allowed in TjsNoVar mode. Use const or let instead.");return Z}function $7(Z){if(/(?<![A-Za-z_$])\beval\s*\(/.test(Z))throw Error("eval() is not allowed in TjsNoeval mode. Use Eval() from TJS runtime for safe evaluation.");if(/\bnew\s+Function\s*\(/.test(Z))throw Error("new Function() is not allowed in TjsNoeval mode. Use SafeFunction() from TJS runtime.");return Z}function y0(Z,$={}){let X=Z,Q,H=new Set,K=new Set,Y=new Set,z={tjsEquals:!1,tjsClass:!1,tjsDate:!1,tjsNoeval:!1,tjsStandard:!1,tjsSafeEval:!1,tjsNoVar:!1},W=Z.match(/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*safety\s+(none|inputs|all)\b/);if(W)Q=W[2],Z=Z.replace(/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*safety\s+(none|inputs|all)\s*/,"$1");let G=/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*(TjsStrict|TjsEquals|TjsClass|TjsDate|TjsNoeval|TjsNoVar|TjsStandard|TjsSafeEval)\b/,J;while(J=Z.match(G)){let B=J[2];if(B==="TjsStrict")z.tjsEquals=!0,z.tjsClass=!0,z.tjsDate=!0,z.tjsNoeval=!0,z.tjsNoVar=!0,z.tjsStandard=!0;else if(B==="TjsEquals")z.tjsEquals=!0;else if(B==="TjsClass")z.tjsClass=!0;else if(B==="TjsDate")z.tjsDate=!0;else if(B==="TjsNoeval")z.tjsNoeval=!0;else if(B==="TjsNoVar")z.tjsNoVar=!0;else if(B==="TjsStandard")z.tjsStandard=!0;else if(B==="TjsSafeEval")z.tjsSafeEval=!0;Z=Z.replace(new RegExp(`^(\\s*(?:\\/\\/[^\\n]*\\n|\\/\\*[\\s\\S]*?\\*\\/\\s*)*)\\s*${B}\\s*`),"$1")}if(z.tjsStandard)Z=h6(Z);if(Z=e6(Z),Z=y6(Z),z.tjsEquals&&!$.vmTarget)Z=x6(Z);Z=u6(Z),Z=l6(Z),Z=d6(Z),Z=m6(Z),Z=i6(Z),Z=o6(Z);let{source:L,returnType:_,returnSafety:U}=b0(Z,{originalSource:X,requiredParams:H,unsafeFunctions:K,safeFunctions:Y});Z=L;let q=p6(Z);Z=q.source,Z=v6(Z);let I=c6(Z,H);Z=I.source;let M=f6(Z);Z=M.source;let R=s6(Z,$.dangerouslySkipTests);Z=R.source;let P=a6(Z,H);Z=P.source;for(let B of P.polyCtorClasses)K.add(`${B}$dispatch`);if(z.tjsClass)Z=r6(Z,P.polyCtorClasses);if(z.tjsDate)Z=t6(Z);if(z.tjsNoeval)Z=$7(Z);if(z.tjsNoVar)Z=Z7(Z);return Z=G0(Z,q.extensions),{source:Z,returnType:_,returnSafety:U,moduleSafety:Q,tjsModes:z,originalSource:X,requiredParams:H,unsafeFunctions:K,safeFunctions:Y,wasmBlocks:M.blocks,tests:R.tests,testErrors:R.errors,polymorphicNames:I.polymorphicNames,extensions:q.extensions}}function j1(Z,$={}){let{filename:X="<source>",colonShorthand:Q=!0,vmTarget:H=!1}=$,{source:K,returnType:Y,returnSafety:z,moduleSafety:W,originalSource:G,requiredParams:J,unsafeFunctions:L,safeFunctions:_,wasmBlocks:U,tests:q,testErrors:I}=Q?y0(Z,{vmTarget:H}):{source:Z,returnType:void 0,returnSafety:void 0,moduleSafety:void 0,originalSource:Z,requiredParams:new Set,unsafeFunctions:new Set,safeFunctions:new Set,wasmBlocks:[],tests:[],testErrors:[]};try{return{ast:X7.parse(K,{ecmaVersion:2022,sourceType:"module",locations:!0,allowReturnOutsideFunction:!1}),returnType:Y,returnSafety:z,moduleSafety:W,originalSource:G,requiredParams:J,unsafeFunctions:L,safeFunctions:_,wasmBlocks:U,tests:q,testErrors:I}}catch(M){let R=M.loc||{line:1,column:0};throw new H1(M.message.replace(/\s*\(\d+:\d+\)$/,""),R,G,X)}}function h0(Z,$){for(let Q of Z.body){if(Q.type==="ImportDeclaration")throw new H1("Imports are not supported. All atoms must be registered with the VM.",Q.loc?.start||{line:1,column:0},void 0,$);if(Q.type==="ExportNamedDeclaration"||Q.type==="ExportDefaultDeclaration")throw new H1("Exports are not supported. The function is automatically exported.",Q.loc?.start||{line:1,column:0},void 0,$);if(Q.type==="ClassDeclaration")throw new H1("Classes are not supported. Agent99 uses functional composition.",Q.loc?.start||{line:1,column:0},void 0,$)}let X=Z.body.filter((Q)=>Q.type==="FunctionDeclaration");if(X.length===0)throw new H1("Source must contain a function declaration",{line:1,column:0},void 0,$);if(X.length>1){let Q=X[1];throw new H1("Only a single function per agent is allowed",Q.loc?.start||{line:1,column:0},void 0,$)}return X[0]}function J0(Z,$){let X={params:{}};if(!$.loc)return X;let Q=Z.substring(0,$.start),H=[...Q.matchAll(/\/\*#([\s\S]*?)\*\//g)];if(H.length>0){let J=H[H.length-1],L=Q.substring(J.index+J[0].length);if(/^(?:\s|\/\/[^\n]*)*$/.test(L)){let _=J[1],U=_.split(`
42
- `),q=U.filter((I)=>I.trim().length>0).reduce((I,M)=>{let R=M.match(/^(\s*)/)?.[1].length||0;return Math.min(I,R)},1/0);if(q>0&&q<1/0)_=U.map((I)=>I.slice(q)).join(`
43
- `);return X.description=_.trim(),X}}let K=Q.match(/\/\*\*[\s\S]*?\*\/\s*$/);if(!K)return X;let Y=K[0],z=Y.match(/\/\*\*\s*\n?\s*\*?\s*([^@\n][^\n]*)/m);if(z)X.description=z[1].trim();let W=/@param\s+(?:\{[^}]+\}\s+)?(\w+)\s*-?\s*(.*)/g,G;while((G=W.exec(Y))!==null)X.params[G[1]]=G[2].trim();return X}import{parseExpressionAt as ZZ}from"acorn";function K1(Z){switch(Z.type){case"Literal":{let $=Z.value;if($===null)return{kind:"null"};if(typeof $==="string")return{kind:"string"};if(typeof $==="number"){let X=Z.raw;if(X&&X.includes("."))return{kind:"number"};return{kind:"integer"}}if(typeof $==="boolean")return{kind:"boolean"};return{kind:"any"}}case"ArrayExpression":{let $=Z.elements;if($.length===0)return{kind:"array",items:{kind:"any"}};let X=$.filter((Y)=>Y!=null).map((Y)=>K1(Y));if(X.length===0)return{kind:"array",items:{kind:"any"}};let Q=new Map;for(let Y of X){let z=JSON.stringify(Y);if(!Q.has(z))Q.set(z,Y)}let H=[...Q.values()];return{kind:"array",items:H.length===1?H[0]:{kind:"union",members:H}}}case"ObjectExpression":{let $=Z.properties,X={};for(let Q of $)if(Q.type==="Property"&&Q.key.type==="Identifier"){let H=Q.key.name;X[H]=K1(Q.value)}return{kind:"object",shape:X}}case"LogicalExpression":{let{operator:$,left:X,right:Q}=Z;if($==="||")return K1(X);if($==="&&")return K1(Q);if($==="??")return K1(Q);return{kind:"any"}}case"BinaryExpression":{let{operator:$,left:X,right:Q}=Z;if($==="|"){let H=K1(X),K=K1(Q);if(K.kind==="null")return{...H,nullable:!0};if(H.kind==="null")return{...K,nullable:!0};return{kind:"union",members:[H,K]}}return{kind:"any"}}case"Identifier":{if(Z.name==="undefined")return{kind:"undefined"};return{kind:"any"}}case"UnaryExpression":{let{operator:$,argument:X}=Z;if($==="+"&&X.type==="Literal"){if(typeof X.value==="number")return{kind:"non-negative-integer"}}if($==="-"&&X.type==="Literal"){if(typeof X.value==="number"){let H=X.raw;if(H&&H.includes("."))return{kind:"number"};return{kind:"integer"}}}return{kind:"any"}}default:return{kind:"any"}}}function C1(Z,$){if(Z.type==="Identifier")return{name:Z.name,type:{kind:"any"},required:!0};if(Z.type==="AssignmentPattern"){let{left:X,right:Q}=Z;if(X.type!=="Identifier")throw new p("Only simple parameter names are supported",n(Z));let H=X.name,K=$?.has(H)??!1,Y=K1(Q),z=B1(Q);return{name:H,type:Y,required:K,default:K?null:z,example:z,loc:{start:Z.start,end:Z.end}}}if(Z.type==="ObjectPattern"){let X=Z.properties,Q={},H={};for(let K of X)if(K.type==="Property"){let Y=K.key.type==="Identifier"?K.key.name:String(K.key.value);if(K.value.type==="Identifier")Q[Y]={kind:"any"},H[Y]={name:Y,type:{kind:"any"},required:!0};else if(K.value.type==="AssignmentPattern"){let z=C1(K.value,$),W=$?.has(Y)??!1;Q[Y]=z.type,H[Y]={name:Y,type:z.type,required:W,default:W?null:z.example,example:z.example}}}return{name:"__destructured__",type:{kind:"object",shape:Q,destructuredParams:H},required:!0}}throw new p(`Unsupported parameter pattern: ${Z.type}`,n(Z))}function B1(Z){switch(Z.type){case"Literal":return Z.value;case"ArrayExpression":return Z.elements.map(($)=>$?B1($):null);case"ObjectExpression":{let $={};for(let X of Z.properties)if(X.type==="Property"&&X.key.type==="Identifier")$[X.key.name]=B1(X.value);return $}case"UnaryExpression":if(Z.operator==="-"){let $=B1(Z.argument);return typeof $==="number"?-$:void 0}if(Z.operator==="+"){let $=B1(Z.argument);return typeof $==="number"?+$:void 0}return;case"BinaryExpression":{let{operator:$,left:X}=Z;if($==="|")return B1(X);return}case"LogicalExpression":{let{operator:$,left:X,right:Q}=Z;if($==="&&"){if(X.type==="Literal"&&X.value===null)return null}if($==="||")return B1(X)??B1(Q);if($==="??")return B1(X)??B1(Q);return}default:return}}function Q7(Z){try{let $=ZZ(Z,0,{ecmaVersion:2022});return K1($)}catch{return{kind:"any"}}}function g4(Z){switch(Z.kind){case"string":return Z.nullable?"string | null":"string";case"number":return Z.nullable?"number | null":"number";case"integer":return Z.nullable?"integer | null":"integer";case"non-negative-integer":return Z.nullable?"non-negative integer | null":"non-negative integer";case"boolean":return Z.nullable?"boolean | null":"boolean";case"null":return"null";case"any":return"any";case"array":{let $=Z.items?g4(Z.items):"any";return Z.nullable?`${$}[] | null`:`${$}[]`}case"object":{if(!Z.shape||Object.keys(Z.shape).length===0)return Z.nullable?"object | null":"object";let $=Object.entries(Z.shape).map(([X,Q])=>`${X}: ${g4(Q)}`).join(", ");return Z.nullable?`{ ${$} } | null`:`{ ${$} }`}case"union":return Z.members?.map(g4).join(" | ")||"any";default:return"any"}}function x0(Z){switch(Z.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:Z.items?x0(Z.items):{}};case"object":if(Z.shape){let $={};for(let[X,Q]of Object.entries(Z.shape))$[X]=x0(Q);return{type:"object",properties:$,additionalProperties:!1}}return{type:"object"};case"union":if(Z.members)return{oneOf:Z.members.map(x0)};return{};default:return{}}}function $Z(Z){let $={},X=[];for(let[Q,H]of Object.entries(Z))if($[Q]=x0(H.type),H.required)X.push(Q);return{type:"object",properties:$,required:X.length>0?X:void 0,additionalProperties:!1}}function U0(Z,$,X,Q={},H){let K=J0($,Z),Y=new Map;for(let M of Z.params){let R=C1(M,H);if(R.name==="__destructured__"&&R.type.kind==="object"&&R.type.destructuredParams)for(let[P,B]of Object.entries(R.type.destructuredParams))Y.set(P,{...B,description:K.params[P]});else R.description=K.params[R.name],Y.set(R.name,R)}let z;if(X)z=Q7(X);let W={depth:0,locals:new Map,parameters:Y,atoms:new Set(Object.keys(Q.atoms||{})),warnings:[],source:$,filename:Q.filename||"<source>",options:Q},G=R1(Z.body,W),J=[],L=[],_=[];for(let[M,R]of Y.entries())if(R.required)L.push(M);else if(R.default!==void 0)_.push({name:M,defaultValue:R.default});else L.push(M);if(L.length>0)J.push({op:"varsImport",keys:L});for(let{name:M,defaultValue:R}of _)J.push({op:"varsImport",keys:[M]}),J.push({op:"if",condition:{$expr:"binary",op:"==",left:{$expr:"ident",name:M},right:{$expr:"literal",value:null}},then:[{op:"varSet",key:M,value:R}]});J.push(...G);let U=Object.fromEntries(Y),q={name:Z.id?.name||"anonymous",description:K.description,parameters:U,returns:z},I=$Z(U);return{ast:{op:"seq",steps:J,inputSchema:I},signature:q,warnings:W.warnings}}function R1(Z,$){let X=[];for(let Q of Z.body){let H=_0(Q,$);if(H)if(Array.isArray(H))X.push(...H);else X.push(H)}return X}function _0(Z,$){switch(Z.type){case"VariableDeclaration":return XZ(Z,$);case"ExpressionStatement":return QZ(Z,$);case"IfStatement":return KZ(Z,$);case"WhileStatement":return YZ(Z,$);case"ForOfStatement":return zZ(Z,$);case"TryStatement":return WZ(Z,$);case"ReturnStatement":return GZ(Z,$);case"ThrowStatement":throw new p("'throw' is not supported in AsyncJS. Use Error('message') to trigger error flow",n(Z),$.source,$.filename);case"BlockStatement":return{op:"scope",steps:R1(Z,G1($))};case"EmptyStatement":return null;default:throw new p(`Unsupported statement type: ${Z.type}`,n(Z),$.source,$.filename)}}function XZ(Z,$){let X=[],Q=Z.kind==="const",H=Q?"constSet":"varSet";for(let K of Z.declarations){if(K.id.type!=="Identifier")throw new p("Only simple variable names are supported",n(K),$.source,$.filename);let Y=K.id.name;if(K.init){let{step:z,resultVar:W}=v1(K.init,$,Y,Q);if(z)X.push(z);else if(W!==Y)X.push({op:H,key:Y,value:W});let G=K1(K.init);$.locals.set(Y,G)}else{if(Q)throw new p("const declarations must be initialized",n(K),$.source,$.filename);X.push({op:"varSet",key:Y,value:null}),$.locals.set(Y,{kind:"any",nullable:!0})}}return X}function QZ(Z,$){let X=Z.expression;if(X.type==="AssignmentExpression")return HZ(X,$);if(X.type==="CallExpression"){let{step:Q,resultVar:H}=v1(X,$);if(Q)return Q;if(H)return{op:"varSet",key:"_",value:H};return null}return $.warnings.push({message:"Expression statement has no effect",line:n(Z).line,column:n(Z).column}),null}function HZ(Z,$){if(Z.left.type!=="Identifier")throw new p("Only simple variable assignment is supported",n(Z),$.source,$.filename);let X=Z.left.name,{step:Q,resultVar:H}=v1(Z.right,$,X);if(Q)return Q;return{op:"varSet",key:X,value:H}}function KZ(Z,$){let X=i(Z.test,$),Q=Z.consequent.type==="BlockStatement"?R1(Z.consequent,G1($)):[_0(Z.consequent,$)].filter(Boolean),H;if(Z.alternate)H=Z.alternate.type==="BlockStatement"?R1(Z.alternate,G1($)):[_0(Z.alternate,$)].filter(Boolean);return{op:"if",condition:X,then:Q,...H&&{else:H}}}function YZ(Z,$){let X=i(Z.test,$),Q=Z.body.type==="BlockStatement"?R1(Z.body,G1($)):[_0(Z.body,$)].filter(Boolean);return{op:"while",condition:X,body:Q}}function zZ(Z,$){let X;if(Z.left.type==="VariableDeclaration"){let Y=Z.left.declarations[0];if(Y.id.type!=="Identifier")throw new p("Only simple variable names are supported in for...of",n(Z.left),$.source,$.filename);X=Y.id.name}else if(Z.left.type==="Identifier")X=Z.left.name;else throw new p("Unsupported for...of left-hand side",n(Z.left),$.source,$.filename);let Q=t(Z.right,$),H=G1($);H.locals.set(X,{kind:"any"});let K=Z.body.type==="BlockStatement"?R1(Z.body,H):[_0(Z.body,H)].filter(Boolean);return{op:"map",items:Q,as:X,steps:K}}function WZ(Z,$){let X=R1(Z.block,G1($)),Q,H;if(Z.handler){let K=G1($);if(Z.handler.param?.type==="Identifier")H=Z.handler.param.name,K.locals.set(H,{kind:"any"});Q=R1(Z.handler.body,K)}return{op:"try",try:X,...Q&&{catch:Q},...H&&{catchParam:H}}}function GZ(Z,$){if(!Z.argument)return{op:"return",value:{}};let{step:X,resultVar:Q}=v1(Z.argument,$,"__returnVal__");if(X)return[X,{op:"return",value:Q}];return{op:"return",value:t(Z.argument,$)}}var K7=new Set(["Math","JSON","Array","Object","String","Number","console","Date","Schema"]),JZ=new Set(["parseInt","parseFloat","isNaN","isFinite","encodeURI","decodeURI","encodeURIComponent","decodeURIComponent","Set","Date","filter"]),L0=new Set(["RegExp","Promise","Map","WeakSet","WeakMap","Symbol","Proxy","Reflect","Function","eval","setTimeout","setInterval","fetch","require","import","process","window","document","global","globalThis"]),_Z=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 LZ(Z){if(Z.callee.type==="Identifier"){let $=Z.callee.name;return JZ.has($)||L0.has($)}if(Z.callee.type==="MemberExpression"){let $=Z.callee;if($.object.type==="Identifier"){let X=$.object.name;if(K7.has(X)||L0.has(X))return!0}if($.property.type==="Identifier"){let X=$.property.name;if(_Z.has(X))return!0}}return!1}function UZ(Z){if(Z.object.type==="Identifier"){let $=Z.object.name;return K7.has($)||L0.has($)}return!1}var H7={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 qZ(Z){if(Z.callee.type==="Identifier"){let $=Z.callee.name;if(L0.has($))return H7[$]||`${$} is not available in AsyncJS.`}if(Z.callee.type==="MemberExpression"){let $=Z.callee;if($.object.type==="Identifier"){let X=$.object.name;if(L0.has(X))return H7[X]||`${X} is not available in AsyncJS.`}}return null}function Y7(Z){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."}[Z]||" Use factory functions or object literals instead."}function v1(Z,$,X,Q){let H=Q?"constSet":"varSet";if(Z.type==="ChainExpression")return v1(Z.expression,$,X,Q);if(Z.type==="NewExpression"){let Y=Z,z="constructor";if(Y.callee.type==="Identifier")z=Y.callee.name;let W=Y7(z);throw new p(`The 'new' keyword is not supported in AsyncJS.${W}`,n(Z),$.source,$.filename)}if(Z.type==="CallExpression"){let Y=qZ(Z);if(Y)throw new p(Y,n(Z),$.source,$.filename)}if(Z.type==="CallExpression"&&LZ(Z)){let Y=i(Z,$);if(X)return{step:{op:H,key:X,value:Y},resultVar:X};return{step:null,resultVar:Y}}if(Z.type==="MemberExpression"&&UZ(Z)){let Y=i(Z,$);if(X)return{step:{op:H,key:X,value:Y},resultVar:X};return{step:null,resultVar:Y}}if(Z.type==="CallExpression")return DZ(Z,$,X,Q);if(Z.type==="TemplateLiteral")return IZ(Z,$,X,Q);if(Z.type==="BinaryExpression"||Z.type==="LogicalExpression"||Z.type==="UnaryExpression"){let Y=i(Z,$);if(X)return{step:{op:H,key:X,value:Y},resultVar:X};return{step:null,resultVar:Y}}return{step:null,resultVar:t(Z,$)}}function DZ(Z,$,X,Q){let H,K=!1,Y;if(Z.callee.type==="Identifier")H=Z.callee.name;else if(Z.callee.type==="MemberExpression"){let W=Z.callee;if(W.property.type==="Identifier")H=W.property.name,K=!0,Y=t(W.object,$);else throw new p("Computed method names are not supported",n(Z),$.source,$.filename)}else throw new p("Only named function calls are supported",n(Z),$.source,$.filename);if(K)return AZ(H,Y,Z.arguments,$,X,Q);if(H==="console"&&Z.callee.type==="MemberExpression");let z=BZ(Z,$);return{step:{op:H,...z,...X&&{result:X},...X&&Q&&{resultConst:!0}},resultVar:X}}function AZ(Z,$,X,Q,H,K){switch(Z){case"map":if(X.length>0&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],W=z?.type==="Identifier"?z.name:"item",G=G1(Q);G.locals.set(W,{kind:"any"});let J;if(Y.body.type==="BlockStatement")J=R1(Y.body,G);else{let{step:L,resultVar:_}=v1(Y.body,G,"result");J=L?[L]:[{op:"varSet",key:"result",value:_}]}return{step:{op:"map",items:$,as:W,steps:J,...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}break;case"filter":if(X.length>0&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],W=z?.type==="Identifier"?z.name:"item",G=G1(Q);G.locals.set(W,{kind:"any"});let J;if(Y.body.type==="BlockStatement")throw new p("filter callback must be an expression, not a block",n(X[0]),Q.source,Q.filename);else J=i(Y.body,G);return{step:{op:"filter",items:$,as:W,condition:J,...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}break;case"find":if(X.length>0&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],W=z?.type==="Identifier"?z.name:"item",G=G1(Q);G.locals.set(W,{kind:"any"});let J;if(Y.body.type==="BlockStatement")throw new p("find callback must be an expression, not a block",n(X[0]),Q.source,Q.filename);else J=i(Y.body,G);return{step:{op:"find",items:$,as:W,condition:J,...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}break;case"reduce":if(X.length>=2&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],W=Y.params[1],G=z?.type==="Identifier"?z.name:"acc",J=W?.type==="Identifier"?W.name:"item",L=G1(Q);L.locals.set(G,{kind:"any"}),L.locals.set(J,{kind:"any"});let _;if(Y.body.type==="BlockStatement")_=R1(Y.body,L);else{let{step:q,resultVar:I}=v1(Y.body,L,"result");_=q?[q]:[{op:"varSet",key:"result",value:I}]}let U=t(X[1],Q);return{step:{op:"reduce",items:$,as:J,accumulator:G,initial:U,steps:_,...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}break;case"slice":break;case"push":return{step:{op:"push",list:$,item:t(X[0],Q),...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H};case"join":return{step:{op:"join",list:$,sep:X.length>0?t(X[0],Q):"",...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H};case"split":return{step:{op:"split",str:$,sep:X.length>0?t(X[0],Q):"",...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}return Q.warnings.push({message:`Unknown method '${Z}' - treating as atom call`,line:0,column:0}),{step:{op:Z,receiver:$,args:X.map((Y)=>t(Y,Q)),...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}function IZ(Z,$,X,Q){let H="",K={};for(let Y=0;Y<Z.quasis.length;Y++)if(H+=Z.quasis[Y].value.cooked||Z.quasis[Y].value.raw,Y<Z.expressions.length){let z=Z.expressions[Y],W=`_${Y}`;K[W]=t(z,$),H+=`{{${W}}}`}return{step:{op:"template",tmpl:H,vars:K,...X&&{result:X},...X&&Q&&{resultConst:!0}},resultVar:X}}function i(Z,$){switch(Z.type){case"Literal":return{$expr:"literal",value:Z.value};case"Identifier":return{$expr:"ident",name:Z.name};case"MemberExpression":{let X=Z,Q=i(X.object,$),H=X.optional===!0;if(X.computed){let Y=X.property;if(Y.type==="Literal")return{$expr:"member",object:Q,property:String(Y.value),computed:!0,...H&&{optional:!0}};throw new p("Computed member access with variables not yet supported",n(Z),$.source,$.filename)}let K=X.property.name;return{$expr:"member",object:Q,property:K,...H&&{optional:!0}}}case"ChainExpression":return i(Z.expression,$);case"BinaryExpression":{let X=Z;return{$expr:"binary",op:X.operator,left:i(X.left,$),right:i(X.right,$)}}case"LogicalExpression":{let X=Z;return{$expr:"logical",op:X.operator,left:i(X.left,$),right:i(X.right,$)}}case"UnaryExpression":{let X=Z;return{$expr:"unary",op:X.operator,argument:i(X.argument,$)}}case"ConditionalExpression":{let X=Z;return{$expr:"conditional",test:i(X.test,$),consequent:i(X.consequent,$),alternate:i(X.alternate,$)}}case"ArrayExpression":return{$expr:"array",elements:Z.elements.filter((Q)=>Q!==null).map((Q)=>i(Q,$))};case"ObjectExpression":{let X=Z,Q=[];for(let H of X.properties)if(H.type==="Property"){let K=H.key.type==="Identifier"?H.key.name:String(H.key.value);Q.push({key:K,value:i(H.value,$)})}return{$expr:"object",properties:Q}}case"CallExpression":{let X=Z;if(X.callee.type==="MemberExpression"){let Q=X.callee,H=Q.property.type==="Identifier"?Q.property.name:String(Q.property.value),K=Q.optional===!0||X.optional===!0;return{$expr:"methodCall",object:i(Q.object,$),method:H,arguments:X.arguments.map((Y)=>i(Y,$)),...K&&{optional:!0}}}if(X.callee.type==="Identifier")return{$expr:"call",callee:X.callee.name,arguments:X.arguments.map((H)=>i(H,$))};throw new p("Complex function calls in expressions should be lifted to statements",n(Z),$.source,$.filename)}case"NewExpression":{let X=Z,Q="constructor";if(X.callee.type==="Identifier")Q=X.callee.name;let H=Y7(Q);throw new p(`The 'new' keyword is not supported in AsyncJS.${H}`,n(Z),$.source,$.filename)}case"TemplateLiteral":throw new p("Template literals inside expressions are not supported. Assign to a variable first: const msg = `hello ${name}`; then use msg",n(Z),$.source,$.filename);default:throw new p(`Unsupported expression type in condition: ${Z.type}`,n(Z),$.source,$.filename)}}function t(Z,$){switch(Z.type){case"Literal":return Z.value;case"Identifier":return Z.name;case"MemberExpression":{let X=Z;if(X.optional===!0)return i(Z,$);let H=t(X.object,$);if(H&&typeof H==="object"&&H.$expr){let Y=X.computed?String(X.property.value):X.property.name;return{$expr:"member",object:H,property:Y,...X.computed&&{computed:!0}}}if(X.computed)return`${H}[${t(X.property,$)}]`;let K=X.property.name;if(typeof H==="string")return`${H}.${K}`;if(H&&H.$kind==="arg")return{$kind:"arg",path:`${H.path}.${K}`};return`${H}.${K}`}case"ChainExpression":return t(Z.expression,$);case"ArrayExpression":return Z.elements.map((X)=>X?t(X,$):null);case"ObjectExpression":{let X={};for(let Q of Z.properties)if(Q.type==="Property"){let H=Q.key.type==="Identifier"?Q.key.name:String(Q.key.value);X[H]=t(Q.value,$)}return X}case"TemplateLiteral":return i(Z,$);case"CallExpression":return i(Z,$);case"BinaryExpression":case"LogicalExpression":case"UnaryExpression":case"ConditionalExpression":return i(Z,$);default:return null}}function BZ(Z,$){if(Z.arguments.length===1&&Z.arguments[0].type==="ObjectExpression"){let X=Z.arguments[0],Q={};for(let H of X.properties)if(H.type==="Property"){let K=H.key.type==="Identifier"?H.key.name:String(H.key.value);Q[K]=t(H.value,$)}return Q}return{args:Z.arguments.map((X)=>t(X,$))}}import{parseExpressionAt as S7}from"acorn";function RZ(Z,$){let X=$;while(X>0&&Z[X-1]!==`
44
- `)X--;if(Z.slice(X,$).includes("//"))return!0;let H=0,K=!1;while(H<$)if(!K&&Z.slice(H,H+2)==="/*")K=!0,H+=2;else if(K&&Z.slice(H,H+2)==="*/")K=!1,H+=2;else H++;return K}function MZ(Z){let $=[],X=/\/\*test\s+(['"`])([^'"`]*)\1\s*\{([\s\S]*?)\}\s*\*\/|\/\*test\s*\{([\s\S]*?)\}\s*\*\//g,Q;while((Q=X.exec(Z))!==null){let H=Q[2]||`embedded test ${$.length+1}`,K=(Q[3]||Q[4]||"").trim();$.push({description:H,body:K,line:b4(Z,Q.index)})}return $}function v4(Z){let $=[],X=[],Q=MZ(Z);$.push(...Q);let H=/test\s+(['"`])([^'"`]*)\1\s*\{|test\s*\(\s*(['"`])([^'"`]*)\3\s*\)\s*\{|test\s*\{/g,K=/mock\s*\{/g,Y=Z,z,W=[];while((z=H.exec(Z))!==null){let _=z.index;if(RZ(Z,_))continue;let U=z[2]||z[4]||`test ${$.length+1}`,q=z.index+z[0].length,I=z7(Z,q-1);if(I===-1)continue;let M=Z.slice(q,I).trim();$.push({description:U,body:M,line:b4(Z,_)}),W.push({start:_,end:I+1,desc:U})}let G=[];while((z=K.exec(Z))!==null){let _=z.index,U=z.index+z[0].length,q=z7(Z,U-1);if(q===-1)continue;let I=Z.slice(U,q).trim();X.push({body:I,line:b4(Z,_)}),G.push({start:_,end:q+1})}let J=[...W,...G].sort((_,U)=>U.start-_.start);for(let _ of J)Y=Y.slice(0,_.start)+Y.slice(_.end);Y=Y.replace(/\n\s*\n\s*\n/g,`
39
+ `,w+=` return __tjs.typeError('${W}', 'no matching constructor', a)
40
+ `,w+=`}
41
+ `,Y=Y.slice(0,J)+B+Y.slice(L);let V=J+B.length;Y=Y.slice(0,V)+w+Y.slice(V)}return{source:Y,polyCtorClasses:X}}function r6(Z,$=new Set){let X=/\bclass\s+(\w+)(\s+extends\s+\w+)?\s*\{/g,Q="",H=0,K;while((K=X.exec(Z))!==null){let Y=K[1],z=K[2]||"",W=K.index,G=W+K[0].length-1,J=1,L=G+1;while(L<Z.length&&J>0){let _=Z[L];if(_==="{")J++;else if(_==="}")J--;L++}if(J===0){let _=L,U=Z.slice(G,_);if(Q+=Z.slice(H,W),Q+=`let ${Y} = class ${Y}${z} ${U}; `,$.has(Y))Q+=`${Y} = new Proxy(${Y}, { apply(t, _, a) { return ${Y}$dispatch(t, a) }, construct(t, a) { return ${Y}$dispatch(t, a) } });`;else Q+=`${Y} = new Proxy(${Y}, { apply(t, _, a) { return Reflect.construct(t, a) } });`;H=_}}return Q+=Z.slice(H),Q}function t6(Z){let $=[{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:X,message:Q}of $)if(X.test(Z))throw Error(Q);return Z}function e6(Z){let $=new Set,X=/\bconst!\s+(\w+)\b/g,Q;while((Q=X.exec(Z))!==null)$.add(Q[1]);if($.size===0)return Z;Z=Z.replace(/\bconst!\s+/g,"const ");let H=Z.replace(/\/\*[\s\S]*?\*\//g,"").replace(/\/\/[^\n]*/g,"");for(let K of $){if(new RegExp(`\\b${K}\\s*(?:\\.[\\w]+|\\[[^\\]]+\\])\\s*(?:=(?!=)|\\+\\+|--|\\+=|-=|\\*=|\\/=|%=|&&=|\\|\\|=|\\?\\?=|<<=|>>=|>>>=|\\^=|&=|\\|=)`,"g").test(H))throw Error(`Cannot mutate immutable binding '${K}'. const! bindings are read-only at compile time.`);if(new RegExp(`(?:\\+\\+|--)\\s*${K}\\s*(?:\\.[\\w]+|\\[[^\\]]+\\])`,"g").test(H))throw Error(`Cannot mutate immutable binding '${K}'. const! bindings are read-only at compile time.`);if(new RegExp(`\\bdelete\\s+${K}\\s*(?:\\.[\\w]+|\\[[^\\]]+\\])`,"g").test(H))throw Error(`Cannot mutate immutable binding '${K}'. const! bindings are read-only at compile time.`);if(new RegExp(`\\b${K}\\s*\\.\\s*(?:${"push|pop|splice|shift|unshift|sort|reverse|fill|copyWithin|set"})\\s*\\(`,"g").test(H))throw Error(`Cannot call mutating method on immutable binding '${K}'. const! bindings are read-only at compile time.`)}return Z}function Z7(Z){if(/(?<![a-zA-Z_$])\bvar\s+/.test(Z))throw Error("var is not allowed in TjsNoVar mode. Use const or let instead.");return Z}function $7(Z){if(/(?<![A-Za-z_$])\beval\s*\(/.test(Z))throw Error("eval() is not allowed in TjsNoeval mode. Use Eval() from TJS runtime for safe evaluation.");if(/\bnew\s+Function\s*\(/.test(Z))throw Error("new Function() is not allowed in TjsNoeval mode. Use SafeFunction() from TJS runtime.");return Z}function y0(Z,$={}){let X=Z,Q,H=new Set,K=new Set,Y=new Set,z={tjsEquals:!1,tjsClass:!1,tjsDate:!1,tjsNoeval:!1,tjsStandard:!1,tjsSafeEval:!1,tjsNoVar:!1},W=Z.match(/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*safety\s+(none|inputs|all)\b/);if(W)Q=W[2],Z=Z.replace(/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*safety\s+(none|inputs|all)\s*/,"$1");let G=/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*(TjsStrict|TjsEquals|TjsClass|TjsDate|TjsNoeval|TjsNoVar|TjsStandard|TjsSafeEval)\b/,J;while(J=Z.match(G)){let B=J[2];if(B==="TjsStrict")z.tjsEquals=!0,z.tjsClass=!0,z.tjsDate=!0,z.tjsNoeval=!0,z.tjsNoVar=!0,z.tjsStandard=!0;else if(B==="TjsEquals")z.tjsEquals=!0;else if(B==="TjsClass")z.tjsClass=!0;else if(B==="TjsDate")z.tjsDate=!0;else if(B==="TjsNoeval")z.tjsNoeval=!0;else if(B==="TjsNoVar")z.tjsNoVar=!0;else if(B==="TjsStandard")z.tjsStandard=!0;else if(B==="TjsSafeEval")z.tjsSafeEval=!0;Z=Z.replace(new RegExp(`^(\\s*(?:\\/\\/[^\\n]*\\n|\\/\\*[\\s\\S]*?\\*\\/\\s*)*)\\s*${B}\\s*`),"$1")}if(z.tjsStandard)Z=h6(Z);if(Z=e6(Z),Z=y6(Z),z.tjsEquals&&!$.vmTarget)Z=x6(Z);Z=u6(Z),Z=l6(Z),Z=d6(Z),Z=m6(Z),Z=i6(Z),Z=o6(Z);let{source:L,returnType:_,returnSafety:U}=b0(Z,{originalSource:X,requiredParams:H,unsafeFunctions:K,safeFunctions:Y});Z=L;let q=p6(Z);Z=q.source,Z=v6(Z);let A=c6(Z,H);Z=A.source;let M=f6(Z);Z=M.source;let R=s6(Z,$.dangerouslySkipTests);Z=R.source;let F=a6(Z,H);Z=F.source;for(let B of F.polyCtorClasses)K.add(`${B}$dispatch`);if(z.tjsClass)Z=r6(Z,F.polyCtorClasses);if(z.tjsDate)Z=t6(Z);if(z.tjsNoeval)Z=$7(Z);if(z.tjsNoVar)Z=Z7(Z);return Z=G0(Z,q.extensions),{source:Z,returnType:_,returnSafety:U,moduleSafety:Q,tjsModes:z,originalSource:X,requiredParams:H,unsafeFunctions:K,safeFunctions:Y,wasmBlocks:M.blocks,tests:R.tests,testErrors:R.errors,polymorphicNames:A.polymorphicNames,extensions:q.extensions}}function F1(Z,$={}){let{filename:X="<source>",colonShorthand:Q=!0,vmTarget:H=!1}=$,{source:K,returnType:Y,returnSafety:z,moduleSafety:W,originalSource:G,requiredParams:J,unsafeFunctions:L,safeFunctions:_,wasmBlocks:U,tests:q,testErrors:A}=Q?y0(Z,{vmTarget:H}):{source:Z,returnType:void 0,returnSafety:void 0,moduleSafety:void 0,originalSource:Z,requiredParams:new Set,unsafeFunctions:new Set,safeFunctions:new Set,wasmBlocks:[],tests:[],testErrors:[]};try{return{ast:X7.parse(K,{ecmaVersion:2022,sourceType:"module",locations:!0,allowReturnOutsideFunction:!1}),returnType:Y,returnSafety:z,moduleSafety:W,originalSource:G,requiredParams:J,unsafeFunctions:L,safeFunctions:_,wasmBlocks:U,tests:q,testErrors:A}}catch(M){let R=M.loc||{line:1,column:0};throw new z1(M.message.replace(/\s*\(\d+:\d+\)$/,""),R,G,X)}}function h0(Z,$){for(let Q of Z.body){if(Q.type==="ImportDeclaration")throw new z1("Imports are not supported. All atoms must be registered with the VM.",Q.loc?.start||{line:1,column:0},void 0,$);if(Q.type==="ExportNamedDeclaration"||Q.type==="ExportDefaultDeclaration")throw new z1("Exports are not supported. The function is automatically exported.",Q.loc?.start||{line:1,column:0},void 0,$);if(Q.type==="ClassDeclaration")throw new z1("Classes are not supported. Agent99 uses functional composition.",Q.loc?.start||{line:1,column:0},void 0,$)}let X=Z.body.filter((Q)=>Q.type==="FunctionDeclaration");if(X.length===0)throw new z1("Source must contain a function declaration",{line:1,column:0},void 0,$);if(X.length>1){let Q=X[1];throw new z1("Only a single function per agent is allowed",Q.loc?.start||{line:1,column:0},void 0,$)}return X[0]}function J0(Z,$){let X={params:{}};if(!$.loc)return X;let Q=Z.substring(0,$.start),H=[...Q.matchAll(/\/\*#([\s\S]*?)\*\//g)];if(H.length>0){let J=H[H.length-1],L=Q.substring(J.index+J[0].length);if(/^(?:\s|\/\/[^\n]*)*$/.test(L)){let _=J[1],U=_.split(`
42
+ `),q=U.filter((A)=>A.trim().length>0).reduce((A,M)=>{let R=M.match(/^(\s*)/)?.[1].length||0;return Math.min(A,R)},1/0);if(q>0&&q<1/0)_=U.map((A)=>A.slice(q)).join(`
43
+ `);return X.description=_.trim(),X}}let K=Q.match(/\/\*\*[\s\S]*?\*\/\s*$/);if(!K)return X;let Y=K[0],z=Y.match(/\/\*\*\s*\n?\s*\*?\s*([^@\n][^\n]*)/m);if(z)X.description=z[1].trim();let W=/@param\s+(?:\{[^}]+\}\s+)?(\w+)\s*-?\s*(.*)/g,G;while((G=W.exec(Y))!==null)X.params[G[1]]=G[2].trim();return X}import{parseExpressionAt as ZZ}from"acorn";function W1(Z){switch(Z.type){case"Literal":{let $=Z.value;if($===null)return{kind:"null"};if(typeof $==="string")return{kind:"string"};if(typeof $==="number"){let X=Z.raw;if(X&&X.includes("."))return{kind:"number"};return{kind:"integer"}}if(typeof $==="boolean")return{kind:"boolean"};return{kind:"any"}}case"ArrayExpression":{let $=Z.elements;if($.length===0)return{kind:"array",items:{kind:"any"}};let X=$.filter((Y)=>Y!=null).map((Y)=>W1(Y));if(X.length===0)return{kind:"array",items:{kind:"any"}};let Q=new Map;for(let Y of X){let z=JSON.stringify(Y);if(!Q.has(z))Q.set(z,Y)}let H=[...Q.values()];return{kind:"array",items:H.length===1?H[0]:{kind:"union",members:H}}}case"ObjectExpression":{let $=Z.properties,X={};for(let Q of $)if(Q.type==="Property"&&Q.key.type==="Identifier"){let H=Q.key.name;X[H]=W1(Q.value)}return{kind:"object",shape:X}}case"LogicalExpression":{let{operator:$,left:X,right:Q}=Z;if($==="||")return W1(X);if($==="&&")return W1(Q);if($==="??")return W1(Q);return{kind:"any"}}case"BinaryExpression":{let{operator:$,left:X,right:Q}=Z;if($==="|"){let H=W1(X),K=W1(Q);if(K.kind==="null")return{...H,nullable:!0};if(H.kind==="null")return{...K,nullable:!0};return{kind:"union",members:[H,K]}}return{kind:"any"}}case"Identifier":{if(Z.name==="undefined")return{kind:"undefined"};return{kind:"any"}}case"UnaryExpression":{let{operator:$,argument:X}=Z;if($==="+"&&X.type==="Literal"){if(typeof X.value==="number")return{kind:"non-negative-integer"}}if($==="-"&&X.type==="Literal"){if(typeof X.value==="number"){let H=X.raw;if(H&&H.includes("."))return{kind:"number"};return{kind:"integer"}}}return{kind:"any"}}default:return{kind:"any"}}}function O1(Z,$){if(Z.type==="Identifier")return{name:Z.name,type:{kind:"any"},required:!0};if(Z.type==="AssignmentPattern"){let{left:X,right:Q}=Z;if(X.type!=="Identifier")throw new n("Only simple parameter names are supported",c(Z));let H=X.name,K=$?.has(H)??!1,Y=W1(Q),z=R1(Q);return{name:H,type:Y,required:K,default:K?null:z,example:z,loc:{start:Z.start,end:Z.end}}}if(Z.type==="ObjectPattern"){let X=Z.properties,Q={},H={};for(let K of X)if(K.type==="Property"){let Y=K.key.type==="Identifier"?K.key.name:String(K.key.value);if(K.value.type==="Identifier")Q[Y]={kind:"any"},H[Y]={name:Y,type:{kind:"any"},required:!0};else if(K.value.type==="AssignmentPattern"){let z=O1(K.value,$),W=$?.has(Y)??!1;Q[Y]=z.type,H[Y]={name:Y,type:z.type,required:W,default:W?null:z.example,example:z.example}}}return{name:"__destructured__",type:{kind:"object",shape:Q,destructuredParams:H},required:!0}}throw new n(`Unsupported parameter pattern: ${Z.type}`,c(Z))}function R1(Z){switch(Z.type){case"Literal":return Z.value;case"ArrayExpression":return Z.elements.map(($)=>$?R1($):null);case"ObjectExpression":{let $={};for(let X of Z.properties)if(X.type==="Property"&&X.key.type==="Identifier")$[X.key.name]=R1(X.value);return $}case"UnaryExpression":if(Z.operator==="-"){let $=R1(Z.argument);return typeof $==="number"?-$:void 0}if(Z.operator==="+"){let $=R1(Z.argument);return typeof $==="number"?+$:void 0}return;case"BinaryExpression":{let{operator:$,left:X}=Z;if($==="|")return R1(X);return}case"LogicalExpression":{let{operator:$,left:X,right:Q}=Z;if($==="&&"){if(X.type==="Literal"&&X.value===null)return null}if($==="||")return R1(X)??R1(Q);if($==="??")return R1(X)??R1(Q);return}default:return}}function Q7(Z){try{let $=ZZ(Z,0,{ecmaVersion:2022});return W1($)}catch{return{kind:"any"}}}function g4(Z){switch(Z.kind){case"string":return Z.nullable?"string | null":"string";case"number":return Z.nullable?"number | null":"number";case"integer":return Z.nullable?"integer | null":"integer";case"non-negative-integer":return Z.nullable?"non-negative integer | null":"non-negative integer";case"boolean":return Z.nullable?"boolean | null":"boolean";case"null":return"null";case"any":return"any";case"array":{let $=Z.items?g4(Z.items):"any";return Z.nullable?`${$}[] | null`:`${$}[]`}case"object":{if(!Z.shape||Object.keys(Z.shape).length===0)return Z.nullable?"object | null":"object";let $=Object.entries(Z.shape).map(([X,Q])=>`${X}: ${g4(Q)}`).join(", ");return Z.nullable?`{ ${$} } | null`:`{ ${$} }`}case"union":return Z.members?.map(g4).join(" | ")||"any";default:return"any"}}function x0(Z){switch(Z.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:Z.items?x0(Z.items):{}};case"object":if(Z.shape){let $={};for(let[X,Q]of Object.entries(Z.shape))$[X]=x0(Q);return{type:"object",properties:$,additionalProperties:!1}}return{type:"object"};case"union":if(Z.members)return{oneOf:Z.members.map(x0)};return{};default:return{}}}function $Z(Z){let $={},X=[];for(let[Q,H]of Object.entries(Z))if($[Q]=x0(H.type),H.required)X.push(Q);return{type:"object",properties:$,required:X.length>0?X:void 0,additionalProperties:!1}}function U0(Z,$,X,Q={},H){let K=J0($,Z),Y=new Map;for(let M of Z.params){let R=O1(M,H);if(R.name==="__destructured__"&&R.type.kind==="object"&&R.type.destructuredParams)for(let[F,B]of Object.entries(R.type.destructuredParams))Y.set(F,{...B,description:K.params[F]});else R.description=K.params[R.name],Y.set(R.name,R)}let z;if(X)z=Q7(X);let W={depth:0,locals:new Map,parameters:Y,atoms:new Set(Object.keys(Q.atoms||{})),warnings:[],source:$,filename:Q.filename||"<source>",options:Q},G=M1(Z.body,W),J=[],L=[],_=[];for(let[M,R]of Y.entries())if(R.required)L.push(M);else if(R.default!==void 0)_.push({name:M,defaultValue:R.default});else L.push(M);if(L.length>0)J.push({op:"varsImport",keys:L});for(let{name:M,defaultValue:R}of _)J.push({op:"varsImport",keys:[M]}),J.push({op:"if",condition:{$expr:"binary",op:"==",left:{$expr:"ident",name:M},right:{$expr:"literal",value:null}},then:[{op:"varSet",key:M,value:R}]});J.push(...G);let U=Object.fromEntries(Y),q={name:Z.id?.name||"anonymous",description:K.description,parameters:U,returns:z},A=$Z(U);return{ast:{op:"seq",steps:J,inputSchema:A},signature:q,warnings:W.warnings}}function M1(Z,$){let X=[];for(let Q of Z.body){let H=_0(Q,$);if(H)if(Array.isArray(H))X.push(...H);else X.push(H)}return X}function _0(Z,$){switch(Z.type){case"VariableDeclaration":return XZ(Z,$);case"ExpressionStatement":return QZ(Z,$);case"IfStatement":return KZ(Z,$);case"WhileStatement":return YZ(Z,$);case"ForOfStatement":return zZ(Z,$);case"TryStatement":return WZ(Z,$);case"ReturnStatement":return GZ(Z,$);case"ThrowStatement":throw new n("'throw' is not supported in AsyncJS. Use Error('message') to trigger error flow",c(Z),$.source,$.filename);case"BlockStatement":return{op:"scope",steps:M1(Z,_1($))};case"EmptyStatement":return null;default:throw new n(`Unsupported statement type: ${Z.type}`,c(Z),$.source,$.filename)}}function XZ(Z,$){let X=[],Q=Z.kind==="const",H=Q?"constSet":"varSet";for(let K of Z.declarations){if(K.id.type!=="Identifier")throw new n("Only simple variable names are supported",c(K),$.source,$.filename);let Y=K.id.name;if(K.init){let{step:z,resultVar:W}=f1(K.init,$,Y,Q);if(z)X.push(z);else if(W!==Y)X.push({op:H,key:Y,value:W});let G=W1(K.init);$.locals.set(Y,G)}else{if(Q)throw new n("const declarations must be initialized",c(K),$.source,$.filename);X.push({op:"varSet",key:Y,value:null}),$.locals.set(Y,{kind:"any",nullable:!0})}}return X}function QZ(Z,$){let X=Z.expression;if(X.type==="AssignmentExpression")return HZ(X,$);if(X.type==="CallExpression"){let{step:Q,resultVar:H}=f1(X,$);if(Q)return Q;if(H)return{op:"varSet",key:"_",value:H};return null}return $.warnings.push({message:"Expression statement has no effect",line:c(Z).line,column:c(Z).column}),null}function HZ(Z,$){if(Z.left.type!=="Identifier")throw new n("Only simple variable assignment is supported",c(Z),$.source,$.filename);let X=Z.left.name,{step:Q,resultVar:H}=f1(Z.right,$,X);if(Q)return Q;return{op:"varSet",key:X,value:H}}function KZ(Z,$){let X=i(Z.test,$),Q=Z.consequent.type==="BlockStatement"?M1(Z.consequent,_1($)):[_0(Z.consequent,$)].filter(Boolean),H;if(Z.alternate)H=Z.alternate.type==="BlockStatement"?M1(Z.alternate,_1($)):[_0(Z.alternate,$)].filter(Boolean);return{op:"if",condition:X,then:Q,...H&&{else:H}}}function YZ(Z,$){let X=i(Z.test,$),Q=Z.body.type==="BlockStatement"?M1(Z.body,_1($)):[_0(Z.body,$)].filter(Boolean);return{op:"while",condition:X,body:Q}}function zZ(Z,$){let X;if(Z.left.type==="VariableDeclaration"){let Y=Z.left.declarations[0];if(Y.id.type!=="Identifier")throw new n("Only simple variable names are supported in for...of",c(Z.left),$.source,$.filename);X=Y.id.name}else if(Z.left.type==="Identifier")X=Z.left.name;else throw new n("Unsupported for...of left-hand side",c(Z.left),$.source,$.filename);let Q=Z1(Z.right,$),H=_1($);H.locals.set(X,{kind:"any"});let K=Z.body.type==="BlockStatement"?M1(Z.body,H):[_0(Z.body,H)].filter(Boolean);return{op:"map",items:Q,as:X,steps:K}}function WZ(Z,$){let X=M1(Z.block,_1($)),Q,H;if(Z.handler){let K=_1($);if(Z.handler.param?.type==="Identifier")H=Z.handler.param.name,K.locals.set(H,{kind:"any"});Q=M1(Z.handler.body,K)}return{op:"try",try:X,...Q&&{catch:Q},...H&&{catchParam:H}}}function GZ(Z,$){if(!Z.argument)return{op:"return",value:{}};let{step:X,resultVar:Q}=f1(Z.argument,$,"__returnVal__");if(X)return[X,{op:"return",value:Q}];return{op:"return",value:Z1(Z.argument,$)}}var K7=new Set(["Math","JSON","Array","Object","String","Number","console","Date","Schema"]),JZ=new Set(["parseInt","parseFloat","isNaN","isFinite","encodeURI","decodeURI","encodeURIComponent","decodeURIComponent","Set","Date","filter"]),L0=new Set(["RegExp","Promise","Map","WeakSet","WeakMap","Symbol","Proxy","Reflect","Function","eval","setTimeout","setInterval","fetch","require","import","process","window","document","global","globalThis"]),_Z=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 LZ(Z){if(Z.callee.type==="Identifier"){let $=Z.callee.name;return JZ.has($)||L0.has($)}if(Z.callee.type==="MemberExpression"){let $=Z.callee;if($.object.type==="Identifier"){let X=$.object.name;if(K7.has(X)||L0.has(X))return!0}if($.property.type==="Identifier"){let X=$.property.name;if(_Z.has(X))return!0}}return!1}function UZ(Z){if(Z.object.type==="Identifier"){let $=Z.object.name;return K7.has($)||L0.has($)}return!1}var H7={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 qZ(Z){if(Z.callee.type==="Identifier"){let $=Z.callee.name;if(L0.has($))return H7[$]||`${$} is not available in AsyncJS.`}if(Z.callee.type==="MemberExpression"){let $=Z.callee;if($.object.type==="Identifier"){let X=$.object.name;if(L0.has(X))return H7[X]||`${X} is not available in AsyncJS.`}}return null}function Y7(Z){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."}[Z]||" Use factory functions or object literals instead."}function f1(Z,$,X,Q){let H=Q?"constSet":"varSet";if(Z.type==="ChainExpression")return f1(Z.expression,$,X,Q);if(Z.type==="NewExpression"){let Y=Z,z="constructor";if(Y.callee.type==="Identifier")z=Y.callee.name;let W=Y7(z);throw new n(`The 'new' keyword is not supported in AsyncJS.${W}`,c(Z),$.source,$.filename)}if(Z.type==="CallExpression"){let Y=qZ(Z);if(Y)throw new n(Y,c(Z),$.source,$.filename)}if(Z.type==="CallExpression"&&LZ(Z)){let Y=i(Z,$);if(X)return{step:{op:H,key:X,value:Y},resultVar:X};return{step:null,resultVar:Y}}if(Z.type==="MemberExpression"&&UZ(Z)){let Y=i(Z,$);if(X)return{step:{op:H,key:X,value:Y},resultVar:X};return{step:null,resultVar:Y}}if(Z.type==="CallExpression")return DZ(Z,$,X,Q);if(Z.type==="TemplateLiteral")return IZ(Z,$,X,Q);if(Z.type==="BinaryExpression"||Z.type==="LogicalExpression"||Z.type==="UnaryExpression"){let Y=i(Z,$);if(X)return{step:{op:H,key:X,value:Y},resultVar:X};return{step:null,resultVar:Y}}return{step:null,resultVar:Z1(Z,$)}}function DZ(Z,$,X,Q){let H,K=!1,Y;if(Z.callee.type==="Identifier")H=Z.callee.name;else if(Z.callee.type==="MemberExpression"){let W=Z.callee;if(W.property.type==="Identifier")H=W.property.name,K=!0,Y=Z1(W.object,$);else throw new n("Computed method names are not supported",c(Z),$.source,$.filename)}else throw new n("Only named function calls are supported",c(Z),$.source,$.filename);if(K)return AZ(H,Y,Z.arguments,$,X,Q);if(H==="console"&&Z.callee.type==="MemberExpression");let z=BZ(Z,$);return{step:{op:H,...z,...X&&{result:X},...X&&Q&&{resultConst:!0}},resultVar:X}}function AZ(Z,$,X,Q,H,K){switch(Z){case"map":if(X.length>0&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],W=z?.type==="Identifier"?z.name:"item",G=_1(Q);G.locals.set(W,{kind:"any"});let J;if(Y.body.type==="BlockStatement")J=M1(Y.body,G);else{let{step:L,resultVar:_}=f1(Y.body,G,"result");J=L?[L]:[{op:"varSet",key:"result",value:_}]}return{step:{op:"map",items:$,as:W,steps:J,...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}break;case"filter":if(X.length>0&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],W=z?.type==="Identifier"?z.name:"item",G=_1(Q);G.locals.set(W,{kind:"any"});let J;if(Y.body.type==="BlockStatement")throw new n("filter callback must be an expression, not a block",c(X[0]),Q.source,Q.filename);else J=i(Y.body,G);return{step:{op:"filter",items:$,as:W,condition:J,...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}break;case"find":if(X.length>0&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],W=z?.type==="Identifier"?z.name:"item",G=_1(Q);G.locals.set(W,{kind:"any"});let J;if(Y.body.type==="BlockStatement")throw new n("find callback must be an expression, not a block",c(X[0]),Q.source,Q.filename);else J=i(Y.body,G);return{step:{op:"find",items:$,as:W,condition:J,...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}break;case"reduce":if(X.length>=2&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],W=Y.params[1],G=z?.type==="Identifier"?z.name:"acc",J=W?.type==="Identifier"?W.name:"item",L=_1(Q);L.locals.set(G,{kind:"any"}),L.locals.set(J,{kind:"any"});let _;if(Y.body.type==="BlockStatement")_=M1(Y.body,L);else{let{step:q,resultVar:A}=f1(Y.body,L,"result");_=q?[q]:[{op:"varSet",key:"result",value:A}]}let U=Z1(X[1],Q);return{step:{op:"reduce",items:$,as:J,accumulator:G,initial:U,steps:_,...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}break;case"slice":break;case"push":return{step:{op:"push",list:$,item:Z1(X[0],Q),...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H};case"join":return{step:{op:"join",list:$,sep:X.length>0?Z1(X[0],Q):"",...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H};case"split":return{step:{op:"split",str:$,sep:X.length>0?Z1(X[0],Q):"",...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}return Q.warnings.push({message:`Unknown method '${Z}' - treating as atom call`,line:0,column:0}),{step:{op:Z,receiver:$,args:X.map((Y)=>Z1(Y,Q)),...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}function IZ(Z,$,X,Q){let H="",K={};for(let Y=0;Y<Z.quasis.length;Y++)if(H+=Z.quasis[Y].value.cooked||Z.quasis[Y].value.raw,Y<Z.expressions.length){let z=Z.expressions[Y],W=`_${Y}`;K[W]=Z1(z,$),H+=`{{${W}}}`}return{step:{op:"template",tmpl:H,vars:K,...X&&{result:X},...X&&Q&&{resultConst:!0}},resultVar:X}}function i(Z,$){switch(Z.type){case"Literal":return{$expr:"literal",value:Z.value};case"Identifier":return{$expr:"ident",name:Z.name};case"MemberExpression":{let X=Z,Q=i(X.object,$),H=X.optional===!0;if(X.computed){let Y=X.property;if(Y.type==="Literal")return{$expr:"member",object:Q,property:String(Y.value),computed:!0,...H&&{optional:!0}};throw new n("Computed member access with variables not yet supported",c(Z),$.source,$.filename)}let K=X.property.name;return{$expr:"member",object:Q,property:K,...H&&{optional:!0}}}case"ChainExpression":return i(Z.expression,$);case"BinaryExpression":{let X=Z;return{$expr:"binary",op:X.operator,left:i(X.left,$),right:i(X.right,$)}}case"LogicalExpression":{let X=Z;return{$expr:"logical",op:X.operator,left:i(X.left,$),right:i(X.right,$)}}case"UnaryExpression":{let X=Z;return{$expr:"unary",op:X.operator,argument:i(X.argument,$)}}case"ConditionalExpression":{let X=Z;return{$expr:"conditional",test:i(X.test,$),consequent:i(X.consequent,$),alternate:i(X.alternate,$)}}case"ArrayExpression":return{$expr:"array",elements:Z.elements.filter((Q)=>Q!==null).map((Q)=>i(Q,$))};case"ObjectExpression":{let X=Z,Q=[];for(let H of X.properties)if(H.type==="Property"){let K=H.key.type==="Identifier"?H.key.name:String(H.key.value);Q.push({key:K,value:i(H.value,$)})}return{$expr:"object",properties:Q}}case"CallExpression":{let X=Z;if(X.callee.type==="MemberExpression"){let Q=X.callee,H=Q.property.type==="Identifier"?Q.property.name:String(Q.property.value),K=Q.optional===!0||X.optional===!0;return{$expr:"methodCall",object:i(Q.object,$),method:H,arguments:X.arguments.map((Y)=>i(Y,$)),...K&&{optional:!0}}}if(X.callee.type==="Identifier")return{$expr:"call",callee:X.callee.name,arguments:X.arguments.map((H)=>i(H,$))};throw new n("Complex function calls in expressions should be lifted to statements",c(Z),$.source,$.filename)}case"NewExpression":{let X=Z,Q="constructor";if(X.callee.type==="Identifier")Q=X.callee.name;let H=Y7(Q);throw new n(`The 'new' keyword is not supported in AsyncJS.${H}`,c(Z),$.source,$.filename)}case"TemplateLiteral":throw new n("Template literals inside expressions are not supported. Assign to a variable first: const msg = `hello ${name}`; then use msg",c(Z),$.source,$.filename);default:throw new n(`Unsupported expression type in condition: ${Z.type}`,c(Z),$.source,$.filename)}}function Z1(Z,$){switch(Z.type){case"Literal":return Z.value;case"Identifier":return Z.name;case"MemberExpression":{let X=Z;if(X.optional===!0)return i(Z,$);let H=Z1(X.object,$);if(H&&typeof H==="object"&&H.$expr){let Y=X.computed?String(X.property.value):X.property.name;return{$expr:"member",object:H,property:Y,...X.computed&&{computed:!0}}}if(X.computed)return`${H}[${Z1(X.property,$)}]`;let K=X.property.name;if(typeof H==="string")return`${H}.${K}`;if(H&&H.$kind==="arg")return{$kind:"arg",path:`${H.path}.${K}`};return`${H}.${K}`}case"ChainExpression":return Z1(Z.expression,$);case"ArrayExpression":return Z.elements.map((X)=>X?Z1(X,$):null);case"ObjectExpression":{let X={};for(let Q of Z.properties)if(Q.type==="Property"){let H=Q.key.type==="Identifier"?Q.key.name:String(Q.key.value);X[H]=Z1(Q.value,$)}return X}case"TemplateLiteral":return i(Z,$);case"CallExpression":return i(Z,$);case"BinaryExpression":case"LogicalExpression":case"UnaryExpression":case"ConditionalExpression":return i(Z,$);default:return null}}function BZ(Z,$){if(Z.arguments.length===1&&Z.arguments[0].type==="ObjectExpression"){let X=Z.arguments[0],Q={};for(let H of X.properties)if(H.type==="Property"){let K=H.key.type==="Identifier"?H.key.name:String(H.key.value);Q[K]=Z1(H.value,$)}return Q}return{args:Z.arguments.map((X)=>Z1(X,$))}}import{parseExpressionAt as S7}from"acorn";function RZ(Z,$){let X=$;while(X>0&&Z[X-1]!==`
44
+ `)X--;if(Z.slice(X,$).includes("//"))return!0;let H=0,K=!1;while(H<$)if(!K&&Z.slice(H,H+2)==="/*")K=!0,H+=2;else if(K&&Z.slice(H,H+2)==="*/")K=!1,H+=2;else H++;return K}function MZ(Z){let $=[],X=/\/\*test\s+(['"`])([^'"`]*)\1\s*\{([\s\S]*?)\}\s*\*\/|\/\*test\s*\{([\s\S]*?)\}\s*\*\//g,Q;while((Q=X.exec(Z))!==null){let H=Q[2]||`embedded test ${$.length+1}`,K=(Q[3]||Q[4]||"").trim();$.push({description:H,body:K,line:b4(Z,Q.index)})}return $}function v4(Z){let $=[],X=[],Q=MZ(Z);$.push(...Q);let H=/test\s+(['"`])([^'"`]*)\1\s*\{|test\s*\(\s*(['"`])([^'"`]*)\3\s*\)\s*\{|test\s*\{/g,K=/mock\s*\{/g,Y=Z,z,W=[];while((z=H.exec(Z))!==null){let _=z.index;if(RZ(Z,_))continue;let U=z[2]||z[4]||`test ${$.length+1}`,q=z.index+z[0].length,A=z7(Z,q-1);if(A===-1)continue;let M=Z.slice(q,A).trim();$.push({description:U,body:M,line:b4(Z,_)}),W.push({start:_,end:A+1,desc:U})}let G=[];while((z=K.exec(Z))!==null){let _=z.index,U=z.index+z[0].length,q=z7(Z,U-1);if(q===-1)continue;let A=Z.slice(U,q).trim();X.push({body:A,line:b4(Z,_)}),G.push({start:_,end:q+1})}let J=[...W,...G].sort((_,U)=>U.start-_.start);for(let _ of J)Y=Y.slice(0,_.start)+Y.slice(_.end);Y=Y.replace(/\n\s*\n\s*\n/g,`
45
45
 
46
46
  `).trim();let L=wZ($,X);return{code:Y,tests:$,mocks:X,testRunner:L}}function z7(Z,$){let X=0,Q=null,H=!1;for(let K=$;K<Z.length;K++){let Y=Z[K];if(H){H=!1;continue}if(Y==="\\"){H=!0;continue}if(!Q&&(Y==='"'||Y==="'"||Y==="`")){Q=Y;continue}if(Q===Y){Q=null;continue}if(Q)continue;if(Y==="{")X++;if(Y==="}"){if(X--,X===0)return K}}return-1}function b4(Z,$){return Z.slice(0,$).split(`
47
47
  `).length}function wZ(Z,$){if(Z.length===0)return"// No tests defined";let X=$.map((H)=>H.body).join(`
@@ -165,7 +165,7 @@ function expect(actual) {
165
165
  }
166
166
  }
167
167
  `,jZ=W7+`
168
- `+G7;import{validate as L7,s as H4}from"tosijs-schema";import{validate as f4,s as u0}from"tosijs-schema";function O1(Z){return Z!==null&&typeof Z==="object"&&"__runtimeType"in Z&&Z.__runtimeType===!0}function J7(Z){return Z!==null&&typeof Z==="object"&&"schema"in Z&&typeof Z.schema==="object"}function FZ(Z){return Z!==null&&typeof Z==="object"&&"type"in Z&&typeof Z.type==="string"}function a(Z,$,X,Q){let H,K,Y,z=X,W=Q;if(typeof Z==="string")if(H=Z,typeof $==="function"){if(K=$,z!==void 0)Y=u0.infer(z)}else if($===void 0&&z!==void 0)Y=u0.infer(z);else if(J7($))Y=$;else if(FZ($))Y=$;else if($!==void 0)z=$,W=z,Y=u0.infer(z);else throw Error("Type(description) requires a predicate, schema, or example");else{if(J7(Z))Y=Z;else Y=Z;H=PZ(Y)}let G;if(Y){let L=Y?.schema??Y;if(L&&typeof L==="object"&&Array.isArray(L.examples))G=L.examples}if(z===void 0&&G&&G.length>0)z=G[0];return{description:H,check:(L)=>{if(K)return K(L);if(Y)return f4(L,Y);return!1},schema:Y,predicate:K,example:z,examples:G,default:W,__runtimeType:!0}}function PZ(Z){let $=Z?.schema??Z;if($&&typeof $==="object"&&"type"in $){let X=$;switch(X.type){case"string":if(X.format)return`string (${X.format})`;if(X.pattern)return`string matching ${X.pattern}`;if(X.minLength!==void 0&&X.maxLength!==void 0)return`string (${X.minLength}-${X.maxLength} chars)`;return"string";case"number":case"integer":if(X.minimum!==void 0&&X.maximum!==void 0)return`${X.type} (${X.minimum}-${X.maximum})`;if(X.minimum!==void 0)return`${X.type} >= ${X.minimum}`;if(X.maximum!==void 0)return`${X.type} <= ${X.maximum}`;return X.type;case"boolean":return"boolean";case"array":return"array";case"object":return"object";case"null":return"null"}}return"value"}var d0=a("string",(Z)=>typeof Z==="string"),l0=a("number",(Z)=>typeof Z==="number"),m0=a("boolean",(Z)=>typeof Z==="boolean"),i0=a("integer",(Z)=>typeof Z==="number"&&Number.isInteger(Z)),p0=a("positive integer",(Z)=>typeof Z==="number"&&Number.isInteger(Z)&&Z>0),n0=a("non-empty string",(Z)=>typeof Z==="string"&&Z.length>0),c0=a("email address",(Z)=>typeof Z==="string"&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(Z)),y4=(Z)=>{try{return new URL(Z),!0}catch{return!1}},o0=a("URL",(Z)=>typeof Z==="string"&&y4(Z)),s0=a("UUID",(Z)=>typeof Z==="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(Z)),h4=(Z)=>{let $=new Date(Z);return!isNaN($.getTime())&&Z.includes("T")},x4=(Z)=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(Z))return!1;let $=new Date(Z+"T00:00:00Z");return!isNaN($.getTime())},u4=a("ISO 8601 timestamp",(Z)=>typeof Z==="string"&&h4(Z)),d4=a("date (YYYY-MM-DD)",(Z)=>typeof Z==="string"&&x4(Z));function a0(Z){return a(`${Z.description} or null`,($)=>$===null||Z.check($))}function r0(Z){return a(`${Z.description} (optional)`,($)=>$===null||$===void 0||Z.check($))}function t0(Z,$,...X){if(typeof Z==="string"&&Array.isArray($)){let K=Z,Y=$,z=new Set(Y);return{description:K,check:(G)=>z.has(G),__runtimeType:!0,values:Y}}let Q=[];if(O1(Z))Q.push(Z);if(O1($))Q.push($);Q.push(...X);let H=Q.map((K)=>K.description).join(" | ");return a(H,(K)=>Q.some((Y)=>Y.check(K)))}function e0(Z){return a(`array of ${Z.description}`,($)=>Array.isArray($)&&$.every((X)=>Z.check(X)))}function VZ(Z){if(O1(Z))return(X)=>Z.check(X);if(Z&&typeof Z==="object"&&"schema"in Z)return(X)=>f4(X,Z);let $=u0.infer(Z);return(X)=>f4(X,$)}function i1(Z,$,X){let Q=[],H=[];for(let Y of Z)if(typeof Y==="string")Q.push(Y),H.push(void 0);else Q.push(Y[0]),H.push(Y[1]);let K=(...Y)=>{let z=Q.map((G,J)=>{let L=J<Y.length?Y[J]:H[J];if(L===void 0)return()=>!0;return VZ(L)}),W=X;return Q.forEach((G,J)=>{let L=J<Y.length?Y[J]:H[J],_="any";if(O1(L))_=L.description;else if(L!==void 0)_=typeof L==="string"?"string":JSON.stringify(L);W=W.replace(new RegExp(`\\b${G}\\b`,"g"),_)}),a(W,(G)=>$(G,...z))};return K.params=Q,K.description=X,K}var Z4=i1(["T","U"],(Z,$,X)=>Array.isArray(Z)&&Z.length===2&&$(Z[0])&&X(Z[1]),"Pair<T, U>"),$4=i1(["V"],(Z,$)=>typeof Z==="object"&&Z!==null&&!Array.isArray(Z)&&Object.values(Z).every($),"Record<string, V>");function X4(Z,$){let X=Object.values($),Q=new Set(X),H=Object.keys($),K={};for(let[z,W]of Object.entries($))K[W]=z;return{description:Z,check:(z)=>Q.has(z),__runtimeType:!0,members:$,names:K,values:X,keys:H}}function CZ(Z){if(Z===null)return"null";if(Z===void 0)return"undefined";switch(typeof Z){case"string":return"string";case"boolean":return"boolean";case"number":return Number.isInteger(Z)?"integer":"number";case"object":return Array.isArray(Z)?"array":"object";default:return null}}function q0(Z,$,X){if(Array.isArray($)&&X){let Q=$,H=[],K=[];for(let z of Q)if(Array.isArray(z))H.push(z[0]),K.push(z[1]);else H.push(z),K.push(void 0);let Y=(...z)=>{let W=H.map((J,L)=>L<z.length?z[L]:K[L]),G=X(...W);return q0(Z,G)};return Object.defineProperties(Y,{typeParamNames:{value:H,enumerable:!0},description:{value:Z,enumerable:!0},__runtimeType:{value:!0,enumerable:!0}}),Y}return OZ(Z,$)}function OZ(Z,$){let X={},Q=void 0,H="assertReturns";if(typeof $==="function"){let Y=$.__tjs;if(Y){if(Y.params)for(let[z,W]of Object.entries(Y.params))X[z]=W?.example??null;if(Y.returns)Q=Y.returns?.example??null;if(Y.safeReturn)H="checkedReturns";else if(Y.unsafe)H="assertReturns";else H="returns"}}else X=$.params??{},Q=$.returns,H=$.returnContract??"assertReturns";return{description:Z,params:X,returns:Q,returnContract:H,check:(Y)=>{if(typeof Y!=="function")return!1;let z=Object.keys(X).length;if(z>0){let G=Y.__tjs;if(G?.params){if(Object.keys(G.params).length!==z)return!1;let L=Object.keys(X),_=Object.keys(G.params);for(let U=0;U<L.length;U++){let q=G.params[_[U]],I=X[L[U]];if(q?.type?.kind&&I!==void 0){let M=CZ(I);if(M&&q.type.kind!==M&&q.type.kind!=="any")return!1}}}}return!0},__runtimeType:!0}}var EZ=_7(),X1=EZ.version,D0=Symbol.for("tjs.equals");function K4(Z){let[$=0,X=0,Q=0]=Z.split(".").map(Number);return{major:$,minor:X,patch:Q}}function l4(Z,$){let X=K4(Z),Q=K4($);if(X.major!==Q.major)return X.major<Q.major?-1:1;if(X.minor!==Q.minor)return X.minor<Q.minor?-1:1;if(X.patch!==Q.patch)return X.patch<Q.patch?-1:1;return 0}function m4(Z,$){let X=K4(Z),Q=K4($);return X.major===Q.major}class c1 extends Error{path;expected;actual;callStack;constructor(Z,$,X,Q,H){super(Z);if(this.name="MonadicError",this.path=$,this.expected=X,this.actual=Q,this.callStack=H,Error.captureStackTrace)Error.captureStackTrace(this,c1)}}function TZ(Z,$,X){let Q=X===null?"null":typeof X,H=Z1.debug?D7():void 0,K=new c1(`Expected ${$} for '${Z}', got ${Q}`,Z,$,Q,H);if(Z1.logTypeErrors)console.error(`[TJS TypeError] ${K.message}`);if(Z1.throwTypeErrors)throw K;return K}function U7(Z){return Z instanceof Error&&Z.name==="MonadicError"&&"path"in Z}var i4={debug:!1,safety:"inputs",requireReturnTypes:!1,maxStackSize:100},Z1={...i4},P1=[],o1=0;function SZ(){o1++}function kZ(){if(o1>0)o1--}function gZ(){return o1>0}function bZ(Z){Z1={...Z1,...Z}}function vZ(){return{...Z1}}function q7(Z){if(Z1.debug&&Z){P1.push(Z);let $=Z1.maxStackSize??100;while(P1.length>$)P1.shift()}}function Q4(){if(Z1.debug)P1.pop()}function D7(){return[...P1]}function fZ(){Z1={...i4},P1.length=0,o1=0}function p1(Z,$){if(Z!==null&&typeof Z==="object"&&typeof Z[D0]==="function")return Z[D0]($);if($!==null&&typeof $==="object"&&typeof $[D0]==="function")return $[D0](Z);if(Z!==null&&typeof Z==="object"&&typeof Z.Equals==="function")return Z.Equals($);if($!==null&&typeof $==="object"&&typeof $.Equals==="function")return $.Equals(Z);if(Z instanceof String||Z instanceof Number||Z instanceof Boolean)Z=Z.valueOf();if($ instanceof String||$ instanceof Number||$ instanceof Boolean)$=$.valueOf();if(Z===$)return!0;if((Z===null||Z===void 0)&&($===null||$===void 0))return!0;if(Z===null||Z===void 0||$===null||$===void 0)return!1;if(typeof Z!==typeof $)return!1;if(typeof Z!=="object")return!1;if(Z instanceof Set&&$ instanceof Set){if(Z.size!==$.size)return!1;for(let H of Z)if(!$.has(H))return!1;return!0}if(Z instanceof Map&&$ instanceof Map){if(Z.size!==$.size)return!1;for(let[H,K]of Z){if(!$.has(H))return!1;if(!p1(K,$.get(H)))return!1}return!0}if(Z instanceof Date&&$ instanceof Date)return Z.getTime()===$.getTime();if(Z instanceof RegExp&&$ instanceof RegExp)return Z.toString()===$.toString();if(Array.isArray(Z)&&Array.isArray($)){if(Z.length!==$.length)return!1;return Z.every((H,K)=>p1(H,$[K]))}if(Array.isArray(Z)!==Array.isArray($))return!1;let X=Object.keys(Z),Q=Object.keys($);if(X.length!==Q.length)return!1;return X.every((H)=>p1(Z[H],$[H]))}function A7(Z,$){return!p1(Z,$)}function I7(Z){if(Z===null)return"null";return typeof Z}function p4(Z,$){if(Z instanceof String||Z instanceof Number||Z instanceof Boolean)Z=Z.valueOf();if($ instanceof String||$ instanceof Number||$ instanceof Boolean)$=$.valueOf();if(Z===$)return!0;if((Z===null||Z===void 0)&&($===null||$===void 0))return!0;return!1}function B7(Z,$){return!p4(Z,$)}function F1(Z){return Z!==null&&typeof Z==="object"&&Z.$error===!0}function M1(Z,$){let X={$error:!0,message:Z,...$};if(Z1.debug&&P1.length>0){let Q=$?.path?[...P1,$.path]:[...P1];X.stack=Q}return X}function n4(Z,$){if(Z.length===0)return M1("Unknown error");if(Z.length===1)return Z[0];let X=Z.map((H)=>{if(H.path){let K=H.path.split(".");return K[K.length-1]}return"unknown"}).join(", "),Q=`Multiple parameter errors in ${$||"function"}: ${X}`;return M1(Q,{path:$,errors:Z})}function n1(Z){if(Z===null)return"null";if(Z===void 0)return"undefined";if(Array.isArray(Z))return"array";let $=typeof Z;if($!=="object")return $;let X=Z.constructor?.name;if(X&&X!=="Object")return X;return"object"}function R7(Z,$){if(Z===null||Z===void 0)return!1;if(typeof Z!=="object"&&typeof Z!=="function")return!1;let X=Z;while(X!==null){if(X.constructor?.name===$)return!0;X=Object.getPrototypeOf(X)}return!1}function y1(Z,$,X){if(F1(Z))return Z;if(typeof $==="object"&&$!==null&&"check"in $){if($.check(Z))return null;return M1(`Expected ${$.description} but got ${n1(Z)}`,{path:X,expected:$.description,actual:n1(Z)})}let Q=n1(Z);if($==="any")return null;if($===Q)return null;if($==="number"&&Q==="number")return null;if($==="integer"&&Q==="number"&&Number.isInteger(Z))return null;if($==="non-negative-integer"&&Q==="number"&&Number.isInteger(Z)&&Z>=0)return null;if($==="object"&&Q==="object")return null;return M1(`Expected ${$} but got ${Q}`,{path:X,expected:$,actual:Q})}function c4(Z,$,X){for(let[Q,H]of Object.entries($.params)){let K=Z[Q];if(F1(K))return K;if(H.required&&K===void 0){let z=typeof H.type==="string"?H.type:H.type.description;return M1(`Missing required parameter '${Q}'`,{path:X?`${X}.${Q}`:Q,expected:z,actual:"undefined",loc:H.loc})}if(K===void 0)continue;let Y=y1(K,H.type,X?`${X}.${Q}`:Q);if(Y){if(H.loc)Y.loc=H.loc;return Y}}return null}function o4(Z,$){if(Z.__tjs=$,!(!$.polymorphic&&($.safe||$.safeReturn||Z1.safety!=="none"&&!$.unsafe||$.returns&&Z1.safety==="all"&&!$.unsafeReturn)))return Z;let Q=!!$.returns,H=!!$.unsafe,K=!!$.safe,Y=!!$.unsafeReturn,z=!!$.safeReturn,W=$.returns?.defaults,G=Object.entries($.params),J=G.length,L=Z.name||$.name||"anonymous",_=function(...U){if(o1>0)return Z.apply(this,U);let q=K||!H&&Z1.safety!=="none",I=Q&&(z||!Y&&Z1.safety==="all");if(!q&&!I)return Z.apply(this,U);if(U.length>0&&F1(U[0]))return U[0];if(q){let M=U.length===1&&typeof U[0]==="object"&&U[0]!==null&&!Array.isArray(U[0]),R=[];if(!M)for(let P=0;P<J;P++){let[B,F]=G[P],N=U[P];if(F1(N)){R.push(N);continue}if(F.required&&N===void 0){R.push(M1(`Missing required parameter '${B}'`,{path:`${L}.${B}`,expected:typeof F.type==="string"?F.type:F.type?.description||"value",actual:"undefined",loc:F.loc}));continue}if(N!==void 0){let V=y1(N,F.type,`${L}.${B}`);if(V){if(F.loc)V.loc=F.loc;R.push(V)}}}else{let P=U[0];for(let B=0;B<J;B++){let[F,N]=G[B],V=P[F];if(F1(V)){R.push(V);continue}if(N.required&&V===void 0){R.push(M1(`Missing required parameter '${F}'`,{path:`${L}.${F}`,expected:typeof N.type==="string"?N.type:N.type?.description||"value",actual:"undefined",loc:N.loc}));continue}if(V!==void 0){let w=y1(V,N.type,`${L}.${F}`);if(w){if(N.loc)w.loc=N.loc;R.push(w)}}}}if(R.length>0)return n4(R,L)}q7(L);try{let M=Z.apply(this,U);if(I&&$.returns&&!F1(M)){let R=W&&typeof M==="object"&&M!==null?Object.assign({},W,M):M,P=y1(R,$.returns.type,`${L}()`);if(P)return Q4(),P}return Q4(),M}catch(M){return Q4(),M1(M.message||String(M),{path:L,cause:M})}};return Object.defineProperty(_,"name",{value:Z.name}),_.__tjs=$,_}function M7(Z){let $=new Proxy(Z,{construct(X,Q,H){return Reflect.construct(X,Q,H)},apply(X,Q,H){return Reflect.construct(X,H)}});Object.defineProperty($,"name",{value:Z.name});for(let X of Object.getOwnPropertyNames(Z))if(X!=="length"&&X!=="name"&&X!=="prototype")Object.defineProperty($,X,Object.getOwnPropertyDescriptor(Z,X));return $}function yZ(){let Z={...Z1},$=[],X=0;function Q(R){Z={...Z,...R}}function H(){return{...Z}}function K(R){if(Z.debug&&R){$.push(R);let P=Z.maxStackSize??100;while($.length>P)$.shift()}}function Y(){if(Z.debug)$.pop()}function z(){return[...$]}function W(){Z={...i4},$.length=0,X=0}function G(){X++}function J(){if(X>0)X--}function L(){return X>0}let _=new Map;function U(R,P,B){if(!_.has(R))_.set(R,new Map);_.get(R).set(P,B)}function q(R,P){let B=typeof R,F;if(R===null||R===void 0)return;if(B==="string")F="String";else if(B==="number")F="Number";else if(B==="boolean")F="Boolean";else if(Array.isArray(R))F="Array";else if(B==="object")F=R.constructor?.name||"Object";else return;let N=F;while(N){let w=_.get(N);if(w?.has(P))return w.get(P);if(B==="object"&&!Array.isArray(R)){if(N=Object.getPrototypeOf(N===F?R:Object.getPrototypeOf(R))?.constructor?.name,N==="Object"||N===F)break}else break}let V=_.get("Object");if(V?.has(P))return V.get(P);return}function I(R,P,B){let F=B===null?"null":typeof B,N=Z.debug?z():void 0,V=new c1(`Expected ${P} for '${R}', got ${F}`,R,P,F,N);if(Z.logTypeErrors)console.error(`[TJS TypeError] ${V.message}`);if(Z.throwTypeErrors)throw V;return V}function M(R,P){let B={$error:!0,message:R,...P};if(Z.debug&&$.length>0){let F=P?.path?[...$,P.path]:[...$];B.stack=F}return B}return{version:X1,MonadicError:c1,typeError:I,isMonadicError:U7,isError:F1,error:M,composeErrors:n4,typeOf:n1,isNativeType:R7,checkType:y1,validateArgs:c4,wrap:o4,wrapClass:M7,compareVersions:l4,versionsCompatible:m4,configure:Q,getConfig:H,pushStack:K,popStack:Y,getStack:z,resetRuntime:W,enterUnsafe:G,exitUnsafe:J,isUnsafeMode:L,validate:L7,infer:H4.infer.bind(H4),Type:a,isRuntimeType:O1,Union:t0,Generic:i1,Enum:X4,FunctionPredicate:q0,Nullable:a0,Optional:r0,TArray:e0,TString:d0,TNumber:l0,TBoolean:m0,TInteger:i0,TPositiveInt:p0,TNonEmptyString:n0,TEmail:c0,TUrl:o0,TUuid:s0,TPair:Z4,TRecord:$4,Is:p1,IsNot:A7,Eq:p4,NotEq:B7,TypeOf:I7,tjsEquals:D0,registerExtension:U,resolveExtension:q}}var f1={version:X1,MonadicError:c1,typeError:TZ,isMonadicError:U7,isError:F1,error:M1,composeErrors:n4,typeOf:n1,isNativeType:R7,checkType:y1,validateArgs:c4,wrap:o4,wrapClass:M7,compareVersions:l4,versionsCompatible:m4,configure:bZ,getConfig:vZ,pushStack:q7,popStack:Q4,getStack:D7,resetRuntime:fZ,enterUnsafe:SZ,exitUnsafe:kZ,isUnsafeMode:gZ,createRuntime:yZ,validate:L7,infer:H4.infer.bind(H4),Type:a,isRuntimeType:O1,Union:t0,Generic:i1,Enum:X4,FunctionPredicate:q0,Nullable:a0,Optional:r0,TArray:e0,TString:d0,TNumber:l0,TBoolean:m0,TInteger:i0,TPositiveInt:p0,TNonEmptyString:n0,TEmail:c0,TUrl:o0,TUuid:s0,Timestamp:u4,LegalDate:d4,TPair:Z4,TRecord:$4,Is:p1,IsNot:A7,Eq:p4,NotEq:B7,TypeOf:I7};function s4(){let Z=globalThis;if(Z.__tjs){let $=Z.__tjs.version;if(typeof $!=="string")return Z.__tjs=f1,f1;let X=l4(X1,$);if(X===0)return Z.__tjs;if(m4(X1,$))if(X>0)console.info(`TJS runtime: upgrading ${$} → ${X1}`),Z.__tjs=f1;else console.info(`TJS runtime: keeping ${$} (newer than ${X1})`);else if(console.warn(`TJS runtime version conflict: ${$} vs ${X1} (major version mismatch)`),X>0)console.warn(`Upgrading to ${X1} - check for breaking changes`),Z.__tjs=f1;return Z.__tjs}return Z.__tjs=f1,f1}function hZ(Z){return`
168
+ `+G7;import{validate as L7,s as H4}from"tosijs-schema";import{validate as f4,s as u0}from"tosijs-schema";function N1(Z){return Z!==null&&typeof Z==="object"&&"__runtimeType"in Z&&Z.__runtimeType===!0}function J7(Z){return Z!==null&&typeof Z==="object"&&"schema"in Z&&typeof Z.schema==="object"}function FZ(Z){return Z!==null&&typeof Z==="object"&&"type"in Z&&typeof Z.type==="string"}function t(Z,$,X,Q){let H,K,Y,z=X,W=Q;if(typeof Z==="string")if(H=Z,typeof $==="function"){if(K=$,z!==void 0)Y=u0.infer(z)}else if($===void 0&&z!==void 0)Y=u0.infer(z);else if(J7($))Y=$;else if(FZ($))Y=$;else if($!==void 0)z=$,W=z,Y=u0.infer(z);else throw Error("Type(description) requires a predicate, schema, or example");else{if(J7(Z))Y=Z;else Y=Z;H=PZ(Y)}let G;if(Y){let L=Y?.schema??Y;if(L&&typeof L==="object"&&Array.isArray(L.examples))G=L.examples}if(z===void 0&&G&&G.length>0)z=G[0];return{description:H,check:(L)=>{if(K)return K(L);if(Y)return f4(L,Y);return!1},schema:Y,predicate:K,example:z,examples:G,default:W,__runtimeType:!0}}function PZ(Z){let $=Z?.schema??Z;if($&&typeof $==="object"&&"type"in $){let X=$;switch(X.type){case"string":if(X.format)return`string (${X.format})`;if(X.pattern)return`string matching ${X.pattern}`;if(X.minLength!==void 0&&X.maxLength!==void 0)return`string (${X.minLength}-${X.maxLength} chars)`;return"string";case"number":case"integer":if(X.minimum!==void 0&&X.maximum!==void 0)return`${X.type} (${X.minimum}-${X.maximum})`;if(X.minimum!==void 0)return`${X.type} >= ${X.minimum}`;if(X.maximum!==void 0)return`${X.type} <= ${X.maximum}`;return X.type;case"boolean":return"boolean";case"array":return"array";case"object":return"object";case"null":return"null"}}return"value"}var d0=t("string",(Z)=>typeof Z==="string"),l0=t("number",(Z)=>typeof Z==="number"),m0=t("boolean",(Z)=>typeof Z==="boolean"),i0=t("integer",(Z)=>typeof Z==="number"&&Number.isInteger(Z)),p0=t("positive integer",(Z)=>typeof Z==="number"&&Number.isInteger(Z)&&Z>0),n0=t("non-empty string",(Z)=>typeof Z==="string"&&Z.length>0),c0=t("email address",(Z)=>typeof Z==="string"&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(Z)),y4=(Z)=>{try{return new URL(Z),!0}catch{return!1}},o0=t("URL",(Z)=>typeof Z==="string"&&y4(Z)),s0=t("UUID",(Z)=>typeof Z==="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(Z)),h4=(Z)=>{let $=new Date(Z);return!isNaN($.getTime())&&Z.includes("T")},x4=(Z)=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(Z))return!1;let $=new Date(Z+"T00:00:00Z");return!isNaN($.getTime())},u4=t("ISO 8601 timestamp",(Z)=>typeof Z==="string"&&h4(Z)),d4=t("date (YYYY-MM-DD)",(Z)=>typeof Z==="string"&&x4(Z));function a0(Z){return t(`${Z.description} or null`,($)=>$===null||Z.check($))}function r0(Z){return t(`${Z.description} (optional)`,($)=>$===null||$===void 0||Z.check($))}function t0(Z,$,...X){if(typeof Z==="string"&&Array.isArray($)){let K=Z,Y=$,z=new Set(Y);return{description:K,check:(G)=>z.has(G),__runtimeType:!0,values:Y}}let Q=[];if(N1(Z))Q.push(Z);if(N1($))Q.push($);Q.push(...X);let H=Q.map((K)=>K.description).join(" | ");return t(H,(K)=>Q.some((Y)=>Y.check(K)))}function e0(Z){return t(`array of ${Z.description}`,($)=>Array.isArray($)&&$.every((X)=>Z.check(X)))}function VZ(Z){if(N1(Z))return(X)=>Z.check(X);if(Z&&typeof Z==="object"&&"schema"in Z)return(X)=>f4(X,Z);let $=u0.infer(Z);return(X)=>f4(X,$)}function p1(Z,$,X){let Q=[],H=[];for(let Y of Z)if(typeof Y==="string")Q.push(Y),H.push(void 0);else Q.push(Y[0]),H.push(Y[1]);let K=(...Y)=>{let z=Q.map((G,J)=>{let L=J<Y.length?Y[J]:H[J];if(L===void 0)return()=>!0;return VZ(L)}),W=X;return Q.forEach((G,J)=>{let L=J<Y.length?Y[J]:H[J],_="any";if(N1(L))_=L.description;else if(L!==void 0)_=typeof L==="string"?"string":JSON.stringify(L);W=W.replace(new RegExp(`\\b${G}\\b`,"g"),_)}),t(W,(G)=>$(G,...z))};return K.params=Q,K.description=X,K}var Z4=p1(["T","U"],(Z,$,X)=>Array.isArray(Z)&&Z.length===2&&$(Z[0])&&X(Z[1]),"Pair<T, U>"),$4=p1(["V"],(Z,$)=>typeof Z==="object"&&Z!==null&&!Array.isArray(Z)&&Object.values(Z).every($),"Record<string, V>");function X4(Z,$){let X=Object.values($),Q=new Set(X),H=Object.keys($),K={};for(let[z,W]of Object.entries($))K[W]=z;return{description:Z,check:(z)=>Q.has(z),__runtimeType:!0,members:$,names:K,values:X,keys:H}}function CZ(Z){if(Z===null)return"null";if(Z===void 0)return"undefined";switch(typeof Z){case"string":return"string";case"boolean":return"boolean";case"number":return Number.isInteger(Z)?"integer":"number";case"object":return Array.isArray(Z)?"array":"object";default:return null}}function q0(Z,$,X){if(Array.isArray($)&&X){let Q=$,H=[],K=[];for(let z of Q)if(Array.isArray(z))H.push(z[0]),K.push(z[1]);else H.push(z),K.push(void 0);let Y=(...z)=>{let W=H.map((J,L)=>L<z.length?z[L]:K[L]),G=X(...W);return q0(Z,G)};return Object.defineProperties(Y,{typeParamNames:{value:H,enumerable:!0},description:{value:Z,enumerable:!0},__runtimeType:{value:!0,enumerable:!0}}),Y}return OZ(Z,$)}function OZ(Z,$){let X={},Q=void 0,H="assertReturns";if(typeof $==="function"){let Y=$.__tjs;if(Y){if(Y.params)for(let[z,W]of Object.entries(Y.params))X[z]=W?.example??null;if(Y.returns)Q=Y.returns?.example??null;if(Y.safeReturn)H="checkedReturns";else if(Y.unsafe)H="assertReturns";else H="returns"}}else X=$.params??{},Q=$.returns,H=$.returnContract??"assertReturns";return{description:Z,params:X,returns:Q,returnContract:H,check:(Y)=>{if(typeof Y!=="function")return!1;let z=Object.keys(X).length;if(z>0){let G=Y.__tjs;if(G?.params){if(Object.keys(G.params).length!==z)return!1;let L=Object.keys(X),_=Object.keys(G.params);for(let U=0;U<L.length;U++){let q=G.params[_[U]],A=X[L[U]];if(q?.type?.kind&&A!==void 0){let M=CZ(A);if(M&&q.type.kind!==M&&q.type.kind!=="any")return!1}}}}return!0},__runtimeType:!0}}var EZ=_7(),K1=EZ.version,D0=Symbol.for("tjs.equals");function K4(Z){let[$=0,X=0,Q=0]=Z.split(".").map(Number);return{major:$,minor:X,patch:Q}}function l4(Z,$){let X=K4(Z),Q=K4($);if(X.major!==Q.major)return X.major<Q.major?-1:1;if(X.minor!==Q.minor)return X.minor<Q.minor?-1:1;if(X.patch!==Q.patch)return X.patch<Q.patch?-1:1;return 0}function m4(Z,$){let X=K4(Z),Q=K4($);return X.major===Q.major}class o1 extends Error{path;expected;actual;callStack;constructor(Z,$,X,Q,H){super(Z);if(this.name="MonadicError",this.path=$,this.expected=X,this.actual=Q,this.callStack=H,Error.captureStackTrace)Error.captureStackTrace(this,o1)}}function TZ(Z,$,X){let Q=X===null?"null":typeof X,H=Q1.debug?D7():void 0,K=new o1(`Expected ${$} for '${Z}', got ${Q}`,Z,$,Q,H);if(Q1.logTypeErrors)console.error(`[TJS TypeError] ${K.message}`);if(Q1.throwTypeErrors)throw K;return K}function U7(Z){return Z instanceof Error&&Z.name==="MonadicError"&&"path"in Z}var i4={debug:!1,safety:"inputs",requireReturnTypes:!1,maxStackSize:100},Q1={...i4},V1=[],s1=0;function SZ(){s1++}function kZ(){if(s1>0)s1--}function gZ(){return s1>0}function bZ(Z){Q1={...Q1,...Z}}function vZ(){return{...Q1}}function q7(Z){if(Q1.debug&&Z){V1.push(Z);let $=Q1.maxStackSize??100;while(V1.length>$)V1.shift()}}function Q4(){if(Q1.debug)V1.pop()}function D7(){return[...V1]}function fZ(){Q1={...i4},V1.length=0,s1=0}function n1(Z,$){if(Z!==null&&typeof Z==="object"&&typeof Z[D0]==="function")return Z[D0]($);if($!==null&&typeof $==="object"&&typeof $[D0]==="function")return $[D0](Z);if(Z!==null&&typeof Z==="object"&&typeof Z.Equals==="function")return Z.Equals($);if($!==null&&typeof $==="object"&&typeof $.Equals==="function")return $.Equals(Z);if(Z instanceof String||Z instanceof Number||Z instanceof Boolean)Z=Z.valueOf();if($ instanceof String||$ instanceof Number||$ instanceof Boolean)$=$.valueOf();if(Z===$)return!0;if((Z===null||Z===void 0)&&($===null||$===void 0))return!0;if(Z===null||Z===void 0||$===null||$===void 0)return!1;if(typeof Z!==typeof $)return!1;if(typeof Z!=="object")return!1;if(Z instanceof Set&&$ instanceof Set){if(Z.size!==$.size)return!1;for(let H of Z)if(!$.has(H))return!1;return!0}if(Z instanceof Map&&$ instanceof Map){if(Z.size!==$.size)return!1;for(let[H,K]of Z){if(!$.has(H))return!1;if(!n1(K,$.get(H)))return!1}return!0}if(Z instanceof Date&&$ instanceof Date)return Z.getTime()===$.getTime();if(Z instanceof RegExp&&$ instanceof RegExp)return Z.toString()===$.toString();if(Array.isArray(Z)&&Array.isArray($)){if(Z.length!==$.length)return!1;return Z.every((H,K)=>n1(H,$[K]))}if(Array.isArray(Z)!==Array.isArray($))return!1;let X=Object.keys(Z),Q=Object.keys($);if(X.length!==Q.length)return!1;return X.every((H)=>n1(Z[H],$[H]))}function A7(Z,$){return!n1(Z,$)}function I7(Z){if(Z===null)return"null";return typeof Z}function p4(Z,$){if(Z instanceof String||Z instanceof Number||Z instanceof Boolean)Z=Z.valueOf();if($ instanceof String||$ instanceof Number||$ instanceof Boolean)$=$.valueOf();if(Z===$)return!0;if((Z===null||Z===void 0)&&($===null||$===void 0))return!0;return!1}function B7(Z,$){return!p4(Z,$)}function P1(Z){return Z!==null&&typeof Z==="object"&&Z.$error===!0}function w1(Z,$){let X={$error:!0,message:Z,...$};if(Q1.debug&&V1.length>0){let Q=$?.path?[...V1,$.path]:[...V1];X.stack=Q}return X}function n4(Z,$){if(Z.length===0)return w1("Unknown error");if(Z.length===1)return Z[0];let X=Z.map((H)=>{if(H.path){let K=H.path.split(".");return K[K.length-1]}return"unknown"}).join(", "),Q=`Multiple parameter errors in ${$||"function"}: ${X}`;return w1(Q,{path:$,errors:Z})}function c1(Z){if(Z===null)return"null";if(Z===void 0)return"undefined";if(Array.isArray(Z))return"array";let $=typeof Z;if($!=="object")return $;let X=Z.constructor?.name;if(X&&X!=="Object")return X;return"object"}function R7(Z,$){if(Z===null||Z===void 0)return!1;if(typeof Z!=="object"&&typeof Z!=="function")return!1;let X=Z;while(X!==null){if(X.constructor?.name===$)return!0;X=Object.getPrototypeOf(X)}return!1}function h1(Z,$,X){if(P1(Z))return Z;if(typeof $==="object"&&$!==null&&"check"in $){if($.check(Z))return null;return w1(`Expected ${$.description} but got ${c1(Z)}`,{path:X,expected:$.description,actual:c1(Z)})}let Q=c1(Z);if($==="any")return null;if($===Q)return null;if($==="number"&&Q==="number")return null;if($==="integer"&&Q==="number"&&Number.isInteger(Z))return null;if($==="non-negative-integer"&&Q==="number"&&Number.isInteger(Z)&&Z>=0)return null;if($==="object"&&Q==="object")return null;return w1(`Expected ${$} but got ${Q}`,{path:X,expected:$,actual:Q})}function c4(Z,$,X){for(let[Q,H]of Object.entries($.params)){let K=Z[Q];if(P1(K))return K;if(H.required&&K===void 0){let z=typeof H.type==="string"?H.type:H.type.description;return w1(`Missing required parameter '${Q}'`,{path:X?`${X}.${Q}`:Q,expected:z,actual:"undefined",loc:H.loc})}if(K===void 0)continue;let Y=h1(K,H.type,X?`${X}.${Q}`:Q);if(Y){if(H.loc)Y.loc=H.loc;return Y}}return null}function o4(Z,$){if(Z.__tjs=$,!(!$.polymorphic&&($.safe||$.safeReturn||Q1.safety!=="none"&&!$.unsafe||$.returns&&Q1.safety==="all"&&!$.unsafeReturn)))return Z;let Q=!!$.returns,H=!!$.unsafe,K=!!$.safe,Y=!!$.unsafeReturn,z=!!$.safeReturn,W=$.returns?.defaults,G=Object.entries($.params),J=G.length,L=Z.name||$.name||"anonymous",_=function(...U){if(s1>0)return Z.apply(this,U);let q=K||!H&&Q1.safety!=="none",A=Q&&(z||!Y&&Q1.safety==="all");if(!q&&!A)return Z.apply(this,U);if(U.length>0&&P1(U[0]))return U[0];if(q){let M=U.length===1&&typeof U[0]==="object"&&U[0]!==null&&!Array.isArray(U[0]),R=[];if(!M)for(let F=0;F<J;F++){let[B,w]=G[F],O=U[F];if(P1(O)){R.push(O);continue}if(w.required&&O===void 0){R.push(w1(`Missing required parameter '${B}'`,{path:`${L}.${B}`,expected:typeof w.type==="string"?w.type:w.type?.description||"value",actual:"undefined",loc:w.loc}));continue}if(O!==void 0){let V=h1(O,w.type,`${L}.${B}`);if(V){if(w.loc)V.loc=w.loc;R.push(V)}}}else{let F=U[0];for(let B=0;B<J;B++){let[w,O]=G[B],V=F[w];if(P1(V)){R.push(V);continue}if(O.required&&V===void 0){R.push(w1(`Missing required parameter '${w}'`,{path:`${L}.${w}`,expected:typeof O.type==="string"?O.type:O.type?.description||"value",actual:"undefined",loc:O.loc}));continue}if(V!==void 0){let C=h1(V,O.type,`${L}.${w}`);if(C){if(O.loc)C.loc=O.loc;R.push(C)}}}}if(R.length>0)return n4(R,L)}q7(L);try{let M=Z.apply(this,U);if(A&&$.returns&&!P1(M)){let R=W&&typeof M==="object"&&M!==null?Object.assign({},W,M):M,F=h1(R,$.returns.type,`${L}()`);if(F)return Q4(),F}return Q4(),M}catch(M){return Q4(),w1(M.message||String(M),{path:L,cause:M})}};return Object.defineProperty(_,"name",{value:Z.name}),_.__tjs=$,_}function M7(Z){let $=new Proxy(Z,{construct(X,Q,H){return Reflect.construct(X,Q,H)},apply(X,Q,H){return Reflect.construct(X,H)}});Object.defineProperty($,"name",{value:Z.name});for(let X of Object.getOwnPropertyNames(Z))if(X!=="length"&&X!=="name"&&X!=="prototype")Object.defineProperty($,X,Object.getOwnPropertyDescriptor(Z,X));return $}function yZ(){let Z={...Q1},$=[],X=0;function Q(R){Z={...Z,...R}}function H(){return{...Z}}function K(R){if(Z.debug&&R){$.push(R);let F=Z.maxStackSize??100;while($.length>F)$.shift()}}function Y(){if(Z.debug)$.pop()}function z(){return[...$]}function W(){Z={...i4},$.length=0,X=0}function G(){X++}function J(){if(X>0)X--}function L(){return X>0}let _=new Map;function U(R,F,B){if(!_.has(R))_.set(R,new Map);_.get(R).set(F,B)}function q(R,F){let B=typeof R,w;if(R===null||R===void 0)return;if(B==="string")w="String";else if(B==="number")w="Number";else if(B==="boolean")w="Boolean";else if(Array.isArray(R))w="Array";else if(B==="object")w=R.constructor?.name||"Object";else return;let O=w;while(O){let C=_.get(O);if(C?.has(F))return C.get(F);if(B==="object"&&!Array.isArray(R)){if(O=Object.getPrototypeOf(O===w?R:Object.getPrototypeOf(R))?.constructor?.name,O==="Object"||O===w)break}else break}let V=_.get("Object");if(V?.has(F))return V.get(F);return}function A(R,F,B){let w=B===null?"null":typeof B,O=Z.debug?z():void 0,V=new o1(`Expected ${F} for '${R}', got ${w}`,R,F,w,O);if(Z.logTypeErrors)console.error(`[TJS TypeError] ${V.message}`);if(Z.throwTypeErrors)throw V;return V}function M(R,F){let B={$error:!0,message:R,...F};if(Z.debug&&$.length>0){let w=F?.path?[...$,F.path]:[...$];B.stack=w}return B}return{version:K1,MonadicError:o1,typeError:A,isMonadicError:U7,isError:P1,error:M,composeErrors:n4,typeOf:c1,isNativeType:R7,checkType:h1,validateArgs:c4,wrap:o4,wrapClass:M7,compareVersions:l4,versionsCompatible:m4,configure:Q,getConfig:H,pushStack:K,popStack:Y,getStack:z,resetRuntime:W,enterUnsafe:G,exitUnsafe:J,isUnsafeMode:L,validate:L7,infer:H4.infer.bind(H4),Type:t,isRuntimeType:N1,Union:t0,Generic:p1,Enum:X4,FunctionPredicate:q0,Nullable:a0,Optional:r0,TArray:e0,TString:d0,TNumber:l0,TBoolean:m0,TInteger:i0,TPositiveInt:p0,TNonEmptyString:n0,TEmail:c0,TUrl:o0,TUuid:s0,TPair:Z4,TRecord:$4,Is:n1,IsNot:A7,Eq:p4,NotEq:B7,TypeOf:I7,tjsEquals:D0,registerExtension:U,resolveExtension:q}}var y1={version:K1,MonadicError:o1,typeError:TZ,isMonadicError:U7,isError:P1,error:w1,composeErrors:n4,typeOf:c1,isNativeType:R7,checkType:h1,validateArgs:c4,wrap:o4,wrapClass:M7,compareVersions:l4,versionsCompatible:m4,configure:bZ,getConfig:vZ,pushStack:q7,popStack:Q4,getStack:D7,resetRuntime:fZ,enterUnsafe:SZ,exitUnsafe:kZ,isUnsafeMode:gZ,createRuntime:yZ,validate:L7,infer:H4.infer.bind(H4),Type:t,isRuntimeType:N1,Union:t0,Generic:p1,Enum:X4,FunctionPredicate:q0,Nullable:a0,Optional:r0,TArray:e0,TString:d0,TNumber:l0,TBoolean:m0,TInteger:i0,TPositiveInt:p0,TNonEmptyString:n0,TEmail:c0,TUrl:o0,TUuid:s0,Timestamp:u4,LegalDate:d4,TPair:Z4,TRecord:$4,Is:n1,IsNot:A7,Eq:p4,NotEq:B7,TypeOf:I7};function s4(){let Z=globalThis;if(Z.__tjs){let $=Z.__tjs.version;if(typeof $!=="string")return Z.__tjs=y1,y1;let X=l4(K1,$);if(X===0)return Z.__tjs;if(m4(K1,$))if(X>0)console.info(`TJS runtime: upgrading ${$} → ${K1}`),Z.__tjs=y1;else console.info(`TJS runtime: keeping ${$} (newer than ${K1})`);else if(console.warn(`TJS runtime version conflict: ${$} vs ${K1} (major version mismatch)`),X>0)console.warn(`Upgrading to ${K1} - check for breaking changes`),Z.__tjs=y1;return Z.__tjs}return Z.__tjs=y1,y1}function hZ(Z){return`
169
169
  // TJS runtime wrapper (skips unsafe functions)
170
170
  if (typeof ${Z}.__tjs === 'object' && !${Z}.__tjs.unsafe && typeof globalThis.__tjs?.wrap === 'function') {
171
171
  ${Z} = globalThis.__tjs.wrap(${Z}, ${Z}.__tjs)
@@ -173,7 +173,7 @@ if (typeof ${Z}.__tjs === 'object' && !${Z}.__tjs.unsafe && typeof globalThis.__
173
173
  `.trim()}function w7(Z){return`
174
174
  // TJS: callable without new
175
175
  ${Z} = new Proxy(${Z}, { apply(t, _, a) { return Reflect.construct(t, a) } });
176
- `.trim()}function xZ(Z,$,X=0.000000001){if(Z===$)return!0;if(typeof Z==="number"&&typeof $==="number"){if(!Number.isInteger(Z)||!Number.isInteger($)){let Q=Math.abs(Z-$),H=Math.max(Math.abs(Z),Math.abs($),1);return Q/H<X}}return!1}function a4(Z,$){if(Z===$)return!0;if(typeof Z==="number"&&typeof $==="number"&&Number.isNaN(Z)&&Number.isNaN($))return!0;if(xZ(Z,$))return!0;if(Z===null||$===null)return Z===$;if(Z===void 0||$===void 0)return Z===$;if(typeof Z!==typeof $)return!1;if(typeof Z!=="object")return!1;if(Array.isArray(Z)&&Array.isArray($)){if(Z.length!==$.length)return!1;return Z.every((H,K)=>a4(H,$[K]))}if(Array.isArray(Z)!==Array.isArray($))return!1;let X=Object.keys(Z),Q=Object.keys($);if(X.length!==Q.length)return!1;return X.every((H)=>a4(Z[H],$[H]))}function r4(Z,$,X=""){if($===null){if(Z===null)return{matches:!0};return{matches:!1,error:`Expected null at '${X}', got ${h1(Z)}`}}if($===void 0){if(Z===void 0)return{matches:!0};return{matches:!1,error:`Expected undefined at '${X}', got ${h1(Z)}`}}if(typeof $==="number"){if(typeof Z==="number")return{matches:!0};return{matches:!1,error:`Expected number at '${X}', got ${h1(Z)}`}}if(typeof $==="string"){if(typeof Z==="string")return{matches:!0};return{matches:!1,error:`Expected string at '${X}', got ${h1(Z)}`}}if(typeof $==="boolean"){if(typeof Z==="boolean")return{matches:!0};return{matches:!1,error:`Expected boolean at '${X}', got ${h1(Z)}`}}if(Array.isArray($)){if(!Array.isArray(Z))return{matches:!1,error:`Expected array at '${X}', got ${h1(Z)}`};if($.length===0)return{matches:!0};let Q=$[0];for(let H=0;H<Z.length;H++){let K=r4(Z[H],Q,`${X}[${H}]`);if(!K.matches)return K}return{matches:!0}}if(typeof $==="object"&&$!==null){if(typeof Z!=="object"||Z===null||Array.isArray(Z))return{matches:!1,error:`Expected object at '${X}', got ${h1(Z)}`};for(let Q of Object.keys($)){let H=X?`${X}.${Q}`:Q;if(!(Q in Z))return{matches:!1,error:`Missing property '${H}'`};let K=r4(Z[Q],$[Q],H);if(!K.matches)return K}return{matches:!0}}if(Z===$)return{matches:!0};return{matches:!1,error:`Type mismatch at '${X}'`}}function h1(Z){if(Z===null)return"null";if(Z===void 0)return"undefined";if(Array.isArray(Z))return"array";return typeof Z}function A0(Z,$=0){if(Z===null)return"null";if(Z===void 0)return"undefined";if(typeof Z==="string")return JSON.stringify(Z);if(typeof Z==="number")return String(Z);if(typeof Z==="boolean")return String(Z);if(Array.isArray(Z)){if(Z.length===0)return"[]";if(Z.length<=3)return`[${Z.map((X)=>A0(X,$)).join(", ")}]`;return`[${Z.slice(0,3).map((X)=>A0(X,$)).join(", ")}, ...]`}if(typeof Z==="object"){let X=Object.entries(Z);if(X.length===0)return"{}";let Q=(W)=>/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(W)?W:JSON.stringify(W);if(X.length<=2)return`{${X.map(([G,J])=>`${Q(G)}: ${A0(J,$)}`).join(", ")}}`;let H=" ".repeat($+1),K=" ".repeat($),Y=X.slice(0,8).map(([W,G])=>`${H}${Q(W)}: ${A0(G,$+1)}`).join(`,
176
+ `.trim()}function xZ(Z,$,X=0.000000001){if(Z===$)return!0;if(typeof Z==="number"&&typeof $==="number"){if(!Number.isInteger(Z)||!Number.isInteger($)){let Q=Math.abs(Z-$),H=Math.max(Math.abs(Z),Math.abs($),1);return Q/H<X}}return!1}function a4(Z,$){if(Z===$)return!0;if(typeof Z==="number"&&typeof $==="number"&&Number.isNaN(Z)&&Number.isNaN($))return!0;if(xZ(Z,$))return!0;if(Z===null||$===null)return Z===$;if(Z===void 0||$===void 0)return Z===$;if(typeof Z!==typeof $)return!1;if(typeof Z!=="object")return!1;if(Array.isArray(Z)&&Array.isArray($)){if(Z.length!==$.length)return!1;return Z.every((H,K)=>a4(H,$[K]))}if(Array.isArray(Z)!==Array.isArray($))return!1;let X=Object.keys(Z),Q=Object.keys($);if(X.length!==Q.length)return!1;return X.every((H)=>a4(Z[H],$[H]))}function r4(Z,$,X=""){if($===null){if(Z===null)return{matches:!0};return{matches:!1,error:`Expected null at '${X}', got ${x1(Z)}`}}if($===void 0){if(Z===void 0)return{matches:!0};return{matches:!1,error:`Expected undefined at '${X}', got ${x1(Z)}`}}if(typeof $==="number"){if(typeof Z==="number")return{matches:!0};return{matches:!1,error:`Expected number at '${X}', got ${x1(Z)}`}}if(typeof $==="string"){if(typeof Z==="string")return{matches:!0};return{matches:!1,error:`Expected string at '${X}', got ${x1(Z)}`}}if(typeof $==="boolean"){if(typeof Z==="boolean")return{matches:!0};return{matches:!1,error:`Expected boolean at '${X}', got ${x1(Z)}`}}if(Array.isArray($)){if(!Array.isArray(Z))return{matches:!1,error:`Expected array at '${X}', got ${x1(Z)}`};if($.length===0)return{matches:!0};let Q=$[0];for(let H=0;H<Z.length;H++){let K=r4(Z[H],Q,`${X}[${H}]`);if(!K.matches)return K}return{matches:!0}}if(typeof $==="object"&&$!==null){if(typeof Z!=="object"||Z===null||Array.isArray(Z))return{matches:!1,error:`Expected object at '${X}', got ${x1(Z)}`};for(let Q of Object.keys($)){let H=X?`${X}.${Q}`:Q;if(!(Q in Z))return{matches:!1,error:`Missing property '${H}'`};let K=r4(Z[Q],$[Q],H);if(!K.matches)return K}return{matches:!0}}if(Z===$)return{matches:!0};return{matches:!1,error:`Type mismatch at '${X}'`}}function x1(Z){if(Z===null)return"null";if(Z===void 0)return"undefined";if(Array.isArray(Z))return"array";return typeof Z}function A0(Z,$=0){if(Z===null)return"null";if(Z===void 0)return"undefined";if(typeof Z==="string")return JSON.stringify(Z);if(typeof Z==="number")return String(Z);if(typeof Z==="boolean")return String(Z);if(Array.isArray(Z)){if(Z.length===0)return"[]";if(Z.length<=3)return`[${Z.map((X)=>A0(X,$)).join(", ")}]`;return`[${Z.slice(0,3).map((X)=>A0(X,$)).join(", ")}, ...]`}if(typeof Z==="object"){let X=Object.entries(Z);if(X.length===0)return"{}";let Q=(W)=>/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(W)?W:JSON.stringify(W);if(X.length<=2)return`{${X.map(([G,J])=>`${Q(G)}: ${A0(J,$)}`).join(", ")}}`;let H=" ".repeat($+1),K=" ".repeat($),Y=X.slice(0,8).map(([W,G])=>`${H}${Q(W)}: ${A0(G,$+1)}`).join(`,
177
177
  `),z=X.length>8?`,
178
178
  ${H}...`:"";return`{
179
179
  ${Y}${z}
@@ -181,33 +181,33 @@ ${K}}`}return String(Z)}function uZ(Z){let $=Z.replace(/\/\*[\s\S]*?\*\//g,(X)=>
181
181
  `).length-1;return`
182
182
  `.repeat(Q)});return $=$.replace(/\/\/[^\n]*/g,""),$}function Y4(Z){let $=Z.replace(/^import\s+.*?from\s+['"][^'"]+['"];?\s*$/gm,"");return $=$.replace(/^import\s+['"][^'"]+['"];?\s*$/gm,""),$=$.replace(/^export\s+default\s+/gm,""),$=$.replace(/^export\s+/gm,""),$=$.replace(/^(\s*)((?:const|let|var)\s+\w+\s*=\s*)?await\s+.+$/gm,"$1/* top-level await removed for test execution */"),$}function j7(Z){let $=Z.replace(/^const __tjs = globalThis\.__tjs\?\.createRuntime\?\.\(\) \?\? globalThis\.__tjs;\n?/m,"");return $=$.replace(/^const \{ [\w, ]+ \} = __tjs \?\? \{\};\n?/m,""),$}function dZ(Z){if(Object.keys(Z).length===0)return"";let $=[];for(let[X,Q]of Object.entries(Z)){let H=Y4(Q);$.push(`// Resolved import: ${X}`),$.push(H)}return $.join(`
183
183
  `)}function lZ(Z){let $={},X=Z.trim();if(!X.startsWith("{")||!X.includes("="))try{return{pattern:Function(`return ${Z}`)(),defaults:$}}catch{return null}let Q="",H=0,K=0;while(K<X.length){let Y=X[K];if(Y==="{"||Y==="["||Y==="(")H++,Q+=Y,K++;else if(Y==="}"||Y==="]"||Y===")")H--,Q+=Y,K++;else if(Y==="'"||Y==='"'||Y==="`"){let z=Y;Q+=Y,K++;while(K<X.length&&X[K]!==z){if(X[K]==="\\")Q+=X[K++];Q+=X[K++]}if(K<X.length)Q+=X[K++]}else if(H===1&&Y==="="){let G=(Q.slice(Q.lastIndexOf("{")+1).split(",").pop()||"").match(/\s*(\w+)\s*$/);if(G){let J=K+1;while(J<X.length&&/\s/.test(X[J]))J++;let L="",_=0;while(J<X.length){let U=X[J];if(U==="{"||U==="["||U==="(")_++;else if(U==="}"||U==="]"||U===")"){if(_===0)break;_--}else if(U===","&&_===0)break;L+=U,J++}try{$[G[1]]=Function(`return ${L.trim()}`)()}catch{}Q+=":",K++;continue}Q+=Y,K++}else Q+=Y,K++}try{return{pattern:Function(`return ${Q}`)(),defaults:$}}catch{return null}}function F7(Z){let $=[],X=uZ(Z),Q=/(async\s+)?function\s+(\w+)\s*\(([^)]*)\)\s*(-[>?])\s*/g,H;while((H=Q.exec(X))!==null){let K=!!H[1],Y=H[2],z=H[3],W=H[4],G=X.slice(0,H.index).split(`
184
- `).length;if(W==="-!")continue;let J=X.slice(H.index+H[0].length),L=t4(J);if(!L)continue;let _=mZ(z);if(z.trim()&&_.length===0)continue;try{let U=lZ(L);if(!U)continue;let q=_.map((I)=>Function(`return ${I}`)());$.push({funcName:Y,args:q,expected:U.pattern,defaults:Object.keys(U.defaults).length>0?U.defaults:void 0,line:G,isAsync:K})}catch{}}return $}function P7(Z,$,X,Q,H={},K=new Map){let Y=[];if(Z.length===0&&X.length===0)return Y;let z=Q.match(/^import\s+.*?from\s+['"]([^'"]+)['"];?\s*$/gm)||[],W=z.length>0&&z.some((B)=>{let F=B.match(/from\s+['"]([^'"]+)['"]/);return F&&!(F[1]in H)}),G=Y4(Q),J=dZ(H),L=$.map((B)=>B.body).join(`
185
- `),_=Z.map((B,F)=>{let N=K.size>0?G0(B.body,K):B.body;return`
186
- // Test ${F}: ${B.description}
184
+ `).length;if(W==="-!")continue;let J=X.slice(H.index+H[0].length),L=t4(J);if(!L)continue;let _=mZ(z);if(z.trim()&&_.length===0)continue;try{let U=lZ(L);if(!U)continue;let q=_.map((A)=>Function(`return ${A}`)());$.push({funcName:Y,args:q,expected:U.pattern,defaults:Object.keys(U.defaults).length>0?U.defaults:void 0,line:G,isAsync:K})}catch{}}return $}function P7(Z,$,X,Q,H={},K=new Map){let Y=[];if(Z.length===0&&X.length===0)return Y;let z=Q.match(/^import\s+.*?from\s+['"]([^'"]+)['"];?\s*$/gm)||[],W=z.length>0&&z.some((B)=>{let w=B.match(/from\s+['"]([^'"]+)['"]/);return w&&!(w[1]in H)}),G=Y4(Q),J=dZ(H),L=$.map((B)=>B.body).join(`
185
+ `),_=Z.map((B,w)=>{let O=K.size>0?G0(B.body,K):B.body;return`
186
+ // Test ${w}: ${B.description}
187
187
  try {
188
- ${N}
189
- __testResults.push({ idx: ${F}, passed: true });
188
+ ${O}
189
+ __testResults.push({ idx: ${w}, passed: true });
190
190
  } catch (e) {
191
- __testResults.push({ idx: ${F}, passed: false, error: e.message || String(e) });
191
+ __testResults.push({ idx: ${w}, passed: false, error: e.message || String(e) });
192
192
  }
193
193
  `}).join(`
194
- `),U=X.filter((B)=>!B.isAsync),q=X.filter((B)=>B.isAsync),I=U.map((B,F)=>`
195
- // Signature test ${F}: ${B.funcName}
194
+ `),U=X.filter((B)=>!B.isAsync),q=X.filter((B)=>B.isAsync),A=U.map((B,w)=>`
195
+ // Signature test ${w}: ${B.funcName}
196
196
  try {
197
- let __actual = ${B.funcName}(${B.args.map((N)=>JSON.stringify(N)).join(", ")});
197
+ let __actual = ${B.funcName}(${B.args.map((O)=>JSON.stringify(O)).join(", ")});
198
198
  const __expected = ${JSON.stringify(B.expected)};${B.defaults?`
199
199
  const __defaults = ${JSON.stringify(B.defaults)};
200
200
  if (typeof __actual === 'object' && __actual !== null) __actual = Object.assign({}, __defaults, __actual);`:""}
201
201
  if (__deepEqual(__actual, __expected)) {
202
- __sigTestResults.push({ idx: ${F}, passed: true });
202
+ __sigTestResults.push({ idx: ${w}, passed: true });
203
203
  } else {
204
- __sigTestResults.push({ idx: ${F}, passed: false, error: 'Expected ' + __format(__expected) + ' at \\'${B.funcName}\\', got ' + __format(__actual) });
204
+ __sigTestResults.push({ idx: ${w}, passed: false, error: 'Expected ' + __format(__expected) + ' at \\'${B.funcName}\\', got ' + __format(__actual) });
205
205
  }
206
206
  } catch (e) {
207
- __sigTestResults.push({ idx: ${F}, passed: false, error: e.message || String(e) });
207
+ __sigTestResults.push({ idx: ${w}, passed: false, error: e.message || String(e) });
208
208
  }
209
209
  `).join(`
210
- `);s4();let P=`
210
+ `);s4();let F=`
211
211
  ${`
212
212
  const __saved_tjs = globalThis.__tjs;
213
213
  `}
@@ -285,14 +285,14 @@ ${K}}`}return String(Z)}function uZ(Z){let $=Z.replace(/\/\*[\s\S]*?\*\//g,(X)=>
285
285
  ${_}
286
286
 
287
287
  // Run signature tests
288
- ${I}
288
+ ${A}
289
289
 
290
290
  } finally {
291
291
  ${"globalThis.__tjs = __saved_tjs;"}
292
292
  }
293
293
  return { testResults: __testResults, sigTestResults: __sigTestResults };
294
- `;try{let B=Function("__deepEqual","__format","__typeMatches",P),{testResults:F,sigTestResults:N}=B(a4,A0,r4);for(let V of F){let w=Z[V.idx],C=W&&!V.passed&&V.error&&/is not defined$/.test(V.error);Y.push({description:w.description,passed:C?!0:V.passed,error:C?void 0:V.error,line:w.line})}for(let V of N){let w=U[V.idx],C=W&&!V.passed&&V.error&&/is not defined$/.test(V.error);Y.push({description:`${w.funcName} signature example`,passed:C?!0:V.passed,error:C?void 0:V.error,isSignatureTest:!0,line:w.line})}}catch(B){let F=W&&B instanceof ReferenceError;for(let N of Z)Y.push({description:N.description,passed:F,error:F?void 0:`Module execution failed: ${B.message}`,line:N.line});for(let N of U)Y.push({description:`${N.funcName} signature example`,passed:F,error:F?void 0:`Module execution failed: ${B.message}`,isSignatureTest:!0,line:N.line})}for(let B of q)Y.push({description:`${B.funcName} signature example`,passed:!0,isSignatureTest:!0,line:B.line});return Y}function t4(Z){let $="",X=0,Q=!1;for(let K=0;K<Z.length;K++){let Y=Z[K];if(Y==="{"||Y==="["||Y==="("){if(Y==="{"&&X===0&&Q)break;X++,$+=Y,Q=!0}else if(Y==="}"||Y==="]"||Y===")")X--,$+=Y;else if(!/\s/.test(Y))$+=Y,Q=!0;else $+=Y}return $.trim()||null}function mZ(Z){if(!Z.trim())return[];let $=[],X=iZ(Z);for(let Q of X){let H=Q.trim(),K=H.match(/^\.\.\.(\w+)\s*[:=]\s*(\[.+\])$/);if(K){try{let z=Function(`return ${K[2]}`)();if(Array.isArray(z))for(let W of z)$.push(JSON.stringify(W))}catch{}continue}if(H.startsWith("..."))continue;let Y=H.match(/(?:\(\s*[?!]\s*)?(\w+)\s*[:=]\s*(.+?)(?:\))?$/);if(Y)$.push(Y[2].trim());else return[]}return $}function iZ(Z){let $=[],X="",Q=0;for(let H of Z){if(H==="("||H==="["||H==="{")Q++;else if(H===")"||H==="]"||H==="}")Q--;else if(H===","&&Q===0){$.push(X.trim()),X="";continue}X+=H}if(X.trim())$.push(X.trim());return $}import*as C7 from"acorn";var I1={i32:127,i64:126,f32:125,f64:124,v128:123,funcref:112,externref:111,void:64},I0={custom:0,type:1,import:2,function:3,table:4,memory:5,global:6,export:7,start:8,element:9,code:10,data:11},D={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},pZ=Object.fromEntries(Object.entries(D).map(([Z,$])=>[$,Z.replace(/_/g,".")])),R0=253,e={v128_load:0,v128_store:11,v128_const:12,f32x4_splat:19,f32x4_extract_lane:31,f32x4_replace_lane:32,f32x4_neg:225,f32x4_sqrt:227,f32x4_add:228,f32x4_sub:229,f32x4_mul:230,f32x4_div:231},nZ=Object.fromEntries(Object.entries(e).map(([Z,$])=>[$,Z.replace(/_/g,".")]));function e4(Z){return[R0,...x(Z)]}function V7(Z,$,X){return[R0,...x(Z),...x($),...x(X)]}function x(Z){let $=[];do{let X=Z&127;if(Z>>>=7,Z!==0)X|=128;$.push(X)}while(Z!==0);return $}function M0(Z){let $=[],X=!0;while(X){let Q=Z&127;if(Z>>=7,Z===0&&(Q&64)===0||Z===-1&&(Q&64)!==0)X=!1;else Q|=128;$.push(Q)}return $}function $6(Z){let $=new ArrayBuffer(4);return new Float32Array($)[0]=Z,[...new Uint8Array($)]}function J1(Z){let $=new ArrayBuffer(8);return new Float64Array($)[0]=Z,[...new Uint8Array($)]}function Z6(Z){let $=new TextEncoder().encode(Z);return[...x($.length),...$]}function B0(Z,$){return[Z,...x($.length),...$]}function N1(Z,$){let X=0,Q=0,H=$;while(H<Z.length){let K=Z[H];if(X|=(K&127)<<Q,H++,(K&128)===0)break;Q+=7}return[X,H-$]}function cZ(Z,$){let X=new ArrayBuffer(8),Q=new Uint8Array(X);for(let H=0;H<8;H++)Q[H]=Z[$+H];return new Float64Array(X)[0]}function oZ(Z,$,X){let Q=[],H=1,K=()=>" ".repeat(H),Y=$.map((G,J)=>`(param $${G.name} ${G.type})`).join(" "),z=X.map((G,J)=>`(local $L${$.length+J} ${G})`).join(" ");if(Q.push(`(func (export "compute") ${Y} (result f64)`),z)Q.push(` ${z}`);let W=0;while(W<Z.length){let G=Z[W],J=pZ[G]||`unknown(0x${G.toString(16)})`;if(W++,G===D.local_get||G===D.local_set||G===D.local_tee){let[L,_]=N1(Z,W);W+=_;let U=L<$.length?`$${$[L].name}`:`$L${L}`;Q.push(`${K()}${J} ${U}`)}else if(G===D.br||G===D.br_if){let[L,_]=N1(Z,W);W+=_,Q.push(`${K()}${J} ${L}`)}else if(G===D.i32_const){let[L,_]=N1(Z,W);W+=_,Q.push(`${K()}i32.const ${L}`)}else if(G===D.f32_const){let L=new ArrayBuffer(4),_=new Uint8Array(L);for(let q=0;q<4;q++)_[q]=Z[W+q];let U=new Float32Array(L)[0];W+=4,Q.push(`${K()}f32.const ${U}`)}else if(G===D.f64_const){let L=cZ(Z,W);W+=8,Q.push(`${K()}f64.const ${L}`)}else if(G===D.block||G===D.loop){let L=Z[W];W++,Q.push(`${K()}${J}${L===I1.void?"":` (result ${L===I1.f64?"f64":"i32"})`}`),H++}else if(G===D.if){let L=Z[W];W++,Q.push(`${K()}if${L===I1.void?"":` (result ${L===I1.f64?"f64":"i32"})`}`),H++}else if(G===D.else)H--,Q.push(`${K()}else`),H++;else if(G===D.end)H=Math.max(1,H-1),Q.push(`${K()}end`);else if(G===D.f64_load||G===D.f64_store||G===D.f32_load||G===D.f32_store||G===D.i32_load||G===D.i32_store){let[L,_]=N1(Z,W);W+=_;let[U,q]=N1(Z,W);W+=q,Q.push(`${K()}${J}${U?` offset=${U}`:""}`)}else if(G===R0){let[L,_]=N1(Z,W);W+=_;let U=nZ[L]||`simd.unknown(0x${L.toString(16)})`;if(L===e.v128_load||L===e.v128_store){let[q,I]=N1(Z,W);W+=I;let[M,R]=N1(Z,W);W+=R,Q.push(`${K()}${U}${M?` offset=${M}`:""}`)}else if(L===e.v128_const){let q=Z.slice(W,W+16);W+=16,Q.push(`${K()}v128.const ${q.map((I)=>"0x"+I.toString(16).padStart(2,"0")).join(" ")}`)}else if(L===e.f32x4_extract_lane||L===e.f32x4_replace_lane){let q=Z[W];W++,Q.push(`${K()}${U} ${q}`)}else Q.push(`${K()}${U}`)}else Q.push(`${K()}${J}`)}return Q.push(")"),Q.join(`
295
- `)}var W4={Int8Array:{elementType:"i32",bytesPerElement:1,loadOp:D.i32_load8_s,storeOp:D.i32_store8},Uint8Array:{elementType:"i32",bytesPerElement:1,loadOp:D.i32_load8_u,storeOp:D.i32_store8},Uint8ClampedArray:{elementType:"i32",bytesPerElement:1,loadOp:D.i32_load8_u,storeOp:D.i32_store8},Int16Array:{elementType:"i32",bytesPerElement:2,loadOp:D.i32_load16_s,storeOp:D.i32_store16},Uint16Array:{elementType:"i32",bytesPerElement:2,loadOp:D.i32_load16_u,storeOp:D.i32_store16},Int32Array:{elementType:"i32",bytesPerElement:4,loadOp:D.i32_load,storeOp:D.i32_store},Uint32Array:{elementType:"i32",bytesPerElement:4,loadOp:D.i32_load,storeOp:D.i32_store},Float32Array:{elementType:"f32",bytesPerElement:4,loadOp:D.f32_load,storeOp:D.f32_store},Float64Array:{elementType:"f64",bytesPerElement:8,loadOp:D.f64_load,storeOp:D.f64_store}};function sZ(Z){let $={params:Z,locals:new Map,nextLocalIndex:Z.length,localTypes:[],warnings:[],errors:[],loopDepth:0,needsMathImports:new Set,needsMemory:!1,hasReturn:!1,wat:[],watIndent:1};return Z.forEach((X,Q)=>{$.locals.set(X.name,{index:Q,type:X.type})}),$}function z4(Z,$,X){if(Z.locals.has($))return Z.errors.push(`Duplicate local declaration: ${$}`),Z.locals.get($).index;let Q=Z.nextLocalIndex++;return Z.locals.set($,{index:Q,type:X}),Z.localTypes.push(X),Q}function x1(Z,$){return Z.locals.get($)}function s1(Z,$){switch(Z.type){case"ExpressionStatement":{let X=Z.expression;return[...d(X,$),D.drop]}case"ReturnStatement":{let X=Z;if($.hasReturn=!0,!X.argument)return[D.return];let Q=d(X.argument,$),H=c(X.argument,$);if(H==="i32")Q.push(D.f64_convert_i32_s);else if(H==="f32")Q.push(D.f64_promote_f32);return Q.push(D.return),Q}case"VariableDeclaration":{let X=Z,Q=[];for(let H of X.declarations){if(H.id.type!=="Identifier"){$.errors.push("Destructuring not supported in WASM blocks");continue}let K=H.id.name,Y="f64";if(H.init)Y=c(H.init,$);let z=z4($,K,Y);if(H.init)Q.push(...d(H.init,$)),Q.push(D.local_set,...x(z))}return Q}case"ForStatement":return aZ(Z,$);case"IfStatement":return rZ(Z,$);case"BlockStatement":{let X=Z,Q=[];for(let H of X.body)Q.push(...s1(H,$));return Q}default:return $.errors.push(`Unsupported statement type: ${Z.type}`),[]}}function aZ(Z,$){let X=[];if(Z.init)if(Z.init.type==="VariableDeclaration")X.push(...s1(Z.init,$));else X.push(...d(Z.init,$));if(X.push(D.block,I1.void),X.push(D.loop,I1.void),Z.test)X.push(...d(Z.test,$)),X.push(D.i32_eqz),X.push(D.br_if,1);if($.loopDepth++,Z.body)X.push(...s1(Z.body,$));if($.loopDepth--,Z.update)X.push(...d(Z.update,$)),X.push(D.drop);return X.push(D.br,0),X.push(D.end),X.push(D.end),X}function rZ(Z,$){let X=[];if(X.push(...d(Z.test,$)),X.push(D.if,I1.void),X.push(...s1(Z.consequent,$)),Z.alternate)X.push(D.else),X.push(...s1(Z.alternate,$));return X.push(D.end),X}function c(Z,$){switch(Z.type){case"Literal":{let X=Z;if(typeof X.value==="number"){if(X.raw&&(X.raw.includes(".")||X.raw.includes("e")))return"f64";if(Number.isInteger(X.value)&&X.value>=-2147483648&&X.value<=2147483647)return"i32";return"f64"}return"f64"}case"Identifier":return x1($,Z.name)?.type??"f64";case"BinaryExpression":case"AssignmentExpression":{let X=Z;if(["<",">","<=",">=","==","!=","===","!=="].includes(X.operator))return"i32";if(["|","&","^","<<",">>",">>>"].includes(X.operator))return"i32";let Q=c(X.left,$),H=c(X.right,$);if(Q==="v128"||H==="v128")return"v128";if(Q==="f64"||H==="f64")return"f64";if(Q==="f32"||H==="f32")return"f32";return"i32"}case"UnaryExpression":{let X=Z;if(X.operator==="!")return"i32";return c(X.argument,$)}case"MemberExpression":{let X=Z;if(X.object.type==="Identifier"){if(x1($,X.object.name)){let H=$.params.find((K)=>K.name===X.object.name);if(H?.arrayType){let K=W4[H.arrayType];if(K)return K.elementType}}}return"f64"}case"CallExpression":{let X=Z;if(X.callee.type==="MemberExpression"){let Q=X.callee;if(Q.object.type==="Identifier"&&Q.object.name==="Math")return"f64"}if(X.callee.type==="Identifier"){let Q=X.callee.name;if(Q==="f32x4_extract_lane")return"f32";if(Q.startsWith("f32x4_")||Q==="v128_load")return"v128"}return"f64"}default:return"f64"}}function d(Z,$){switch(Z.type){case"Literal":{let X=Z;if(typeof X.value==="number"){let Q=c(Z,$);if(Q==="i32")return[D.i32_const,...M0(X.value|0)];else if(Q==="f32")return[D.f32_const,...$6(X.value)];else return[D.f64_const,...J1(X.value)]}return $.errors.push(`Unsupported literal type: ${typeof X.value}`),[D.f64_const,...J1(0)]}case"Identifier":{let X=Z.name,Q=x1($,X);if(Q)return[D.local_get,...x(Q.index)];return $.errors.push(`Unknown identifier: ${X}`),[D.f64_const,...J1(0)]}case"BinaryExpression":return tZ(Z,$);case"UnaryExpression":return eZ(Z,$);case"AssignmentExpression":return Z5(Z,$);case"UpdateExpression":return $5(Z,$);case"MemberExpression":return X5(Z,$);case"CallExpression":return H5(Z,$);case"SequenceExpression":{let X=Z,Q=[];for(let H=0;H<X.expressions.length;H++)if(Q.push(...d(X.expressions[H],$)),H<X.expressions.length-1)Q.push(D.drop);return Q}default:return $.errors.push(`Unsupported expression type: ${Z.type}`),[D.f64_const,...J1(0)]}}function tZ(Z,$){let X=d(Z.left,$),Q=d(Z.right,$),H=c(Z,$),K=c(Z.left,$),Y=c(Z.right,$),z=["<",">","<=",">=","==","===","!=","!=="].includes(Z.operator),W;if(K==="f64"||Y==="f64")W="f64";else if(K==="f32"||Y==="f32")W="f32";else W="i32";if(!z&&H==="f64")W="f64";let G=X,J=Q;if(W==="f64"){if(K==="i32")G=[...X,D.f64_convert_i32_s];else if(K==="f32")G=[...X,D.f64_promote_f32];if(Y==="i32")J=[...Q,D.f64_convert_i32_s];else if(Y==="f32")J=[...Q,D.f64_promote_f32]}else if(W==="f32"){if(K==="i32")G=[...X,D.f32_convert_i32_s];if(Y==="i32")J=[...Q,D.f32_convert_i32_s]}let _={"+":{i32:D.i32_add,f32:D.f32_add,f64:D.f64_add},"-":{i32:D.i32_sub,f32:D.f32_sub,f64:D.f64_sub},"*":{i32:D.i32_mul,f32:D.f32_mul,f64:D.f64_mul},"/":{i32:D.i32_div_s,f32:D.f32_div,f64:D.f64_div},"%":{i32:D.i32_rem_s},"<":{i32:D.i32_lt_s,f32:D.f32_lt,f64:D.f64_lt},">":{i32:D.i32_gt_s,f32:D.f32_gt,f64:D.f64_gt},"<=":{i32:D.i32_le_s,f32:D.f32_le,f64:D.f64_le},">=":{i32:D.i32_ge_s,f32:D.f32_ge,f64:D.f64_ge},"==":{i32:D.i32_eq,f32:D.f32_eq,f64:D.f64_eq},"===":{i32:D.i32_eq,f32:D.f32_eq,f64:D.f64_eq},"!=":{i32:D.i32_ne,f32:D.f32_ne,f64:D.f64_ne},"!==":{i32:D.i32_ne,f32:D.f32_ne,f64:D.f64_ne},"|":{i32:D.i32_or},"&":{i32:D.i32_and},"^":{i32:D.i32_xor},"<<":{i32:D.i32_shl},">>":{i32:D.i32_shr_s},">>>":{i32:D.i32_shr_u}}[Z.operator];if(!_)return $.errors.push(`Unsupported operator: ${Z.operator}`),[D.f64_const,...J1(0)];let U=_[W]??_.f64??_.i32;if(U===void 0)return $.errors.push(`Operator ${Z.operator} not supported for type ${W}`),[D.f64_const,...J1(0)];return[...G,...J,U]}function eZ(Z,$){let X=d(Z.argument,$),Q=c(Z.argument,$);switch(Z.operator){case"-":if(Q==="i32")return[D.i32_const,0,...X,D.i32_sub];else if(Q==="f32")return[...X,D.f32_neg];else return[...X,D.f64_neg];case"!":return[...X,D.i32_eqz];case"~":return[...X,D.i32_const,...M0(-1),D.i32_xor];default:return $.errors.push(`Unsupported unary operator: ${Z.operator}`),X}}function Z5(Z,$){if(Z.left.type==="MemberExpression")return Q5(Z.left,Z.right,Z.operator,$);if(Z.left.type!=="Identifier")return $.errors.push("Assignment target must be identifier or array element"),[];let X=Z.left.name,Q=x1($,X);if(!Q)return $.errors.push(`Unknown variable: ${X}`),[];let H=[];if(Z.operator==="="){H.push(...d(Z.right,$));let K=c(Z.right,$);if(Q.type==="f64"&&K==="i32")H.push(D.f64_convert_i32_s);else if(Q.type==="f64"&&K==="f32")H.push(D.f64_promote_f32);else if(Q.type==="i32"&&K==="f64")H.push(D.i32_trunc_f64_s);else if(Q.type==="i32"&&K==="f32")H.push(D.i32_trunc_f32_s);else if(Q.type==="f32"&&K==="i32")H.push(D.f32_convert_i32_s);else if(Q.type==="f32"&&K==="f64")H.push(D.f32_demote_f64)}else{let K=c(Z.right,$),Y=Q.type;if(K==="f64"||Q.type==="f64")Y="f64";else if(K==="f32"||Q.type==="f32")Y="f32";if(H.push(D.local_get,...x(Q.index)),Y==="f64"&&Q.type==="i32")H.push(D.f64_convert_i32_s);else if(Y==="f64"&&Q.type==="f32")H.push(D.f64_promote_f32);else if(Y==="f32"&&Q.type==="i32")H.push(D.f32_convert_i32_s);if(H.push(...d(Z.right,$)),Y==="f64"&&K==="i32")H.push(D.f64_convert_i32_s);else if(Y==="f64"&&K==="f32")H.push(D.f64_promote_f32);else if(Y==="f32"&&K==="i32")H.push(D.f32_convert_i32_s);let z=Z.operator.slice(0,-1),G={"+":{i32:D.i32_add,f32:D.f32_add,f64:D.f64_add},"-":{i32:D.i32_sub,f32:D.f32_sub,f64:D.f64_sub},"*":{i32:D.i32_mul,f32:D.f32_mul,f64:D.f64_mul},"/":{i32:D.i32_div_s,f32:D.f32_div,f64:D.f64_div}}[z]?.[Y];if(!G)return $.errors.push(`Unsupported compound assignment: ${Z.operator}`),[];if(H.push(G),Q.type==="i32"&&Y==="f64")H.push(D.i32_trunc_f64_s);else if(Q.type==="i32"&&Y==="f32")H.push(D.i32_trunc_f32_s);else if(Q.type==="f32"&&Y==="f64")H.push(D.f32_demote_f64)}return H.push(D.local_tee,...x(Q.index)),H}function $5(Z,$){if(Z.argument.type!=="Identifier")return $.errors.push("Update expression argument must be identifier"),[];let X=Z.argument.name,Q=x1($,X);if(!Q)return $.errors.push(`Unknown variable: ${X}`),[];let H=[],K=Q.type==="i32";if(Z.prefix){if(H.push(D.local_get,...x(Q.index)),K)H.push(D.i32_const,1),H.push(Z.operator==="++"?D.i32_add:D.i32_sub);else H.push(D.f64_const,...J1(1)),H.push(Z.operator==="++"?D.f64_add:D.f64_sub);H.push(D.local_tee,...x(Q.index))}else{if(H.push(D.local_get,...x(Q.index)),H.push(D.local_get,...x(Q.index)),K)H.push(D.i32_const,1),H.push(Z.operator==="++"?D.i32_add:D.i32_sub);else H.push(D.f64_const,...J1(1)),H.push(Z.operator==="++"?D.f64_add:D.f64_sub);H.push(D.local_set,...x(Q.index))}return H}function X5(Z,$){if(Z.object.type!=="Identifier")return $.errors.push("Array access requires identifier"),[];let X=Z.object.name,Q=$.params.find((G)=>G.name===X);if(!Q?.isArray||!Q.arrayType)return $.errors.push(`${X} is not a typed array parameter`),[];let H=W4[Q.arrayType];if(!H)return $.errors.push(`Unknown array type: ${Q.arrayType}`),[];$.needsMemory=!0;let K=[],Y=x1($,X);if(!Y)return $.errors.push(`Unknown array: ${X}`),[];if(K.push(D.local_get,...x(Y.index)),!Z.computed||!Z.property)return $.errors.push("Array access requires computed index"),[];let z=d(Z.property,$),W=c(Z.property,$);if(K.push(...z),W==="f64")K.push(D.i32_trunc_f64_s);if(H.bytesPerElement>1)K.push(D.i32_const,...M0(H.bytesPerElement)),K.push(D.i32_mul);return K.push(D.i32_add),K.push(H.loadOp,0,0),K}function Q5(Z,$,X,Q){if(Z.object.type!=="Identifier")return Q.errors.push("Array store requires identifier"),[];let H=Z.object.name,K=Q.params.find((q)=>q.name===H);if(!K?.isArray||!K.arrayType)return Q.errors.push(`${H} is not a typed array parameter`),[];let Y=W4[K.arrayType];if(!Y)return Q.errors.push(`Unknown array type: ${K.arrayType}`),[];Q.needsMemory=!0;let z=[],W=x1(Q,H);if(!W)return[];if(!Z.computed||!Z.property)return Q.errors.push("Array store requires computed index"),[];let G=d(Z.property,Q),J=c(Z.property,Q),L=()=>{let q=[];if(q.push(D.local_get,...x(W.index)),q.push(...G),J==="f64")q.push(D.i32_trunc_f64_s);if(Y.bytesPerElement>1)q.push(D.i32_const,...M0(Y.bytesPerElement)),q.push(D.i32_mul);return q.push(D.i32_add),q};if(X==="=")z.push(...d($,Q));else{let q=z4(Q,`__addr_${Q.nextLocalIndex}`,"i32");z.push(...L()),z.push(D.local_tee,...x(q)),z.push(Y.loadOp,0,0),z.push(...d($,Q));let I=c($,Q);if(Y.elementType==="f32"&&I==="f64")z.push(D.f32_demote_f64);else if(Y.elementType==="f64"&&I==="f32")z.push(D.f64_promote_f32);else if(Y.elementType==="f32"&&I==="i32")z.push(D.f32_convert_i32_s);else if(Y.elementType==="f64"&&I==="i32")z.push(D.f64_convert_i32_s);else if(Y.elementType==="i32"&&I==="f64")z.push(D.i32_trunc_f64_s);else if(Y.elementType==="i32"&&I==="f32")z.push(D.i32_trunc_f32_s);let M=X.slice(0,-1),R={"+":Y.elementType==="i32"?D.i32_add:Y.elementType==="f32"?D.f32_add:D.f64_add,"-":Y.elementType==="i32"?D.i32_sub:Y.elementType==="f32"?D.f32_sub:D.f64_sub,"*":Y.elementType==="i32"?D.i32_mul:Y.elementType==="f32"?D.f32_mul:D.f64_mul};z.push(R[M]??D.f64_add);let P=z4(Q,`__val_${Q.nextLocalIndex}`,Y.elementType);return z.push(D.local_set,...x(P)),z.push(D.local_get,...x(q)),z.push(D.local_get,...x(P)),z.push(Y.storeOp,0,0),z.push(D.local_get,...x(P)),z}let _=c($,Q);if(Y.elementType==="f32"&&_==="f64")z.push(D.f32_demote_f64);else if(Y.elementType==="f64"&&_==="f32")z.push(D.f64_promote_f32);else if(Y.elementType==="i32"&&_==="f64")z.push(D.i32_trunc_f64_s);let U=z4(Q,`__tmp_${Q.nextLocalIndex}`,Y.elementType);if(z.push(D.local_set,...x(U)),z.push(D.local_get,...x(W.index)),z.push(...G),J==="f64")z.push(D.i32_trunc_f64_s);if(Y.bytesPerElement>1)z.push(D.i32_const,...M0(Y.bytesPerElement)),z.push(D.i32_mul);return z.push(D.i32_add),z.push(D.local_get,...x(U)),z.push(Y.storeOp,0,0),z.push(D.local_get,...x(U)),z}function H5(Z,$){if(Z.callee.type==="MemberExpression"){let X=Z.callee;if(X.object.type==="Identifier"&&X.object.name==="Math"&&X.property.type==="Identifier"){let Q=X.property.name;return Y5(Q,Z.arguments,$)}}if(Z.callee.type==="Identifier"){let X=Z.callee.name;if(X.startsWith("f32x4_")||X.startsWith("v128_"))return K5(X,Z.arguments,$)}return $.errors.push(`Unsupported function call: ${Z.callee.type}`),[D.f64_const,...J1(0)]}function K5(Z,$,X){X.needsMemory=!0;let Q=[];switch(Z){case"v128_load":case"f32x4_load":{if(Q.push(...d($[0],X)),c($[0],X)==="f64")Q.push(D.i32_trunc_f64_s);Q.push(...d($[1],X));let K=c($[1],X);if(K==="f64")Q.push(D.i32_trunc_f64_s);else if(K==="f32")Q.push(D.i32_trunc_f32_s);return Q.push(D.i32_add),Q.push(...V7(e.v128_load,2,0)),Q}case"v128_store":case"f32x4_store":{if(Q.push(...d($[0],X)),c($[0],X)==="f64")Q.push(D.i32_trunc_f64_s);Q.push(...d($[1],X));let K=c($[1],X);if(K==="f64")Q.push(D.i32_trunc_f64_s);else if(K==="f32")Q.push(D.i32_trunc_f32_s);return Q.push(D.i32_add),Q.push(...d($[2],X)),Q.push(...V7(e.v128_store,2,0)),Q.push(D.i32_const,0),Q}case"f32x4_splat":{Q.push(...d($[0],X));let H=c($[0],X);if(H==="i32")Q.push(D.f32_convert_i32_s);else if(H==="f64")Q.push(D.f32_demote_f64);return Q.push(...e4(e.f32x4_splat)),Q}case"f32x4_extract_lane":{Q.push(...d($[0],X));let H=$[1].value;if(!Number.isInteger(H)||H<0||H>3)return X.errors.push(`f32x4_extract_lane: lane must be 0-3, got ${H}`),[D.f32_const,...$6(0)];return Q.push(R0,...x(e.f32x4_extract_lane),H),Q}case"f32x4_replace_lane":{Q.push(...d($[0],X));let H=$[1].value;if(!Number.isInteger(H)||H<0||H>3)return X.errors.push(`f32x4_replace_lane: lane must be 0-3, got ${H}`),[D.f32_const,...$6(0)];Q.push(...d($[2],X));let K=c($[2],X);if(K==="i32")Q.push(D.f32_convert_i32_s);else if(K==="f64")Q.push(D.f32_demote_f64);return Q.push(R0,...x(e.f32x4_replace_lane),H),Q}case"f32x4_add":case"f32x4_sub":case"f32x4_mul":case"f32x4_div":{Q.push(...d($[0],X)),Q.push(...d($[1],X));let H={f32x4_add:e.f32x4_add,f32x4_sub:e.f32x4_sub,f32x4_mul:e.f32x4_mul,f32x4_div:e.f32x4_div};return Q.push(...e4(H[Z])),Q}case"f32x4_neg":case"f32x4_sqrt":{Q.push(...d($[0],X));let H={f32x4_neg:e.f32x4_neg,f32x4_sqrt:e.f32x4_sqrt};return Q.push(...e4(H[Z])),Q}default:return X.errors.push(`Unknown SIMD intrinsic: ${Z}`),[D.f64_const,...J1(0)]}}function Y5(Z,$,X){let Q=[];for(let z of $){Q.push(...d(z,X));let W=c(z,X);if(W==="i32")Q.push(D.f64_convert_i32_s);else if(W==="f32")Q.push(D.f64_promote_f32)}let K={abs:D.f64_abs,ceil:D.f64_ceil,floor:D.f64_floor,trunc:D.f64_trunc,sqrt:D.f64_sqrt,min:D.f64_min,max:D.f64_max}[Z];if(K!==void 0)return Q.push(K),Q;if(["sin","cos","tan","asin","acos","atan","atan2","exp","log","pow"].includes(Z))return X.needsMathImports.add(Z),X.errors.push(`Math.${Z} requires JS import (not yet implemented)`),[D.f64_const,...J1(0)];return X.errors.push(`Unknown Math method: ${Z}`),[D.f64_const,...J1(0)]}function O7(Z){let $=Z.split(":").map((K)=>K.trim()),X=$[0];if($.length===1)return{name:X,type:"f64"};let Q=$[1];if(W4[Q])return{name:X,type:"i32",isArray:!0,arrayType:Q};return{name:X,type:{i32:"i32",i64:"i64",f32:"f32",f64:"f64",number:"f64",int:"i32"}[Q]??"f64"}}function z5(Z,$,X,Q,H){let K=[0,97,115,109,1,0,0,0],Y=Z.map((P)=>I1[P.type]),z=H?[1,I1.f64]:[0],W=B0(I0.type,[1,96,...x(Z.length),...Y,...z]),G=[],J=[];if(Q)J=B0(I0.import,[1,...Z6("env"),...Z6("memory"),2,0,1]);let L=B0(I0.function,[1,0]),_=B0(I0.export,[1,...Z6("compute"),0,0]),U=[];if(X.length>0){let P=X[0],B=1;for(let F=1;F<X.length;F++)if(X[F]===P)B++;else U.push([...x(B),I1[P]]),P=X[F],B=1;U.push([...x(B),I1[P]])}let I=[...[...x(U.length),...U.flat()],...$,D.end],M=B0(I0.code,[1,...x(I.length),...I]),R=[...K,...W];if(J.length>0)R.push(...J);return R.push(...L,..._,...M),R}function G4(Z){try{let $=Z.captures.map(O7),X;try{let G=`function __wasm__(${$.map((J)=>J.name).join(", ")}) { ${Z.body} }`;X=C7.parse(G,{ecmaVersion:2022})}catch(G){return{bytes:new Uint8Array,warnings:[],success:!1,error:`Parse error: ${G.message}`}}let H=X.body[0].body.body,K=sZ($),Y=[];for(let G of H)Y.push(...s1(G,K));if(K.errors.length>0)return{bytes:new Uint8Array,warnings:K.warnings,success:!1,error:K.errors.join("; ")};let z=z5($,Y,K.localTypes,K.needsMemory,K.hasReturn),W=oZ(Y,$,K.localTypes);return{bytes:new Uint8Array(z),warnings:K.warnings,success:!0,needsMemory:K.needsMemory,wat:W}}catch($){return{bytes:new Uint8Array,warnings:[],success:!1,error:$.message}}}async function N7(Z,$){let X={};if($)X.env={memory:$};let Q=await WebAssembly.compile(Z);return WebAssembly.instantiate(Q,X)}async function W5(Z){let $=G4(Z);if(!$.success)return{fn:()=>0,success:!1,error:$.error};try{let X;if($.needsMemory)X=new WebAssembly.Memory({initial:256});let H=(await N7($.bytes,X)).exports.compute,K=Z.captures.map(O7);if(!K.some((W)=>W.isArray))return{fn:H,memory:X,success:!0};return{fn:(...W)=>{if(!X)throw Error("Memory not initialized");let G=new Uint8Array(X.buffer),J=0,L=[];for(let U=0;U<K.length;U++){let q=K[U],I=W[U];if(q.isArray&&I instanceof Object&&"buffer"in I){let M=I,R=new Uint8Array(M.buffer,M.byteOffset,M.byteLength);G.set(R,J),L.push(J),J+=R.length,J=J+15&-16}else L.push(I)}let _=H(...L);J=0;for(let U=0;U<K.length;U++){let q=K[U],I=W[U];if(q.isArray&&I instanceof Object&&"buffer"in I){let M=I,R=new Uint8Array(M.buffer,M.byteOffset,M.byteLength);R.set(G.slice(J,J+R.length)),J+=R.length,J=J+15&-16}}return _},memory:X,success:!0}}catch(X){return{fn:()=>0,success:!1,error:X.message}}}async function E7(Z){let $=await W5(Z);if(!$.success)return console.warn(`WASM compilation failed for ${Z.id}:`,$.error),!1;return globalThis[Z.id]=$.fn,!0}async function G5(Z){let $=0,X=0,Q=[];for(let H of Z)if(await E7(H))$++;else X++,Q.push(`Failed to compile ${H.id}`);return{compiled:$,failed:X,errors:Q}}function T7(Z){let $=[],X=[];for(let z of Z){let W=G4(z);if(W.success){let G=btoa(String.fromCharCode(...W.bytes));X.push({id:z.id,base64:G,captures:z.captures,needsMemory:W.needsMemory??!1,wat:W.wat??""}),$.push({id:z.id,success:!0,byteLength:W.bytes.length})}else $.push({id:z.id,success:!1,error:W.error})}if(X.length===0)return{code:"",results:$};let Q=X.map((z)=>{let W=z.wat.split(`
294
+ `;try{let B=Function("__deepEqual","__format","__typeMatches",F),{testResults:w,sigTestResults:O}=B(a4,A0,r4);for(let V of w){let C=Z[V.idx],S=W&&!V.passed&&V.error&&/is not defined$/.test(V.error);Y.push({description:C.description,passed:S?!0:V.passed,error:S?void 0:V.error,line:C.line})}for(let V of O){let C=U[V.idx],S=W&&!V.passed&&V.error&&/is not defined$/.test(V.error);Y.push({description:`${C.funcName} signature example`,passed:S?!0:V.passed,error:S?void 0:V.error,isSignatureTest:!0,line:C.line})}}catch(B){let w=W&&B instanceof ReferenceError;for(let O of Z)Y.push({description:O.description,passed:w,error:w?void 0:`Module execution failed: ${B.message}`,line:O.line});for(let O of U)Y.push({description:`${O.funcName} signature example`,passed:w,error:w?void 0:`Module execution failed: ${B.message}`,isSignatureTest:!0,line:O.line})}for(let B of q)Y.push({description:`${B.funcName} signature example`,passed:!0,isSignatureTest:!0,line:B.line});return Y}function t4(Z){let $="",X=0,Q=!1;for(let K=0;K<Z.length;K++){let Y=Z[K];if(Y==="{"||Y==="["||Y==="("){if(Y==="{"&&X===0&&Q)break;X++,$+=Y,Q=!0}else if(Y==="}"||Y==="]"||Y===")")X--,$+=Y;else if(!/\s/.test(Y))$+=Y,Q=!0;else $+=Y}return $.trim()||null}function mZ(Z){if(!Z.trim())return[];let $=[],X=iZ(Z);for(let Q of X){let H=Q.trim(),K=H.match(/^\.\.\.(\w+)\s*[:=]\s*(\[.+\])$/);if(K){try{let z=Function(`return ${K[2]}`)();if(Array.isArray(z))for(let W of z)$.push(JSON.stringify(W))}catch{}continue}if(H.startsWith("..."))continue;let Y=H.match(/(?:\(\s*[?!]\s*)?(\w+)\s*[:=]\s*(.+?)(?:\))?$/);if(Y)$.push(Y[2].trim());else return[]}return $}function iZ(Z){let $=[],X="",Q=0;for(let H of Z){if(H==="("||H==="["||H==="{")Q++;else if(H===")"||H==="]"||H==="}")Q--;else if(H===","&&Q===0){$.push(X.trim()),X="";continue}X+=H}if(X.trim())$.push(X.trim());return $}import*as C7 from"acorn";var B1={i32:127,i64:126,f32:125,f64:124,v128:123,funcref:112,externref:111,void:64},I0={custom:0,type:1,import:2,function:3,table:4,memory:5,global:6,export:7,start:8,element:9,code:10,data:11},D={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},pZ=Object.fromEntries(Object.entries(D).map(([Z,$])=>[$,Z.replace(/_/g,".")])),R0=253,$1={v128_load:0,v128_store:11,v128_const:12,f32x4_splat:19,f32x4_extract_lane:31,f32x4_replace_lane:32,f32x4_neg:225,f32x4_sqrt:227,f32x4_add:228,f32x4_sub:229,f32x4_mul:230,f32x4_div:231},nZ=Object.fromEntries(Object.entries($1).map(([Z,$])=>[$,Z.replace(/_/g,".")]));function e4(Z){return[R0,...u(Z)]}function V7(Z,$,X){return[R0,...u(Z),...u($),...u(X)]}function u(Z){let $=[];do{let X=Z&127;if(Z>>>=7,Z!==0)X|=128;$.push(X)}while(Z!==0);return $}function M0(Z){let $=[],X=!0;while(X){let Q=Z&127;if(Z>>=7,Z===0&&(Q&64)===0||Z===-1&&(Q&64)!==0)X=!1;else Q|=128;$.push(Q)}return $}function $6(Z){let $=new ArrayBuffer(4);return new Float32Array($)[0]=Z,[...new Uint8Array($)]}function L1(Z){let $=new ArrayBuffer(8);return new Float64Array($)[0]=Z,[...new Uint8Array($)]}function Z6(Z){let $=new TextEncoder().encode(Z);return[...u($.length),...$]}function B0(Z,$){return[Z,...u($.length),...$]}function E1(Z,$){let X=0,Q=0,H=$;while(H<Z.length){let K=Z[H];if(X|=(K&127)<<Q,H++,(K&128)===0)break;Q+=7}return[X,H-$]}function cZ(Z,$){let X=new ArrayBuffer(8),Q=new Uint8Array(X);for(let H=0;H<8;H++)Q[H]=Z[$+H];return new Float64Array(X)[0]}function oZ(Z,$,X){let Q=[],H=1,K=()=>" ".repeat(H),Y=$.map((G,J)=>`(param $${G.name} ${G.type})`).join(" "),z=X.map((G,J)=>`(local $L${$.length+J} ${G})`).join(" ");if(Q.push(`(func (export "compute") ${Y} (result f64)`),z)Q.push(` ${z}`);let W=0;while(W<Z.length){let G=Z[W],J=pZ[G]||`unknown(0x${G.toString(16)})`;if(W++,G===D.local_get||G===D.local_set||G===D.local_tee){let[L,_]=E1(Z,W);W+=_;let U=L<$.length?`$${$[L].name}`:`$L${L}`;Q.push(`${K()}${J} ${U}`)}else if(G===D.br||G===D.br_if){let[L,_]=E1(Z,W);W+=_,Q.push(`${K()}${J} ${L}`)}else if(G===D.i32_const){let[L,_]=E1(Z,W);W+=_,Q.push(`${K()}i32.const ${L}`)}else if(G===D.f32_const){let L=new ArrayBuffer(4),_=new Uint8Array(L);for(let q=0;q<4;q++)_[q]=Z[W+q];let U=new Float32Array(L)[0];W+=4,Q.push(`${K()}f32.const ${U}`)}else if(G===D.f64_const){let L=cZ(Z,W);W+=8,Q.push(`${K()}f64.const ${L}`)}else if(G===D.block||G===D.loop){let L=Z[W];W++,Q.push(`${K()}${J}${L===B1.void?"":` (result ${L===B1.f64?"f64":"i32"})`}`),H++}else if(G===D.if){let L=Z[W];W++,Q.push(`${K()}if${L===B1.void?"":` (result ${L===B1.f64?"f64":"i32"})`}`),H++}else if(G===D.else)H--,Q.push(`${K()}else`),H++;else if(G===D.end)H=Math.max(1,H-1),Q.push(`${K()}end`);else if(G===D.f64_load||G===D.f64_store||G===D.f32_load||G===D.f32_store||G===D.i32_load||G===D.i32_store){let[L,_]=E1(Z,W);W+=_;let[U,q]=E1(Z,W);W+=q,Q.push(`${K()}${J}${U?` offset=${U}`:""}`)}else if(G===R0){let[L,_]=E1(Z,W);W+=_;let U=nZ[L]||`simd.unknown(0x${L.toString(16)})`;if(L===$1.v128_load||L===$1.v128_store){let[q,A]=E1(Z,W);W+=A;let[M,R]=E1(Z,W);W+=R,Q.push(`${K()}${U}${M?` offset=${M}`:""}`)}else if(L===$1.v128_const){let q=Z.slice(W,W+16);W+=16,Q.push(`${K()}v128.const ${q.map((A)=>"0x"+A.toString(16).padStart(2,"0")).join(" ")}`)}else if(L===$1.f32x4_extract_lane||L===$1.f32x4_replace_lane){let q=Z[W];W++,Q.push(`${K()}${U} ${q}`)}else Q.push(`${K()}${U}`)}else Q.push(`${K()}${J}`)}return Q.push(")"),Q.join(`
295
+ `)}var W4={Int8Array:{elementType:"i32",bytesPerElement:1,loadOp:D.i32_load8_s,storeOp:D.i32_store8},Uint8Array:{elementType:"i32",bytesPerElement:1,loadOp:D.i32_load8_u,storeOp:D.i32_store8},Uint8ClampedArray:{elementType:"i32",bytesPerElement:1,loadOp:D.i32_load8_u,storeOp:D.i32_store8},Int16Array:{elementType:"i32",bytesPerElement:2,loadOp:D.i32_load16_s,storeOp:D.i32_store16},Uint16Array:{elementType:"i32",bytesPerElement:2,loadOp:D.i32_load16_u,storeOp:D.i32_store16},Int32Array:{elementType:"i32",bytesPerElement:4,loadOp:D.i32_load,storeOp:D.i32_store},Uint32Array:{elementType:"i32",bytesPerElement:4,loadOp:D.i32_load,storeOp:D.i32_store},Float32Array:{elementType:"f32",bytesPerElement:4,loadOp:D.f32_load,storeOp:D.f32_store},Float64Array:{elementType:"f64",bytesPerElement:8,loadOp:D.f64_load,storeOp:D.f64_store}};function sZ(Z){let $={params:Z,locals:new Map,nextLocalIndex:Z.length,localTypes:[],warnings:[],errors:[],loopDepth:0,needsMathImports:new Set,needsMemory:!1,hasReturn:!1,wat:[],watIndent:1};return Z.forEach((X,Q)=>{$.locals.set(X.name,{index:Q,type:X.type})}),$}function z4(Z,$,X){if(Z.locals.has($))return Z.errors.push(`Duplicate local declaration: ${$}`),Z.locals.get($).index;let Q=Z.nextLocalIndex++;return Z.locals.set($,{index:Q,type:X}),Z.localTypes.push(X),Q}function u1(Z,$){return Z.locals.get($)}function a1(Z,$){switch(Z.type){case"ExpressionStatement":{let X=Z.expression;return[...d(X,$),D.drop]}case"ReturnStatement":{let X=Z;if($.hasReturn=!0,!X.argument)return[D.return];let Q=d(X.argument,$),H=s(X.argument,$);if(H==="i32")Q.push(D.f64_convert_i32_s);else if(H==="f32")Q.push(D.f64_promote_f32);return Q.push(D.return),Q}case"VariableDeclaration":{let X=Z,Q=[];for(let H of X.declarations){if(H.id.type!=="Identifier"){$.errors.push("Destructuring not supported in WASM blocks");continue}let K=H.id.name,Y="f64";if(H.init)Y=s(H.init,$);let z=z4($,K,Y);if(H.init)Q.push(...d(H.init,$)),Q.push(D.local_set,...u(z))}return Q}case"ForStatement":return aZ(Z,$);case"IfStatement":return rZ(Z,$);case"BlockStatement":{let X=Z,Q=[];for(let H of X.body)Q.push(...a1(H,$));return Q}default:return $.errors.push(`Unsupported statement type: ${Z.type}`),[]}}function aZ(Z,$){let X=[];if(Z.init)if(Z.init.type==="VariableDeclaration")X.push(...a1(Z.init,$));else X.push(...d(Z.init,$));if(X.push(D.block,B1.void),X.push(D.loop,B1.void),Z.test)X.push(...d(Z.test,$)),X.push(D.i32_eqz),X.push(D.br_if,1);if($.loopDepth++,Z.body)X.push(...a1(Z.body,$));if($.loopDepth--,Z.update)X.push(...d(Z.update,$)),X.push(D.drop);return X.push(D.br,0),X.push(D.end),X.push(D.end),X}function rZ(Z,$){let X=[];if(X.push(...d(Z.test,$)),X.push(D.if,B1.void),X.push(...a1(Z.consequent,$)),Z.alternate)X.push(D.else),X.push(...a1(Z.alternate,$));return X.push(D.end),X}function s(Z,$){switch(Z.type){case"Literal":{let X=Z;if(typeof X.value==="number"){if(X.raw&&(X.raw.includes(".")||X.raw.includes("e")))return"f64";if(Number.isInteger(X.value)&&X.value>=-2147483648&&X.value<=2147483647)return"i32";return"f64"}return"f64"}case"Identifier":return u1($,Z.name)?.type??"f64";case"BinaryExpression":case"AssignmentExpression":{let X=Z;if(["<",">","<=",">=","==","!=","===","!=="].includes(X.operator))return"i32";if(["|","&","^","<<",">>",">>>"].includes(X.operator))return"i32";let Q=s(X.left,$),H=s(X.right,$);if(Q==="v128"||H==="v128")return"v128";if(Q==="f64"||H==="f64")return"f64";if(Q==="f32"||H==="f32")return"f32";return"i32"}case"UnaryExpression":{let X=Z;if(X.operator==="!")return"i32";return s(X.argument,$)}case"MemberExpression":{let X=Z;if(X.object.type==="Identifier"){if(u1($,X.object.name)){let H=$.params.find((K)=>K.name===X.object.name);if(H?.arrayType){let K=W4[H.arrayType];if(K)return K.elementType}}}return"f64"}case"CallExpression":{let X=Z;if(X.callee.type==="MemberExpression"){let Q=X.callee;if(Q.object.type==="Identifier"&&Q.object.name==="Math")return"f64"}if(X.callee.type==="Identifier"){let Q=X.callee.name;if(Q==="f32x4_extract_lane")return"f32";if(Q.startsWith("f32x4_")||Q==="v128_load")return"v128"}return"f64"}default:return"f64"}}function d(Z,$){switch(Z.type){case"Literal":{let X=Z;if(typeof X.value==="number"){let Q=s(Z,$);if(Q==="i32")return[D.i32_const,...M0(X.value|0)];else if(Q==="f32")return[D.f32_const,...$6(X.value)];else return[D.f64_const,...L1(X.value)]}return $.errors.push(`Unsupported literal type: ${typeof X.value}`),[D.f64_const,...L1(0)]}case"Identifier":{let X=Z.name,Q=u1($,X);if(Q)return[D.local_get,...u(Q.index)];return $.errors.push(`Unknown identifier: ${X}`),[D.f64_const,...L1(0)]}case"BinaryExpression":return tZ(Z,$);case"UnaryExpression":return eZ(Z,$);case"AssignmentExpression":return Z5(Z,$);case"UpdateExpression":return $5(Z,$);case"MemberExpression":return X5(Z,$);case"CallExpression":return H5(Z,$);case"SequenceExpression":{let X=Z,Q=[];for(let H=0;H<X.expressions.length;H++)if(Q.push(...d(X.expressions[H],$)),H<X.expressions.length-1)Q.push(D.drop);return Q}default:return $.errors.push(`Unsupported expression type: ${Z.type}`),[D.f64_const,...L1(0)]}}function tZ(Z,$){let X=d(Z.left,$),Q=d(Z.right,$),H=s(Z,$),K=s(Z.left,$),Y=s(Z.right,$),z=["<",">","<=",">=","==","===","!=","!=="].includes(Z.operator),W;if(K==="f64"||Y==="f64")W="f64";else if(K==="f32"||Y==="f32")W="f32";else W="i32";if(!z&&H==="f64")W="f64";let G=X,J=Q;if(W==="f64"){if(K==="i32")G=[...X,D.f64_convert_i32_s];else if(K==="f32")G=[...X,D.f64_promote_f32];if(Y==="i32")J=[...Q,D.f64_convert_i32_s];else if(Y==="f32")J=[...Q,D.f64_promote_f32]}else if(W==="f32"){if(K==="i32")G=[...X,D.f32_convert_i32_s];if(Y==="i32")J=[...Q,D.f32_convert_i32_s]}let _={"+":{i32:D.i32_add,f32:D.f32_add,f64:D.f64_add},"-":{i32:D.i32_sub,f32:D.f32_sub,f64:D.f64_sub},"*":{i32:D.i32_mul,f32:D.f32_mul,f64:D.f64_mul},"/":{i32:D.i32_div_s,f32:D.f32_div,f64:D.f64_div},"%":{i32:D.i32_rem_s},"<":{i32:D.i32_lt_s,f32:D.f32_lt,f64:D.f64_lt},">":{i32:D.i32_gt_s,f32:D.f32_gt,f64:D.f64_gt},"<=":{i32:D.i32_le_s,f32:D.f32_le,f64:D.f64_le},">=":{i32:D.i32_ge_s,f32:D.f32_ge,f64:D.f64_ge},"==":{i32:D.i32_eq,f32:D.f32_eq,f64:D.f64_eq},"===":{i32:D.i32_eq,f32:D.f32_eq,f64:D.f64_eq},"!=":{i32:D.i32_ne,f32:D.f32_ne,f64:D.f64_ne},"!==":{i32:D.i32_ne,f32:D.f32_ne,f64:D.f64_ne},"|":{i32:D.i32_or},"&":{i32:D.i32_and},"^":{i32:D.i32_xor},"<<":{i32:D.i32_shl},">>":{i32:D.i32_shr_s},">>>":{i32:D.i32_shr_u}}[Z.operator];if(!_)return $.errors.push(`Unsupported operator: ${Z.operator}`),[D.f64_const,...L1(0)];let U=_[W]??_.f64??_.i32;if(U===void 0)return $.errors.push(`Operator ${Z.operator} not supported for type ${W}`),[D.f64_const,...L1(0)];return[...G,...J,U]}function eZ(Z,$){let X=d(Z.argument,$),Q=s(Z.argument,$);switch(Z.operator){case"-":if(Q==="i32")return[D.i32_const,0,...X,D.i32_sub];else if(Q==="f32")return[...X,D.f32_neg];else return[...X,D.f64_neg];case"!":return[...X,D.i32_eqz];case"~":return[...X,D.i32_const,...M0(-1),D.i32_xor];default:return $.errors.push(`Unsupported unary operator: ${Z.operator}`),X}}function Z5(Z,$){if(Z.left.type==="MemberExpression")return Q5(Z.left,Z.right,Z.operator,$);if(Z.left.type!=="Identifier")return $.errors.push("Assignment target must be identifier or array element"),[];let X=Z.left.name,Q=u1($,X);if(!Q)return $.errors.push(`Unknown variable: ${X}`),[];let H=[];if(Z.operator==="="){H.push(...d(Z.right,$));let K=s(Z.right,$);if(Q.type==="f64"&&K==="i32")H.push(D.f64_convert_i32_s);else if(Q.type==="f64"&&K==="f32")H.push(D.f64_promote_f32);else if(Q.type==="i32"&&K==="f64")H.push(D.i32_trunc_f64_s);else if(Q.type==="i32"&&K==="f32")H.push(D.i32_trunc_f32_s);else if(Q.type==="f32"&&K==="i32")H.push(D.f32_convert_i32_s);else if(Q.type==="f32"&&K==="f64")H.push(D.f32_demote_f64)}else{let K=s(Z.right,$),Y=Q.type;if(K==="f64"||Q.type==="f64")Y="f64";else if(K==="f32"||Q.type==="f32")Y="f32";if(H.push(D.local_get,...u(Q.index)),Y==="f64"&&Q.type==="i32")H.push(D.f64_convert_i32_s);else if(Y==="f64"&&Q.type==="f32")H.push(D.f64_promote_f32);else if(Y==="f32"&&Q.type==="i32")H.push(D.f32_convert_i32_s);if(H.push(...d(Z.right,$)),Y==="f64"&&K==="i32")H.push(D.f64_convert_i32_s);else if(Y==="f64"&&K==="f32")H.push(D.f64_promote_f32);else if(Y==="f32"&&K==="i32")H.push(D.f32_convert_i32_s);let z=Z.operator.slice(0,-1),G={"+":{i32:D.i32_add,f32:D.f32_add,f64:D.f64_add},"-":{i32:D.i32_sub,f32:D.f32_sub,f64:D.f64_sub},"*":{i32:D.i32_mul,f32:D.f32_mul,f64:D.f64_mul},"/":{i32:D.i32_div_s,f32:D.f32_div,f64:D.f64_div}}[z]?.[Y];if(!G)return $.errors.push(`Unsupported compound assignment: ${Z.operator}`),[];if(H.push(G),Q.type==="i32"&&Y==="f64")H.push(D.i32_trunc_f64_s);else if(Q.type==="i32"&&Y==="f32")H.push(D.i32_trunc_f32_s);else if(Q.type==="f32"&&Y==="f64")H.push(D.f32_demote_f64)}return H.push(D.local_tee,...u(Q.index)),H}function $5(Z,$){if(Z.argument.type!=="Identifier")return $.errors.push("Update expression argument must be identifier"),[];let X=Z.argument.name,Q=u1($,X);if(!Q)return $.errors.push(`Unknown variable: ${X}`),[];let H=[],K=Q.type==="i32";if(Z.prefix){if(H.push(D.local_get,...u(Q.index)),K)H.push(D.i32_const,1),H.push(Z.operator==="++"?D.i32_add:D.i32_sub);else H.push(D.f64_const,...L1(1)),H.push(Z.operator==="++"?D.f64_add:D.f64_sub);H.push(D.local_tee,...u(Q.index))}else{if(H.push(D.local_get,...u(Q.index)),H.push(D.local_get,...u(Q.index)),K)H.push(D.i32_const,1),H.push(Z.operator==="++"?D.i32_add:D.i32_sub);else H.push(D.f64_const,...L1(1)),H.push(Z.operator==="++"?D.f64_add:D.f64_sub);H.push(D.local_set,...u(Q.index))}return H}function X5(Z,$){if(Z.object.type!=="Identifier")return $.errors.push("Array access requires identifier"),[];let X=Z.object.name,Q=$.params.find((G)=>G.name===X);if(!Q?.isArray||!Q.arrayType)return $.errors.push(`${X} is not a typed array parameter`),[];let H=W4[Q.arrayType];if(!H)return $.errors.push(`Unknown array type: ${Q.arrayType}`),[];$.needsMemory=!0;let K=[],Y=u1($,X);if(!Y)return $.errors.push(`Unknown array: ${X}`),[];if(K.push(D.local_get,...u(Y.index)),!Z.computed||!Z.property)return $.errors.push("Array access requires computed index"),[];let z=d(Z.property,$),W=s(Z.property,$);if(K.push(...z),W==="f64")K.push(D.i32_trunc_f64_s);if(H.bytesPerElement>1)K.push(D.i32_const,...M0(H.bytesPerElement)),K.push(D.i32_mul);return K.push(D.i32_add),K.push(H.loadOp,0,0),K}function Q5(Z,$,X,Q){if(Z.object.type!=="Identifier")return Q.errors.push("Array store requires identifier"),[];let H=Z.object.name,K=Q.params.find((q)=>q.name===H);if(!K?.isArray||!K.arrayType)return Q.errors.push(`${H} is not a typed array parameter`),[];let Y=W4[K.arrayType];if(!Y)return Q.errors.push(`Unknown array type: ${K.arrayType}`),[];Q.needsMemory=!0;let z=[],W=u1(Q,H);if(!W)return[];if(!Z.computed||!Z.property)return Q.errors.push("Array store requires computed index"),[];let G=d(Z.property,Q),J=s(Z.property,Q),L=()=>{let q=[];if(q.push(D.local_get,...u(W.index)),q.push(...G),J==="f64")q.push(D.i32_trunc_f64_s);if(Y.bytesPerElement>1)q.push(D.i32_const,...M0(Y.bytesPerElement)),q.push(D.i32_mul);return q.push(D.i32_add),q};if(X==="=")z.push(...d($,Q));else{let q=z4(Q,`__addr_${Q.nextLocalIndex}`,"i32");z.push(...L()),z.push(D.local_tee,...u(q)),z.push(Y.loadOp,0,0),z.push(...d($,Q));let A=s($,Q);if(Y.elementType==="f32"&&A==="f64")z.push(D.f32_demote_f64);else if(Y.elementType==="f64"&&A==="f32")z.push(D.f64_promote_f32);else if(Y.elementType==="f32"&&A==="i32")z.push(D.f32_convert_i32_s);else if(Y.elementType==="f64"&&A==="i32")z.push(D.f64_convert_i32_s);else if(Y.elementType==="i32"&&A==="f64")z.push(D.i32_trunc_f64_s);else if(Y.elementType==="i32"&&A==="f32")z.push(D.i32_trunc_f32_s);let M=X.slice(0,-1),R={"+":Y.elementType==="i32"?D.i32_add:Y.elementType==="f32"?D.f32_add:D.f64_add,"-":Y.elementType==="i32"?D.i32_sub:Y.elementType==="f32"?D.f32_sub:D.f64_sub,"*":Y.elementType==="i32"?D.i32_mul:Y.elementType==="f32"?D.f32_mul:D.f64_mul};z.push(R[M]??D.f64_add);let F=z4(Q,`__val_${Q.nextLocalIndex}`,Y.elementType);return z.push(D.local_set,...u(F)),z.push(D.local_get,...u(q)),z.push(D.local_get,...u(F)),z.push(Y.storeOp,0,0),z.push(D.local_get,...u(F)),z}let _=s($,Q);if(Y.elementType==="f32"&&_==="f64")z.push(D.f32_demote_f64);else if(Y.elementType==="f64"&&_==="f32")z.push(D.f64_promote_f32);else if(Y.elementType==="i32"&&_==="f64")z.push(D.i32_trunc_f64_s);let U=z4(Q,`__tmp_${Q.nextLocalIndex}`,Y.elementType);if(z.push(D.local_set,...u(U)),z.push(D.local_get,...u(W.index)),z.push(...G),J==="f64")z.push(D.i32_trunc_f64_s);if(Y.bytesPerElement>1)z.push(D.i32_const,...M0(Y.bytesPerElement)),z.push(D.i32_mul);return z.push(D.i32_add),z.push(D.local_get,...u(U)),z.push(Y.storeOp,0,0),z.push(D.local_get,...u(U)),z}function H5(Z,$){if(Z.callee.type==="MemberExpression"){let X=Z.callee;if(X.object.type==="Identifier"&&X.object.name==="Math"&&X.property.type==="Identifier"){let Q=X.property.name;return Y5(Q,Z.arguments,$)}}if(Z.callee.type==="Identifier"){let X=Z.callee.name;if(X.startsWith("f32x4_")||X.startsWith("v128_"))return K5(X,Z.arguments,$)}return $.errors.push(`Unsupported function call: ${Z.callee.type}`),[D.f64_const,...L1(0)]}function K5(Z,$,X){X.needsMemory=!0;let Q=[];switch(Z){case"v128_load":case"f32x4_load":{if(Q.push(...d($[0],X)),s($[0],X)==="f64")Q.push(D.i32_trunc_f64_s);Q.push(...d($[1],X));let K=s($[1],X);if(K==="f64")Q.push(D.i32_trunc_f64_s);else if(K==="f32")Q.push(D.i32_trunc_f32_s);return Q.push(D.i32_add),Q.push(...V7($1.v128_load,2,0)),Q}case"v128_store":case"f32x4_store":{if(Q.push(...d($[0],X)),s($[0],X)==="f64")Q.push(D.i32_trunc_f64_s);Q.push(...d($[1],X));let K=s($[1],X);if(K==="f64")Q.push(D.i32_trunc_f64_s);else if(K==="f32")Q.push(D.i32_trunc_f32_s);return Q.push(D.i32_add),Q.push(...d($[2],X)),Q.push(...V7($1.v128_store,2,0)),Q.push(D.i32_const,0),Q}case"f32x4_splat":{Q.push(...d($[0],X));let H=s($[0],X);if(H==="i32")Q.push(D.f32_convert_i32_s);else if(H==="f64")Q.push(D.f32_demote_f64);return Q.push(...e4($1.f32x4_splat)),Q}case"f32x4_extract_lane":{Q.push(...d($[0],X));let H=$[1].value;if(!Number.isInteger(H)||H<0||H>3)return X.errors.push(`f32x4_extract_lane: lane must be 0-3, got ${H}`),[D.f32_const,...$6(0)];return Q.push(R0,...u($1.f32x4_extract_lane),H),Q}case"f32x4_replace_lane":{Q.push(...d($[0],X));let H=$[1].value;if(!Number.isInteger(H)||H<0||H>3)return X.errors.push(`f32x4_replace_lane: lane must be 0-3, got ${H}`),[D.f32_const,...$6(0)];Q.push(...d($[2],X));let K=s($[2],X);if(K==="i32")Q.push(D.f32_convert_i32_s);else if(K==="f64")Q.push(D.f32_demote_f64);return Q.push(R0,...u($1.f32x4_replace_lane),H),Q}case"f32x4_add":case"f32x4_sub":case"f32x4_mul":case"f32x4_div":{Q.push(...d($[0],X)),Q.push(...d($[1],X));let H={f32x4_add:$1.f32x4_add,f32x4_sub:$1.f32x4_sub,f32x4_mul:$1.f32x4_mul,f32x4_div:$1.f32x4_div};return Q.push(...e4(H[Z])),Q}case"f32x4_neg":case"f32x4_sqrt":{Q.push(...d($[0],X));let H={f32x4_neg:$1.f32x4_neg,f32x4_sqrt:$1.f32x4_sqrt};return Q.push(...e4(H[Z])),Q}default:return X.errors.push(`Unknown SIMD intrinsic: ${Z}`),[D.f64_const,...L1(0)]}}function Y5(Z,$,X){let Q=[];for(let z of $){Q.push(...d(z,X));let W=s(z,X);if(W==="i32")Q.push(D.f64_convert_i32_s);else if(W==="f32")Q.push(D.f64_promote_f32)}let K={abs:D.f64_abs,ceil:D.f64_ceil,floor:D.f64_floor,trunc:D.f64_trunc,sqrt:D.f64_sqrt,min:D.f64_min,max:D.f64_max}[Z];if(K!==void 0)return Q.push(K),Q;if(["sin","cos","tan","asin","acos","atan","atan2","exp","log","pow"].includes(Z))return X.needsMathImports.add(Z),X.errors.push(`Math.${Z} requires JS import (not yet implemented)`),[D.f64_const,...L1(0)];return X.errors.push(`Unknown Math method: ${Z}`),[D.f64_const,...L1(0)]}function O7(Z){let $=Z.split(":").map((K)=>K.trim()),X=$[0];if($.length===1)return{name:X,type:"f64"};let Q=$[1];if(W4[Q])return{name:X,type:"i32",isArray:!0,arrayType:Q};return{name:X,type:{i32:"i32",i64:"i64",f32:"f32",f64:"f64",number:"f64",int:"i32"}[Q]??"f64"}}function z5(Z,$,X,Q,H){let K=[0,97,115,109,1,0,0,0],Y=Z.map((F)=>B1[F.type]),z=H?[1,B1.f64]:[0],W=B0(I0.type,[1,96,...u(Z.length),...Y,...z]),G=[],J=[];if(Q)J=B0(I0.import,[1,...Z6("env"),...Z6("memory"),2,0,1]);let L=B0(I0.function,[1,0]),_=B0(I0.export,[1,...Z6("compute"),0,0]),U=[];if(X.length>0){let F=X[0],B=1;for(let w=1;w<X.length;w++)if(X[w]===F)B++;else U.push([...u(B),B1[F]]),F=X[w],B=1;U.push([...u(B),B1[F]])}let A=[...[...u(U.length),...U.flat()],...$,D.end],M=B0(I0.code,[1,...u(A.length),...A]),R=[...K,...W];if(J.length>0)R.push(...J);return R.push(...L,..._,...M),R}function G4(Z){try{let $=Z.captures.map(O7),X;try{let G=`function __wasm__(${$.map((J)=>J.name).join(", ")}) { ${Z.body} }`;X=C7.parse(G,{ecmaVersion:2022})}catch(G){return{bytes:new Uint8Array,warnings:[],success:!1,error:`Parse error: ${G.message}`}}let H=X.body[0].body.body,K=sZ($),Y=[];for(let G of H)Y.push(...a1(G,K));if(K.errors.length>0)return{bytes:new Uint8Array,warnings:K.warnings,success:!1,error:K.errors.join("; ")};let z=z5($,Y,K.localTypes,K.needsMemory,K.hasReturn),W=oZ(Y,$,K.localTypes);return{bytes:new Uint8Array(z),warnings:K.warnings,success:!0,needsMemory:K.needsMemory,wat:W}}catch($){return{bytes:new Uint8Array,warnings:[],success:!1,error:$.message}}}async function N7(Z,$){let X={};if($)X.env={memory:$};let Q=await WebAssembly.compile(Z);return WebAssembly.instantiate(Q,X)}async function W5(Z){let $=G4(Z);if(!$.success)return{fn:()=>0,success:!1,error:$.error};try{let X;if($.needsMemory)X=new WebAssembly.Memory({initial:256});let H=(await N7($.bytes,X)).exports.compute,K=Z.captures.map(O7);if(!K.some((W)=>W.isArray))return{fn:H,memory:X,success:!0};return{fn:(...W)=>{if(!X)throw Error("Memory not initialized");let G=new Uint8Array(X.buffer),J=0,L=[];for(let U=0;U<K.length;U++){let q=K[U],A=W[U];if(q.isArray&&A instanceof Object&&"buffer"in A){let M=A,R=new Uint8Array(M.buffer,M.byteOffset,M.byteLength);G.set(R,J),L.push(J),J+=R.length,J=J+15&-16}else L.push(A)}let _=H(...L);J=0;for(let U=0;U<K.length;U++){let q=K[U],A=W[U];if(q.isArray&&A instanceof Object&&"buffer"in A){let M=A,R=new Uint8Array(M.buffer,M.byteOffset,M.byteLength);R.set(G.slice(J,J+R.length)),J+=R.length,J=J+15&-16}}return _},memory:X,success:!0}}catch(X){return{fn:()=>0,success:!1,error:X.message}}}async function E7(Z){let $=await W5(Z);if(!$.success)return console.warn(`WASM compilation failed for ${Z.id}:`,$.error),!1;return globalThis[Z.id]=$.fn,!0}async function G5(Z){let $=0,X=0,Q=[];for(let H of Z)if(await E7(H))$++;else X++,Q.push(`Failed to compile ${H.id}`);return{compiled:$,failed:X,errors:Q}}function T7(Z){let $=[],X=[];for(let z of Z){let W=G4(z);if(W.success){let G=btoa(String.fromCharCode(...W.bytes));X.push({id:z.id,base64:G,captures:z.captures,needsMemory:W.needsMemory??!1,wat:W.wat??""}),$.push({id:z.id,success:!0,byteLength:W.bytes.length})}else $.push({id:z.id,success:!1,error:W.error})}if(X.length===0)return{code:"",results:$};let Q=X.map((z)=>{let W=z.wat.split(`
296
296
  `).map((G)=>` * ${G}`);return`/**
297
297
  * WASM: ${z.id}
298
298
  ${W.join(`
@@ -329,82 +329,85 @@ for(const{id,b64,c,m}of __wasmBlocks){
329
329
  const ab=new Uint8Array(a.buffer,a.byteOffset,a.byteLength);off=(off+15)&~15;ab.set(mv.slice(off,off+ab.length));off+=ab.length}}
330
330
  return r};
331
331
  }})();
332
- `.trim(),results:$}}function J5(Z,$,X){if(!Z||!$)return!1;let Q=new RegExp(`function\\s+${$}\\s*\\([^)]*?\\b${X}\\s*([=:])`,"s"),H=Z.match(Q);if(!H)return!1;return H[1]===":"}function _5(Z,$,X,Q,H){let K=[],Y=J0($,Z),z={},W=!1,G,J;if(Z.params.length===1&&(Z.params[0].type==="ObjectPattern"||Z.params[0].type==="AssignmentPattern"&&Z.params[0].left.type==="ObjectPattern")){W=!0;let U=Z.params[0],q=U.type==="ObjectPattern"?U:U.left,I=C1(q,X);if(I.type.kind==="object"&&I.type.destructuredParams){G={},J=new Set;for(let[M,R]of Object.entries(I.type.destructuredParams))if(z[M]={...R,description:Y.params[M]},G[M]=R.type,R.required)J.add(M)}}else for(let U of Z.params)if(U.type==="Identifier"){let q=C1(U,X);z[U.name]={...q,required:X.has(U.name),description:Y.params[U.name]}}else if(U.type==="AssignmentPattern"&&U.left.type==="Identifier"){let q=C1(U,X),I=J5(H||"",Z.id?.name||"",U.left.name);z[U.left.name]={...q,required:I,default:I?null:q.example??q.default,description:Y.params[U.left.name]}}else if(U.type==="ObjectPattern"){let q=C1(U,X);if(q.type.kind==="object"&&q.type.destructuredParams)for(let[I,M]of Object.entries(q.type.destructuredParams))z[I]={...M,description:Y.params[I]}}else if(U.type==="RestElement"&&U.argument?.type==="Identifier"){let q=U.argument.name,I=$.match(new RegExp(`\\.\\.\\.${q}\\s*:\\s*([^)]+?)\\s*\\)`));if(I)try{let M=S7(I[1].trim(),0,{ecmaVersion:2022}),R=K1(M);z[q]={name:q,type:R,required:!1,description:Y.params[q]}}catch{z[q]={name:q,type:{kind:"array"},required:!1,description:Y.params[q]}}else z[q]={name:q,type:{kind:"array"},required:!1,description:Y.params[q]}}let L;if(Q)try{let U=Q.includes("=")?k7(Q):Q,q=S7(U,0,{ecmaVersion:2022});L=K1(q)}catch{L={kind:"any"},K.push(`Could not parse return type: ${Q}`)}return{types:{name:Z.id?.name||"anonymous",params:z,returns:L,description:Y.description,isDestructuredParam:W,destructuredShape:G,destructuredRequired:J},warnings:K}}function L5(Z,$,X){let Q=[],H=X?`${X}:`:"",K=X?`${X}:${Z}`:Z;if($.isDestructuredParam&&$.destructuredShape){let z=$.destructuredShape,W=$.destructuredRequired||new Set,G=Object.keys(z);if(G.length===0)return null;for(let J of G)Q.push(`if (${J} instanceof Error) return ${J};`);for(let[J,L]of Object.entries(z)){let _=W.has(J),U=`${H}${Z}.${J}`,q=X6(J,L);if(q){let I=L.kind;if(_)Q.push(`if (${q}) return __tjs.typeError('${U}', '${I}', ${J});`);else Q.push(`if (${J} !== undefined && ${q}) return __tjs.typeError('${U}', '${I}', ${J});`)}}if(Q.length===0)return null;return Q.unshift(`__tjs.pushStack('${K}');`),Q.unshift("try {"),{preamble:Q.join(`
332
+ `.trim(),results:$}}function J5(Z,$,X){if(!Z||!$)return!1;let Q=new RegExp(`function\\s+${$}\\s*\\([^)]*?\\b${X}\\s*([=:])`,"s"),H=Z.match(Q);if(!H)return!1;return H[1]===":"}function _5(Z,$,X,Q,H){let K=[],Y=J0($,Z),z={},W=!1,G,J;if(Z.params.length===1&&(Z.params[0].type==="ObjectPattern"||Z.params[0].type==="AssignmentPattern"&&Z.params[0].left.type==="ObjectPattern")){W=!0;let U=Z.params[0],q=U.type==="ObjectPattern"?U:U.left,A=O1(q,X);if(A.type.kind==="object"&&A.type.destructuredParams){G={},J=new Set;for(let[M,R]of Object.entries(A.type.destructuredParams))if(z[M]={...R,description:Y.params[M]},G[M]=R.type,R.required)J.add(M)}}else for(let U of Z.params)if(U.type==="Identifier"){let q=O1(U,X);z[U.name]={...q,required:X.has(U.name),description:Y.params[U.name]}}else if(U.type==="AssignmentPattern"&&U.left.type==="Identifier"){let q=O1(U,X),A=J5(H||"",Z.id?.name||"",U.left.name);z[U.left.name]={...q,required:A,default:A?null:q.example??q.default,description:Y.params[U.left.name]}}else if(U.type==="ObjectPattern"){let q=O1(U,X);if(q.type.kind==="object"&&q.type.destructuredParams)for(let[A,M]of Object.entries(q.type.destructuredParams))z[A]={...M,description:Y.params[A]}}else if(U.type==="RestElement"&&U.argument?.type==="Identifier"){let q=U.argument.name,A=$.match(new RegExp(`\\.\\.\\.${q}\\s*:\\s*([^)]+?)\\s*\\)`));if(A)try{let M=S7(A[1].trim(),0,{ecmaVersion:2022}),R=W1(M);z[q]={name:q,type:R,required:!1,description:Y.params[q]}}catch{z[q]={name:q,type:{kind:"array"},required:!1,description:Y.params[q]}}else z[q]={name:q,type:{kind:"array"},required:!1,description:Y.params[q]}}let L;if(Q)try{let U=Q.includes("=")?k7(Q):Q,q=S7(U,0,{ecmaVersion:2022});L=W1(q)}catch{L={kind:"any"},K.push(`Could not parse return type: ${Q}`)}return{types:{name:Z.id?.name||"anonymous",params:z,returns:L,description:Y.description,isDestructuredParam:W,destructuredShape:G,destructuredRequired:J},warnings:K}}function L5(Z,$,X){let Q=[],H=X?`${X}:`:"",K=X?`${X}:${Z}`:Z;if($.isDestructuredParam&&$.destructuredShape){let z=$.destructuredShape,W=$.destructuredRequired||new Set,G=Object.keys(z);if(G.length===0)return null;for(let J of G)Q.push(`if (${J} instanceof Error) return ${J};`);for(let[J,L]of Object.entries(z)){let _=W.has(J),U=`${H}${Z}.${J}`,q=X6(J,L);if(q){let A=L.kind;if(_)Q.push(`if (${q}) return __tjs.typeError('${U}', '${A}', ${J});`);else Q.push(`if (${J} !== undefined && ${q}) return __tjs.typeError('${U}', '${A}', ${J});`)}}if(Q.length===0)return null;return Q.unshift(`__tjs.pushStack('${K}');`),Q.unshift("try {"),{preamble:Q.join(`
333
333
  `),suffix:"} finally { __tjs.popStack(); }"}}let Y=Object.entries($.params);if(Y.length===0)return null;for(let[z]of Y)Q.push(`if (${z} instanceof Error) return ${z};`);for(let[z,W]of Y){let G=`${H}${Z}.${z}`,J=X6(z,W.type);if(J){let L=W.type.kind==="union"?W.type.members.map((_)=>_.kind).join(" | "):W.type.kind;if(W.required)Q.push(`if (${J}) return __tjs.typeError('${G}', '${L}', ${z});`);else Q.push(`if (${z} !== undefined && ${J}) return __tjs.typeError('${G}', '${L}', ${z});`)}}if(Q.length===0)return null;return Q.unshift(`__tjs.pushStack('${K}');`),Q.unshift("try {"),{preamble:Q.join(`
334
- `),suffix:"} finally { __tjs.popStack(); }"}}function k7(Z){let $="",X=0;for(let Q=0;Q<Z.length;Q++){let H=Z[Q];if(H==="{"||H==="["||H==="(")X++,$+=H;else if(H==="}"||H==="]"||H===")")X--,$+=H;else if(H==="'"||H==='"'||H==="`"){$+=H,Q++;while(Q<Z.length&&Z[Q]!==H){if(Z[Q]==="\\")$+=Z[Q++];$+=Z[Q++]}if(Q<Z.length)$+=Z[Q]}else if(X===1&&H==="="&&Z[Q-1]!=="!"&&Z[Q+1]!=="=")$+=":";else $+=H}return $}function U5(Z,$){let Q=new RegExp(`function\\s+${$}\\s*\\([^)]*\\)\\s*(-[>?!])\\s*`,"g").exec(Z);if(!Q)return null;let H=Z.slice(Q.index+Q[0].length);return t4(H)}function q5(Z,$){let Q=new RegExp(`function\\s+${$}\\s*\\([^)]*\\)\\s*-([>?!])`,"g").exec(Z);if(!Q)return;let H=Q[1];if(H==="?")return"safe";if(H==="!")return"unsafe";return}function D5(Z){let $=Z.match(/^\/\*\s*tjs\s*<-\s*([^*]+?)\s*\*\//);return $?$[1].trim():void 0}function A5(Z,$){let X=new RegExp(`\\/\\*\\s*line\\s+(\\d+)\\s*\\*\\/\\s*(?:async\\s+)?function\\s+${$}\\s*\\(`,"m"),Q=Z.match(X);return Q?parseInt(Q[1],10):void 0}function j0(Z,$={}){let{filename:X="<source>",runTests:Q=!0,debug:H=!1,resolvedImports:K={}}=$,Y=[],W=D5(Z)||X,{code:G,tests:J,mocks:L,testRunner:_}=v4(Z),{ast:U,originalSource:q,requiredParams:I,unsafeFunctions:M}=j1(G,{filename:X,colonShorthand:!0}),R=I5(U),P=y0(G),B={},F=[],N=[];for(let v of R){let m=v.id?.name||"anonymous",l=U5(G,m),q1;if(l&&l.includes("="))try{let z1=l.matchAll(/(\w+)\s*=\s*/g),D1=k7(l),b1=Function(`return ${D1}`)(),A1={};for(let y8 of z1){let E4=y8[1];if(E4 in b1)A1[E4]=b1[E4]}if(Object.keys(A1).length>0)q1=A1}catch{}let{types:g1,warnings:k8}=_5(v,q,I,l,G);Y.push(...k8),B[m]=g1;for(let z1 of v.params)if(z1.type==="AssignmentPattern"){let D1=z1.left?.name||z1.left?.value,b1=D1?g1.params[D1]:null;if(b1?.required&&b1.default===null)N.push({start:z1.left.end,end:z1.right.end});else{let A1=z1.right;if(A1.type==="BinaryExpression"&&A1.operator==="|")N.push({start:A1.left.end,end:A1.end})}}let O6=P.moduleSafety==="none"||M.has(m),g8=P.safeFunctions.has(m),b8=q5(G,m),v8=A5(Z,m),m1={file:W,line:v8??v.loc?.start.line??0,column:v.loc?.start.column??0},f8={unsafe:O6,safe:g8,returnSafety:b8},N6=P.polymorphicNames.has(m),N4;if(N6){let z1=[];for(let b1 of R){let A1=b1.id?.name||"";if(A1.startsWith(m+"$"))z1.push(A1)}let D1={polymorphic:!0,variants:z1};if(m1)D1.source=`${m1.file}:${m1.line}`;N4=`${m}.__tjs = ${JSON.stringify(D1,null,2)}`}else N4=B5(m,g1,f8,{debug:H,source:m1,returnDefaults:q1});if(F.push({position:v.end,text:`
335
- ${N4}`}),!O6&&!N6){let z1=`${m1.file}:${m1.line}`,D1=L5(m,g1,z1);if(D1&&v.body&&v.body.start!==void 0)F.push({position:v.body.start+1,text:`
336
- ${D1.preamble}
337
- `}),F.push({position:v.body.end-1,text:`
338
- ${D1.suffix}
339
- `})}}N.sort((v,m)=>m.start-v.start);let V=P.source;for(let{start:v,end:m}of N)V=V.slice(0,v)+V.slice(m);for(let v of F){let m=0;for(let l of N)if(l.start<v.position)m+=l.end-l.start;v.position-=m}F.sort((v,m)=>m.position-v.position);for(let{position:v,text:m}of F)V=V.slice(0,v)+m+V.slice(v);let w=V.includes("__tjs.typeError("),C=V.includes("__tjs.pushStack("),O=V.includes("Is("),k=V.includes("IsNot("),S=V.includes("Eq("),b=V.includes("NotEq("),h=V.includes("TypeOf("),u=/\bType\(/.test(V),U1=/\bGeneric\(/.test(V),H0=/\bFunctionPredicate\(/.test(V),W1=/\bEnum\(/.test(V),k1=/\bUnion\(/.test(V),C6=P.tjsModes.tjsSafeEval;if(w||C||O||k||S||b||h||u||U1||H0||W1||k1||C6){let v=[];if(w)v.push("class MonadicError extends Error{constructor(m,p,e,a,c){super(m);this.name='MonadicError';this.path=p;this.expected=e;this.actual=a;this.callStack=c}}",`function typeError(p,e,v){const a=v===null?'null':typeof v;const err=new MonadicError('Expected '+e+" for '"+p+"', got "+a,p,e,a);const c=globalThis.__tjs?.getConfig?.();if(c?.logTypeErrors)console.error('[TJS TypeError] '+err.message);if(c?.throwTypeErrors)throw err;return err}`,"function isMonadicError(v){return v instanceof Error&&v.name==='MonadicError'&&'path' in v}");if(C)v.push("const __stack=[];function pushStack(n){__stack.push(n)}function popStack(){__stack.pop()}function getStack(){return[...__stack]}");if(S)v.push("function Eq(a,b){if(a instanceof String||a instanceof Number||a instanceof Boolean)a=a.valueOf();if(b instanceof String||b instanceof Number||b instanceof Boolean)b=b.valueOf();if(a===b)return true;if((a===null||a===undefined)&&(b===null||b===undefined))return true;return false}");if(b)v.push("function NotEq(a,b){return!Eq(a,b)}");if(h)v.push("function TypeOf(v){return v===null?'null':typeof v}");if(O)v.push("const tjsEquals=Symbol.for('tjs.equals');function Is(a,b){if(a!=null&&typeof a==='object'&&typeof a[tjsEquals]==='function')return a[tjsEquals](b);if(b!=null&&typeof b==='object'&&typeof b[tjsEquals]==='function')return b[tjsEquals](a);if(a!=null&&typeof a==='object'&&typeof a.Equals==='function')return a.Equals(b);if(b!=null&&typeof b==='object'&&typeof b.Equals==='function')return b.Equals(a);if(a instanceof String||a instanceof Number||a instanceof Boolean)a=a.valueOf();if(b instanceof String||b instanceof Number||b instanceof Boolean)b=b.valueOf();if(a===b)return true;if((a==null)&&(b==null))return true;if(a==null||b==null)return false;if(typeof a!==typeof b)return false;if(typeof a!=='object')return false;if(a instanceof Set&&b instanceof Set){if(a.size!==b.size)return false;for(const v of a)if(!b.has(v))return false;return true}if(a instanceof Map&&b instanceof Map){if(a.size!==b.size)return false;for(const[k,v]of a)if(!b.has(k)||!Is(v,b.get(k)))return false;return true}if(a instanceof Date&&b instanceof Date)return a.getTime()===b.getTime();if(a instanceof RegExp&&b instanceof RegExp)return a.toString()===b.toString();if(Array.isArray(a)&&Array.isArray(b)){if(a.length!==b.length)return false;return a.every((v,i)=>Is(v,b[i]))}if(Array.isArray(a)!==Array.isArray(b))return false;const ka=Object.keys(a),kb=Object.keys(b);if(ka.length!==kb.length)return false;return ka.every(k=>Is(a[k],b[k]))}");if(k)v.push("function IsNot(a,b){return!Is(a,b)}");if(u)v.push("function Type(d,p,e){const t={description:d,__runtimeType:true};if(typeof p==='function'){t.check=p;t.default=e??null}else{const ex=e??p;t.default=ex;t.check=v=>{if(ex===null)return true;return typeof v===typeof ex}}return t}");if(U1)v.push("function Generic(tp,pred,d){const f=(...args)=>{const t={description:d||'generic',__runtimeType:true,check:v=>pred(v,...args)};return t};f.__runtimeType=true;f.description=d;return f}");if(H0)v.push("function FunctionPredicate(n,s,b){if(Array.isArray(s)&&b){const f=(...a)=>FunctionPredicate(n,b(...a));f.typeParamNames=s.map(p=>Array.isArray(p)?p[0]:p);f.description=n;f.__runtimeType=true;return f}const spec=typeof s==='function'?{}:s||{};return{description:n,params:spec.params||{},returns:spec.returns,returnContract:spec.returnContract||'assertReturns',check:v=>typeof v==='function',__runtimeType:true}}");if(W1)v.push("function Enum(d,m){const vals=typeof m==='object'?Object.values(m):[];return{description:d,check:v=>vals.includes(v),values:vals,__runtimeType:true}}");if(k1)v.push("function Union(d,...v){const vals=v.flat();return{description:d,check:x=>vals.includes(x),values:vals,__runtimeType:true}}");let m=v.length>0?v.join(`;
334
+ `),suffix:"} finally { __tjs.popStack(); }"}}function k7(Z){let $="",X=0;for(let Q=0;Q<Z.length;Q++){let H=Z[Q];if(H==="{"||H==="["||H==="(")X++,$+=H;else if(H==="}"||H==="]"||H===")")X--,$+=H;else if(H==="'"||H==='"'||H==="`"){$+=H,Q++;while(Q<Z.length&&Z[Q]!==H){if(Z[Q]==="\\")$+=Z[Q++];$+=Z[Q++]}if(Q<Z.length)$+=Z[Q]}else if(X===1&&H==="="&&Z[Q-1]!=="!"&&Z[Q+1]!=="=")$+=":";else $+=H}return $}function U5(Z,$){let Q=new RegExp(`function\\s+${$}\\s*\\([^)]*\\)\\s*(-[>?!])\\s*`,"g").exec(Z);if(!Q)return null;let H=Z.slice(Q.index+Q[0].length);return t4(H)}function q5(Z,$){let Q=new RegExp(`function\\s+${$}\\s*\\([^)]*\\)\\s*-([>?!])`,"g").exec(Z);if(!Q)return;let H=Q[1];if(H==="?")return"safe";if(H==="!")return"unsafe";return}function D5(Z){let $=Z.match(/^\/\*\s*tjs\s*<-\s*([^*]+?)\s*\*\//);return $?$[1].trim():void 0}function A5(Z,$){let X=new RegExp(`\\/\\*\\s*line\\s+(\\d+)\\s*\\*\\/\\s*(?:async\\s+)?function\\s+${$}\\s*\\(`,"m"),Q=Z.match(X);return Q?parseInt(Q[1],10):void 0}function j0(Z,$={}){let{filename:X="<source>",runTests:Q=!0,debug:H=!1,resolvedImports:K={}}=$,Y=[],W=D5(Z)||X,{code:G,tests:J,mocks:L,testRunner:_}=v4(Z),{ast:U,originalSource:q,requiredParams:A,unsafeFunctions:M}=F1(G,{filename:X,colonShorthand:!0}),R=I5(U),F=y0(G),B={},w=[],O=[];for(let f of R){let m=f.id?.name||"anonymous",l=U5(G,m),D1;if(l&&l.includes("="))try{let J1=l.matchAll(/(\w+)\s*=\s*/g),A1=k7(l),v1=Function(`return ${A1}`)(),I1={};for(let y8 of J1){let E4=y8[1];if(E4 in v1)I1[E4]=v1[E4]}if(Object.keys(I1).length>0)D1=I1}catch{}let{types:b1,warnings:k8}=_5(f,q,A,l,G);Y.push(...k8),B[m]=b1;for(let J1 of f.params)if(J1.type==="AssignmentPattern"){let A1=J1.left?.name||J1.left?.value,v1=A1?b1.params[A1]:null;if(v1?.required&&v1.default===null)O.push({start:J1.left.end,end:J1.right.end});else{let I1=J1.right;if(I1.type==="BinaryExpression"&&I1.operator==="|")O.push({start:I1.left.end,end:I1.end})}}let O6=F.moduleSafety==="none"||M.has(m),g8=F.safeFunctions.has(m),b8=q5(G,m),v8=A5(Z,m),i1={file:W,line:v8??f.loc?.start.line??0,column:f.loc?.start.column??0},f8={unsafe:O6,safe:g8,returnSafety:b8},N6=F.polymorphicNames.has(m),N4;if(N6){let J1=[];for(let v1 of R){let I1=v1.id?.name||"";if(I1.startsWith(m+"$"))J1.push(I1)}let A1={polymorphic:!0,variants:J1};if(i1)A1.source=`${i1.file}:${i1.line}`;N4=`${m}.__tjs = ${JSON.stringify(A1,null,2)}`}else N4=B5(m,b1,f8,{debug:H,source:i1,returnDefaults:D1});if(w.push({position:f.end,text:`
335
+ ${N4}`}),!O6&&!N6){let J1=`${i1.file}:${i1.line}`,A1=L5(m,b1,J1);if(A1&&f.body&&f.body.start!==void 0)w.push({position:f.body.start+1,text:`
336
+ ${A1.preamble}
337
+ `}),w.push({position:f.body.end-1,text:`
338
+ ${A1.suffix}
339
+ `})}}O.sort((f,m)=>m.start-f.start);let V=F.source;for(let{start:f,end:m}of O)V=V.slice(0,f)+V.slice(m);for(let f of w){let m=0;for(let l of O)if(l.start<f.position)m+=l.end-l.start;f.position-=m}w.sort((f,m)=>m.position-f.position);for(let{position:f,text:m}of w)V=V.slice(0,f)+m+V.slice(f);let C=V.includes("__tjs.typeError("),S=V.includes("__tjs.pushStack("),P=V.includes("Is("),k=V.includes("IsNot("),E=V.includes("Eq("),v=V.includes("NotEq("),g=V.includes("TypeOf("),y=/\bType\(/.test(V),o=/\bGeneric\(/.test(V),p=/\bFunctionPredicate\(/.test(V),X1=/\bEnum\(/.test(V),g1=/\bUnion\(/.test(V),C6=F.tjsModes.tjsSafeEval;if(C||S||P||k||E||v||g||y||o||p||X1||g1||C6){let f=[];if(C)f.push("class MonadicError extends Error{constructor(m,p,e,a,c){super(m);this.name='MonadicError';this.path=p;this.expected=e;this.actual=a;this.callStack=c}}",`function typeError(p,e,v){const a=v===null?'null':typeof v;const err=new MonadicError('Expected '+e+" for '"+p+"', got "+a,p,e,a);const c=globalThis.__tjs?.getConfig?.();if(c?.logTypeErrors)console.error('[TJS TypeError] '+err.message);if(c?.throwTypeErrors)throw err;return err}`,"function isMonadicError(v){return v instanceof Error&&v.name==='MonadicError'&&'path' in v}");if(S)f.push("const __stack=[];function pushStack(n){__stack.push(n)}function popStack(){__stack.pop()}function getStack(){return[...__stack]}");if(E)f.push("function Eq(a,b){if(a instanceof String||a instanceof Number||a instanceof Boolean)a=a.valueOf();if(b instanceof String||b instanceof Number||b instanceof Boolean)b=b.valueOf();if(a===b)return true;if((a===null||a===undefined)&&(b===null||b===undefined))return true;return false}");if(v)f.push("function NotEq(a,b){return!Eq(a,b)}");if(g)f.push("function TypeOf(v){return v===null?'null':typeof v}");if(P)f.push("const tjsEquals=Symbol.for('tjs.equals');function Is(a,b){if(a!=null&&typeof a==='object'&&typeof a[tjsEquals]==='function')return a[tjsEquals](b);if(b!=null&&typeof b==='object'&&typeof b[tjsEquals]==='function')return b[tjsEquals](a);if(a!=null&&typeof a==='object'&&typeof a.Equals==='function')return a.Equals(b);if(b!=null&&typeof b==='object'&&typeof b.Equals==='function')return b.Equals(a);if(a instanceof String||a instanceof Number||a instanceof Boolean)a=a.valueOf();if(b instanceof String||b instanceof Number||b instanceof Boolean)b=b.valueOf();if(a===b)return true;if((a==null)&&(b==null))return true;if(a==null||b==null)return false;if(typeof a!==typeof b)return false;if(typeof a!=='object')return false;if(a instanceof Set&&b instanceof Set){if(a.size!==b.size)return false;for(const v of a)if(!b.has(v))return false;return true}if(a instanceof Map&&b instanceof Map){if(a.size!==b.size)return false;for(const[k,v]of a)if(!b.has(k)||!Is(v,b.get(k)))return false;return true}if(a instanceof Date&&b instanceof Date)return a.getTime()===b.getTime();if(a instanceof RegExp&&b instanceof RegExp)return a.toString()===b.toString();if(Array.isArray(a)&&Array.isArray(b)){if(a.length!==b.length)return false;return a.every((v,i)=>Is(v,b[i]))}if(Array.isArray(a)!==Array.isArray(b))return false;const ka=Object.keys(a),kb=Object.keys(b);if(ka.length!==kb.length)return false;return ka.every(k=>Is(a[k],b[k]))}");if(k)f.push("function IsNot(a,b){return!Is(a,b)}");if(y)f.push("function Type(d,p,e){const t={description:d,__runtimeType:true};if(typeof p==='function'){t.check=p;t.default=e??null}else{const ex=e??p;t.default=ex;t.check=v=>{if(ex===null)return true;return typeof v===typeof ex}}return t}");if(o)f.push("function Generic(tp,pred,d){const f=(...args)=>{const t={description:d||'generic',__runtimeType:true,check:v=>pred(v,...args)};return t};f.__runtimeType=true;f.description=d;return f}");if(p)f.push("function FunctionPredicate(n,s,b){if(Array.isArray(s)&&b){const f=(...a)=>FunctionPredicate(n,b(...a));f.typeParamNames=s.map(p=>Array.isArray(p)?p[0]:p);f.description=n;f.__runtimeType=true;return f}const spec=typeof s==='function'?{}:s||{};return{description:n,params:spec.params||{},returns:spec.returns,returnContract:spec.returnContract||'assertReturns',check:v=>typeof v==='function',__runtimeType:true}}");if(X1)f.push("function Enum(d,m){const vals=typeof m==='object'?Object.values(m):[];return{description:d,check:v=>vals.includes(v),values:vals,__runtimeType:true}}");if(g1)f.push("function Union(d,...v){const vals=v.flat();return{description:d,check:x=>vals.includes(x),values:vals,__runtimeType:true}}");let m=f.length>0?f.join(`;
340
340
  `)+`;
341
- `:"",l=[];if(w)l.push("typeError","isMonadicError");if(C)l.push("pushStack","popStack","getStack");if(S)l.push("Eq");if(b)l.push("NotEq");if(h)l.push("TypeOf");if(O)l.push("Is","tjsEquals");if(k)l.push("IsNot");if(u)l.push("Type");if(U1)l.push("Generic");if(H0)l.push("FunctionPredicate");if(W1)l.push("Enum");if(k1)l.push("Union");let q1=l.length>0?`{${l.join(",")}}`:"undefined";V=m+`const __tjs = globalThis.__tjs?.createRuntime?.() ?? ${q1};
341
+ `:"",l=[];if(C)l.push("typeError","isMonadicError");if(S)l.push("pushStack","popStack","getStack");if(E)l.push("Eq");if(v)l.push("NotEq");if(g)l.push("TypeOf");if(P)l.push("Is","tjsEquals");if(k)l.push("IsNot");if(y)l.push("Type");if(o)l.push("Generic");if(p)l.push("FunctionPredicate");if(X1)l.push("Enum");if(g1)l.push("Union");let D1=l.length>0?`{${l.join(",")}}`:"undefined";V=m+`const __tjs = globalThis.__tjs?.createRuntime?.() ?? ${D1};
342
342
  `+V}if(C6)V=`import { Eval, SafeFunction } from 'tjs-lang';
343
- `+V;let K0;if(Q){let v=F7(Z);K0=P7(J,L,v,V,K,P.extensions);let m=K0.filter((l)=>!l.passed);if(m.length>0&&Q===!0){let l=m.map((q1)=>{if(q1.isSignatureTest)return` Function signature example is inconsistent:
344
- ${q1.error}`;let g1=q1.line?` (line ${q1.line})`:"";return` Test '${q1.description}'${g1} failed:
345
- ${q1.error}`});throw Error(`Transpile-time test failures:
343
+ `+V;let K0;if(Q){let f=F7(Z);K0=P7(J,L,f,V,K,F.extensions);let m=K0.filter((l)=>!l.passed);if(m.length>0&&Q===!0){let l=m.map((D1)=>{if(D1.isSignatureTest)return` Function signature example is inconsistent:
344
+ ${D1.error}`;let b1=D1.line?` (line ${D1.line})`:"";return` Test '${D1.description}'${b1} failed:
345
+ ${D1.error}`});throw Error(`Transpile-time test failures:
346
346
  ${l.join(`
347
- `)}`)}}if(Q==="only")return{code:"",types:B,metadata:B,testResults:K0,testCount:K0?.length};let O4;if(P.wasmBlocks.length>0){O4=[];let v=T7(P.wasmBlocks);if(v.code)V=v.code+`
348
- `+V;O4=v.results}return{code:V,types:B,metadata:B,warnings:Y.length>0?Y:void 0,testRunner:J.length>0?_:void 0,testCount:J.length>0?J.length:void 0,testResults:K0,wasmCompiled:O4}}function I5(Z){let $=[];for(let X of Z.body)if(X.type==="FunctionDeclaration")$.push(X);else if(X.type==="ExportNamedDeclaration"&&X.declaration?.type==="FunctionDeclaration")$.push(X.declaration);else if(X.type==="ExportDefaultDeclaration"&&X.declaration?.type==="FunctionDeclaration")$.push(X.declaration);return $}function w0(Z){let $={kind:Z.kind};if(Z.nullable)$.nullable=!0;if(Z.items)$.items=w0(Z.items);if(Z.shape)$.shape=Object.fromEntries(Object.entries(Z.shape).map(([X,Q])=>[X,w0(Q)]));if(Z.members)$.members=Z.members.map(w0);return $}function B5(Z,$,X={},Q={}){let H={};for(let[Y,z]of Object.entries($.params)){if(H[Y]={type:w0(z.type),required:z.required},z.default!==void 0)H[Y].default=z.default;if(z.description)H[Y].description=z.description}let K={params:H};if($.returns){if(K.returns={type:w0($.returns)},Q.returnDefaults)K.returns.defaults=Q.returnDefaults;if(X.returnSafety==="safe")K.safeReturn=!0;else if(X.returnSafety==="unsafe")K.unsafeReturn=!0}if($.description)K.description=$.description;if(X.unsafe)K.unsafe=!0;if(X.safe)K.safe=!0;if(Q.source){let{file:Y,line:z}=Q.source;K.source=`${Y}:${z}`}return`${Z}.__tjs = ${JSON.stringify(K,null,2)}`}function X6(Z,$){let X;switch($.kind){case"string":X=`typeof ${Z} !== 'string'`;break;case"number":X=`typeof ${Z} !== 'number'`;break;case"integer":X=`(typeof ${Z} !== 'number' || !Number.isInteger(${Z}))`;break;case"non-negative-integer":X=`(typeof ${Z} !== 'number' || !Number.isInteger(${Z}) || ${Z} < 0)`;break;case"boolean":X=`typeof ${Z} !== 'boolean'`;break;case"null":return`${Z} !== null`;case"undefined":return`${Z} !== undefined`;case"array":X=`!Array.isArray(${Z})`;break;case"object":X=`(typeof ${Z} !== 'object' || ${Z} === null || Array.isArray(${Z}))`;break;case"union":{let Q=$.members.map((H)=>X6(Z,H)).filter((H)=>H!==null);if(Q.length===0)return null;X=`(${Q.join(" && ")})`;break}case"any":return null;default:return null}if(X&&$.nullable)X=`(${Z} !== null && ${X})`;return X}function a1(Z){let $;switch(Z.kind){case"string":$="string";break;case"number":case"integer":case"non-negative-integer":$="number";break;case"boolean":$="boolean";break;case"null":return"null";case"undefined":return"undefined";case"any":$="any";break;case"array":if(Z.items){let X=a1(Z.items);$=X.includes("|")?`(${X})[]`:`${X}[]`}else $="any[]";break;case"object":if(Z.shape&&Object.keys(Z.shape).length>0)$=`{ ${Object.entries(Z.shape).map(([Q,H])=>`${Q}: ${a1(H)}`).join("; ")} }`;else $="Record<string, any>";break;case"union":if(Z.members&&Z.members.length>0)return Z.members.map(a1).join(" | ");$="any";break;default:$="any"}if(Z.nullable)return`${$} | null`;return $}function R5(Z,$,X,Q){let H=Object.entries($.params).map(([z,W])=>{let G=!W.required,J=a1(W.type);return G?`${z}?: ${J}`:`${z}: ${J}`}).join(", "),K=$.returns?a1($.returns):"any";return`${X?Q?"export default function":"export declare function":"declare function"} ${Z}(${H}): ${K};`}function M5(Z){let $=new Map,X,Q=/^[ \t]*export\s+(default\s+)?function\s+(\w+)/gm;while((X=Q.exec(Z))!==null)$.set(X[2],{exported:!0,isDefault:!!X[1]});let H=/^[ \t]*export\s+(default\s+)?class\s+(\w+)/gm;while((X=H.exec(Z))!==null)$.set(X[2],{exported:!0,isDefault:!!X[1]});let K=/^[ \t]*export\s+(default\s+)?(?:const|let|var)\s+(\w+)/gm;while((X=K.exec(Z))!==null)$.set(X[2],{exported:!0,isDefault:!!X[1]});let Y=/^[ \t]*export\s+Type\s+(\w+)/gm;while((X=Y.exec(Z))!==null)$.set(X[1],{exported:!0,isDefault:!1});let z=/^[ \t]*export\s+Generic\s+(\w+)/gm;while((X=z.exec(Z))!==null)$.set(X[1],{exported:!0,isDefault:!1});let W=/^[ \t]*export\s+FunctionPredicate\s+(\w+)/gm;while((X=W.exec(Z))!==null)$.set(X[1],{exported:!0,isDefault:!1});let G=/^[ \t]*export\s*\{([^}]+)\}/gm;while((X=G.exec(Z))!==null){let J=X[1].split(",").map((L)=>L.trim().split(/\s+as\s+/));for(let L of J){let _=L.length>1?L[1]:L[0];if(_&&/^\w+$/.test(_))$.set(_,{exported:!0,isDefault:!1})}}return $}function w5(Z){let $=new Map,X=/^[ \t]*(?:export\s+)?FunctionPredicate\s+(\w+)\s*(?:<([^>]+)>)?\s*\{/gm,Q;while((Q=X.exec(Z))!==null){let H=Q[1],K=Q[2],Y=Q.index+Q[0].length-1,z=1,W=Y+1;while(W<Z.length&&z>0){if(Z[W]==="{")z++;else if(Z[W]==="}")z--;W++}let G=Z.slice(Y+1,W-1),J;if(K)J=K.split(",").map((I)=>I.trim());let L=[],_=G.match(/params\s*:\s*\{([^}]*)\}/);if(_){let I=_[1],M=b7(I);for(let R of M){let P=R.match(/^(\w+)\s*:\s*(.+)$/);if(P)L.push({name:P[1],example:P[2].trim()})}}let U,q=G.match(/returns\s*:\s*(.+?)(?:\n|$)/);if(q)U=q[1].trim();$.set(H,{params:L,returns:U,typeParams:J})}return $}function j5(Z){let $=new Map,X=/^[ \t]*(?:export\s+(?:default\s+)?)?class\s+(\w+)(?:\s+extends\s+\w+)?\s*\{/gm,Q;while((Q=X.exec(Z))!==null){let H=Q[1],K=Q.index+Q[0].length-1,Y=1,z=K+1;while(z<Z.length&&Y>0){if(Z[z]==="{")Y++;else if(Z[z]==="}")Y--;z++}let W=Z.slice(K+1,z-1),G=W.indexOf("constructor"),J="";if(G!==-1){let _=W.indexOf("(",G);if(_!==-1){let U=1,q=_+1;while(q<W.length&&U>0){if(W[q]==="(")U++;else if(W[q]===")")U--;q++}J=W.slice(_+1,q-1).trim()}}let L=[];{let _=0,U=0;while(_<W.length){let q=W[_];if(q==="{"){U++,_++;continue}if(q==="}"){U--,_++;continue}if(U===0){let I=W.slice(_).match(/^(\w+)\s*\(/);if(I){let M=I[1];if(M==="constructor"||M==="get"||M==="set"){_+=M.length;continue}else{let R=_+I[0].length-1,P=1,B=R+1;while(B<W.length&&P>0){if(W[B]==="(")P++;else if(W[B]===")")P--;B++}let F=W.slice(R+1,B-1).trim(),N=W.slice(B).match(/^\s*->\s*(.+?)\s*\{/),V=N?N[1].trim():null;L.push({name:M,params:F,returnType:V}),_=B;continue}}}_++}}$.set(H,{name:H,constructorParams:J,methods:L})}return $}function b7(Z){let $=[],X=0,Q="";for(let H of Z){if(H==="{"||H==="["||H==="(")X++;else if(H==="}"||H==="]"||H===")")X--;if(H===","&&X===0)$.push(Q.trim()),Q="";else Q+=H}if(Q.trim())$.push(Q.trim());return $}function g7(Z){if(!Z.trim())return"";return b7(Z).map(($)=>{let X=$.match(/^(\w+)\s*:\s*(.+)$/);if(X){let H=X[1],K=r1(X[2].trim());return`${H}: ${K}`}let Q=$.match(/^(\w+)\s*=\s*(.+)$/);if(Q){let H=Q[1],K=r1(Q[2].trim());return`${H}?: ${K}`}if($.startsWith("{"))return"options: any";return`${$}: any`}).join(", ")}function F5(Z){let $=new Map,X,Q=/^[ \t]*(?:export\s+)?Type\s+(\w+)\s*=\s*(.+)$/gm;while((X=Q.exec(Z))!==null)$.set(X[1],X[2].trim());let H=/^[ \t]*(?:export\s+)?Type\s+(\w+)\s+([^{=].*)$/gm;while((X=H.exec(Z))!==null)if(!$.has(X[1]))$.set(X[1],X[2].trim());let K=/^[ \t]*(?:export\s+)?Type\s+(\w+)\s*\{[^}]*example\s*:\s*(.+?)(?:\n|\s*[,}])/gm;while((X=K.exec(Z))!==null)$.set(X[1],X[2].trim());return $}function P5(Z){let $=new Map,X=/^[ \t]*(?:export\s+)?Generic\s+(\w+)\s*<([^>]+)>\s*\{/gm,Q;while((Q=X.exec(Z))!==null){let H=Q[1],K=Q[2].split(",").map((_)=>{return _.trim().split(/\s*=/)[0].trim()}),Y=Q.index+Q[0].length-1,z=1,W=Y+1;while(W<Z.length&&z>0){if(Z[W]==="{")z++;else if(Z[W]==="}")z--;W++}let G=Z.slice(Y+1,W-1),J,L=G.match(/\bdeclaration\s*\{/);if(L&&L.index!==void 0){let _=L.index+L[0].length-1,U=1,q=_+1;while(q<G.length&&U>0){if(G[q]==="{")U++;else if(G[q]==="}")U--;q++}J=G.slice(_+1,q-1).trim()}$.set(H,{typeParams:K,declaration:J})}return $}function V5(Z,$,X={}){let Q=[],H=M5($),K=F5($),Y=j5($),z=P5($),W=H.size>0,G=new Set;for(let[L,_]of Object.entries(Z.types)){if(L.includes("$"))continue;let U=H.get(L),q=W?!!U?.exported:!0,I=U?.isDefault??!1;if(!q)continue;if(_.description)Q.push(`/** ${_.description} */`);Q.push(R5(L,_,!0,I)),G.add(L)}for(let[L,_]of Y){if(G.has(L))continue;let U=H.get(L);if(!(W?!!U?.exported:!0))continue;let I=_.constructorParams?g7(_.constructorParams):"";if(Q.push(`export declare function ${L}(${I}): any;`),I||_.methods.length>0){if(Q.push(`export declare class ${L} {`),_.constructorParams)Q.push(` constructor(${I});`);for(let M of _.methods){let R=M.params?g7(M.params):"";Q.push(` ${M.name}(${R}): any;`)}Q.push("}")}G.add(L)}for(let[L,_]of K){if(G.has(L))continue;let U=H.get(L);if(!(W?!!U?.exported:!0))continue;let I=r1(_);Q.push(`export declare const ${L}: { check(value: any): boolean; default: ${I}; (value: any): boolean; };`),G.add(L)}for(let[L,_]of z){if(G.has(L))continue;let U=H.get(L);if(!(W?!!U?.exported:!0))continue;let I=_.typeParams.length>0?`<${_.typeParams.join(", ")}>`:"";if(_.declaration){let M=_.declaration.split(`
347
+ `)}`)}}if(Q==="only")return{code:"",types:B,metadata:B,testResults:K0,testCount:K0?.length};let O4;if(F.wasmBlocks.length>0){O4=[];let f=T7(F.wasmBlocks);if(f.code)V=f.code+`
348
+ `+V;O4=f.results}return{code:V,types:B,metadata:B,warnings:Y.length>0?Y:void 0,testRunner:J.length>0?_:void 0,testCount:J.length>0?J.length:void 0,testResults:K0,wasmCompiled:O4}}function I5(Z){let $=[];for(let X of Z.body)if(X.type==="FunctionDeclaration")$.push(X);else if(X.type==="ExportNamedDeclaration"&&X.declaration?.type==="FunctionDeclaration")$.push(X.declaration);else if(X.type==="ExportDefaultDeclaration"&&X.declaration?.type==="FunctionDeclaration")$.push(X.declaration);return $}function w0(Z){let $={kind:Z.kind};if(Z.nullable)$.nullable=!0;if(Z.items)$.items=w0(Z.items);if(Z.shape)$.shape=Object.fromEntries(Object.entries(Z.shape).map(([X,Q])=>[X,w0(Q)]));if(Z.members)$.members=Z.members.map(w0);return $}function B5(Z,$,X={},Q={}){let H={};for(let[Y,z]of Object.entries($.params)){if(H[Y]={type:w0(z.type),required:z.required},z.default!==void 0)H[Y].default=z.default;if(z.description)H[Y].description=z.description}let K={params:H};if($.returns){if(K.returns={type:w0($.returns)},Q.returnDefaults)K.returns.defaults=Q.returnDefaults;if(X.returnSafety==="safe")K.safeReturn=!0;else if(X.returnSafety==="unsafe")K.unsafeReturn=!0}if($.description)K.description=$.description;if(X.unsafe)K.unsafe=!0;if(X.safe)K.safe=!0;if(Q.source){let{file:Y,line:z}=Q.source;K.source=`${Y}:${z}`}return`${Z}.__tjs = ${JSON.stringify(K,null,2)}`}function X6(Z,$){let X;switch($.kind){case"string":X=`typeof ${Z} !== 'string'`;break;case"number":X=`typeof ${Z} !== 'number'`;break;case"integer":X=`(typeof ${Z} !== 'number' || !Number.isInteger(${Z}))`;break;case"non-negative-integer":X=`(typeof ${Z} !== 'number' || !Number.isInteger(${Z}) || ${Z} < 0)`;break;case"boolean":X=`typeof ${Z} !== 'boolean'`;break;case"null":return`${Z} !== null`;case"undefined":return`${Z} !== undefined`;case"array":X=`!Array.isArray(${Z})`;break;case"object":X=`(typeof ${Z} !== 'object' || ${Z} === null || Array.isArray(${Z}))`;break;case"union":{let Q=$.members.map((H)=>X6(Z,H)).filter((H)=>H!==null);if(Q.length===0)return null;X=`(${Q.join(" && ")})`;break}case"any":return null;default:return null}if(X&&$.nullable)X=`(${Z} !== null && ${X})`;return X}function r1(Z){let $;switch(Z.kind){case"string":$="string";break;case"number":case"integer":case"non-negative-integer":$="number";break;case"boolean":$="boolean";break;case"null":return"null";case"undefined":return"undefined";case"any":$="any";break;case"array":if(Z.items){let X=r1(Z.items);$=X.includes("|")?`(${X})[]`:`${X}[]`}else $="any[]";break;case"object":if(Z.shape&&Object.keys(Z.shape).length>0)$=`{ ${Object.entries(Z.shape).map(([Q,H])=>`${Q}: ${r1(H)}`).join("; ")} }`;else $="Record<string, any>";break;case"union":if(Z.members&&Z.members.length>0)return Z.members.map(r1).join(" | ");$="any";break;default:$="any"}if(Z.nullable)return`${$} | null`;return $}function R5(Z,$,X,Q){let H=Object.entries($.params).map(([z,W])=>{let G=!W.required,J=r1(W.type);return G?`${z}?: ${J}`:`${z}: ${J}`}).join(", "),K=$.returns?r1($.returns):"any";return`${X?Q?"export default function":"export declare function":"declare function"} ${Z}(${H}): ${K};`}function M5(Z){let $=new Map,X,Q=/^[ \t]*export\s+(default\s+)?function\s+(\w+)/gm;while((X=Q.exec(Z))!==null)$.set(X[2],{exported:!0,isDefault:!!X[1]});let H=/^[ \t]*export\s+(default\s+)?class\s+(\w+)/gm;while((X=H.exec(Z))!==null)$.set(X[2],{exported:!0,isDefault:!!X[1]});let K=/^[ \t]*export\s+(default\s+)?(?:const|let|var)\s+(\w+)/gm;while((X=K.exec(Z))!==null)$.set(X[2],{exported:!0,isDefault:!!X[1]});let Y=/^[ \t]*export\s+Type\s+(\w+)/gm;while((X=Y.exec(Z))!==null)$.set(X[1],{exported:!0,isDefault:!1});let z=/^[ \t]*export\s+Generic\s+(\w+)/gm;while((X=z.exec(Z))!==null)$.set(X[1],{exported:!0,isDefault:!1});let W=/^[ \t]*export\s+FunctionPredicate\s+(\w+)/gm;while((X=W.exec(Z))!==null)$.set(X[1],{exported:!0,isDefault:!1});let G=/^[ \t]*export\s*\{([^}]+)\}/gm;while((X=G.exec(Z))!==null){let J=X[1].split(",").map((L)=>L.trim().split(/\s+as\s+/));for(let L of J){let _=L.length>1?L[1]:L[0];if(_&&/^\w+$/.test(_))$.set(_,{exported:!0,isDefault:!1})}}return $}function w5(Z){let $=new Map,X=/^[ \t]*(?:export\s+)?FunctionPredicate\s+(\w+)\s*(?:<([^>]+)>)?\s*\{/gm,Q;while((Q=X.exec(Z))!==null){let H=Q[1],K=Q[2],Y=Q.index+Q[0].length-1,z=1,W=Y+1;while(W<Z.length&&z>0){if(Z[W]==="{")z++;else if(Z[W]==="}")z--;W++}let G=Z.slice(Y+1,W-1),J;if(K)J=K.split(",").map((A)=>A.trim());let L=[],_=G.match(/params\s*:\s*\{([^}]*)\}/);if(_){let A=_[1],M=b7(A);for(let R of M){let F=R.match(/^(\w+)\s*:\s*(.+)$/);if(F)L.push({name:F[1],example:F[2].trim()})}}let U,q=G.match(/returns\s*:\s*(.+?)(?:\n|$)/);if(q)U=q[1].trim();$.set(H,{params:L,returns:U,typeParams:J})}return $}function j5(Z){let $=new Map,X=/^[ \t]*(?:export\s+(?:default\s+)?)?class\s+(\w+)(?:\s+extends\s+\w+)?\s*\{/gm,Q;while((Q=X.exec(Z))!==null){let H=Q[1],K=Q.index+Q[0].length-1,Y=1,z=K+1;while(z<Z.length&&Y>0){if(Z[z]==="{")Y++;else if(Z[z]==="}")Y--;z++}let W=Z.slice(K+1,z-1),G=W.indexOf("constructor"),J="";if(G!==-1){let _=W.indexOf("(",G);if(_!==-1){let U=1,q=_+1;while(q<W.length&&U>0){if(W[q]==="(")U++;else if(W[q]===")")U--;q++}J=W.slice(_+1,q-1).trim()}}let L=[];{let _=0,U=0;while(_<W.length){let q=W[_];if(q==="{"){U++,_++;continue}if(q==="}"){U--,_++;continue}if(U===0){let A=W.slice(_).match(/^(\w+)\s*\(/);if(A){let M=A[1];if(M==="constructor"||M==="get"||M==="set"){_+=M.length;continue}else{let R=_+A[0].length-1,F=1,B=R+1;while(B<W.length&&F>0){if(W[B]==="(")F++;else if(W[B]===")")F--;B++}let w=W.slice(R+1,B-1).trim(),O=W.slice(B).match(/^\s*->\s*(.+?)\s*\{/),V=O?O[1].trim():null;L.push({name:M,params:w,returnType:V}),_=B;continue}}}_++}}$.set(H,{name:H,constructorParams:J,methods:L})}return $}function b7(Z){let $=[],X=0,Q="";for(let H of Z){if(H==="{"||H==="["||H==="(")X++;else if(H==="}"||H==="]"||H===")")X--;if(H===","&&X===0)$.push(Q.trim()),Q="";else Q+=H}if(Q.trim())$.push(Q.trim());return $}function g7(Z){if(!Z.trim())return"";return b7(Z).map(($)=>{let X=$.match(/^(\w+)\s*:\s*(.+)$/);if(X){let H=X[1],K=t1(X[2].trim());return`${H}: ${K}`}let Q=$.match(/^(\w+)\s*=\s*(.+)$/);if(Q){let H=Q[1],K=t1(Q[2].trim());return`${H}?: ${K}`}if($.startsWith("{"))return"options: any";return`${$}: any`}).join(", ")}function F5(Z){let $=new Map,X,Q=/^[ \t]*(?:export\s+)?Type\s+(\w+)\s*=\s*(.+)$/gm;while((X=Q.exec(Z))!==null)$.set(X[1],X[2].trim());let H=/^[ \t]*(?:export\s+)?Type\s+(\w+)\s+([^{=].*)$/gm;while((X=H.exec(Z))!==null)if(!$.has(X[1]))$.set(X[1],X[2].trim());let K=/^[ \t]*(?:export\s+)?Type\s+(\w+)\s*\{[^}]*example\s*:\s*(.+?)(?:\n|\s*[,}])/gm;while((X=K.exec(Z))!==null)$.set(X[1],X[2].trim());return $}function P5(Z){let $=new Map,X=/^[ \t]*(?:export\s+)?Generic\s+(\w+)\s*<([^>]+)>\s*\{/gm,Q;while((Q=X.exec(Z))!==null){let H=Q[1],K=Q[2].split(",").map((_)=>{return _.trim().split(/\s*=/)[0].trim()}),Y=Q.index+Q[0].length-1,z=1,W=Y+1;while(W<Z.length&&z>0){if(Z[W]==="{")z++;else if(Z[W]==="}")z--;W++}let G=Z.slice(Y+1,W-1),J,L=G.match(/\bdeclaration\s*\{/);if(L&&L.index!==void 0){let _=L.index+L[0].length-1,U=1,q=_+1;while(q<G.length&&U>0){if(G[q]==="{")U++;else if(G[q]==="}")U--;q++}J=G.slice(_+1,q-1).trim()}$.set(H,{typeParams:K,declaration:J})}return $}function V5(Z,$,X={}){let Q=[],H=M5($),K=F5($),Y=j5($),z=P5($),W=H.size>0,G=new Set;for(let[L,_]of Object.entries(Z.types)){if(L.includes("$"))continue;let U=H.get(L),q=W?!!U?.exported:!0,A=U?.isDefault??!1;if(!q)continue;if(_.description)Q.push(`/** ${_.description} */`);Q.push(R5(L,_,!0,A)),G.add(L)}for(let[L,_]of Y){if(G.has(L))continue;let U=H.get(L);if(!(W?!!U?.exported:!0))continue;let A=_.constructorParams?g7(_.constructorParams):"";if(Q.push(`export declare function ${L}(${A}): any;`),A||_.methods.length>0){if(Q.push(`export declare class ${L} {`),_.constructorParams)Q.push(` constructor(${A});`);for(let M of _.methods){let R=M.params?g7(M.params):"";Q.push(` ${M.name}(${R}): any;`)}Q.push("}")}G.add(L)}for(let[L,_]of K){if(G.has(L))continue;let U=H.get(L);if(!(W?!!U?.exported:!0))continue;let A=t1(_);Q.push(`export declare const ${L}: { check(value: any): boolean; default: ${A}; (value: any): boolean; };`),G.add(L)}for(let[L,_]of z){if(G.has(L))continue;let U=H.get(L);if(!(W?!!U?.exported:!0))continue;let A=_.typeParams.length>0?`<${_.typeParams.join(", ")}>`:"";if(_.declaration){let M=_.declaration.split(`
349
349
  `).map((R)=>R.trim()).filter((R)=>R.length>0).map((R)=>` ${R}`).join(`
350
- `);Q.push(`export interface ${L}${I} {
350
+ `);Q.push(`export interface ${L}${A} {
351
351
  ${M}
352
- }`)}else Q.push(`export declare function ${L}(...args: any[]): { check(value: any): boolean; (value: any): boolean; };`);G.add(L)}let J=w5($);for(let[L,_]of J){if(G.has(L))continue;let U=H.get(L);if(!(W?!!U?.exported:!0))continue;let I=new Set(_.typeParams?.map((B)=>B.split("=")[0].trim())??[]),M=_.typeParams?`<${_.typeParams.join(", ")}>`:"",R=_.params.map((B)=>{let F=I.has(B.example)?B.example:r1(B.example);return`${B.name}: ${F}`}).join(", "),P=_.returns!==void 0?I.has(_.returns)?_.returns:r1(_.returns):"void";Q.push(`export type ${L}${M} = (${R}) => ${P};`),G.add(L)}if(X.moduleName){let L=Q.map((_)=>` ${_}`).join(`
352
+ }`)}else Q.push(`export declare function ${L}(...args: any[]): { check(value: any): boolean; (value: any): boolean; };`);G.add(L)}let J=w5($);for(let[L,_]of J){if(G.has(L))continue;let U=H.get(L);if(!(W?!!U?.exported:!0))continue;let A=new Set(_.typeParams?.map((B)=>B.split("=")[0].trim())??[]),M=_.typeParams?`<${_.typeParams.join(", ")}>`:"",R=_.params.map((B)=>{let w=A.has(B.example)?B.example:t1(B.example);return`${B.name}: ${w}`}).join(", "),F=_.returns!==void 0?A.has(_.returns)?_.returns:t1(_.returns):"void";Q.push(`export type ${L}${M} = (${R}) => ${F};`),G.add(L)}if(X.moduleName){let L=Q.map((_)=>` ${_}`).join(`
353
353
  `);return`declare module '${X.moduleName}' {
354
354
  ${L}
355
355
  }
356
356
  `}return Q.join(`
357
357
  `)+`
358
- `}function r1(Z){let $=Z.trim();if(C5($)){let X=O5($).map((Q)=>r1(Q.trim()));return[...new Set(X)].join(" | ")}if(/^['"]/.test($))return"string";if($==="true"||$==="false")return"boolean";if($==="null")return"null";if($==="undefined")return"undefined";if(/^[+-]?\d+\.\d+$/.test($))return"number";if(/^[+-]?\d+$/.test($))return"number";if($.startsWith("["))return"any[]";if($.startsWith("{"))return"Record<string, any>";return"any"}function C5(Z){let $=0,X=null;for(let Q of Z){if(X){if(Q===X)X=null;continue}if(Q==="'"||Q==='"'||Q==="`"){X=Q;continue}if(Q==="{"||Q==="["||Q==="(")$++;else if(Q==="}"||Q==="]"||Q===")")$--;else if(Q==="|"&&$===0)return!0}return!1}function O5(Z){let $=[],X=0,Q=null,H="";for(let K of Z){if(Q){if(H+=K,K===Q)Q=null;continue}if(K==="'"||K==='"'||K==="`"){Q=K,H+=K;continue}if(K==="{"||K==="["||K==="(")X++;else if(K==="}"||K==="]"||K===")")X--;if(K==="|"&&X===0)$.push(H),H="";else H+=K}if(H)$.push(H);return $}import j from"typescript";var f7=new Set(["Event","CustomEvent","MouseEvent","KeyboardEvent","PointerEvent","TouchEvent","FocusEvent","InputEvent","CompositionEvent","WheelEvent","DragEvent","AnimationEvent","TransitionEvent","ClipboardEvent","UIEvent","ProgressEvent","ErrorEvent","MessageEvent","PopStateEvent","HashChangeEvent","PageTransitionEvent","StorageEvent","BeforeUnloadEvent","SubmitEvent","EventTarget","EventListener","Node","Element","HTMLElement","SVGElement","Document","DocumentFragment","ShadowRoot","Text","Comment","Attr","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","HTMLButtonElement","HTMLFormElement","HTMLAnchorElement","HTMLImageElement","HTMLVideoElement","HTMLAudioElement","HTMLCanvasElement","HTMLDivElement","HTMLSpanElement","HTMLParagraphElement","HTMLTableElement","HTMLTemplateElement","HTMLSlotElement","HTMLDialogElement","HTMLDetailsElement","HTMLLabelElement","HTMLOptionElement","HTMLIFrameElement","HTMLScriptElement","HTMLStyleElement","HTMLLinkElement","HTMLMetaElement","HTMLHeadElement","HTMLBodyElement","HTMLMediaElement","SVGSVGElement","SVGPathElement","SVGGElement","SVGCircleElement","SVGRectElement","SVGTextElement","SVGLineElement","SVGPolygonElement","NodeList","HTMLCollection","NamedNodeMap","DOMTokenList","DOMStringMap","CSSStyleDeclaration","DOMRect","DOMRectReadOnly","DOMPoint","DOMMatrix","Range","Selection","StaticRange","MutationObserver","MutationRecord","IntersectionObserver","IntersectionObserverEntry","ResizeObserver","ResizeObserverEntry","PerformanceObserver","PerformanceEntry","Window","Location","History","Navigator","Screen","Storage","CanvasRenderingContext2D","WebGLRenderingContext","WebGL2RenderingContext","OffscreenCanvas","ImageData","ImageBitmap","MediaStream","MediaRecorder","AudioContext","AudioNode","AudioBuffer","Worker","SharedWorker","ServiceWorker","ServiceWorkerRegistration","BroadcastChannel","MessageChannel","MessagePort","WebSocket","XMLHttpRequest","FileReader","FileList","DataTransfer","Crypto","SubtleCrypto","CryptoKey","Geolocation","Notification","PermissionStatus","MediaQueryList","TreeWalker","NodeIterator","ClipboardItem"]);function y(Z,$,X,Q){if(!Z)return"undefined";switch(Z.kind){case j.SyntaxKind.StringKeyword:return"''";case j.SyntaxKind.NumberKeyword:return"0.0";case j.SyntaxKind.BooleanKeyword:return"false";case j.SyntaxKind.NullKeyword:return"null";case j.SyntaxKind.UndefinedKeyword:return"undefined";case j.SyntaxKind.VoidKeyword:return"undefined";case j.SyntaxKind.AnyKeyword:return"any";case j.SyntaxKind.UnknownKeyword:return"any";case j.SyntaxKind.NeverKeyword:return"null";case j.SyntaxKind.SymbolKeyword:return"Symbol('example')";case j.SyntaxKind.BigIntKeyword:return"0n";case j.SyntaxKind.ObjectKeyword:return"{}";case j.SyntaxKind.ArrayType:{let K=y(Z.elementType,$);if(K==="any")K="null";return`[${K}]`}case j.SyntaxKind.TypeReference:{let H=Z,K=H.typeName.getText();if(K==="Array"&&H.typeArguments?.length)return`[${y(H.typeArguments[0],$,X,Q)}]`;if(K==="Promise"){if(H.typeArguments?.length)return y(H.typeArguments[0],$,X,Q);return"undefined"}if(K==="Generator"||K==="AsyncGenerator"||K==="IterableIterator"||K==="AsyncIterableIterator"){if(H.typeArguments?.length)return y(H.typeArguments[0],$,X,Q);return"undefined"}if(K==="Record")return"{}";let Y={Map:"new Map()",Set:"new Set()",WeakMap:"new WeakMap()",WeakSet:"new WeakSet()",WeakRef:"new WeakRef({})",Error:"new Error('example')",TypeError:"new TypeError('example')",RangeError:"new RangeError('example')",SyntaxError:"new SyntaxError('example')",ReferenceError:"new ReferenceError('example')",URIError:"new URIError('example')",EvalError:"new EvalError('example')",Date:"new Date()",RegExp:"/example/",ArrayBuffer:"new ArrayBuffer(0)",SharedArrayBuffer:"new SharedArrayBuffer(0)",DataView:"new DataView(new ArrayBuffer(0))",Float32Array:"new Float32Array(0)",Float64Array:"new Float64Array(0)",Int8Array:"new Int8Array(0)",Int16Array:"new Int16Array(0)",Int32Array:"new Int32Array(0)",Uint8Array:"new Uint8Array(0)",Uint16Array:"new Uint16Array(0)",Uint32Array:"new Uint32Array(0)",Uint8ClampedArray:"new Uint8ClampedArray(0)",BigInt64Array:"new BigInt64Array(0)",BigUint64Array:"new BigUint64Array(0)",URL:"new URL('https://example.com')",URLSearchParams:"new URLSearchParams()",Headers:"new Headers()",FormData:"new FormData()",Blob:"new Blob()",File:"new File([], 'example')",Response:"new Response()",Request:"new Request('https://example.com')",AbortController:"new AbortController()",AbortSignal:"AbortSignal.abort()",ReadableStream:"new ReadableStream()",WritableStream:"new WritableStream()",TransformStream:"new TransformStream()",TextEncoder:"new TextEncoder()",TextDecoder:"new TextDecoder()",Promise:"Promise.resolve(null)"};if(K in Y)return Y[K];if(Q?.typeAliases?.has(K)){let z=Q.visited??new Set;if(z.has(K))return X?.push(`Circular type reference '${K}' - using 'any'`),"any";z.add(K);let W=Q.typeAliases.get(K);return y(W,$,X,{...Q,visited:z})}if(Q?.interfaces?.has(K)){let z=Q.visited??new Set;if(z.has(K))return X?.push(`Circular type reference '${K}' - using 'any'`),"any";z.add(K);let W=Q.interfaces.get(K),G=[];for(let J of W.members)if(j.isPropertySignature(J)&&J.name){let L=J.name.getText(Q.sourceFile),_=y(J.type,$,X,{...Q,visited:z});G.push(`${L}: ${_}`)}return`{ ${G.join(", ")} }`}if(Q?.typeParams?.has(K)){let z=Q.typeParams.get(K);if(z.constraint)return y(z.constraint,$,X,Q);if(z.default)return y(z.default,$,X,Q)}if(f7.has(K))return"{}";if(/^[A-Z]$/.test(K)||["T","K","V","U","TKey","TValue","TItem","TResult"].includes(K))return X?.push(`Generic type parameter '${K}' converted to 'any' - consider specializing`),"any";return X?.push(`Unknown type '${K}' converted to 'any' - may need manual review`),"any"}case j.SyntaxKind.TypeLiteral:{let H=Z,K=[];for(let Y of H.members)if(j.isPropertySignature(Y)&&Y.name){let z=Y.name.getText(),W=y(Y.type,$);if(W==="any")W="null";K.push(`${z}: ${W}`)}return`{ ${K.join(", ")} }`}case j.SyntaxKind.UnionType:{let H=Z,K=(L)=>L.kind===j.SyntaxKind.NullKeyword||j.isLiteralTypeNode(L)&&L.literal.kind===j.SyntaxKind.NullKeyword,Y=(L)=>L.kind===j.SyntaxKind.UndefinedKeyword||j.isLiteralTypeNode(L)&&L.literal.kind===j.SyntaxKind.UndefinedKeyword,z=H.types.filter((L)=>!K(L)&&!Y(L)),W=H.types.some(K),G=H.types.some(Y);if(z.length===0){if(W)return"null";return"undefined"}if(z.length===1&&(W||G)){let L=y(z[0],$);if(W)return`${L} | null`;if(G)return`${L} | undefined`}let J=H.types.map((L)=>y(L,$,X,Q)).filter((L,_,U)=>U.indexOf(L)===_);if(J.some((L)=>L==="any"))return"any";if(J.length===1)return J[0];if(J.length>0){if(J.some((_)=>/[()]/.test(_)||_.startsWith("new ")))return"any";return J.join(" | ")}return"undefined"}case j.SyntaxKind.LiteralType:{let H=Z;if(j.isStringLiteral(H.literal))return`'${H.literal.text}'`;if(j.isNumericLiteral(H.literal))return H.literal.text;if(H.literal.kind===j.SyntaxKind.TrueKeyword)return"true";if(H.literal.kind===j.SyntaxKind.FalseKeyword)return"false";if(H.literal.kind===j.SyntaxKind.NullKeyword)return"null";return"undefined"}case j.SyntaxKind.ParenthesizedType:return y(Z.type,$);case j.SyntaxKind.FunctionType:{let H=Z,K=[];for(let W of H.parameters){let G=W.name?.getText()||"_";if(G==="this")continue;let J=y(W.type,$,X,Q);if(J==="any")J="null";K.push(`${G}: ${J}`)}let Y=y(H.type,$,X,Q);if(Y==="any")Y="null";let z=[];if(K.length>0)z.push(`params: { ${K.join(", ")} }`);if(Y!=="undefined")z.push(`returns: ${Y}`);return`FunctionPredicate('function', { ${z.join(", ")} })`}case j.SyntaxKind.TupleType:return`[${Z.elements.map((Y)=>{let z=j.isNamedTupleMember(Y)?y(Y.type,$):y(Y,$);return z==="any"?"null":z}).join(", ")}]`;default:return"undefined"}}function o(Z,$){if(!Z)return{kind:"any"};switch(Z.kind){case j.SyntaxKind.StringKeyword:return{kind:"string"};case j.SyntaxKind.NumberKeyword:return{kind:"number"};case j.SyntaxKind.BooleanKeyword:return{kind:"boolean"};case j.SyntaxKind.NullKeyword:return{kind:"null"};case j.SyntaxKind.UndefinedKeyword:case j.SyntaxKind.VoidKeyword:return{kind:"undefined"};case j.SyntaxKind.ArrayType:return{kind:"array",items:o(Z.elementType,$)};case j.SyntaxKind.TypeLiteral:{let X=Z,Q={};for(let H of X.members)if(j.isPropertySignature(H)&&H.name){let K=H.name.getText();Q[K]=o(H.type,$)}return{kind:"object",shape:Q}}case j.SyntaxKind.UnionType:{let X=Z,Q=X.types.filter((K)=>K.kind!==j.SyntaxKind.NullKeyword&&K.kind!==j.SyntaxKind.UndefinedKeyword),H=X.types.some((K)=>K.kind===j.SyntaxKind.NullKeyword);if(Q.length===1&&H)return{...o(Q[0],$),nullable:!0};return{kind:"union",members:X.types.map((K)=>o(K,$))}}case j.SyntaxKind.IntersectionType:{let X=Z,Q={};for(let H of X.types){let K=o(H,$);if(K.kind==="object"&&K.shape)Object.assign(Q,K.shape)}if(Object.keys(Q).length>0)return{kind:"object",shape:Q};return{kind:"any"}}case j.SyntaxKind.TupleType:{let X=Z,Q=[];for(let H of X.elements)if(j.isNamedTupleMember(H))Q.push(o(H.type,$));else Q.push(o(H,$));return{kind:"tuple",elements:Q}}case j.SyntaxKind.TypeReference:{let X=Z,Q=X.typeName.getText();if(Q==="Array"&&X.typeArguments?.length)return{kind:"array",items:o(X.typeArguments[0],$)};if(Q==="Promise"&&X.typeArguments?.length)return o(X.typeArguments[0],$);if((Q==="Generator"||Q==="AsyncGenerator"||Q==="IterableIterator"||Q==="AsyncIterableIterator")&&X.typeArguments?.length)return o(X.typeArguments[0],$);if(X.typeArguments?.length){let H=o(X.typeArguments[0],$);if(Q==="Partial")return H;if(Q==="Required")return H;if(Q==="Readonly")return H;if(Q==="Record"&&X.typeArguments.length>=2)return{kind:"object",shape:{"[key]":o(X.typeArguments[1],$)}};if(Q==="Pick"||Q==="Omit")return H;if(Q==="NonNullable"){if(H.nullable)return{...H,nullable:!1};return H}if(["ReturnType","Parameters","ConstructorParameters"].includes(Q))return{kind:"any"}}if($?.typeAliases?.has(Q)){let H=$.visited??new Set;if(H.has(Q))return{kind:"any"};H.add(Q);let K=$.typeAliases.get(Q);return o(K,{...$,visited:H})}if($?.interfaces?.has(Q)){let H=$.visited??new Set;if(H.has(Q))return{kind:"any"};H.add(Q);let K=$.interfaces.get(Q),Y={};if(K.heritageClauses){for(let z of K.heritageClauses)if(z.token===j.SyntaxKind.ExtendsKeyword)for(let W of z.types){let G=W.expression.getText($.sourceFile);if($.interfaces?.has(G)&&!H.has(G)){let J={kind:j.SyntaxKind.TypeReference,typeName:{getText:()=>G}},L=o(J,{...$,visited:H});if(L.kind==="object"&&L.shape)Object.assign(Y,L.shape)}}}for(let z of K.members)if(j.isPropertySignature(z)&&z.name){let W=z.name.getText($.sourceFile);Y[W]=o(z.type,{...$,visited:H})}return{kind:"object",shape:Y}}if($?.typeParams?.has(Q)){let H=$.typeParams.get(Q);if(H.constraint)return o(H.constraint,$);if(H.default)return o(H.default,$)}if(f7.has(Q))return{kind:"object"};return{kind:"any"}}default:return{kind:"any"}}}function N5(Z,$){if(!Z.typeParameters||Z.typeParameters.length===0)return;let X={};for(let Q of Z.typeParameters){let H=Q.name.getText(),K={};if(Q.constraint){let Y=y(Q.constraint,void 0,$);if(Y.startsWith("{"))try{K.constraint=Y}catch{K.constraint=Y}else K.constraint=Y}if(Q.default){let Y=y(Q.default,void 0,$);K.default=Y}X[H]=K}return Object.keys(X).length>0?X:void 0}function E5(Z,$,X,Q){let H=Z.name.getText($);if(Z.typeParameters&&Z.typeParameters.length>0)return T5(Z,$,X,Q);let K=Q?.find((G)=>G.kind==="example"),Y=Q?.find((G)=>G.kind==="predicate"),z;if(K?.text)z=K.text;else{let G=[];for(let J of Z.members)if(j.isPropertySignature(J)&&J.name){let L=J.name.getText($),_=y(J.type,void 0,X);if(_==="any")_="null";G.push(`${L}: ${_}`)}if(G.length===0&&!Y)return`Type ${H} {}`;z=G.length>0?`{ ${G.join(", ")} }`:"{}"}let W=[`example: ${z}`];if(Y?.text)W.push(Y.text);return`Type ${H} {
358
+ `}function t1(Z){let $=Z.trim();if(C5($)){let X=O5($).map((Q)=>t1(Q.trim()));return[...new Set(X)].join(" | ")}if(/^['"]/.test($))return"string";if($==="true"||$==="false")return"boolean";if($==="null")return"null";if($==="undefined")return"undefined";if(/^[+-]?\d+\.\d+$/.test($))return"number";if(/^[+-]?\d+$/.test($))return"number";if($.startsWith("["))return"any[]";if($.startsWith("{"))return"Record<string, any>";return"any"}function C5(Z){let $=0,X=null;for(let Q of Z){if(X){if(Q===X)X=null;continue}if(Q==="'"||Q==='"'||Q==="`"){X=Q;continue}if(Q==="{"||Q==="["||Q==="(")$++;else if(Q==="}"||Q==="]"||Q===")")$--;else if(Q==="|"&&$===0)return!0}return!1}function O5(Z){let $=[],X=0,Q=null,H="";for(let K of Z){if(Q){if(H+=K,K===Q)Q=null;continue}if(K==="'"||K==='"'||K==="`"){Q=K,H+=K;continue}if(K==="{"||K==="["||K==="(")X++;else if(K==="}"||K==="]"||K===")")X--;if(K==="|"&&X===0)$.push(H),H="";else H+=K}if(H)$.push(H);return $}import j from"typescript";var f7=new Set(["Event","CustomEvent","MouseEvent","KeyboardEvent","PointerEvent","TouchEvent","FocusEvent","InputEvent","CompositionEvent","WheelEvent","DragEvent","AnimationEvent","TransitionEvent","ClipboardEvent","UIEvent","ProgressEvent","ErrorEvent","MessageEvent","PopStateEvent","HashChangeEvent","PageTransitionEvent","StorageEvent","BeforeUnloadEvent","SubmitEvent","EventTarget","EventListener","Node","Element","HTMLElement","SVGElement","Document","DocumentFragment","ShadowRoot","Text","Comment","Attr","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","HTMLButtonElement","HTMLFormElement","HTMLAnchorElement","HTMLImageElement","HTMLVideoElement","HTMLAudioElement","HTMLCanvasElement","HTMLDivElement","HTMLSpanElement","HTMLParagraphElement","HTMLTableElement","HTMLTemplateElement","HTMLSlotElement","HTMLDialogElement","HTMLDetailsElement","HTMLLabelElement","HTMLOptionElement","HTMLIFrameElement","HTMLScriptElement","HTMLStyleElement","HTMLLinkElement","HTMLMetaElement","HTMLHeadElement","HTMLBodyElement","HTMLMediaElement","SVGSVGElement","SVGPathElement","SVGGElement","SVGCircleElement","SVGRectElement","SVGTextElement","SVGLineElement","SVGPolygonElement","NodeList","HTMLCollection","NamedNodeMap","DOMTokenList","DOMStringMap","CSSStyleDeclaration","DOMRect","DOMRectReadOnly","DOMPoint","DOMMatrix","Range","Selection","StaticRange","MutationObserver","MutationRecord","IntersectionObserver","IntersectionObserverEntry","ResizeObserver","ResizeObserverEntry","PerformanceObserver","PerformanceEntry","Window","Location","History","Navigator","Screen","Storage","CanvasRenderingContext2D","WebGLRenderingContext","WebGL2RenderingContext","OffscreenCanvas","ImageData","ImageBitmap","MediaStream","MediaRecorder","AudioContext","AudioNode","AudioBuffer","Worker","SharedWorker","ServiceWorker","ServiceWorkerRegistration","BroadcastChannel","MessageChannel","MessagePort","WebSocket","XMLHttpRequest","FileReader","FileList","DataTransfer","Crypto","SubtleCrypto","CryptoKey","Geolocation","Notification","PermissionStatus","MediaQueryList","TreeWalker","NodeIterator","ClipboardItem"]);function x(Z,$,X,Q){if(!Z)return"undefined";switch(Z.kind){case j.SyntaxKind.StringKeyword:return"''";case j.SyntaxKind.NumberKeyword:return"0.0";case j.SyntaxKind.BooleanKeyword:return"false";case j.SyntaxKind.NullKeyword:return"null";case j.SyntaxKind.UndefinedKeyword:return"undefined";case j.SyntaxKind.VoidKeyword:return"undefined";case j.SyntaxKind.AnyKeyword:return"any";case j.SyntaxKind.UnknownKeyword:return"any";case j.SyntaxKind.NeverKeyword:return"null";case j.SyntaxKind.SymbolKeyword:return"Symbol('example')";case j.SyntaxKind.BigIntKeyword:return"0n";case j.SyntaxKind.ObjectKeyword:return"{}";case j.SyntaxKind.ArrayType:{let K=x(Z.elementType,$);if(K==="any")K="null";return`[${K}]`}case j.SyntaxKind.TypeReference:{let H=Z,K=H.typeName.getText();if(K==="Array"&&H.typeArguments?.length)return`[${x(H.typeArguments[0],$,X,Q)}]`;if(K==="Promise"){if(H.typeArguments?.length)return x(H.typeArguments[0],$,X,Q);return"undefined"}if(K==="Generator"||K==="AsyncGenerator"||K==="IterableIterator"||K==="AsyncIterableIterator"){if(H.typeArguments?.length)return x(H.typeArguments[0],$,X,Q);return"undefined"}if(K==="Record")return"{}";let Y={Map:"new Map()",Set:"new Set()",WeakMap:"new WeakMap()",WeakSet:"new WeakSet()",WeakRef:"new WeakRef({})",Error:"new Error('example')",TypeError:"new TypeError('example')",RangeError:"new RangeError('example')",SyntaxError:"new SyntaxError('example')",ReferenceError:"new ReferenceError('example')",URIError:"new URIError('example')",EvalError:"new EvalError('example')",Date:"new Date()",RegExp:"/example/",ArrayBuffer:"new ArrayBuffer(0)",SharedArrayBuffer:"new SharedArrayBuffer(0)",DataView:"new DataView(new ArrayBuffer(0))",Float32Array:"new Float32Array(0)",Float64Array:"new Float64Array(0)",Int8Array:"new Int8Array(0)",Int16Array:"new Int16Array(0)",Int32Array:"new Int32Array(0)",Uint8Array:"new Uint8Array(0)",Uint16Array:"new Uint16Array(0)",Uint32Array:"new Uint32Array(0)",Uint8ClampedArray:"new Uint8ClampedArray(0)",BigInt64Array:"new BigInt64Array(0)",BigUint64Array:"new BigUint64Array(0)",URL:"new URL('https://example.com')",URLSearchParams:"new URLSearchParams()",Headers:"new Headers()",FormData:"new FormData()",Blob:"new Blob()",File:"new File([], 'example')",Response:"new Response()",Request:"new Request('https://example.com')",AbortController:"new AbortController()",AbortSignal:"AbortSignal.abort()",ReadableStream:"new ReadableStream()",WritableStream:"new WritableStream()",TransformStream:"new TransformStream()",TextEncoder:"new TextEncoder()",TextDecoder:"new TextDecoder()",Promise:"Promise.resolve(null)"};if(K in Y)return Y[K];if(Q?.typeAliases?.has(K)){let z=Q.visited??new Set;if(z.has(K))return X?.push(`Circular type reference '${K}' - using 'any'`),"any";z.add(K);let W=Q.typeAliases.get(K);return x(W,$,X,{...Q,visited:z})}if(Q?.interfaces?.has(K)){let z=Q.visited??new Set;if(z.has(K))return X?.push(`Circular type reference '${K}' - using 'any'`),"any";z.add(K);let W=Q.interfaces.get(K),G=[];for(let J of W.members)if(j.isPropertySignature(J)&&J.name){let L=J.name.getText(Q.sourceFile),_=x(J.type,$,X,{...Q,visited:z});G.push(`${L}: ${_}`)}return`{ ${G.join(", ")} }`}if(Q?.typeParams?.has(K)){let z=Q.typeParams.get(K);if(z.constraint)return x(z.constraint,$,X,Q);if(z.default)return x(z.default,$,X,Q)}if(f7.has(K))return"{}";if(/^[A-Z]$/.test(K)||["T","K","V","U","TKey","TValue","TItem","TResult"].includes(K))return X?.push(`Generic type parameter '${K}' converted to 'any' - consider specializing`),"any";return X?.push(`Unknown type '${K}' converted to 'any' - may need manual review`),"any"}case j.SyntaxKind.TypeLiteral:{let H=Z,K=[];for(let Y of H.members)if(j.isPropertySignature(Y)&&Y.name){let z=Y.name.getText(),W=x(Y.type,$);if(W==="any")W="null";K.push(`${z}: ${W}`)}return`{ ${K.join(", ")} }`}case j.SyntaxKind.UnionType:{let H=Z,K=(L)=>L.kind===j.SyntaxKind.NullKeyword||j.isLiteralTypeNode(L)&&L.literal.kind===j.SyntaxKind.NullKeyword,Y=(L)=>L.kind===j.SyntaxKind.UndefinedKeyword||j.isLiteralTypeNode(L)&&L.literal.kind===j.SyntaxKind.UndefinedKeyword,z=H.types.filter((L)=>!K(L)&&!Y(L)),W=H.types.some(K),G=H.types.some(Y);if(z.length===0){if(W)return"null";return"undefined"}if(z.length===1&&(W||G)){let L=x(z[0],$,X,Q);if(L==="any")return"any";if(W)return`${L} | null`;if(G)return`${L} | undefined`}let J=H.types.map((L)=>x(L,$,X,Q)).filter((L,_,U)=>U.indexOf(L)===_);if(J.some((L)=>L==="any"))return"any";if(J.length===1)return J[0];if(J.length>0){if(J.some((_)=>/[()]/.test(_)||_.startsWith("new ")))return"any";return J.join(" | ")}return"undefined"}case j.SyntaxKind.LiteralType:{let H=Z;if(j.isStringLiteral(H.literal))return`'${H.literal.text}'`;if(j.isNumericLiteral(H.literal))return H.literal.text;if(H.literal.kind===j.SyntaxKind.TrueKeyword)return"true";if(H.literal.kind===j.SyntaxKind.FalseKeyword)return"false";if(H.literal.kind===j.SyntaxKind.NullKeyword)return"null";return"undefined"}case j.SyntaxKind.ParenthesizedType:return x(Z.type,$);case j.SyntaxKind.FunctionType:{let H=Z,K=[];for(let W of H.parameters){let G=W.name?.getText()||"_";if(G==="this")continue;let J=x(W.type,$,X,Q);if(J==="any")J="null";K.push(`${G}: ${J}`)}let Y=x(H.type,$,X,Q);if(Y==="any")Y="null";let z=[];if(K.length>0)z.push(`params: { ${K.join(", ")} }`);if(Y!=="undefined")z.push(`returns: ${Y}`);return`FunctionPredicate('function', { ${z.join(", ")} })`}case j.SyntaxKind.TupleType:return`[${Z.elements.map((Y)=>{let z=j.isNamedTupleMember(Y)?x(Y.type,$):x(Y,$);return z==="any"?"null":z}).join(", ")}]`;default:return"undefined"}}function a(Z,$){if(!Z)return{kind:"any"};switch(Z.kind){case j.SyntaxKind.StringKeyword:return{kind:"string"};case j.SyntaxKind.NumberKeyword:return{kind:"number"};case j.SyntaxKind.BooleanKeyword:return{kind:"boolean"};case j.SyntaxKind.NullKeyword:return{kind:"null"};case j.SyntaxKind.UndefinedKeyword:case j.SyntaxKind.VoidKeyword:return{kind:"undefined"};case j.SyntaxKind.ArrayType:return{kind:"array",items:a(Z.elementType,$)};case j.SyntaxKind.TypeLiteral:{let X=Z,Q={};for(let H of X.members)if(j.isPropertySignature(H)&&H.name){let K=H.name.getText();Q[K]=a(H.type,$)}return{kind:"object",shape:Q}}case j.SyntaxKind.UnionType:{let X=Z,Q=X.types.filter((K)=>K.kind!==j.SyntaxKind.NullKeyword&&K.kind!==j.SyntaxKind.UndefinedKeyword),H=X.types.some((K)=>K.kind===j.SyntaxKind.NullKeyword);if(Q.length===1&&H)return{...a(Q[0],$),nullable:!0};return{kind:"union",members:X.types.map((K)=>a(K,$))}}case j.SyntaxKind.IntersectionType:{let X=Z,Q={};for(let H of X.types){let K=a(H,$);if(K.kind==="object"&&K.shape)Object.assign(Q,K.shape)}if(Object.keys(Q).length>0)return{kind:"object",shape:Q};return{kind:"any"}}case j.SyntaxKind.TupleType:{let X=Z,Q=[];for(let H of X.elements)if(j.isNamedTupleMember(H))Q.push(a(H.type,$));else Q.push(a(H,$));return{kind:"tuple",elements:Q}}case j.SyntaxKind.TypeReference:{let X=Z,Q=X.typeName.getText();if(Q==="Array"&&X.typeArguments?.length)return{kind:"array",items:a(X.typeArguments[0],$)};if(Q==="Promise"&&X.typeArguments?.length)return a(X.typeArguments[0],$);if((Q==="Generator"||Q==="AsyncGenerator"||Q==="IterableIterator"||Q==="AsyncIterableIterator")&&X.typeArguments?.length)return a(X.typeArguments[0],$);if(X.typeArguments?.length){let H=a(X.typeArguments[0],$);if(Q==="Partial")return H;if(Q==="Required")return H;if(Q==="Readonly")return H;if(Q==="Record"&&X.typeArguments.length>=2)return{kind:"object",shape:{"[key]":a(X.typeArguments[1],$)}};if(Q==="Pick"||Q==="Omit")return H;if(Q==="NonNullable"){if(H.nullable)return{...H,nullable:!1};return H}if(["ReturnType","Parameters","ConstructorParameters"].includes(Q))return{kind:"any"}}if($?.typeAliases?.has(Q)){let H=$.visited??new Set;if(H.has(Q))return{kind:"any"};H.add(Q);let K=$.typeAliases.get(Q);return a(K,{...$,visited:H})}if($?.interfaces?.has(Q)){let H=$.visited??new Set;if(H.has(Q))return{kind:"any"};H.add(Q);let K=$.interfaces.get(Q),Y={};if(K.heritageClauses){for(let z of K.heritageClauses)if(z.token===j.SyntaxKind.ExtendsKeyword)for(let W of z.types){let G=W.expression.getText($.sourceFile);if($.interfaces?.has(G)&&!H.has(G)){let J={kind:j.SyntaxKind.TypeReference,typeName:{getText:()=>G}},L=a(J,{...$,visited:H});if(L.kind==="object"&&L.shape)Object.assign(Y,L.shape)}}}for(let z of K.members)if(j.isPropertySignature(z)&&z.name){let W=z.name.getText($.sourceFile);Y[W]=a(z.type,{...$,visited:H})}return{kind:"object",shape:Y}}if($?.typeParams?.has(Q)){let H=$.typeParams.get(Q);if(H.constraint)return a(H.constraint,$);if(H.default)return a(H.default,$)}if(f7.has(Q))return{kind:"object"};return{kind:"any"}}default:return{kind:"any"}}}function N5(Z,$){if(!Z.typeParameters||Z.typeParameters.length===0)return;let X={};for(let Q of Z.typeParameters){let H=Q.name.getText(),K={};if(Q.constraint){let Y=x(Q.constraint,void 0,$);if(Y.startsWith("{"))try{K.constraint=Y}catch{K.constraint=Y}else K.constraint=Y}if(Q.default){let Y=x(Q.default,void 0,$);K.default=Y}X[H]=K}return Object.keys(X).length>0?X:void 0}function E5(Z,$,X,Q){let H=Z.name.getText($);if(Z.typeParameters&&Z.typeParameters.length>0)return T5(Z,$,X,Q);let K=Q?.find((G)=>G.kind==="example"),Y=Q?.find((G)=>G.kind==="predicate"),z;if(K?.text)z=K.text;else{let G=[];for(let J of Z.members)if(j.isPropertySignature(J)&&J.name){let L=J.name.getText($),_=x(J.type,void 0,X);if(_==="any")_="null";G.push(`${L}: ${_}`)}if(G.length===0&&!Y)return`Type ${H} {}`;z=G.length>0?`{ ${G.join(", ")} }`:"{}"}let W=[`example: ${z}`];if(Y?.text)W.push(Y.text);return`Type ${H} {
359
359
  ${W.join(`
360
360
  `)}
361
- }`}function T5(Z,$,X,Q){let H=Z.name.getText($),K=[];for(let J of Z.typeParameters||[]){let L=J.name.getText($);if(J.default){let _=y(J.default,void 0,X);K.push(`${L} = ${_}`)}else K.push(L)}let Y=Q?.find((J)=>J.kind==="predicate"),z=Q?.find((J)=>J.kind==="declaration"),W;if(Y?.text)W=Y.text;else{let J=(Z.typeParameters||[]).map((U)=>U.name.getText($)),L=["typeof x === 'object'","x !== null"];for(let U of Z.members)if(j.isPropertySignature(U)&&U.name){let q=U.name.getText($),I=q.startsWith("[")&&q.endsWith("]"),M=I?q.slice(1,-1):null;if(I)L.push(`${M} in x`);else L.push(`'${q}' in x`);if(U.type&&j.isTypeReferenceNode(U.type)){let R=U.type.typeName.getText($);if(J.includes(R))if(I)L.push(`${R}(x[${M}])`);else L.push(`${R}(x.${q})`)}}W=`predicate(${["x",...J].join(", ")}) { return ${L.join(" && ")} }`}let G=[`description: '${H}'`,W];if(z?.text)G.push(`declaration ${z.text}`);return`Generic ${H}<${K.join(", ")}> {
361
+ }`}function T5(Z,$,X,Q){let H=Z.name.getText($),K=[];for(let J of Z.typeParameters||[]){let L=J.name.getText($);if(J.default){let _=x(J.default,void 0,X);K.push(`${L} = ${_}`)}else K.push(L)}let Y=Q?.find((J)=>J.kind==="predicate"),z=Q?.find((J)=>J.kind==="declaration"),W;if(Y?.text)W=Y.text;else{let J=(Z.typeParameters||[]).map((U)=>U.name.getText($)),L=["typeof x === 'object'","x !== null"];for(let U of Z.members)if(j.isPropertySignature(U)&&U.name){let q=U.name.getText($),A=q.startsWith("[")&&q.endsWith("]"),M=A?q.slice(1,-1):null;if(A)L.push(`${M} in x`);else L.push(`'${q}' in x`);if(U.type&&j.isTypeReferenceNode(U.type)){let R=U.type.typeName.getText($);if(J.includes(R))if(A)L.push(`${R}(x[${M}])`);else L.push(`${R}(x.${q})`)}}W=`predicate(${["x",...J].join(", ")}) { return ${L.join(" && ")} }`}let G=[`description: '${H}'`,W];if(z?.text)G.push(`declaration ${z.text}`);return`Generic ${H}<${K.join(", ")}> {
362
362
  ${G.join(`
363
363
  `)}
364
364
  }`}function S5(Z,$){if(!j.isUnionTypeNode(Z))return null;let X=[];for(let Q of Z.types)if(j.isLiteralTypeNode(Q))if(j.isStringLiteral(Q.literal))X.push(`'${Q.literal.text}'`);else if(j.isNumericLiteral(Q.literal))X.push(Q.literal.text);else if(Q.literal.kind===j.SyntaxKind.TrueKeyword)X.push("true");else if(Q.literal.kind===j.SyntaxKind.FalseKeyword)X.push("false");else if(Q.literal.kind===j.SyntaxKind.NullKeyword)X.push("null");else return null;else if(Q.kind===j.SyntaxKind.NullKeyword)X.push("null");else if(Q.kind===j.SyntaxKind.UndefinedKeyword)X.push("undefined");else return null;return X.length>0?X:null}function k5(Z,$,X){let Q=Z.name.getText($),H=[],K=0;for(let Y of Z.members){let z=Y.name.getText($);if(Y.initializer)if(j.isStringLiteral(Y.initializer))H.push(` ${z} = '${Y.initializer.text}'`);else if(j.isNumericLiteral(Y.initializer)){let W=parseInt(Y.initializer.text,10);H.push(` ${z} = ${W}`),K=W+1}else if(j.isPrefixUnaryExpression(Y.initializer)&&Y.initializer.operator===j.SyntaxKind.MinusToken){let W=Y.initializer.operand;if(j.isNumericLiteral(W)){let G=-parseInt(W.text,10);H.push(` ${z} = ${G}`),K=G+1}}else H.push(` ${z} = ${Y.initializer.getText($)}`);else H.push(` ${z} = ${K}`),K++}return`Enum ${Q} '${Q}' {
365
365
  ${H.join(`
366
366
  `)}
367
- }`}function g5(Z,$,X,Q){let H=Z.name.getText($);if(Z.typeParameters&&Z.typeParameters.length>0){if(Z.type.kind===j.SyntaxKind.FunctionType)return b5(Z,$,X);return v5(Z,$,X,Q)}let K=S5(Z.type,$);if(K)return`Union ${H} '${H}' ${K.join(" | ")}`;if(Z.type.kind===j.SyntaxKind.FunctionType){let z=Z.type,W=[];for(let L of z.parameters){let _=L.name?.getText($)||"_";if(_==="this")continue;let U=y(L.type,void 0,X);if(U==="any")U="null";W.push(`${_}: ${U}`)}let G=y(z.type,void 0,X);if(G==="any")G="null";let J=[];if(W.length>0)J.push(`params: { ${W.join(", ")} }`);if(G!=="undefined")J.push(`returns: ${G}`);return`FunctionPredicate ${H} {
367
+ }`}function g5(Z,$,X,Q){let H=Z.name.getText($);if(Z.typeParameters&&Z.typeParameters.length>0){if(Z.type.kind===j.SyntaxKind.FunctionType)return b5(Z,$,X);return v5(Z,$,X,Q)}let K=S5(Z.type,$);if(K)return`Union ${H} '${H}' ${K.join(" | ")}`;if(Z.type.kind===j.SyntaxKind.FunctionType){let z=Z.type,W=[];for(let L of z.parameters){let _=L.name?.getText($)||"_";if(_==="this")continue;let U=x(L.type,void 0,X);if(U==="any")U="null";W.push(`${_}: ${U}`)}let G=x(z.type,void 0,X);if(G==="any")G="null";let J=[];if(W.length>0)J.push(`params: { ${W.join(", ")} }`);if(G!=="undefined")J.push(`returns: ${G}`);return`FunctionPredicate ${H} {
368
368
  ${J.join(`
369
369
  `)}
370
- }`}let Y=y(Z.type,void 0,X);if(Y==="any"||Y==="undefined")return`Type ${H} {}`;if(Y==="''"||Y==="0"||Y==="true"||Y==="null")return`Type ${H} ${Y}`;return`Type ${H} {
370
+ }`}let Y=x(Z.type,void 0,X);if(Y==="any"||Y==="undefined")return`Type ${H} {}`;if(Y==="''"||Y==="0"||Y==="true"||Y==="null")return`Type ${H} ${Y}`;return`Type ${H} {
371
371
  example: ${Y}
372
- }`}function b5(Z,$,X){let Q=Z.name.getText($),H=Z.type,K=new Set,Y=[];for(let L of Z.typeParameters){let _=L.name.getText($);if(K.add(_),L.default){let U=y(L.default,void 0,X);Y.push(`${_} = ${U}`)}else Y.push(_)}let z=[];for(let L of H.parameters){let _=L.name?.getText($)||"_";if(_==="this")continue;let U=L.type?.getText($)||"any";if(K.has(U))z.push(`${_}: ${U}`);else{let q=y(L.type,void 0,X);if(q==="any")q="null";z.push(`${_}: ${q}`)}}let W=H.type?.getText($)||"void",G;if(W!=="void")if(K.has(W))G=W;else{if(G=y(H.type,void 0,X),G==="any")G="null";if(G==="undefined")G=void 0}let J=[];if(z.length>0)J.push(`params: { ${z.join(", ")} }`);if(G!==void 0)J.push(`returns: ${G}`);return`FunctionPredicate ${Q}<${Y.join(", ")}> {
372
+ }`}function b5(Z,$,X){let Q=Z.name.getText($),H=Z.type,K=new Set,Y=[];for(let L of Z.typeParameters){let _=L.name.getText($);if(K.add(_),L.default){let U=x(L.default,void 0,X);Y.push(`${_} = ${U}`)}else Y.push(_)}let z=[];for(let L of H.parameters){let _=L.name?.getText($)||"_";if(_==="this")continue;let U=L.type?.getText($)||"any";if(K.has(U))z.push(`${_}: ${U}`);else{let q=x(L.type,void 0,X);if(q==="any")q="null";z.push(`${_}: ${q}`)}}let W=H.type?.getText($)||"void",G;if(W!=="void")if(K.has(W))G=W;else{if(G=x(H.type,void 0,X),G==="any")G="null";if(G==="undefined")G=void 0}let J=[];if(z.length>0)J.push(`params: { ${z.join(", ")} }`);if(G!==void 0)J.push(`returns: ${G}`);return`FunctionPredicate ${Q}<${Y.join(", ")}> {
373
373
  ${J.join(`
374
374
  `)}
375
- }`}function v5(Z,$,X,Q){let H=Z.name.getText($),K=[];for(let U of Z.typeParameters||[]){let q=U.name.getText($);if(U.default){let I=y(U.default,void 0,X);K.push(`${q} = ${I}`)}else K.push(q)}let Y=(Z.typeParameters||[]).map((U)=>U.name.getText($)),z=Q?.find((U)=>U.kind==="predicate"),W=Q?.find((U)=>U.kind==="declaration"),G;if(z?.text)G=z.text;else G=`predicate(${["x",...Y].join(", ")}) { return true }`;let L=`/* Original TS:
375
+ }`}function v5(Z,$,X,Q){let H=Z.name.getText($),K=[];for(let U of Z.typeParameters||[]){let q=U.name.getText($);if(U.default){let A=x(U.default,void 0,X);K.push(`${q} = ${A}`)}else K.push(q)}let Y=(Z.typeParameters||[]).map((U)=>U.name.getText($)),z=Q?.find((U)=>U.kind==="predicate"),W=Q?.find((U)=>U.kind==="declaration"),G;if(z?.text)G=z.text;else G=`predicate(${["x",...Y].join(", ")}) { return true }`;let L=`/* Original TS:
376
376
  ${Z.getText($).trim()}
377
377
  */`,_=[`description: '${H}'`,G];if(W?.text)_.push(`declaration ${W.text}`);return`${L}
378
378
  Generic ${H}<${K.join(", ")}> {
379
379
  ${_.join(`
380
380
  `)}
381
- }`}function v7(Z,$,X,Q,H,K){let Y;if(Z.typeParameters&&Z.typeParameters.length>0){Y=new Map;for(let w of Z.typeParameters)Y.set(w.name.getText($),{constraint:w.constraint,default:w.default})}let z=Y||K?{...K,typeParams:Y??K?.typeParams}:K,W=[],G=t1(Z.parameters,$,Q,W,z),{line:J}=$.getLineAndCharacterOfPosition(Z.getStart($)),L=H?`/* line ${J+1} */
382
- `:"",_=X||(j.isFunctionDeclaration(Z)&&Z.name?Z.name.getText($):""),U=Z.type?y(Z.type,void 0,Q,z):"",q=U&&U!=="undefined"&&U!=="any"&&!U.startsWith("new ")?` -! ${U}`:"";if(Z.type&&(U==="any"||U==="undefined")){let w=Z.type.getText($);if(w!=="any"&&w!=="unknown"&&w!=="void")W.push(`return: ${w}`)}let I="";if(Z.body){let w=j.isBlock(Z.body)?Z.body.getText($):`{ return ${Z.body.getText($)} }`;I=j.transpileModule(w,{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim()}else I="{ }";let M=Z.modifiers?.some((w)=>w.kind===j.SyntaxKind.ExportKeyword),R=Z.modifiers?.some((w)=>w.kind===j.SyntaxKind.AsyncKeyword),P=!!Z.asteriskToken,B=M?"export ":"",F=R?"async ":"",N=P?"function* ":"function ",V=W.length>0?`/* TODO: TS types degraded — ${W.join(", ")} */
383
- `:"";return`${L}${V}${B}${F}${N}${_}(${G.join(", ")})${q} ${I}`}function f5(Z,$,X,Q){let H=$.name?.getText(X)||"",K=`_${H}_impl`,Y=[],z=t1($.parameters,X,Q),W="{ }";if($.body){let U=$.body.getText(X);W=j.transpileModule(U,{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim()}let G=$.modifiers?.some((U)=>U.kind===j.SyntaxKind.AsyncKeyword),J=!!$.asteriskToken,L=G?"async ":"",_=J?"function* ":"function ";Y.push(`${L}${_}${K}(${z.join(", ")}) ${W}`);for(let U of Z){let q=t1(U.parameters,X,Q),I=U.parameters.map((N)=>N.name.getText(X)),M=U.type?y(U.type,void 0,Q):"",R=M&&M!=="undefined"&&M!=="any"?` -! ${M}`:"",{line:P}=X.getLineAndCharacterOfPosition(U.getStart(X)),B=`/* line ${P+1} */
384
- `,F=J?"yield* ":"return ";Y.push(`${B}${L}${_}${H}(${q.join(", ")})${R} { ${F}${K}(${I.join(", ")}) }`)}return Y}function y5(Z,$,X,Q){let H=Q;if(Z.typeParameters&&Z.typeParameters.length>0){let q=new Map;for(let I of Z.typeParameters)q.set(I.name.getText($),{constraint:I.constraint,default:I.default});H={...Q,typeParams:q}}let K=Z.name?.getText($)||"Anonymous",z=Z.heritageClauses?.find((q)=>q.token===j.SyntaxKind.ExtendsKeyword)?.types[0]?.expression?.getText($),W=new Map;for(let q of Z.members)if(j.isPropertyDeclaration(q)&&q.name){let I=q.name.getText($);if(q.modifiers?.some((R)=>R.kind===j.SyntaxKind.PrivateKeyword)&&!I.startsWith("#"))W.set(I,`#${I}`)}let G=(q)=>{let I=q;for(let[M,R]of W)I=I.replace(new RegExp(`(\\b\\w+)\\.${M}\\b`,"g"),`$1.${R}`);return I},J=[];for(let q of Z.members){if(j.isConstructorDeclaration(q)){let I=t1(q.parameters,$,X),M="{ }";if(q.body){let R=j.transpileModule(q.body.getText($),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});M=G(R.outputText.trim())}J.push(` constructor(${I.join(", ")}) ${M}`)}if(j.isMethodDeclaration(q)&&q.name){let I=q.name.getText($),M=q.modifiers?.some((k)=>k.kind===j.SyntaxKind.StaticKeyword),R=q.modifiers?.some((k)=>k.kind===j.SyntaxKind.AsyncKeyword),P=t1(q.parameters,$,X,void 0,H),B=q.type?y(q.type,void 0,X,H):"",F=B&&B!=="undefined"&&B!=="any"?` -! ${B}`:"",N="{ }";if(q.body){let k=j.transpileModule(q.body.getText($),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});N=G(k.outputText.trim())}let V=!!q.asteriskToken,w=M?"static ":"",C=R?"async ":"",O=V?"*":"";J.push(` ${w}${C}${O}${I}(${P.join(", ")})${F} ${N}`)}if(j.isGetAccessorDeclaration(q)&&q.name){let I=q.name.getText($),M=q.type?y(q.type,void 0,X,H):"",R=M&&M!=="undefined"&&M!=="any"&&!M.startsWith("new ")?` -> ${M}`:"",P="{ }";if(q.body){let B=j.transpileModule(q.body.getText($),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});P=G(B.outputText.trim())}J.push(` get ${I}()${R} ${P}`)}if(j.isSetAccessorDeclaration(q)&&q.name){let I=q.name.getText($),M=t1(q.parameters,$,X),R="{ }";if(q.body){let P=j.transpileModule(q.body.getText($),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});R=G(P.outputText.trim())}J.push(` set ${I}(${M.join(", ")}) ${R}`)}if(j.isPropertyDeclaration(q)&&q.name){let I=q.name.getText($),R=q.modifiers?.some((B)=>B.kind===j.SyntaxKind.StaticKeyword)?"static ":"",P=W.get(I)||I;if(q.initializer){let B=q.initializer.getText($),F=B.trimStart().startsWith("{")?`(${B})`:B,V=j.transpileModule(F,{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim();if(F!==B)V=V.replace(/^\(/,"").replace(/\);?\s*$/,"");J.push(` ${R}${P} = ${V}`)}else J.push(` ${R}${P}`)}}let _=Z.modifiers?.some((q)=>q.kind===j.SyntaxKind.ExportKeyword)?"export ":"",U=z?` extends ${z}`:"";return`${_}class ${K}${U} {
385
- ${J.join(`
381
+ }`}function v7(Z,$,X,Q,H,K){let Y;if(Z.typeParameters&&Z.typeParameters.length>0){Y=new Map;for(let C of Z.typeParameters)Y.set(C.name.getText($),{constraint:C.constraint,default:C.default})}let z=Y||K?{...K,typeParams:Y??K?.typeParams}:K,W=[],G=e1(Z.parameters,$,Q,W,z),{line:J}=$.getLineAndCharacterOfPosition(Z.getStart($)),L=H?`/* line ${J+1} */
382
+ `:"",_=X||(j.isFunctionDeclaration(Z)&&Z.name?Z.name.getText($):""),U=Z.type?x(Z.type,void 0,Q,z):"",q=U&&U!=="undefined"&&U!=="any"&&!U.startsWith("new ")?` -! ${U}`:"";if(Z.type&&(U==="any"||U==="undefined")){let C=Z.type.getText($);if(C!=="any"&&C!=="unknown"&&C!=="void")W.push(`return: ${C}`)}let A="";if(Z.body){let C=j.isBlock(Z.body)?Z.body.getText($):`{ return ${Z.body.getText($)} }`;A=j.transpileModule(C,{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim()}else A="{ }";let M=Z.modifiers?.some((C)=>C.kind===j.SyntaxKind.ExportKeyword),R=Z.modifiers?.some((C)=>C.kind===j.SyntaxKind.AsyncKeyword),F=!!Z.asteriskToken,B=M?"export ":"",w=R?"async ":"",O=F?"function* ":"function ",V=W.length>0?`/* TODO: TS types degraded — ${W.join(", ")} */
383
+ `:"";return`${L}${V}${B}${w}${O}${_}(${G.join(", ")})${q} ${A}`}function f5(Z,$,X,Q){let H=$.name?.getText(X)||"",K=`_${H}_impl`,Y=[],z=e1($.parameters,X,Q),W="{ }";if($.body){let U=$.body.getText(X);W=j.transpileModule(U,{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim()}let G=$.modifiers?.some((U)=>U.kind===j.SyntaxKind.AsyncKeyword),J=!!$.asteriskToken,L=G?"async ":"",_=J?"function* ":"function ";Y.push(`${L}${_}${K}(${z.join(", ")}) ${W}`);for(let U of Z){let q=e1(U.parameters,X,Q),A=U.parameters.map((O)=>O.name.getText(X)),M=U.type?x(U.type,void 0,Q):"",R=M&&M!=="undefined"&&M!=="any"?` -! ${M}`:"",{line:F}=X.getLineAndCharacterOfPosition(U.getStart(X)),B=`/* line ${F+1} */
384
+ `,w=J?"yield* ":"return ";Y.push(`${B}${L}${_}${H}(${q.join(", ")})${R} { ${w}${K}(${A.join(", ")}) }`)}return Y}function y5(Z,$,X,Q,H=!1){let K=Q;if(Z.typeParameters&&Z.typeParameters.length>0){let A=new Map;for(let M of Z.typeParameters)A.set(M.name.getText($),{constraint:M.constraint,default:M.default});K={...Q,typeParams:A}}let Y=Z.name?.getText($)||"Anonymous",W=Z.heritageClauses?.find((A)=>A.token===j.SyntaxKind.ExtendsKeyword)?.types[0]?.expression?.getText($),G=new Map;if(H){for(let A of Z.members)if(j.isPropertyDeclaration(A)&&A.name){let M=A.name.getText($);if(A.modifiers?.some((F)=>F.kind===j.SyntaxKind.PrivateKeyword)&&!M.startsWith("#"))G.set(M,`#${M}`)}}let J=(A)=>{let M=A;for(let[R,F]of G)M=M.replace(new RegExp(`(\\b\\w+)\\.${R}\\b`,"g"),`$1.${F}`);return M},L=[];for(let A of Z.members){if(j.isConstructorDeclaration(A)){let M=e1(A.parameters,$,X),R="{ }";if(A.body){let F=j.transpileModule(A.body.getText($),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});R=J(F.outputText.trim())}L.push(` constructor(${M.join(", ")}) ${R}`)}if(j.isMethodDeclaration(A)&&A.name){let M=A.name.getText($),R=A.modifiers?.some((E)=>E.kind===j.SyntaxKind.StaticKeyword),F=A.modifiers?.some((E)=>E.kind===j.SyntaxKind.AsyncKeyword),B=e1(A.parameters,$,X,void 0,K),w=A.type?x(A.type,void 0,X,K):"",O=w&&w!=="undefined"&&w!=="any"?` -! ${w}`:"",V="{ }";if(A.body){let E=j.transpileModule(A.body.getText($),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});V=J(E.outputText.trim())}let C=!!A.asteriskToken,S=R?"static ":"",P=F?"async ":"",k=C?"*":"";L.push(` ${S}${P}${k}${M}(${B.join(", ")})${O} ${V}`)}if(j.isGetAccessorDeclaration(A)&&A.name){let M=A.name.getText($),R=A.type?x(A.type,void 0,X,K):"",F=R&&R!=="undefined"&&R!=="any"&&!R.startsWith("new ")?` -> ${R}`:"",B="{ }";if(A.body){let w=j.transpileModule(A.body.getText($),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});B=J(w.outputText.trim())}L.push(` get ${M}()${F} ${B}`)}if(j.isSetAccessorDeclaration(A)&&A.name){let M=A.name.getText($),R=e1(A.parameters,$,X),F="{ }";if(A.body){let B=j.transpileModule(A.body.getText($),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});F=J(B.outputText.trim())}L.push(` set ${M}(${R.join(", ")}) ${F}`)}if(j.isPropertyDeclaration(A)&&A.name){let M=A.name.getText($),F=A.modifiers?.some((w)=>w.kind===j.SyntaxKind.StaticKeyword)?"static ":"",B=G.get(M)||M;if(A.initializer){let w=A.initializer.getText($),O=w.trimStart().startsWith("{")?`(${w})`:w,C=j.transpileModule(O,{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim();if(O!==w)C=C.replace(/^\(/,"").replace(/\);?\s*$/,"");L.push(` ${F}${B} = ${C}`)}else L.push(` ${F}${B}`)}}let U=Z.modifiers?.some((A)=>A.kind===j.SyntaxKind.ExportKeyword)?"export ":"",q=W?` extends ${W}`:"";return`${U}class ${Y}${q} {
385
+ ${L.join(`
386
386
  `)}
387
- }`}function t1(Z,$,X,Q,H){let K=[];for(let Y of Z){let z=Y.name.getText($);if(z==="this")continue;let W=!!Y.dotDotDotToken,G=!!Y.questionToken||!!Y.initializer,J=y(Y.type,void 0,X,H);if(W)if(J==="any"||J==="undefined")K.push(`...${z}: [null]`);else K.push(`...${z}: ${J}`);else if(Y.initializer){let L=Y.initializer.getText($);K.push(`${z} = ${L}`)}else if(J==="any"||J==="undefined"){if(K.push(z),Q&&Y.type){let L=Y.type.getText($);if(L!=="any"&&L!=="unknown")Q.push(`${z}: ${L}`)}}else if(G)K.push(`${z}: ${J} | undefined`);else K.push(`${z}: ${J}`)}return K}function J4(Z,$,X,Q){let H=Q;if(Z.typeParameters&&Z.typeParameters.length>0){let G=new Map;for(let J of Z.typeParameters)G.set(J.name.getText($),{constraint:J.constraint,default:J.default});H={...Q,typeParams:G}}let K=j.isFunctionDeclaration(Z)&&Z.name?Z.name.getText($):"anonymous",Y={};for(let G of Z.parameters){let J=G.name.getText($),L=!!G.questionToken||!!G.initializer,_=void 0;if(G.initializer){let U=G.initializer.getText($);try{_=JSON.parse(U)}catch{_=U}}Y[J]={type:o(G.type,H),required:!L,default:_}}let z={name:K,params:Y,returns:Z.type?o(Z.type,H):void 0},W=N5(Z,X);if(W)z.typeParams=W;return z}function h5(Z,$,X,Q){let H=Q;if(Z.typeParameters&&Z.typeParameters.length>0){let J=new Map;for(let L of Z.typeParameters)J.set(L.name.getText($),{constraint:L.constraint,default:L.default});H={...Q,typeParams:J}}let K=Z.name?.getText($)||"anonymous",Y={},z={},W;for(let J of Z.members){if(j.isConstructorDeclaration(J)){let L={};for(let _ of J.parameters){let U=_.name.getText($),q=!!_.questionToken||!!_.initializer,I=void 0;if(_.initializer){let M=_.initializer.getText($);try{I=JSON.parse(M)}catch{I=M}}L[U]={type:o(_.type,H),required:!q,default:I}}W={params:L}}if(j.isMethodDeclaration(J)&&J.name){let L=J.name.getText($),_=J.modifiers?.some((I)=>I.kind===j.SyntaxKind.StaticKeyword),U={};for(let I of J.parameters){let M=I.name.getText($),R=!!I.questionToken||!!I.initializer,P=void 0;if(I.initializer){let B=I.initializer.getText($);try{P=JSON.parse(B)}catch{P=B}}U[M]={type:o(I.type,H),required:!R,default:P}}let q={name:L,params:U,returns:J.type?o(J.type,H):void 0};if(_)z[L]=q;else Y[L]=q}}let G={name:K,methods:Y,staticMethods:z,constructor:W};if(Z.typeParameters&&Z.typeParameters.length>0){let J={};for(let L of Z.typeParameters){let _=L.name.getText($),U={};if(L.constraint)U.constraint=y(L.constraint,void 0,X,Q);if(L.default)U.default=y(L.default,void 0,X,Q);J[_]=U}G.typeParams=J}return G}function x5(Z){let $=[],X=/\/\*\s*@tjs-skip\s*\*\//g,Q;while((Q=X.exec(Z))!==null)$.push({index:Q.index,kind:"skip"});let H=/\/\*\s*@tjs\s+predicate(\([^)]*\)\s*\{[\s\S]*?\})\s*\*\//g;while((Q=H.exec(Z))!==null)$.push({index:Q.index,kind:"predicate",text:`predicate${Q[1].trim()}`});let K=/\/\*\s*@tjs\s+example:\s*([\s\S]*?)\s*\*\//g;while((Q=K.exec(Z))!==null)$.push({index:Q.index,kind:"example",text:Q[1].trim()});let Y=/\/\*\s*@tjs\s+declaration\s*(\{[\s\S]*?\})\s*\*\//g;while((Q=Y.exec(Z))!==null)$.push({index:Q.index,kind:"declaration",text:Q[1].trim()});return $.sort((z,W)=>z.index-W.index)}function u5(Z,$){let X=new Map;if(Z.length===0)return X;let Q=$.statements;for(let H=0;H<Q.length;H++){let K=Q[H],Y;if(j.isInterfaceDeclaration(K))Y=K.name.getText($);else if(j.isTypeAliasDeclaration(K))Y=K.name.getText($);else if(j.isEnumDeclaration(K))Y=K.name.getText($);if(!Y)continue;let z=K.getStart($),W=H>0?Q[H-1].getEnd():0,G=Z.filter((J)=>J.index>=W&&J.index<z);if(G.length>0)X.set(Y,G)}return X}function d5(Z){let $=[],X=/\/\*test\s+(['"`])([^'"`]*)\1\s*\{[\s\S]*?\}\s*\*\/|\/\*test\s*\{[\s\S]*?\}\s*\*\//g,Q;while((Q=X.exec(Z))!==null)$.push(Q[0]);return $}function l5(Z){let $=[],X=/\/\*#[\s\S]*?\*\//g,Q=0,H=null,K=[];for(let z=0;z<Z.length;z++){let W=Z[z],G=z>0?Z[z-1]:"";if(!H&&(W==='"'||W==="'"||W==="`"))H=W;else if(H&&W===H&&G!=="\\")H=null;if(!H){if(W==="{")Q++;if(W==="}")Q--}K[z]=Q}let Y;while((Y=X.exec(Z))!==null)if(K[Y.index]===0)$.push({content:Y[0],index:Y.index});return $}function m5(Z,$={}){let{emitTJS:X=!1,filename:Q="input.ts"}=$,H=[],K=d5(Z),Y=X?l5(Z):[],z=X?x5(Z):[],W=j.createSourceFile(Q,Z,j.ScriptTarget.Latest,!0),G=X?u5(z,W):new Map,J=[],L=new Set,_={},U={},q=new Set,I=(w)=>{for(let C=0;C<Y.length;C++){let O=Y[C];if(!q.has(C)&&O.index<w)J.push(O.content),q.add(C)}},M=new Map,R=new Map;function P(w){if(j.isTypeAliasDeclaration(w))M.set(w.name.getText(W),w.type);if(j.isInterfaceDeclaration(w)){let C=w.name.getText(W),O=R.get(C);if(O){let k=j.factory.updateInterfaceDeclaration(O,O.modifiers,O.name,O.typeParameters,O.heritageClauses,[...O.members,...w.members]);R.set(C,k)}else R.set(C,w)}j.forEachChild(w,P)}P(W);let B={typeAliases:M,interfaces:R,sourceFile:W,warnings:H},F=new Map;for(let w of W.statements)if(j.isFunctionDeclaration(w)&&w.name){let C=w.name.getText(W);if(!F.has(C))F.set(C,{signatures:[],implementation:null});let O=F.get(C);if(w.body)O.implementation=w;else O.signatures.push(w)}for(let[w,C]of F)if(C.signatures.length===0||!C.implementation)F.delete(w);for(let w of W.statements){let C=!1;if(X)I(w.getStart(W));if(j.isFunctionDeclaration(w)&&w.name){let O=w.name.getText(W);C=!0;let k=F.get(O);if(k)if(!w.body);else if(X)J.push(...f5(k.signatures,w,W,H));else{let S=[];for(let h of k.signatures)S.push(J4(h,W,H,B));let b=J4(w,W,H,B);b.overloads=S,_[O]=b}else if(X)J.push(v7(w,W,void 0,H,!0,B));else _[O]=J4(w,W,H,B)}if(j.isVariableStatement(w)){let O=!1,k=w.modifiers?.some((S)=>S.kind===j.SyntaxKind.ExportKeyword);for(let S of w.declarationList.declarations)if(j.isIdentifier(S.name)&&S.initializer&&(j.isArrowFunction(S.initializer)||j.isFunctionExpression(S.initializer))){O=!0;let b=S.name.getText(W),h=S.initializer;if(X){let u=v7(h,W,b,H,!0,B);if(k&&!u.includes("export ")){let U1=u.search(/^(async\s+)?function[\s*]/m);if(U1>0)u=u.slice(0,U1)+"export "+u.slice(U1);else u="export "+u}J.push(u)}else{let u=J4(h,W,H,B);u.name=b,_[b]=u}}if(!O&&X){let S=j.transpileModule(w.getText(W),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});J.push(S.outputText.trim())}C=!0}if(j.isInterfaceDeclaration(w)){if(C=!0,X){let O=w.name.getText(W),k=G.get(O);if(!L.has(O))if(L.add(O),k?.some((S)=>S.kind==="skip"));else{let S=R.get(O)||w,b=E5(S,W,H,k);if(b){let h=w.modifiers?.some((u)=>u.kind===j.SyntaxKind.ExportKeyword);J.push(h?b.replace(/^(\/\*[\s\S]*?\*\/\s*)?/,"$1export "):b)}}}}if(j.isTypeAliasDeclaration(w)){if(C=!0,X){let O=w.name.getText(W),k=G.get(O);if(!L.has(O))if(L.add(O),k?.some((S)=>S.kind==="skip"));else{let S=g5(w,W,H,k);if(S){let b=w.modifiers?.some((h)=>h.kind===j.SyntaxKind.ExportKeyword);J.push(b?S.replace(/^(\/\*[\s\S]*?\*\/\s*)?/,"$1export "):S)}}}}if(j.isEnumDeclaration(w)){if(C=!0,X){let O=w.name.getText(W),k=G.get(O);if(!L.has(O))if(L.add(O),k?.some((S)=>S.kind==="skip"));else{let S=k5(w,W,H);if(S)J.push(S)}}}if(j.isClassDeclaration(w)&&w.name){let O=w.name.getText(W);if(C=!0,X){let k=y5(w,W,H);J.push(k)}else U[O]=h5(w,W,H,B)}if(j.isImportDeclaration(w)){if(C=!0,X){if(!(w.importClause?.isTypeOnly||w.importClause?.namedBindings&&j.isNamedImports(w.importClause.namedBindings)&&w.importClause.namedBindings.elements.every((k)=>k.isTypeOnly)))if(w.importClause?.namedBindings&&j.isNamedImports(w.importClause.namedBindings)){let k=w.importClause.namedBindings.elements.filter((S)=>!S.isTypeOnly).map((S)=>{let b=S.name.getText(W),h=S.propertyName?.getText(W);return h?`${h} as ${b}`:b});if(k.length>0){let S=w.moduleSpecifier.text;J.push(`import { ${k.join(", ")} } from '${S}'`)}}else{let S=w.getText(W).replace(/\btype\s+/g,"").replace(/\s*:\s*\w+/g,"");J.push(S)}}}if(j.isExportDeclaration(w)||j.isExportAssignment(w)){if(C=!0,X){let k=j.transpileModule(w.getText(W),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim();if(k)J.push(k)}}if(!C&&X){let k=j.transpileModule(w.getText(W),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim();if(k)J.push(k)}}if(X){I(1/0);let C=`/* tjs <- ${Q||"unknown"} */
387
+ }`}function e1(Z,$,X,Q,H){let K=[];for(let Y of Z){let z=Y.name.getText($);if(z==="this")continue;let W=!!Y.dotDotDotToken,G=!!Y.questionToken||!!Y.initializer,J=x(Y.type,void 0,X,H);if(W)if(J==="any"||J==="undefined")K.push(`...${z}: [null]`);else K.push(`...${z}: ${J}`);else if(Y.initializer){let L=Y.initializer.getText($);K.push(`${z} = ${L}`)}else if(J==="any"||J==="undefined"){if(K.push(z),Q&&Y.type){let L=Y.type.getText($);if(L!=="any"&&L!=="unknown")Q.push(`${z}: ${L}`)}}else if(G)K.push(`${z}: ${J} | undefined`);else K.push(`${z}: ${J}`)}return K}function J4(Z,$,X,Q){let H=Q;if(Z.typeParameters&&Z.typeParameters.length>0){let G=new Map;for(let J of Z.typeParameters)G.set(J.name.getText($),{constraint:J.constraint,default:J.default});H={...Q,typeParams:G}}let K=j.isFunctionDeclaration(Z)&&Z.name?Z.name.getText($):"anonymous",Y={};for(let G of Z.parameters){let J=G.name.getText($),L=!!G.questionToken||!!G.initializer,_=void 0;if(G.initializer){let U=G.initializer.getText($);try{_=JSON.parse(U)}catch{_=U}}Y[J]={type:a(G.type,H),required:!L,default:_}}let z={name:K,params:Y,returns:Z.type?a(Z.type,H):void 0},W=N5(Z,X);if(W)z.typeParams=W;return z}function h5(Z,$,X,Q){let H=Q;if(Z.typeParameters&&Z.typeParameters.length>0){let J=new Map;for(let L of Z.typeParameters)J.set(L.name.getText($),{constraint:L.constraint,default:L.default});H={...Q,typeParams:J}}let K=Z.name?.getText($)||"anonymous",Y={},z={},W;for(let J of Z.members){if(j.isConstructorDeclaration(J)){let L={};for(let _ of J.parameters){let U=_.name.getText($),q=!!_.questionToken||!!_.initializer,A=void 0;if(_.initializer){let M=_.initializer.getText($);try{A=JSON.parse(M)}catch{A=M}}L[U]={type:a(_.type,H),required:!q,default:A}}W={params:L}}if(j.isMethodDeclaration(J)&&J.name){let L=J.name.getText($),_=J.modifiers?.some((A)=>A.kind===j.SyntaxKind.StaticKeyword),U={};for(let A of J.parameters){let M=A.name.getText($),R=!!A.questionToken||!!A.initializer,F=void 0;if(A.initializer){let B=A.initializer.getText($);try{F=JSON.parse(B)}catch{F=B}}U[M]={type:a(A.type,H),required:!R,default:F}}let q={name:L,params:U,returns:J.type?a(J.type,H):void 0};if(_)z[L]=q;else Y[L]=q}}let G={name:K,methods:Y,staticMethods:z,constructor:W};if(Z.typeParameters&&Z.typeParameters.length>0){let J={};for(let L of Z.typeParameters){let _=L.name.getText($),U={};if(L.constraint)U.constraint=x(L.constraint,void 0,X,Q);if(L.default)U.default=x(L.default,void 0,X,Q);J[_]=U}G.typeParams=J}return G}var x5=new Set(["TjsStrict","TjsEquals","TjsClass","TjsDate","TjsNoeval","TjsNoVar","TjsStandard","TjsSafeEval"]);function u5(Z){let $=[],X=/\/\*\s*@tjs\s+((?:Tjs\w+\s*)+)\*\//g,Q;while((Q=X.exec(Z))!==null){let H=Q[1].trim().split(/\s+/);for(let K of H)if(x5.has(K)&&!$.includes(K))$.push(K)}return $}function d5(Z){let $=[],X=/\/\*\s*@tjs-skip\s*\*\//g,Q;while((Q=X.exec(Z))!==null)$.push({index:Q.index,kind:"skip"});let H=/\/\*\s*@tjs\s+predicate(\([^)]*\)\s*\{[\s\S]*?\})\s*\*\//g;while((Q=H.exec(Z))!==null)$.push({index:Q.index,kind:"predicate",text:`predicate${Q[1].trim()}`});let K=/\/\*\s*@tjs\s+example:\s*([\s\S]*?)\s*\*\//g;while((Q=K.exec(Z))!==null)$.push({index:Q.index,kind:"example",text:Q[1].trim()});let Y=/\/\*\s*@tjs\s+declaration\s*(\{[\s\S]*?\})\s*\*\//g;while((Q=Y.exec(Z))!==null)$.push({index:Q.index,kind:"declaration",text:Q[1].trim()});return $.sort((z,W)=>z.index-W.index)}function l5(Z,$){let X=new Map;if(Z.length===0)return X;let Q=$.statements;for(let H=0;H<Q.length;H++){let K=Q[H],Y;if(j.isInterfaceDeclaration(K))Y=K.name.getText($);else if(j.isTypeAliasDeclaration(K))Y=K.name.getText($);else if(j.isEnumDeclaration(K))Y=K.name.getText($);if(!Y)continue;let z=K.getStart($),W=H>0?Q[H-1].getEnd():0,G=Z.filter((J)=>J.index>=W&&J.index<z);if(G.length>0)X.set(Y,G)}return X}function m5(Z){let $=[],X=/\/\*test\s+(['"`])([^'"`]*)\1\s*\{[\s\S]*?\}\s*\*\/|\/\*test\s*\{[\s\S]*?\}\s*\*\//g,Q;while((Q=X.exec(Z))!==null)$.push(Q[0]);return $}function i5(Z){let $=[],X=/\/\*#[\s\S]*?\*\//g,Q=0,H=null,K=[];for(let z=0;z<Z.length;z++){let W=Z[z],G=z>0?Z[z-1]:"";if(!H&&(W==='"'||W==="'"||W==="`"))H=W;else if(H&&W===H&&G!=="\\")H=null;if(!H){if(W==="{")Q++;if(W==="}")Q--}K[z]=Q}let Y;while((Y=X.exec(Z))!==null)if(K[Y.index]===0)$.push({content:Y[0],index:Y.index});return $}function p5(Z,$={}){let{emitTJS:X=!1,filename:Q="input.ts"}=$,H=[],K=m5(Z),Y=X?i5(Z):[],z=X?d5(Z):[],W=u5(Z),G=W.includes("TjsClass")||W.includes("TjsStrict"),J=j.createSourceFile(Q,Z,j.ScriptTarget.Latest,!0),L=X?l5(z,J):new Map,_=[],U=new Set,q={},A={},M=new Set,R=(P)=>{for(let k=0;k<Y.length;k++){let E=Y[k];if(!M.has(k)&&E.index<P)_.push(E.content),M.add(k)}},F=new Map,B=new Map;function w(P){if(j.isTypeAliasDeclaration(P))F.set(P.name.getText(J),P.type);if(j.isInterfaceDeclaration(P)){let k=P.name.getText(J),E=B.get(k);if(E){let v=j.factory.updateInterfaceDeclaration(E,E.modifiers,E.name,E.typeParameters,E.heritageClauses,[...E.members,...P.members]);B.set(k,v)}else B.set(k,P)}j.forEachChild(P,w)}w(J);let O={typeAliases:F,interfaces:B,sourceFile:J,warnings:H},V=new Map;for(let P of J.statements)if(j.isFunctionDeclaration(P)&&P.name){let k=P.name.getText(J);if(!V.has(k))V.set(k,{signatures:[],implementation:null});let E=V.get(k);if(P.body)E.implementation=P;else E.signatures.push(P)}for(let[P,k]of V)if(k.signatures.length===0||!k.implementation)V.delete(P);for(let P of J.statements){let k=!1;if(X)R(P.getStart(J));if(j.isFunctionDeclaration(P)&&P.name){let E=P.name.getText(J);k=!0;let v=V.get(E);if(v)if(!P.body);else if(X)_.push(...f5(v.signatures,P,J,H));else{let g=[];for(let o of v.signatures)g.push(J4(o,J,H,O));let y=J4(P,J,H,O);y.overloads=g,q[E]=y}else if(X)_.push(v7(P,J,void 0,H,!0,O));else q[E]=J4(P,J,H,O)}if(j.isVariableStatement(P)){let E=!1,v=P.modifiers?.some((g)=>g.kind===j.SyntaxKind.ExportKeyword);for(let g of P.declarationList.declarations)if(j.isIdentifier(g.name)&&g.initializer&&(j.isArrowFunction(g.initializer)||j.isFunctionExpression(g.initializer))){E=!0;let y=g.name.getText(J),o=g.initializer;if(X){let p=v7(o,J,y,H,!0,O);if(v&&!p.includes("export ")){let X1=p.search(/^(async\s+)?function[\s*]/m);if(X1>0)p=p.slice(0,X1)+"export "+p.slice(X1);else p="export "+p}_.push(p)}else{let p=J4(o,J,H,O);p.name=y,q[y]=p}}if(!E&&X){let g=j.transpileModule(P.getText(J),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});_.push(g.outputText.trim())}k=!0}if(j.isInterfaceDeclaration(P)){if(k=!0,X){let E=P.name.getText(J),v=L.get(E);if(!U.has(E))if(U.add(E),v?.some((g)=>g.kind==="skip"));else{let g=B.get(E)||P,y=E5(g,J,H,v);if(y){let o=P.modifiers?.some((p)=>p.kind===j.SyntaxKind.ExportKeyword);_.push(o?y.replace(/^(\/\*[\s\S]*?\*\/\s*)?/,"$1export "):y)}}}}if(j.isTypeAliasDeclaration(P)){if(k=!0,X){let E=P.name.getText(J),v=L.get(E);if(!U.has(E))if(U.add(E),v?.some((g)=>g.kind==="skip"));else{let g=g5(P,J,H,v);if(g){let y=P.modifiers?.some((o)=>o.kind===j.SyntaxKind.ExportKeyword);_.push(y?g.replace(/^(\/\*[\s\S]*?\*\/\s*)?/,"$1export "):g)}}}}if(j.isEnumDeclaration(P)){if(k=!0,X){let E=P.name.getText(J),v=L.get(E);if(!U.has(E))if(U.add(E),v?.some((g)=>g.kind==="skip"));else{let g=k5(P,J,H);if(g)_.push(g)}}}if(j.isClassDeclaration(P)&&P.name){let E=P.name.getText(J);if(k=!0,X){let v=y5(P,J,H,void 0,G);_.push(v)}else A[E]=h5(P,J,H,O)}if(j.isImportDeclaration(P)){if(k=!0,X){if(!(P.importClause?.isTypeOnly||P.importClause?.namedBindings&&j.isNamedImports(P.importClause.namedBindings)&&P.importClause.namedBindings.elements.every((v)=>v.isTypeOnly)))if(P.importClause?.namedBindings&&j.isNamedImports(P.importClause.namedBindings)){let v=P.importClause.namedBindings.elements.filter((g)=>!g.isTypeOnly).map((g)=>{let y=g.name.getText(J),o=g.propertyName?.getText(J);return o?`${o} as ${y}`:y});if(v.length>0){let g=P.moduleSpecifier.text;_.push(`import { ${v.join(", ")} } from '${g}'`)}}else{let g=P.getText(J).replace(/\btype\s+/g,"").replace(/\s*:\s*\w+/g,"");_.push(g)}}}if(j.isExportDeclaration(P)||j.isExportAssignment(P)){if(k=!0,X){let v=j.transpileModule(P.getText(J),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim();if(v)_.push(v)}}if(!k&&X){let v=j.transpileModule(P.getText(J),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim();if(v)_.push(v)}}if(X){R(1/0);let P=Q||"unknown",E=`${W.length>0?W.join(`
388
+ `)+`
389
+
390
+ `:""}/* tjs <- ${P} */
388
391
 
389
- `,O=K.length>0?`
392
+ `,v=K.length>0?`
390
393
 
391
394
  `+K.join(`
392
395
 
393
- `):"";return{code:C+J.join(`
396
+ `):"";return{code:E+_.join(`
394
397
 
395
- `)+O,warnings:H.length>0?H:void 0}}let V=j.transpileModule(Z,{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText;for(let[w,C]of Object.entries(_)){let O={params:Object.fromEntries(Object.entries(C.params).map(([S,b])=>[S,{type:b.type.kind,required:b.required,default:b.default}])),returns:C.returns?{type:C.returns.kind}:void 0};if(C.typeParams)O.typeParams=C.typeParams;let k=JSON.stringify(O,null,2);V+=`
396
- ${w}.__tjs = ${k};
397
- `}for(let[w,C]of Object.entries(U)){let O={constructor:C.constructor?{params:Object.fromEntries(Object.entries(C.constructor.params??{}).map(([S,b])=>[S,{type:b.type.kind,required:b.required,default:b.default}]))}:void 0,methods:Object.fromEntries(Object.entries(C.methods??{}).map(([S,b])=>[S,{params:Object.fromEntries(Object.entries(b.params??{}).map(([h,u])=>[h,{type:u.type.kind,required:u.required}])),returns:b.returns?{type:b.returns.kind}:void 0}])),staticMethods:Object.fromEntries(Object.entries(C.staticMethods??{}).map(([S,b])=>[S,{params:Object.fromEntries(Object.entries(b.params??{}).map(([h,u])=>[h,{type:u.type.kind,required:u.required}])),returns:b.returns?{type:b.returns.kind}:void 0}]))};if(C.typeParams)O.typeParams=C.typeParams;let k=JSON.stringify(O,null,2);V+=`
398
- ${w}.__tjs = ${k};
399
- `,V+=`
400
- ${w7(w)}
401
- `}return{code:V,types:_,classes:Object.keys(U).length>0?U:void 0,warnings:H.length>0?H:void 0}}import{s as y7}from"tosijs-schema";function h7(Z){if(Z===null)return"null";if(Z===void 0)return"undefined";if(Array.isArray(Z))return"array";return typeof Z}function _4(Z){return y7.infer(Z)}function Q6(Z){return _4(Z)}Q6.type=h7;Q6.infer=_4;var i5=new Proxy(Q6,{get(Z,$){if($==="type")return h7;if($==="infer")return _4;return y7[$]},apply(Z,$,X){return _4(X[0])}});async function L4(Z){let $=`${X1}:${Z}`;if(typeof crypto<"u"&&crypto.subtle){let H=new TextEncoder().encode($),K=await crypto.subtle.digest("SHA-256",H);return Array.from(new Uint8Array(K)).map((z)=>z.toString(16).padStart(2,"0")).join("")}let X=5381;for(let Q=0;Q<$.length;Q++)X=(X<<5)+X+$.charCodeAt(Q)>>>0;return X.toString(16)}function p5(Z){let $=`${X1}:${Z}`,X=5381;for(let Q=0;Q<$.length;Q++)X=(X<<5)+X+$.charCodeAt(Q)>>>0;return X.toString(16)}var n5="tjs-metadata-cache",c5=1,r="modules";class H6{db=null;stats={hits:0,misses:0};pendingOpen=null;async open(){if(this.db)return;if(this.pendingOpen)return this.pendingOpen;this.pendingOpen=this._open(),await this.pendingOpen,this.pendingOpen=null}async _open(){return new Promise((Z,$)=>{if(typeof indexedDB>"u"){Z();return}let X=indexedDB.open(n5,c5);X.onerror=()=>{console.warn("MetadataCache: Failed to open IndexedDB",X.error),Z()},X.onsuccess=()=>{this.db=X.result,Z()},X.onupgradeneeded=(Q)=>{let H=Q.target.result;if(!H.objectStoreNames.contains(r)){let K=H.createObjectStore(r,{keyPath:"hash"});K.createIndex("timestamp","timestamp"),K.createIndex("version","version")}}})}async get(Z){if(!this.db){this.stats.misses++;return}let $=await L4(Z);return new Promise((X)=>{let K=this.db.transaction(r,"readonly").objectStore(r).get($);K.onerror=()=>{this.stats.misses++,X(void 0)},K.onsuccess=()=>{let Y=K.result;if(Y&&Y.version!==X1){this.stats.misses++,X(void 0);return}if(Y)this.stats.hits++;else this.stats.misses++;X(Y)}})}async getTranspile(Z){return(await this.get(Z))?.transpile}async getTJS(Z){return(await this.get(Z))?.tjs}async setTranspile(Z,$){await this._set(Z,{transpile:$})}async setTJS(Z,$){await this._set(Z,{tjs:$})}async _set(Z,$){if(!this.db)return;let X=await L4(Z);return new Promise((Q,H)=>{let Y=this.db.transaction(r,"readwrite").objectStore(r),z=Y.get(X);z.onsuccess=()=>{let W=z.result,G={hash:X,version:X1,timestamp:Date.now(),transpile:$.transpile??W?.transpile,tjs:$.tjs??W?.tjs},J=Y.put(G);J.onerror=()=>H(J.error),J.onsuccess=()=>Q()},z.onerror=()=>H(z.error)})}async delete(Z){if(!this.db)return;let $=await L4(Z);return new Promise((X,Q)=>{let Y=this.db.transaction(r,"readwrite").objectStore(r).delete($);Y.onerror=()=>Q(Y.error),Y.onsuccess=()=>X()})}async clear(){if(!this.db)return;return new Promise((Z,$)=>{let H=this.db.transaction(r,"readwrite").objectStore(r).clear();H.onerror=()=>$(H.error),H.onsuccess=()=>{this.stats={hits:0,misses:0},Z()}})}async prune(Z){if(!this.db)return 0;let $=Date.now()-Z;return new Promise((X,Q)=>{let Y=this.db.transaction(r,"readwrite").objectStore(r).index("timestamp"),z=IDBKeyRange.upperBound($),W=0,G=Y.openCursor(z);G.onsuccess=(J)=>{let L=J.target.result;if(L)L.delete(),W++,L.continue();else X(W)},G.onerror=()=>Q(G.error)})}async pruneOldVersions(){if(!this.db)return 0;return new Promise((Z,$)=>{let Q=this.db.transaction(r,"readwrite").objectStore(r),H=0,K=Q.openCursor();K.onsuccess=(Y)=>{let z=Y.target.result;if(z){if(z.value.version!==X1)z.delete(),H++;z.continue()}else Z(H)},K.onerror=()=>$(K.error)})}async getStats(){let Z=await this.count(),$=await this.estimateSize(),X=this.stats.hits+this.stats.misses,Q=X>0?this.stats.hits/X:0;return{entries:Z,bytes:$,hits:this.stats.hits,misses:this.stats.misses,hitRate:Q}}async count(){if(!this.db)return 0;return new Promise((Z,$)=>{let H=this.db.transaction(r,"readonly").objectStore(r).count();H.onerror=()=>$(H.error),H.onsuccess=()=>Z(H.result)})}async estimateSize(){if(!this.db)return 0;if(typeof navigator<"u"&&navigator.storage?.estimate)try{return(await navigator.storage.estimate()).usage??0}catch{}return new Promise((Z,$)=>{let Q=this.db.transaction(r,"readonly").objectStore(r),H=0,K=Q.openCursor();K.onsuccess=(Y)=>{let z=Y.target.result;if(z)H+=JSON.stringify(z.value).length*2,z.continue();else Z(H)},K.onerror=()=>$(K.error)})}close(){if(this.db)this.db.close(),this.db=null}isAvailable(){return this.db!==null}resetStats(){this.stats={hits:0,misses:0}}}var F0=null;async function U4(){if(!F0)F0=new H6,await F0.open();return F0}function o5(Z){F0=Z}function q4(Z,$,X,Q,H){if(!X)X=T;(function K(Y,z,W){var G=W||Y.type;if(X[G](Y,z,K),$[G])$[G](Y,z)})(Z,Q,H)}function x7(Z,$,X,Q,H){var K=[];if(!X)X=T;(function Y(z,W,G){var J=G||z.type,L=z!==K[K.length-1];if(L)K.push(z);if(X[J](z,W,Y),$[J])$[J](z,W||K,K);if(L)K.pop()})(Z,Q,H)}function K6(Z,$,X){X(Z,$)}function u1(Z,$,X){}var T={};T.Program=T.BlockStatement=T.StaticBlock=function(Z,$,X){for(var Q=0,H=Z.body;Q<H.length;Q+=1){var K=H[Q];X(K,$,"Statement")}};T.Statement=K6;T.EmptyStatement=u1;T.ExpressionStatement=T.ParenthesizedExpression=T.ChainExpression=function(Z,$,X){return X(Z.expression,$,"Expression")};T.IfStatement=function(Z,$,X){if(X(Z.test,$,"Expression"),X(Z.consequent,$,"Statement"),Z.alternate)X(Z.alternate,$,"Statement")};T.LabeledStatement=function(Z,$,X){return X(Z.body,$,"Statement")};T.BreakStatement=T.ContinueStatement=u1;T.WithStatement=function(Z,$,X){X(Z.object,$,"Expression"),X(Z.body,$,"Statement")};T.SwitchStatement=function(Z,$,X){X(Z.discriminant,$,"Expression");for(var Q=0,H=Z.cases;Q<H.length;Q+=1){var K=H[Q];X(K,$)}};T.SwitchCase=function(Z,$,X){if(Z.test)X(Z.test,$,"Expression");for(var Q=0,H=Z.consequent;Q<H.length;Q+=1){var K=H[Q];X(K,$,"Statement")}};T.ReturnStatement=T.YieldExpression=T.AwaitExpression=function(Z,$,X){if(Z.argument)X(Z.argument,$,"Expression")};T.ThrowStatement=T.SpreadElement=function(Z,$,X){return X(Z.argument,$,"Expression")};T.TryStatement=function(Z,$,X){if(X(Z.block,$,"Statement"),Z.handler)X(Z.handler,$);if(Z.finalizer)X(Z.finalizer,$,"Statement")};T.CatchClause=function(Z,$,X){if(Z.param)X(Z.param,$,"Pattern");X(Z.body,$,"Statement")};T.WhileStatement=T.DoWhileStatement=function(Z,$,X){X(Z.test,$,"Expression"),X(Z.body,$,"Statement")};T.ForStatement=function(Z,$,X){if(Z.init)X(Z.init,$,"ForInit");if(Z.test)X(Z.test,$,"Expression");if(Z.update)X(Z.update,$,"Expression");X(Z.body,$,"Statement")};T.ForInStatement=T.ForOfStatement=function(Z,$,X){X(Z.left,$,"ForInit"),X(Z.right,$,"Expression"),X(Z.body,$,"Statement")};T.ForInit=function(Z,$,X){if(Z.type==="VariableDeclaration")X(Z,$);else X(Z,$,"Expression")};T.DebuggerStatement=u1;T.FunctionDeclaration=function(Z,$,X){return X(Z,$,"Function")};T.VariableDeclaration=function(Z,$,X){for(var Q=0,H=Z.declarations;Q<H.length;Q+=1){var K=H[Q];X(K,$)}};T.VariableDeclarator=function(Z,$,X){if(X(Z.id,$,"Pattern"),Z.init)X(Z.init,$,"Expression")};T.Function=function(Z,$,X){if(Z.id)X(Z.id,$,"Pattern");for(var Q=0,H=Z.params;Q<H.length;Q+=1){var K=H[Q];X(K,$,"Pattern")}X(Z.body,$,Z.expression?"Expression":"Statement")};T.Pattern=function(Z,$,X){if(Z.type==="Identifier")X(Z,$,"VariablePattern");else if(Z.type==="MemberExpression")X(Z,$,"MemberPattern");else X(Z,$)};T.VariablePattern=u1;T.MemberPattern=K6;T.RestElement=function(Z,$,X){return X(Z.argument,$,"Pattern")};T.ArrayPattern=function(Z,$,X){for(var Q=0,H=Z.elements;Q<H.length;Q+=1){var K=H[Q];if(K)X(K,$,"Pattern")}};T.ObjectPattern=function(Z,$,X){for(var Q=0,H=Z.properties;Q<H.length;Q+=1){var K=H[Q];if(K.type==="Property"){if(K.computed)X(K.key,$,"Expression");X(K.value,$,"Pattern")}else if(K.type==="RestElement")X(K.argument,$,"Pattern")}};T.Expression=K6;T.ThisExpression=T.Super=T.MetaProperty=u1;T.ArrayExpression=function(Z,$,X){for(var Q=0,H=Z.elements;Q<H.length;Q+=1){var K=H[Q];if(K)X(K,$,"Expression")}};T.ObjectExpression=function(Z,$,X){for(var Q=0,H=Z.properties;Q<H.length;Q+=1){var K=H[Q];X(K,$)}};T.FunctionExpression=T.ArrowFunctionExpression=T.FunctionDeclaration;T.SequenceExpression=function(Z,$,X){for(var Q=0,H=Z.expressions;Q<H.length;Q+=1){var K=H[Q];X(K,$,"Expression")}};T.TemplateLiteral=function(Z,$,X){for(var Q=0,H=Z.quasis;Q<H.length;Q+=1){var K=H[Q];X(K,$)}for(var Y=0,z=Z.expressions;Y<z.length;Y+=1){var W=z[Y];X(W,$,"Expression")}};T.TemplateElement=u1;T.UnaryExpression=T.UpdateExpression=function(Z,$,X){X(Z.argument,$,"Expression")};T.BinaryExpression=T.LogicalExpression=function(Z,$,X){X(Z.left,$,"Expression"),X(Z.right,$,"Expression")};T.AssignmentExpression=T.AssignmentPattern=function(Z,$,X){X(Z.left,$,"Pattern"),X(Z.right,$,"Expression")};T.ConditionalExpression=function(Z,$,X){X(Z.test,$,"Expression"),X(Z.consequent,$,"Expression"),X(Z.alternate,$,"Expression")};T.NewExpression=T.CallExpression=function(Z,$,X){if(X(Z.callee,$,"Expression"),Z.arguments)for(var Q=0,H=Z.arguments;Q<H.length;Q+=1){var K=H[Q];X(K,$,"Expression")}};T.MemberExpression=function(Z,$,X){if(X(Z.object,$,"Expression"),Z.computed)X(Z.property,$,"Expression")};T.ExportNamedDeclaration=T.ExportDefaultDeclaration=function(Z,$,X){if(Z.declaration)X(Z.declaration,$,Z.type==="ExportNamedDeclaration"||Z.declaration.id?"Statement":"Expression");if(Z.source)X(Z.source,$,"Expression")};T.ExportAllDeclaration=function(Z,$,X){if(Z.exported)X(Z.exported,$);X(Z.source,$,"Expression")};T.ImportDeclaration=function(Z,$,X){for(var Q=0,H=Z.specifiers;Q<H.length;Q+=1){var K=H[Q];X(K,$)}X(Z.source,$,"Expression")};T.ImportExpression=function(Z,$,X){X(Z.source,$,"Expression")};T.ImportSpecifier=T.ImportDefaultSpecifier=T.ImportNamespaceSpecifier=T.Identifier=T.PrivateIdentifier=T.Literal=u1;T.TaggedTemplateExpression=function(Z,$,X){X(Z.tag,$,"Expression"),X(Z.quasi,$,"Expression")};T.ClassDeclaration=T.ClassExpression=function(Z,$,X){return X(Z,$,"Class")};T.Class=function(Z,$,X){if(Z.id)X(Z.id,$,"Pattern");if(Z.superClass)X(Z.superClass,$,"Expression");X(Z.body,$)};T.ClassBody=function(Z,$,X){for(var Q=0,H=Z.body;Q<H.length;Q+=1){var K=H[Q];X(K,$)}};T.MethodDefinition=T.PropertyDefinition=T.Property=function(Z,$,X){if(Z.computed)X(Z.key,$,"Expression");if(Z.value)X(Z.value,$,"Expression")};var a5={unusedVariables:!0,undefinedVariables:!0,unreachableCode:!0,noExplicitNew:!0};function r5(Z,$={}){let X={...a5,...$},Q=[],H;try{H=j1(Z,{filename:X.filename,colonShorthand:!0}).ast}catch(Y){return{diagnostics:[{severity:"error",message:Y.message,line:Y.loc?.line,column:Y.loc?.column,rule:"parse-error"}],valid:!1}}let K=[u7()];if(x7(H,{FunctionDeclaration(Y,z,W){let G=u7();K.push(G);for(let J of Y.params)t5(G,J,"parameter");if(Y.id)(K[K.length-2]||K[0]).declarations.set(Y.id.name,{node:Y.id,kind:"function",used:!1})},VariableDeclaration(Y){let z=K[K.length-1];for(let W of Y.declarations)if(W.id.type==="Identifier")z.declarations.set(W.id.name,{node:W.id,kind:Y.kind,used:!1})}}),q4(H,{Identifier(Y){for(let z=K.length-1;z>=0;z--){let W=K[z].declarations.get(Y.name);if(W){W.used=!0;break}}}}),X.unusedVariables)for(let Y of K)for(let[z,W]of Y.declarations){if(z.startsWith("_"))continue;if(!W.used&&W.kind!=="function")Q.push({severity:"warning",message:`'${z}' is declared but never used`,line:W.node.loc?.start?.line,column:W.node.loc?.start?.column,rule:"no-unused-vars"})}if(X.unreachableCode)q4(H,{BlockStatement(Y){let z=!1;for(let W of Y.body){if(z){Q.push({severity:"warning",message:"Unreachable code after return statement",line:W.loc?.start?.line,column:W.loc?.start?.column,rule:"no-unreachable"});break}if(W.type==="ReturnStatement")z=!0}}});if(X.noExplicitNew)q4(H,{NewExpression(Y){let z="class";if(Y.callee.type==="Identifier")z=Y.callee.name;else if(Y.callee.type==="MemberExpression"){if(Y.callee.property.type==="Identifier")z=Y.callee.property.name}Q.push({severity:"warning",message:`Unnecessary 'new' keyword. In TJS, classes are callable without 'new': ${z}(...) instead of new ${z}(...)`,line:Y.loc?.start?.line,column:Y.loc?.start?.column,rule:"no-explicit-new"})}});return{diagnostics:Q,valid:Q.filter((Y)=>Y.severity==="error").length===0}}function u7(){return{declarations:new Map}}function t5(Z,$,X){if($.type==="Identifier")Z.declarations.set($.name,{node:$,kind:X,used:!1});else if($.type==="AssignmentPattern"&&$.left.type==="Identifier")Z.declarations.set($.left.name,{node:$.left,kind:X,used:!1})}function e5(Z){let $=[],X=0,Q=null;for(let H=0;H<Z.length;H++){let K=Z[H],Y=H>0?Z[H-1]:"";if(!Q&&(K==='"'||K==="'"||K==="`"))Q=K;else if(Q&&K===Q&&Y!=="\\")Q=null;if(!Q){if(K==="{")X++;if(K==="}")X--}$[H]=X}return $}function d7(Z){let $=[],X=e5(Z),Q=/\/\*#([\s\S]*?)\*\//g,H=/function\s+(\w+)\s*\(([^)]*)\)\s*(?:(-[>?!])\s*('[^']*'|"[^"]*"|[^\s{]+)|:\s*(\w+))?\s*\{/g,K=[],Y;while((Y=Q.exec(Z))!==null){if(X[Y.index]!==0)continue;let W=Y[1],G=W.split(`
398
+ `)+v,warnings:H.length>0?H:void 0}}let S=j.transpileModule(Z,{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText;for(let[P,k]of Object.entries(q)){let E={params:Object.fromEntries(Object.entries(k.params).map(([g,y])=>[g,{type:y.type.kind,required:y.required,default:y.default}])),returns:k.returns?{type:k.returns.kind}:void 0};if(k.typeParams)E.typeParams=k.typeParams;let v=JSON.stringify(E,null,2);S+=`
399
+ ${P}.__tjs = ${v};
400
+ `}for(let[P,k]of Object.entries(A)){let E={constructor:k.constructor?{params:Object.fromEntries(Object.entries(k.constructor.params??{}).map(([g,y])=>[g,{type:y.type.kind,required:y.required,default:y.default}]))}:void 0,methods:Object.fromEntries(Object.entries(k.methods??{}).map(([g,y])=>[g,{params:Object.fromEntries(Object.entries(y.params??{}).map(([o,p])=>[o,{type:p.type.kind,required:p.required}])),returns:y.returns?{type:y.returns.kind}:void 0}])),staticMethods:Object.fromEntries(Object.entries(k.staticMethods??{}).map(([g,y])=>[g,{params:Object.fromEntries(Object.entries(y.params??{}).map(([o,p])=>[o,{type:p.type.kind,required:p.required}])),returns:y.returns?{type:y.returns.kind}:void 0}]))};if(k.typeParams)E.typeParams=k.typeParams;let v=JSON.stringify(E,null,2);S+=`
401
+ ${P}.__tjs = ${v};
402
+ `,S+=`
403
+ ${w7(P)}
404
+ `}return{code:S,types:q,classes:Object.keys(A).length>0?A:void 0,warnings:H.length>0?H:void 0}}import{s as y7}from"tosijs-schema";function h7(Z){if(Z===null)return"null";if(Z===void 0)return"undefined";if(Array.isArray(Z))return"array";return typeof Z}function _4(Z){return y7.infer(Z)}function Q6(Z){return _4(Z)}Q6.type=h7;Q6.infer=_4;var n5=new Proxy(Q6,{get(Z,$){if($==="type")return h7;if($==="infer")return _4;return y7[$]},apply(Z,$,X){return _4(X[0])}});async function L4(Z){let $=`${K1}:${Z}`;if(typeof crypto<"u"&&crypto.subtle){let H=new TextEncoder().encode($),K=await crypto.subtle.digest("SHA-256",H);return Array.from(new Uint8Array(K)).map((z)=>z.toString(16).padStart(2,"0")).join("")}let X=5381;for(let Q=0;Q<$.length;Q++)X=(X<<5)+X+$.charCodeAt(Q)>>>0;return X.toString(16)}function c5(Z){let $=`${K1}:${Z}`,X=5381;for(let Q=0;Q<$.length;Q++)X=(X<<5)+X+$.charCodeAt(Q)>>>0;return X.toString(16)}var o5="tjs-metadata-cache",s5=1,e="modules";class H6{db=null;stats={hits:0,misses:0};pendingOpen=null;async open(){if(this.db)return;if(this.pendingOpen)return this.pendingOpen;this.pendingOpen=this._open(),await this.pendingOpen,this.pendingOpen=null}async _open(){return new Promise((Z,$)=>{if(typeof indexedDB>"u"){Z();return}let X=indexedDB.open(o5,s5);X.onerror=()=>{console.warn("MetadataCache: Failed to open IndexedDB",X.error),Z()},X.onsuccess=()=>{this.db=X.result,Z()},X.onupgradeneeded=(Q)=>{let H=Q.target.result;if(!H.objectStoreNames.contains(e)){let K=H.createObjectStore(e,{keyPath:"hash"});K.createIndex("timestamp","timestamp"),K.createIndex("version","version")}}})}async get(Z){if(!this.db){this.stats.misses++;return}let $=await L4(Z);return new Promise((X)=>{let K=this.db.transaction(e,"readonly").objectStore(e).get($);K.onerror=()=>{this.stats.misses++,X(void 0)},K.onsuccess=()=>{let Y=K.result;if(Y&&Y.version!==K1){this.stats.misses++,X(void 0);return}if(Y)this.stats.hits++;else this.stats.misses++;X(Y)}})}async getTranspile(Z){return(await this.get(Z))?.transpile}async getTJS(Z){return(await this.get(Z))?.tjs}async setTranspile(Z,$){await this._set(Z,{transpile:$})}async setTJS(Z,$){await this._set(Z,{tjs:$})}async _set(Z,$){if(!this.db)return;let X=await L4(Z);return new Promise((Q,H)=>{let Y=this.db.transaction(e,"readwrite").objectStore(e),z=Y.get(X);z.onsuccess=()=>{let W=z.result,G={hash:X,version:K1,timestamp:Date.now(),transpile:$.transpile??W?.transpile,tjs:$.tjs??W?.tjs},J=Y.put(G);J.onerror=()=>H(J.error),J.onsuccess=()=>Q()},z.onerror=()=>H(z.error)})}async delete(Z){if(!this.db)return;let $=await L4(Z);return new Promise((X,Q)=>{let Y=this.db.transaction(e,"readwrite").objectStore(e).delete($);Y.onerror=()=>Q(Y.error),Y.onsuccess=()=>X()})}async clear(){if(!this.db)return;return new Promise((Z,$)=>{let H=this.db.transaction(e,"readwrite").objectStore(e).clear();H.onerror=()=>$(H.error),H.onsuccess=()=>{this.stats={hits:0,misses:0},Z()}})}async prune(Z){if(!this.db)return 0;let $=Date.now()-Z;return new Promise((X,Q)=>{let Y=this.db.transaction(e,"readwrite").objectStore(e).index("timestamp"),z=IDBKeyRange.upperBound($),W=0,G=Y.openCursor(z);G.onsuccess=(J)=>{let L=J.target.result;if(L)L.delete(),W++,L.continue();else X(W)},G.onerror=()=>Q(G.error)})}async pruneOldVersions(){if(!this.db)return 0;return new Promise((Z,$)=>{let Q=this.db.transaction(e,"readwrite").objectStore(e),H=0,K=Q.openCursor();K.onsuccess=(Y)=>{let z=Y.target.result;if(z){if(z.value.version!==K1)z.delete(),H++;z.continue()}else Z(H)},K.onerror=()=>$(K.error)})}async getStats(){let Z=await this.count(),$=await this.estimateSize(),X=this.stats.hits+this.stats.misses,Q=X>0?this.stats.hits/X:0;return{entries:Z,bytes:$,hits:this.stats.hits,misses:this.stats.misses,hitRate:Q}}async count(){if(!this.db)return 0;return new Promise((Z,$)=>{let H=this.db.transaction(e,"readonly").objectStore(e).count();H.onerror=()=>$(H.error),H.onsuccess=()=>Z(H.result)})}async estimateSize(){if(!this.db)return 0;if(typeof navigator<"u"&&navigator.storage?.estimate)try{return(await navigator.storage.estimate()).usage??0}catch{}return new Promise((Z,$)=>{let Q=this.db.transaction(e,"readonly").objectStore(e),H=0,K=Q.openCursor();K.onsuccess=(Y)=>{let z=Y.target.result;if(z)H+=JSON.stringify(z.value).length*2,z.continue();else Z(H)},K.onerror=()=>$(K.error)})}close(){if(this.db)this.db.close(),this.db=null}isAvailable(){return this.db!==null}resetStats(){this.stats={hits:0,misses:0}}}var F0=null;async function U4(){if(!F0)F0=new H6,await F0.open();return F0}function a5(Z){F0=Z}function q4(Z,$,X,Q,H){if(!X)X=T;(function K(Y,z,W){var G=W||Y.type;if(X[G](Y,z,K),$[G])$[G](Y,z)})(Z,Q,H)}function x7(Z,$,X,Q,H){var K=[];if(!X)X=T;(function Y(z,W,G){var J=G||z.type,L=z!==K[K.length-1];if(L)K.push(z);if(X[J](z,W,Y),$[J])$[J](z,W||K,K);if(L)K.pop()})(Z,Q,H)}function K6(Z,$,X){X(Z,$)}function d1(Z,$,X){}var T={};T.Program=T.BlockStatement=T.StaticBlock=function(Z,$,X){for(var Q=0,H=Z.body;Q<H.length;Q+=1){var K=H[Q];X(K,$,"Statement")}};T.Statement=K6;T.EmptyStatement=d1;T.ExpressionStatement=T.ParenthesizedExpression=T.ChainExpression=function(Z,$,X){return X(Z.expression,$,"Expression")};T.IfStatement=function(Z,$,X){if(X(Z.test,$,"Expression"),X(Z.consequent,$,"Statement"),Z.alternate)X(Z.alternate,$,"Statement")};T.LabeledStatement=function(Z,$,X){return X(Z.body,$,"Statement")};T.BreakStatement=T.ContinueStatement=d1;T.WithStatement=function(Z,$,X){X(Z.object,$,"Expression"),X(Z.body,$,"Statement")};T.SwitchStatement=function(Z,$,X){X(Z.discriminant,$,"Expression");for(var Q=0,H=Z.cases;Q<H.length;Q+=1){var K=H[Q];X(K,$)}};T.SwitchCase=function(Z,$,X){if(Z.test)X(Z.test,$,"Expression");for(var Q=0,H=Z.consequent;Q<H.length;Q+=1){var K=H[Q];X(K,$,"Statement")}};T.ReturnStatement=T.YieldExpression=T.AwaitExpression=function(Z,$,X){if(Z.argument)X(Z.argument,$,"Expression")};T.ThrowStatement=T.SpreadElement=function(Z,$,X){return X(Z.argument,$,"Expression")};T.TryStatement=function(Z,$,X){if(X(Z.block,$,"Statement"),Z.handler)X(Z.handler,$);if(Z.finalizer)X(Z.finalizer,$,"Statement")};T.CatchClause=function(Z,$,X){if(Z.param)X(Z.param,$,"Pattern");X(Z.body,$,"Statement")};T.WhileStatement=T.DoWhileStatement=function(Z,$,X){X(Z.test,$,"Expression"),X(Z.body,$,"Statement")};T.ForStatement=function(Z,$,X){if(Z.init)X(Z.init,$,"ForInit");if(Z.test)X(Z.test,$,"Expression");if(Z.update)X(Z.update,$,"Expression");X(Z.body,$,"Statement")};T.ForInStatement=T.ForOfStatement=function(Z,$,X){X(Z.left,$,"ForInit"),X(Z.right,$,"Expression"),X(Z.body,$,"Statement")};T.ForInit=function(Z,$,X){if(Z.type==="VariableDeclaration")X(Z,$);else X(Z,$,"Expression")};T.DebuggerStatement=d1;T.FunctionDeclaration=function(Z,$,X){return X(Z,$,"Function")};T.VariableDeclaration=function(Z,$,X){for(var Q=0,H=Z.declarations;Q<H.length;Q+=1){var K=H[Q];X(K,$)}};T.VariableDeclarator=function(Z,$,X){if(X(Z.id,$,"Pattern"),Z.init)X(Z.init,$,"Expression")};T.Function=function(Z,$,X){if(Z.id)X(Z.id,$,"Pattern");for(var Q=0,H=Z.params;Q<H.length;Q+=1){var K=H[Q];X(K,$,"Pattern")}X(Z.body,$,Z.expression?"Expression":"Statement")};T.Pattern=function(Z,$,X){if(Z.type==="Identifier")X(Z,$,"VariablePattern");else if(Z.type==="MemberExpression")X(Z,$,"MemberPattern");else X(Z,$)};T.VariablePattern=d1;T.MemberPattern=K6;T.RestElement=function(Z,$,X){return X(Z.argument,$,"Pattern")};T.ArrayPattern=function(Z,$,X){for(var Q=0,H=Z.elements;Q<H.length;Q+=1){var K=H[Q];if(K)X(K,$,"Pattern")}};T.ObjectPattern=function(Z,$,X){for(var Q=0,H=Z.properties;Q<H.length;Q+=1){var K=H[Q];if(K.type==="Property"){if(K.computed)X(K.key,$,"Expression");X(K.value,$,"Pattern")}else if(K.type==="RestElement")X(K.argument,$,"Pattern")}};T.Expression=K6;T.ThisExpression=T.Super=T.MetaProperty=d1;T.ArrayExpression=function(Z,$,X){for(var Q=0,H=Z.elements;Q<H.length;Q+=1){var K=H[Q];if(K)X(K,$,"Expression")}};T.ObjectExpression=function(Z,$,X){for(var Q=0,H=Z.properties;Q<H.length;Q+=1){var K=H[Q];X(K,$)}};T.FunctionExpression=T.ArrowFunctionExpression=T.FunctionDeclaration;T.SequenceExpression=function(Z,$,X){for(var Q=0,H=Z.expressions;Q<H.length;Q+=1){var K=H[Q];X(K,$,"Expression")}};T.TemplateLiteral=function(Z,$,X){for(var Q=0,H=Z.quasis;Q<H.length;Q+=1){var K=H[Q];X(K,$)}for(var Y=0,z=Z.expressions;Y<z.length;Y+=1){var W=z[Y];X(W,$,"Expression")}};T.TemplateElement=d1;T.UnaryExpression=T.UpdateExpression=function(Z,$,X){X(Z.argument,$,"Expression")};T.BinaryExpression=T.LogicalExpression=function(Z,$,X){X(Z.left,$,"Expression"),X(Z.right,$,"Expression")};T.AssignmentExpression=T.AssignmentPattern=function(Z,$,X){X(Z.left,$,"Pattern"),X(Z.right,$,"Expression")};T.ConditionalExpression=function(Z,$,X){X(Z.test,$,"Expression"),X(Z.consequent,$,"Expression"),X(Z.alternate,$,"Expression")};T.NewExpression=T.CallExpression=function(Z,$,X){if(X(Z.callee,$,"Expression"),Z.arguments)for(var Q=0,H=Z.arguments;Q<H.length;Q+=1){var K=H[Q];X(K,$,"Expression")}};T.MemberExpression=function(Z,$,X){if(X(Z.object,$,"Expression"),Z.computed)X(Z.property,$,"Expression")};T.ExportNamedDeclaration=T.ExportDefaultDeclaration=function(Z,$,X){if(Z.declaration)X(Z.declaration,$,Z.type==="ExportNamedDeclaration"||Z.declaration.id?"Statement":"Expression");if(Z.source)X(Z.source,$,"Expression")};T.ExportAllDeclaration=function(Z,$,X){if(Z.exported)X(Z.exported,$);X(Z.source,$,"Expression")};T.ImportDeclaration=function(Z,$,X){for(var Q=0,H=Z.specifiers;Q<H.length;Q+=1){var K=H[Q];X(K,$)}X(Z.source,$,"Expression")};T.ImportExpression=function(Z,$,X){X(Z.source,$,"Expression")};T.ImportSpecifier=T.ImportDefaultSpecifier=T.ImportNamespaceSpecifier=T.Identifier=T.PrivateIdentifier=T.Literal=d1;T.TaggedTemplateExpression=function(Z,$,X){X(Z.tag,$,"Expression"),X(Z.quasi,$,"Expression")};T.ClassDeclaration=T.ClassExpression=function(Z,$,X){return X(Z,$,"Class")};T.Class=function(Z,$,X){if(Z.id)X(Z.id,$,"Pattern");if(Z.superClass)X(Z.superClass,$,"Expression");X(Z.body,$)};T.ClassBody=function(Z,$,X){for(var Q=0,H=Z.body;Q<H.length;Q+=1){var K=H[Q];X(K,$)}};T.MethodDefinition=T.PropertyDefinition=T.Property=function(Z,$,X){if(Z.computed)X(Z.key,$,"Expression");if(Z.value)X(Z.value,$,"Expression")};var t5={unusedVariables:!0,undefinedVariables:!0,unreachableCode:!0,noExplicitNew:!0};function e5(Z,$={}){let X={...t5,...$},Q=[],H;try{H=F1(Z,{filename:X.filename,colonShorthand:!0}).ast}catch(Y){return{diagnostics:[{severity:"error",message:Y.message,line:Y.loc?.line,column:Y.loc?.column,rule:"parse-error"}],valid:!1}}let K=[u7()];if(x7(H,{FunctionDeclaration(Y,z,W){let G=u7();K.push(G);for(let J of Y.params)Z$(G,J,"parameter");if(Y.id)(K[K.length-2]||K[0]).declarations.set(Y.id.name,{node:Y.id,kind:"function",used:!1})},VariableDeclaration(Y){let z=K[K.length-1];for(let W of Y.declarations)if(W.id.type==="Identifier")z.declarations.set(W.id.name,{node:W.id,kind:Y.kind,used:!1})}}),q4(H,{Identifier(Y){for(let z=K.length-1;z>=0;z--){let W=K[z].declarations.get(Y.name);if(W){W.used=!0;break}}}}),X.unusedVariables)for(let Y of K)for(let[z,W]of Y.declarations){if(z.startsWith("_"))continue;if(!W.used&&W.kind!=="function")Q.push({severity:"warning",message:`'${z}' is declared but never used`,line:W.node.loc?.start?.line,column:W.node.loc?.start?.column,rule:"no-unused-vars"})}if(X.unreachableCode)q4(H,{BlockStatement(Y){let z=!1;for(let W of Y.body){if(z){Q.push({severity:"warning",message:"Unreachable code after return statement",line:W.loc?.start?.line,column:W.loc?.start?.column,rule:"no-unreachable"});break}if(W.type==="ReturnStatement")z=!0}}});if(X.noExplicitNew)q4(H,{NewExpression(Y){let z="class";if(Y.callee.type==="Identifier")z=Y.callee.name;else if(Y.callee.type==="MemberExpression"){if(Y.callee.property.type==="Identifier")z=Y.callee.property.name}Q.push({severity:"warning",message:`Unnecessary 'new' keyword. In TJS, classes are callable without 'new': ${z}(...) instead of new ${z}(...)`,line:Y.loc?.start?.line,column:Y.loc?.start?.column,rule:"no-explicit-new"})}});return{diagnostics:Q,valid:Q.filter((Y)=>Y.severity==="error").length===0}}function u7(){return{declarations:new Map}}function Z$(Z,$,X){if($.type==="Identifier")Z.declarations.set($.name,{node:$,kind:X,used:!1});else if($.type==="AssignmentPattern"&&$.left.type==="Identifier")Z.declarations.set($.left.name,{node:$.left,kind:X,used:!1})}function $$(Z){let $=[],X=0,Q=null;for(let H=0;H<Z.length;H++){let K=Z[H],Y=H>0?Z[H-1]:"";if(!Q&&(K==='"'||K==="'"||K==="`"))Q=K;else if(Q&&K===Q&&Y!=="\\")Q=null;if(!Q){if(K==="{")X++;if(K==="}")X--}$[H]=X}return $}function d7(Z){let $=[],X=$$(Z),Q=/\/\*#([\s\S]*?)\*\//g,H=/function\s+(\w+)\s*\(([^)]*)\)\s*(?:(-[>?!])\s*('[^']*'|"[^"]*"|[^\s{]+)|:\s*(\w+))?\s*\{/g,K=[],Y;while((Y=Q.exec(Z))!==null){if(X[Y.index]!==0)continue;let W=Y[1],G=W.split(`
402
405
  `),J=G.filter((L)=>L.trim().length>0).reduce((L,_)=>{let U=_.match(/^(\s*)/)?.[1].length||0;return Math.min(L,U)},1/0);if(J>0&&J<1/0)W=G.map((L)=>L.slice(J)).join(`
403
406
  `);K.push({type:"doc",index:Y.index,data:W.trim()})}while((Y=H.exec(Z))!==null){let W=Y[1],G=Y[2],J=Y[3]||"",L=Y[4]||"",_=Y[5]||"",U=`function ${W}(${G})`;if(J)U+=` ${J} ${L}`;else if(_)U+=`: ${_}`;K.push({type:"function",index:Y.index,data:{name:W,signature:U}})}K.sort((W,G)=>W.index-G.index);for(let W of K)if(W.type==="doc")$.push({type:"doc",content:W.data});else $.push({type:"function",name:W.data.name,signature:W.data.signature});let z=$.map((W)=>{if(W.type==="doc")return W.content;else return`\`\`\`tjs
404
407
  ${W.signature}
405
408
  \`\`\``}).join(`
406
409
 
407
- `);return{items:$,markdown:z}}function Z$(Z,$){let X=d7(Z),Q="";for(let H of X.items)if(H.type==="doc")Q+=H.content+`
410
+ `);return{items:$,markdown:z}}function X$(Z,$){let X=d7(Z),Q="";for(let H of X.items)if(H.type==="doc")Q+=H.content+`
408
411
 
409
412
  `;else if(H.type==="function"){let K=$?.[H.name];if(Q+=`## ${H.name}
410
413
 
@@ -417,8 +420,8 @@ ${H.signature}
417
420
  `}Q+=`
418
421
  `}if(K?.returns)Q+=`**Returns:** ${K.returns.kind||"void"}
419
422
 
420
- `}return Q.trim()||"*No documentation available*"}import{s as A,validate as Y6,filter as o7}from"tosijs-schema";var D4=Symbol.for("tjs.equals");function I4(Z,$){if(Z!==null&&typeof Z==="object"&&typeof Z[D4]==="function")return Z[D4]($);if($!==null&&typeof $==="object"&&typeof $[D4]==="function")return $[D4](Z);if(Z!==null&&typeof Z==="object"&&typeof Z.Equals==="function")return Z.Equals($);if($!==null&&typeof $==="object"&&typeof $.Equals==="function")return $.Equals(Z);if(Z===$)return!0;if((Z===null||Z===void 0)&&($===null||$===void 0))return!0;if(Z===null||Z===void 0||$===null||$===void 0)return!1;if(typeof Z!==typeof $)return!1;if(typeof Z!=="object")return!1;if(Array.isArray(Z)&&Array.isArray($)){if(Z.length!==$.length)return!1;return Z.every((H,K)=>I4(H,$[K]))}if(Array.isArray(Z)!==Array.isArray($))return!1;let X=Object.keys(Z),Q=Object.keys($);if(X.length!==Q.length)return!1;return X.every((H)=>I4(Z[H],$[H]))}class Y1{$error=!0;message;op;cause;constructor(Z,$,X){this.message=Z,this.op=$,this.cause=X}toString(){return`AgentError[${this.op}]: ${this.message}`}toJSON(){return{$error:!0,message:this.message,op:this.op}}}function $$(Z){return Z instanceof Y1||Z&&Z.$error===!0}var Z0=new Map,X$=3600000,Q$=102400,z6="proc_";function W6(Z){return typeof Z==="string"&&Z.startsWith(z6)}function G6(Z){let $=Z0.get(Z);if(!$)throw Error(`Procedure not found: ${Z}`);if(Date.now()>$.expiresAt)throw Z0.delete(Z),Error(`Procedure expired: ${Z}`);return $.ast}function H$(){if(typeof crypto<"u"&&crypto.randomUUID)return z6+crypto.randomUUID();return z6+Math.random().toString(36).slice(2)+Date.now().toString(36)}var s7=new Set(["__proto__","constructor","prototype"]);function l7(Z){if(s7.has(Z))throw Error(`Security Error: Access to '${Z}' is forbidden`)}var K$=new Set(["localhost","127.0.0.1","0.0.0.0","[::1]","metadata.google.internal"]);function Y$(Z){try{let $=new URL(Z);if($.protocol!=="http:"&&$.protocol!=="https:")return!0;let X=$.hostname.toLowerCase();if(K$.has(X))return!0;if(X.endsWith(".internal")||X.endsWith(".local"))return!0;if(X==="169.254.169.254")return!0;if(/^10\./.test(X)||/^192\.168\./.test(X)||/^172\.(1[6-9]|2\d|3[01])\./.test(X))return!0;return!1}catch{return!0}}function z$(Z){if(/\([^)]*[+*][^)]*\)[+*]/.test(Z))return!0;if(/\(([^|)]+)\|\1\)[+*]/.test(Z))return!0;if(/\(\.\*\)\+/.test(Z))return!0;if(/\(\.\+\)\+/.test(Z))return!0;if(/\(\[.*\]\+\)\+/.test(Z))return!0;return!1}function E1(Z){return{...Z,state:Object.create(Z.state)}}function W$(Z,$){let X={},Q=new Set([...Object.keys(Z),...Object.keys($)]);for(let H of Q){let K=Z[H],Y=$[H];if(Y!==K)X[H]=Y}return X}function E(Z,$){if(Z&&typeof Z==="object"&&Z.$kind==="arg")return $.args[Z.path];if(Z&&typeof Z==="object"&&Z.$expr)return s(Z,$);if(typeof Z==="string"){if(Z.startsWith("args.")&&!("args"in $.state))return $.args[Z.replace("args.","")];if(Z.includes(".")){let X=Z.split(".");for(let H of X)if(s7.has(H))throw Error(`Security Error: Access to '${H}' is forbidden`);let Q=$.state[X[0]];if(Q!==void 0){for(let H=1;H<X.length;H++)Q=Q?.[X[H]];return Q}}if(Z in $.state)return $.state[Z];return Z}if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&Z.constructor===Object){let X={};for(let Q of Object.keys(Z))X[Q]=E(Z[Q],$);return X}if(Array.isArray(Z))return Z.map((X)=>E(X,$));return Z}function d1(Z,$,X){return new Proxy($,{get(Q,H){if(H in Q)return Q[H];let K=X?.[H];if(K)throw Error(`${Z}.${H} is not available. ${K}`);throw Error(`${Z}.${H} is not supported in AsyncJS. Check docs for available ${Z} methods.`)}})}function e1(Z){if(Z===null)return{type:"null"};if(Z===void 0)return{};if(typeof Z==="object"&&Z!==null&&"type"in Z&&typeof Z.type==="string")return Z;if(typeof Z==="object"&&Z!==null&&"schema"in Z&&typeof Z.schema==="object")return Z.schema;let $=typeof Z;if($==="string")return{type:"string"};if($==="number")return Number.isInteger(Z)?{type:"integer"}:{type:"number"};if($==="boolean")return{type:"boolean"};if(Array.isArray(Z)){if(Z.length===0)return{type:"array"};return{type:"array",items:e1(Z[0])}}if($==="object"){let X={},Q=[];for(let[H,K]of Object.entries(Z))X[H]=e1(K),Q.push(H);return{type:"object",properties:X,required:Q}}return{}}var V1={Math:d1("Math",{PI:Math.PI,E:Math.E,LN2:Math.LN2,LN10:Math.LN10,LOG2E:Math.LOG2E,LOG10E:Math.LOG10E,SQRT2:Math.SQRT2,SQRT1_2:Math.SQRT1_2,abs:Math.abs,ceil:Math.ceil,floor:Math.floor,round:Math.round,trunc:Math.trunc,sign:Math.sign,sqrt:Math.sqrt,cbrt:Math.cbrt,pow:Math.pow,exp:Math.exp,expm1:Math.expm1,log:Math.log,log2:Math.log2,log10:Math.log10,log1p:Math.log1p,sin:Math.sin,cos:Math.cos,tan:Math.tan,asin:Math.asin,acos:Math.acos,atan:Math.atan,atan2:Math.atan2,sinh:Math.sinh,cosh:Math.cosh,tanh:Math.tanh,asinh:Math.asinh,acosh:Math.acosh,atanh:Math.atanh,hypot:Math.hypot,min:Math.min,max:Math.max,clz32:Math.clz32,imul:Math.imul,fround:Math.fround,random:()=>{if(typeof crypto<"u"&&crypto.getRandomValues){let Z=new Uint32Array(1);return crypto.getRandomValues(Z),Z[0]/4294967296}return Math.random()}}),JSON:d1("JSON",{parse:(Z)=>JSON.parse(Z),stringify:(Z,$,X)=>JSON.stringify(Z,$,X)}),console:d1("console",{log:(...Z)=>{return},warn:(...Z)=>{return},error:(...Z)=>{return},info:(...Z)=>{return}},{table:"Use console.log with JSON.stringify for structured data.",dir:"Use console.log instead.",trace:"Stack traces are not available in AsyncJS."}),Array:d1("Array",{isArray:(Z)=>Array.isArray(Z),from:(Z,$,X)=>Array.from(Z,$,X),of:(...Z)=>Array.of(...Z)},{prototype:"Prototype access is not allowed."}),Object:d1("Object",{keys:(Z)=>Object.keys(Z),values:(Z)=>Object.values(Z),entries:(Z)=>Object.entries(Z),fromEntries:(Z)=>Object.fromEntries(Z),assign:(Z,...$)=>Object.assign({},Z,...$),hasOwn:(Z,$)=>Object.hasOwn(Z,$)},{prototype:"Prototype access is not allowed.",create:"Use object literals instead.",defineProperty:"Property descriptors are not supported.",getPrototypeOf:"Prototype access is not allowed.",setPrototypeOf:"Prototype modification is not allowed."}),String:d1("String",{fromCharCode:(...Z)=>String.fromCharCode(...Z),fromCodePoint:(...Z)=>String.fromCodePoint(...Z)}),Number:d1("Number",{isNaN:Number.isNaN,isFinite:Number.isFinite,isInteger:Number.isInteger,isSafeInteger:Number.isSafeInteger,parseFloat,parseInt,MAX_VALUE:Number.MAX_VALUE,MIN_VALUE:Number.MIN_VALUE,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,MIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,POSITIVE_INFINITY:Number.POSITIVE_INFINITY,NEGATIVE_INFINITY:Number.NEGATIVE_INFINITY,NaN:Number.NaN,EPSILON:Number.EPSILON}),parseInt,parseFloat,isNaN,isFinite,encodeURI,decodeURI,encodeURIComponent,decodeURIComponent,undefined:void 0,null:null,NaN:NaN,Infinity:1/0,filter:(Z,$)=>{let X=e1($),Q=o7(Z,X);if(Q instanceof Error)throw Q;return Q},Schema:{...A,response:(Z,$)=>{let X=$?.schema!=null?$.schema:e1($);return{type:"json_schema",json_schema:{name:Z,strict:!0,schema:X}}},fromExample:(Z)=>e1(Z),isValid:(Z,$)=>{if($?.schema!=null)return Y6(Z,$);return Y6(Z,e1($))}},Set:(Z=[])=>{let $=[...new globalThis.Set(Z)];return{add(X){if(!$.includes(X))$.push(X);return this},remove(X){let Q=$.indexOf(X);if(Q!==-1)$.splice(Q,1);return this},clear(){return $.length=0,this},has(X){return $.includes(X)},get size(){return $.length},toArray(){return[...$]},union(X){let Q=X?.toArray?.()??X??[];return V1.Set([...$,...Q])},intersection(X){let Q=X?.toArray?.()??X??[];return V1.Set($.filter((H)=>Q.includes(H)))},diff(X){let Q=X?.toArray?.()??X??[];return V1.Set($.filter((H)=>!Q.includes(H)))},forEach(X){$.forEach(X)},map(X){return V1.Set($.map(X))},filter(X){return V1.Set($.filter(X))},toJSON(){return[...$]}}},Date:(()=>{let Z=(X)=>({get value(){return X.toISOString()},get timestamp(){return X.getTime()},get year(){return X.getFullYear()},get month(){return X.getMonth()+1},get day(){return X.getDate()},get hours(){return X.getHours()},get minutes(){return X.getMinutes()},get seconds(){return X.getSeconds()},get dayOfWeek(){return X.getDay()},add({years:Q=0,months:H=0,days:K=0,hours:Y=0,minutes:z=0,seconds:W=0,ms:G=0}={}){let J=new globalThis.Date(X.getTime());if(Q)J.setFullYear(J.getFullYear()+Q);if(H)J.setMonth(J.getMonth()+H);if(K)J.setDate(J.getDate()+K);if(Y)J.setHours(J.getHours()+Y);if(z)J.setMinutes(J.getMinutes()+z);if(W)J.setSeconds(J.getSeconds()+W);if(G)J.setMilliseconds(J.getMilliseconds()+G);return Z(J)},diff(Q,H="ms"){let K=typeof Q==="object"&&Q.timestamp?Q.timestamp:new globalThis.Date(Q).getTime(),Y=X.getTime()-K;switch(H){case"seconds":return Y/1000;case"minutes":return Y/60000;case"hours":return Y/3600000;case"days":return Y/86400000;default:return Y}},format(Q="ISO"){if(Q==="ISO")return X.toISOString();if(Q==="date")return X.toISOString().split("T")[0];if(Q==="time")return X.toISOString().split("T")[1].split(".")[0];return Q.replace("YYYY",String(X.getFullYear())).replace("MM",String(X.getMonth()+1).padStart(2,"0")).replace("DD",String(X.getDate()).padStart(2,"0")).replace("HH",String(X.getHours()).padStart(2,"0")).replace("mm",String(X.getMinutes()).padStart(2,"0")).replace("ss",String(X.getSeconds()).padStart(2,"0"))},isBefore(Q){let H=typeof Q==="object"&&Q.timestamp?Q.timestamp:new globalThis.Date(Q).getTime();return X.getTime()<H},isAfter(Q){let H=typeof Q==="object"&&Q.timestamp?Q.timestamp:new globalThis.Date(Q).getTime();return X.getTime()>H},toString(){return X.toISOString()},toJSON(){return X.toISOString()}}),$=(X)=>{let Q=X!==void 0?new globalThis.Date(X):new globalThis.Date;if(isNaN(Q.getTime()))throw Error(`Invalid date: ${X}`);return Z(Q)};return $.now=()=>globalThis.Date.now(),$.parse=(X)=>Z(new globalThis.Date(X)),$})()},A4={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."},G$=0.01,m7=0.0001,i7=0.001,J$=new Set(["concat","slice","map","filter","flatMap","flat","toReversed","toSorted","toSpliced","repeat","padStart","padEnd","split","join","replace","replaceAll","substring","substr","trim","trimStart","trimEnd","toLowerCase","toUpperCase","match","matchAll","parse","stringify"]);function s(Z,$){if(Z===null||Z===void 0)return Z;if(typeof Z!=="object"||!("$expr"in Z))return Z;if($.fuel){if($.fuel.current-=G$,$.fuel.current<=0)throw Error("Out of Fuel")}switch(Z.$expr){case"literal":return Z.value;case"ident":{if(Z.name in $.state)return $.state[Z.name];if(Z.name in $.args)return $.args[Z.name];if(Z.name in V1)return V1[Z.name];if(Z.name in A4)throw Error(A4[Z.name]);return}case"member":{let X=s(Z.object,$);if(Z.optional&&(X===null||X===void 0))return;let Q=Z.property;return l7(Q),X?.[Q]}case"binary":{let X=s(Z.left,$),Q=s(Z.right,$);switch(Z.op){case"+":{let H=X+Q;if(typeof H==="string"&&$.fuel){if($.fuel.current-=H.length*m7,$.fuel.current<=0){$.error=new Y1("Out of Fuel","expr.concat");return}}return H}case"-":return X-Q;case"*":return X*Q;case"/":return X/Q;case"%":return X%Q;case"**":return X**Q;case">":return X>Q;case"<":return X<Q;case">=":return X>=Q;case"<=":return X<=Q;case"==":return I4(X,Q);case"!=":return!I4(X,Q);case"===":return X===Q;case"!==":return X!==Q;default:throw Error(`Unknown binary operator: ${Z.op}`)}}case"unary":{let X=s(Z.argument,$);switch(Z.op){case"!":return!X;case"-":return-X;case"+":return+X;case"typeof":return typeof X;default:throw Error(`Unknown unary operator: ${Z.op}`)}}case"logical":{let X=s(Z.left,$);if(Z.op==="&&")return X?s(Z.right,$):X;else if(Z.op==="??")return X??s(Z.right,$);else return X?X:s(Z.right,$)}case"conditional":return s(Z.test,$)?s(Z.consequent,$):s(Z.alternate,$);case"array":return Z.elements.map((X)=>s(X,$));case"object":{let X={};for(let Q of Z.properties)X[Q.key]=s(Q.value,$);return X}case"call":{if(Z.callee==="Error"){let Q=Z.arguments.map((K)=>s(K,$)),H=typeof Q[0]==="string"?Q[0]:"Error";$.error=new Y1(H,"Error");return}if(Z.callee in V1){let Q=V1[Z.callee];if(typeof Q==="function"){let H=Z.arguments.map((K)=>s(K,$));return Q(...H)}}if(!$.resolver(Z.callee)){if(Z.callee in A4)throw Error(A4[Z.callee]);throw Error(`Unknown function: ${Z.callee}`)}throw Error(`Atom calls in expressions not yet supported: ${Z.callee}`)}case"methodCall":{let X=s(Z.object,$);if(Z.optional&&(X===null||X===void 0))return;let Q=Z.method;if(l7(Q),X===null||X===void 0)throw Error(`Cannot call method '${Q}' on ${X}`);let H=X[Q];if(typeof H!=="function")throw Error(`'${Q}' is not a function`);let K=Z.arguments.map((z)=>s(z,$)),Y=H.apply(X,K);if($.fuel&&J$.has(Q)){let z=0;if(typeof Y==="string")z=Y.length*m7;else if(Array.isArray(Y))z=Y.length*i7;else if(typeof Y==="object"&&Y!==null)z=Object.keys(Y).length*i7;if($.fuel.current-=z,$.fuel.current<=0){$.error=new Y1("Out of Fuel",`expr.${Q}`);return}}return Y}default:throw Error(`Unknown expression type: ${Z.$expr}`)}}function g(Z,$,X,Q,H={}){let{docs:K="",timeoutMs:Y=1000,cost:z=1}=typeof H==="string"?{docs:H}:H;return{op:Z,inputSchema:$,outputSchema:X,exec:async(G,J)=>{let{op:L,result:_,...U}=G;if(J.error)return;let q=J.trace?{...J.state}:null,I=J.fuel.current,M,R;try{let P=J.costOverrides?.[Z],B=P!==void 0?P:z,F=typeof B==="function"?B(U,J):B;if((J.fuel.current-=F)<=0){J.error=new Y1("Out of Fuel",Z);return}let N,V=async()=>Q(G,J);if(M=Y>0?await Promise.race([V(),new Promise((w,C)=>{N=setTimeout(()=>C(Error(`Atom '${Z}' timed out`)),Y)})]).finally(()=>clearTimeout(N)):await V(),G.result){if(J.consts.has(G.result))throw Error(`Cannot reassign const variable '${G.result}'`);if(M!==void 0&&X&&!Y6(M,X)){J.error=new Y1(`Output validation failed for '${Z}'`,Z);return}if(J.state[G.result]=M,G.resultConst)J.consts.add(G.result)}}catch(P){R=P.message||String(P),J.error=new Y1(R,Z,P)}finally{if(J.trace&&q){let P=W$(q,J.state);J.trace.push({op:Z,input:U,stateDiff:P,result:M,error:R,fuelBefore:I,fuelAfter:J.fuel.current,timestamp:new Date().toISOString()})}}},docs:K,timeoutMs:Y,cost:z,create:(G)=>({op:Z,...G})}}var _1=g("seq",A.object({steps:A.array(A.any)}),void 0,async({steps:Z},$)=>{for(let X of Z){if($.output!==void 0)return;if($.error)return;let Q=$.resolver(X.op);if(!Q)throw Error(`Unknown Atom: ${X.op}`);await Q.exec(X,$)}},{docs:"Sequence",timeoutMs:0,cost:0.1}),_$=g("if",A.object({condition:A.any,then:A.array(A.any),else:A.array(A.any).optional}),void 0,async(Z,$)=>{if(s(Z.condition,$))await _1.exec({op:"seq",steps:Z.then},$);else if(Z.else)await _1.exec({op:"seq",steps:Z.else},$)},{docs:"If/Else",timeoutMs:0,cost:0.1}),L$=g("while",A.object({condition:A.any,body:A.array(A.any)}),void 0,async(Z,$)=>{while(s(Z.condition,$)){if($.signal?.aborted)throw Error("Execution aborted");if(($.fuel.current-=0.1)<=0)throw Error("Out of Fuel");if(await _1.exec({op:"seq",steps:Z.body},$),$.output!==void 0)return}},{docs:"While Loop",timeoutMs:0,cost:0.1}),U$=g("return",void 0,A.any,async(Z,$)=>{if($.error)return $.output=$.error,$.error;if("value"in Z){let Q=E(Z.value,$);if(Q!==void 0&&Q!==null&&!$$(Q)&&(typeof Q!=="object"||Array.isArray(Q))){let H=new Y1(`Agent must return an object, got ${Array.isArray(Q)?"array":typeof Q}`,"return");return $.error=H,$.output=H,H}return $.output=Q,Q}let X={};if(Z.schema?.properties){for(let Q of Object.keys(Z.schema.properties))X[Q]=$.state[Q];if(Z.filter!==!1){let Q=o7(X,Z.schema);if(!(Q instanceof Error))X=Q}}return $.output=X,X},{docs:"Return",cost:0.1}),q$=g("try",A.object({try:A.array(A.any),catch:A.array(A.any).optional,catchParam:A.string.optional}),void 0,async(Z,$)=>{if(await _1.exec({op:"seq",steps:Z.try},$),$.error&&Z.catch){let X=Z.catchParam||"error";$.state[X]=$.error.message,$.state.errorOp=$.error.op,$.error=void 0,await _1.exec({op:"seq",steps:Z.catch},$)}},{docs:"Try/Catch",timeoutMs:0,cost:0.1}),D$=g("Error",A.object({args:A.array(A.any).optional}),void 0,async(Z,$)=>{let X=Z.args?.[0]??"Error";$.error=new Y1(String(X),"Error")},{docs:"Trigger error flow",cost:0.1}),A$=g("varSet",A.object({key:A.string,value:A.any}),void 0,async({key:Z,value:$},X)=>{if(X.consts.has(Z))throw Error(`Cannot reassign const variable '${Z}'`);X.state[Z]=E($,X)},{docs:"Set Variable",cost:0.1}),I$=g("constSet",A.object({key:A.string,value:A.any}),void 0,async({key:Z,value:$},X)=>{if(X.consts.has(Z))throw Error(`Cannot reassign const variable '${Z}'`);if(Z in X.state)throw Error(`Cannot redeclare variable '${Z}' as const`);X.state[Z]=E($,X),X.consts.add(Z)},{docs:"Set Const Variable (immutable)",cost:0.1}),B$=g("varGet",A.object({key:A.string}),A.any,async({key:Z},$)=>{return E(Z,$)},{docs:"Get Variable",cost:0.1}),R$=g("varsImport",A.object({keys:A.union([A.array(A.string),A.record(A.string)])}),void 0,async({keys:Z},$)=>{if(Array.isArray(Z))for(let X of Z)$.state[X]=E({$kind:"arg",path:X},$);else for(let[X,Q]of Object.entries(Z))$.state[X]=E({$kind:"arg",path:Q},$)},{docs:"Import variables from args into the current scope, with optional renaming.",cost:0.2}),M$=g("varsLet",A.record(A.any),void 0,async(Z,$)=>{for(let X of Object.keys(Z)){if(X==="op"||X==="result")continue;$.state[X]=E(Z[X],$)}},{docs:"Initialize a set of variables in the current scope from the step object properties.",cost:0.1}),w$=g("varsExport",A.object({keys:A.union([A.array(A.string),A.record(A.string)])}),A.record(A.any),async({keys:Z},$)=>{let X={};if(Array.isArray(Z))for(let Q of Z)X[Q]=E(Q,$);else for(let[Q,H]of Object.entries(Z))X[Q]=E(H,$);return X},{docs:"Export variables from the current scope, with optional renaming.",cost:0.2}),j$=g("scope",A.object({steps:A.array(A.any)}),void 0,async({steps:Z},$)=>{let X=E1($);if(await _1.exec({op:"seq",steps:Z},X),X.output!==void 0)$.output=X.output},{docs:"Create new scope",timeoutMs:0,cost:0.1}),F$=g("map",A.object({items:A.array(A.any),as:A.string,steps:A.array(A.any)}),A.array(A.any),async({items:Z,as:$,steps:X},Q)=>{let H=[],K=E(Z,Q);if(!Array.isArray(K))throw Error("map: items is not an array");for(let Y of K){if(Q.signal?.aborted)throw Error("Execution aborted");let z=E1(Q);z.state[$]=Y,await _1.exec({op:"seq",steps:X},z),H.push(z.state.result??null)}return H},{docs:"Map Array",timeoutMs:0,cost:1}),P$=g("filter",A.object({items:A.array(A.any),as:A.string,condition:A.any}),A.array(A.any),async({items:Z,as:$,condition:X},Q)=>{let H=[],K=E(Z,Q);if(!Array.isArray(K))throw Error("filter: items is not an array");for(let Y of K){if(Q.signal?.aborted)throw Error("Execution aborted");let z=E1(Q);if(z.state[$]=Y,s(X,z))H.push(Y)}return H},{docs:"Filter Array",timeoutMs:0,cost:1}),V$=g("reduce",A.object({items:A.array(A.any),as:A.string,accumulator:A.string,initial:A.any,steps:A.array(A.any)}),A.any,async({items:Z,as:$,accumulator:X,initial:Q,steps:H},K)=>{let Y=E(Z,K),z=E(Q,K);if(!Array.isArray(Y))throw Error("reduce: items is not an array");let W=z;for(let G of Y){if(K.signal?.aborted)throw Error("Execution aborted");let J=E1(K);J.state[$]=G,J.state[X]=W,await _1.exec({op:"seq",steps:H},J),W=J.state.result??W}return W},{docs:"Reduce Array",timeoutMs:0,cost:1}),C$=g("find",A.object({items:A.array(A.any),as:A.string,condition:A.any}),A.any,async({items:Z,as:$,condition:X},Q)=>{let H=E(Z,Q);if(!Array.isArray(H))throw Error("find: items is not an array");for(let K of H){if(Q.signal?.aborted)throw Error("Execution aborted");let Y=E1(Q);if(Y.state[$]=K,s(X,Y))return K}return null},{docs:"Find in Array",timeoutMs:0,cost:1}),O$=g("push",A.object({list:A.array(A.any),item:A.any}),A.array(A.any),async({list:Z,item:$},X)=>{let Q=E(Z,X),H=E($,X);if(Array.isArray(Q))Q.push(H);return Q},{docs:"Push to Array",cost:1}),N$=g("len",A.object({list:A.any}),A.number,async({list:Z},$)=>{let X=E(Z,$);return Array.isArray(X)||typeof X==="string"?X.length:0},{docs:"Length",cost:1}),E$=g("split",A.object({str:A.string,sep:A.string}),A.array(A.string),async({str:Z,sep:$},X)=>E(Z,X).split(E($,X)),{docs:"Split String",cost:1}),T$=g("join",A.object({list:A.array(A.string),sep:A.string}),A.string,async({list:Z,sep:$},X)=>E(Z,X).join(E($,X)),{docs:"Join String",cost:1}),S$=g("template",A.object({tmpl:A.string,vars:A.record(A.any)}),A.string,async({tmpl:Z,vars:$},X)=>{return E(Z,X).replace(/\{\{(\w+)\}\}/g,(H,K)=>String(E($[K],X)??""))},{docs:"String Template",cost:1}),k$=g("regexMatch",A.object({pattern:A.string,value:A.any}),A.boolean,async({pattern:Z,value:$},X)=>{if(z$(Z))throw Error(`Suspicious regex pattern rejected (potential ReDoS): ${Z}`);let Q=E($,X);return new RegExp(Z).test(Q)},{docs:"Returns true if the value matches the regex pattern.",cost:2}),g$=g("pick",A.object({obj:A.record(A.any),keys:A.array(A.string)}),A.record(A.any),async({obj:Z,keys:$},X)=>{let Q=E(Z,X),H=E($,X),K={};if(Q&&Array.isArray(H))H.forEach((Y)=>K[Y]=Q[Y]);return K},{docs:"Pick Keys",cost:1}),b$=g("omit",A.object({obj:A.record(A.any),keys:A.array(A.string)}),A.record(A.any),async({obj:Z,keys:$},X)=>{let Q=E(Z,X),H=new Set(E($,X)),K={};if(Q)Object.keys(Q).forEach((Y)=>{if(!H.has(Y))K[Y]=Q[Y]});return K},{docs:"Omit Keys",cost:1}),v$=g("merge",A.object({a:A.record(A.any),b:A.record(A.any)}),A.record(A.any),async({a:Z,b:$},X)=>({...E(Z,X),...E($,X)}),{docs:"Merge Objects",cost:1}),f$=g("keys",A.object({obj:A.record(A.any)}),A.array(A.string),async({obj:Z},$)=>Object.keys(E(Z,$)??{}),{docs:"Object Keys",cost:1}),p7=10,n7="X-Agent-Depth";function y$(Z,$){try{let Q=new URL(Z).hostname.toLowerCase();for(let H of $){let K=H.toLowerCase();if(K.startsWith("*.")){let Y=K.slice(1);if(Q.endsWith(Y)||Q===K.slice(2))return!0}else if(Q===K)return!0}return!1}catch{return!1}}var h$=g("httpFetch",A.object({url:A.string,method:A.string.optional,headers:A.record(A.string).optional,body:A.any.optional,responseType:A.string.optional}),A.any,async(Z,$)=>{let X=E(Z.url,$),Q=E(Z.method,$),H=E(Z.headers,$)||{},K=E(Z.body,$),Y=E(Z.responseType,$),z=$.context?.requestDepth??0;if(z>=p7)throw Error(`Agent request depth exceeded (max ${p7}). This prevents recursive agent loops.`);if($.capabilities.fetch)return $.capabilities.fetch(X,{method:Q,headers:{...H,[n7]:String(z+1)},body:K,signal:$.signal,responseType:Y});let W=$.context?.allowedFetchDomains;if(W){if(!y$(X,W))throw Error(`Fetch blocked: domain not in allowlist. Allowed: ${W.join(", ")}`)}else{if(Y$(X))throw Error("Blocked URL: private/internal addresses not allowed in default fetch");try{let J=new URL(X).hostname.toLowerCase();if(J!=="localhost"&&J!=="127.0.0.1"&&J!=="[::1]")throw Error("Fetch blocked: no allowedFetchDomains configured. Set ctx.context.allowedFetchDomains or provide a custom fetch capability.")}catch(G){if(G.message.includes("allowedFetchDomains"))throw G;throw Error(`Invalid URL: ${X}`)}}if(typeof globalThis.fetch==="function"){let G=await globalThis.fetch(X,{method:Q,headers:{...H,[n7]:String(z+1)},body:K?JSON.stringify(K):void 0,signal:$.signal});if(Y==="dataUrl"){let L=await G.arrayBuffer(),_=new Uint8Array(L),U="";for(let M=0;M<_.length;M++)U+=String.fromCharCode(_[M]);let q=btoa(U);return`data:${G.headers.get("content-type")||"application/octet-stream"};base64,${q}`}let J=G.headers.get("content-type");if(Y==="json"||J&&J.includes("application/json"))return G.json();return G.text()}throw Error("Capability 'fetch' missing and no global fetch available")},{docs:"HTTP Fetch",timeoutMs:30000,cost:5}),x$=g("storeGet",A.object({key:A.string}),A.any,async({key:Z},$)=>{let X=E(Z,$);return $.capabilities.store?.get(X)},{docs:"Store Get",cost:5}),u$=g("storeSet",A.object({key:A.string,value:A.any}),void 0,async({key:Z,value:$},X)=>{let Q=E(Z,X),H=E($,X);return X.capabilities.store?.set(Q,H)},{docs:"Store Set",cost:5}),d$=g("storeQuery",A.object({query:A.any}),A.array(A.any),async({query:Z},$)=>$.capabilities.store?.query?.(E(Z,$))??[],{docs:"Store Query",cost:5}),l$=g("storeVectorSearch",A.object({collection:A.string.optional,vector:A.array(A.number),k:A.number.optional}),A.array(A.any),async({collection:Z,vector:$,k:X},Q)=>Q.capabilities.store?.vectorSearch?.(E(Z,Q),E($,Q),E(X,Q))??[],{docs:"Vector Search",cost:(Z,$)=>5+(E(Z.k,$)??5)}),m$=g("llmPredict",A.object({prompt:A.string,options:A.any.optional}),A.string,async({prompt:Z,options:$},X)=>{if(!X.capabilities.llm?.predict)throw Error("Capability 'llm.predict' missing");return X.capabilities.llm.predict(E(Z,X),E($,X))},{docs:"LLM Predict",timeoutMs:120000,cost:100}),i$=g("agentRun",A.object({agentId:A.any,input:A.any}),A.any,async({agentId:Z,input:$},X)=>{let Q=E(Z,X),H=E($,X),K=H;if(H&&typeof H==="object"&&!Array.isArray(H)){K={};for(let z in H)K[z]=E(H[z],X)}if(W6(Q)){let z=G6(Q),W={...X,args:K,state:{},consts:new Set,output:void 0,error:void 0},G=X.resolver("seq");if(!G)throw Error("seq atom not found");if(await G.exec(z,W),W.error)throw Error(W.error.message||"Sub-agent failed");return W.output}if(Q&&typeof Q==="object"&&"op"in Q){let z={...X,args:K,state:{},consts:new Set,output:void 0,error:void 0},W=X.resolver("seq");if(!W)throw Error("seq atom not found");if(await W.exec(Q,z),z.error)throw Error(z.error.message||"Sub-agent failed");return z.output}if(!X.capabilities.agent?.run)throw Error("Capability 'agent.run' missing");let Y=await X.capabilities.agent.run(Q,K);if(Y&&typeof Y==="object"&&"fuelUsed"in Y&&typeof Y.fuelUsed==="number"){if(Y.error)throw Error(Y.error.message||"Sub-agent failed");return Y.result}return Y},{docs:"Run Sub-Agent (accepts procedure token, AST, or agent ID)",cost:1}),p$=g("transpileCode",A.object({code:A.string}),A.any,async({code:Z},$)=>{if(!$.capabilities.code?.transpile)throw Error("Capability 'code.transpile' missing. Enable code transpilation by providing the code capability.");let X=E(Z,$);try{return $.capabilities.code.transpile(X)}catch(Q){throw Error(`Code transpilation failed: ${Q.message}`)}},{docs:"Transpile AsyncJS code to AST",cost:1}),c7=10,n$=g("runCode",A.object({code:A.string,args:A.record(A.any).optional}),A.any,async({code:Z,args:$},X)=>{let Q=X.runCodeDepth??0;if(Q>=c7)throw Error(`runCode recursion limit exceeded (max ${c7}). This prevents infinite loops from dynamically generated code calling runCode.`);if(!X.capabilities.code?.transpile)throw Error("Capability 'code.transpile' missing. Enable dynamic code execution by providing the code capability.");let H=E(Z,X),K=$?E($,X):{},Y;try{Y=X.capabilities.code.transpile(H)}catch(W){throw Error(`Code transpilation failed: ${W.message}`)}if(Y.op!=="seq")throw Error("Transpiled code must be a seq node");let z=E1(X);if(z.args=K,z.output=void 0,z.runCodeDepth=Q+1,await _1.exec(Y,z),z.error){X.error=z.error;return}return z.output},{docs:"Run dynamically generated AsyncJS code",cost:1}),c$=g("jsonParse",A.object({str:A.string}),A.any,async({str:Z},$)=>JSON.parse(E(Z,$)),{docs:"Parse JSON",cost:1}),o$=g("jsonStringify",A.object({value:A.any}),A.string,async({value:Z},$)=>JSON.stringify(E(Z,$)),{docs:"Stringify JSON",cost:1}),s$=g("xmlParse",A.object({str:A.string}),A.any,async({str:Z},$)=>{if(!$.capabilities.xml?.parse)throw Error("Capability 'xml.parse' missing");return $.capabilities.xml.parse(E(Z,$))},{docs:"Parse XML",cost:1}),a$=g("memoize",A.object({key:A.string.optional,steps:A.array(A.any)}),A.any,async({key:Z,steps:$},X)=>{if(!X.memo)X.memo=new Map;let Q=E(Z,X)??await J6.exec({value:$,algorithm:"SHA-256"},X);if(X.memo.has(Q))return X.memo.get(Q);let H=E1(X);await _1.exec({op:"seq",steps:$},H);let K=H.output??H.state.result;return X.memo.set(Q,K),K},{docs:"Memoize steps result in memory",cost:1}),r$=g("cache",A.object({key:A.string.optional,steps:A.array(A.any),ttlMs:A.number.optional}),A.any,async({key:Z,steps:$,ttlMs:X},Q)=>{if(!Q.capabilities.store)throw Error("Capability 'store' missing for caching");let K=`cache:${E(Z,Q)??await J6.exec({value:$,algorithm:"SHA-256"},Q)}`,Y=await Q.capabilities.store.get(K);if(Y)if(typeof Y==="object"&&Y._exp){if(Date.now()<Y._exp)return Y.val}else return Y;let z=E1(Q);await _1.exec({op:"seq",steps:$},z);let W=z.output??z.state.result,G=Date.now()+(X??86400000);if((Q.fuel.current-=5)<=0)throw Error("Out of Fuel");return await Q.capabilities.store.set(K,{val:W,_exp:G}),W},{docs:"Cache steps result in store with TTL",cost:5}),t$=g("random",A.object({min:A.number.optional,max:A.number.optional,format:A.string.optional,length:A.number.optional}),A.any,async({min:Z,max:$,format:X,length:Q},H)=>{let K=E(X,H)??"float",Y=E(Q,H)??10,z=E(Z,H)??0,W=E($,H)??1;if(K==="base36"){let U="";if(typeof crypto<"u"&&crypto.getRandomValues){let q=new Uint8Array(Y);crypto.getRandomValues(q);for(let I=0;I<Y;I++)U+="0123456789abcdefghijklmnopqrstuvwxyz"[q[I]%36]}else for(let q=0;q<Y;q++)U+="0123456789abcdefghijklmnopqrstuvwxyz".charAt(Math.floor(Math.random()*36));return U}let G;if(typeof crypto<"u"&&crypto.getRandomValues){let _=new Uint32Array(1);crypto.getRandomValues(_),G=_[0]/4294967296}else G=Math.random();let J=W-z,L=G*J+z;if(K==="integer")return Math.floor(L);return L},{docs:"Generate Random",cost:1}),e$=g("uuid",void 0,A.string,async()=>{if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID();if(typeof crypto<"u"&&crypto.getRandomValues){let Z=new Uint8Array(16);crypto.getRandomValues(Z),Z[6]=Z[6]&15|64,Z[8]=Z[8]&63|128;let $=Array.from(Z,(X)=>X.toString(16).padStart(2,"0")).join("");return`${$.slice(0,8)}-${$.slice(8,12)}-${$.slice(12,16)}-${$.slice(16,20)}-${$.slice(20)}`}return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(Z)=>{let $=Math.random()*16|0;return(Z==="x"?$:$&3|8).toString(16)})},{docs:"Generate UUID",cost:1}),J6=g("hash",A.object({value:A.any,algorithm:A.string.optional}),A.string,async({value:Z,algorithm:$},X)=>{let Q=typeof Z==="string"?Z:JSON.stringify(E(Z,X)),H=E($,X)||"SHA-256";if(typeof crypto<"u"&&crypto.subtle){let z=new TextEncoder().encode(Q),W=await crypto.subtle.digest(H,z);return Array.from(new Uint8Array(W)).map((J)=>J.toString(16).padStart(2,"0")).join("")}let K=0;for(let Y=0;Y<Q.length;Y++){let z=Q.charCodeAt(Y);K=(K<<5)-K+z,K|=0}return String(K)},{docs:"Hash a value",cost:1}),ZX=g("consoleLog",A.object({message:A.any}),void 0,async({message:Z},$)=>{let X=E(Z,$);if($.trace)$.trace.push({op:"console.log",input:{message:X},stateDiff:{},result:X,fuelBefore:$.fuel.current,fuelAfter:$.fuel.current,timestamp:new Date().toISOString()})},{docs:"Log to trace",cost:0.1}),$X=g("consoleWarn",A.object({message:A.any}),void 0,async({message:Z},$)=>{let X=E(Z,$),Q=typeof X==="string"?X:JSON.stringify(X);if(!$.warnings)$.warnings=[];if($.warnings.push(Q),$.trace)$.trace.push({op:"console.warn",input:{message:X},stateDiff:{},result:X,fuelBefore:$.fuel.current,fuelAfter:$.fuel.current,timestamp:new Date().toISOString()})},{docs:"Add warning",cost:0.1}),XX=g("consoleError",A.object({message:A.any}),void 0,async({message:Z},$)=>{let X=E(Z,$),Q=typeof X==="string"?X:JSON.stringify(X);$.error=new Y1(Q,"console.error")},{docs:"Emit error and stop",cost:0.1}),QX=g("storeProcedure",A.object({ast:A.any,ttl:A.number.optional,maxSize:A.number.optional}),A.string,async({ast:Z,ttl:$,maxSize:X},Q)=>{let H=E(Z,Q),K=$?E($,Q):X$,Y=X?E(X,Q):Q$;if(!H||typeof H!=="object"||!H.op)throw Error('Invalid AST: must be an object with an "op" property');let z=JSON.stringify(H);if(z.length>Y)throw Error(`AST too large: ${z.length} bytes exceeds limit of ${Y} bytes. Consider reducing AST size or using a shorter TTL.`);let W=H$(),G=Date.now();return Z0.set(W,{ast:H,createdAt:G,expiresAt:G+K}),W},{docs:"Store an AST and return a token for later execution",cost:1}),HX=g("releaseProcedure",A.object({token:A.string}),A.boolean,async({token:Z},$)=>{let X=E(Z,$);return Z0.delete(X)},{docs:"Release a stored procedure by token",cost:0.1}),KX=g("clearExpiredProcedures",void 0,A.number,async()=>{let Z=Date.now(),$=0;for(let[X,Q]of Z0)if(Z>Q.expiresAt)Z0.delete(X),$++;return $},{docs:"Clear all expired procedures and return count",cost:0.5}),B4={seq:_1,if:_$,while:L$,return:U$,try:q$,Error:D$,varSet:A$,constSet:I$,varGet:B$,varsImport:R$,varsLet:M$,varsExport:w$,scope:j$,map:F$,filter:P$,reduce:V$,find:C$,push:O$,len:N$,split:E$,join:T$,template:S$,regexMatch:k$,pick:g$,omit:b$,merge:v$,keys:f$,httpFetch:h$,storeGet:x$,storeSet:u$,storeQuery:d$,storeVectorSearch:l$,llmPredict:m$,agentRun:i$,transpileCode:p$,runCode:n$,jsonParse:c$,jsonStringify:o$,xmlParse:s$,memoize:a$,cache:r$,random:t$,uuid:e$,hash:J6,consoleLog:ZX,consoleWarn:$X,consoleError:XX,storeProcedure:QX,releaseProcedure:HX,clearExpiredProcedures:KX};var YX=new Set(["true","false","null","undefined","and","or","not"]);function zX(Z,$){let X=Z.replace(/"[^"]*"/g,'""').replace(/'[^']*'/g,"''"),Q=[],H=/(?<![.])\b([a-zA-Z_][a-zA-Z0-9_]*)\b/g,K;while((K=H.exec(X))!==null)Q.push(K[1]);let z=[...new Set(Q)].filter((W)=>!YX.has(W)&&!(W in $)&&!new RegExp(`\\b${W}\\s*\\(`).test(X));if(z.length>0)console.warn(`[Agent99 Builder] Condition "${Z}" references variables not in vars mapping: ${z.join(", ")}. Add them to vars or use AsyncJS syntax (ajs\`...\`) which handles this automatically.`)}function R4(Z,$){zX(Z,$);let X=WX(Z),Q=Z8(X,0,$);if(Q.pos<X.length){let H=X.slice(Q.pos).join(" ");throw Error(`Unsupported condition syntax near '${H}' in: ${Z}
421
- Supported: comparisons, &&, ||, !, arithmetic, member access (a.b), literals`)}return Q.node}function WX(Z){let $=[],X=0;while(X<Z.length){while(X<Z.length&&/\s/.test(Z[X]))X++;if(X>=Z.length)break;if(Z[X]==='"'||Z[X]==="'"){let Q=Z[X++],H="";while(X<Z.length&&Z[X]!==Q)if(Z[X]==="\\"&&X+1<Z.length)X++,H+=Z[X++];else H+=Z[X++];X++,$.push(JSON.stringify(H));continue}if(Z.slice(X,X+2).match(/^(&&|\|\||==|!=|>=|<=)$/)){$.push(Z.slice(X,X+2)),X+=2;continue}if("+-*/%><!().?:[]".includes(Z[X])){$.push(Z[X]),X++;continue}if(/\d/.test(Z[X])){let Q="";while(X<Z.length&&/[\d.]/.test(Z[X]))Q+=Z[X++];$.push(Q);continue}if(/[a-zA-Z_]/.test(Z[X])){let Q="";while(X<Z.length&&/[a-zA-Z0-9_]/.test(Z[X]))Q+=Z[X++];$.push(Q);continue}X++}return $}function Z8(Z,$,X){return GX(Z,$,X)}function GX(Z,$,X){let{node:Q,pos:H}=a7(Z,$,X);while(Z[H]==="||"){H++;let{node:K,pos:Y}=a7(Z,H,X);Q={$expr:"logical",op:"||",left:Q,right:K},H=Y}return{node:Q,pos:H}}function a7(Z,$,X){let{node:Q,pos:H}=r7(Z,$,X);while(Z[H]==="&&"){H++;let{node:K,pos:Y}=r7(Z,H,X);Q={$expr:"logical",op:"&&",left:Q,right:K},H=Y}return{node:Q,pos:H}}function r7(Z,$,X){let{node:Q,pos:H}=t7(Z,$,X),K=["==","!=",">","<",">=","<="];while(K.includes(Z[H])){let Y=Z[H++],{node:z,pos:W}=t7(Z,H,X);Q={$expr:"binary",op:Y,left:Q,right:z},H=W}return{node:Q,pos:H}}function t7(Z,$,X){let{node:Q,pos:H}=e7(Z,$,X);while(Z[H]==="+"||Z[H]==="-"){let K=Z[H++],{node:Y,pos:z}=e7(Z,H,X);Q={$expr:"binary",op:K,left:Q,right:Y},H=z}return{node:Q,pos:H}}function e7(Z,$,X){let{node:Q,pos:H}=_6(Z,$,X);while(Z[H]==="*"||Z[H]==="/"||Z[H]==="%"){let K=Z[H++],{node:Y,pos:z}=_6(Z,H,X);Q={$expr:"binary",op:K,left:Q,right:Y},H=z}return{node:Q,pos:H}}function _6(Z,$,X){if(Z[$]==="!"||Z[$]==="-"){let Q=Z[$++],{node:H,pos:K}=_6(Z,$,X);return{node:{$expr:"unary",op:Q,argument:H},pos:K}}return JX(Z,$,X)}function JX(Z,$,X){let Q=Z[$];if(Q==="("){let{node:H,pos:K}=Z8(Z,$+1,X);return{node:H,pos:K+1}}if(Q&&Q.startsWith('"'))return{node:{$expr:"literal",value:JSON.parse(Q)},pos:$+1};if(Q&&/^\d/.test(Q))return{node:{$expr:"literal",value:parseFloat(Q)},pos:$+1};if(Q==="true")return{node:{$expr:"literal",value:!0},pos:$+1};if(Q==="false")return{node:{$expr:"literal",value:!1},pos:$+1};if(Q==="null")return{node:{$expr:"literal",value:null},pos:$+1};if(Q&&/^[a-zA-Z_]/.test(Q)){let H={$expr:"ident",name:Q},K=$+1;while(Z[K]==="."){K++;let Y=Z[K++];H={$expr:"member",object:H,property:Y}}return{node:H,pos:K}}return{node:{$expr:"literal",value:null},pos:$+1}}class $1{steps=[];atoms;proxy;constructor(Z){return this.atoms=Z,this.proxy=new Proxy(this,{get:($,X,Q)=>{if(X in $)return $[X];if(typeof X==="string"&&X in $.atoms)return(H)=>{let K=$.atoms[X];return $.add(K.create(H)),Q};return}}),this.proxy}add(Z){return this.steps.push(Z),this.proxy}as(Z){if(this.steps.length===0)throw Error("No step to capture");let $=this.steps[this.steps.length-1];return $.result=Z,this.proxy}step(Z){return this.add(Z)}return(Z){let $=this.atoms.return;if(!$)throw Error("Atom 'return' not found");let X=Z.schema??Z;return this.add($.create({schema:X}))}toJSON(){return{op:"seq",steps:[...this.steps]}}varsImport(Z){return this.add(this.atoms.varsImport.create({keys:Z}))}varsExport(Z){return this.add(this.atoms.varsExport.create({keys:Z}))}if(Z,$,X,Q){let H=new $1(this.atoms);X(H);let K;if(Q){let W=new $1(this.atoms);Q(W),K=W.steps}let Y=R4(Z,$),z=this.atoms.if;return this.add(z.create({condition:Y,then:H.steps,else:K}))}while(Z,$,X){let Q=new $1(this.atoms);X(Q);let H=R4(Z,$),K=this.atoms.while;return this.add(K.create({condition:H,body:Q.steps}))}scope(Z){let $=new $1(this.atoms);Z($);let X=this.atoms.scope;return this.add(X.create({steps:$.steps}))}map(Z,$,X){let Q=new $1(this.atoms);X(Q);let H=this.atoms.map;return this.add(H.create({items:Z,as:$,steps:Q.steps}))}filter(Z,$,X,Q={}){let H=R4(X,Q),K=this.atoms.filter;return this.add(K.create({items:Z,as:$,condition:H}))}find(Z,$,X,Q={}){let H=R4(X,Q),K=this.atoms.find;return this.add(K.create({items:Z,as:$,condition:H}))}reduce(Z,$,X,Q,H){let K=new $1(this.atoms);H(K);let Y=this.atoms.reduce;return this.add(Y.create({items:Z,as:$,accumulator:X,initial:Q,steps:K.steps}))}memoize(Z,$){let X=new $1(this.atoms);Z(X);let Q=this.atoms.memoize;return this.add(Q.create({key:$,steps:X.steps}))}cache(Z,$,X){let Q=new $1(this.atoms);Z(Q);let H=this.atoms.cache;return this.add(H.create({key:$,steps:Q.steps,ttlMs:X}))}try(Z){let $=new $1(this.atoms);Z.try($);let X;if(Z.catch){let H=new $1(this.atoms);Z.catch(H),X=H.steps}let Q=this.atoms.try;return this.add(Q.create({try:$.steps,catch:X}))}}var _X={take(Z){return new $1(B4)},custom(Z){return new $1(Z)},args(Z){return{$kind:"arg",path:Z}},val(Z){return Z}},mH=_X;import{validate as LX}from"tosijs-schema";function P0(Z,$={}){let{ast:X,returnType:Q,originalSource:H,requiredParams:K}=j1(Z,{filename:$.filename,colonShorthand:!0,vmTarget:!0}),Y=h0(X,$.filename),{ast:z,signature:W,warnings:G}=U0(Y,H,Q,$,K);return{ast:z,signature:W,warnings:G}}var UX=10;class L6{atoms;constructor(Z={}){this.atoms={...B4,...Z}}get builder(){return new $1(this.atoms)}get Agent(){return new $1(this.atoms)}get A99(){return this.Agent}resolve(Z){return this.atoms[Z]}getTools(Z="all"){let $=Object.values(this.atoms);if(Array.isArray(Z))$=$.filter((X)=>Z.includes(X.op));else if(Z==="flow"){let X=["seq","if","while","return","try","varSet","varGet","scope"];$=$.filter((Q)=>X.includes(Q.op))}return $.map((X)=>({type:"function",function:{name:X.op,description:X.docs,parameters:X.inputSchema?.schema??{}}}))}async run(Z,$={},X={}){let Q;if(typeof Z==="string")if(W6(Z))Q=G6(Z);else try{Q=P0(Z).ast}catch(U){throw Error(`AJS transpilation failed: ${U.message}`)}else Q=Z;let H=X.fuel??1000,K=X.timeoutMs??H*UX,Y=X.capabilities??{},z=[];if(!Y.store){let U=new Map,q=!1;Y.store={get:async(I)=>{if(!q)q=!0,z.push("Using default in-memory store (not suitable for production)");return U.get(I)},set:async(I,M)=>{if(!q)q=!0,z.push("Using default in-memory store (not suitable for production)");U.set(I,M)}}}let W=new AbortController,G=setTimeout(()=>W.abort(),K);if(X.signal)X.signal.addEventListener("abort",()=>W.abort());let J={fuel:{current:H},args:$,state:{},consts:new Set,capabilities:Y,resolver:(U)=>this.resolve(U),output:void 0,signal:W.signal,costOverrides:X.costOverrides,context:X.context,warnings:z};if(X.trace)J.trace=[];if(Q.op!=="seq")throw Error("Root AST must be 'seq'. Ensure you're passing a transpiled agent (use ajs`...` or transpile()).");let L=Q.inputSchema;if(L&&!LX($,L)){let U=new Y1("Input validation failed: args do not match expected schema","vm.run");return{result:U,error:U,fuelUsed:0,trace:J.trace,warnings:z.length>0?z:void 0}}try{await Promise.race([this.resolve("seq")?.exec(Q,J),new Promise((U,q)=>{if(W.signal.addEventListener("abort",()=>{q(Error(`Execution timeout after ${K}ms (fuel: ${H}). Consider increasing fuel or optimizing your agent.`))}),W.signal.aborted)q(Error(`Execution timeout after ${K}ms (fuel: ${H}). Consider increasing fuel or optimizing your agent.`))})])}catch(U){if(U.message?.includes("timeout")||U.message?.includes("aborted")||W.signal.aborted)J.error=new Y1(`Execution timeout after ${K}ms (fuel: ${H}). Consider increasing fuel or optimizing your agent.`,"vm.run");else throw U}finally{clearTimeout(G)}if(J.error&&J.output===void 0)J.output=J.error;let _=[...z,...J.warnings??[]];return{result:J.output,error:J.error,fuelUsed:H-J.fuel.current,trace:J.trace,warnings:_.length>0?_:void 0}}}var qX=null,$8=()=>qX??=new L6;function l1(Z){if(!Z||typeof Z!=="object")return;if(Array.isArray(Z)){for(let $ of Z)l1($);return}if(Z.op==="return"&&"value"in Z)Z.value={__result:Z.value};if(Z.steps)l1(Z.steps);if(Z.then)l1(Z.then);if(Z.else)l1(Z.else);if(Z.body)l1(Z.body)}async function DX(Z){let{code:$,context:X={},fuel:Q=1000,timeoutMs:H,capabilities:K={}}=Z,Y=$8(),W=/\breturn\b/.test($)?`function __eval() { ${$} }`:`function __eval() { return (${$}) }`;try{let{ast:G}=P0(W);l1(G);let J=await Y.run(G,X,{fuel:Q,timeoutMs:H,capabilities:K}),L=J.result;return{result:L&&typeof L==="object"&&"__result"in L?L.__result:L,fuelUsed:J.fuelUsed,error:J.error?{message:J.error.message||String(J.error)}:void 0}}catch(G){return{result:void 0,fuelUsed:Q,error:{message:G.message||String(G)}}}}async function AX(Z){let{body:$,params:X=[],fuel:Q=1000,timeoutMs:H,capabilities:K={}}=Z,Y=$8(),W=`function __safeFn(${X.join(", ")}) { ${$} }`,{ast:G}=P0(W);return l1(G),async(...J)=>{let L={};for(let _=0;_<X.length;_++)L[X[_]]=J[_];try{let _=await Y.run(G,L,{fuel:Q,timeoutMs:H,capabilities:K}),U=_.result;return{result:U&&typeof U==="object"&&"__result"in U?U.__result:U,fuelUsed:_.fuelUsed,error:_.error?{message:_.error.message||String(_.error)}:void 0}}catch(_){return{result:void 0,fuelUsed:Q,error:{message:_.message||String(_)}}}}}function w4(Z,$={}){let{ast:X,returnType:Q,originalSource:H,requiredParams:K}=j1(Z,{filename:$.filename,colonShorthand:!0,vmTarget:!0}),Y=h0(X,$.filename),{ast:z,signature:W,warnings:G}=U0(Y,H,Q,$,K);return{ast:z,signature:W,warnings:G}}function zK(Z,...$){if(typeof Z==="string")return w4(Z).ast;let X=Z.reduce((Q,H,K)=>Q+H+($[K]!==void 0?String($[K]):""),"");return w4(X).ast}function GK(Z,$,...X){if(typeof Z==="string")return j0(Z,$);let Q=$!==void 0?[$,...X]:X,H=Z.reduce((K,Y,z)=>K+Y+(Q[z]!==void 0?String(Q[z]):""),"");return j0(H)}async function JK(Z,$={},X){let Q=X??await U4(),H=await Q.getTranspile(Z);if(H)return{ast:H.ast,signature:H.signature,warnings:H.warnings};let K=w4(Z,$);return Q.setTranspile(Z,{ast:K.ast,signature:K.signature,warnings:K.warnings}),K}async function _K(Z,$={},X){let Q=X??await U4(),H=await Q.getTJS(Z);if(H)return{code:H.code,types:H.types,metadata:H.types,testRunner:H.testRunner,testCount:H.testCount,warnings:H.warnings};let K=j0(Z,$);return Q.setTJS(Z,{code:K.code,types:K.types,testRunner:K.testRunner,testCount:K.testCount,warnings:K.warnings}),K}function LK(Z,$,X){let{ast:Q,signature:H}=w4(Z),K=async(Y)=>{return(await $.run(Q,Y,X)).result};return K.signature=H,K.ast=Q,K}function UK(Z){return Object.entries(Z).map(([$,X])=>{let Q=X.signature,H={},K=[];for(let[Y,z]of Object.entries(Q.parameters)){if(H[Y]=M4(z.type),z.description)H[Y].description=z.description;if(z.required)K.push(Y)}return{type:"function",function:{name:Q.name||$,description:Q.description,parameters:{type:"object",properties:H,required:K}}}})}function M4(Z){switch(Z.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:Z.items?M4(Z.items):{}};case"object":if(!Z.shape)return{type:"object"};return{type:"object",properties:Object.fromEntries(Object.entries(Z.shape).map(([$,X])=>[$,M4(X)]))};case"union":if(!Z.members)return{};return{anyOf:Z.members.map(M4)};case"any":default:return{}}}import{s as f}from"tosijs-schema";var X8=g("storeVectorize",f.object({text:f.string,model:f.string.optional}),f.array(f.number),async({text:Z},$)=>{let X=$.capabilities.vector;if(!X)throw Error("Capability 'vector' missing. Ensure vector battery is loaded.");let Q=E(Z,$);return X.embed(Q)},{docs:"Generate embeddings using vector battery",cost:20}),Q8=g("storeCreateCollection",f.object({collection:f.string,dimension:f.number.optional}),void 0,async({collection:Z,dimension:$},X)=>{let Q=X.capabilities.store;if(!Q?.createCollection)throw Error("Capability 'store' missing or does not support createCollection.");let H=E(Z,X),K=E($,X);return Q.createCollection(H,void 0,K)},{docs:"Create a vector store collection",cost:5}),H8=g("storeVectorAdd",f.object({collection:f.string,doc:f.any}),void 0,async({collection:Z,doc:$},X)=>{let Q=X.capabilities.store;if(!Q?.vectorAdd)throw Error("Capability 'store' missing or does not support vectorAdd.");let H=E(Z,X),K=E($,X);return Q.vectorAdd(H,K)},{docs:"Add a document to a vector store collection",cost:5}),K8=g("storeSearch",f.object({collection:f.string,queryVector:f.array(f.number),k:f.number.optional,filter:f.record(f.any).optional}),f.array(f.any),async({collection:Z,queryVector:$,k:X,filter:Q},H)=>{let K=H.capabilities.store;if(!K?.vectorSearch)throw Error("Capability 'store' missing or does not support vectorSearch.");let Y=E(Z,H),z=E($,H),W=E(X,H)??5,G=E(Q,H);return K.vectorSearch(Y,z,W,G)},{docs:"Search vector store",cost:(Z,$)=>5+(E(Z.k,$)??5)}),Y8=g("llmPredictBattery",f.object({system:f.string.optional,user:f.string,tools:f.array(f.any).optional,responseFormat:f.any.optional}),f.object({role:f.string.optional,content:f.string.optional,tool_calls:f.array(f.any).optional}),async({system:Z,user:$,tools:X,responseFormat:Q},H)=>{let K=H.capabilities.llmBattery;if(!K?.predict)throw Error("Capability 'llmBattery' missing or invalid.");let Y=E(Z,H)??"You are a helpful agent.",z=E($,H),W=E(X,H),G=E(Q,H);return K.predict(Y,z,W,G)},{docs:"Generate completion using LLM battery",cost:100}),z8=g("llmVision",f.object({system:f.string.optional,prompt:f.string,images:f.array(f.string),responseFormat:f.any.optional}),f.object({role:f.string.optional,content:f.string.optional,tool_calls:f.array(f.any).optional}),async({system:Z,prompt:$,images:X,responseFormat:Q},H)=>{let K=H.capabilities.llmBattery;if(!K?.predict)throw Error("Capability 'llmBattery' missing or invalid.");let Y=E(Z,H)??"You analyze images accurately and concisely.",z=E($,H),W=E(X,H)??[],G=E(Q,H);return K.predict(Y,{text:z,images:W},void 0,G)},{docs:"Analyze images using a vision model",timeoutMs:120000,cost:150});var vK={storeCreateCollection:Q8,storeSearch:K8,storeVectorAdd:H8,storeVectorize:X8,llmPredictBattery:Y8,llmVision:z8};var W8=new Map,j4=new Map;function IX(Z,$){if(Z.length!==$.length)throw Error("Vectors must have the same length for cosine similarity.");let X=0,Q=0,H=0;for(let K=0;K<Z.length;K++)X+=Z[K]*$[K],Q+=Z[K]*Z[K],H+=$[K]*$[K];if(Q=Math.sqrt(Q),H=Math.sqrt(H),Q===0||H===0)return 0;return X/(Q*H)}function U6(){return{async get(Z){return W8.get(Z)},async set(Z,$){W8.set(Z,$)},async createCollection(Z,$,X){if(j4.has(Z))console.warn(`Collection '${Z}' already exists. Overwriting.`);j4.set(Z,[])},async vectorAdd(Z,$){let X=j4.get(Z);if(!X)throw Error(`Collection '${Z}' not found. Create it first.`);if(!$.embedding||!Array.isArray($.embedding))throw Error("Document must have an 'embedding' property that is an array of numbers.");X.push($)},async vectorSearch(Z,$,X=5){let Q=j4.get(Z);if(!Q)throw Error(`Collection '${Z}' not found. Create it first.`);let H=Q.map((K)=>({doc:K,score:IX($,K.embedding)}));return H.sort((K,Y)=>Y.score-K.score),H.slice(0,X).map((K)=>K.doc)}}}function BX(Z){if(typeof Z==="string")return{role:"user",content:Z};let $=[{type:"text",text:Z.text}];for(let X of Z.images||[])$.push({type:"image_url",image_url:{url:X}});return{role:"user",content:$}}var RX="http://localhost:1234/v1";function G8(Z,$=RX){return{async predict(X,Q,H,K){try{let Y=K?Z.getStructuredLLM():Z.getLLM(),z=[{role:"system",content:X},BX(Q)],W=await fetch(`${$}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:Y.id,messages:z,temperature:0.7,tools:H,response_format:K})});if(!W.ok)throw Error(`LLM Error: ${W.status} ${W.statusText}`);return(await W.json()).choices[0]?.message??{content:""}}catch(Y){if(Y.cause?.code==="ECONNREFUSED")throw Error("No LLM provider configured. Please start LM Studio or provide an API key.");throw Y}},async embed(X){try{let Q=Z.getEmbedding(),H=await fetch(`${$}/embeddings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:Q.id,input:X})});if(!H.ok)throw Error(`Embedding Error: ${H.status}`);return(await H.json()).data[0]?.embedding??[]}catch(Q){if(Q.cause?.code==="ECONNREFUSED")throw Error("No LLM provider configured. Please start LM Studio or provide an API key.");throw Q}}}}var V0=typeof window<"u"&&typeof window.localStorage<"u";async function jX(Z){try{if(V0){let $=window.localStorage.getItem(".models.cache.json");if(!$)return null;let X=JSON.parse($);if(X.baseUrl!==Z)return null;if(Date.now()-X.timestamp>86400000)return null;return X.models}else{let $=await import("node:fs/promises"),Q=(await Promise.resolve().then(() => (A6(),D6))).join(process.cwd(),".models.cache.json");try{let H=await $.readFile(Q,"utf-8"),K=JSON.parse(H);if(K.baseUrl!==Z)return null;if(Date.now()-K.timestamp>86400000)return null;return K.models}catch{return null}}}catch($){return console.warn("⚠️ Error reading model cache:",$),null}}async function FX(Z,$){let X={timestamp:Date.now(),baseUrl:Z,models:$};try{if(V0)window.localStorage.setItem(".models.cache.json",JSON.stringify(X));else{let Q=await import("node:fs/promises"),K=(await Promise.resolve().then(() => (A6(),D6))).join(process.cwd(),".models.cache.json");await Q.writeFile(K,JSON.stringify(X,null,2))}}catch(Q){console.error("❌ Error writing model cache:",Q)}}var C0=async(Z,$)=>{let X=new AbortController,Q=setTimeout(()=>X.abort(),60000);try{let H=await fetch(Z,{...$,signal:X.signal});return clearTimeout(Q),H}catch(H){throw clearTimeout(Q),H}};async function PX(Z,$){try{let X={type:"json_schema",json_schema:{name:"test",strict:!1,schema:{type:"object",properties:{status:{type:"string"}}}}},Q=await C0(`${Z}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:$,messages:[{role:"system",content:"You respond in JSON."},{role:"user",content:'Return JSON: {"status": "ok"}'}],response_format:X,max_tokens:20})});if(!Q.ok){if(Q.status===400)return VX(Z,$);return{ok:!1,msg:`HTTP ${Q.status}`}}let H=await Q.json();return JSON.parse(H.choices[0].message.content),{ok:!0,msg:"OK (Schema)"}}catch(X){return{ok:!1,msg:X.message||"Error"}}}async function VX(Z,$){try{if((await C0(`${Z}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:$,messages:[{role:"user",content:'JSON: {"a":1}'}],response_format:{type:"json_object"},max_tokens:10})})).ok)return{ok:!0,msg:"OK (Legacy Mode)"};return{ok:!1,msg:"Not Supported"}}catch{return{ok:!1,msg:"Legacy Fail"}}}async function CX(Z,$){try{return(await C0(`${Z}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:$,messages:[{role:"user",content:"hi"}],max_tokens:1})})).ok}catch{return!1}}async function OX(Z,$){try{let X=await C0(`${Z}/embeddings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:$,input:"test"})});if(!X.ok)return null;return(await X.json()).data[0]?.embedding?.length??null}catch{return null}}var NX="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg==";async function EX(Z,$){try{return(await C0(`${Z}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:$,messages:[{role:"user",content:[{type:"text",text:"What color is this?"},{type:"image_url",image_url:{url:NX}}]}],max_tokens:10})})).ok}catch{return!1}}async function F8(Z){let $=await jX(Z),X=[];try{let Y=await fetch(`${Z}/models`);if(!Y.ok)throw Error("Could not connect");X=(await Y.json()).data.map((W)=>W.id).sort()}catch(Y){if($)return console.log("⚠️ LM Studio unavailable, using cached model audit."),$;return console.error("❌ Failed to connect to LM Studio."),[]}if($){let Y=$.map((z)=>z.id).sort();if(JSON.stringify(X)===JSON.stringify(Y))return console.log("✅ Using cached model audit."),$;console.log("\uD83D\uDD0D Model list changed. Re-running audit...")}console.log("\uD83D\uDD0D Scanning models (this may take a moment)...");let Q=[],H=X.map((Y)=>({id:Y})),K;if(!V0)K=await import("node:readline");for(let Y of H){if(!V0&&K)K.cursorTo(process.stdout,0),process.stdout.write(`\uD83D\uDC49 Testing: ${Y.id}...`),K.clearLine(process.stdout,1);let z="Unknown",W=!1,G=!1,J="",L=void 0,_=await CX(Z,Y.id),U=await OX(Z,Y.id);if(U)L=U;if(_){z="LLM";let q=await PX(Z,Y.id);if(W=q.ok,G=await EX(Z,Y.id),J=W?q.msg:`Fail: ${q.msg}`,G)J+=" +Vision"}else if(U)z="Embedding",J=`OK (Dim: ${U})`;else J="LLM Fail";Q.push({id:Y.id,type:z,structuredOutput:W,vision:G,dimension:L,status:J})}if(!V0&&K)K.cursorTo(process.stdout,0),K.clearLine(process.stdout,0);return console.log(`
422
- `),console.table(Q),await FX(Z,Q),console.log("\uD83D\uDCDD Audit results saved to cache."),Q}var TX="http://localhost:1234/v1";class I6{baseUrl;models=[];defaultLLM=null;defaultEmbedding=null;defaultStructuredLLM=null;constructor(Z=TX){this.baseUrl=Z}async audit(){this.models=await F8(this.baseUrl),this.selectDefaults()}selectDefaults(){if(this.defaultEmbedding=this.models.find((Z)=>Z.type==="Embedding")||null,this.defaultLLM=this.models.find((Z)=>Z.type==="LLM")||null,this.defaultStructuredLLM=this.models.find((Z)=>Z.type==="LLM"&&Z.structuredOutput)||null,!this.defaultEmbedding)console.warn("⚠️ No embedding model found.");if(!this.defaultLLM)console.warn("⚠️ No LLM found.");if(!this.defaultStructuredLLM)console.warn("⚠️ No LLM with structured output support found.")}getModels(){return this.models}_setDefaultModel(Z,$,X,Q){let H=this.models.find((K)=>K.id===Z&&X(K));if(!H)throw Error(`Model '${Z}' not found or is not ${Q}.`);this[$]=H}setDefaultLLM(Z){this._setDefaultModel(Z,"defaultLLM",($)=>$.type==="LLM","an LLM")}setDefaultEmbedding(Z){this._setDefaultModel(Z,"defaultEmbedding",($)=>$.dimension!==void 0,"an embedding model")}setDefaultStructuredLLM(Z){this._setDefaultModel(Z,"defaultStructuredLLM",($)=>$.type==="LLM"&&$.structuredOutput,"a structured-output LLM")}getLLM(){if(!this.defaultLLM)throw Error("No LLM available.");return this.defaultLLM}getEmbedding(){if(!this.defaultEmbedding)throw Error("No embedding model available.");return this.defaultEmbedding}getStructuredLLM(){if(!this.defaultStructuredLLM)throw Error("No structured-output LLM available.");return this.defaultStructuredLLM}}var SX=typeof window<"u",kX=SX&&window.location.protocol==="https:",O0=null,B6=null,P8=!1;async function gX(){if(P8)return{localModels:O0,llm:B6};if(P8=!0,kX)return console.log("\uD83D\uDCE1 HTTPS detected - local LLM endpoints disabled. Use HTTP for local LLM support."),{localModels:null,llm:null};try{O0=new I6,await O0.audit(),B6=G8(O0)}catch(Z){console.warn("⚠️ Could not connect to local LLM:",Z)}return{localModels:O0,llm:B6}}async function bX(){let{localModels:Z,llm:$}=await gX();return{vector:$?{embed:$.embed}:void 0,store:U6(),llmBattery:$,models:Z}}async function pK(){return bX()}var nK={store:U6(),llmBattery:null,vector:void 0,models:null};function vX(Z){if(typeof Z!=="string")return!1;let $=new Date(Z);return!isNaN($.getTime())&&Z.includes("T")}function fX(){return new Date().toISOString()}function $0(Z,$,X,Q=0,H=0,K=0,Y=0){return new Date(Date.UTC(Z,$-1,X,Q,H,K,Y)).toISOString()}function V8(Z){let $=new Date(Z);if(isNaN($.getTime()))throw Error(`Invalid date string: ${Z}`);return $.toISOString()}function yX(Z){try{return V8(Z)}catch{return null}}function N0(Z,$){let X=new Date(Z);return X.setTime(X.getTime()+$),X.toISOString()}function hX(Z,$){return N0(Z,$*1000)}function xX(Z,$){return N0(Z,$*60*1000)}function uX(Z,$){return N0(Z,$*60*60*1000)}function C8(Z,$){return N0(Z,$*24*60*60*1000)}function dX(Z,$){return C8(Z,$*7)}function lX(Z,$){let X=new Date(Z),Q=X.getUTCMonth()+$;if(X.setUTCMonth(Q),X.getUTCMonth()!==(Q%12+12)%12)X.setUTCDate(0);return X.toISOString()}function mX(Z,$){let X=new Date(Z),Q=X.getUTCDate();if(X.setUTCFullYear(X.getUTCFullYear()+$),X.getUTCDate()!==Q)X.setUTCDate(0);return X.toISOString()}function T1(Z,$){return new Date(Z).getTime()-new Date($).getTime()}function iX(Z,$){return Math.floor(T1(Z,$)/1000)}function pX(Z,$){return Math.floor(T1(Z,$)/60000)}function nX(Z,$){return Math.floor(T1(Z,$)/3600000)}function cX(Z,$){return Math.floor(T1(Z,$)/86400000)}function X0(Z){return new Date(Z).getUTCFullYear()}function P4(Z){return new Date(Z).getUTCMonth()+1}function R6(Z){return new Date(Z).getUTCDate()}function oX(Z){return new Date(Z).getUTCHours()}function sX(Z){return new Date(Z).getUTCMinutes()}function aX(Z){return new Date(Z).getUTCSeconds()}function rX(Z){return new Date(Z).getUTCMilliseconds()}function tX(Z){let $=new Date(Z).getUTCDay();return $===0?7:$}function V4(Z,$,X){let Q=new Date(Z),H={timeZone:$,...X};return new Intl.DateTimeFormat(void 0,H).format(Q)}function eX(Z,$){return V4(Z,$,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})}function ZQ(Z,$){return V4(Z,$,{year:"numeric",month:"short",day:"numeric"})}function $Q(Z,$){return V4(Z,$,{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function XQ(Z){return Z.slice(0,10)}function O8(Z,$){return T1(Z,$)<0}function N8(Z,$){return T1(Z,$)>0}function QQ(Z,$){return T1(Z,$)===0}function HQ(Z,$){return O8(Z,$)?Z:$}function KQ(Z,$){return N8(Z,$)?Z:$}function YQ(Z){return $0(X0(Z),P4(Z),R6(Z))}function zQ(Z){return $0(X0(Z),P4(Z),R6(Z),23,59,59,999)}function WQ(Z){return $0(X0(Z),P4(Z),1)}function GQ(Z){let $=new Date(Z);return $.setUTCMonth($.getUTCMonth()+1,0),$.setUTCHours(23,59,59,999),$.toISOString()}function JQ(Z){return $0(X0(Z),1,1)}function _Q(Z){return $0(X0(Z),12,31,23,59,59,999)}var Q0={isValid:vX,now:fX,from:$0,parse:V8,tryParse:yX,addMilliseconds:N0,addSeconds:hX,addMinutes:xX,addHours:uX,addDays:C8,addWeeks:dX,addMonths:lX,addYears:mX,diff:T1,diffSeconds:iX,diffMinutes:pX,diffHours:nX,diffDays:cX,year:X0,month:P4,day:R6,hour:oX,minute:sX,second:aX,millisecond:rX,dayOfWeek:tX,toLocal:V4,format:eX,formatDate:ZQ,formatTime:$Q,toDate:XQ,isBefore:O8,isAfter:N8,isEqual:QQ,min:HQ,max:KQ,startOfDay:YQ,endOfDay:zQ,startOfMonth:WQ,endOfMonth:GQ,startOfYear:JQ,endOfYear:_Q};function M6(Z){if(typeof Z!=="string")return!1;if(!/^\d{4}-\d{2}-\d{2}$/.test(Z))return!1;let $=parseInt(Z.slice(0,4),10),X=parseInt(Z.slice(5,7),10),Q=parseInt(Z.slice(8,10),10);if(X<1||X>12)return!1;if(Q<1)return!1;let H=[31,28,31,30,31,30,31,31,30,31,30,31],K=X===2&&($%4===0&&$%100!==0||$%400===0)?29:H[X-1];return Q<=K}function LQ(){return Q0.toDate(Q0.now())}function UQ(Z){let $=new Date;return new Intl.DateTimeFormat("en-CA",{timeZone:Z,year:"numeric",month:"2-digit",day:"2-digit"}).format($)}function L1(Z,$,X){let Q=String(Z).padStart(4,"0"),H=String($).padStart(2,"0"),K=String(X).padStart(2,"0"),Y=`${Q}-${H}-${K}`;if(!M6(Y))throw Error(`Invalid date: ${Z}-${$}-${X}`);return Y}function E8(Z){if(/^\d{4}-\d{2}-\d{2}$/.test(Z)){if(!M6(Z))throw Error(`Invalid date: ${Z}`);return Z}let $=new Date(Z);if(isNaN($.getTime()))throw Error(`Invalid date string: ${Z}`);let X=$.getUTCFullYear(),Q=$.getUTCMonth()+1,H=$.getUTCDate();return L1(X,Q,H)}function qQ(Z){try{return E8(Z)}catch{return null}}function C4(Z,$){let X=S8(Z);return Q0.toDate(Q0.addDays(X,$))}function DQ(Z,$){return C4(Z,$*7)}function AQ(Z,$){let X=Q1(Z),Q=S1(Z),H=w6(Z),K=X*12+(Q-1)+$,Y=Math.floor(K/12),z=K%12+1,W=E0(Y,z),G=Math.min(H,W);return L1(Y,z,G)}function IQ(Z,$){let X=Q1(Z),Q=S1(Z),H=w6(Z),K=X+$,Y=E0(K,Q),z=Math.min(H,Y);return L1(K,Q,z)}function T8(Z,$){let Q=new Date(Z+"T00:00:00Z").getTime(),H=new Date($+"T00:00:00Z").getTime();return Math.round((Q-H)/86400000)}function BQ(Z,$){let X=Q1(Z),Q=S1(Z),H=Q1($),K=S1($);return(X-H)*12+(Q-K)}function RQ(Z,$){return Q1(Z)-Q1($)}function Q1(Z){return parseInt(Z.slice(0,4),10)}function S1(Z){return parseInt(Z.slice(5,7),10)}function w6(Z){return parseInt(Z.slice(8,10),10)}function j6(Z){let $=new Date(Z+"T00:00:00Z").getUTCDay();return $===0?7:$}function MQ(Z){let $=new Date(Z+"T00:00:00Z"),X=$.getUTCDay()||7;$.setUTCDate($.getUTCDate()+4-X);let Q=new Date(Date.UTC($.getUTCFullYear(),0,1));return Math.ceil((($.getTime()-Q.getTime())/86400000+1)/7)}function wQ(Z){let $=L1(Q1(Z),1,1);return T8(Z,$)+1}function F6(Z){return Math.ceil(S1(Z)/3)}function P6(Z){return Z%4===0&&Z%100!==0||Z%400===0}function E0(Z,$){let X=[31,28,31,30,31,30,31,31,30,31,30,31];if($===2&&P6(Z))return 29;return X[$-1]}function jQ(Z){return P6(Z)?366:365}function S8(Z){return Z+"T00:00:00.000Z"}function FQ(Z){return Math.floor(new Date(Z+"T00:00:00Z").getTime()/1000)}function PQ(Z){let $=new Date(Z*1000);return L1($.getUTCFullYear(),$.getUTCMonth()+1,$.getUTCDate())}function V6(Z,$){let X=new Date(Z+"T00:00:00Z"),Q={timeZone:"UTC",...$};return new Intl.DateTimeFormat(void 0,Q).format(X)}function VQ(Z){return V6(Z,{year:"numeric",month:"long",day:"numeric"})}function CQ(Z){return V6(Z,{year:"numeric",month:"short",day:"numeric"})}function OQ(Z,$){return Z<$}function NQ(Z,$){return Z>$}function EQ(Z,$){return Z===$}function TQ(Z,$){return Z<$?Z:$}function SQ(Z,$){return Z>$?Z:$}function kQ(Z,$,X){return Z>=$&&Z<=X}function gQ(Z){return L1(Q1(Z),S1(Z),1)}function bQ(Z){let $=Q1(Z),X=S1(Z);return L1($,X,E0($,X))}function vQ(Z){let X=(F6(Z)-1)*3+1;return L1(Q1(Z),X,1)}function fQ(Z){let X=F6(Z)*3;return L1(Q1(Z),X,E0(Q1(Z),X))}function yQ(Z){return L1(Q1(Z),1,1)}function hQ(Z){return L1(Q1(Z),12,31)}function xQ(Z){let $=j6(Z);return C4(Z,-($-1))}function uQ(Z){let $=j6(Z);return C4(Z,7-$)}var dQ={isValid:M6,today:LQ,todayIn:UQ,from:L1,parse:E8,tryParse:qQ,addDays:C4,addWeeks:DQ,addMonths:AQ,addYears:IQ,diff:T8,diffMonths:BQ,diffYears:RQ,year:Q1,month:S1,day:w6,dayOfWeek:j6,weekOfYear:MQ,dayOfYear:wQ,quarter:F6,isLeapYear:P6,daysInMonth:E0,daysInYear:jQ,toTimestamp:S8,toUnix:FQ,fromUnix:PQ,format:V6,formatLong:VQ,formatShort:CQ,isBefore:OQ,isAfter:NQ,isEqual:EQ,min:TQ,max:SQ,isBetween:kQ,startOfMonth:gQ,endOfMonth:bQ,startOfQuarter:vQ,endOfQuarter:fQ,startOfYear:yQ,endOfYear:hQ,startOfWeek:xQ,endOfWeek:uQ};export{s$ as xmlParse,o4 as wrap,L$ as whileLoop,l$ as vectorSearch,M$ as varsLet,R$ as varsImport,w$ as varsExport,A$ as varSet,B$ as varGet,c4 as validateArgs,e$ as uuid,g4 as typeToString,n1 as typeOf,a1 as typeDescriptorToTS,q$ as tryCatch,JK as transpileWithCache,j0 as transpileToJS,p$ as transpileCode,w4 as transpile,U0 as transformFunction,_K as tjsWithCache,GK as tjs,jZ as testUtils,S$ as template,j7 as stripTjsPreamble,Y4 as stripModuleSyntax,u$ as storeSet,d$ as storeQuery,QX as storeProcedure,x$ as storeGet,E$ as split,o5 as setGlobalCache,_1 as seq,j$ as scope,f1 as runtime,n$ as runCode,U$ as ret,E as resolveValue,G6 as resolveProcedureToken,HX as releaseProcedure,E7 as registerWasmBlock,k$ as regexMatch,V$ as reduce,t$ as random,O$ as push,Z0 as procedureStore,y0 as preprocess,g$ as pick,Q7 as parseReturnType,C1 as parseParameter,j1 as parse,b$ as omit,v$ as merge,a$ as memoize,F$ as map,p8 as lookupVariable,m$ as llmPredict,r5 as lint,N$ as len,f$ as keys,o$ as jsonStringify,c$ as jsonParse,T$ as join,y4 as isValidUrl,h4 as isValidTimestamp,x4 as isValidLegalDate,O1 as isRuntimeType,W6 as isProcedureToken,F1 as isError,$$ as isAgentError,N7 as instantiateWasm,s4 as installRuntime,K1 as inferTypeFromValue,_$ as iff,p5 as hashSourceSync,L4 as hashSource,J6 as hash,UK as getToolDefinitions,U6 as getStoreCapabilityDefault,pK as getStandardCapabilities,n as getLocation,G8 as getLLMCapability,U4 as getGlobalCache,bX as getBatteries,Z$ as generateDocsMarkdown,d7 as generateDocs,V5 as generateDTS,m5 as fromTS,C$ as find,P$ as filter,h$ as fetch,v4 as extractTests,J0 as extractTDoc,B1 as extractLiteralValue,G7 as expectFunction,s as evaluateExpr,D$ as errorAtom,M1 as error,hZ as emitRuntimeWrapper,g as defineAtom,E1 as createChildScope,G1 as createChildContext,LK as createAgent,B4 as coreAtoms,I$ as constSet,$X as consoleWarn,ZX as consoleLog,XX as consoleError,G5 as compileWasmBlocks,G4 as compileToWasm,KX as clearExpiredProcedures,y1 as checkType,r$ as cache,V1 as builtins,vK as batteryAtoms,nK as batteries,W7 as assertFunction,zK as ajs,i$ as agentRun,t0 as Union,$1 as TypedBuilder,i8 as TypeError,a as Type,p as TranspileError,u4 as TimestampType,Q0 as Timestamp,s0 as TUuid,o0 as TUrl,d0 as TString,$4 as TRecord,p0 as TPositiveInt,Z4 as TPair,l0 as TNumber,n0 as TNonEmptyString,X1 as TJS_VERSION,i0 as TInteger,c0 as TEmail,m0 as TBoolean,e0 as TArray,H1 as SyntaxError,i5 as Schema,AX as SafeFunction,z6 as PROCEDURE_TOKEN_PREFIX,r0 as Optional,a0 as Nullable,H6 as MetadataCache,I6 as LocalModels,d4 as LegalDateType,dQ as LegalDate,i1 as Generic,q0 as FunctionPredicate,DX as Eval,X4 as Enum,X$ as DEFAULT_PROCEDURE_TTL,Q$ as DEFAULT_MAX_AST_SIZE,L6 as AgentVM,Y1 as AgentError,_X as Agent,mH as A99};
423
+ `}return Q.trim()||"*No documentation available*"}import{s as I,validate as Y6,filter as o7}from"tosijs-schema";var D4=Symbol.for("tjs.equals");function I4(Z,$){if(Z!==null&&typeof Z==="object"&&typeof Z[D4]==="function")return Z[D4]($);if($!==null&&typeof $==="object"&&typeof $[D4]==="function")return $[D4](Z);if(Z!==null&&typeof Z==="object"&&typeof Z.Equals==="function")return Z.Equals($);if($!==null&&typeof $==="object"&&typeof $.Equals==="function")return $.Equals(Z);if(Z===$)return!0;if((Z===null||Z===void 0)&&($===null||$===void 0))return!0;if(Z===null||Z===void 0||$===null||$===void 0)return!1;if(typeof Z!==typeof $)return!1;if(typeof Z!=="object")return!1;if(Array.isArray(Z)&&Array.isArray($)){if(Z.length!==$.length)return!1;return Z.every((H,K)=>I4(H,$[K]))}if(Array.isArray(Z)!==Array.isArray($))return!1;let X=Object.keys(Z),Q=Object.keys($);if(X.length!==Q.length)return!1;return X.every((H)=>I4(Z[H],$[H]))}class G1{$error=!0;message;op;cause;constructor(Z,$,X){this.message=Z,this.op=$,this.cause=X}toString(){return`AgentError[${this.op}]: ${this.message}`}toJSON(){return{$error:!0,message:this.message,op:this.op}}}function Q$(Z){return Z instanceof G1||Z&&Z.$error===!0}var $0=new Map,H$=3600000,K$=102400,z6="proc_";function W6(Z){return typeof Z==="string"&&Z.startsWith(z6)}function G6(Z){let $=$0.get(Z);if(!$)throw Error(`Procedure not found: ${Z}`);if(Date.now()>$.expiresAt)throw $0.delete(Z),Error(`Procedure expired: ${Z}`);return $.ast}function Y$(){if(typeof crypto<"u"&&crypto.randomUUID)return z6+crypto.randomUUID();return z6+Math.random().toString(36).slice(2)+Date.now().toString(36)}var s7=new Set(["__proto__","constructor","prototype"]);function l7(Z){if(s7.has(Z))throw Error(`Security Error: Access to '${Z}' is forbidden`)}var z$=new Set(["localhost","127.0.0.1","0.0.0.0","[::1]","metadata.google.internal"]);function W$(Z){try{let $=new URL(Z);if($.protocol!=="http:"&&$.protocol!=="https:")return!0;let X=$.hostname.toLowerCase();if(z$.has(X))return!0;if(X.endsWith(".internal")||X.endsWith(".local"))return!0;if(X==="169.254.169.254")return!0;if(/^10\./.test(X)||/^192\.168\./.test(X)||/^172\.(1[6-9]|2\d|3[01])\./.test(X))return!0;return!1}catch{return!0}}function G$(Z){if(/\([^)]*[+*][^)]*\)[+*]/.test(Z))return!0;if(/\(([^|)]+)\|\1\)[+*]/.test(Z))return!0;if(/\(\.\*\)\+/.test(Z))return!0;if(/\(\.\+\)\+/.test(Z))return!0;if(/\(\[.*\]\+\)\+/.test(Z))return!0;return!1}function T1(Z){return{...Z,state:Object.create(Z.state)}}function J$(Z,$){let X={},Q=new Set([...Object.keys(Z),...Object.keys($)]);for(let H of Q){let K=Z[H],Y=$[H];if(Y!==K)X[H]=Y}return X}function N(Z,$){if(Z&&typeof Z==="object"&&Z.$kind==="arg")return $.args[Z.path];if(Z&&typeof Z==="object"&&Z.$expr)return r(Z,$);if(typeof Z==="string"){if(Z.startsWith("args.")&&!("args"in $.state))return $.args[Z.replace("args.","")];if(Z.includes(".")){let X=Z.split(".");for(let H of X)if(s7.has(H))throw Error(`Security Error: Access to '${H}' is forbidden`);let Q=$.state[X[0]];if(Q!==void 0){for(let H=1;H<X.length;H++)Q=Q?.[X[H]];return Q}}if(Z in $.state)return $.state[Z];return Z}if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&Z.constructor===Object){let X={};for(let Q of Object.keys(Z))X[Q]=N(Z[Q],$);return X}if(Array.isArray(Z))return Z.map((X)=>N(X,$));return Z}function l1(Z,$,X){return new Proxy($,{get(Q,H){if(H in Q)return Q[H];let K=X?.[H];if(K)throw Error(`${Z}.${H} is not available. ${K}`);throw Error(`${Z}.${H} is not supported in AsyncJS. Check docs for available ${Z} methods.`)}})}function Z0(Z){if(Z===null)return{type:"null"};if(Z===void 0)return{};if(typeof Z==="object"&&Z!==null&&"type"in Z&&typeof Z.type==="string")return Z;if(typeof Z==="object"&&Z!==null&&"schema"in Z&&typeof Z.schema==="object")return Z.schema;let $=typeof Z;if($==="string")return{type:"string"};if($==="number")return Number.isInteger(Z)?{type:"integer"}:{type:"number"};if($==="boolean")return{type:"boolean"};if(Array.isArray(Z)){if(Z.length===0)return{type:"array"};return{type:"array",items:Z0(Z[0])}}if($==="object"){let X={},Q=[];for(let[H,K]of Object.entries(Z))X[H]=Z0(K),Q.push(H);return{type:"object",properties:X,required:Q}}return{}}var C1={Math:l1("Math",{PI:Math.PI,E:Math.E,LN2:Math.LN2,LN10:Math.LN10,LOG2E:Math.LOG2E,LOG10E:Math.LOG10E,SQRT2:Math.SQRT2,SQRT1_2:Math.SQRT1_2,abs:Math.abs,ceil:Math.ceil,floor:Math.floor,round:Math.round,trunc:Math.trunc,sign:Math.sign,sqrt:Math.sqrt,cbrt:Math.cbrt,pow:Math.pow,exp:Math.exp,expm1:Math.expm1,log:Math.log,log2:Math.log2,log10:Math.log10,log1p:Math.log1p,sin:Math.sin,cos:Math.cos,tan:Math.tan,asin:Math.asin,acos:Math.acos,atan:Math.atan,atan2:Math.atan2,sinh:Math.sinh,cosh:Math.cosh,tanh:Math.tanh,asinh:Math.asinh,acosh:Math.acosh,atanh:Math.atanh,hypot:Math.hypot,min:Math.min,max:Math.max,clz32:Math.clz32,imul:Math.imul,fround:Math.fround,random:()=>{if(typeof crypto<"u"&&crypto.getRandomValues){let Z=new Uint32Array(1);return crypto.getRandomValues(Z),Z[0]/4294967296}return Math.random()}}),JSON:l1("JSON",{parse:(Z)=>JSON.parse(Z),stringify:(Z,$,X)=>JSON.stringify(Z,$,X)}),console:l1("console",{log:(...Z)=>{return},warn:(...Z)=>{return},error:(...Z)=>{return},info:(...Z)=>{return}},{table:"Use console.log with JSON.stringify for structured data.",dir:"Use console.log instead.",trace:"Stack traces are not available in AsyncJS."}),Array:l1("Array",{isArray:(Z)=>Array.isArray(Z),from:(Z,$,X)=>Array.from(Z,$,X),of:(...Z)=>Array.of(...Z)},{prototype:"Prototype access is not allowed."}),Object:l1("Object",{keys:(Z)=>Object.keys(Z),values:(Z)=>Object.values(Z),entries:(Z)=>Object.entries(Z),fromEntries:(Z)=>Object.fromEntries(Z),assign:(Z,...$)=>Object.assign({},Z,...$),hasOwn:(Z,$)=>Object.hasOwn(Z,$)},{prototype:"Prototype access is not allowed.",create:"Use object literals instead.",defineProperty:"Property descriptors are not supported.",getPrototypeOf:"Prototype access is not allowed.",setPrototypeOf:"Prototype modification is not allowed."}),String:l1("String",{fromCharCode:(...Z)=>String.fromCharCode(...Z),fromCodePoint:(...Z)=>String.fromCodePoint(...Z)}),Number:l1("Number",{isNaN:Number.isNaN,isFinite:Number.isFinite,isInteger:Number.isInteger,isSafeInteger:Number.isSafeInteger,parseFloat,parseInt,MAX_VALUE:Number.MAX_VALUE,MIN_VALUE:Number.MIN_VALUE,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,MIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,POSITIVE_INFINITY:Number.POSITIVE_INFINITY,NEGATIVE_INFINITY:Number.NEGATIVE_INFINITY,NaN:Number.NaN,EPSILON:Number.EPSILON}),parseInt,parseFloat,isNaN,isFinite,encodeURI,decodeURI,encodeURIComponent,decodeURIComponent,undefined:void 0,null:null,NaN:NaN,Infinity:1/0,filter:(Z,$)=>{let X=Z0($),Q=o7(Z,X);if(Q instanceof Error)throw Q;return Q},Schema:{...I,response:(Z,$)=>{let X=$?.schema!=null?$.schema:Z0($);return{type:"json_schema",json_schema:{name:Z,strict:!0,schema:X}}},fromExample:(Z)=>Z0(Z),isValid:(Z,$)=>{if($?.schema!=null)return Y6(Z,$);return Y6(Z,Z0($))}},Set:(Z=[])=>{let $=[...new globalThis.Set(Z)];return{add(X){if(!$.includes(X))$.push(X);return this},remove(X){let Q=$.indexOf(X);if(Q!==-1)$.splice(Q,1);return this},clear(){return $.length=0,this},has(X){return $.includes(X)},get size(){return $.length},toArray(){return[...$]},union(X){let Q=X?.toArray?.()??X??[];return C1.Set([...$,...Q])},intersection(X){let Q=X?.toArray?.()??X??[];return C1.Set($.filter((H)=>Q.includes(H)))},diff(X){let Q=X?.toArray?.()??X??[];return C1.Set($.filter((H)=>!Q.includes(H)))},forEach(X){$.forEach(X)},map(X){return C1.Set($.map(X))},filter(X){return C1.Set($.filter(X))},toJSON(){return[...$]}}},Date:(()=>{let Z=(X)=>({get value(){return X.toISOString()},get timestamp(){return X.getTime()},get year(){return X.getFullYear()},get month(){return X.getMonth()+1},get day(){return X.getDate()},get hours(){return X.getHours()},get minutes(){return X.getMinutes()},get seconds(){return X.getSeconds()},get dayOfWeek(){return X.getDay()},add({years:Q=0,months:H=0,days:K=0,hours:Y=0,minutes:z=0,seconds:W=0,ms:G=0}={}){let J=new globalThis.Date(X.getTime());if(Q)J.setFullYear(J.getFullYear()+Q);if(H)J.setMonth(J.getMonth()+H);if(K)J.setDate(J.getDate()+K);if(Y)J.setHours(J.getHours()+Y);if(z)J.setMinutes(J.getMinutes()+z);if(W)J.setSeconds(J.getSeconds()+W);if(G)J.setMilliseconds(J.getMilliseconds()+G);return Z(J)},diff(Q,H="ms"){let K=typeof Q==="object"&&Q.timestamp?Q.timestamp:new globalThis.Date(Q).getTime(),Y=X.getTime()-K;switch(H){case"seconds":return Y/1000;case"minutes":return Y/60000;case"hours":return Y/3600000;case"days":return Y/86400000;default:return Y}},format(Q="ISO"){if(Q==="ISO")return X.toISOString();if(Q==="date")return X.toISOString().split("T")[0];if(Q==="time")return X.toISOString().split("T")[1].split(".")[0];return Q.replace("YYYY",String(X.getFullYear())).replace("MM",String(X.getMonth()+1).padStart(2,"0")).replace("DD",String(X.getDate()).padStart(2,"0")).replace("HH",String(X.getHours()).padStart(2,"0")).replace("mm",String(X.getMinutes()).padStart(2,"0")).replace("ss",String(X.getSeconds()).padStart(2,"0"))},isBefore(Q){let H=typeof Q==="object"&&Q.timestamp?Q.timestamp:new globalThis.Date(Q).getTime();return X.getTime()<H},isAfter(Q){let H=typeof Q==="object"&&Q.timestamp?Q.timestamp:new globalThis.Date(Q).getTime();return X.getTime()>H},toString(){return X.toISOString()},toJSON(){return X.toISOString()}}),$=(X)=>{let Q=X!==void 0?new globalThis.Date(X):new globalThis.Date;if(isNaN(Q.getTime()))throw Error(`Invalid date: ${X}`);return Z(Q)};return $.now=()=>globalThis.Date.now(),$.parse=(X)=>Z(new globalThis.Date(X)),$})()},A4={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."},_$=0.01,m7=0.0001,i7=0.001,L$=new Set(["concat","slice","map","filter","flatMap","flat","toReversed","toSorted","toSpliced","repeat","padStart","padEnd","split","join","replace","replaceAll","substring","substr","trim","trimStart","trimEnd","toLowerCase","toUpperCase","match","matchAll","parse","stringify"]);function r(Z,$){if(Z===null||Z===void 0)return Z;if(typeof Z!=="object"||!("$expr"in Z))return Z;if($.fuel){if($.fuel.current-=_$,$.fuel.current<=0)throw Error("Out of Fuel")}switch(Z.$expr){case"literal":return Z.value;case"ident":{if(Z.name in $.state)return $.state[Z.name];if(Z.name in $.args)return $.args[Z.name];if(Z.name in C1)return C1[Z.name];if(Z.name in A4)throw Error(A4[Z.name]);return}case"member":{let X=r(Z.object,$);if(Z.optional&&(X===null||X===void 0))return;let Q=Z.property;return l7(Q),X?.[Q]}case"binary":{let X=r(Z.left,$),Q=r(Z.right,$);switch(Z.op){case"+":{let H=X+Q;if(typeof H==="string"&&$.fuel){if($.fuel.current-=H.length*m7,$.fuel.current<=0){$.error=new G1("Out of Fuel","expr.concat");return}}return H}case"-":return X-Q;case"*":return X*Q;case"/":return X/Q;case"%":return X%Q;case"**":return X**Q;case">":return X>Q;case"<":return X<Q;case">=":return X>=Q;case"<=":return X<=Q;case"==":return I4(X,Q);case"!=":return!I4(X,Q);case"===":return X===Q;case"!==":return X!==Q;default:throw Error(`Unknown binary operator: ${Z.op}`)}}case"unary":{let X=r(Z.argument,$);switch(Z.op){case"!":return!X;case"-":return-X;case"+":return+X;case"typeof":return typeof X;default:throw Error(`Unknown unary operator: ${Z.op}`)}}case"logical":{let X=r(Z.left,$);if(Z.op==="&&")return X?r(Z.right,$):X;else if(Z.op==="??")return X??r(Z.right,$);else return X?X:r(Z.right,$)}case"conditional":return r(Z.test,$)?r(Z.consequent,$):r(Z.alternate,$);case"array":return Z.elements.map((X)=>r(X,$));case"object":{let X={};for(let Q of Z.properties)X[Q.key]=r(Q.value,$);return X}case"call":{if(Z.callee==="Error"){let Q=Z.arguments.map((K)=>r(K,$)),H=typeof Q[0]==="string"?Q[0]:"Error";$.error=new G1(H,"Error");return}if(Z.callee in C1){let Q=C1[Z.callee];if(typeof Q==="function"){let H=Z.arguments.map((K)=>r(K,$));return Q(...H)}}if(!$.resolver(Z.callee)){if(Z.callee in A4)throw Error(A4[Z.callee]);throw Error(`Unknown function: ${Z.callee}`)}throw Error(`Atom calls in expressions not yet supported: ${Z.callee}`)}case"methodCall":{let X=r(Z.object,$);if(Z.optional&&(X===null||X===void 0))return;let Q=Z.method;if(l7(Q),X===null||X===void 0)throw Error(`Cannot call method '${Q}' on ${X}`);let H=X[Q];if(typeof H!=="function")throw Error(`'${Q}' is not a function`);let K=Z.arguments.map((z)=>r(z,$)),Y=H.apply(X,K);if($.fuel&&L$.has(Q)){let z=0;if(typeof Y==="string")z=Y.length*m7;else if(Array.isArray(Y))z=Y.length*i7;else if(typeof Y==="object"&&Y!==null)z=Object.keys(Y).length*i7;if($.fuel.current-=z,$.fuel.current<=0){$.error=new G1("Out of Fuel",`expr.${Q}`);return}}return Y}default:throw Error(`Unknown expression type: ${Z.$expr}`)}}function b(Z,$,X,Q,H={}){let{docs:K="",timeoutMs:Y=1000,cost:z=1}=typeof H==="string"?{docs:H}:H;return{op:Z,inputSchema:$,outputSchema:X,exec:async(G,J)=>{let{op:L,result:_,...U}=G;if(J.error)return;let q=J.trace?{...J.state}:null,A=J.fuel.current,M,R;try{let F=J.costOverrides?.[Z],B=F!==void 0?F:z,w=typeof B==="function"?B(U,J):B;if((J.fuel.current-=w)<=0){J.error=new G1("Out of Fuel",Z);return}let O,V=async()=>Q(G,J);if(M=Y>0?await Promise.race([V(),new Promise((C,S)=>{O=setTimeout(()=>S(Error(`Atom '${Z}' timed out`)),Y)})]).finally(()=>clearTimeout(O)):await V(),G.result){if(J.consts.has(G.result))throw Error(`Cannot reassign const variable '${G.result}'`);if(M!==void 0&&X&&!Y6(M,X)){J.error=new G1(`Output validation failed for '${Z}'`,Z);return}if(J.state[G.result]=M,G.resultConst)J.consts.add(G.result)}}catch(F){R=F.message||String(F),J.error=new G1(R,Z,F)}finally{if(J.trace&&q){let F=J$(q,J.state);J.trace.push({op:Z,input:U,stateDiff:F,result:M,error:R,fuelBefore:A,fuelAfter:J.fuel.current,timestamp:new Date().toISOString()})}}},docs:K,timeoutMs:Y,cost:z,create:(G)=>({op:Z,...G})}}var U1=b("seq",I.object({steps:I.array(I.any)}),void 0,async({steps:Z},$)=>{for(let X of Z){if($.output!==void 0)return;if($.error)return;let Q=$.resolver(X.op);if(!Q)throw Error(`Unknown Atom: ${X.op}`);await Q.exec(X,$)}},{docs:"Sequence",timeoutMs:0,cost:0.1}),U$=b("if",I.object({condition:I.any,then:I.array(I.any),else:I.array(I.any).optional}),void 0,async(Z,$)=>{if(r(Z.condition,$))await U1.exec({op:"seq",steps:Z.then},$);else if(Z.else)await U1.exec({op:"seq",steps:Z.else},$)},{docs:"If/Else",timeoutMs:0,cost:0.1}),q$=b("while",I.object({condition:I.any,body:I.array(I.any)}),void 0,async(Z,$)=>{while(r(Z.condition,$)){if($.signal?.aborted)throw Error("Execution aborted");if(($.fuel.current-=0.1)<=0)throw Error("Out of Fuel");if(await U1.exec({op:"seq",steps:Z.body},$),$.output!==void 0)return}},{docs:"While Loop",timeoutMs:0,cost:0.1}),D$=b("return",void 0,I.any,async(Z,$)=>{if($.error)return $.output=$.error,$.error;if("value"in Z){let Q=N(Z.value,$);if(Q!==void 0&&Q!==null&&!Q$(Q)&&(typeof Q!=="object"||Array.isArray(Q))){let H=new G1(`Agent must return an object, got ${Array.isArray(Q)?"array":typeof Q}`,"return");return $.error=H,$.output=H,H}return $.output=Q,Q}let X={};if(Z.schema?.properties){for(let Q of Object.keys(Z.schema.properties))X[Q]=$.state[Q];if(Z.filter!==!1){let Q=o7(X,Z.schema);if(!(Q instanceof Error))X=Q}}return $.output=X,X},{docs:"Return",cost:0.1}),A$=b("try",I.object({try:I.array(I.any),catch:I.array(I.any).optional,catchParam:I.string.optional}),void 0,async(Z,$)=>{if(await U1.exec({op:"seq",steps:Z.try},$),$.error&&Z.catch){let X=Z.catchParam||"error";$.state[X]=$.error.message,$.state.errorOp=$.error.op,$.error=void 0,await U1.exec({op:"seq",steps:Z.catch},$)}},{docs:"Try/Catch",timeoutMs:0,cost:0.1}),I$=b("Error",I.object({args:I.array(I.any).optional}),void 0,async(Z,$)=>{let X=Z.args?.[0]??"Error";$.error=new G1(String(X),"Error")},{docs:"Trigger error flow",cost:0.1}),B$=b("varSet",I.object({key:I.string,value:I.any}),void 0,async({key:Z,value:$},X)=>{if(X.consts.has(Z))throw Error(`Cannot reassign const variable '${Z}'`);X.state[Z]=N($,X)},{docs:"Set Variable",cost:0.1}),R$=b("constSet",I.object({key:I.string,value:I.any}),void 0,async({key:Z,value:$},X)=>{if(X.consts.has(Z))throw Error(`Cannot reassign const variable '${Z}'`);if(Z in X.state)throw Error(`Cannot redeclare variable '${Z}' as const`);X.state[Z]=N($,X),X.consts.add(Z)},{docs:"Set Const Variable (immutable)",cost:0.1}),M$=b("varGet",I.object({key:I.string}),I.any,async({key:Z},$)=>{return N(Z,$)},{docs:"Get Variable",cost:0.1}),w$=b("varsImport",I.object({keys:I.union([I.array(I.string),I.record(I.string)])}),void 0,async({keys:Z},$)=>{if(Array.isArray(Z))for(let X of Z)$.state[X]=N({$kind:"arg",path:X},$);else for(let[X,Q]of Object.entries(Z))$.state[X]=N({$kind:"arg",path:Q},$)},{docs:"Import variables from args into the current scope, with optional renaming.",cost:0.2}),j$=b("varsLet",I.record(I.any),void 0,async(Z,$)=>{for(let X of Object.keys(Z)){if(X==="op"||X==="result")continue;$.state[X]=N(Z[X],$)}},{docs:"Initialize a set of variables in the current scope from the step object properties.",cost:0.1}),F$=b("varsExport",I.object({keys:I.union([I.array(I.string),I.record(I.string)])}),I.record(I.any),async({keys:Z},$)=>{let X={};if(Array.isArray(Z))for(let Q of Z)X[Q]=N(Q,$);else for(let[Q,H]of Object.entries(Z))X[Q]=N(H,$);return X},{docs:"Export variables from the current scope, with optional renaming.",cost:0.2}),P$=b("scope",I.object({steps:I.array(I.any)}),void 0,async({steps:Z},$)=>{let X=T1($);if(await U1.exec({op:"seq",steps:Z},X),X.output!==void 0)$.output=X.output},{docs:"Create new scope",timeoutMs:0,cost:0.1}),V$=b("map",I.object({items:I.array(I.any),as:I.string,steps:I.array(I.any)}),I.array(I.any),async({items:Z,as:$,steps:X},Q)=>{let H=[],K=N(Z,Q);if(!Array.isArray(K))throw Error("map: items is not an array");for(let Y of K){if(Q.signal?.aborted)throw Error("Execution aborted");let z=T1(Q);z.state[$]=Y,await U1.exec({op:"seq",steps:X},z),H.push(z.state.result??null)}return H},{docs:"Map Array",timeoutMs:0,cost:1}),C$=b("filter",I.object({items:I.array(I.any),as:I.string,condition:I.any}),I.array(I.any),async({items:Z,as:$,condition:X},Q)=>{let H=[],K=N(Z,Q);if(!Array.isArray(K))throw Error("filter: items is not an array");for(let Y of K){if(Q.signal?.aborted)throw Error("Execution aborted");let z=T1(Q);if(z.state[$]=Y,r(X,z))H.push(Y)}return H},{docs:"Filter Array",timeoutMs:0,cost:1}),O$=b("reduce",I.object({items:I.array(I.any),as:I.string,accumulator:I.string,initial:I.any,steps:I.array(I.any)}),I.any,async({items:Z,as:$,accumulator:X,initial:Q,steps:H},K)=>{let Y=N(Z,K),z=N(Q,K);if(!Array.isArray(Y))throw Error("reduce: items is not an array");let W=z;for(let G of Y){if(K.signal?.aborted)throw Error("Execution aborted");let J=T1(K);J.state[$]=G,J.state[X]=W,await U1.exec({op:"seq",steps:H},J),W=J.state.result??W}return W},{docs:"Reduce Array",timeoutMs:0,cost:1}),N$=b("find",I.object({items:I.array(I.any),as:I.string,condition:I.any}),I.any,async({items:Z,as:$,condition:X},Q)=>{let H=N(Z,Q);if(!Array.isArray(H))throw Error("find: items is not an array");for(let K of H){if(Q.signal?.aborted)throw Error("Execution aborted");let Y=T1(Q);if(Y.state[$]=K,r(X,Y))return K}return null},{docs:"Find in Array",timeoutMs:0,cost:1}),E$=b("push",I.object({list:I.array(I.any),item:I.any}),I.array(I.any),async({list:Z,item:$},X)=>{let Q=N(Z,X),H=N($,X);if(Array.isArray(Q))Q.push(H);return Q},{docs:"Push to Array",cost:1}),T$=b("len",I.object({list:I.any}),I.number,async({list:Z},$)=>{let X=N(Z,$);return Array.isArray(X)||typeof X==="string"?X.length:0},{docs:"Length",cost:1}),S$=b("split",I.object({str:I.string,sep:I.string}),I.array(I.string),async({str:Z,sep:$},X)=>N(Z,X).split(N($,X)),{docs:"Split String",cost:1}),k$=b("join",I.object({list:I.array(I.string),sep:I.string}),I.string,async({list:Z,sep:$},X)=>N(Z,X).join(N($,X)),{docs:"Join String",cost:1}),g$=b("template",I.object({tmpl:I.string,vars:I.record(I.any)}),I.string,async({tmpl:Z,vars:$},X)=>{return N(Z,X).replace(/\{\{(\w+)\}\}/g,(H,K)=>String(N($[K],X)??""))},{docs:"String Template",cost:1}),b$=b("regexMatch",I.object({pattern:I.string,value:I.any}),I.boolean,async({pattern:Z,value:$},X)=>{if(G$(Z))throw Error(`Suspicious regex pattern rejected (potential ReDoS): ${Z}`);let Q=N($,X);return new RegExp(Z).test(Q)},{docs:"Returns true if the value matches the regex pattern.",cost:2}),v$=b("pick",I.object({obj:I.record(I.any),keys:I.array(I.string)}),I.record(I.any),async({obj:Z,keys:$},X)=>{let Q=N(Z,X),H=N($,X),K={};if(Q&&Array.isArray(H))H.forEach((Y)=>K[Y]=Q[Y]);return K},{docs:"Pick Keys",cost:1}),f$=b("omit",I.object({obj:I.record(I.any),keys:I.array(I.string)}),I.record(I.any),async({obj:Z,keys:$},X)=>{let Q=N(Z,X),H=new Set(N($,X)),K={};if(Q)Object.keys(Q).forEach((Y)=>{if(!H.has(Y))K[Y]=Q[Y]});return K},{docs:"Omit Keys",cost:1}),y$=b("merge",I.object({a:I.record(I.any),b:I.record(I.any)}),I.record(I.any),async({a:Z,b:$},X)=>({...N(Z,X),...N($,X)}),{docs:"Merge Objects",cost:1}),h$=b("keys",I.object({obj:I.record(I.any)}),I.array(I.string),async({obj:Z},$)=>Object.keys(N(Z,$)??{}),{docs:"Object Keys",cost:1}),p7=10,n7="X-Agent-Depth";function x$(Z,$){try{let Q=new URL(Z).hostname.toLowerCase();for(let H of $){let K=H.toLowerCase();if(K.startsWith("*.")){let Y=K.slice(1);if(Q.endsWith(Y)||Q===K.slice(2))return!0}else if(Q===K)return!0}return!1}catch{return!1}}var u$=b("httpFetch",I.object({url:I.string,method:I.string.optional,headers:I.record(I.string).optional,body:I.any.optional,responseType:I.string.optional}),I.any,async(Z,$)=>{let X=N(Z.url,$),Q=N(Z.method,$),H=N(Z.headers,$)||{},K=N(Z.body,$),Y=N(Z.responseType,$),z=$.context?.requestDepth??0;if(z>=p7)throw Error(`Agent request depth exceeded (max ${p7}). This prevents recursive agent loops.`);if($.capabilities.fetch)return $.capabilities.fetch(X,{method:Q,headers:{...H,[n7]:String(z+1)},body:K,signal:$.signal,responseType:Y});let W=$.context?.allowedFetchDomains;if(W){if(!x$(X,W))throw Error(`Fetch blocked: domain not in allowlist. Allowed: ${W.join(", ")}`)}else{if(W$(X))throw Error("Blocked URL: private/internal addresses not allowed in default fetch");try{let J=new URL(X).hostname.toLowerCase();if(J!=="localhost"&&J!=="127.0.0.1"&&J!=="[::1]")throw Error("Fetch blocked: no allowedFetchDomains configured. Set ctx.context.allowedFetchDomains or provide a custom fetch capability.")}catch(G){if(G.message.includes("allowedFetchDomains"))throw G;throw Error(`Invalid URL: ${X}`)}}if(typeof globalThis.fetch==="function"){let G=await globalThis.fetch(X,{method:Q,headers:{...H,[n7]:String(z+1)},body:K?JSON.stringify(K):void 0,signal:$.signal});if(Y==="dataUrl"){let L=await G.arrayBuffer(),_=new Uint8Array(L),U="";for(let M=0;M<_.length;M++)U+=String.fromCharCode(_[M]);let q=btoa(U);return`data:${G.headers.get("content-type")||"application/octet-stream"};base64,${q}`}let J=G.headers.get("content-type");if(Y==="json"||J&&J.includes("application/json"))return G.json();return G.text()}throw Error("Capability 'fetch' missing and no global fetch available")},{docs:"HTTP Fetch",timeoutMs:30000,cost:5}),d$=b("storeGet",I.object({key:I.string}),I.any,async({key:Z},$)=>{let X=N(Z,$);return $.capabilities.store?.get(X)},{docs:"Store Get",cost:5}),l$=b("storeSet",I.object({key:I.string,value:I.any}),void 0,async({key:Z,value:$},X)=>{let Q=N(Z,X),H=N($,X);return X.capabilities.store?.set(Q,H)},{docs:"Store Set",cost:5}),m$=b("storeQuery",I.object({query:I.any}),I.array(I.any),async({query:Z},$)=>$.capabilities.store?.query?.(N(Z,$))??[],{docs:"Store Query",cost:5}),i$=b("storeVectorSearch",I.object({collection:I.string.optional,vector:I.array(I.number),k:I.number.optional}),I.array(I.any),async({collection:Z,vector:$,k:X},Q)=>Q.capabilities.store?.vectorSearch?.(N(Z,Q),N($,Q),N(X,Q))??[],{docs:"Vector Search",cost:(Z,$)=>5+(N(Z.k,$)??5)}),p$=b("llmPredict",I.object({prompt:I.string,options:I.any.optional}),I.string,async({prompt:Z,options:$},X)=>{if(!X.capabilities.llm?.predict)throw Error("Capability 'llm.predict' missing");return X.capabilities.llm.predict(N(Z,X),N($,X))},{docs:"LLM Predict",timeoutMs:120000,cost:100}),n$=b("agentRun",I.object({agentId:I.any,input:I.any}),I.any,async({agentId:Z,input:$},X)=>{let Q=N(Z,X),H=N($,X),K=H;if(H&&typeof H==="object"&&!Array.isArray(H)){K={};for(let z in H)K[z]=N(H[z],X)}if(W6(Q)){let z=G6(Q),W={...X,args:K,state:{},consts:new Set,output:void 0,error:void 0},G=X.resolver("seq");if(!G)throw Error("seq atom not found");if(await G.exec(z,W),W.error)throw Error(W.error.message||"Sub-agent failed");return W.output}if(Q&&typeof Q==="object"&&"op"in Q){let z={...X,args:K,state:{},consts:new Set,output:void 0,error:void 0},W=X.resolver("seq");if(!W)throw Error("seq atom not found");if(await W.exec(Q,z),z.error)throw Error(z.error.message||"Sub-agent failed");return z.output}if(!X.capabilities.agent?.run)throw Error("Capability 'agent.run' missing");let Y=await X.capabilities.agent.run(Q,K);if(Y&&typeof Y==="object"&&"fuelUsed"in Y&&typeof Y.fuelUsed==="number"){if(Y.error)throw Error(Y.error.message||"Sub-agent failed");return Y.result}return Y},{docs:"Run Sub-Agent (accepts procedure token, AST, or agent ID)",cost:1}),c$=b("transpileCode",I.object({code:I.string}),I.any,async({code:Z},$)=>{if(!$.capabilities.code?.transpile)throw Error("Capability 'code.transpile' missing. Enable code transpilation by providing the code capability.");let X=N(Z,$);try{return $.capabilities.code.transpile(X)}catch(Q){throw Error(`Code transpilation failed: ${Q.message}`)}},{docs:"Transpile AsyncJS code to AST",cost:1}),c7=10,o$=b("runCode",I.object({code:I.string,args:I.record(I.any).optional}),I.any,async({code:Z,args:$},X)=>{let Q=X.runCodeDepth??0;if(Q>=c7)throw Error(`runCode recursion limit exceeded (max ${c7}). This prevents infinite loops from dynamically generated code calling runCode.`);if(!X.capabilities.code?.transpile)throw Error("Capability 'code.transpile' missing. Enable dynamic code execution by providing the code capability.");let H=N(Z,X),K=$?N($,X):{},Y;try{Y=X.capabilities.code.transpile(H)}catch(W){throw Error(`Code transpilation failed: ${W.message}`)}if(Y.op!=="seq")throw Error("Transpiled code must be a seq node");let z=T1(X);if(z.args=K,z.output=void 0,z.runCodeDepth=Q+1,await U1.exec(Y,z),z.error){X.error=z.error;return}return z.output},{docs:"Run dynamically generated AsyncJS code",cost:1}),s$=b("jsonParse",I.object({str:I.string}),I.any,async({str:Z},$)=>JSON.parse(N(Z,$)),{docs:"Parse JSON",cost:1}),a$=b("jsonStringify",I.object({value:I.any}),I.string,async({value:Z},$)=>JSON.stringify(N(Z,$)),{docs:"Stringify JSON",cost:1}),r$=b("xmlParse",I.object({str:I.string}),I.any,async({str:Z},$)=>{if(!$.capabilities.xml?.parse)throw Error("Capability 'xml.parse' missing");return $.capabilities.xml.parse(N(Z,$))},{docs:"Parse XML",cost:1}),t$=b("memoize",I.object({key:I.string.optional,steps:I.array(I.any)}),I.any,async({key:Z,steps:$},X)=>{if(!X.memo)X.memo=new Map;let Q=N(Z,X)??await J6.exec({value:$,algorithm:"SHA-256"},X);if(X.memo.has(Q))return X.memo.get(Q);let H=T1(X);await U1.exec({op:"seq",steps:$},H);let K=H.output??H.state.result;return X.memo.set(Q,K),K},{docs:"Memoize steps result in memory",cost:1}),e$=b("cache",I.object({key:I.string.optional,steps:I.array(I.any),ttlMs:I.number.optional}),I.any,async({key:Z,steps:$,ttlMs:X},Q)=>{if(!Q.capabilities.store)throw Error("Capability 'store' missing for caching");let K=`cache:${N(Z,Q)??await J6.exec({value:$,algorithm:"SHA-256"},Q)}`,Y=await Q.capabilities.store.get(K);if(Y)if(typeof Y==="object"&&Y._exp){if(Date.now()<Y._exp)return Y.val}else return Y;let z=T1(Q);await U1.exec({op:"seq",steps:$},z);let W=z.output??z.state.result,G=Date.now()+(X??86400000);if((Q.fuel.current-=5)<=0)throw Error("Out of Fuel");return await Q.capabilities.store.set(K,{val:W,_exp:G}),W},{docs:"Cache steps result in store with TTL",cost:5}),ZX=b("random",I.object({min:I.number.optional,max:I.number.optional,format:I.string.optional,length:I.number.optional}),I.any,async({min:Z,max:$,format:X,length:Q},H)=>{let K=N(X,H)??"float",Y=N(Q,H)??10,z=N(Z,H)??0,W=N($,H)??1;if(K==="base36"){let U="";if(typeof crypto<"u"&&crypto.getRandomValues){let q=new Uint8Array(Y);crypto.getRandomValues(q);for(let A=0;A<Y;A++)U+="0123456789abcdefghijklmnopqrstuvwxyz"[q[A]%36]}else for(let q=0;q<Y;q++)U+="0123456789abcdefghijklmnopqrstuvwxyz".charAt(Math.floor(Math.random()*36));return U}let G;if(typeof crypto<"u"&&crypto.getRandomValues){let _=new Uint32Array(1);crypto.getRandomValues(_),G=_[0]/4294967296}else G=Math.random();let J=W-z,L=G*J+z;if(K==="integer")return Math.floor(L);return L},{docs:"Generate Random",cost:1}),$X=b("uuid",void 0,I.string,async()=>{if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID();if(typeof crypto<"u"&&crypto.getRandomValues){let Z=new Uint8Array(16);crypto.getRandomValues(Z),Z[6]=Z[6]&15|64,Z[8]=Z[8]&63|128;let $=Array.from(Z,(X)=>X.toString(16).padStart(2,"0")).join("");return`${$.slice(0,8)}-${$.slice(8,12)}-${$.slice(12,16)}-${$.slice(16,20)}-${$.slice(20)}`}return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(Z)=>{let $=Math.random()*16|0;return(Z==="x"?$:$&3|8).toString(16)})},{docs:"Generate UUID",cost:1}),J6=b("hash",I.object({value:I.any,algorithm:I.string.optional}),I.string,async({value:Z,algorithm:$},X)=>{let Q=typeof Z==="string"?Z:JSON.stringify(N(Z,X)),H=N($,X)||"SHA-256";if(typeof crypto<"u"&&crypto.subtle){let z=new TextEncoder().encode(Q),W=await crypto.subtle.digest(H,z);return Array.from(new Uint8Array(W)).map((J)=>J.toString(16).padStart(2,"0")).join("")}let K=0;for(let Y=0;Y<Q.length;Y++){let z=Q.charCodeAt(Y);K=(K<<5)-K+z,K|=0}return String(K)},{docs:"Hash a value",cost:1}),XX=b("consoleLog",I.object({message:I.any}),void 0,async({message:Z},$)=>{let X=N(Z,$);if($.trace)$.trace.push({op:"console.log",input:{message:X},stateDiff:{},result:X,fuelBefore:$.fuel.current,fuelAfter:$.fuel.current,timestamp:new Date().toISOString()})},{docs:"Log to trace",cost:0.1}),QX=b("consoleWarn",I.object({message:I.any}),void 0,async({message:Z},$)=>{let X=N(Z,$),Q=typeof X==="string"?X:JSON.stringify(X);if(!$.warnings)$.warnings=[];if($.warnings.push(Q),$.trace)$.trace.push({op:"console.warn",input:{message:X},stateDiff:{},result:X,fuelBefore:$.fuel.current,fuelAfter:$.fuel.current,timestamp:new Date().toISOString()})},{docs:"Add warning",cost:0.1}),HX=b("consoleError",I.object({message:I.any}),void 0,async({message:Z},$)=>{let X=N(Z,$),Q=typeof X==="string"?X:JSON.stringify(X);$.error=new G1(Q,"console.error")},{docs:"Emit error and stop",cost:0.1}),KX=b("storeProcedure",I.object({ast:I.any,ttl:I.number.optional,maxSize:I.number.optional}),I.string,async({ast:Z,ttl:$,maxSize:X},Q)=>{let H=N(Z,Q),K=$?N($,Q):H$,Y=X?N(X,Q):K$;if(!H||typeof H!=="object"||!H.op)throw Error('Invalid AST: must be an object with an "op" property');let z=JSON.stringify(H);if(z.length>Y)throw Error(`AST too large: ${z.length} bytes exceeds limit of ${Y} bytes. Consider reducing AST size or using a shorter TTL.`);let W=Y$(),G=Date.now();return $0.set(W,{ast:H,createdAt:G,expiresAt:G+K}),W},{docs:"Store an AST and return a token for later execution",cost:1}),YX=b("releaseProcedure",I.object({token:I.string}),I.boolean,async({token:Z},$)=>{let X=N(Z,$);return $0.delete(X)},{docs:"Release a stored procedure by token",cost:0.1}),zX=b("clearExpiredProcedures",void 0,I.number,async()=>{let Z=Date.now(),$=0;for(let[X,Q]of $0)if(Z>Q.expiresAt)$0.delete(X),$++;return $},{docs:"Clear all expired procedures and return count",cost:0.5}),B4={seq:U1,if:U$,while:q$,return:D$,try:A$,Error:I$,varSet:B$,constSet:R$,varGet:M$,varsImport:w$,varsLet:j$,varsExport:F$,scope:P$,map:V$,filter:C$,reduce:O$,find:N$,push:E$,len:T$,split:S$,join:k$,template:g$,regexMatch:b$,pick:v$,omit:f$,merge:y$,keys:h$,httpFetch:u$,storeGet:d$,storeSet:l$,storeQuery:m$,storeVectorSearch:i$,llmPredict:p$,agentRun:n$,transpileCode:c$,runCode:o$,jsonParse:s$,jsonStringify:a$,xmlParse:r$,memoize:t$,cache:e$,random:ZX,uuid:$X,hash:J6,consoleLog:XX,consoleWarn:QX,consoleError:HX,storeProcedure:KX,releaseProcedure:YX,clearExpiredProcedures:zX};var WX=new Set(["true","false","null","undefined","and","or","not"]);function GX(Z,$){let X=Z.replace(/"[^"]*"/g,'""').replace(/'[^']*'/g,"''"),Q=[],H=/(?<![.])\b([a-zA-Z_][a-zA-Z0-9_]*)\b/g,K;while((K=H.exec(X))!==null)Q.push(K[1]);let z=[...new Set(Q)].filter((W)=>!WX.has(W)&&!(W in $)&&!new RegExp(`\\b${W}\\s*\\(`).test(X));if(z.length>0)console.warn(`[Agent99 Builder] Condition "${Z}" references variables not in vars mapping: ${z.join(", ")}. Add them to vars or use AsyncJS syntax (ajs\`...\`) which handles this automatically.`)}function R4(Z,$){GX(Z,$);let X=JX(Z),Q=Z8(X,0,$);if(Q.pos<X.length){let H=X.slice(Q.pos).join(" ");throw Error(`Unsupported condition syntax near '${H}' in: ${Z}
424
+ Supported: comparisons, &&, ||, !, arithmetic, member access (a.b), literals`)}return Q.node}function JX(Z){let $=[],X=0;while(X<Z.length){while(X<Z.length&&/\s/.test(Z[X]))X++;if(X>=Z.length)break;if(Z[X]==='"'||Z[X]==="'"){let Q=Z[X++],H="";while(X<Z.length&&Z[X]!==Q)if(Z[X]==="\\"&&X+1<Z.length)X++,H+=Z[X++];else H+=Z[X++];X++,$.push(JSON.stringify(H));continue}if(Z.slice(X,X+2).match(/^(&&|\|\||==|!=|>=|<=)$/)){$.push(Z.slice(X,X+2)),X+=2;continue}if("+-*/%><!().?:[]".includes(Z[X])){$.push(Z[X]),X++;continue}if(/\d/.test(Z[X])){let Q="";while(X<Z.length&&/[\d.]/.test(Z[X]))Q+=Z[X++];$.push(Q);continue}if(/[a-zA-Z_]/.test(Z[X])){let Q="";while(X<Z.length&&/[a-zA-Z0-9_]/.test(Z[X]))Q+=Z[X++];$.push(Q);continue}X++}return $}function Z8(Z,$,X){return _X(Z,$,X)}function _X(Z,$,X){let{node:Q,pos:H}=a7(Z,$,X);while(Z[H]==="||"){H++;let{node:K,pos:Y}=a7(Z,H,X);Q={$expr:"logical",op:"||",left:Q,right:K},H=Y}return{node:Q,pos:H}}function a7(Z,$,X){let{node:Q,pos:H}=r7(Z,$,X);while(Z[H]==="&&"){H++;let{node:K,pos:Y}=r7(Z,H,X);Q={$expr:"logical",op:"&&",left:Q,right:K},H=Y}return{node:Q,pos:H}}function r7(Z,$,X){let{node:Q,pos:H}=t7(Z,$,X),K=["==","!=",">","<",">=","<="];while(K.includes(Z[H])){let Y=Z[H++],{node:z,pos:W}=t7(Z,H,X);Q={$expr:"binary",op:Y,left:Q,right:z},H=W}return{node:Q,pos:H}}function t7(Z,$,X){let{node:Q,pos:H}=e7(Z,$,X);while(Z[H]==="+"||Z[H]==="-"){let K=Z[H++],{node:Y,pos:z}=e7(Z,H,X);Q={$expr:"binary",op:K,left:Q,right:Y},H=z}return{node:Q,pos:H}}function e7(Z,$,X){let{node:Q,pos:H}=_6(Z,$,X);while(Z[H]==="*"||Z[H]==="/"||Z[H]==="%"){let K=Z[H++],{node:Y,pos:z}=_6(Z,H,X);Q={$expr:"binary",op:K,left:Q,right:Y},H=z}return{node:Q,pos:H}}function _6(Z,$,X){if(Z[$]==="!"||Z[$]==="-"){let Q=Z[$++],{node:H,pos:K}=_6(Z,$,X);return{node:{$expr:"unary",op:Q,argument:H},pos:K}}return LX(Z,$,X)}function LX(Z,$,X){let Q=Z[$];if(Q==="("){let{node:H,pos:K}=Z8(Z,$+1,X);return{node:H,pos:K+1}}if(Q&&Q.startsWith('"'))return{node:{$expr:"literal",value:JSON.parse(Q)},pos:$+1};if(Q&&/^\d/.test(Q))return{node:{$expr:"literal",value:parseFloat(Q)},pos:$+1};if(Q==="true")return{node:{$expr:"literal",value:!0},pos:$+1};if(Q==="false")return{node:{$expr:"literal",value:!1},pos:$+1};if(Q==="null")return{node:{$expr:"literal",value:null},pos:$+1};if(Q&&/^[a-zA-Z_]/.test(Q)){let H={$expr:"ident",name:Q},K=$+1;while(Z[K]==="."){K++;let Y=Z[K++];H={$expr:"member",object:H,property:Y}}return{node:H,pos:K}}return{node:{$expr:"literal",value:null},pos:$+1}}class H1{steps=[];atoms;proxy;constructor(Z){return this.atoms=Z,this.proxy=new Proxy(this,{get:($,X,Q)=>{if(X in $)return $[X];if(typeof X==="string"&&X in $.atoms)return(H)=>{let K=$.atoms[X];return $.add(K.create(H)),Q};return}}),this.proxy}add(Z){return this.steps.push(Z),this.proxy}as(Z){if(this.steps.length===0)throw Error("No step to capture");let $=this.steps[this.steps.length-1];return $.result=Z,this.proxy}step(Z){return this.add(Z)}return(Z){let $=this.atoms.return;if(!$)throw Error("Atom 'return' not found");let X=Z.schema??Z;return this.add($.create({schema:X}))}toJSON(){return{op:"seq",steps:[...this.steps]}}varsImport(Z){return this.add(this.atoms.varsImport.create({keys:Z}))}varsExport(Z){return this.add(this.atoms.varsExport.create({keys:Z}))}if(Z,$,X,Q){let H=new H1(this.atoms);X(H);let K;if(Q){let W=new H1(this.atoms);Q(W),K=W.steps}let Y=R4(Z,$),z=this.atoms.if;return this.add(z.create({condition:Y,then:H.steps,else:K}))}while(Z,$,X){let Q=new H1(this.atoms);X(Q);let H=R4(Z,$),K=this.atoms.while;return this.add(K.create({condition:H,body:Q.steps}))}scope(Z){let $=new H1(this.atoms);Z($);let X=this.atoms.scope;return this.add(X.create({steps:$.steps}))}map(Z,$,X){let Q=new H1(this.atoms);X(Q);let H=this.atoms.map;return this.add(H.create({items:Z,as:$,steps:Q.steps}))}filter(Z,$,X,Q={}){let H=R4(X,Q),K=this.atoms.filter;return this.add(K.create({items:Z,as:$,condition:H}))}find(Z,$,X,Q={}){let H=R4(X,Q),K=this.atoms.find;return this.add(K.create({items:Z,as:$,condition:H}))}reduce(Z,$,X,Q,H){let K=new H1(this.atoms);H(K);let Y=this.atoms.reduce;return this.add(Y.create({items:Z,as:$,accumulator:X,initial:Q,steps:K.steps}))}memoize(Z,$){let X=new H1(this.atoms);Z(X);let Q=this.atoms.memoize;return this.add(Q.create({key:$,steps:X.steps}))}cache(Z,$,X){let Q=new H1(this.atoms);Z(Q);let H=this.atoms.cache;return this.add(H.create({key:$,steps:Q.steps,ttlMs:X}))}try(Z){let $=new H1(this.atoms);Z.try($);let X;if(Z.catch){let H=new H1(this.atoms);Z.catch(H),X=H.steps}let Q=this.atoms.try;return this.add(Q.create({try:$.steps,catch:X}))}}var UX={take(Z){return new H1(B4)},custom(Z){return new H1(Z)},args(Z){return{$kind:"arg",path:Z}},val(Z){return Z}},pH=UX;import{validate as qX}from"tosijs-schema";function P0(Z,$={}){let{ast:X,returnType:Q,originalSource:H,requiredParams:K}=F1(Z,{filename:$.filename,colonShorthand:!0,vmTarget:!0}),Y=h0(X,$.filename),{ast:z,signature:W,warnings:G}=U0(Y,H,Q,$,K);return{ast:z,signature:W,warnings:G}}var DX=10;class L6{atoms;constructor(Z={}){this.atoms={...B4,...Z}}get builder(){return new H1(this.atoms)}get Agent(){return new H1(this.atoms)}get A99(){return this.Agent}resolve(Z){return this.atoms[Z]}getTools(Z="all"){let $=Object.values(this.atoms);if(Array.isArray(Z))$=$.filter((X)=>Z.includes(X.op));else if(Z==="flow"){let X=["seq","if","while","return","try","varSet","varGet","scope"];$=$.filter((Q)=>X.includes(Q.op))}return $.map((X)=>({type:"function",function:{name:X.op,description:X.docs,parameters:X.inputSchema?.schema??{}}}))}async run(Z,$={},X={}){let Q;if(typeof Z==="string")if(W6(Z))Q=G6(Z);else try{Q=P0(Z).ast}catch(U){throw Error(`AJS transpilation failed: ${U.message}`)}else Q=Z;let H=X.fuel??1000,K=X.timeoutMs??H*DX,Y=X.capabilities??{},z=[];if(!Y.store){let U=new Map,q=!1;Y.store={get:async(A)=>{if(!q)q=!0,z.push("Using default in-memory store (not suitable for production)");return U.get(A)},set:async(A,M)=>{if(!q)q=!0,z.push("Using default in-memory store (not suitable for production)");U.set(A,M)}}}let W=new AbortController,G=setTimeout(()=>W.abort(),K);if(X.signal)X.signal.addEventListener("abort",()=>W.abort());let J={fuel:{current:H},args:$,state:{},consts:new Set,capabilities:Y,resolver:(U)=>this.resolve(U),output:void 0,signal:W.signal,costOverrides:X.costOverrides,context:X.context,warnings:z};if(X.trace)J.trace=[];if(Q.op!=="seq")throw Error("Root AST must be 'seq'. Ensure you're passing a transpiled agent (use ajs`...` or transpile()).");let L=Q.inputSchema;if(L&&!qX($,L)){let U=new G1("Input validation failed: args do not match expected schema","vm.run");return{result:U,error:U,fuelUsed:0,trace:J.trace,warnings:z.length>0?z:void 0}}try{await Promise.race([this.resolve("seq")?.exec(Q,J),new Promise((U,q)=>{if(W.signal.addEventListener("abort",()=>{q(Error(`Execution timeout after ${K}ms (fuel: ${H}). Consider increasing fuel or optimizing your agent.`))}),W.signal.aborted)q(Error(`Execution timeout after ${K}ms (fuel: ${H}). Consider increasing fuel or optimizing your agent.`))})])}catch(U){if(U.message?.includes("timeout")||U.message?.includes("aborted")||W.signal.aborted)J.error=new G1(`Execution timeout after ${K}ms (fuel: ${H}). Consider increasing fuel or optimizing your agent.`,"vm.run");else throw U}finally{clearTimeout(G)}if(J.error&&J.output===void 0)J.output=J.error;let _=[...z,...J.warnings??[]];return{result:J.output,error:J.error,fuelUsed:H-J.fuel.current,trace:J.trace,warnings:_.length>0?_:void 0}}}var AX=null,$8=()=>AX??=new L6;function m1(Z){if(!Z||typeof Z!=="object")return;if(Array.isArray(Z)){for(let $ of Z)m1($);return}if(Z.op==="return"&&"value"in Z)Z.value={__result:Z.value};if(Z.steps)m1(Z.steps);if(Z.then)m1(Z.then);if(Z.else)m1(Z.else);if(Z.body)m1(Z.body)}async function IX(Z){let{code:$,context:X={},fuel:Q=1000,timeoutMs:H,capabilities:K={}}=Z,Y=$8(),W=/\breturn\b/.test($)?`function __eval() { ${$} }`:`function __eval() { return (${$}) }`;try{let{ast:G}=P0(W);m1(G);let J=await Y.run(G,X,{fuel:Q,timeoutMs:H,capabilities:K}),L=J.result;return{result:L&&typeof L==="object"&&"__result"in L?L.__result:L,fuelUsed:J.fuelUsed,error:J.error?{message:J.error.message||String(J.error)}:void 0}}catch(G){return{result:void 0,fuelUsed:Q,error:{message:G.message||String(G)}}}}async function BX(Z){let{body:$,params:X=[],fuel:Q=1000,timeoutMs:H,capabilities:K={}}=Z,Y=$8(),W=`function __safeFn(${X.join(", ")}) { ${$} }`,{ast:G}=P0(W);return m1(G),async(...J)=>{let L={};for(let _=0;_<X.length;_++)L[X[_]]=J[_];try{let _=await Y.run(G,L,{fuel:Q,timeoutMs:H,capabilities:K}),U=_.result;return{result:U&&typeof U==="object"&&"__result"in U?U.__result:U,fuelUsed:_.fuelUsed,error:_.error?{message:_.error.message||String(_.error)}:void 0}}catch(_){return{result:void 0,fuelUsed:Q,error:{message:_.message||String(_)}}}}}function w4(Z,$={}){let{ast:X,returnType:Q,originalSource:H,requiredParams:K}=F1(Z,{filename:$.filename,colonShorthand:!0,vmTarget:!0}),Y=h0(X,$.filename),{ast:z,signature:W,warnings:G}=U0(Y,H,Q,$,K);return{ast:z,signature:W,warnings:G}}function GK(Z,...$){if(typeof Z==="string")return w4(Z).ast;let X=Z.reduce((Q,H,K)=>Q+H+($[K]!==void 0?String($[K]):""),"");return w4(X).ast}function _K(Z,$,...X){if(typeof Z==="string")return j0(Z,$);let Q=$!==void 0?[$,...X]:X,H=Z.reduce((K,Y,z)=>K+Y+(Q[z]!==void 0?String(Q[z]):""),"");return j0(H)}async function LK(Z,$={},X){let Q=X??await U4(),H=await Q.getTranspile(Z);if(H)return{ast:H.ast,signature:H.signature,warnings:H.warnings};let K=w4(Z,$);return Q.setTranspile(Z,{ast:K.ast,signature:K.signature,warnings:K.warnings}),K}async function UK(Z,$={},X){let Q=X??await U4(),H=await Q.getTJS(Z);if(H)return{code:H.code,types:H.types,metadata:H.types,testRunner:H.testRunner,testCount:H.testCount,warnings:H.warnings};let K=j0(Z,$);return Q.setTJS(Z,{code:K.code,types:K.types,testRunner:K.testRunner,testCount:K.testCount,warnings:K.warnings}),K}function qK(Z,$,X){let{ast:Q,signature:H}=w4(Z),K=async(Y)=>{return(await $.run(Q,Y,X)).result};return K.signature=H,K.ast=Q,K}function DK(Z){return Object.entries(Z).map(([$,X])=>{let Q=X.signature,H={},K=[];for(let[Y,z]of Object.entries(Q.parameters)){if(H[Y]=M4(z.type),z.description)H[Y].description=z.description;if(z.required)K.push(Y)}return{type:"function",function:{name:Q.name||$,description:Q.description,parameters:{type:"object",properties:H,required:K}}}})}function M4(Z){switch(Z.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:Z.items?M4(Z.items):{}};case"object":if(!Z.shape)return{type:"object"};return{type:"object",properties:Object.fromEntries(Object.entries(Z.shape).map(([$,X])=>[$,M4(X)]))};case"union":if(!Z.members)return{};return{anyOf:Z.members.map(M4)};case"any":default:return{}}}import{s as h}from"tosijs-schema";var X8=b("storeVectorize",h.object({text:h.string,model:h.string.optional}),h.array(h.number),async({text:Z},$)=>{let X=$.capabilities.vector;if(!X)throw Error("Capability 'vector' missing. Ensure vector battery is loaded.");let Q=N(Z,$);return X.embed(Q)},{docs:"Generate embeddings using vector battery",cost:20}),Q8=b("storeCreateCollection",h.object({collection:h.string,dimension:h.number.optional}),void 0,async({collection:Z,dimension:$},X)=>{let Q=X.capabilities.store;if(!Q?.createCollection)throw Error("Capability 'store' missing or does not support createCollection.");let H=N(Z,X),K=N($,X);return Q.createCollection(H,void 0,K)},{docs:"Create a vector store collection",cost:5}),H8=b("storeVectorAdd",h.object({collection:h.string,doc:h.any}),void 0,async({collection:Z,doc:$},X)=>{let Q=X.capabilities.store;if(!Q?.vectorAdd)throw Error("Capability 'store' missing or does not support vectorAdd.");let H=N(Z,X),K=N($,X);return Q.vectorAdd(H,K)},{docs:"Add a document to a vector store collection",cost:5}),K8=b("storeSearch",h.object({collection:h.string,queryVector:h.array(h.number),k:h.number.optional,filter:h.record(h.any).optional}),h.array(h.any),async({collection:Z,queryVector:$,k:X,filter:Q},H)=>{let K=H.capabilities.store;if(!K?.vectorSearch)throw Error("Capability 'store' missing or does not support vectorSearch.");let Y=N(Z,H),z=N($,H),W=N(X,H)??5,G=N(Q,H);return K.vectorSearch(Y,z,W,G)},{docs:"Search vector store",cost:(Z,$)=>5+(N(Z.k,$)??5)}),Y8=b("llmPredictBattery",h.object({system:h.string.optional,user:h.string,tools:h.array(h.any).optional,responseFormat:h.any.optional}),h.object({role:h.string.optional,content:h.string.optional,tool_calls:h.array(h.any).optional}),async({system:Z,user:$,tools:X,responseFormat:Q},H)=>{let K=H.capabilities.llmBattery;if(!K?.predict)throw Error("Capability 'llmBattery' missing or invalid.");let Y=N(Z,H)??"You are a helpful agent.",z=N($,H),W=N(X,H),G=N(Q,H);return K.predict(Y,z,W,G)},{docs:"Generate completion using LLM battery",cost:100}),z8=b("llmVision",h.object({system:h.string.optional,prompt:h.string,images:h.array(h.string),responseFormat:h.any.optional}),h.object({role:h.string.optional,content:h.string.optional,tool_calls:h.array(h.any).optional}),async({system:Z,prompt:$,images:X,responseFormat:Q},H)=>{let K=H.capabilities.llmBattery;if(!K?.predict)throw Error("Capability 'llmBattery' missing or invalid.");let Y=N(Z,H)??"You analyze images accurately and concisely.",z=N($,H),W=N(X,H)??[],G=N(Q,H);return K.predict(Y,{text:z,images:W},void 0,G)},{docs:"Analyze images using a vision model",timeoutMs:120000,cost:150});var yK={storeCreateCollection:Q8,storeSearch:K8,storeVectorAdd:H8,storeVectorize:X8,llmPredictBattery:Y8,llmVision:z8};var W8=new Map,j4=new Map;function RX(Z,$){if(Z.length!==$.length)throw Error("Vectors must have the same length for cosine similarity.");let X=0,Q=0,H=0;for(let K=0;K<Z.length;K++)X+=Z[K]*$[K],Q+=Z[K]*Z[K],H+=$[K]*$[K];if(Q=Math.sqrt(Q),H=Math.sqrt(H),Q===0||H===0)return 0;return X/(Q*H)}function U6(){return{async get(Z){return W8.get(Z)},async set(Z,$){W8.set(Z,$)},async createCollection(Z,$,X){if(j4.has(Z))console.warn(`Collection '${Z}' already exists. Overwriting.`);j4.set(Z,[])},async vectorAdd(Z,$){let X=j4.get(Z);if(!X)throw Error(`Collection '${Z}' not found. Create it first.`);if(!$.embedding||!Array.isArray($.embedding))throw Error("Document must have an 'embedding' property that is an array of numbers.");X.push($)},async vectorSearch(Z,$,X=5){let Q=j4.get(Z);if(!Q)throw Error(`Collection '${Z}' not found. Create it first.`);let H=Q.map((K)=>({doc:K,score:RX($,K.embedding)}));return H.sort((K,Y)=>Y.score-K.score),H.slice(0,X).map((K)=>K.doc)}}}function MX(Z){if(typeof Z==="string")return{role:"user",content:Z};let $=[{type:"text",text:Z.text}];for(let X of Z.images||[])$.push({type:"image_url",image_url:{url:X}});return{role:"user",content:$}}var wX="http://localhost:1234/v1";function G8(Z,$=wX){return{async predict(X,Q,H,K){try{let Y=K?Z.getStructuredLLM():Z.getLLM(),z=[{role:"system",content:X},MX(Q)],W=await fetch(`${$}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:Y.id,messages:z,temperature:0.7,tools:H,response_format:K})});if(!W.ok)throw Error(`LLM Error: ${W.status} ${W.statusText}`);return(await W.json()).choices[0]?.message??{content:""}}catch(Y){if(Y.cause?.code==="ECONNREFUSED")throw Error("No LLM provider configured. Please start LM Studio or provide an API key.");throw Y}},async embed(X){try{let Q=Z.getEmbedding(),H=await fetch(`${$}/embeddings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:Q.id,input:X})});if(!H.ok)throw Error(`Embedding Error: ${H.status}`);return(await H.json()).data[0]?.embedding??[]}catch(Q){if(Q.cause?.code==="ECONNREFUSED")throw Error("No LLM provider configured. Please start LM Studio or provide an API key.");throw Q}}}}var V0=typeof window<"u"&&typeof window.localStorage<"u";async function PX(Z){try{if(V0){let $=window.localStorage.getItem(".models.cache.json");if(!$)return null;let X=JSON.parse($);if(X.baseUrl!==Z)return null;if(Date.now()-X.timestamp>86400000)return null;return X.models}else{let $=await import("node:fs/promises"),Q=(await Promise.resolve().then(() => (A6(),D6))).join(process.cwd(),".models.cache.json");try{let H=await $.readFile(Q,"utf-8"),K=JSON.parse(H);if(K.baseUrl!==Z)return null;if(Date.now()-K.timestamp>86400000)return null;return K.models}catch{return null}}}catch($){return console.warn("⚠️ Error reading model cache:",$),null}}async function VX(Z,$){let X={timestamp:Date.now(),baseUrl:Z,models:$};try{if(V0)window.localStorage.setItem(".models.cache.json",JSON.stringify(X));else{let Q=await import("node:fs/promises"),K=(await Promise.resolve().then(() => (A6(),D6))).join(process.cwd(),".models.cache.json");await Q.writeFile(K,JSON.stringify(X,null,2))}}catch(Q){console.error("❌ Error writing model cache:",Q)}}var C0=async(Z,$)=>{let X=new AbortController,Q=setTimeout(()=>X.abort(),60000);try{let H=await fetch(Z,{...$,signal:X.signal});return clearTimeout(Q),H}catch(H){throw clearTimeout(Q),H}};async function CX(Z,$){try{let X={type:"json_schema",json_schema:{name:"test",strict:!1,schema:{type:"object",properties:{status:{type:"string"}}}}},Q=await C0(`${Z}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:$,messages:[{role:"system",content:"You respond in JSON."},{role:"user",content:'Return JSON: {"status": "ok"}'}],response_format:X,max_tokens:20})});if(!Q.ok){if(Q.status===400)return OX(Z,$);return{ok:!1,msg:`HTTP ${Q.status}`}}let H=await Q.json();return JSON.parse(H.choices[0].message.content),{ok:!0,msg:"OK (Schema)"}}catch(X){return{ok:!1,msg:X.message||"Error"}}}async function OX(Z,$){try{if((await C0(`${Z}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:$,messages:[{role:"user",content:'JSON: {"a":1}'}],response_format:{type:"json_object"},max_tokens:10})})).ok)return{ok:!0,msg:"OK (Legacy Mode)"};return{ok:!1,msg:"Not Supported"}}catch{return{ok:!1,msg:"Legacy Fail"}}}async function NX(Z,$){try{return(await C0(`${Z}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:$,messages:[{role:"user",content:"hi"}],max_tokens:1})})).ok}catch{return!1}}async function EX(Z,$){try{let X=await C0(`${Z}/embeddings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:$,input:"test"})});if(!X.ok)return null;return(await X.json()).data[0]?.embedding?.length??null}catch{return null}}var TX="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg==";async function SX(Z,$){try{return(await C0(`${Z}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:$,messages:[{role:"user",content:[{type:"text",text:"What color is this?"},{type:"image_url",image_url:{url:TX}}]}],max_tokens:10})})).ok}catch{return!1}}async function F8(Z){let $=await PX(Z),X=[];try{let Y=await fetch(`${Z}/models`);if(!Y.ok)throw Error("Could not connect");X=(await Y.json()).data.map((W)=>W.id).sort()}catch(Y){if($)return console.log("⚠️ LM Studio unavailable, using cached model audit."),$;return console.error("❌ Failed to connect to LM Studio."),[]}if($){let Y=$.map((z)=>z.id).sort();if(JSON.stringify(X)===JSON.stringify(Y))return console.log("✅ Using cached model audit."),$;console.log("\uD83D\uDD0D Model list changed. Re-running audit...")}console.log("\uD83D\uDD0D Scanning models (this may take a moment)...");let Q=[],H=X.map((Y)=>({id:Y})),K;if(!V0)K=await import("node:readline");for(let Y of H){if(!V0&&K)K.cursorTo(process.stdout,0),process.stdout.write(`\uD83D\uDC49 Testing: ${Y.id}...`),K.clearLine(process.stdout,1);let z="Unknown",W=!1,G=!1,J="",L=void 0,_=await NX(Z,Y.id),U=await EX(Z,Y.id);if(U)L=U;if(_){z="LLM";let q=await CX(Z,Y.id);if(W=q.ok,G=await SX(Z,Y.id),J=W?q.msg:`Fail: ${q.msg}`,G)J+=" +Vision"}else if(U)z="Embedding",J=`OK (Dim: ${U})`;else J="LLM Fail";Q.push({id:Y.id,type:z,structuredOutput:W,vision:G,dimension:L,status:J})}if(!V0&&K)K.cursorTo(process.stdout,0),K.clearLine(process.stdout,0);return console.log(`
425
+ `),console.table(Q),await VX(Z,Q),console.log("\uD83D\uDCDD Audit results saved to cache."),Q}var kX="http://localhost:1234/v1";class I6{baseUrl;models=[];defaultLLM=null;defaultEmbedding=null;defaultStructuredLLM=null;constructor(Z=kX){this.baseUrl=Z}async audit(){this.models=await F8(this.baseUrl),this.selectDefaults()}selectDefaults(){if(this.defaultEmbedding=this.models.find((Z)=>Z.type==="Embedding")||null,this.defaultLLM=this.models.find((Z)=>Z.type==="LLM")||null,this.defaultStructuredLLM=this.models.find((Z)=>Z.type==="LLM"&&Z.structuredOutput)||null,!this.defaultEmbedding)console.warn("⚠️ No embedding model found.");if(!this.defaultLLM)console.warn("⚠️ No LLM found.");if(!this.defaultStructuredLLM)console.warn("⚠️ No LLM with structured output support found.")}getModels(){return this.models}_setDefaultModel(Z,$,X,Q){let H=this.models.find((K)=>K.id===Z&&X(K));if(!H)throw Error(`Model '${Z}' not found or is not ${Q}.`);this[$]=H}setDefaultLLM(Z){this._setDefaultModel(Z,"defaultLLM",($)=>$.type==="LLM","an LLM")}setDefaultEmbedding(Z){this._setDefaultModel(Z,"defaultEmbedding",($)=>$.dimension!==void 0,"an embedding model")}setDefaultStructuredLLM(Z){this._setDefaultModel(Z,"defaultStructuredLLM",($)=>$.type==="LLM"&&$.structuredOutput,"a structured-output LLM")}getLLM(){if(!this.defaultLLM)throw Error("No LLM available.");return this.defaultLLM}getEmbedding(){if(!this.defaultEmbedding)throw Error("No embedding model available.");return this.defaultEmbedding}getStructuredLLM(){if(!this.defaultStructuredLLM)throw Error("No structured-output LLM available.");return this.defaultStructuredLLM}}var gX=typeof window<"u",bX=gX&&window.location.protocol==="https:",O0=null,B6=null,P8=!1;async function vX(){if(P8)return{localModels:O0,llm:B6};if(P8=!0,bX)return console.log("\uD83D\uDCE1 HTTPS detected - local LLM endpoints disabled. Use HTTP for local LLM support."),{localModels:null,llm:null};try{O0=new I6,await O0.audit(),B6=G8(O0)}catch(Z){console.warn("⚠️ Could not connect to local LLM:",Z)}return{localModels:O0,llm:B6}}async function fX(){let{localModels:Z,llm:$}=await vX();return{vector:$?{embed:$.embed}:void 0,store:U6(),llmBattery:$,models:Z}}async function cK(){return fX()}var oK={store:U6(),llmBattery:null,vector:void 0,models:null};function yX(Z){if(typeof Z!=="string")return!1;let $=new Date(Z);return!isNaN($.getTime())&&Z.includes("T")}function hX(){return new Date().toISOString()}function X0(Z,$,X,Q=0,H=0,K=0,Y=0){return new Date(Date.UTC(Z,$-1,X,Q,H,K,Y)).toISOString()}function V8(Z){let $=new Date(Z);if(isNaN($.getTime()))throw Error(`Invalid date string: ${Z}`);return $.toISOString()}function xX(Z){try{return V8(Z)}catch{return null}}function N0(Z,$){let X=new Date(Z);return X.setTime(X.getTime()+$),X.toISOString()}function uX(Z,$){return N0(Z,$*1000)}function dX(Z,$){return N0(Z,$*60*1000)}function lX(Z,$){return N0(Z,$*60*60*1000)}function C8(Z,$){return N0(Z,$*24*60*60*1000)}function mX(Z,$){return C8(Z,$*7)}function iX(Z,$){let X=new Date(Z),Q=X.getUTCMonth()+$;if(X.setUTCMonth(Q),X.getUTCMonth()!==(Q%12+12)%12)X.setUTCDate(0);return X.toISOString()}function pX(Z,$){let X=new Date(Z),Q=X.getUTCDate();if(X.setUTCFullYear(X.getUTCFullYear()+$),X.getUTCDate()!==Q)X.setUTCDate(0);return X.toISOString()}function S1(Z,$){return new Date(Z).getTime()-new Date($).getTime()}function nX(Z,$){return Math.floor(S1(Z,$)/1000)}function cX(Z,$){return Math.floor(S1(Z,$)/60000)}function oX(Z,$){return Math.floor(S1(Z,$)/3600000)}function sX(Z,$){return Math.floor(S1(Z,$)/86400000)}function Q0(Z){return new Date(Z).getUTCFullYear()}function P4(Z){return new Date(Z).getUTCMonth()+1}function R6(Z){return new Date(Z).getUTCDate()}function aX(Z){return new Date(Z).getUTCHours()}function rX(Z){return new Date(Z).getUTCMinutes()}function tX(Z){return new Date(Z).getUTCSeconds()}function eX(Z){return new Date(Z).getUTCMilliseconds()}function ZQ(Z){let $=new Date(Z).getUTCDay();return $===0?7:$}function V4(Z,$,X){let Q=new Date(Z),H={timeZone:$,...X};return new Intl.DateTimeFormat(void 0,H).format(Q)}function $Q(Z,$){return V4(Z,$,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})}function XQ(Z,$){return V4(Z,$,{year:"numeric",month:"short",day:"numeric"})}function QQ(Z,$){return V4(Z,$,{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function HQ(Z){return Z.slice(0,10)}function O8(Z,$){return S1(Z,$)<0}function N8(Z,$){return S1(Z,$)>0}function KQ(Z,$){return S1(Z,$)===0}function YQ(Z,$){return O8(Z,$)?Z:$}function zQ(Z,$){return N8(Z,$)?Z:$}function WQ(Z){return X0(Q0(Z),P4(Z),R6(Z))}function GQ(Z){return X0(Q0(Z),P4(Z),R6(Z),23,59,59,999)}function JQ(Z){return X0(Q0(Z),P4(Z),1)}function _Q(Z){let $=new Date(Z);return $.setUTCMonth($.getUTCMonth()+1,0),$.setUTCHours(23,59,59,999),$.toISOString()}function LQ(Z){return X0(Q0(Z),1,1)}function UQ(Z){return X0(Q0(Z),12,31,23,59,59,999)}var H0={isValid:yX,now:hX,from:X0,parse:V8,tryParse:xX,addMilliseconds:N0,addSeconds:uX,addMinutes:dX,addHours:lX,addDays:C8,addWeeks:mX,addMonths:iX,addYears:pX,diff:S1,diffSeconds:nX,diffMinutes:cX,diffHours:oX,diffDays:sX,year:Q0,month:P4,day:R6,hour:aX,minute:rX,second:tX,millisecond:eX,dayOfWeek:ZQ,toLocal:V4,format:$Q,formatDate:XQ,formatTime:QQ,toDate:HQ,isBefore:O8,isAfter:N8,isEqual:KQ,min:YQ,max:zQ,startOfDay:WQ,endOfDay:GQ,startOfMonth:JQ,endOfMonth:_Q,startOfYear:LQ,endOfYear:UQ};function M6(Z){if(typeof Z!=="string")return!1;if(!/^\d{4}-\d{2}-\d{2}$/.test(Z))return!1;let $=parseInt(Z.slice(0,4),10),X=parseInt(Z.slice(5,7),10),Q=parseInt(Z.slice(8,10),10);if(X<1||X>12)return!1;if(Q<1)return!1;let H=[31,28,31,30,31,30,31,31,30,31,30,31],K=X===2&&($%4===0&&$%100!==0||$%400===0)?29:H[X-1];return Q<=K}function qQ(){return H0.toDate(H0.now())}function DQ(Z){let $=new Date;return new Intl.DateTimeFormat("en-CA",{timeZone:Z,year:"numeric",month:"2-digit",day:"2-digit"}).format($)}function q1(Z,$,X){let Q=String(Z).padStart(4,"0"),H=String($).padStart(2,"0"),K=String(X).padStart(2,"0"),Y=`${Q}-${H}-${K}`;if(!M6(Y))throw Error(`Invalid date: ${Z}-${$}-${X}`);return Y}function E8(Z){if(/^\d{4}-\d{2}-\d{2}$/.test(Z)){if(!M6(Z))throw Error(`Invalid date: ${Z}`);return Z}let $=new Date(Z);if(isNaN($.getTime()))throw Error(`Invalid date string: ${Z}`);let X=$.getUTCFullYear(),Q=$.getUTCMonth()+1,H=$.getUTCDate();return q1(X,Q,H)}function AQ(Z){try{return E8(Z)}catch{return null}}function C4(Z,$){let X=S8(Z);return H0.toDate(H0.addDays(X,$))}function IQ(Z,$){return C4(Z,$*7)}function BQ(Z,$){let X=Y1(Z),Q=k1(Z),H=w6(Z),K=X*12+(Q-1)+$,Y=Math.floor(K/12),z=K%12+1,W=E0(Y,z),G=Math.min(H,W);return q1(Y,z,G)}function RQ(Z,$){let X=Y1(Z),Q=k1(Z),H=w6(Z),K=X+$,Y=E0(K,Q),z=Math.min(H,Y);return q1(K,Q,z)}function T8(Z,$){let Q=new Date(Z+"T00:00:00Z").getTime(),H=new Date($+"T00:00:00Z").getTime();return Math.round((Q-H)/86400000)}function MQ(Z,$){let X=Y1(Z),Q=k1(Z),H=Y1($),K=k1($);return(X-H)*12+(Q-K)}function wQ(Z,$){return Y1(Z)-Y1($)}function Y1(Z){return parseInt(Z.slice(0,4),10)}function k1(Z){return parseInt(Z.slice(5,7),10)}function w6(Z){return parseInt(Z.slice(8,10),10)}function j6(Z){let $=new Date(Z+"T00:00:00Z").getUTCDay();return $===0?7:$}function jQ(Z){let $=new Date(Z+"T00:00:00Z"),X=$.getUTCDay()||7;$.setUTCDate($.getUTCDate()+4-X);let Q=new Date(Date.UTC($.getUTCFullYear(),0,1));return Math.ceil((($.getTime()-Q.getTime())/86400000+1)/7)}function FQ(Z){let $=q1(Y1(Z),1,1);return T8(Z,$)+1}function F6(Z){return Math.ceil(k1(Z)/3)}function P6(Z){return Z%4===0&&Z%100!==0||Z%400===0}function E0(Z,$){let X=[31,28,31,30,31,30,31,31,30,31,30,31];if($===2&&P6(Z))return 29;return X[$-1]}function PQ(Z){return P6(Z)?366:365}function S8(Z){return Z+"T00:00:00.000Z"}function VQ(Z){return Math.floor(new Date(Z+"T00:00:00Z").getTime()/1000)}function CQ(Z){let $=new Date(Z*1000);return q1($.getUTCFullYear(),$.getUTCMonth()+1,$.getUTCDate())}function V6(Z,$){let X=new Date(Z+"T00:00:00Z"),Q={timeZone:"UTC",...$};return new Intl.DateTimeFormat(void 0,Q).format(X)}function OQ(Z){return V6(Z,{year:"numeric",month:"long",day:"numeric"})}function NQ(Z){return V6(Z,{year:"numeric",month:"short",day:"numeric"})}function EQ(Z,$){return Z<$}function TQ(Z,$){return Z>$}function SQ(Z,$){return Z===$}function kQ(Z,$){return Z<$?Z:$}function gQ(Z,$){return Z>$?Z:$}function bQ(Z,$,X){return Z>=$&&Z<=X}function vQ(Z){return q1(Y1(Z),k1(Z),1)}function fQ(Z){let $=Y1(Z),X=k1(Z);return q1($,X,E0($,X))}function yQ(Z){let X=(F6(Z)-1)*3+1;return q1(Y1(Z),X,1)}function hQ(Z){let X=F6(Z)*3;return q1(Y1(Z),X,E0(Y1(Z),X))}function xQ(Z){return q1(Y1(Z),1,1)}function uQ(Z){return q1(Y1(Z),12,31)}function dQ(Z){let $=j6(Z);return C4(Z,-($-1))}function lQ(Z){let $=j6(Z);return C4(Z,7-$)}var mQ={isValid:M6,today:qQ,todayIn:DQ,from:q1,parse:E8,tryParse:AQ,addDays:C4,addWeeks:IQ,addMonths:BQ,addYears:RQ,diff:T8,diffMonths:MQ,diffYears:wQ,year:Y1,month:k1,day:w6,dayOfWeek:j6,weekOfYear:jQ,dayOfYear:FQ,quarter:F6,isLeapYear:P6,daysInMonth:E0,daysInYear:PQ,toTimestamp:S8,toUnix:VQ,fromUnix:CQ,format:V6,formatLong:OQ,formatShort:NQ,isBefore:EQ,isAfter:TQ,isEqual:SQ,min:kQ,max:gQ,isBetween:bQ,startOfMonth:vQ,endOfMonth:fQ,startOfQuarter:yQ,endOfQuarter:hQ,startOfYear:xQ,endOfYear:uQ,startOfWeek:dQ,endOfWeek:lQ};export{r$ as xmlParse,o4 as wrap,q$ as whileLoop,i$ as vectorSearch,j$ as varsLet,w$ as varsImport,F$ as varsExport,B$ as varSet,M$ as varGet,c4 as validateArgs,$X as uuid,g4 as typeToString,c1 as typeOf,r1 as typeDescriptorToTS,A$ as tryCatch,LK as transpileWithCache,j0 as transpileToJS,c$ as transpileCode,w4 as transpile,U0 as transformFunction,UK as tjsWithCache,_K as tjs,jZ as testUtils,g$ as template,j7 as stripTjsPreamble,Y4 as stripModuleSyntax,l$ as storeSet,m$ as storeQuery,KX as storeProcedure,d$ as storeGet,S$ as split,a5 as setGlobalCache,U1 as seq,P$ as scope,y1 as runtime,o$ as runCode,D$ as ret,N as resolveValue,G6 as resolveProcedureToken,YX as releaseProcedure,E7 as registerWasmBlock,b$ as regexMatch,O$ as reduce,ZX as random,E$ as push,$0 as procedureStore,y0 as preprocess,v$ as pick,Q7 as parseReturnType,O1 as parseParameter,F1 as parse,f$ as omit,y$ as merge,t$ as memoize,V$ as map,p8 as lookupVariable,p$ as llmPredict,e5 as lint,T$ as len,h$ as keys,a$ as jsonStringify,s$ as jsonParse,k$ as join,y4 as isValidUrl,h4 as isValidTimestamp,x4 as isValidLegalDate,N1 as isRuntimeType,W6 as isProcedureToken,P1 as isError,Q$ as isAgentError,N7 as instantiateWasm,s4 as installRuntime,W1 as inferTypeFromValue,U$ as iff,c5 as hashSourceSync,L4 as hashSource,J6 as hash,DK as getToolDefinitions,U6 as getStoreCapabilityDefault,cK as getStandardCapabilities,c as getLocation,G8 as getLLMCapability,U4 as getGlobalCache,fX as getBatteries,X$ as generateDocsMarkdown,d7 as generateDocs,V5 as generateDTS,p5 as fromTS,N$ as find,C$ as filter,u$ as fetch,v4 as extractTests,J0 as extractTDoc,R1 as extractLiteralValue,G7 as expectFunction,r as evaluateExpr,I$ as errorAtom,w1 as error,hZ as emitRuntimeWrapper,b as defineAtom,T1 as createChildScope,_1 as createChildContext,qK as createAgent,B4 as coreAtoms,R$ as constSet,QX as consoleWarn,XX as consoleLog,HX as consoleError,G5 as compileWasmBlocks,G4 as compileToWasm,zX as clearExpiredProcedures,h1 as checkType,e$ as cache,C1 as builtins,yK as batteryAtoms,oK as batteries,W7 as assertFunction,GK as ajs,n$ as agentRun,t0 as Union,H1 as TypedBuilder,i8 as TypeError,t as Type,n as TranspileError,u4 as TimestampType,H0 as Timestamp,s0 as TUuid,o0 as TUrl,d0 as TString,$4 as TRecord,p0 as TPositiveInt,Z4 as TPair,l0 as TNumber,n0 as TNonEmptyString,K1 as TJS_VERSION,i0 as TInteger,c0 as TEmail,m0 as TBoolean,e0 as TArray,z1 as SyntaxError,n5 as Schema,BX as SafeFunction,z6 as PROCEDURE_TOKEN_PREFIX,r0 as Optional,a0 as Nullable,H6 as MetadataCache,I6 as LocalModels,d4 as LegalDateType,mQ as LegalDate,p1 as Generic,q0 as FunctionPredicate,IX as Eval,X4 as Enum,H$ as DEFAULT_PROCEDURE_TTL,K$ as DEFAULT_MAX_AST_SIZE,L6 as AgentVM,G1 as AgentError,UX as Agent,pH as A99};
423
426
 
424
- //# debugId=CE1BBDC713DB655F64756E2164756E21
427
+ //# debugId=CF143437FA96977D64756E2164756E21