@hyperfixi/core 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/api/hyperscript-api.d.ts +6 -1
  2. package/dist/chunks/{bridge-CZfeDyEz.js → bridge-D2DBo02Z.js} +2 -2
  3. package/dist/chunks/browser-modular-BA3JFmkq.js +2 -0
  4. package/dist/chunks/index-C6Fn0jGB.js +2 -0
  5. package/dist/commands/dom/toggle.d.ts +2 -0
  6. package/dist/commands/index.js +35 -0
  7. package/dist/commands/index.mjs +35 -0
  8. package/dist/expressions/index.js +0 -27
  9. package/dist/expressions/index.mjs +0 -27
  10. package/dist/hyperfixi-classic-i18n.js +1 -1
  11. package/dist/hyperfixi-minimal.js +1 -1
  12. package/dist/hyperfixi-multilingual.js +1 -1
  13. package/dist/hyperfixi-standard.js +1 -1
  14. package/dist/hyperfixi.js +1 -1
  15. package/dist/hyperfixi.mjs +1 -1
  16. package/dist/i18n/error-catalog.d.ts +12 -0
  17. package/dist/index.js +31352 -23495
  18. package/dist/index.min.js +1 -1
  19. package/dist/index.mjs +31352 -23495
  20. package/dist/lokascript-browser-classic-i18n.js +1 -1
  21. package/dist/lokascript-browser-minimal.js +1 -1
  22. package/dist/lokascript-browser-standard.js +1 -1
  23. package/dist/lokascript-browser.js +1 -1
  24. package/dist/lokascript-multilingual.js +1 -1
  25. package/dist/lse/index.d.ts +15 -0
  26. package/dist/lse/index.js +84 -0
  27. package/dist/lse/index.mjs +71 -0
  28. package/dist/parser/full-parser.js +596 -240
  29. package/dist/parser/full-parser.mjs +596 -240
  30. package/dist/parser/helpers/ast-helpers.d.ts +1 -0
  31. package/dist/parser/parser-types.d.ts +22 -7
  32. package/dist/parser/parser.d.ts +7 -0
  33. package/dist/parser/pratt-parser.d.ts +42 -0
  34. package/dist/parser/token-consumer.d.ts +1 -2
  35. package/dist/parser/tokenizer.d.ts +0 -33
  36. package/dist/registry/index.js +0 -27
  37. package/dist/registry/index.mjs +0 -27
  38. package/dist/runtime/runtime-base.d.ts +3 -0
  39. package/dist/types/base-types.d.ts +11 -0
  40. package/dist/types/core.d.ts +1 -0
  41. package/package.json +12 -3
  42. package/dist/chunks/browser-modular-CwTpxqdt.js +0 -2
@@ -1,2 +0,0 @@
1
- import{v as e}from"./feature-sockets-ClOH7vk7.js";!function(){if("undefined"!=typeof localStorage)try{const e=localStorage,t=e.getItem("hyperfixi:debug")||e.getItem("lokascript:debug");if("*"===t||"true"===t)return!0}catch{}!("undefined"==typeof window||!window.__HYPERFIXI_DEBUG__)||"undefined"!=typeof process&&process}();const t={command:(...e)=>{},event:(...e)=>{},parse:(...e)=>{},expr:(...e)=>{},expressions:(...e)=>{},style:(...e)=>{},runtime:(...e)=>{},loop:(...e)=>{},async:(...e)=>{}},r="then",n="else",i="end",a="and",o="if",s="for",l="while",c="until",u="forever",p="times",m="each",d="index",h="in",f="to",y="from",v="with",g="of",k="by",b="between",w="on",z="event",x="def",E="behavior",T="global",S="local",C="the",A="start",L=[r,a,n,i,w],j=new Set(["add","append","async","beep","break","call","continue","copy","decrement","default","exit","fetch","for","get","go","halt","hide","if","increment","install","js","log","make","measure","morph","pick","process","push","put","remove","render","repeat","replace","return","send","set","settle","show","swap","take","tell","throw","toggle","transition","trigger","unless","wait"]),P=new Set(["put","trigger","send","remove","take","toggle","set","show","hide","add","halt","measure","js","tell","swap","morph","push","replace","process"]),N=new Set(["if","unless","repeat","wait","for","while"]),O="at",I="at start of",R="at end of",M=["into","before","after",O,I,R,"at the start of","at the end of"],W=new Set(["if","else","unless","for","while","until","end","and","or","not","in","to","from","into","with","without","as","matches","contains","then","on","when","every","init","def","behavior","the","of","first","last"]),q={isCommand:e=>j.has(e.toLowerCase()),isCompoundCommand:e=>P.has(e.toLowerCase()),isControlFlowCommand:e=>N.has(e.toLowerCase()),isKeyword:e=>W.has(e.toLowerCase()),isTerminator:e=>L.includes(e),isPutOperation:e=>M.includes(e),isCSSFunction:e=>_.has(e.toLowerCase())},_=new Set(["hsl","hsla","rgb","rgba","hwb","lab","lch","oklch","oklab","color","color-mix","calc","min","max","clamp","var","url","linear-gradient","radial-gradient","conic-gradient","repeating-linear-gradient","repeating-radial-gradient","repeating-conic-gradient"]),$=new Set(["me","it","you","result","my","its","your"]),D=new Set(["and","or","not","no"]),V=new Set(["==","!=","===","!==","<",">","<=",">=","is","is not","is a","is an","is not a","is not an","contains","has","have","does not contain","include","includes","does not include","match","matches","exists","does not exist","is empty","is not empty","is in","is not in","equals","in","is equal to","is really equal to","is not equal to","is not really equal to","is greater than","is less than","is greater than or equal to","is less than or equal to","really equals"]),H=new Set(["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","focus","blur","change","input","submit","reset","select","load","unload","resize","scroll","keydown","keyup","keypress","touchstart","touchend","touchmove","touchcancel","drag","drop","dragover","dragenter","dragleave","cut","copy","paste","toggle"]),B=new Set(["on","init","behavior","def","if","else","unless","for","while","until","end","and","or","not","in","to","from","into","with","as","then","when","where","after","before","by","at","between","async","no","start","of","the","new","global","local","equal","equals","greater","less","than","really","catch","finally","throw","return"]);var F,U;function K(e){switch(e){case U.KEYWORD:case U.COMMAND:case U.EXPRESSION:case U.CONTEXT_VAR:case U.GLOBAL_VAR:case U.EVENT:case U.IDENTIFIER:return F.IDENTIFIER;case U.STRING:return F.STRING;case U.NUMBER:return F.NUMBER;case U.BOOLEAN:return F.IDENTIFIER;case U.TEMPLATE_LITERAL:return F.TEMPLATE;case U.CSS_SELECTOR:case U.ID_SELECTOR:case U.CLASS_SELECTOR:case U.QUERY_REFERENCE:return F.SELECTOR;case U.OPERATOR:case U.LOGICAL_OPERATOR:case U.COMPARISON_OPERATOR:return F.OPERATOR;case U.TIME_EXPRESSION:return F.TIME;case U.COMMENT:return F.COMMENT;case U.SYMBOL:return F.SYMBOL;default:return F.UNKNOWN}}!function(e){e.IDENTIFIER="identifier",e.STRING="string",e.NUMBER="number",e.SELECTOR="selector",e.OPERATOR="operator",e.TIME="time",e.TEMPLATE="template",e.COMMENT="comment",e.SYMBOL="symbol",e.UNKNOWN="unknown"}(F||(F={})),function(e){e.KEYWORD="keyword",e.COMMAND="command",e.EXPRESSION="expression",e.STRING="string",e.NUMBER="number",e.BOOLEAN="boolean",e.TEMPLATE_LITERAL="template_literal",e.CSS_SELECTOR="css_selector",e.ID_SELECTOR="id_selector",e.CLASS_SELECTOR="class_selector",e.QUERY_REFERENCE="query_reference",e.CONTEXT_VAR="context_var",e.GLOBAL_VAR="global_var",e.EVENT="event",e.OPERATOR="operator",e.LOGICAL_OPERATOR="logical_operator",e.COMPARISON_OPERATOR="comparison_operator",e.TIME_EXPRESSION="time_expression",e.OBJECT_LITERAL="object_literal",e.ARRAY_LITERAL="array_literal",e.SYMBOL="symbol",e.COMMENT="comment",e.IDENTIFIER="identifier",e.UNKNOWN="unknown"}(U||(U={}));const G=B,Y=new Set(["+","-","*","/","mod"]),Z=new Set(["ms","s","seconds","minutes","hours","days"]);function X(e){const t={input:"",position:0,line:1,column:1,tokens:[]};t.input=e;const r=e.length;for(;r>t.position&&(ee(t),r>t.position);){const r=e[t.position];if("-"!==r||"-"!==J(t,1))if('"'!==r){if("'"===r||"'"===r){const e=J(t,1),r=t.tokens[t.tokens.length-1];if("s"===e&&r&&(r.kind===F.IDENTIFIER||r.kind===F.SELECTOR||"]"===r.value||")"===r.value||"}"===r.value)){const e=t.position;Q(t),Q(t),te(t,U.OPERATOR,"'s",e)}else ie(t);continue}if("`"!==r)if("<"!==r)if("#"!==r){if("."===r){if("."===J(t,1)){const e=t.position;Q(t),Q(t),te(t,U.OPERATOR,"..",e);continue}const e=t.tokens[t.tokens.length-1],r=new Set(["from","to","into","on","in","at","first","last","next","previous","closest","random"]),n=e&&e.kind===F.IDENTIFIER&&j.has(e.value.toLowerCase()),i=e&&e.kind===F.IDENTIFIER&&r.has(e.value.toLowerCase());if((!e||e.kind===F.OPERATOR&&")"!==e.value&&"]"!==e.value||n||i||"("===e.value||"["===e.value||"{"===e.value||","===e.value||";"===e.value)&&de(J(t))){oe(t);continue}}if("@"!==r)if("{"!==r)if("}"!==r){if("["===r){const e=t.tokens[t.tokens.length-1],r=e&&(e.kind===U.EVENT||e.kind===U.IDENTIFIER&&H.has(e.value))&&t.tokens.length>=2&&"on"===t.tokens[t.tokens.length-2]?.value;e&&(e.kind===U.IDENTIFIER||e.kind===U.CONTEXT_VAR||")"===e.value||"]"===e.value)&&!r?(te(t,U.OPERATOR,"["),Q(t)):r?(te(t,U.SYMBOL,"["),Q(t)):(te(t,U.OPERATOR,"["),Q(t));continue}if("]"!==r){if("$"===r){const e=J(t,1);if(e>="a"&&"z">=e||e>="A"&&"Z">=e||"_"===e){me(t);continue}}ye(r)?ce(t):"0">r||r>"9"?("a">r||r>"z")&&("A">r||r>"Z")&&"_"!==r?(te(t,U.UNKNOWN,r),Q(t)):pe(t):ue(t)}else te(t,U.OPERATOR,"]"),Q(t)}else te(t,U.OPERATOR,"}"),Q(t);else te(t,U.OPERATOR,"{"),Q(t);else le(t)}else oe(t);else fe(t)?se(t):ce(t);else ae(t)}else ie(t);else ne(t)}return t.tokens}function J(e,t=1){const r=e.position+t;return e.input.length>r?e.input[r]:""}function Q(e){const t=e.input[e.position];if(e.position++,"\n"===t)e.line++,e.column=1;else if("\r"===t){"\n"===(e.input.length>e.position?e.input[e.position]:"")&&e.position++,e.line++,e.column=1}else e.column++;return t}function ee(e){const t=e.input,r=t.length;for(;r>e.position;){const r=t[e.position];if(" "!==r&&"\t"!==r&&"\r"!==r&&"\n"!==r)break;Q(e)}}function te(e,t,r,n,i){const a=n??e.position-r.length,o=e.position;let s=e.column-r.length;if(void 0!==n){s=1;let t=-1;for(let r=0;n>r;r++)"\n"!==e.input[r]&&"\r"!==e.input[r]||(t=r);s=n-t}const l={kind:K(t),value:r,start:a,end:o,line:re(e,a),column:s};e.tokens.push(l)}function re(e,t){let r=1;for(let n=0;t>n&&e.input.length>n;n++){const t=e.input[n];"\n"===t?r++:"\r"===t&&(r++,e.input.length>n+1&&"\n"===e.input[n+1]&&n++)}return r}function ne(e){const t=e.position;let r="";for(Q(e),Q(e);e.input.length>e.position;){if("\n"===e.input[e.position])break;r+=Q(e)}te(e,U.COMMENT,"--"+r,t)}function ie(e){const t=e.position,r=Q(e);let n=r;for(;e.input.length>e.position;){const t=Q(e);if(n+=t,t===r)break;"\\"===t&&e.input.length>e.position&&(n+=Q(e))}te(e,U.STRING,n,t)}function ae(e){const t=e.position;Q(e);let r="";for(;e.input.length>e.position;){const t=e.input[e.position];if("`"===t){Q(e);break}if("\\"===t){if(Q(e),e.input.length>e.position){const t=Q(e);switch(t){case"n":r+="\n";break;case"t":r+="\t";break;case"r":r+="\r";break;case"\\":r+="\\";break;case"`":r+="`";break;default:r+=t}}}else r+=Q(e)}if(e.position>=e.input.length&&!e.input.endsWith("`"))throw Error(`Unterminated template literal at line ${e.line}, column ${e.column-r.length}`);te(e,U.TEMPLATE_LITERAL,r,t)}function oe(e){const t=e.position,r=Q(e);let n=r;for(;e.input.length>e.position;){const t=e.input[e.position];if(!he(t)&&"-"!==t&&"_"!==t&&":"!==t)break;n+=Q(e)}te(e,"#"===r?U.ID_SELECTOR:U.CLASS_SELECTOR,n,t)}function se(e){const t=e.position;let r="";for(r+=Q(e);e.input.length-1>e.position;){const t=e.input[e.position],n=e.input[e.position+1];if(r+=Q(e),"/"===t&&">"===n){r+=Q(e);break}}te(e,U.QUERY_REFERENCE,r,t)}function le(e){const t=e.position;let r=Q(e);for(;e.input.length>e.position;){const t=e.input[e.position];if(!he(t)&&"_"!==t&&"-"!==t)break;r+=Q(e)}te(e,U.SYMBOL,r,t)}function ce(e){const t=e.position;let r="";const n=e.input[e.position];if(("'"===n||"'"===n)&&"s"===J(e,1))return r="'s",Q(e),Q(e),void te(e,U.OPERATOR,r,t);const i=e.input.substring(e.position,e.position+2),a=e.input.substring(e.position,e.position+3);["===","!=="].includes(a)?(r=a,Q(e),Q(e),Q(e)):["==","!=","<=",">=","&&","||","**","~=","|=","^=","$=","*=","?."].includes(i)?(r=i,Q(e),Q(e)):r=Q(e);let o=U.OPERATOR;V.has(r)?o=U.COMPARISON_OPERATOR:["&&","||"].includes(r)?o=U.LOGICAL_OPERATOR:Y.has(r)&&(o=U.OPERATOR),te(e,o,r,t)}function ue(e){const t=e.position,r=e.input,n=r.length;let i="";for(;n>e.position;){const t=r[e.position];if("0">t||t>"9")break;i+=Q(e)}if(n>e.position&&"."===r[e.position]&&(e.position+1>=n||"."!==r[e.position+1]))for(i+=Q(e);n>e.position;){const t=r[e.position];if("0">t||t>"9")break;i+=Q(e)}if(n>e.position){const t=r[e.position];if("e"===t||"E"===t){const t=n>e.position+1?r[e.position+1]:"",a=n>e.position+2?r[e.position+2]:"";if(t>="0"&&"9">=t||!("+"!==t&&"-"!==t||"0">a||a>"9"))for(i+=Q(e),"+"!==r[e.position]&&"-"!==r[e.position]||(i+=Q(e));n>e.position;){const t=r[e.position];if("0">t||t>"9")break;i+=Q(e)}}}const a=e.position;let o="";for(;n>e.position;){const t=r[e.position];if(("a">t||t>"z")&&("A">t||t>"Z"))break;o+=Q(e)}Z.has(o)?te(e,U.TIME_EXPRESSION,i+o,t):(e.position=a,te(e,U.NUMBER,i,t))}function pe(e){const t=e.position,r=e.input,n=r.length;let i="";for(;n>e.position;){const t=r[e.position];if(("a">t||t>"z")&&("A">t||t>"Z")&&("0">t||t>"9")&&"_"!==t&&"-"!==t)break;i+=Q(e)}const a=function(e,t,r){const n=t.toLowerCase(),i=e.position;if("'s"===t||"'s"===t)return!1;const a=e.tokens[e.tokens.length-1];if(a&&("identifier"===a.kind||"id_selector"===a.kind||"class_selector"===a.kind||"context_var"===a.kind)){const t=e.input.length>e.position?e.input[e.position]:"";if("'"===t||"'"===t)return!1}ee(e);let o="";for(;e.input.length>e.position;){const t=e.input[e.position];if(("a">t||t>"z")&&("A">t||t>"Z")&&("0">t||t>"9")&&"_"!==t&&"-"!==t)break;o+=Q(e)}if(o){const t=o.toLowerCase(),i=`${n} ${t}`,a=function(e,t,r,n){const i=t.toLowerCase(),a=r.toLowerCase();if("at"===i){const t=e.position;if("the"===a){ee(e);let r="";for(;e.input.length>e.position;){const t=e.input[e.position];if(("a">t||t>"z")&&("A">t||t>"Z")&&("0">t||t>"9")&&"_"!==t&&"-"!==t)break;r+=Q(e)}const i=r.toLowerCase();if("start"===i||"end"===i){ee(e);let t="";for(;e.input.length>e.position;){const r=e.input[e.position];if(("a">r||r>"z")&&("A">r||r>"Z")&&("0">r||r>"9")&&"_"!==r&&"-"!==r)break;t+=Q(e)}if("of"===t.toLowerCase()){return te(e,U.KEYWORD,`at the ${i} of`,n),!0}}return e.position=t,!1}if("start"===a||"end"===a){ee(e);let r="";for(;e.input.length>e.position;){const t=e.input[e.position];if(("a">t||t>"z")&&("A">t||t>"Z")&&("0">t||t>"9")&&"_"!==t&&"-"!==t)break;r+=Q(e)}if("of"===r.toLowerCase()){return te(e,U.KEYWORD,`at ${a} of`,n),!0}return e.position=t,!1}}return!1}(e,n,t,r);if(a)return!0;const s=function(e,t,r){const n=e.position;let i=`${t} ${r}`,a=e.position;const o=[t,r],s=8;for(;s>o.length&&(ee(e),e.input.length>e.position);){let t="";for(;e.input.length>e.position;){const r=e.input[e.position];if(("a">r||r>"z")&&("A">r||r>"Z"))break;t+=Q(e)}if(!t)break;o.push(t.toLowerCase());const r=o.join(" ");V.has(r)&&(i=r,a=e.position)}if(V.has(i)&&i!==`${t} ${r}`)return e.position=a,i;return e.position=n,null}(e,n,t);if(s)return te(e,U.COMPARISON_OPERATOR,s,r),!0;if(V.has(i))return te(e,U.COMPARISON_OPERATOR,i,r),!0}if(V.has(n))return e.position=i,te(e,U.COMPARISON_OPERATOR,t,r),!0;return e.position=i,!1}(e,i,t);if(a)return;const o=function(e){const t=e.toLowerCase();if("include"===t||"includes"===t)return U.COMPARISON_OPERATOR;if(D.has(t))return U.LOGICAL_OPERATOR;if(Y.has(e)||Y.has(t))return U.OPERATOR;if(V.has(t))return U.COMPARISON_OPERATOR;if("I"===e)return U.CONTEXT_VAR;if($.has(t))return U.CONTEXT_VAR;if(j.has(t))return U.COMMAND;if(H.has(t))return U.EVENT;if(["true","false","null","undefined"].includes(t))return U.BOOLEAN;if(G.has(t))return U.KEYWORD;return U.IDENTIFIER}(i);te(e,o,i,t)}function me(e){const t=e.position,r=e.input,n=r.length;Q(e);let i="$";for(;n>e.position;){const t=r[e.position];if(("a">t||t>"z")&&("A">t||t>"Z")&&("0">t||t>"9")&&"_"!==t)break;i+=Q(e)}te(e,U.GLOBAL_VAR,i,t)}function de(e){return/[a-zA-Z]/.test(e)}function he(e){return/[a-zA-Z0-9]/.test(e)}function fe(e){let t=e.position+1,r=!1;for(;e.input.length>t;){const n=e.input[t];if("/"===n&&e.input.length>t+1&&">"===e.input[t+1])return r;if(he(n)||"."===n||"#"===n||"["===n||"]"===n||":"===n||"-"===n||"_"===n||" "===n||"="===n||'"'===n||"'"===n||"("===n||")"===n||"*"===n||"^"===n||"$"===n||"~"===n||"|"===n||">"===n||"+"===n||","===n)r=!0,t++;else{if(" "!==n&&"\t"!==n)return!1;t++}if(t-e.position>50)return!1}return!1}function ye(e){return"+-*/^%=!<>&|(){}[],.;:?''~$".includes(e)}function ve(e){return e.kind===F.IDENTIFIER&&j.has(e.value.toLowerCase())}function ge(e){return e.kind===F.IDENTIFIER&&B.has(e.value.toLowerCase())}function ke(e){return e.kind===F.IDENTIFIER&&H.has(e.value.toLowerCase())}function be(e){return e.kind===F.IDENTIFIER&&$.has(e.value.toLowerCase())}function we(e){return(e.kind===F.OPERATOR||e.kind===F.IDENTIFIER)&&D.has(e.value.toLowerCase())}function ze(e){return V.has(e.value.toLowerCase())}function xe(e){return e.kind===F.IDENTIFIER}function Ee(e){return e.kind===F.SELECTOR}function Te(e){return e.kind===F.SELECTOR&&!e.value.startsWith("<")}function Se(e){return e.kind===F.STRING||e.kind===F.NUMBER||e.kind===F.TEMPLATE}function Ce(e){return e.kind===F.IDENTIFIER}function Ae(e){return e.kind===F.TIME}function Le(e){return e.kind===F.SYMBOL}function je(e){return e.kind===F.COMMENT}function Pe(e){if(e.kind!==F.IDENTIFIER)return!1;const t=e.value.toLowerCase();return!(j.has(t)||B.has(t)||H.has(t)||$.has(t))}function Ne(e){return e.kind===F.STRING}function Oe(e){return e.kind===F.NUMBER}function Ie(e){if(e.kind===F.IDENTIFIER){const t=e.value;return"true"===t||"false"===t||"null"===t||"undefined"===t}return!1}function Re(e){return e.kind===F.TEMPLATE}function Me(e){return e.kind===F.SELECTOR&&e.value.startsWith("<")}function We(e){return e.kind===F.SELECTOR&&e.value.startsWith("#")}function qe(e){return e.kind===F.SELECTOR&&e.value.startsWith(".")}function _e(e){return e.kind===F.SELECTOR&&(!e.value.startsWith("#")&&!e.value.startsWith("."))}function $e(e){if(e.kind!==F.OPERATOR)return!1;const t=e.value.toLowerCase();return!D.has(t)&&!V.has(t)}function De(e){return e.kind===F.OPERATOR&&"'s"===e.value}function Ve(e){return e.kind===F.OPERATOR&&"."===e.value}function He(e){return e.kind===F.OPERATOR&&"?."===e.value}function Be(e){return e.kind===F.OPERATOR&&"["===e.value}function Fe(e){return e.kind===F.OPERATOR&&"("===e.value}function Ue(e){const t=e.value.toLowerCase();return"then"===t||"and"===t||"else"===t||"end"===t||"on"===t}function Ke(e,t){if("number"==typeof e){if(!Number.isFinite(e))throw Error(`${t} must be a finite number, got ${e}`);return e}if("string"==typeof e){const r=e.trim();if(""===r)return 0;const n=parseFloat(r);if(isNaN(n))throw Error(`${t} cannot be converted to number: "${e}"`);return n}if("boolean"==typeof e)return e?1:0;if(null==e)return 0;if("object"==typeof e&&null!==e){if(Array.isArray(e)&&1===e.length){const r=e[0];if(Array.isArray(r))throw Error(t+" is a nested array, cannot convert to number");return Ke(r,t)}if("string"==typeof e.textContent||"value"in e){const t=e.value??e.textContent;if(null!=t){const e=(t+"").trim();if(""===e)return 0;const r=parseFloat(e);if(!isNaN(r))return r}}const r=e.valueOf();if("number"==typeof r&&Number.isFinite(r))return r}throw Error(`${t} cannot be converted to number: ${typeof e}`)}function Ge(e){if("number"==typeof e)return Number.isFinite(e)?e:null;if("string"==typeof e){const t=e.trim();if(""===t)return 0;const r=parseFloat(t);return isNaN(r)?null:r}return"boolean"==typeof e?e?1:0:null==e?0:null}function Ye(e,t){if(!Number.isFinite(e)){if(Number.isNaN(e))throw Error(t+" resulted in non-finite value: NaN");throw Error(`${t} resulted in non-finite value: ${e>0?"Infinity":"-Infinity"}`)}return e}function Ze(e){if("number"==typeof e)return Number.isFinite(e);if("string"==typeof e){const t=e.trim();return""!==t&&!isNaN(parseFloat(t))}return!1}function Xe(e,t,r){if("==="===r)return e===t;if("!=="===r)return e!==t;if(null==e||null==t)return function(e,t,r){const n=null==e,i=null==t;if(n&&i)switch(r){case"==":case">=":case"<=":return!0;default:return!1}switch(r){case"==":case">":case"<":case">=":case"<=":default:return!1;case"!=":return!0}}(e,t,r);const[n,i]=function(e,t){if("number"==typeof e&&"number"==typeof t)return[e,t];if("string"==typeof e&&"string"==typeof t){const r=parseFloat(e),n=parseFloat(t);return isNaN(r)||isNaN(n)?[e,t]:[r,n]}const r=Ge(e),n=Ge(t);if(null!==r&&null!==n)return[r,n];return[e+"",t+""]}(e,t);switch(r){case">":return n>i;case"<":return i>n;case">=":return n>=i;case"<=":return i>=n;case"==":return Je(e,t);case"!=":return!Je(e,t);default:return!1}}function Je(e,t){if(e===t)return!0;if(typeof e==typeof t)return("string"==typeof e||"number"==typeof e)&&e===t;if("number"==typeof e&&"string"==typeof t){const r=parseFloat(t);return!isNaN(r)&&e===r}if("string"==typeof e&&"number"==typeof t){const r=parseFloat(e);return!isNaN(r)&&r===t}return"boolean"==typeof e?Je(e?1:0,t):"boolean"==typeof t?Je(e,t?1:0):e+""==t+""}function Qe(e,t=[]){return{isValid:!1,errors:e,suggestions:t}}function et(e,t,r=[],n="error"){return{type:e,message:t,suggestions:r,severity:n}}const tt=new class{constructor(e={}){this.types=new Map,this.coercionCache=new Map,this.config={strictMode:!1,cacheCoercions:!0,...e},this.registerBuiltinTypes()}register(e){this.types.has(e.name),this.types.set(e.name,e)}get(e){return this.types.get(e)}has(e){return this.types.has(e)}getTypeNames(){return Array.from(this.types.keys())}inferType(e){for(const[t,r]of this.types)if(r.isType(e))return t;return"Unknown"}getHyperScriptType(e){const t=this.inferType(e),r=this.types.get(t);return r?.hyperscriptType??"unknown"}coerce(e,t,r){const n=this.types.get(t);if(!n){if(this.config.strictMode)throw Error("Unknown target type: "+t);return null}if(n.isType(e))return e;if(this.config.cacheCoercions){const r=`${this.inferType(e)}:${t}:${JSON.stringify(e)}`;if(this.coercionCache.has(r))return this.coercionCache.get(r)}const i=this.inferType(e),a=n.coerceFrom?.[i];if(a){const n=a(e,r);if(this.config.cacheCoercions&&null!==n){const r=`${i}:${t}:${JSON.stringify(e)}`;this.coercionCache.set(r,n)}return n}return n.defaultValue}canCoerce(e,t){const r=this.types.get(t);if(!r)return!1;if(r.isType(e))return!0;const n=this.inferType(e);return void 0!==r.coerceFrom?.[n]}getCoercionInfo(e,t){const r=this.types.get(t);return r&&(e===t||r.coerceFrom?.[e])?{possible:!0,direct:!0}:{possible:!1,direct:!1}}clearCache(){this.coercionCache.clear()}getStats(){return{typeCount:this.types.size,cacheSize:this.coercionCache.size,typeNames:this.getTypeNames()}}registerBuiltinTypes(){this.register({name:"String",hyperscriptType:"string",tsType:"string",isType:e=>"string"==typeof e,defaultValue:"",description:"Text string value",examples:["hello","world",""],coerceFrom:{Number:e=>e+"",Boolean:e=>e+"",Null:()=>"",Undefined:()=>"",Array:e=>Array.isArray(e)?e.join(", "):null,Object:e=>{try{return JSON.stringify(e)}catch{return e+""}},Element:e=>e instanceof Element?e.textContent??e.outerHTML:null}}),this.register({name:"Number",hyperscriptType:"number",tsType:"number",isType:e=>"number"==typeof e&&!isNaN(e),defaultValue:0,description:"Numeric value (integer or float)",examples:[0,1,3.14,-42],coerceFrom:{String:e=>{const t=parseFloat(e);return isNaN(t)?null:t},Boolean:e=>e?1:0,Null:()=>0,Undefined:()=>null}}),this.register({name:"Boolean",hyperscriptType:"boolean",tsType:"boolean",isType:e=>"boolean"==typeof e,defaultValue:!1,description:"True or false value",examples:[!0,!1],coerceFrom:{String:e=>{const t=e.toLowerCase().trim();return"true"===t||"yes"===t||"1"===t||"false"!==t&&"no"!==t&&"0"!==t&&""!==t&&t.length>0},Number:e=>0!==e,Null:()=>!1,Undefined:()=>!1,Array:e=>!!Array.isArray(e)&&e.length>0,Element:e=>e instanceof Element,ElementList:e=>Array.isArray(e)&&e.length>0}}),this.register({name:"Element",hyperscriptType:"element",tsType:"Element | HTMLElement",isType:e=>e instanceof Element,defaultValue:null,description:"DOM Element",coerceFrom:{String:(e,t)=>{const r=e;if(r.startsWith("#")||r.startsWith(".")||r.match(/^[\w-]+$/))try{return document.querySelector(r)}catch{return null}return null},ElementList:e=>Array.isArray(e)&&e.length>0?e[0]:null,NodeList:e=>e.length>0?e[0]:null}}),this.register({name:"ElementList",hyperscriptType:"element-list",tsType:"Element[]",isType:e=>Array.isArray(e)&&e.length>0&&e.every(e=>e instanceof Element),defaultValue:[],description:"Array of DOM Elements",coerceFrom:{Element:e=>e instanceof Element?[e]:[],NodeList:e=>Array.from(e),String:e=>{try{return Array.from(document.querySelectorAll(e))}catch{return[]}},Array:e=>{const t=e;return t.every(e=>e instanceof Element)?t:[]}}}),this.register({name:"Array",hyperscriptType:"array",tsType:"unknown[]",isType:e=>Array.isArray(e),defaultValue:[],description:"Array of values",coerceFrom:{String:e=>{const t=e;try{const e=JSON.parse(t);if(Array.isArray(e))return e}catch{}return t.split(",").map(e=>e.trim())},ElementList:e=>e,NodeList:e=>Array.from(e),Object:e=>Object.values(e)}}),this.register({name:"Object",hyperscriptType:"object",tsType:"Record<string, unknown>",isType:e=>!("object"!=typeof e||null===e||Array.isArray(e)||e instanceof Element),defaultValue:{},description:"Plain JavaScript object",coerceFrom:{String:e=>{try{const t=JSON.parse(e);if("object"==typeof t&&null!==t&&!Array.isArray(t))return t}catch{}return null},Array:e=>{const t={};return e.forEach((e,r)=>{t[r+""]=e}),t}}}),this.register({name:"Null",hyperscriptType:"null",tsType:"null",isType:e=>null===e,defaultValue:null,description:"Null value"}),this.register({name:"Undefined",hyperscriptType:"undefined",tsType:"undefined",isType:e=>void 0===e,defaultValue:void 0,description:"Undefined value"}),this.register({name:"Function",hyperscriptType:"function",tsType:"Function",isType:e=>"function"==typeof e,defaultValue:null,description:"JavaScript function"}),this.register({name:"Event",hyperscriptType:"event",tsType:"Event",isType:e=>e instanceof Event,defaultValue:null,description:"DOM Event"}),this.register({name:"NodeList",hyperscriptType:"element-list",tsType:"NodeList",isType:e=>e instanceof NodeList,defaultValue:null,description:"DOM NodeList (typically from querySelectorAll)",coerceFrom:{Array:e=>null}}),this.register({name:"Unknown",hyperscriptType:"unknown",tsType:"unknown",isType:e=>!0,defaultValue:null,description:"Unknown/any value type"})}};function rt(e){const t=tt.get("String");return t?t.isType(e):"string"==typeof e}function nt(e){const t=tt.get("Number");return t?t.isType(e):"number"==typeof e}function it(e){const t=tt.get("Boolean");return t?t.isType(e):"boolean"==typeof e}function at(e){const t=tt.get("Object");return t?t.isType(e):"object"==typeof e&&null!==e}function ot(e){const t=tt.get("Function");return t?t.isType(e):"function"==typeof e}function st(e,t,r,n,i,a=!0,o){return t&&"object"==typeof t&&"evaluationHistory"in t&&Array.isArray(t.evaluationHistory)&&t.evaluationHistory.push({expressionName:e.name,category:e.category,input:r,output:n,timestamp:i,duration:Date.now()-i,success:a,...void 0!==o&&{error:o}}),n}let lt=class{constructor(){this.name="addition",this.category="Special",this.syntax="left + right",this.outputType="number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=this.validate(t);if(!r.isValid)return{success:!1,errors:r.errors,suggestions:r.suggestions};try{const{left:e,right:r}=t,n=Ke(e,"left operand"),i=Ke(r,"right operand");return{success:!0,value:Ye(n+i,"addition"),type:"number"}}catch(e){return{success:!1,errors:[et("runtime-error","Addition failed: "+(e instanceof Error?e.message:e+""))],suggestions:["Ensure both operands are numeric"]}}}validate(e){const t=function(e){if(null==e)return Qe([et("missing-argument","Input is null or undefined")],["Provide an object with left and right operands"]);if("object"!=typeof e)return Qe([et("type-mismatch","Expected object, got "+typeof e)],["Provide an object with left and right operands"]);const t=e;if(!("left"in t)||!("right"in t)){const e=[];return"left"in t||e.push("left"),"right"in t||e.push("right"),Qe([et("missing-argument",`Missing ${e.join(" and ")} operand${e.length>1?"s":""}`)],["Provide { left: value, right: value }"])}return{isValid:!0,errors:[],suggestions:[]}}(e);if(!t.isValid)return t;const{left:r,right:n}=e;return Ze(r)||"boolean"==typeof r||null==r?Ze(n)||"boolean"==typeof n||null==n?{isValid:!0,errors:[],suggestions:[]}:{isValid:!1,errors:[et("type-mismatch","Right operand cannot be converted to number: "+(n+""))],suggestions:["Provide a numeric value for right operand"]}:{isValid:!1,errors:[et("type-mismatch","Left operand cannot be converted to number: "+(r+""))],suggestions:["Provide a numeric value for left operand"]}}};class ct{constructor(){this.name="subtraction",this.category="Special",this.syntax="left - right",this.outputType="number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=this.validate(t);if(!r.isValid)return{success:!1,errors:r.errors,suggestions:r.suggestions};try{const{left:e,right:r}=t,n=Ke(e,"left operand"),i=Ke(r,"right operand");return{success:!0,value:Ye(n-i,"subtraction"),type:"number"}}catch(e){return{success:!1,errors:[et("runtime-error","Subtraction failed: "+(e instanceof Error?e.message:e+""))],suggestions:["Ensure both operands are numeric"]}}}validate(e){return(new lt).validate(e)}}let ut=class{constructor(){this.name="multiplication",this.category="Special",this.syntax="left * right",this.outputType="number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=this.validate(t);if(!r.isValid)return{success:!1,errors:r.errors,suggestions:r.suggestions};try{const{left:e,right:r}=t,n=Ke(e,"left operand"),i=Ke(r,"right operand");return{success:!0,value:Ye(n*i,"multiplication"),type:"number"}}catch(e){return{success:!1,errors:[et("runtime-error","Multiplication failed: "+(e instanceof Error?e.message:e+""))],suggestions:["Ensure both operands are numeric"]}}}validate(e){return(new lt).validate(e)}};class pt{constructor(){this.name="division",this.category="Special",this.syntax="left / right",this.outputType="number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=this.validate(t);if(!r.isValid)return{success:!1,errors:r.errors,suggestions:r.suggestions};try{const{left:e,right:r}=t,n=Ke(e,"left operand"),i=function(e,t,r=!0){if(0===t){if(r)return 0===e?NaN:e>0?1/0:-1/0;throw Error("Division by zero")}return e/t}(n,Ke(r,"right operand"),!0);return{success:!0,value:i,type:"number"}}catch(e){return{success:!1,errors:[et("runtime-error","Division failed: "+(e instanceof Error?e.message:e+""))],suggestions:["Ensure both operands are numeric"]}}}validate(e){return(new lt).validate(e)}}class mt{constructor(){this.name="modulo",this.category="Special",this.syntax="left mod right",this.outputType="number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=this.validate(t);if(!r.isValid)return{success:!1,errors:r.errors,suggestions:r.suggestions};try{const{left:e,right:r}=t,n=Ke(e,"left operand"),i=function(e,t){if(0===t)throw Error("Modulo by zero");return e%t}(n,Ke(r,"right operand"));return{success:!0,value:i,type:"number"}}catch(e){return{success:!1,errors:[et("runtime-error","Modulo failed: "+(e instanceof Error?e.message:e+""))],suggestions:["Ensure both operands are numeric and divisor is not zero"]}}}validate(e){return(new lt).validate(e)}}const dt={subtraction:new ct,multiplication:new ut,division:new pt,modulo:new mt};class ht{trackPerformance(e,t,r,n){e.evaluationHistory&&e.evaluationHistory.push({expressionName:this.name,category:this.category,input:t,output:r.success?r.value:r.error,timestamp:n,duration:Date.now()-n,success:r.success})}trackSimple(e,t,r,n=(r?"success":"error")){e.evaluationHistory&&e.evaluationHistory.push({expressionName:this.name,category:this.category,input:"operation",output:n,timestamp:t,duration:Date.now()-t,success:r})}toBoolean(e){return!1!==e&&0!==e&&0n!==e&&""!==e&&null!=e&&(!nt(e)||!isNaN(e))}success(e,t){return{success:!0,value:e,type:t}}failure(e,t,r,n,i=[]){return{success:!1,error:{name:e,type:t,message:r,code:n,suggestions:i}}}validationSuccess(){return{isValid:!0,errors:[],suggestions:[]}}validationFailure(e,t,r=[]){return{isValid:!1,errors:[{type:e,message:t,suggestions:r}],suggestions:r}}isElement(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&1===e.nodeType&&"tagName"in e&&"string"==typeof e.tagName}inferType(e){return null===e?"null":void 0===e?"undefined":this.isElement(e)?"element":Array.isArray(e)?"array":at(e)?"object":typeof e}inferEvaluationType(e){return void 0===e?"Undefined":null===e?"Null":rt(e)?"String":nt(e)?"Number":it(e)?"Boolean":Array.isArray(e)?"Array":this.isElement(e)?"Element":"Object"}normalizeCollection(e){return Array.isArray(e)?e:e instanceof NodeList?Array.from(e):rt(e)?e.split(""):null==e?[]:at(e)&&Symbol.iterator in e?Array.from(e):[]}toNumber(e){if(nt(e)&&Number.isFinite(e))return e;if(rt(e)){const t=Number(e);return Number.isFinite(t)?t:null}return it(e)?e?1:0:null}}function ft(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&1===e.nodeType&&"style"in e}function yt(e){return e instanceof Element}const vt=new Set(["disabled","readonly","required","checked","selected","hidden","open","autofocus","autoplay","controls","loop","muted","multiple","reversed","defer","async","novalidate","formnovalidate","ismap"]);function gt(e,t){return vt.has(t.toLowerCase())?e.hasAttribute(t):e.getAttribute(t)}const kt={id:e=>e.id,classname:e=>e.className,class:e=>e.className,tagname:e=>e.tagName.toLowerCase(),innertext:e=>e.textContent?.trim(),innerHTML:e=>e.innerHTML,outerhtml:e=>e.outerHTML,value:e=>function(e){if(null===e||"object"!=typeof e||!("tagName"in e))return!1;const t=e.tagName;return"INPUT"===t||"SELECT"===t||"TEXTAREA"===t}(e)?e.value:void 0,checked:e=>function(e){return null!==e&&"object"==typeof e&&"tagName"in e&&"INPUT"===e.tagName}(e)?e.checked:void 0,disabled:e=>"disabled"in e?e.disabled:void 0,selected:e=>function(e){return null!=e&&"object"==typeof e&&"tagName"in e&&"OPTION"===e.tagName}(e)?e.selected:void 0,tabindex:e=>ft(e)?e.tabIndex:void 0,hidden:e=>ft(e)?e.hidden:void 0,style:e=>getComputedStyle(e),children:e=>Array.from(e.children),parent:e=>e.parentElement,firstchild:e=>e.firstElementChild,lastchild:e=>e.lastElementChild,nextsibling:e=>e.nextElementSibling,previoussibling:e=>e.previousElementSibling,values:e=>function(e){if(e instanceof HTMLFormElement)return new FormData(e);const t=new FormData;return e.querySelectorAll("input, select, textarea").forEach(e=>{const r=e.getAttribute("name");r&&"value"in e&&t.append(r,e.value)}),t}(e)};function bt(e,t){if(t.startsWith("computed-")){const r=t.slice(9);if(function(e){return e instanceof HTMLElement}(e)){return getComputedStyle(e).getPropertyValue(r)}return}if(t.startsWith("@")){return gt(e,t.slice(1))}const r=kt[t.toLowerCase()];if(r)return r(e);if(function(e,t){return e.hasAttribute(t)}(e,t))return gt(e,t);const n=e[t];return ot(n)?n.bind(e):n}const wt=e.object({property:e.string().describe("Property name to access")}).strict(),zt=e.object({target:e.unknown().describe("Target object to access property from"),property:e.string().describe("Property name to access")}).strict(),xt=e.object({element:e.unknown().describe("DOM element to access attribute from"),attribute:e.string().describe("Attribute name to access")}).strict();function Et(e,t){if(null==e)return;if(!t.includes("."))return yt(e)?bt(e,t):e[t];const r=t.split(".");let n=e;for(const e of r){if(null==n)return;n=yt(n)?bt(n,e):n[e]}return n}class Tt extends ht{constructor(){super(...arguments),this.name="my",this.category="Property",this.syntax="my property",this.description="Accesses properties of the current context element (me) with validation",this.inputSchema=wt,this.outputType="Any",this.metadata={category:"Property",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);if(!n.isValid)return{success:!1,error:n.errors[0]};if(!e.me)return{success:!1,error:{type:"context-error",message:"No current element (me) available in context for property access",suggestions:["Ensure this expression is used within an element context","Check that the element reference is properly set"]}};const i=Et(e.me,t.property);this.trackSimple(e,r,!0,i);return{success:!0,value:i,type:void 0===i?"unknown":this.inferType(i)}}catch(t){return this.trackSimple(e,r,!1),{success:!1,error:{type:"runtime-error",message:"Property access failed: "+(t instanceof Error?t.message:t+""),suggestions:["Check that the property name is valid","Ensure the current element supports the requested property"]}}}}validate(e){try{const t=this.inputSchema.safeParse(e);if(!t.success)return this.validationFailure("type-mismatch",t.error?.errors.map(e=>e.message).join(", ")||"Invalid property access input",["Provide a valid property name as a string","Ensure the property name is not empty"]);const{property:r}=t.data;return""===r.trim()?this.validationFailure("validation-error","Property name cannot be empty",["Provide a non-empty property name"]):this.validationSuccess()}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}}class St extends ht{constructor(){super(...arguments),this.name="its",this.category="Property",this.syntax="target its property",this.description="Generic possessive property access with comprehensive validation",this.inputSchema=zt,this.outputType="Any",this.metadata={category:"Property",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);if(!n.isValid)return{success:!1,error:n.errors[0]};const i=Et(t.target,t.property);this.trackSimple(e,r,!0,i);return{success:!0,value:i,type:void 0===i?"unknown":this.inferType(i)}}catch(t){return this.trackSimple(e,r,!1),{success:!1,error:{type:"runtime-error",message:"Property access failed: "+(t instanceof Error?t.message:t+""),suggestions:["Check that the target object is not null or undefined","Ensure the property name is valid"]}}}}validate(e){try{const t=this.inputSchema.safeParse(e);if(!t.success)return this.validationFailure("type-mismatch",t.error?.errors.map(e=>e.message).join(", ")||"Invalid possessive access input",["Provide both target and property parameters","Ensure property name is a string"]);const{property:r}=t.data;return""===r.trim()?this.validationFailure("validation-error","Property name cannot be empty",["Provide a non-empty property name"]):this.validationSuccess()}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}}class Ct extends ht{constructor(){super(...arguments),this.name="attribute",this.category="Property",this.syntax="@attribute or element@attribute",this.description="Accesses HTML attributes with comprehensive DOM validation",this.inputSchema=xt,this.outputType="String",this.metadata={category:"Property",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);if(!n.isValid)return{success:!1,error:n.errors[0]};if(!this.isElement(t.element))return{success:!1,error:{type:"type-mismatch",message:"Target must be a DOM element for attribute access",suggestions:["Ensure the target is a valid DOM element","Check that the element reference is correct"]}};const i=t.element.getAttribute(t.attribute);return this.trackSimple(e,r,!0,i),{success:!0,value:i,type:null===i?"null":"string"}}catch(t){return this.trackSimple(e,r,!1),{success:!1,error:{type:"runtime-error",message:"Attribute access failed: "+(t instanceof Error?t.message:t+""),suggestions:["Check that the element supports getAttribute","Ensure the attribute name is valid"]}}}}validate(e){try{const t=this.inputSchema.safeParse(e);if(!t.success)return this.validationFailure("type-mismatch",t.error?.errors.map(e=>e.message).join(", ")||"Invalid attribute access input",["Provide both element and attribute parameters","Ensure attribute name is a string"]);const{attribute:r}=t.data;return""===r.trim()?this.validationFailure("validation-error","Attribute name cannot be empty",["Provide a non-empty attribute name"]):this.validationSuccess()}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}}const At={my:new Tt,its:new St,attribute:new Ct},Lt={1:"one",2:"two",3:"three",4:"four",5:"five"};function jt(e,t,r,n){if(e.length!==t){const e=n?` (${n})`:"";return`${r} requires exactly ${i=t,Lt[i]??i+""} argument${1===t?"":"s"}${e}`}var i;return null}function Pt(e,t,r,n){if("string"!=typeof e[t]){return`${r} ${n||"argument "+(t+1)} must be a string`}return null}function Nt(e,t,r){return jt(e,1,t,r)??Pt(e,0,t,r)}function Ot(e,t){return jt(e,2,t,"left, right")}function It(){return null}function Rt(e,t,r,n){if(e.length>t){return`${r} expression takes at most ${1===t?"one":t+""} argument${1===t?"":"s"}${n?` (${n})`:""}`}return null}function Mt(e,t,r,n,i){if(t>e.length||e.length>r){return`${n} requires ${t}-${r} arguments${i?` (${i})`:""}`}return null}const Wt={String:"string",Number:"number",Boolean:"boolean",Element:"element",ElementList:"element-list",Array:"array",Object:"object",Promise:"promise",Context:"object",Null:"null",Undefined:"undefined",Any:"object"},qt=e.object({collection:e.unknown().describe("Collection to operate on (array, NodeList, or string)")}).strict(),_t=e.object({collection:e.unknown().describe("Collection to access"),index:e.number().describe("Index position to access")}).strict(),$t=e.object({collection:e.unknown().describe("Collection to select random item from")}).strict();class Dt extends ht{constructor(){super(...arguments),this.name="first",this.category="Positional",this.syntax="first in collection",this.description="Gets the first element from a collection",this.inputSchema=qt,this.outputType="Any",this.metadata={category:"Positional",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);if(!n.isValid)return{success:!1,error:n.errors[0]};const i=this.normalizeCollection(t.collection),a=i.length>0?i[0]:void 0,o={success:!0,value:a,type:Wt[this.inferEvaluationType(a)]};return this.trackPerformance(e,t,o,r),o}catch(n){const i=this.failure("FirstExpressionError","runtime-error","First operation failed: "+(n instanceof Error?n.message:n+""),"FIRST_OPERATION_FAILED");return this.trackPerformance(e,t,i,r),i}}validate(e){try{const t=this.inputSchema.safeParse(e);return t.success?this.validationSuccess():{isValid:!1,errors:t.error?.errors.map(e=>({type:"type-mismatch",message:"Invalid first input: "+e.message,suggestions:[]}))??[],suggestions:["Provide a collection parameter","Ensure collection is array, NodeList, or string"]}}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}}class Vt extends ht{constructor(){super(...arguments),this.name="last",this.category="Positional",this.syntax="last in collection",this.description="Gets the last element from a collection",this.inputSchema=qt,this.outputType="Any",this.metadata={category:"Positional",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);if(!n.isValid)return{success:!1,error:n.errors[0]};const i=this.normalizeCollection(t.collection),a=i.length>0?i[i.length-1]:void 0,o={success:!0,value:a,type:Wt[this.inferEvaluationType(a)]};return this.trackPerformance(e,t,o,r),o}catch(n){const i=this.failure("LastExpressionError","runtime-error","Last operation failed: "+(n instanceof Error?n.message:n+""),"LAST_OPERATION_FAILED");return this.trackPerformance(e,t,i,r),i}}validate(e){try{const t=this.inputSchema.safeParse(e);return t.success?this.validationSuccess():{isValid:!1,errors:t.error?.errors.map(e=>({type:"type-mismatch",message:"Invalid last input: "+e.message,suggestions:[]}))??[],suggestions:["Provide a collection parameter","Ensure collection is array, NodeList, or string"]}}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}}class Ht extends ht{constructor(){super(...arguments),this.name="at",this.category="Positional",this.syntax="collection[index] or collection at index",this.description="Gets element at specific index from a collection",this.inputSchema=_t,this.outputType="Any",this.metadata={category:"Positional",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);if(!n.isValid)return{success:!1,error:n.errors[0]};const i=this.normalizeCollection(t.collection),a=this.normalizeIndex(t.index,i.length),o=a>=0&&i.length>a?i[a]:void 0,s={success:!0,value:o,type:Wt[this.inferEvaluationType(o)]};return this.trackPerformance(e,t,s,r),s}catch(n){const i=this.failure("AtExpressionError","runtime-error","At operation failed: "+(n instanceof Error?n.message:n+""),"AT_OPERATION_FAILED");return this.trackPerformance(e,t,i,r),i}}validate(e){try{const t=this.inputSchema.safeParse(e);return t.success?this.validationSuccess():{isValid:!1,errors:t.error?.errors.map(e=>({type:"type-mismatch",message:"Invalid at input: "+e.message,suggestions:[]}))??[],suggestions:["Provide collection and index parameters","Ensure index is a number"]}}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}normalizeIndex(e,t){return 0>e?t+e:e}}class Bt extends ht{constructor(){super(...arguments),this.name="random",this.category="Positional",this.syntax="random in collection",this.description="Gets a random element from a collection",this.inputSchema=$t,this.outputType="Any",this.metadata={category:"Positional",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);if(!n.isValid)return{success:!1,error:n.errors[0]};const i=this.normalizeCollection(t.collection);if(0===i.length){const n={success:!0,value:void 0,type:"undefined"};return this.trackPerformance(e,t,n,r),n}const a=i[this.getSecureRandomIndex(i.length)],o={success:!0,value:a,type:Wt[this.inferEvaluationType(a)]};return this.trackPerformance(e,t,o,r),o}catch(n){const i=this.failure("RandomExpressionError","runtime-error","Random operation failed: "+(n instanceof Error?n.message:n+""),"RANDOM_OPERATION_FAILED");return this.trackPerformance(e,t,i,r),i}}validate(e){try{const t=this.inputSchema.safeParse(e);return t.success?this.validationSuccess():{isValid:!1,errors:t.error?.errors.map(e=>({type:"type-mismatch",message:"Invalid random input: "+e.message,suggestions:[]}))??[],suggestions:["Provide a collection parameter","Ensure collection is array, NodeList, or string"]}}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}getSecureRandomIndex(e){if("undefined"!=typeof crypto&&crypto.getRandomValues){const t=new Uint32Array(1);return crypto.getRandomValues(t),t[0]%e}return Math.floor(Math.random()*e)}}new Dt,new Vt,new Ht,new Bt;const Ft={name:"first",category:"Reference",evaluatesTo:"Any",operators:["first"],async evaluate(e,t){const r=void 0!==t?t:e.it;if(null==r)return null;if(Array.isArray(r))return r.length>0?r[0]:null;if(r instanceof NodeList||r instanceof HTMLCollection)return r.length>0?r[0]:null;if(r instanceof Element)return r.children.length>0?r.children[0]:null;if(rt(r)){return r.length>0?r[0]:null}if(at(r)&&"length"in r&&nt(r.length)){return r.length>0?r[0]:null}return null},validate:e=>Rt(e,1,"first","collection")},Ut={name:"last",category:"Reference",evaluatesTo:"Any",operators:["last"],async evaluate(e,t){const r=void 0!==t?t:e.it;if(null==r)return null;if(Array.isArray(r))return r.length>0?r[r.length-1]:null;if(r instanceof NodeList||r instanceof HTMLCollection)return r.length>0?r[r.length-1]:null;if(r instanceof Element){const e=r.children;return e.length>0?e[e.length-1]:null}if(rt(r)){return r.length>0?r[r.length-1]:null}if(at(r)&&"length"in r&&nt(r.length)){return r.length>0?r[r.length-1]:null}return null},validate:e=>Rt(e,1,"last","collection")},Kt={name:"at",category:"Reference",evaluatesTo:"Any",operators:["at"],async evaluate(e,...t){const[r,n]=t;if(!nt(r))throw Error("Index must be a number");const i=r,a=void 0!==n?n:e.it;if(null==a)return null;if(Array.isArray(a)){const e=0>i?a.length+i:i;return e>=0&&a.length>e?a[e]:null}if(a instanceof NodeList||a instanceof HTMLCollection){const e=0>i?a.length+i:i;return e>=0&&a.length>e?a[e]:null}if(a instanceof Element){const e=a.children,t=0>i?e.length+i:i;return t>=0&&e.length>t?e[t]:null}if(rt(a)){const e=0>i?a.length+i:i;return e>=0&&a.length>e?a[e]:null}if(at(a)&&"length"in a&&nt(a.length)){const e=0>i?a.length+i:i;return e>=0&&a.length>e?a[e]:null}return null},validate:e=>Mt(e,1,2,"at","index, optional collection")??function(e,t,r,n){if("number"!=typeof e[t])return`${r} ${n} must be a number`;return null}(e,0,"at","index")};function Gt(e,t){let r=e.nextElementSibling;for(;r;){if(r.matches(t))return r;const e=r.querySelector(t);if(e)return e;r=r.nextElementSibling}const n=e.parentElement;return n&&n!==document.documentElement?Gt(n,t):null}function Yt(e,t){let r=e.previousElementSibling;for(;r;){const e=Array.from(r.querySelectorAll(t)).reverse();if(e.length>0)return e[0];if(r.matches(t))return r;r=r.previousElementSibling}const n=e.parentElement;return n&&n!==document.documentElement?Yt(n,t):null}function Zt(e){let t=0,r=e;for(;r&&r.parentElement;){t+=Array.from(r.parentElement.children).indexOf(r),r=r.parentElement,t+=1e3}return t}const Xt={first:Ft,last:Ut,at:Kt,next:{name:"next",category:"Reference",evaluatesTo:"Element",operators:["next"],async evaluate(e,...t){const[r,n]=t,i=n||e.me;return i&&i instanceof Element?r?Gt(i,r):i.nextElementSibling:null},validate(e){const t=Rt(e,2,"next","optional selector, optional fromElement");return t||(1>e.length||null==e[0]||"string"==typeof e[0]?2>e.length||null==e[1]||e[1]instanceof Element?null:"fromElement must be an Element":"selector must be a string")}},previous:{name:"previous",category:"Reference",evaluatesTo:"Element",operators:["previous","prev"],async evaluate(e,...t){const[r,n]=t,i=n||e.me;return i&&i instanceof Element?r?Yt(i,r):i.previousElementSibling:null},validate(e){const t=Rt(e,2,"previous","optional selector, optional fromElement");return t||(1>e.length||null==e[0]||"string"==typeof e[0]?2>e.length||null==e[1]||e[1]instanceof Element?null:"fromElement must be an Element":"selector must be a string")}},nextWithin:{name:"nextWithin",category:"Reference",evaluatesTo:"Element",operators:["next within"],async evaluate(e,...t){const[r,n,i]=t,a=i||e.me;if(!(a&&a instanceof Element))return null;const o=a.closest(n);return o?function(e,t,r){const n=Array.from(r.querySelectorAll(t)),i=Zt(e);for(const e of n){if(Zt(e)>i)return e}return null}(a,r,o):null},validate(e){const t=Mt(e,2,3,"nextWithin","selector, withinSelector, optional fromElement");return t||("string"!=typeof e[0]?"selector must be a string":"string"!=typeof e[1]?"withinSelector must be a string":3>e.length||null==e[2]||e[2]instanceof Element?null:"fromElement must be an Element")}},previousWithin:{name:"previousWithin",category:"Reference",evaluatesTo:"Element",operators:["previous within"],async evaluate(e,...t){const[r,n,i]=t,a=i||e.me;if(!(a&&a instanceof Element))return null;const o=a.closest(n);return o?function(e,t,r){const n=Array.from(r.querySelectorAll(t)),i=Zt(e);for(let e=n.length-1;e>=0;e--){const t=n[e];if(i>Zt(t))return t}return null}(a,r,o):null},validate(e){const t=Mt(e,2,3,"previousWithin","selector, withinSelector, optional fromElement");return t||("string"!=typeof e[0]?"selector must be a string":"string"!=typeof e[1]?"withinSelector must be a string":3>e.length||null==e[2]||e[2]instanceof Element?null:"fromElement must be an Element")}}};class Jt{constructor(e=100,t=5e3){this.maxSize=e,this.ttl=t,this.cache=new Map,this.accessOrder=new Map,this.accessCounter=0}get(e){const t=this.cache.get(e);if(t){if(Date.now()-t.timestamp<=this.ttl)return t.accessCount++,this.accessOrder.set(e,++this.accessCounter),t.result;this.delete(e)}}set(e,t){this.maxSize>this.cache.size||this.cache.has(e)||this.evictLRU();const r={result:t,timestamp:Date.now(),accessCount:1};this.cache.set(e,r),this.accessOrder.set(e,++this.accessCounter)}delete(e){return this.accessOrder.delete(e),this.cache.delete(e)}clear(){this.cache.clear(),this.accessOrder.clear(),this.accessCounter=0}size(){return this.cache.size}evictLRU(){let e,t=1/0;for(const[r,n]of this.accessOrder)t>n&&(t=n,e=r);void 0!==e&&this.delete(e)}getStats(){const e=Array.from(this.cache.values()),t=Date.now();return{size:this.cache.size,maxSize:this.maxSize,hitRate:e.length>0?e.filter(e=>e.accessCount>1).length/e.length:0,avgAge:e.length>0?e.reduce((e,r)=>e+(t-r.timestamp),0)/e.length:0,totalAccesses:e.reduce((e,t)=>e+t.accessCount,0)}}}const Qt=new class{constructor(){this.domQueryCache=new Jt(200,3e3),this.exprResultCache=new Jt(500,2e3),this.cssMatchCache=new Jt(100,5e3),this.formValueCache=new Jt(50,1e3),this.hits=0,this.misses=0}querySelector(e){const t="querySelector:"+e,r=this.domQueryCache.get(t);if(void 0!==r)return this.hits++,r;this.misses++;const n=document.querySelector(e);return this.domQueryCache.set(t,n),n}querySelectorAll(e){const t="querySelectorAll:"+e,r=this.domQueryCache.get(t);if(void 0!==r)return this.hits++,r;this.misses++;const n=Array.from(document.querySelectorAll(e));return this.domQueryCache.set(t,n),n}getElementById(e){const t="getElementById:"+e,r=this.domQueryCache.get(t);if(void 0!==r)return this.hits++,r;this.misses++;const n=document.getElementById(e);return this.domQueryCache.set(t,n),n}getElementsByClassName(e){const t="getElementsByClassName:"+e,r=this.domQueryCache.get(t);if(void 0!==r)return this.hits++,r;this.misses++;const n=Array.from(document.getElementsByClassName(e));return this.domQueryCache.set(t,n),n}matches(e,t){const r=`matches:${this.getElementCacheKey(e)}:${t}`,n=this.cssMatchCache.get(r);if(void 0!==n)return this.hits++,n;this.misses++;const i=e.matches(t);return this.cssMatchCache.set(r,i),i}getExpressionResult(e){const t=this.exprResultCache.get(e);if(void 0!==t)return this.hits++,t;this.misses++}setExpressionResult(e,t){this.exprResultCache.set(e,t)}getFormValue(e){const t=this.getElementCacheKey(e),r=this.formValueCache.get("formValue:"+t);if(void 0!==r)return this.hits++,r;this.misses++}setFormValue(e,t){const r=this.getElementCacheKey(e);this.formValueCache.set("formValue:"+r,t)}invalidateElementCache(e){const t=this.getElementCacheKey(e);for(const e of[this.domQueryCache,this.cssMatchCache,this.formValueCache])for(const r of Array.from(e.cache.keys()))"string"==typeof r&&r.includes(t)&&e.delete(r)}invalidateAll(){this.domQueryCache.clear(),this.exprResultCache.clear(),this.cssMatchCache.clear(),this.formValueCache.clear(),this.hits=0,this.misses=0}getElementCacheKey(e){if(e.id)return"#"+e.id;const t=Array.from(e.classList).sort().join("."),r=this.getElementPosition(e);return`${e.tagName.toLowerCase()}${t?"."+t:""}@${r}`}getElementPosition(e){return""+Array.from(e.parentElement?.children||[]).indexOf(e)}getPerformanceStats(){const e=this.hits+this.misses;return{hits:this.hits,misses:this.misses,hitRate:Math.round(100*(e>0?this.hits/e*100:0))/100,domQueryCache:this.domQueryCache.getStats(),exprResultCache:this.exprResultCache.getStats(),cssMatchCache:this.cssMatchCache.getStats(),formValueCache:this.formValueCache.getStats()}}cleanup(){const e=Date.now();[this.domQueryCache,this.exprResultCache,this.cssMatchCache,this.formValueCache].forEach(t=>{Array.from(t.cache.entries()).forEach(([r,n])=>{e-n.timestamp>t.ttl&&t.delete(r)})})}};"undefined"!=typeof window&&setInterval(()=>{Qt.cleanup()},1e4);const er=new class{constructor(){this.metrics={tokenizationTime:0,evaluationTime:0,cacheHitRate:0,memoryUsage:0,domOperations:0},this.startTimes=new Map}startTimer(e){this.startTimes.set(e,performance.now())}endTimer(e){const t=this.startTimes.get(e);if(t){const r=performance.now()-t;return this.startTimes.delete(e),r}return 0}recordTokenization(e){this.metrics.tokenizationTime+=e}recordEvaluation(e){this.metrics.evaluationTime+=e}updateCacheMetrics(){const e=Qt.getPerformanceStats();this.metrics.cacheHitRate=e.hitRate}getMetrics(){return this.updateCacheMetrics(),{...this.metrics}}reset(){this.metrics={tokenizationTime:0,evaluationTime:0,cacheHitRate:0,memoryUsage:0,domOperations:0}}};function tr(){Qt.cleanup();er.getMetrics().memoryUsage>52428800&&er.reset()}let rr=null;"undefined"!=typeof window&&function(e=3e4){rr&&clearInterval(rr),rr=setInterval(tr,e)}();const nr=e.object({left:e.unknown().describe("Left operand value"),right:e.unknown().describe("Right operand value")}).strict(),ir=e.object({operand:e.unknown().describe("Operand value to negate")}).strict();class ar extends ht{constructor(){super(...arguments),this.name="and",this.category="Logical",this.syntax="left and right",this.description="Logical AND operation with comprehensive boolean type coercion",this.inputSchema=nr,this.outputType="Boolean",this.metadata={category:"Logical",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);if(!n.isValid)return{success:!1,error:n.errors[0]};const i=this.toBoolean(t.left);if(!i)return this.trackSimple(e,r,!0,"boolean"),this.success(!1,"boolean");const a=this.toBoolean(t.right),o=i&&a;return this.trackSimple(e,r,!0,"boolean"),this.success(o,"boolean")}catch(t){return this.trackSimple(e,r,!1),this.failure("AndExpressionError","runtime-error","Logical AND operation failed: "+(t instanceof Error?t.message:t+""),"AND_EVALUATION_FAILED")}}validate(e){try{const t=this.inputSchema.safeParse(e);return t.success?this.validationSuccess():{isValid:!1,errors:t.error?.errors.map(e=>({type:"type-mismatch",message:"Invalid AND operation input: "+e.message,suggestions:[]}))??[],suggestions:["Provide both left and right operands","Ensure operands are valid values"]}}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}}class or extends ht{constructor(){super(...arguments),this.name="or",this.category="Logical",this.syntax="left or right",this.description="Logical OR operation with comprehensive boolean type coercion",this.inputSchema=nr,this.outputType="Boolean",this.metadata={category:"Logical",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);if(!n.isValid)return{success:!1,error:n.errors[0]};const i=this.toBoolean(t.left);if(i)return this.trackSimple(e,r,!0,"boolean"),this.success(!0,"boolean");const a=this.toBoolean(t.right),o=i||a;return this.trackSimple(e,r,!0,"boolean"),this.success(o,"boolean")}catch(t){return this.trackSimple(e,r,!1),this.failure("OrExpressionError","runtime-error","Logical OR operation failed: "+(t instanceof Error?t.message:t+""),"OR_EVALUATION_FAILED")}}validate(e){try{const t=this.inputSchema.safeParse(e);return t.success?this.validationSuccess():{isValid:!1,errors:t.error?.errors.map(e=>({type:"type-mismatch",message:"Invalid OR operation input: "+e.message,suggestions:[]}))??[],suggestions:["Provide both left and right operands","Ensure operands are valid values"]}}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}}class sr extends ht{constructor(){super(...arguments),this.name="not",this.category="Logical",this.syntax="not operand",this.description="Logical NOT operation with comprehensive boolean type coercion",this.inputSchema=ir,this.outputType="Boolean",this.metadata={category:"Logical",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);if(!n.isValid)return{success:!1,error:n.errors[0]};const i=!this.toBoolean(t.operand);return this.trackSimple(e,r,!0,"boolean"),this.success(i,"boolean")}catch(t){return this.trackSimple(e,r,!1),this.failure("NotExpressionError","runtime-error","Logical NOT operation failed: "+(t instanceof Error?t.message:t+""),"NOT_EVALUATION_FAILED")}}validate(e){try{const t=this.inputSchema.safeParse(e);return t.success?this.validationSuccess():{isValid:!1,errors:t.error?.errors.map(e=>({type:"type-mismatch",message:"Invalid NOT operation input: "+e.message,suggestions:[]}))??[],suggestions:["Provide a single operand","Ensure operand is a valid value"]}}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}}function lr(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&1===e.nodeType}new ar,new or,new sr;const cr=e.tuple([e.unknown(),e.unknown()]),ur=e.tuple([e.unknown(),e.string()]),pr={name:"equals",category:"Comparison",evaluatesTo:"Boolean",precedence:10,associativity:"Left",operators:["is","==","equals"],async evaluate(e,t,r){const n=Date.now();try{return st(this,e,[t,r],t==r,n)}catch(i){throw st(this,e,[t,r],!1,n,!1,i instanceof Error?i:Error(i+"")),i}},validate:e=>Ot(e,"equals"),inputSchema:cr,metadata:{category:"Logical",complexity:"simple",sideEffects:[],dependencies:[],returnTypes:["Boolean"],examples:[{input:"value is 5",description:"Check if value equals 5 using loose equality",expectedOutput:!0,context:{result:5}},{input:'"5" == 5',description:'String "5" equals number 5 with type coercion',expectedOutput:!0}],relatedExpressions:["strictEquals","notEquals"],performance:{averageTime:.001,complexity:"O(1)"}},documentation:{summary:"Compares two values for loose equality, allowing type coercion",parameters:[{name:"left",type:"unknown",description:"Left operand for comparison",optional:!1,examples:["5",'"hello"',"true","null"]},{name:"right",type:"unknown",description:"Right operand for comparison",optional:!1,examples:["5",'"hello"',"true","null"]}],returns:{type:"Boolean",description:"True if values are loosely equal, false otherwise",examples:["true","false"]},examples:[{title:"Basic equality check",code:"if my.value is 10",explanation:"Check if element value equals 10",output:"Boolean result"},{title:"Type coercion",code:'if "5" == 5',explanation:'String "5" equals number 5 with automatic type conversion',output:"true"},{title:"Null checks",code:"if value is null",explanation:"Check if value is null or undefined",output:"Boolean result"}],seeAlso:["strictEquals","notEquals","matches"],tags:["comparison","equality","logic","type-coercion"]}},mr={name:"strictEquals",category:"Comparison",evaluatesTo:"Boolean",precedence:10,associativity:"Left",operators:["==="],async evaluate(e,t,r){const n=e.evaluationHistory,i=n?Date.now():0,a=t===r;return n&&st(this,e,[t,r],a,i),a},validate:e=>Ot(e,"strictEquals")},dr={name:"notEquals",category:"Comparison",evaluatesTo:"Boolean",precedence:10,associativity:"Left",operators:["!=","is not","does not equal"],async evaluate(e,t,r){const n=e.evaluationHistory,i=n?Date.now():0,a=t!=r;return n&&st(this,e,[t,r],a,i),a},validate:e=>Ot(e,"notEquals")},hr={name:"strictNotEquals",category:"Comparison",evaluatesTo:"Boolean",precedence:10,associativity:"Left",operators:["!=="],async evaluate(e,t,r){const n=e.evaluationHistory,i=n?Date.now():0,a=t!==r;return n&&st(this,e,[t,r],a,i),a},validate:e=>Ot(e,"strictNotEquals")},fr={name:"lessThan",category:"Comparison",evaluatesTo:"Boolean",precedence:12,associativity:"Left",operators:["<","is less than"],async evaluate(e,t,r){const n=e.evaluationHistory,i=n?Date.now():0,a=Xe(t,r,"<");return n&&st(this,e,[t,r],a,i),a},validate:e=>Ot(e,"lessThan")},yr={name:"lessThanOrEqual",category:"Comparison",evaluatesTo:"Boolean",precedence:12,associativity:"Left",operators:["<=","is less than or equal to"],async evaluate(e,t,r){const n=e.evaluationHistory,i=n?Date.now():0,a=Xe(t,r,"<=");return n&&st(this,e,[t,r],a,i),a},validate:e=>Ot(e,"lessThanOrEqual")},vr={name:"greaterThan",category:"Comparison",evaluatesTo:"Boolean",precedence:12,associativity:"Left",operators:[">","is greater than"],async evaluate(e,t,r){const n=e.evaluationHistory,i=n?Date.now():0,a=Xe(t,r,">");return n&&st(this,e,[t,r],a,i),a},validate:e=>Ot(e,"greaterThan")},gr={name:"greaterThanOrEqual",category:"Comparison",evaluatesTo:"Boolean",precedence:12,associativity:"Left",operators:[">=","is greater than or equal to"],async evaluate(e,t,r){const n=e.evaluationHistory,i=n?Date.now():0,a=Xe(t,r,">=");return n&&st(this,e,[t,r],a,i),a},validate:e=>Ot(e,"greaterThanOrEqual")},kr={name:"and",category:"Logical",evaluatesTo:"Boolean",precedence:6,associativity:"Left",operators:["and","&&"],async evaluate(e,t,r){const n=Date.now();try{return st(this,e,[t,r],t&&r,n)}catch(i){throw st(this,e,[t,r],!1,n,!1,i instanceof Error?i:Error(i+"")),i}},validate:e=>Ot(e,"and"),inputSchema:cr,metadata:{category:"Logical",complexity:"simple",sideEffects:[],dependencies:[],returnTypes:["Boolean"],examples:[{input:"true and false",description:"Logical AND of boolean values",expectedOutput:!1},{input:"name and age",description:"Both name and age must be truthy",expectedOutput:!0,context:{variables:new Map([["name","John"],["age",25]])}}],relatedExpressions:["or","not"],performance:{averageTime:.001,complexity:"O(1)"}},documentation:{summary:"Logical AND operation that returns true only if both operands are truthy",parameters:[{name:"left",type:"unknown",description:"Left operand (evaluated for truthiness)",optional:!1,examples:["true","name","5",'"hello"']},{name:"right",type:"unknown",description:"Right operand (evaluated for truthiness)",optional:!1,examples:["false","age","0",'""']}],returns:{type:"Boolean",description:"True if both operands are truthy, false otherwise",examples:["true","false"]},examples:[{title:"Form validation",code:"if name and email",explanation:"Check if both name and email have values",output:"Boolean result"},{title:"Multiple conditions",code:"if age > 18 and hasLicense",explanation:"Combine multiple conditions",output:"Boolean result"},{title:"Short-circuit evaluation",code:"if element and element.value",explanation:"Check element exists before accessing properties",output:"Boolean result"}],seeAlso:["or","not","exists"],tags:["logic","boolean","conditions","validation"]}},br={name:"or",category:"Logical",evaluatesTo:"Boolean",precedence:5,associativity:"Left",operators:["or","||"],async evaluate(e,t,r){const n=e.evaluationHistory,i=n?Date.now():0,a=t||r;return n&&st(this,e,[t,r],a,i),a},validate:e=>Ot(e,"or")},wr={name:"not",category:"Logical",evaluatesTo:"Boolean",precedence:15,associativity:"Right",operators:["not","!"],async evaluate(e,t){const r=e.evaluationHistory,n=r?Date.now():0,i=!t;return r&&st(this,e,[t],i,n),i},validate:e=>jt(e,1,"not","operand")},zr={name:"isEmpty",category:"Logical",evaluatesTo:"Boolean",operators:["is empty","isEmpty"],async evaluate(e,t){const r=e.evaluationHistory,n=r?Date.now():0;let i;return i=null==t||(rt(t)||Array.isArray(t)||t instanceof NodeList?0===t.length:!(t instanceof Node||t instanceof Element)&&(!!at(t)&&0===Object.keys(t).length)),r&&st(this,e,[t],i,n),i},validate:e=>jt(e,1,"isEmpty","value")},xr={name:"no",category:"Logical",evaluatesTo:"Boolean",operators:["no"],async evaluate(e,t){const r=e.evaluationHistory,n=r?Date.now():0;let i;return i=null==t||(!1===t||(Array.isArray(t)||t instanceof NodeList?0===t.length:!rt(t)&&(!(t instanceof Node||t instanceof Element)&&(!!at(t)&&0===Object.keys(t).length)))),r&&st(this,e,[t],i,n),i},validate:e=>jt(e,1,"no","value")},Er={name:"isNotEmpty",category:"Logical",evaluatesTo:"Boolean",operators:["is not empty","isNotEmpty"],async evaluate(e,t){const r=e.evaluationHistory,n=r?Date.now():0,i=!await zr.evaluate(e,t);return r&&st(this,e,[t],i,n),i},validate:e=>jt(e,1,"isNotEmpty","value")},Tr={name:"exists",category:"Logical",evaluatesTo:"Boolean",operators:["exists"],async evaluate(e,t){const r=e.evaluationHistory,n=r?Date.now():0,i=null!=t;return r&&st(this,e,[t],i,n),i},validate:e=>jt(e,1,"exists","value")},Sr={name:"doesNotExist",category:"Logical",evaluatesTo:"Boolean",operators:["does not exist","doesNotExist"],async evaluate(e,t){const r=e.evaluationHistory,n=r?Date.now():0,i=null==t;return r&&st(this,e,[t],i,n),i},validate:e=>jt(e,1,"doesNotExist","value")},Cr={name:"contains",category:"Logical",evaluatesTo:"Boolean",operators:["contains","includes","include"],async evaluate(e,t,r){const n=e.evaluationHistory,i=n?Date.now():0;let a;if(t&&r){if(lr(t)&&lr(r))return a=t.contains(r),n&&st(this,e,[t,r],a,i),a;if(rt(t)&&t.match(/^[.#][\w-]+$/)){const o=document.querySelector(t);if(o&&lr(r))return a=o.contains(r),n&&st(this,e,[t,r],a,i),a;if(o&&rt(r)&&r.match(/^[.#][\w-]+$/)){const s=document.querySelector(r);return a=!!s&&o.contains(s),n&&st(this,e,[t,r],a,i),a}}if(rt(r)&&r.match(/^[.#][\w-]+$/)&&lr(t)){const o=document.querySelector(r);return a=!!o&&t.contains(o),n&&st(this,e,[t,r],a,i),a}}return a=rt(t)&&rt(r)||Array.isArray(t)?t.includes(r):"undefined"!=typeof NodeList&&t instanceof NodeList?Array.from(t).includes(r):!(!at(t)||!rt(r))&&r in t,n&&st(this,e,[t,r],a,i),a},validate:e=>jt(e,2,"contains","container, value")},Ar={name:"doesNotContain",category:"Logical",evaluatesTo:"Boolean",operators:["does not contain","doesNotContain","does not include","doesNotInclude"],async evaluate(e,t,r){const n=e.evaluationHistory,i=n?Date.now():0,a=!await Cr.evaluate(e,t,r);return n&&st(this,e,[t,r],a,i),a},validate:e=>jt(e,2,"doesNotContain","container, value")},Lr={name:"startsWith",category:"Logical",evaluatesTo:"Boolean",operators:["starts with","startsWith"],async evaluate(e,t,r){const n=e.evaluationHistory,i=n?Date.now():0,a=!(!rt(t)||!rt(r))&&t.startsWith(r);return n&&st(this,e,[t,r],a,i),a},validate:e=>jt(e,2,"startsWith","str, prefix")},jr={name:"endsWith",category:"Logical",evaluatesTo:"Boolean",operators:["ends with","endsWith"],async evaluate(e,t,r){const n=e.evaluationHistory,i=n?Date.now():0,a=!(!rt(t)||!rt(r))&&t.endsWith(r);return n&&st(this,e,[t,r],a,i),a},validate:e=>jt(e,2,"endsWith","str, suffix")},Pr={name:"matches",category:"Logical",evaluatesTo:"Boolean",operators:["matches"],async evaluate(e,t,r){const n=Date.now();try{let i;if(t instanceof Element&&rt(r)){const e=r;if(e.startsWith(".")||e.startsWith("#")||e.startsWith(":")||e.startsWith("[")||/^[a-zA-Z][\w-]*$/.test(e))try{i=function(e,t){return Qt.matches(e,t)}(t,e)}catch(e){i=!1}else i=!1}else if(rt(t)&&rt(r)){const e=t,n=r;try{i=(n.startsWith("/")&&n.endsWith("/")?RegExp(n.slice(1,-1)):RegExp(n)).test(e)}catch(t){i=e.includes(n)}}else i=!1;return st(this,e,[t,r],i,n)}catch(i){throw st(this,e,[t,r],!1,n,!1,i instanceof Error?i:Error(i+"")),i}},validate:e=>jt(e,2,"matches","element, selector"),inputSchema:ur,metadata:{category:"Logical",complexity:"medium",sideEffects:["dom-query"],dependencies:[],returnTypes:["Boolean"],examples:[{input:'element matches ".active"',description:"Check if element has active class",expectedOutput:!0},{input:'text matches "/^hello/"',description:'Check if text starts with "hello" using regex',expectedOutput:!0,context:{variables:new Map([["text","hello world"]])}}],relatedExpressions:["contains","startsWith","endsWith"],performance:{averageTime:.5,complexity:"O(n)"}},documentation:{summary:"Tests if element matches CSS selector or string matches regex pattern",parameters:[{name:"element",type:"Element | string",description:"DOM element or string to test",optional:!1,examples:["<div>",'"hello world"',"me","target"]},{name:"selector",type:"string",description:"CSS selector or regex pattern to match against",optional:!1,examples:['".active"','"#navbar"','"/^hello/"','"\\\\d+"']}],returns:{type:"Boolean",description:"True if element matches selector/pattern",examples:["true","false"]},examples:[{title:"CSS class matching",code:'if me matches ".active"',explanation:'Check if current element has "active" class',output:"Boolean result"},{title:"Attribute matching",code:'if target matches "[data-role=\\"button\\"]"',explanation:"Check if element has specific data attribute",output:"Boolean result"},{title:"Regex pattern matching",code:'if email matches "/^[^@]+@[^@]+\\\\.[^@]+$/"',explanation:"Validate email format with regex",output:"Boolean result"},{title:"Complex CSS selector",code:'if element matches ".card:hover .button"',explanation:"Match complex CSS selector with pseudo-classes",output:"Boolean result"}],seeAlso:["contains","startsWith","endsWith","querySelector"],tags:["pattern","css","regex","validation","dom"]}},Nr={name:"has",category:"Logical",evaluatesTo:"Boolean",operators:["has","have"],async evaluate(e,t,r){const n=e.evaluationHistory,i=n?Date.now():0;let a=!1;if(t instanceof Element&&rt(r)){const e=r;e.startsWith(".")?a=t.classList.contains(e.slice(1)):e.startsWith("[")&&e.endsWith("]")&&(a=t.hasAttribute(e.slice(1,-1)))}return n&&st(this,e,[t,r],a,i),a},validate:e=>jt(e,2,"has","element, selector")},Or={name:"doesNotHave",category:"Logical",evaluatesTo:"Boolean",operators:["does not have"],async evaluate(e,t,r){const n=e.evaluationHistory,i=n?Date.now():0,a=!await Nr.evaluate(e,t,r);return n&&st(this,e,[t,r],a,i),a},validate:e=>jt(e,2,"doesNotHave","element, selector")},Ir={equals:pr,strictEquals:mr,notEquals:dr,strictNotEquals:hr,lessThan:fr,lessThanOrEqual:yr,greaterThan:vr,greaterThanOrEqual:gr,and:kr,or:br,not:wr,no:xr,isEmpty:zr,isNotEmpty:Er,exists:Tr,doesNotExist:Sr,contains:Cr,doesNotContain:Ar,startsWith:Lr,endsWith:jr,matches:Pr,has:Nr,doesNotHave:Or};const Rr=e.object({selector:e.string().min(1),single:e.boolean().optional().default(!1)});new class extends ht{constructor(){super(...arguments),this.name="me",this.category="Reference",this.syntax="me",this.description="References the current element in the execution context",this.inputSchema=e.undefined(),this.outputType="Element",this.metadata={category:"Reference",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=e.me,i=this.isElement(n)?n:null,a=this.success(i,"element");return this.trackPerformance(e,t,a,r),a}catch(n){const i=this.failure("MeExpressionError","runtime-error",n instanceof Error?n.message:'Failed to evaluate "me"',"ME_EVALUATION_FAILED",["Ensure element context is properly set",'Check if "me" is available in current scope']);return this.trackPerformance(e,t,i,r),i}}validate(e){return void 0!==e?this.validationFailure("type-mismatch",'"me" expression takes no arguments',['Use "me" without any parameters']):this.validationSuccess()}},new class extends ht{constructor(){super(...arguments),this.name="you",this.category="Reference",this.syntax="you",this.description="References the target element (usually event target or command target)",this.inputSchema=e.undefined(),this.outputType="Element",this.metadata={category:"Reference",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=e.you,i=this.isElement(n)?n:null,a=this.success(i,"element");return this.trackPerformance(e,t,a,r),a}catch(n){const i=this.failure("YouExpressionError","runtime-error",n instanceof Error?n.message:'Failed to evaluate "you"',"YOU_EVALUATION_FAILED",["Ensure target element is available in context",'Check if "you" is set by event or command']);return this.trackPerformance(e,t,i,r),i}}validate(e){return void 0!==e?this.validationFailure("type-mismatch",'"you" expression takes no arguments',['Use "you" without any parameters']):this.validationSuccess()}},new class extends ht{constructor(){super(...arguments),this.name="it",this.category="Reference",this.syntax="it",this.description="References the current context variable (result of previous operation or loop item)",this.inputSchema=e.undefined(),this.outputType="Any",this.metadata={category:"Reference",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=e.it,i={success:!0,value:n,type:this.inferType(n)};return this.trackPerformance(e,t,i,r),i}catch(n){const i=this.failure("ItExpressionError","runtime-error",n instanceof Error?n.message:'Failed to evaluate "it"',"IT_EVALUATION_FAILED",['Ensure "it" is set by previous operation',"Check if context variable is available"]);return this.trackPerformance(e,t,i,r),i}}validate(e){return void 0!==e?this.validationFailure("type-mismatch",'"it" expression takes no arguments',['Use "it" without any parameters']):this.validationSuccess()}},new class extends ht{constructor(){super(...arguments),this.name="css-selector",this.category="Reference",this.syntax="<selector/> or <selector/> (single)",this.description="Queries DOM elements using CSS selectors with validation",this.inputSchema=Rr,this.outputType="ElementList",this.metadata={category:"Reference",complexity:"medium"}}async evaluate(e,t){const r=Date.now();try{if(!this.isValidCSSSelector(t.selector)){const n=this.failure("CSSSelectorError","invalid-argument",`Invalid CSS selector: "${t.selector}"`,"INVALID_CSS_SELECTOR",["Check selector syntax","Use valid CSS selector patterns like .class, #id, tag[attr]","Avoid special characters that need escaping"]);return this.trackPerformance(e,t,n,r),n}let n;if(t.single){n=document.querySelector(t.selector)}else{const e=Array.from(document.querySelectorAll(t.selector));n=e.length>0?e:null}const i={success:!0,value:n,type:Array.isArray(n)?"element-list":"element"};return this.trackPerformance(e,t,i,r),i}catch(n){const i=this.failure("CSSSelectorError","runtime-error",n instanceof Error?n.message:"CSS selector evaluation failed","CSS_SELECTOR_EVALUATION_FAILED",["Check if selector is valid CSS","Ensure DOM is ready when query executes","Verify elements exist in document"]);return this.trackPerformance(e,t,i,r),i}}validate(e){try{const t=this.inputSchema.safeParse(e);if(!t.success)return{isValid:!1,errors:t.error?.errors.map(e=>({type:"type-mismatch",message:"Invalid input: "+e.message,suggestions:this.getValidationSuggestion(e.code??"unknown")}))??[],suggestions:["Provide valid CSS selector string","Check selector syntax"]};const{selector:r}=t.data;return this.isValidCSSSelector(r)?this.validationSuccess():this.validationFailure("syntax-error",`Invalid CSS selector syntax: "${r}"`,["Use .class for class selectors","Use #id for ID selectors","Use tag for element selectors","Use [attr] for attribute selectors"])}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Ensure input matches expected format"])}}isValidCSSSelector(e){try{return document.querySelector(e),!0}catch{return!1}}getValidationSuggestion(e){return[{too_small:"CSS selector cannot be empty",invalid_type:"Selector must be a string",required:"CSS selector is required"}[e]||"Check input format and types"]}};const Mr={me:{name:"me",category:"Reference",evaluatesTo:"Element",evaluate:async e=>e.me instanceof HTMLElement?e.me:null,validate:It},you:{name:"you",category:"Reference",evaluatesTo:"Element",evaluate:async e=>e.you instanceof HTMLElement?e.you:null,validate:It},it:{name:"it",category:"Reference",evaluatesTo:"Any",evaluate:async e=>e.it,validate:It},its:{name:"its",category:"Reference",evaluatesTo:"Any",evaluate:async e=>e.it,validate:It},result:{name:"result",category:"Reference",evaluatesTo:"Any",evaluate:async e=>e.result,validate:It},querySelector:{name:"querySelector",category:"Reference",evaluatesTo:"Element",async evaluate(e,...t){const[r]=t;if("string"!=typeof r)throw Error("querySelector requires a string selector");return document.querySelector(r)},validate:e=>Nt(e,"querySelector","selector")},querySelectorAll:{name:"querySelectorAll",category:"Reference",evaluatesTo:"Array",async evaluate(e,...t){const r=t[0];if("string"!=typeof r)throw Error("querySelectorAll requires a string selector");const n=document.querySelectorAll(r);return Array.from(n)},validate:e=>Nt(e,"querySelectorAll","selector")},getElementById:{name:"getElementById",category:"Reference",evaluatesTo:"Element",async evaluate(e,...t){const r=t[0];if("string"!=typeof r)throw Error("getElementById requires a string ID");return document.getElementById(r)},validate:e=>Nt(e,"getElementById","ID")},getElementsByClassName:{name:"getElementsByClassName",category:"Reference",evaluatesTo:"Array",async evaluate(e,...t){const r=t[0];if("string"!=typeof r)throw Error("getElementsByClassName requires a string class name");const n=document.getElementsByClassName(r);return Array.from(n)},validate:e=>Nt(e,"getElementsByClassName","className")},closest:{name:"closest",category:"Reference",evaluatesTo:"Element",async evaluate(e,...t){let r=t[0];if(r&&"object"==typeof r&&"type"in r){const e=r;"identifier"===e.type&&e.name?r=e.name:"literal"===e.type&&"string"==typeof e.value&&(r=e.value)}if("string"!=typeof r)throw Error("closest requires a string selector");return e.me?e.me.closest(r):null},validate(e){if(1!==e.length)return"closest requires exactly 1 argument (selector)";const t=e[0];if("string"==typeof t)return null;if(t&&"object"==typeof t&&"type"in t){if("identifier"===t.type||"literal"===t.type)return null}return"closest selector must be a string or identifier"}},parent:{name:"parent",category:"Reference",evaluatesTo:"Element",evaluate:async e=>e.me?e.me.parentElement:null,validate:It},window:{name:"window",category:"Reference",evaluatesTo:"Object",evaluate:async e=>window,validate:It},document:{name:"document",category:"Reference",evaluatesTo:"Object",evaluate:async e=>document,validate:It},elementWithSelector:{name:"elementWithSelector",category:"Reference",evaluatesTo:"Array",async evaluate(e,...t){const r=t[0];if("string"!=typeof r)throw Error("Selector must be a string");const n=document.querySelectorAll(r);return Array.from(n)},validate:e=>Nt(e,"elementWithSelector","selector")},styleRef:{name:"styleRef",category:"Reference",evaluatesTo:"String",async evaluate(e,...t){const r=t[0],n=t[1];if("string"!=typeof r)throw Error("StyleRef requires a string property name");const i=n||e.me;if(!(i&&i instanceof HTMLElement))return;if(r.startsWith("computed-")){const e=r.substring(9);return getComputedStyle(i).getPropertyValue(e)||""}return i.style.getPropertyValue(r)||void 0},validate:e=>Mt(e,1,2,"styleRef","property, optional element")??Pt(e,0,"styleRef","property")??(2===e.length&&e[1]&&"object"!=typeof e[1]?"styleRef element must be an HTMLElement":null)},possessiveStyleRef:{name:"possessiveStyleRef",category:"Reference",evaluatesTo:"String",async evaluate(e,...t){const r=t[0],n=t[1];if("string"!=typeof r||"string"!=typeof n)throw Error("Possessive styleRef requires possessor and property strings");let i=null;if("my"===r&&e.me?i=e.me instanceof HTMLElement?e.me:null:"its"===r&&e.it&&(i=e.it instanceof HTMLElement?e.it:null),!i)return;if(n.startsWith("computed-")){const e=n.substring(9);return getComputedStyle(i).getPropertyValue(e)||""}return i.style.getPropertyValue(n)||void 0},validate:e=>jt(e,2,"possessiveStyleRef","possessor, property")??Pt(e,0,"possessiveStyleRef","possessor")??Pt(e,1,"possessiveStyleRef","property")},ofStyleRef:{name:"ofStyleRef",category:"Reference",evaluatesTo:"String",async evaluate(e,...t){const r=t[0],n=t[1];if("string"!=typeof r||"string"!=typeof n)throw Error("Of styleRef requires property and reference strings");let i=null;if("me"===n&&e.me?i=e.me instanceof HTMLElement?e.me:null:"it"===n&&e.it&&(i=e.it instanceof HTMLElement?e.it:null),!i)return;if(r.startsWith("computed-")){const e=r.substring(9);return getComputedStyle(i).getPropertyValue(e)||""}return i.style.getPropertyValue(r)||void 0},validate:e=>jt(e,2,"ofStyleRef","property, reference")??Pt(e,0,"ofStyleRef","property")??Pt(e,1,"ofStyleRef","reference")}};function Wr(e,t,r,n,i="runtime-error"){return{success:!1,error:{name:e+"ConversionError",type:i,message:r,code:t,suggestions:n}}}function qr(e,t){return{success:!0,value:e,type:t}}function _r(e,t){return`${e}: ${t instanceof Error?t.message:t+""}`}const $r={Array:(e,t)=>{try{return Array.isArray(e)?qr(e,"array"):e instanceof NodeList?qr(Array.from(e),"array"):qr(null==e?[]:[e],"array")}catch(e){return Wr("Array","ARRAY_CONVERSION_FAILED",_r("Failed to convert value to Array",e),["Check if value is iterable","Ensure value is not circular reference"])}},String:(e,t)=>{try{return null==e?qr("","string"):rt(e)?qr(e,"string"):at(e)?qr(JSON.stringify(e),"string"):qr(e+"","string")}catch(e){return Wr("String","STRING_CONVERSION_FAILED",_r("Failed to convert value to String",e),["Check if object has circular references","Ensure value is serializable"])}},Boolean:(e,t)=>{try{if(it(e))return qr(e,"boolean");if(null==e)return qr(!1,"boolean");if(rt(e)){const t=e.toLowerCase().trim();return qr("false"!==t&&"0"!==t&&""!==t,"boolean")}return nt(e)?qr(0!==e&&!isNaN(e),"boolean"):qr(!!e,"boolean")}catch(e){return Wr("Boolean","BOOLEAN_CONVERSION_FAILED",_r("Failed to convert value to Boolean",e),["Use explicit true/false values","Check for unexpected data types"])}},Number:(e,t)=>{try{if(nt(e))return qr(e,"number");if(null==e)return qr(0,"number");const t=Number(e);return isNaN(t)?Wr("Number","INVALID_NUMBER",`Cannot convert "${e}" to a valid number`,["Check if value contains non-numeric characters","Use a valid numeric format"],"invalid-argument"):qr(t,"number")}catch(e){return Wr("Number","NUMBER_CONVERSION_FAILED",_r("Failed to convert value to Number",e),["Ensure value is convertible to number","Check for special characters"])}},Int:(e,t)=>{const r=$r.Number(e,t);return r.success?qr(Math.trunc(r.value),"number"):r},Float:(e,t)=>{const r=$r.Number(e,t);return r.success?qr(parseFloat(""+r.value),"number"):r},Date:(e,t)=>{try{if(e instanceof Date)return qr(e,"object");if(null==e)return qr(new Date(""),"object");if(rt(e)&&/^\d{4}-\d{2}-\d{2}$/.test(e)){const[t,r,n]=e.split("-").map(Number);return qr(new Date(t,r-1,n),"object")}const t=new Date(e);return isNaN(t.getTime())?Wr("Date","INVALID_DATE",`Cannot convert "${e}" to a valid date`,["Use ISO 8601 format (YYYY-MM-DD)","Check date string format","Ensure date values are valid"],"invalid-argument"):qr(t,"object")}catch(e){return Wr("Date","DATE_CONVERSION_FAILED",_r("Failed to convert value to Date",e),["Check date format","Ensure value is a valid date string or timestamp"])}},JSON:(e,t)=>{try{return qr(JSON.stringify(e),"string")}catch(e){return Wr("JSON","JSON_STRINGIFY_FAILED",_r("Failed to convert value to JSON",e),["Check for circular references","Ensure all properties are serializable","Remove functions and undefined values"])}},Object:(e,t)=>{try{if(at(e))return qr(e,"object");if(rt(e))try{return qr(JSON.parse(e),"object")}catch(e){return Wr("Object","JSON_PARSE_FAILED",_r("Cannot parse JSON string",e),["Check JSON syntax","Ensure proper escaping of quotes","Validate JSON format"],"syntax-error")}return qr({},"object")}catch(e){return Wr("Object","OBJECT_CONVERSION_FAILED",_r("Failed to convert value to Object",e),["Ensure value is valid JSON string or object","Check for syntax errors"])}},Values:(e,t)=>{try{if(e instanceof HTMLFormElement)return qr(Br(e),"object");if(e instanceof HTMLElement){const t=e.querySelectorAll("input, select, textarea"),r={};return t.forEach(e=>{const t=e;if(t.name){const e=Fr(t);void 0!==e&&(r[t.name]=e)}}),qr(r,"object")}return qr({},"object")}catch(e){return Wr("FormValues","FORM_VALUES_EXTRACTION_FAILED",_r("Failed to extract form values",e),["Ensure element is a form or contains form inputs","Check form structure","Verify input names are set"])}}},Dr=e.object({value:e.any(),type:e.string().min(1)});const Vr=e.object({value:e.any(),type:e.string().min(1)});new class extends ht{constructor(){super(...arguments),this.name="as",this.category="Conversion",this.syntax="value as Type",this.description='Converts values between different types using the "as" keyword',this.outputType="Any",this.inputSchema=Dr,this.metadata={category:"Conversion",complexity:"medium",sideEffects:[],dependencies:[],returnTypes:["Any"],examples:[{input:'"123" as Int',description:"Convert string to integer",expectedOutput:123},{input:"form as Values",description:"Extract form values as object",expectedOutput:{name:"John",age:"25"}},{input:"[1,2,3] as JSON",description:"Convert array to JSON string",expectedOutput:"[1,2,3]"},{input:'"2023-12-25" as Date',description:"Parse date string",expectedOutput:new Date(2023,11,25)}],relatedExpressions:["is","Object","Array"],performance:{averageTime:1,complexity:"O(n)"}},this.documentation={summary:'Converts values between different types using the "as" keyword with comprehensive type safety',parameters:[{name:"value",type:"object",description:"The value to convert",optional:!1,examples:['"123"',"form","[1,2,3]","true","null"]},{name:"type",type:"string",description:"Target conversion type",optional:!1,examples:["Int","String","Boolean","Array","JSON","Object","Date","Values","HTML","Fragment"]}],returns:{type:"object",description:"Structured result with converted value or detailed error information",examples:['{ success: true, value: 123, type: "number" }',"{ success: false, error: { ... } }"]},examples:[{title:"String to number conversion",code:"if my.value as Int > 100",explanation:"Convert form input to integer for comparison",output:"Boolean result"},{title:"Form data extraction",code:"put closest <form /> as Values into result",explanation:"Extract all form values as structured object",output:'{ name: "John", age: "25", ... }'},{title:"Array to JSON serialization",code:"put items as JSON into storage",explanation:"Convert array to JSON string for storage",output:'"[1,2,3]"'},{title:"Date parsing with validation",code:"put my.dateInput as Date into event.detail.date",explanation:"Parse date input with automatic validation",output:"Date object or validation error"},{title:"Boolean conversion with smart parsing",code:'if "false" as Boolean then hide else show',explanation:"Parse string boolean values correctly",output:"false (not true like naive conversion)"}],seeAlso:["is","Values","JSON","Array","Object"],tags:["conversion","types","validation","forms","json","parsing"]}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);if(!n.isValid)return{success:!1,error:{name:"AsExpressionValidationError",type:"validation-error",message:n.errors[0]?.message||"Invalid input",code:"VALIDATION_FAILED",suggestions:n.suggestions}};const{value:i,type:a}=t;if(a.startsWith("Fixed")){const n=a.match(/^Fixed:(\d+)$/),o=n?parseInt(n[1],10):2,s=$r.Number(i,e);if(!s.success)return s;const l={success:!0,value:s.value.toFixed(o),type:"string"};return this.trackPerformance(e,t,l,r),l}let o=$r[a];if(o){const n=o(i,e);return this.trackPerformance(e,t,n,r),n}const s=a.toLowerCase(),l={boolean:"Boolean",bool:"Boolean",string:"String",str:"String",number:"Number",num:"Number",int:"Int",integer:"Int",float:"Float",array:"Array",object:"Object",obj:"Object",date:"Date",json:"JSON"}[s];if(l&&(o=$r[l],o)){const n=o(i,e);return this.trackPerformance(e,t,n,r),n}const c={success:!1,error:{name:"UnknownConversionTypeError",type:"validation-error",message:"Unknown conversion type: "+a,code:"UNKNOWN_CONVERSION_TYPE",suggestions:["Use supported types: String, Number, Boolean, Array, Object, Date, JSON, Values","Check type spelling and capitalization","See documentation for complete list of conversion types"]}};return this.trackPerformance(e,t,c,r),c}catch(n){const i={success:!1,error:{name:"AsExpressionError",type:"runtime-error",message:"Conversion failed: "+(n instanceof Error?n.message:n+""),code:"CONVERSION_FAILED",suggestions:["Check value and type compatibility","Ensure value is convertible to target type"]}};return this.trackPerformance(e,t,i,r),i}}validate(e){try{const t=this.inputSchema.safeParse(e);return t.success?{isValid:!0,errors:[],suggestions:[]}:{isValid:!1,errors:t.error?.errors.map(e=>({type:"type-mismatch",message:e.message,suggestions:["Expected valid input structure, got: "+e.code]}))??[],suggestions:["Provide both value and type parameters","Ensure type is a non-empty string","Check parameter structure: { value: any, type: string }"]}}catch(e){return this.validationFailure("runtime-error","Validation failed",["Check input structure"])}}},new class extends ht{constructor(){super(...arguments),this.name="is",this.category="Conversion",this.syntax="value is Type",this.description="Checks if a value is of a specific type",this.outputType="Boolean",this.inputSchema=Vr,this.metadata={category:"Conversion",complexity:"simple",sideEffects:[],dependencies:[],returnTypes:["Boolean"],examples:[{input:"42 is number",description:"Check if value is a number",expectedOutput:!0},{input:"null is empty",description:"Check if value is empty/null",expectedOutput:!0},{input:"element is Element",description:"Check if value is DOM element",expectedOutput:!0,context:{element:"<div>...</div>"}}],relatedExpressions:["as","empty","exists"],performance:{averageTime:.1,complexity:"O(1)"}},this.documentation={summary:"Checks if a value is of a specific type with comprehensive type detection",parameters:[{name:"value",type:"object",description:"The value to check",optional:!1,examples:["42","null","element",'"text"',"[]"]},{name:"type",type:"string",description:"Type name to check against",optional:!1,examples:["number","string","boolean","array","object","element","empty","null"]}],returns:{type:"object",description:"Boolean result indicating type match",examples:['{ success: true, value: true, type: "boolean" }']},examples:[{title:"Number validation",code:"if my.age is number then proceed",explanation:"Check if form input is valid number",output:"Boolean result"},{title:"Empty check",code:"if result is empty then show message",explanation:"Check if result is null, undefined, or empty",output:"Boolean result"},{title:"Element validation",code:"if target is element then addClass",explanation:"Ensure target is valid DOM element before manipulation",output:"Boolean result"}],seeAlso:["as","empty","exists","null"],tags:["validation","types","checking","guards"]}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);if(!n.isValid)return{success:!1,error:{name:"IsExpressionValidationError",type:"validation-error",message:n.errors[0]?.message||"Invalid input",code:"VALIDATION_FAILED",suggestions:n.suggestions}};const{value:i,type:a}=t,o=a.toLowerCase();let s;switch(o){case"null":s=null===i;break;case"undefined":s=void 0===i;break;case"string":s=rt(i);break;case"number":s=nt(i)&&!isNaN(i);break;case"boolean":s=it(i);break;case"object":s=at(i);break;case"array":s=Array.isArray(i);break;case"function":s=ot(i);break;case"date":s=i instanceof Date;break;case"element":s=i instanceof Element;break;case"node":s=i instanceof Node;break;case"node-list":s=i instanceof NodeList;break;case"empty":s=null==i||""===i||Array.isArray(i)&&0===i.length||at(i)&&0===Object.keys(i).length;break;default:s=i?.constructor?.name?.toLowerCase()===o}const l=this.success(s,"boolean");return this.trackPerformance(e,t,l,r),l}catch(n){const i=this.failure("IsExpressionError","type-mismatch","Type check failed: "+(n instanceof Error?n.message:n+""),"TYPE_CHECK_FAILED",["Check type name spelling","Ensure value is accessible"]);return this.trackPerformance(e,t,i,r),i}}validate(e){try{const t=this.inputSchema.safeParse(e);return t.success?this.validationSuccess():{isValid:!1,errors:t.error?.errors.map(e=>({type:"type-mismatch",message:e.message,suggestions:["Expected valid input structure, got: "+e.code]}))??[],suggestions:["Provide both value and type parameters","Ensure type is a non-empty string","Check parameter structure: { value: any, type: string }"]}}catch(e){return this.validationFailure("runtime-error","Validation failed",["Check input structure"])}}};const Hr={Array:e=>Array.isArray(e)?e:e instanceof NodeList?Array.from(e):null==e?[]:[e],String:e=>null==e?"":rt(e)?e:at(e)?JSON.stringify(e):e+"",Boolean:e=>{if(it(e))return e;if(null==e)return!1;if(rt(e)){const t=e.toLowerCase().trim();return"false"!==t&&"0"!==t&&""!==t}return nt(e)?0!==e&&!isNaN(e):!!e},Number:e=>{if(nt(e))return e;if(null==e)return 0;const t=Number(e);return isNaN(t)?0:t},Math:e=>{if(nt(e))return e;if(null==e)return 0;const t=(e+"").trim();if(!t)return 0;try{return function(e){if(e=e.replace(/\s/g,""),!/^[0-9+\-*/().]+$/.test(e))throw Error("Invalid characters in math expression");try{const t=Function(`"use strict"; return (${e})`)();if(!nt(t)||!isFinite(t))throw Error("Expression did not evaluate to a finite number");return t}catch(e){throw Error("Math expression evaluation failed: "+(e instanceof Error?e.message:e+""))}}(t)}catch(e){return 0}},Int:e=>{const t=Hr.Number(e);return Math.trunc(t)},Float:e=>{const t=Hr.Number(e);return parseFloat(""+t)},Date:e=>{if(e instanceof Date)return e;if(null==e)return new Date(NaN);if(rt(e)&&/^\d{4}-\d{2}-\d{2}$/.test(e)){const[t,r,n]=e.split("-").map(Number);return new Date(t,r-1,n)}return new Date(e)},JSON:e=>{try{return JSON.stringify(e)}catch(e){return"{}"}},Object:e=>{if(at(e))return e;if(rt(e))try{return JSON.parse(e)}catch(e){return{}}return{}},Fragment:e=>{rt(e)||(e=Hr.String(e));const t=document.createElement("template");return t.innerHTML=e+"",t.content},HTML:e=>rt(e)?e:e instanceof NodeList?Array.from(e).map(e=>e instanceof Element?e.outerHTML:e.textContent||"").join(""):Array.isArray(e)?e.map(e=>e instanceof Element?e.outerHTML:Hr.String(e)).join(""):e instanceof Element?e.outerHTML:Hr.String(e),Values:(e,t)=>{if(e instanceof HTMLFormElement)return Br(e);if(e instanceof HTMLElement){const t=e.querySelectorAll("input, select, textarea"),r={};return t.forEach(e=>{e.name&&(r[e.name]=Fr(e))}),r}return{}},"Values:Form":(e,t)=>{const r=Hr.Values(e,t);return""+new URLSearchParams(r)},"Values:JSON":(e,t)=>{const r=Hr.Values(e,t);return JSON.stringify(r)}};function Br(e){const t={};return e.querySelectorAll("input, select, textarea").forEach(e=>{const r=e;if(r.name){const e=Fr(r);void 0!==e&&(void 0!==t[r.name]?(Array.isArray(t[r.name])||(t[r.name]=[t[r.name]]),t[r.name].push(e)):t[r.name]=e)}}),t}function Fr(e){if(e instanceof HTMLInputElement)switch(e.type){case"checkbox":return e.checked;case"radio":return e.checked?e.value:void 0;case"number":case"range":return e.valueAsNumber;case"date":case"datetime-local":return e.valueAsDate;case"file":return e.files;default:return e.value}return e instanceof HTMLSelectElement&&e.multiple?Array.from(e.selectedOptions).map(e=>e.value):e.value}const Ur={as:{name:"as",category:"Conversion",evaluatesTo:"Any",precedence:20,associativity:"Left",operators:["as"],async evaluate(e,...t){const[r,n]=t;if("string"!=typeof n)throw Error("Conversion type must be a string");if(n.startsWith("Fixed")){const{precision:e}=function(e){const t=e.match(/^Fixed(?::(\d+))?$/);return t?{precision:t[1]?parseInt(t[1],10):2}:{}}(n);return Hr.Number(r).toFixed(e||2)}let i=Hr[n];if(i)return i(r,e);const a={boolean:"Boolean",bool:"Boolean",string:"String",str:"String",number:"Number",num:"Number",int:"Int",integer:"Int",float:"Float",array:"Array",object:"Object",obj:"Object",date:"Date",json:"JSON"}[n.toLowerCase()];return a&&(i=Hr[a],i)?i(r,e):r},validate:e=>jt(e,2,"as","value, type")??Pt(e,1,"as","conversion type")},is:{name:"is",category:"Conversion",evaluatesTo:"Boolean",precedence:10,associativity:"Left",operators:["is a","is an"],async evaluate(e,...t){const[r,n]=t;if(!rt(n))throw Error("Type check requires a string type");switch(n.toLowerCase()){case"null":return null===r;case"undefined":return void 0===r;case"string":return rt(r);case"number":return nt(r)&&!isNaN(r);case"boolean":return it(r);case"object":return at(r);case"array":return Array.isArray(r);case"function":return ot(r);case"date":return r instanceof Date;case"element":return r instanceof Element;case"node":return r instanceof Node;case"nodelist":return r instanceof NodeList;case"empty":return null==r||""===r||Array.isArray(r)&&0===r.length||at(r)&&0===Object.keys(r).length;default:return r?.constructor?.name?.toLowerCase()===n.toLowerCase()}},validate:e=>jt(e,2,"is","value, type")??Pt(e,1,"is","type")},async:{name:"async",category:"Conversion",evaluatesTo:"Any",precedence:25,associativity:"Right",operators:["async"],evaluate:async(e,t)=>t,validate:e=>jt(e,1,"async","expression")}},Kr=dt,Gr=Ur;function Yr(e){return{...e,evaluationHistory:e.evaluationHistory||[]}}function Zr(e,t){return e[t]}async function Xr(e){if("object"!=typeof e||null===e)return e;if(e&&"function"==typeof e.then&&(e=await e),e&&"object"==typeof e&&"success"in e&&"value"in e){if(e.success)return e.value;{const t=e.errors||[];throw Error(t.length>0?t[0].message:"Expression evaluation failed")}}return e}function Jr(e,t){return{type:"identifier",name:e,...void 0!==t.start&&{start:t.start},...void 0!==t.end&&{end:t.end}}}function Qr(e,t,r){return{type:"literal",value:e,valueType:t,...void 0!==r.start&&{start:r.start},...void 0!==r.end&&{end:r.end}}}function en(e){const t=[];let r=fn(e);for(;r&&")"!==r.value;){const n=an(e);if(t.push(n),r=fn(e),!r||","!==r.value)break;yn(e),r=fn(e)}return t}function tn(e){return null==e||("string"==typeof e||Array.isArray(e)||e&&"object"==typeof e&&"length"in e&&"number"==typeof e.length?0===e.length:"object"==typeof e&&null!==e&&0===Object.keys(e).length)}class rn extends Error{constructor(e,t){super(void 0!==t?`${e} at position ${t}`:e),this.name="ExpressionParseError"}}async function nn(e,t){try{const r=function(e){const t={tokens:e,position:0};if(0===e.length)throw new rn("Empty expression");const r=an(t);if(e.length>t.position)throw new rn("Unexpected token: "+e[t.position].value,t.position);return r}(X(e));return await vn(r,t)}catch(e){if(e instanceof rn)throw e;throw new rn("Failed to parse expression: "+e)}}function an(e){return on(e,3)}function on(e,t){let r=function(e){let t=cn(e);for(;e.tokens.length>e.position;){const r=e.tokens[e.position];if(!(ze(r)||ge(r)&&["is","equals"].includes(r.value)))break;{const n=r.value;if(e.position++,["exists","does not exist","is empty","is not empty"].includes(n))t={type:"unaryExpression",operator:n,operand:t,...void 0!==t.start&&{start:t.start},end:r.end};else if("is"===n&&"not"===fn(e)?.value){e.position++;const r=cn(e);t={type:"binaryExpression",operator:"is not",left:t,right:r,...void 0!==t.start&&{start:t.start},...void 0!==r.end&&{end:r.end}}}else{const r=cn(e);t={type:"binaryExpression",operator:n,left:t,right:r,...void 0!==t.start&&{start:t.start},...void 0!==r.end&&{end:r.end}}}}}return t}(e);for(;e.tokens.length>e.position;){const n=e.tokens[e.position];if(!we(n)||!sn(n.value))break;{const i=n.value,a=ln(i);if(t>a)break;e.position++;const o=on(e,a+1);r={type:"binaryExpression",operator:i,left:r,right:o,...void 0!==r.start&&{start:r.start},...void 0!==o.end&&{end:o.end}}}}return r}function sn(e){return["and","or","&&","||"].includes(e)}function ln(e){switch(e){case"or":case"||":return 3;case"and":case"&&":return 4;default:return 0}}function cn(e){return un(e,6)}function un(e,t){let r=function(e){let t=function(e){let t=hn(e);for(;e.tokens.length>e.position;){const r=e.tokens[e.position];if(De(r)){let r;e.position++;const n=fn(e);if(n&&$e(n)&&"*"===n.value){e.position++;const t=n.start,i=hn(e);r=Jr("*"+(Zr(i,"name")||Zr(i,"value")),{start:t,end:i.end})}else r=hn(e);t={type:"possessiveExpression",object:t,property:r,...void 0!==t.start&&{start:t.start},...void 0!==r.end&&{end:r.end}};continue}if("identifier"===t.type&&["my","its","your"].includes(Zr(t,"name")??"")&&(Pe(r)||be(r))){const r=hn(e);t={type:"contextPossessive",contextType:Zr(t,"name"),property:r,...void 0!==t.start&&{start:t.start},...void 0!==r.end&&{end:r.end}};continue}if("identifier"!==t.type||"the"!==Zr(t,"name")||!Pe(r)){if(Ve(r)){e.position++;const r=yn(e);if(!r||!Pe(r))throw new rn('Expected property name after "."');let n=t;if("identifier"===t.type){const e=Zr(t,"name");if("my"===e||"its"===e||"your"===e){n=Jr("my"===e?"me":"its"===e?"it":"you",t)}}t={type:"propertyAccess",object:n,property:Jr(r.value,r),...void 0!==t.start&&{start:t.start},end:r.end};continue}if(He(r)){e.position++;const r=yn(e);if(!r||!Pe(r))throw new rn('Expected property name after "?."');let n=t;if("identifier"===t.type){const e=Zr(t,"name");if("my"===e||"its"===e||"your"===e){n=Jr("my"===e?"me":"its"===e?"it":"you",t)}}t={type:"optionalChain",object:n,property:Jr(r.value,r),optional:!0,...void 0!==t.start&&{start:t.start},end:r.end};continue}if(Be(r)){e.position++;const r=fn(e);if(r&&".."===r.value){yn(e);const r=fn(e);if(r&&"]"===r.value){yn(e),t={type:"arrayRangeAccess",object:t,startExpr:void 0,endExpr:void 0};continue}const n=an(e),i=yn(e);if(!i||"]"!==i.value)throw new rn("Expected closing bracket after range");t={type:"arrayRangeAccess",object:t,startExpr:void 0,endExpr:n};continue}const n=an(e),i=fn(e);if(i&&".."===i.value){yn(e);const r=fn(e);if(r&&"]"===r.value){yn(e),t={type:"arrayRangeAccess",object:t,startExpr:n,endExpr:void 0};continue}const i=an(e),a=yn(e);if(!a||"]"!==a.value)throw new rn("Expected closing bracket after range");t={type:"arrayRangeAccess",object:t,startExpr:n,endExpr:i};continue}const a=yn(e);if(!a||"]"!==a.value)throw new rn("Expected closing bracket after array index");t={type:"arrayAccess",object:t,index:n,...void 0!==t.start&&{start:t.start},end:a.end};continue}if(Fe(r)){e.position++;const r=en(e),n=yn(e);if(!n||")"!==n.value)throw new rn("Expected closing parenthesis");t={type:"callExpression",callee:t,arguments:r,...void 0!==t.start&&{start:t.start},end:n.end};continue}break}{const r=fn(e),n=e.tokens.length>e.position+1?e.tokens[e.position+1]:null;if(r&&n&&"of"===n.value){const r=hn(e),n=fn(e);if(!n||!ge(n)||"of"!==n.value)throw new rn('Expected "of" after property in "the X of Y" pattern');{e.position++;const n=hn(e);t={type:"propertyOfExpression",property:r,target:n,...void 0!==t.start&&{start:t.start},...void 0!==n.end&&{end:n.end}}}}else{const r=hn(e);if("the"!==Zr(r,"name")){t=r;continue}}}}return t}(e);for(;e.tokens.length>e.position;){const r=e.tokens[e.position];if(!ge(r)||"as"!==r.value)break;{e.position++;const r=yn(e);if(!r)throw new rn('Expected type after "as"');let n=r.value;if(":"===fn(e)?.value){e.position++;const t=yn(e);t&&(n+=":"+t.value)}t={type:"asExpression",expression:t,targetType:n,...void 0!==t.start&&{start:t.start},end:r.end}}}return t}(e);for(;e.tokens.length>e.position;){const n=e.tokens[e.position];if(!$e(n)||!pn(n.value))break;{const i=n.value,a=mn(i);if(t>a)break;e.position++;const o=un(e,dn(i)?a:a+1);r={type:"binaryExpression",operator:i,left:r,right:o,...void 0!==r.start&&{start:r.start},...void 0!==o.end&&{end:o.end}}}}return r}function pn(e){return["+","-","*","/","%","^","**","mod"].includes(e)}function mn(e){switch(e){case"+":case"-":return 6;case"*":case"/":case"%":case"mod":return 7;case"^":case"**":return 8;default:return 0}}function dn(e){return["^","**"].includes(e)}function hn(e){const t=fn(e);if(!t)throw new rn("Unexpected end of expression");if(we(t)&&("not"===t.value||"no"===t.value)){yn(e);const r=hn(e);return{type:"unaryExpression",operator:t.value,operand:r,start:t.start,...void 0!==r.end&&{end:r.end}}}if(Pe(t)&&("first"===t.value||"last"===t.value)){const t=yn(e),r=fn(e);if(r&&(qe(r)||We(r)||Me(r)||Pe(r)||$e(r)&&"."===r.value)){if(!$e(r)||"."!==r.value){const r=hn(e);return{type:"positionalExpression",operator:t.value,argument:r,start:t.start,...void 0!==r.end&&{end:r.end}}}{yn(e);const n=fn(e);if(n&&Pe(n)){yn(e);const i={type:"cssSelector",selectorType:"class",selector:"."+n.value,start:r.start,end:n.end};return{type:"positionalExpression",operator:t.value,argument:i,start:t.start,end:i.end}}}}return{type:"positionalExpression",operator:t.value,argument:null,start:t.start,end:t.end}}if($e(t)&&("-"===t.value||"+"===t.value||"!"===t.value)){yn(e);const r=hn(e);return{type:"unaryExpression",operator:t.value,operand:r,start:t.start,...void 0!==r.end&&{end:r.end}}}if("("===t.value){e.position++;const t=an(e),r=yn(e);if(!r||")"!==r.value)throw new rn("Expected closing parenthesis");return t}if(Ne(t)){yn(e);const r=t.value.slice(1,-1);return Qr(r.replace(/\\(.)/g,(e,t)=>{switch(t){case"n":return"\n";case"t":return"\t";case"r":return"\r";case"b":return"\b";case"f":return"\f";case"v":return"\v";case"0":return"\0";case"\\":return"\\";case'"':return'"';case"'":return"'";case"`":return"`";default:return t}}),"string",t)}if(Re(t))return yn(e),{type:"templateLiteral",value:t.value,start:t.start,end:t.end};if(Oe(t)){yn(e);const r=parseFloat(t.value);return Qr(Number.isInteger(r)&&!t.value.toLowerCase().includes("e")?parseInt(t.value,10):r,"number",t)}if(Ie(t)){let r,n;switch(yn(e),t.value){case"true":r=!0,n="boolean";break;case"false":r=!1,n="boolean";break;case"null":r=null,n="null";break;case"undefined":r=void 0,n="undefined";break;default:r="true"===t.value,n="boolean"}return Qr(r,n,t)}if(We(t))return yn(e),{type:"cssSelector",selectorType:"id",selector:t.value,start:t.start,end:t.end};if(qe(t))return yn(e),{type:"cssSelector",selectorType:"class",selector:t.value,start:t.start,end:t.end};if(Me(t))return yn(e),{type:"queryReference",selector:t.value,start:t.start,end:t.end};if("{"===t.value){yn(e);const r=[];if("}"===fn(e)?.value)return yn(e),{type:"objectLiteral",properties:r,start:t.start,end:e.tokens[e.position-1].end};do{const t=fn(e);if(!t)throw new rn("Expected property key in object literal");let n;if(Pe(t))yn(e),n=Jr(t.value,t);else{if(!Ne(t))throw new rn("Expected property key, got: "+t.kind);yn(e),n=Qr(t.value.slice(1,-1),"string",t)}const i=yn(e);if(!i||":"!==i.value)throw new rn('Expected ":" after property key');const a=an(e);r.push({key:n,value:a});const o=fn(e);if(","!==o?.value){if("}"===o?.value)break;throw new rn('Expected "," or "}" in object literal')}yn(e)}while(fn(e)&&"}"!==fn(e).value);const n=yn(e);if(!n||"}"!==n.value)throw new rn('Expected closing brace "}" in object literal');return{type:"objectLiteral",properties:r,start:t.start,end:n.end}}if("["===t.value){yn(e);const r=fn(e);if("@"===r?.value){yn(e);const r=yn(e);if(!r||!Pe(r))throw new rn("Expected attribute name after @");const n=yn(e);if(!n||"]"!==n.value)throw new rn("Expected closing bracket after attribute name");return{type:"attributeAccess",attributeName:r.value,start:t.start,end:n.end}}{const n=e.position,i=function(e,t){let r=t;const n=e.tokens[r];if(!n||!Pe(n))return!1;r++;const i=e.tokens[r];if(!i)return!1;if("]"===i.value)return!0;if("="===i.value||"~="===i.value||"|="===i.value||"^="===i.value||"$="===i.value||"*="===i.value)return!0;return!1}(e,n);if(i)return function(e,t){const r=yn(e);if(!r||!Pe(r))throw new rn("Expected attribute name in selector");let n=null,i=null;const a=fn(e);if(a&&["=","~=","|=","^=","$=","*="].includes(a.value)){n=yn(e).value;const t=yn(e);if(!t)throw new rn("Expected value after attribute operator");if(Ne(t))i=t.value.slice(1,-1);else{if(!Pe(t)&&!Oe(t))throw new rn("Unexpected token in attribute selector: "+t.value);i=t.value}}const o=yn(e);if(!o||"]"!==o.value)throw new rn("Expected closing bracket in attribute selector");return{type:"attributeSelector",attribute:r.value,operator:n,value:i,start:t.start,end:o.end}}(e,t);let a=!1;if("]"===r?.value)a=!0;else{let t=n,r=1,i=!1;for(;e.tokens.length>t&&r>0;){const n=e.tokens[t];if("["===n.value&&r++,"]"===n.value&&r--,","===n.value&&1===r){i=!0;break}t++}i&&(a=!0)}if(a){const r=[];if("]"===fn(e)?.value)return yn(e),{type:"arrayLiteral",elements:r,start:t.start,end:e.tokens[e.position-1].end};do{if(r.push(an(e)),","!==fn(e)?.value)break;yn(e)}while(fn(e)&&"]"!==fn(e).value);const n=yn(e);if(!n||"]"!==n.value)throw new rn("Expected closing bracket in array literal");return{type:"arrayLiteral",elements:r,start:t.start,end:n.end}}{const r=an(e),n=yn(e);if(!n||"]"!==n.value)throw new rn("Expected closing bracket");return{type:"bracketExpression",expression:r,start:t.start,end:n.end}}}}if(function(e){return e.kind===F.IDENTIFIER&&e.value.startsWith("$")}(t)){const t=yn(e);return{type:"globalVariable",name:t.value,start:t.start,end:t.end}}if(be(t)||Pe(t)||ge(t)&&"new"!==t.value&&"null"!==t.value&&"undefined"!==t.value){const t=yn(e),r=fn(e);if(r&&"("===r.value){yn(e);const r=en(e),n=fn(e);if(!n||")"!==n.value)throw new rn("Expected closing parenthesis");return yn(e),{type:"callExpression",callee:Jr(t.value,t),arguments:r,start:t.start,end:n.end}}return"null"===t.value?Qr(null,"null",t):"undefined"===t.value?Qr(void 0,"undefined",t):Jr(t.value,t)}if(ge(t)&&"new"===t.value){const t=yn(e),r=fn(e);if(!r||!Pe(r))throw new rn('Expected constructor name after "new"');yn(e);const n=fn(e);if(!n||"("!==n.value)throw new rn('Expected "(" after constructor name');yn(e);const i=[],a=fn(e);if(!a||")"!==a.value)throw new rn('Expected ")" after constructor arguments (argument parsing not yet implemented)');return yn(e),{type:"constructorCall",constructor:r.value,arguments:i,start:t.start,end:a.end}}if(Pe(t)&&"Date"===t.value&&e.tokens.slice(Math.max(0,e.position-3),e.position).map(e=>({kind:e.kind,value:e.value})),Le(t)&&"string"==typeof t.value&&t.value.startsWith("@")){yn(e);return{type:"attributeAccess",attributeName:t.value.substring(1),start:t.start,end:t.end}}throw e.tokens.slice(Math.max(0,e.position-2),e.position+3).map(e=>({kind:e.kind,value:e.value})),new rn(`Unexpected token: ${t.value} (kind: ${t.kind}) at position ${e.position}`,e.position)}function fn(e){return e.tokens[e.position]}function yn(e){return e.tokens[e.position++]}async function vn(e,t){switch(e.type){case"literal":return e.value;case"templateLiteral":return async function(e,t){let r=e.value;return r=await kn(r,/\$([a-zA-Z_$][a-zA-Z0-9_.$]*|\d+)/g,async(e,r)=>{try{if(/^\d+$/.test(r))return r;if(r.includes(".")){const e=r.split(".");let n=gn(e[0],t);for(let t=1;e.length>t&&null!=n;t++)n=n[e[t]];return(n??"")+""}return(gn(r,t)??"")+""}catch(e){return""}}),r=await kn(r,/\$(?:\{([^}]+)\}|\(([^)]+)\))/g,async(e,r,n)=>{const i=r||n;try{return await nn(i,t)+""}catch(e){return"undefined"}}),r}(e,t);case"identifier":return function(e,t){if(t.meta&&"object"==typeof t.meta&&t.meta.hasOwnProperty(e))return t.meta[e];if(t.locals&&t.locals.has(e))return t.locals.get(e);if("me"===e||"I"===e)return t.me;if("you"===e)return t.you;if("it"===e)return t.it;if("result"===e)return t.result;if(t.globals&&t.globals.has(e))return t.globals.get(e);if("undefined"!=typeof globalThis&&e in globalThis)return globalThis[e];return}(e.name+"",t);case"binaryExpression":return async function(e,t){const r=e.operator;if("has"===r||"have"===r){const r=await vn(e.left,t);if(r instanceof Element){if("cssSelector"===e.right.type&&"class"===e.right.selectorType){const t=e.right.selector?.startsWith(".")?e.right.selector.slice(1):e.right.selector||"";return r.classList.contains(t)}if("selector"===e.right.type&&"string"==typeof e.right.value&&e.right.value.startsWith("."))return r.classList.contains(e.right.value.slice(1))}return!1}if("in"===r&&"positionalExpression"===e.left?.type&&e.left.argument&&("queryReference"===e.left.argument.type||"cssSelector"===e.left.argument.type)){let r;"queryReference"===e.left.argument.type?(r=e.left.argument.selector,r.startsWith("<")&&r.endsWith("/>")&&(r=r.slice(1,-2).trim())):r=e.left.argument.selector;const n=await vn(e.right,t);if(!n||"function"!=typeof n.querySelectorAll)throw new rn(`'in' operator requires a DOM element as the right operand (got: ${typeof n})`);const i=Array.from(n.querySelectorAll(r)),a=e.left.operator;return"first"===a?i.length>0?i[0]:null:"last"===a?i.length>0?i[i.length-1]:null:i}if("in"===r&&"queryReference"===e.left?.type){let r=e.left.selector;r.startsWith("<")&&r.endsWith("/>")&&(r=r.slice(1,-2).trim());const n=await vn(e.right,t);if(!n||"function"!=typeof n.querySelectorAll)throw new rn(`'in' operator requires a DOM element as the right operand (got: ${typeof n})`);return Array.from(n.querySelectorAll(r))}const n=await vn(e.left,t),i=await vn(e.right,t);switch(r){case"and":case"&&":return n&&i;case"or":case"||":return n||i;case"is":case"equals":case"==":return await Xr(Ir.equals.evaluate(Yr(t),n,i));case"is not":case"!=":return await Xr(Ir.notEquals.evaluate(Yr(t),n,i));case"===":case"is really equal to":case"really equals":return n===i;case"!==":case"is not really equal to":return n!==i;case">":return await Xr(Ir.greaterThan.evaluate(Yr(t),n,i));case"<":return await Xr(Ir.lessThan.evaluate(Yr(t),n,i));case">=":return await Xr(Ir.greaterThanOrEqual.evaluate(Yr(t),n,i));case"<=":return await Xr(Ir.lessThanOrEqual.evaluate(Yr(t),n,i));case"+":return function(e,t){if("string"==typeof e||"string"==typeof t)return e+""+t;const r="number"==typeof e?e:parseFloat(e),n="number"==typeof t?t:parseFloat(t);if(isNaN(r)||isNaN(n))return e+""+t;return r+n}(n,i);case"-":return await Xr(Kr.subtraction.evaluate(Yr(t),{left:n,right:i}));case"*":return await Xr(Kr.multiplication.evaluate(Yr(t),{left:n,right:i}));case"/":return await Xr(Kr.division.evaluate(Yr(t),{left:n,right:i}));case"%":case"mod":return await Xr(Kr.modulo.evaluate(Yr(t),{left:n,right:i}));case"^":case"**":return Math.pow(Number(n),Number(i));case"match":case"matches":return Ir.matches.evaluate(t,n,i);case"contains":case"include":case"includes":return(n+"").includes(i+"");case"in":return async function(e,t){if(Array.isArray(t))return t.includes(e);if("object"==typeof t&&null!==t){return e+""in t}if("string"==typeof t)return t.includes(e+"");throw new rn("Cannot use 'in' operator with "+typeof t)}(n,i);case"does not contain":case"does not include":return!(n+"").includes(i+"");case"exists":return null!=n;case"is empty":return tn(n);case"is not empty":return!tn(n);case"is in":return(i+"").includes(n+"");case"is not in":return!(i+"").includes(n+"");case"is equal to":return n==i;case"is not equal to":return n!=i;case"is greater than":return n>i;case"is less than":return i>n;case"is greater than or equal to":return n>=i;case"is less than or equal to":return i>=n;default:throw new rn("Unknown binary operator: "+r)}}(e,t);case"possessiveExpression":return async function(e,t){const r=await vn(e.object,t),n=e.property;if("identifier"===n.type){const e=n.name;let i=r;return r&&"object"==typeof r&&"length"in r&&void 0!==r[0]&&(i=r[0]),yt(i)?bt(i,e):await Xr(At.its.evaluate(Yr(t),{target:r,property:e}))}if("attributeAccess"===n.type){let e=r;return r&&"object"==typeof r&&"length"in r&&void 0!==r[0]&&(e=r[0]),e&&"object"==typeof e&&"function"==typeof e.getAttribute?gt(e,n.attributeName):null}if("bracketExpression"===n.type){const e=await vn(n.expression,t);return await Xr(At.its.evaluate(Yr(t),{target:r,property:e+""}))}throw new rn("Unsupported property access type: "+n.type)}(e,t);case"contextPossessive":return async function(e,t){const r=e.contextType,n=e.property;let i;if("identifier"!==n.type)throw new rn("Property name must be an identifier");i=n.name;switch(r){case"my":return await Xr(At.my.evaluate(Yr(t),{property:i}));case"its":const e=t.result||t.it;return await Xr(At.its.evaluate(Yr(t),{target:e,property:i}));case"your":return await Xr(At.its.evaluate(Yr(t),{target:t.you,property:i}));default:throw new rn("Unknown context type: "+r)}}(e,t);case"propertyOfExpression":return async function(e,t){const r=e.property;let n;if("identifier"!==r.type)throw new rn('Property name must be an identifier in "the X of Y" pattern');n=r.name;const i=await vn(e.target,t);if(null==i)throw new rn(`Cannot access property "${n}" of ${i}`);if(i&&"object"==typeof i&&i.nodeType===Node.ELEMENT_NODE)return await Xr(At.its.evaluate(Yr(t),{target:i,property:n}));try{const e=i[n];return"function"==typeof e?e.bind(i):e}catch(e){throw new rn(`Failed to access property "${n}" on target: ${e}`)}}(e,t);case"constructorCall":return async function(e){const t=e.constructor;try{const e=("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:global)[t];if("function"==typeof e){return new e}throw new rn(`Constructor "${t}" not found or is not a function`)}catch(e){throw new rn(`Failed to call constructor "${t}": ${e instanceof Error?e.message:e+""}`)}}(e);case"propertyAccess":return async function(e,t){const r=await vn(e.object,t),n=e.property;if(null==r)throw new rn(`Cannot access property "${n.name}" of ${r}`);if("identifier"!==n.type)throw new rn("Property name must be an identifier");const i=n.name;try{let e;return e=yt(r)?bt(r,i):r[i],"function"==typeof e?e.bind(r):e}catch(e){throw new rn(`Error accessing property "${i}": ${e}`)}}(e,t);case"optionalChain":return async function(e,t){const r=await vn(e.object,t);if(null==r)return;const n=e.property,i=n.name||n.value;try{const e=r[i];return"function"==typeof e?e.bind(r):e}catch{return}}(e,t);case"asExpression":return async function(e,t){const r=await vn(e.expression,t),n=e.targetType;return await Gr.as.evaluate(t,r,n)}(e,t);case"cssSelector":return async function(e){const t=e.selector;if("id"===e.selectorType){const e=t.startsWith("#")?t.slice(1):t;return document.getElementById(e)}if("class"===e.selectorType){const e=t.replace(/:/g,"\\:");return Array.from(document.querySelectorAll(e))}throw new rn("Unknown CSS selector type: "+e.selectorType)}(e);case"queryReference":return async function(e){const t=e.selector;let r=t.slice(1,-2).trim();const n=RegExp("(\\.[a-zA-Z0-9_-]+):(?!(hover|active|focus|visited|link|focus-within|focus-visible|first-child|last-child|only-child|nth-child|nth-last-child|nth-of-type|nth-last-of-type|first-of-type|last-of-type|only-of-type|empty|root|target|lang|dir|not|has|is|where|matches|before|after|first-letter|first-line|selection|placeholder|marker|backdrop|enabled|disabled|checked|indeterminate|required|optional|valid|invalid|in-range|out-of-range|read-only|read-write|default|defined|fullscreen|modal|picture-in-picture|autofill)(?![a-zA-Z0-9_-]))","g");r=r.replace(n,"$1\\:");try{return document.querySelectorAll(r)}catch(e){return document.createDocumentFragment().childNodes}}(e);case"attributeSelector":return async function(e){let t="["+e.attribute;e.operator&&null!==e.value&&(t+=`${e.operator}"${e.value}"`);return t+="]","undefined"!=typeof document?document.querySelectorAll(t):[]}(e);case"unaryExpression":return async function(e,t){const r=await vn(e.operand,t),n=e.operator;switch(n){case"not":case"!":return!r;case"no":return null==r||(!1===r||(Array.isArray(r)||!(!r||"object"!=typeof r||!("length"in r)))&&0===r.length);case"exists":return null!=r;case"does not exist":return null==r;case"is empty":return tn(r);case"is not empty":return!tn(r);case"-":const e="number"==typeof r?r:parseFloat(r);return isNaN(e)?0:-e;case"+":const t="number"==typeof r?r:parseFloat(r);return isNaN(t)?0:t;default:throw new rn("Unknown unary operator: "+n)}}(e,t);case"attributeAccess":return async function(e,t){const r=e.attributeName;if(t.me&&t.me instanceof Element)return t.me.getAttribute(r);return"@"+r}(e,t);case"bracketExpression":return async function(e,t){return await vn(e.expression,t)}(e,t);case"callExpression":return async function(e,t){if("identifier"===e.callee?.type){const r=e.callee.name;if(["closest","previous","next"].includes(r)){const n=await Promise.all(e.arguments.map(async e=>{if("identifier"===e.type&&Zr(e,"name"))return Zr(e,"name");if("selector"===e.type&&Zr(e,"value"))return Zr(e,"value");if("queryReference"===e.type&&Zr(e,"selector")){let t=Zr(e,"selector");return t.startsWith("<")&&t.endsWith("/>")&&(t=t.slice(1,-2).trim()),t}return vn(e,t)}));switch(r){case"closest":return Mr.closest.evaluate(t,...n);case"previous":return Xt.previous.evaluate(t,...n);case"next":return Xt.next.evaluate(t,...n)}}}const r=await vn(e.callee,t);if("function"!=typeof r)throw new rn("Cannot call non-function value: "+typeof r);const n=[];for(const r of e.arguments){const e=await vn(r,t);n.push(e)}const i=r(...n);if(i&&"function"==typeof i.then)return await i;return i}(e,t);case"arrayLiteral":return async function(e,t){const r=[];for(const n of e.elements){const e=await vn(n,t);r.push(e)}return r}(e,t);case"objectLiteral":return async function(e,t){const r={};for(const n of e.properties){let e;if("identifier"===n.key.type)e=n.key.name;else if("literal"===n.key.type&&"string"===n.key.valueType)e=n.key.value;else{e=await vn(n.key,t)+""}const i=await vn(n.value,t);r[e]=i}return r}(e,t);case"arrayAccess":return async function(e,t){const r=await vn(e.object,t),n=await vn(e.index,t);if(null==r)throw new rn(`Cannot access index "${n}" of ${r}`);if(Array.isArray(r)){let e="number"==typeof n?n:parseInt(n,10);if(isNaN(e))throw new rn("Array index must be a number, got: "+typeof n);return 0>e&&(e=r.length+e),r[e]}if("object"==typeof r)return r[n+""];if("string"==typeof r){const e="number"==typeof n?n:parseInt(n,10);if(isNaN(e))throw new rn("String index must be a number, got: "+typeof n);return r[e]}throw new rn("Cannot access property of "+typeof r)}(e,t);case"arrayRangeAccess":return async function(e,t){const r=await vn(e.object,t);if(null==r)throw new rn("Cannot access range of "+r);if(!Array.isArray(r)&&"string"!=typeof r)throw new rn("Range syntax only works on arrays and strings, got: "+typeof r);const n=e.start,i=e.end;let a,o;if(null==n)a=0;else{const e=await vn(n,t);if(a="number"==typeof e?e:parseInt(e,10),isNaN(a))throw new rn("Range start index must be a number, got: "+typeof e)}if(null==i)o=r.length;else{const e=await vn(i,t);if(o="number"==typeof e?e:parseInt(e,10),isNaN(o))throw new rn("Range end index must be a number, got: "+typeof e);o+=1}return r.slice(a,o)}(e,t);case"positionalExpression":return async function(e,t){const r=e.operator;let n;n=e.argument?await vn(e.argument,t):t.it;if("first"===r)return Xt.first.evaluate(Yr(t),n);if("last"===r)return Xt.last.evaluate(Yr(t),n);throw new rn("Unknown positional operator: "+r)}(e,t);case"globalVariable":return function(e,t){const r=e.name,n=r.startsWith("$")?r.slice(1):r;if(t.globals)if(t.globals instanceof Map){if(t.globals.has(r))return t.globals.get(r);if(t.globals.has(n))return t.globals.get(n)}else if("object"==typeof t.globals){if(r in t.globals)return t.globals[r];if(n in t.globals)return t.globals[n]}if("undefined"!=typeof globalThis&&n in globalThis)return globalThis[n];return}(e,t);default:throw new rn("Unknown AST node type: "+e.type)}}function gn(e,t){return t.locals?.has(e)?t.locals.get(e):"me"===e&&t.me?t.me:"you"===e&&t.you?t.you:"it"===e&&t.it?t.it:"result"===e&&t.result?t.result:"undefined"!=typeof window&&"window"===e?window:t.globals?.has(e)?t.globals.get(e):void 0}async function kn(e,t,r){const n=[];let i;for(;null!==(i=t.exec(e));)n.push({match:i[0],index:i.index,length:i[0].length,replacement:await r(i[0],...i.slice(1))});let a=e;for(let e=n.length-1;e>=0;e--){const t=n[e];a=a.substring(0,t.index)+t.replacement+a.substring(t.index+t.length)}return a}let bn=!1,wn=null;if("undefined"!=typeof window&&"undefined"!=typeof URLSearchParams)try{"semantic"===new URLSearchParams(window.location.search).get("debug")&&(bn=!0,wn=window)}catch{}let zn={totalParses:0,semanticSuccesses:0,semanticFallbacks:0,traditionalParses:0,averageConfidence:0,confidenceHistory:[]};class xn{constructor(e){this.analyzer=e.analyzer,this.language=e.language,this.confidenceThreshold=e.confidenceThreshold??.5,this.debugEnabled=e.debug??!1}isAvailable(){return this.analyzer.supportsLanguage(this.language)}shouldSkipSemantic(e){const t=e.trim().split(/\s+/)[0]?.toLowerCase();if(xn.SKIP_SEMANTIC_COMMANDS.has(t))return!0;const r=e.toLowerCase();return!!/\bjs\b/.test(r)||!!/\btell\b/.test(r)}trySemanticParse(e){const t=performance.now();if(this.shouldSkipSemantic(e))return{success:!1,confidence:0,errors:["Command skipped for semantic parsing - using traditional parser"]};if(!this.isAvailable())return{success:!1,confidence:0,errors:[`Semantic parsing not available for language '${this.language}'`]};try{const n=this.analyzer.analyze(e,this.language),i=performance.now()-t,a=n.confidence>=this.confidenceThreshold&&!!n.command,o=!a&&n.confidence>0;if(bn){const t={};if(n.command?.roles)for(const[e,r]of n.command.roles)t[e]=r.value;const s={input:e.substring(0,100),language:this.language,confidence:n.confidence,threshold:this.confidenceThreshold,semanticSuccess:a,fallbackTriggered:o,command:n.command?.name,roles:Object.keys(t).length>0?t:void 0,errors:n.errors,timestamp:Date.now(),duration:i};!function(e){if(!bn)return;if(wn){const t=new CustomEvent("lokascript:semantic:parse",{detail:e,bubbles:!0});wn.dispatchEvent(t)}}(s),r=s,zn.totalParses++,r.semanticSuccess?zn.semanticSuccesses++:r.fallbackTriggered?zn.semanticFallbacks++:zn.traditionalParses++,zn.confidenceHistory.push(r.confidence),zn.confidenceHistory.length>100&&zn.confidenceHistory.shift(),zn.averageConfidence=zn.confidenceHistory.reduce((e,t)=>e+t,0)/zn.confidenceHistory.length}if(!a)return{success:!1,confidence:n.confidence,tokensConsumed:n.tokensConsumed,errors:n.errors};return{success:!0,node:this.buildCommandNode(n),confidence:n.confidence,tokensConsumed:n.tokensConsumed}}catch(e){return{success:!1,confidence:0,errors:[e instanceof Error?e.message:e+""]}}var r}buildCommandNode(e){const{command:t}=e;if(!t)throw Error("Cannot build command node without command data");if("repeat"===t.name)return this.buildRepeatCommandNode(t);if("for"===t.name)return this.buildRepeatCommandNode(t);if("set"===t.name)return this.buildSetCommandNode(t);if("if"===t.name||"unless"===t.name)return this.buildIfCommandNode(t);const r=[],n={};for(const[e,i]of t.roles){const a=this.semanticValueToExpression(i);switch(e){case"patient":case"event":r.push(a);break;case"destination":"put"===t.name?n.into=a:"add"===t.name||"append"===t.name||"prepend"===t.name?n.to=a:n.on=a;break;case"source":"fetch"===t.name?r.push(a):n.from=a;break;case"quantity":n.by=a;break;case"duration":n.over=a;break;case"responseType":n.as=a;break;case"method":n.method=a;break;case"style":n.with=a;break;case"condition":n.when=a;break;default:n[e]=a}}return{type:"command",name:t.name,args:r,modifiers:Object.keys(n).length>0?n:void 0,isBlocking:!1,start:0,end:0,line:1,column:0}}buildRepeatCommandNode(e){const t=[],r={},n=e.roles.get("loopType");n&&t.push({type:"identifier",name:n.value+"",start:0,end:0,line:1,column:0});const i=e.roles.get("patient");"for"===(n?n.value+"":"")&&i&&t.push({type:"identifier",name:"expression"===i.type&&i.raw||i.value+"",start:0,end:0,line:1,column:0});const a=e.roles.get("event");a&&t.push({type:"string",value:a.value+"",start:0,end:0,line:1,column:0});const o=e.roles.get("source");o&&t.push(this.semanticValueToExpression(o));const s=e.roles.get("quantity");s&&t.push(this.semanticValueToExpression(s));const l=e.roles.get("condition");return l&&(r.condition=this.semanticValueToExpression(l)),{type:"command",name:"repeat",args:t,modifiers:Object.keys(r).length>0?r:void 0,isBlocking:!1,start:0,end:0,line:1,column:0}}buildSetCommandNode(e){const t=[],r=e.roles.get("destination");if(r)if("property-path"===r.type){const e=r;t.push({type:"possessiveExpression",object:this.semanticValueToExpression(e.object),property:this.createPropertyNode(e.property),start:0,end:0,line:1,column:0})}else t.push(this.semanticValueToExpression(r));t.push({type:"identifier",name:"to",start:0,end:0,line:1,column:0});const n=e.roles.get("patient");return n&&t.push(this.semanticValueToExpression(n)),{type:"command",name:"set",args:t,isBlocking:!1,start:0,end:0,line:1,column:0}}createPropertyNode(e){return e.startsWith("*")?{type:"cssProperty",name:e.substring(1),start:0,end:0,line:1,column:0}:{type:"identifier",name:e,start:0,end:0,line:1,column:0}}buildIfCommandNode(e){const t=[],r=e.roles.get("condition");return r&&t.push(this.semanticValueToExpression(r)),{type:"command",name:e.name,args:t,isBlocking:!1,start:0,end:0,line:1,column:0}}semanticValueToExpression(e){switch(e.type){case"selector":return{type:"selector",value:e.value,start:0,end:0,line:1,column:0};case"reference":return{type:"identifier",name:e.value,start:0,end:0,line:1,column:0};case"literal":return"string"==typeof e.value&&e.value.includes("${")&&e.value.includes("}")?{type:"templateLiteral",value:e.value,start:0,end:0,line:1,column:0}:{type:"literal",value:e.value,raw:e.raw??e.value,start:0,end:0,line:1,column:0};case"property-path":{const t=e;return{type:"memberExpression",object:this.semanticValueToExpression(t.object),property:{type:"identifier",name:t.property,start:0,end:0,line:1,column:0},computed:!1,start:0,end:0,line:1,column:0}}default:return this.parseExpressionString(e.raw||"")}}parseExpressionString(e){let t=0;const r=()=>{for(;e.length>t&&/\s/.test(e[t]);)t++},n=()=>{r();const n=t;for(;e.length>t&&/[a-zA-Z0-9_$]/.test(e[t]);)t++;return e.slice(n,t)},i=()=>{const n=[];if(t++,r(),")"!==e[t])for(n.push(a()),r();","===e[t];)t++,r(),n.push(a()),r();return")"===e[t]&&t++,n},a=()=>{r();const a=n();if(!a)return{type:"identifier",name:e.trim(),start:0,end:0,line:1,column:0};let o={type:"identifier",name:a,start:0,end:0,line:1,column:0};for(;e.length>t;){r();const a=e[t];if("."===a){t++;const e=n();e&&(o={type:"memberExpression",object:o,property:{type:"identifier",name:e,start:0,end:0,line:1,column:0},computed:!1,start:0,end:0,line:1,column:0})}else{if("("!==a)break;o={type:"callExpression",callee:o,arguments:i(),start:0,end:0,line:1,column:0}}}return o};return a()}getLanguage(){return this.language}getConfidenceThreshold(){return this.confidenceThreshold}}function En(e,t,r){return{type:"literal",value:e,raw:t,start:r.start,end:r.end,line:r.line,column:r.column}}function Tn(e,t){return{type:"identifier",name:e,start:t.start,end:t.end,line:t.line,column:t.column}}function Sn(e,t,r,n){return{type:"binaryExpression",operator:e,left:t,right:r,start:n.start,end:n.end,line:n.line,column:n.column}}function Cn(e,t){return{type:"block",commands:e,start:t.start,end:t.end,line:t.line,column:t.column}}function An(e,t){return{type:"string",value:e,start:t.start,end:t.end,line:t.line,column:t.column}}function Ln(e,t){return{type:"objectLiteral",properties:e,start:t.start,end:t.end,line:t.line,column:t.column}}function jn(e,t){return{type:"arrayLiteral",elements:e,start:t.start,end:t.end,line:t.line,column:t.column}}function Pn(e,t,r){return{type:"propertyOfExpression",property:e,target:t,start:r.start,end:r.end,line:r.line,column:r.column}}xn.SKIP_SEMANTIC_COMMANDS=new Set(["swap","morph","js","tell"]);const Nn=[{command:"append",keywords:["to"],syntax:"append <value> [to <target>]"},{command:"make",keywords:["a","an"],syntax:"make (a|an) <type>"},{command:"send",keywords:["to"],syntax:"send <event> to <target>"},{command:"throw",keywords:[],syntax:"throw <error>"}];function On(e,t){return!!e&&t.some(t=>e.value===t||e.value.toLowerCase()===t)}const In=[r,a,n,i];function Rn(e,t=[]){if(e.isAtEnd())return!0;for(const t of In)if(e.check(t))return!0;for(const r of t)if(e.check(r))return!0;return!!e.checkIsCommand()}function Mn(e,t=[]){if(!Rn(e,t))return e.parseExpression()}function Wn(e,t,r){return!!e.check(t)&&(e.advance(),r.push(e.createIdentifier(t)),!0)}function qn(e,t,r){for(const n of t)if(e.check(n))return e.advance(),r.push(e.createIdentifier(n)),n;return null}function _n(e,t){return!!e.check(t)&&(e.advance(),!0)}class $n{constructor(e){this.args=[],this.isBlocking=!1,this.name=e}static from(e){const t=new $n(e.value);return t.startPos={start:e.start??0,end:e.end??0,line:e.line??1,column:e.column??1},t}static fromIdentifier(e){const t=new $n(e.name);return void 0!==e.start&&(t.startPos={start:e.start,end:e.end??0,line:e.line??1,column:e.column??1}),t}static named(e){return new $n(e)}withArgs(...e){return this.args.push(...e),this}withBody(e){return this.body=e,this}withImplicitTarget(e){return this.implicitTarget=e,this}withModifier(e,t){return this.modifiers||(this.modifiers={}),this.modifiers[e]=t,this}withModifiers(e){return this.modifiers={...this.modifiers,...e},this}withName(e){return this.name=e,this}withOriginalCommand(e){return this.originalCmd=e,this}blocking(e=!0){return this.isBlocking=e,this}startingAt(e){return this.startPos={start:e.start??0,end:e.end??0,line:e.line??1,column:e.column??1},this}endingAt(e){return this.endPos={start:e.start??this.startPos?.start??0,end:e.end,line:e.line??this.startPos?.line??1,column:e.column??this.startPos?.column??1},this}build(){const e={type:"command",name:this.name,args:this.args,isBlocking:this.isBlocking,start:this.startPos?.start??0,end:this.endPos?.end??this.startPos?.end??0,line:this.startPos?.line??1,column:this.startPos?.column??1};return this.body&&(e.body=this.body),this.implicitTarget&&(e.implicitTarget=this.implicitTarget),this.modifiers&&(e.modifiers=this.modifiers),this.originalCmd&&(e.originalCommand=this.originalCmd),e}clone(){const e=new $n(this.name);return e.args=[...this.args],e.body=this.body?[...this.body]:void 0,e.implicitTarget=this.implicitTarget,e.isBlocking=this.isBlocking,e.modifiers=this.modifiers?{...this.modifiers}:void 0,e.originalCmd=this.originalCmd,e.startPos=this.startPos?{...this.startPos}:void 0,e.endPos=this.endPos?{...this.endPos}:void 0,e}}function Dn(e,t){const r=[];let n="";const i=e.peek().start||0,a=e.peek().line||1,o=e.peek().column||1;if(e.checkIdentifierLike()){for(n=e.advance().value;e.check(":")&&!e.isAtEnd();)e.advance(),n+=":",e.checkIdentifierLike()&&(n+=e.advance().value);if(e.check("(")){e.advance();const t=[];for(;!e.isAtEnd()&&!e.check(")");){const r=e.savePosition();let n;if(e.checkIdentifierLike()){const t=e.peek().value;e.advance(),e.check(":")?(e.advance(),n=t):e.restorePosition(r)}const i=e.parseExpression();if(t.push(void 0!==n?{type:"objectLiteral",properties:[{key:{type:"identifier",name:n},value:i}],start:i.start,end:i.end,line:i.line,column:i.column}:i),e.check(","))e.advance();else if(!e.check(")"))break}e.check(")")&&e.advance(),r.push({type:"functionCall",name:n,args:t,start:i,end:e.getPosition().end,line:a,column:o})}else r.push({type:"string",value:n,start:i,end:e.getPosition().end,line:a,column:o})}for(;!Rn(e);)r.push(e.parsePrimary());let s=-1,l="on";for(let e=0;r.length>e;e++){const t=r[e],n=t.name||t.value;if(!("identifier"!==t.type&&"literal"!==t.type&&"keyword"!==t.type||"on"!==n&&"to"!==n)){s=e,l=n;break}}const c=[];if(-1===s)c.push(...r);else{const t=r.slice(0,s),n=r.slice(s+1);c.push(...t),c.push(e.createIdentifier(l)),c.push(...n)}return $n.fromIdentifier(t).withArgs(...c).endingAt(e.getPosition()).build()}function Vn(e,t){const r=[];if(e.check(C)){const t=e.advance();if(r.push({type:"identifier",name:C,start:t.start,end:t.end,line:t.line,column:t.column}),e.check(z)){const t=e.advance();r.push({type:"identifier",name:z,start:t.start,end:t.end,line:t.line,column:t.column})}}return $n.fromIdentifier(t).withArgs(...r).endingAt(e.getPosition()).build()}function Hn(e,t){const a=[];let s=!1;const l=e.savePosition();for(let t=0;500>t&&!e.isAtEnd();t++){const t=e.peek();if(t.value===r){s=!0;break}if(t.value===i||t.value===E||t.value===x||t.value===w)break;e.advance()}e.restorePosition(l);let c=!1;if(!s){const r=e.savePosition(),a=t.line,o=100;for(;!e.isAtEnd()&&o>e.current-r;){const t=e.peek(),r=t.value?.toLowerCase();if(r===E||r===x||r===w)break;if(r===n||r===i){t.line===a&&(c=!0);break}if((e.checkIsCommand()||e.isCommand(r))&&void 0!==t.line&&t.line!==a){c=!0;break}e.advance()}e.restorePosition(r)}const u=s||c;let p;if(u)p=e.parseExpression();else{const n=[],i=20;let a=0;for(;!e.isAtEnd()&&!e.checkIsCommand()&&!e.isCommand(e.peek().value)&&!e.check(r)&&i>a;){const t=e.savePosition();n.push(e.parseLogicalAnd()),e.savePosition()===t&&e.advance(),a++}if(0===n.length)throw Error("Expected condition after if/unless");p=1===n.length?n[0]:{type:"expression",tokens:n,start:n[0].start,end:n[n.length-1].end,line:t.line,column:t.column}}if(a.push(p),u){s&&e.advance();const r=[];for(;!e.isAtEnd()&&!e.check(n)&&!e.check(i)&&(e.checkIsCommand()||e.isCommand(e.peek().value));){e.advance();const t=e.parseCommand();t&&r.push(t)}if(0===r.length&&e.isAtEnd())throw Error("Expected command after 'then' in if statement - incomplete conditional");a.push(Cn(r,{start:t.start,end:e.getPosition().end,line:t.line,column:t.column}));let l=!1;if(e.check(n))if(e.advance(),e.check(o)){const t=e.peek();e.advance();const r=Hn(e,t);a.push(Cn([r],{start:t.start,end:e.getPosition().end,line:t.line,column:t.column})),l=!0}else{const r=[];for(;!e.isAtEnd()&&!e.check(i)&&(e.checkIsCommand()||e.isCommand(e.peek().value));){e.advance();const t=e.parseCommand();t&&r.push(t)}a.push(Cn(r,{start:t.start,end:e.getPosition().end,line:t.line,column:t.column}))}l||e.consume(i,"Expected 'end' after if block")}else{if(!e.checkIsCommand()&&!e.isCommand(e.peek().value))throw Error("Expected command after if condition in single-line form");{e.advance();const r=e.parseCommand();a.push(Cn([r],{start:t.start,end:e.getPosition().end,line:t.line,column:t.column}))}}return $n.from(t).withArgs(...a).endingAt(e.getPosition()).build()}function Bn(e,t){const r=[],n={};if(e.checkAnySelector()||e.checkContextVar()||e.match("<")){const t=e.parsePrimary();if(r.push(t),e.match("*")){if(e.checkIdentifierLike()){const t=e.advance();r.push({type:"identifier",name:"*"+t.value,start:t.start-1,end:t.end,line:t.line,column:t.column})}}else if(e.checkIdentifierLike()){const t=e.parsePrimary();r.push(t)}}else if(e.checkIdentifierLike()){const t=e.parsePrimary();r.push(t)}if(e.match("and")&&e.match("set")&&e.checkIdentifierLike()){const t=e.advance();n.set={type:"identifier",name:t.value,start:t.start,end:t.end,line:t.line,column:t.column}}const i=$n.fromIdentifier(t).withArgs(...r).endingAt(e.getPosition());return Object.keys(n).length>0&&i.withModifiers(n),i.build()}function Fn(e,t){const r=[],n=Mn(e,[y]);n&&r.push(n),Wn(e,y,r);const i=Mn(e);return i&&r.push(i),$n.fromIdentifier(t).withArgs(...r).endingAt(e.getPosition()).build()}function Un(e,t){const r=[];if(e.check(b)){e.advance(),r.push(e.createIdentifier("between"));const n=Mn(e,[a]);n&&r.push(n),Wn(e,a,r);const i=Mn(e,[y,w,s]);i&&r.push(i);if(qn(e,[y,w],r)){const t=Mn(e);t&&r.push(t)}return $n.fromIdentifier(t).withArgs(...r).endingAt(e.getPosition()).build()}const n=Mn(e,[y,w]);n&&r.push(n);if(qn(e,[y,w],r)){const t=Mn(e);t&&r.push(t)}return $n.fromIdentifier(t).withArgs(...r).endingAt(e.getPosition()).build()}function Kn(e,t){const r=e.parseExpression();if(!r)return e.addError("Put command requires content expression"),null;const n=e.peek();if(!n||!M.includes(n.value))return e.addError(`Expected operation keyword (${M.join(", ")}) after put expression, got: ${n?.value}`),null;let a=e.advance().value;const o=a.toLowerCase();"at start of"===o||"at the start of"===o?a=I:"at end of"===o||"at the end of"===o?a=R:a===O&&(e.check(A)||e.check(C)?(_n(e,C),e.check(A)&&(e.advance(),e.check(g)&&(e.advance(),a=I))):e.check(i)&&(e.advance(),e.check(g)&&(e.advance(),a=R)));const s=e.parseExpression();return s?$n.fromIdentifier(t).withArgs(r,e.createIdentifier(a),s).endingAt(e.getPosition()).build():(e.addError("Put command requires target expression after operation keyword"),null)}const Gn=["innerhtml","outerhtml","into","over","delete","morph","morphouter"];function Yn(e,t){const o=e.savePosition();let s=null,l=[];try{s=function(e){if(!e.check(":"))return null;if(e.advance(),e.check(":")){e.advance();const t=e.advance();return{type:"identifier",name:t.value,scope:"global",start:t.start-2,end:t.end}}const t=e.advance();return{type:"identifier",name:t.value,scope:"local",start:t.start-1,end:t.end}}(e)??function(e){if(!e.check(T)&&!e.check(S))return null;const t=e.advance(),r=e.advance();return{type:"identifier",name:r.value,scope:t.value,start:t.start,end:r.end}}(e)??function(e,t){if(!e.check(C))return null;const r=e.savePosition();e.advance();const n=e.peek(),i=e.peekAt(1);if(n&&i&&i.value===g){const r=e.advance();if(e.check(g)){e.advance();const n=e.advance(),i=n.value.startsWith("#");return{type:"propertyOfExpression",property:{type:"identifier",name:r.value,start:r.start,end:r.end},target:{type:i?"idSelector":"cssSelector",value:n.value,start:n.start,end:n.end},start:t,end:e.savePosition()}}return e.restorePosition(t),null}if(n&&i&&i.value===f){const t=e.advance();return{type:"identifier",name:t.value,start:t.start,end:t.end}}return e.restorePosition(r),null}(e,o),s||(s=e.parseExpression())}catch{e.restorePosition(o),s=null}if(!s){const t=function(e){if(e.match(":")){const t=e.advance();return{expression:{type:"identifier",name:t.value,scope:"local",start:t.start,end:t.end},tokens:[]}}const t=[];for(;!(e.isAtEnd()||e.check(f)||e.check(r)||e.check(a)||e.check(n)||e.check(i));)t.push(e.parsePrimary());if(0===t.length)return{expression:null,tokens:[]};if(t.length>=4){const e=(e,t)=>e[t];if(e(t[0],"value")===C&&e(t[2],"value")===g){const r=t[1],n=t[3];return{expression:Pn(Tn(e(r,"value")||e(r,"name")||"",{start:r.start??0,end:r.end??0,line:r.line??1,column:r.column??1}),{type:"idSelector"===n.type?"idSelector":"cssSelector",value:e(n,"value")||e(n,"name")||"",start:n.start??0,end:n.end??0,line:n.line,column:n.column},{start:t[0].start??0,end:n.end??0,line:t[0].line??1,column:t[0].column??1}),tokens:[]}}}return 1===t.length?{expression:t[0],tokens:[]}:{expression:null,tokens:t}}(e);s=t.expression,l=t.tokens}if(!e.check(f)){const t=e.isAtEnd()?"end of input":e.peek().value;throw Error("Expected 'to' in set command, found: "+t)}e.advance();const c=e.parseExpression()??e.parsePrimary(),u=[];return s?u.push(s):l.length>0&&u.push(...l),u.push(e.createIdentifier(f)),c&&u.push(c),$n.fromIdentifier(t).withArgs(...u).endingAt(e.getPosition()).build()}function Zn(e,t){switch(t.name.toLowerCase()){case"put":return Kn(e,t);case"trigger":case"send":return Dn(e,t);case"remove":return Fn(e,t);case"toggle":return Un(e,t);case"set":return Yn(e,t);case"halt":return Vn(e,t);case"measure":return Bn(e,t);case"js":return function(e,t){const r=[];if(e.match("(")){for(;!e.check(")")&&!e.isAtEnd();)e.checkIdentifierLike()&&r.push(e.advance().value),e.match(",");e.consume(")","Expected ) after js parameters")}const n=e.peek().start;for(;!e.check(i)&&!e.isAtEnd();)e.advance();const a=e.peek(),o=a.start;e.consume(i,"Expected end after js code body");const s=e.getInputSlice(n,o),l={type:"literal",value:s.trim(),start:t.start,end:e.getPosition().end},c={type:"arrayLiteral",elements:r.map(e=>({type:"literal",value:e,start:t.start,end:t.end})),start:t.start,end:e.getPosition().end};return $n.fromIdentifier(t).withArgs(l,c).endingAt(e.getPosition()).build()}(e,t);case"tell":return function(e,t){const o=e.parseExpression();if(!o)throw Error("tell command requires a target expression");const s=[];for(;!e.isAtEnd();){if(e.checkIsCommand()){try{e.advance();const t=e.parseCommand();if(!t)break;s.push(t)}catch{break}if(e.match(a))continue;if(e.check(r)||e.check(n)||e.check(i))break;if(e.checkIsCommand())continue;break}break}if(0===s.length)throw Error("tell command requires at least one command after the target");return $n.fromIdentifier(t).withArgs(o,...s).endingAt(e.getPosition()).build()}(e,t);case"swap":case"morph":return function(e,t){const r=[];let n=null;if(!e.isAtEnd()){const t=e.peek();if(t&&t.value){const i=t.value.toLowerCase();Gn.includes(i)&&(n=i,e.advance(),r.push(e.createIdentifier(n)))}}if("delete"===n){const n=e.parseExpression();return n&&r.push(n),$n.fromIdentifier(t).withArgs(...r).endingAt(e.getPosition()).build()}!e.isAtEnd()&&e.check(g)&&(e.advance(),r.push(e.createIdentifier("of")));const i=e.parseExpression();if(i&&r.push(i),!e.isAtEnd()&&e.check(v)){e.advance(),r.push(e.createIdentifier("with"));const t=e.parseExpression();t&&r.push(t)}return $n.fromIdentifier(t).withArgs(...r).endingAt(e.getPosition()).build()}(e,t);default:return Xn(e,t)}}function Xn(e,t){const r=[];for(;!Rn(e,["catch","finally"])&&(e.checkIdentifierLike()||e.checkSelector()||e.checkLiteral()||e.checkTimeExpression()||e.match("<"));)r.push(e.parsePrimary());return $n.fromIdentifier(t).withArgs(...r).endingAt(e.getPosition()).build()}function Jn(e){if(e.isAtEnd())return!0;const t=e.peek().value;return["as","with","{","then","end","else","otherwise",")"].includes(t)||Rn(e)}function Qn(e,t){const r={};let n=null;if(!e.isAtEnd()&&e.check("/")&&(n=function(e){const t=e.savePosition();let r="";for(;!e.isAtEnd()&&!Jn(e);)r+=e.advance().value;return r&&"/"!==r?{type:"literal",value:r,raw:r,start:t,end:e.savePosition()}:(e.restorePosition(t),null)}(e)),n||(n=e.parsePrimary()),!n)return e.addError("fetch requires a URL"),$n.from(t).endingAt(e.getPosition()).build();!e.isAtEnd()&&e.check("{")&&(r.with=e.parsePrimary());for(let t=0;2>t&&!e.isAtEnd();t++)if(!e.check("as")||r.as){if(!e.check("with")||r.with)break;e.advance(),r.with=ei(e)?ti(e):e.parsePrimary()}else e.advance(),e.isAtEnd()||_n(e,"a")||_n(e,"an"),r.as=e.parsePrimary();const i=$n.from(t).withArgs(n).endingAt(e.getPosition());return Object.keys(r).length>0&&i.withModifiers(r),i.build()}function ei(e){if(e.check("{"))return!1;if(!e.checkIdentifierLike())return!1;const t=e.peekAt(1);return null!==t&&":"===t.value}function ti(e){const t=[],r=e.getPosition();do{if(!e.checkIdentifierLike())break;const r=e.advance(),n={type:"identifier",name:r.value,start:r.start,end:r.end,line:r.line,column:r.column};e.consume(":","Expected ':' after property name in fetch named arguments");const i=e.parsePrimary();i&&t.push({key:n,value:i})}while(e.match(",")&&!e.isAtEnd());const n=e.getPosition();return{type:"objectLiteral",properties:t,start:r.start,end:n.end,line:r.line,column:r.column}}class ri{constructor(e,t,r){this.current=0,this.warnings=[],this.tokens=e,this.keywordResolver=t?.keywords,this.registryIntegration=t?.registryIntegration,t?.semanticAnalyzer&&t?.language&&(this.semanticAdapter=new xn({analyzer:t.semanticAnalyzer,language:t.language,confidenceThreshold:t.semanticConfidenceThreshold??.5})),this.originalInput=r||e.map(e=>e.value).join(" ")}resolveKeyword(e){return this.keywordResolver?this.keywordResolver.resolve(e)??e:e}addWarning(e){this.warnings.push(e)}parse(){try{if(0===this.tokens.length)return this.addError("Cannot parse empty input"),{success:!1,node:this.createErrorNode(),tokens:this.tokens,error:this.error,warnings:this.warnings};if(this.check("behavior")){const e=[];for(;this.check("behavior");){this.advance();const t=this.parseBehaviorDefinition();if(t&&e.push(t),this.error)break}return this.error?{success:!1,node:1===e.length?e[0]:this.createProgramNode(e),tokens:this.tokens,error:this.error,warnings:this.warnings}:{success:!0,node:1===e.length?e[0]:this.createProgramNode(e),tokens:this.tokens,warnings:this.warnings}}if(this.check("init")||this.check("on")||this.check("def")||this.checkComment()){const e=[];for(;!this.isAtEnd();)if(this.checkComment())this.advance();else if(this.check("init")){this.advance();const t=this.parseTopLevelInitBlock();t&&e.push(t)}else if(this.check("on")){this.advance();const t=this.parseEventHandler();t&&e.push(t)}else{if(!this.check("def"))break;{this.advance();const t=this.parseDefFeature();t&&e.push(t)}}return this.isAtEnd()?this.error?{success:!1,node:this.createProgramNode(e),tokens:this.tokens,error:this.error,warnings:this.warnings}:{success:!0,node:this.createProgramNode(e),tokens:this.tokens,warnings:this.warnings}:(this.addError("Unexpected token: "+this.peek().value),{success:!1,node:this.createProgramNode(e),tokens:this.tokens,error:this.error,warnings:this.warnings})}if(this.checkIsCommand()||this.isCommand(this.peek().value)&&!this.isKeyword(this.peek().value)){const e=this.parseCommandSequence();if(e){if(!this.isAtEnd()&&this.check("on")){const t=[e];let r=0;for(;!this.isAtEnd()&&this.check("on");){this.peek(),this.advance();const e=this.parseEventHandler();if(e&&(t.push(e),r++),this.isAtEnd()||this.peek(),this.isAtEnd(),this.check("on"),!this.isAtEnd()&&!this.check("on")){if(!this.isAtEnd())return this.peek(),this.addError("Unexpected token after event handlers: "+this.peek().value),{success:!1,node:this.createProgramNode(t),tokens:this.tokens,error:this.error};break}}return this.error?{success:!1,node:this.createProgramNode(t),tokens:this.tokens,error:this.error,warnings:this.warnings}:{success:!0,node:this.createProgramNode(t),tokens:this.tokens,warnings:this.warnings}}return this.isAtEnd()?this.error?{success:!1,node:e,tokens:this.tokens,error:this.error,warnings:this.warnings}:{success:!0,node:e,tokens:this.tokens,warnings:this.warnings}:(this.addError("Unexpected token: "+this.peek().value),{success:!1,node:e||this.createErrorNode(),tokens:this.tokens,error:this.error})}}const e=this.parseExpression();return this.error?{success:!1,node:e||this.createErrorNode(),tokens:this.tokens,error:this.error}:this.isAtEnd()?{success:!0,node:e,tokens:this.tokens,warnings:this.warnings}:(this.addError("Unexpected token: "+this.peek().value),{success:!1,node:e||this.createErrorNode(),tokens:this.tokens,error:this.error,warnings:this.warnings})}catch(e){return this.addError(e instanceof Error?e.message:"Unknown parsing error"),{success:!1,node:this.createErrorNode(),tokens:this.tokens,error:this.error,warnings:this.warnings}}}parseExpression(){return this.parseAssignment()}parseAssignment(){let e=this.parseLogicalOr();if(this.match("=")){if(this.check(">")){if(this.advance(),this.addError('Arrow functions (=>) are not supported in hyperscript. Use "js ... end" blocks for JavaScript callbacks.'),!this.isAtEnd())try{this.parseExpression()}catch{}return this.createErrorNode()}const t=this.previous().value,r=this.parseAssignment();e=this.createBinaryExpression(t,e,r)}return e}parseLogicalOr(){let e=this.parseLogicalAnd();for(;this.match("or");){const t=this.previous().value,r=this.parseLogicalAnd();e=this.createBinaryExpression(t,e,r)}return e}parseLogicalAnd(){let e=this.parseEquality();for(;this.match("and");){const t=this.previous().value,r=this.parseEquality();e=this.createBinaryExpression(t,e,r)}return e}parseEquality(){let e=this.parseComparison();for(;this.matchComparisonOperator()||this.match("is","match","matches","contains","include","includes","in","of","as","really");){const t=this.previous().value;if(ri.POSTFIX_UNARY_OPERATORS.has(t)){e=this.createUnaryExpression(t,e,!1);continue}const r=this.parseComparison();e=this.createBinaryExpression(t,e,r)}return e}parseComparison(){let e=this.parseAddition();for(;this.matchComparisonOperator();){const t=this.previous().value;if(ri.POSTFIX_UNARY_OPERATORS.has(t)){e=this.createUnaryExpression(t,e,!1);continue}const r=this.parseAddition();e=this.createBinaryExpression(t,e,r)}return e}parseAddition(){let e=this.parseMultiplication();for(;this.match("+","-")||this.matchOperator("+")||this.matchOperator("-");){const t=this.previous().value;if(this.check("+")||this.check("-"))return this.addError(`Invalid operator combination: ${t}${this.peek().value}`),e;if(this.isAtEnd())return this.addError(`Expected expression after '${t}' operator`),e;const r=this.parseMultiplication();e=this.createBinaryExpression(t,e,r)}return e}parseMultiplication(){let e=this.parseUnary();for(;this.match("*","/","%","mod");){const t=this.previous().value;if(this.check("*")||this.check("/")||this.check("%")||this.check("+")||this.check("-")){const r=this.peek().value;return this.addError("*"===t&&"*"===r?"Unexpected token: "+r:`Invalid operator combination: ${t}${r}`),e}if(this.isAtEnd())return this.addError(`Expected expression after '${t}' operator`),e;const r=this.parseUnary();e=this.createBinaryExpression(t,e,r)}return e}parseUnary(){if(this.match("not","no","exists","some","-","+")){const e=this.previous().value;if(this.isAtEnd())return this.addError(`Expected expression after '${e}' operator`),this.createErrorNode();const t=this.parseUnary();return this.createUnaryExpression(e,t,!0)}if(this.check("does")&&this.tokens.length>this.current+1&&"not"===this.tokens[this.current+1].value&&this.tokens.length>this.current+2&&"exist"===this.tokens[this.current+2].value){if(this.advance(),this.advance(),this.advance(),this.isAtEnd())return this.addError("Expected expression after 'does not exist' operator"),this.createErrorNode();const e=this.parseUnary();return this.createUnaryExpression("does not exist",e,!0)}return this.parseImplicitBinary()}parseImplicitBinary(){let e=this.parseCall();for(;!(this.isAtEnd()||this.checkBasicOperator()||this.check("then")||this.check("and")||this.check("else")||this.check(")")||this.check("]")||this.check(","));){if("identifier"!==e.type){if("literal"===e.type&&(this.checkNumber()||this.checkIdentifier())){const t=this.peek();return this.addError(`Missing operator between '${e.raw||e.value}' and '${t.value}'`),e}break}if(this.isCommand(e.name))if(this.isCompoundCommand(e.name.toLowerCase())){if(!(this.checkCssSelector()||this.checkIdSelector()||this.checkClassSelector()||this.checkTimeExpression()||this.checkString()||this.checkNumber()||this.checkContextVar()||this.checkIdentifier()||this.checkKeyword()))break;{const t=this.createCommandFromIdentifier(e);t&&(e=t)}}else{if("wait"===e.name.toLowerCase()&&this.checkTimeExpression()){const t=this.createCommandFromIdentifier(e);t&&(e=t)}else{if(!this.checkSelector())break;{const t=this.parseCall();e=this.createBinaryExpression(" ",e,t)}}}else{if(!this.checkSelector())break;{const t=this.parseCall();e=this.createBinaryExpression(" ",e,t)}}}return e}isCommand(e){return this.keywordResolver?this.keywordResolver.isCommand(e):q.isCommand(e)}isKeyword(e){return this.keywordResolver?this.keywordResolver.isKeyword(e):q.isKeyword(e)}createCommandFromIdentifier(e){const t=[],r=this.resolveKeyword(e.name.toLowerCase());if(this.isCompoundCommand(r))return this.parseCompoundCommand(e);for(;!(this.isAtEnd()||this.check("then")||this.check("and")||this.check("else")||this.checkIsCommand())&&(this.checkContextVar()||this.checkIdentifier()||this.checkKeyword()||this.checkEvent()||this.checkCssSelector()||this.checkIdSelector()||this.checkClassSelector()||this.checkString()||this.checkNumber()||this.checkTimeExpression()||this.match("<"));)t.push(this.parsePrimary());return{type:"command",name:e.name,args:t,isBlocking:!1,...void 0!==e.start&&{start:e.start},end:this.getPosition().end,...void 0!==e.line&&{line:e.line},...void 0!==e.column&&{column:e.column}}}isCompoundCommand(e){return q.isCompoundCommand(e)}parseCompoundCommand(e){return Zn(this.getContext(),e)}parsePutCommand(e){return Kn(this.getContext(),e)}parseSetCommand(e){return Yn(this.getContext(),e)}parseHaltCommand(e){return Vn(this.getContext(),e)}parseMeasureCommand(e){return Bn(this.getContext(),e)}parseTriggerCommand(e){return Dn(this.getContext(),e)}parseCommandListUntilEnd(){const e=[];for(;!this.isAtEnd()&&!this.check("end");){this.peek(),this.peek();let t=!1;const r=this.checkIsCommand(),n=!r&&this.checkIdentifier()&&this.isCommand(this.peek().value);if(r||n){this.peek(),this.advance();const r=this.error;try{const n=this.parseCommand();this.error&&this.error!==r&&(this.error=r),n&&(e.push(n),t=!0)}catch(e){this.error=r}}else this.checkIdentifier()&&this.peek();if(!t){this.peek();break}for(this.peek();!(this.isAtEnd()||this.check("end")||this.checkIsCommand()||this.isCommand(this.peek().value)||this.check("then")||this.check("and")||this.check(","));)this.peek(),this.advance();if(!this.match("then","and",",")&&(!this.checkIsCommand()&&!this.isCommand(this.peek().value))){this.peek();break}}if(this.peek(),!this.check("end"))throw this.peek(),this.peek(),Error('Expected "end" to close repeat block');return this.advance(),e}parseRepeatCommand(e){return function(e,t){const r=[];let n="forever",i=null,a=null,o=null,m=null,f=null,g=null;if(e.check(s)){e.advance(),n=s;const t=e.peek();xe(t)&&(f=t.value,e.advance()),e.check(h)&&(e.advance(),m=e.parseExpression())}else if(e.check(h))e.advance(),n=s,f="it",m=e.parseExpression();else if(e.check(l))e.advance(),n=l,o=e.parseExpression();else if(e.check(c))if(e.advance(),n=c,e.check(z)){e.advance(),n="until-event";const t=e.peek();if(!xe(t)&&!ke(t))throw Error('Expected event name after "event"');i=t.value,e.advance(),e.peek(),e.peek(),e.check(y)&&(e.advance(),e.peek(),_n(e,C),e.peek(),a=e.parsePrimary())}else o=e.parseExpression();else e.check(u)?(e.advance(),n=u):(g=e.parseExpression(),e.check(p)&&(e.advance(),n=p));let k=null;if(e.check(v)){const t=e.peekAt(1);t&&t.value.toLowerCase()===d&&(e.advance(),e.advance(),k=d)}else if(e.check(d)){e.advance();const t=e.peek();xe(t)?(k=t.value,e.advance()):k=d}const b=e.parseCommandListUntilEnd();r.push({type:"identifier",name:n,start:t.start,end:t.end,line:t.line,column:t.column});const w={start:t.start,end:t.end,line:t.line,column:t.column};return f&&r.push(An(f,w)),m&&r.push(m),o&&r.push(o),g&&r.push(g),i&&r.push(An(i,w)),a&&r.push(a),k&&r.push(An(k,w)),r.push(Cn(b,{...w,end:w.end||0})),$n.from(t).withArgs(...r).endingAt(e.getPosition()).build()}(this.getContext(),e)}parseForCommand(e){return function(e,t){const r=[];let n=null,i=null;e.check(m)&&e.advance();const a=e.peek();if(!xe(a))throw Error('Expected variable name after "for"');if(n=a.value,e.advance(),!e.check(h))throw Error('Expected "in" after variable name in for loop');if(e.advance(),i=e.parseExpression(),!i)throw Error('Expected collection expression after "in"');let o=null;if(e.check(v)){const t=e.peekAt(1);t&&t.value.toLowerCase()===d&&(e.advance(),e.advance(),o=d)}else if(e.check(d)){e.advance();const t=e.peek();xe(t)?(o=t.value,e.advance()):o=d}const s=e.parseCommandListUntilEnd();r.push({type:"identifier",name:"for",start:t.start,end:t.end,line:t.line,column:t.column});const l={start:t.start,end:t.end,line:t.line,column:t.column};return r.push(An(n,l)),r.push(i),o&&r.push(An(o,l)),r.push(Cn(s,{...l,end:l.end||0})),$n.from({...t,value:"repeat"}).withArgs(...r).endingAt(e.getPosition()).build()}(this.getContext(),e)}parseWaitCommand(e){return function(e,t){const r=[];if(e.checkTimeExpression()||e.checkLiteral()){const n=e.parsePrimary();return r.push(n),$n.from(t).withArgs(...r).blocking().endingAt(e.getPosition()).build()}if(e.check("for")){e.advance();const n=[];do{const t=e.peek();if(!xe(t))throw Error('Expected event name after "for"');const r=t.value;e.advance();const i=[];if(e.check("(")){for(e.advance();!e.isAtEnd()&&!e.check(")");){const t=e.peek();if(!xe(t))break;i.push(t.value),e.advance(),e.check(",")&&e.advance()}if(!e.check(")"))throw Error('Expected ")" after event parameters');e.advance()}if(n.push({name:r,params:i}),!e.check("or"))break;e.advance()}while(!e.isAtEnd());let i=null;e.check(y)&&(e.advance(),_n(e,C),i=e.parsePrimary());const a={start:t.start,end:e.getPosition().end,line:t.line,column:t.column};r.push(jn(n.map(e=>Ln([{key:Tn("name",a),value:En(e.name,`"${e.name}"`,a)},{key:Tn("args",a),value:jn(e.params.map(e=>En(e,`"${e}"`,a)),a)}],a)),a)),i&&r.push(i)}return $n.from(t).withArgs(...r).blocking().endingAt(e.getPosition()).build()}(this.getContext(),e)}parseInstallCommand(e){return function(e,t){const r=[];if(!e.checkIdentifierLike())throw Error('Expected behavior name after "install"');const n=e.advance().value,i=e.previous();if(r.push(Tn(n,{start:i.start,end:i.end,line:i.line,column:i.column})),e.check("(")){e.advance();const n=[];for(;!e.isAtEnd()&&!e.check(")");){const t=e.savePosition();let r;if(e.checkIdentifierLike()){const n=e.peek().value;e.advance(),e.check(":")?(e.advance(),r=n):e.restorePosition(t)}const i=e.parseExpression();if(n.push(void 0!==r?{name:r,value:i}:{value:i}),e.check(","))e.advance();else if(!e.check(")"))break}if(!e.check(")"))throw Error('Expected ")" after behavior parameters');if(e.advance(),n.length>0){const i={start:t.start,end:e.getPosition().end,line:t.line,column:t.column};r.push(Ln(n.map(e=>({key:e.name?Tn(e.name,i):En("_positional","_positional",i),value:e.value})),i))}}return $n.from(t).withArgs(...r).endingAt(e.getPosition()).build()}(this.getContext(),e)}parseTransitionCommand(e){return function(e,t){const r=[],n={};let i=null;const a=e.peek();if(xe(a)||"*"===a.value){let t="";e.check("*")&&(t="*",e.advance());const r=function(e){if(!e.checkIdentifierLike())return"";let t=e.advance().value;for(;e.check("-")&&!e.isAtEnd();)t+="-",e.advance(),e.checkIdentifierLike()&&(t+=e.advance().value);return t}(e);r&&(t+=r,i={type:"string",value:t,start:a.start||0,end:e.getPosition().end,line:a.line,column:a.column})}if(!i)throw Error("Transition command requires a CSS property");if(r.push(i),!e.check(f))throw Error('Expected "to" keyword after property in transition command');e.advance();const o=e.parsePrimary();if(n.to=o,e.check("over")){e.advance();const t=e.parsePrimary();n.over=t}if(e.check(v)){e.advance();const t=e.parsePrimary();n.with=t}return $n.from(t).withArgs(...r).withModifiers(n).endingAt(e.getPosition()).build()}(this.getContext(),e)}parseAddCommand(e){return function(e,t){const r=[];if(e.match("{"))r.push(e.parseCSSObjectLiteral());else{const t=Mn(e,[f]);t&&r.push(t)}if(e.check(f)){e.advance();const t=Mn(e);t&&r.push(t)}return $n.from(t).withArgs(...r).endingAt(e.getPosition()).build()}(this.getContext(),e)}parseIfCommand(e){return Hn(this.getContext(),e)}parseRemoveCommand(e){return Fn(this.getContext(),e)}parseToggleCommand(e){return Un(this.getContext(),e)}parseRegularCommand(e){return Xn(this.getContext(),e)}parseCall(){let e=this.parsePrimary();for(;;)if(this.match("("))e=this.finishCall(e);else if(this.match(".")){const t=this.consumeIdentifier("Expected property name after '.' - malformed member access");e=this.createMemberExpression(e,this.createIdentifier(t.value),!1)}else if(this.match("[")){const t=this.parseExpression();this.consume("]","Expected ']' after array index"),e=this.createMemberExpression(e,t,!0)}else{if(!this.check("'s"))break;{let t;if(this.advance(),this.check("*")){this.advance();t="*"+this.consumeIdentifier("Expected property name after * in CSS property syntax").value}else if(Le(this.peek())&&this.peek().value.startsWith("@"))t=this.advance().value;else{t=this.consumeIdentifier("Expected property name after possessive").value}e=this.createPossessiveExpression(e,this.createIdentifier(t))}}return e}parsePrimary(){if(this.check("*")){const e=this.current;if(this.advance(),!this.isAtEnd()&&xe(this.peek())){const e=this.advance().value;return this.createSelector("*"+e)}this.current=e}if(this.check("*")||this.check("/")||this.check("%")||this.check("mod")){const e=this.peek();return this.addError(`Binary operator '${e.value}' requires a left operand`),this.createErrorNode()}if(this.matchNumber()){const e=parseFloat(this.previous().value);return this.createLiteral(e,this.previous().value)}if(this.matchString()){const e=this.previous().value;if(2>e.length||e.startsWith('"')&&!e.endsWith('"')||e.startsWith("'")&&!e.endsWith("'"))return this.addError("Unclosed string literal - string not properly closed"),this.createErrorNode();const t=e.slice(1,-1),r=this.processEscapeSequences(t);return this.createLiteral(r,e)}if(this.matchTemplateLiteral()){const e=this.previous();return{type:"templateLiteral",value:e.value,start:e.start||0,end:e.end||0,line:e.line,column:e.column}}if(this.matchBoolean()){const e=this.previous().value;let t;switch(e){case"true":t=!0;break;case"false":t=!1;break;case"null":t=null;break;case"undefined":t=void 0;break;default:t="true"===e}return this.createLiteral(t,e)}if(this.matchTimeExpression()){const e=this.previous().value;return this.createLiteral(e,e)}if(this.matchQueryReference()){const e=this.previous().value.slice(1,-2).trim();return this.createSelector(e)}if(this.matchSelector())return this.createSelector(this.previous().value);if(this.match("<"))return this.parseHyperscriptSelector();if(this.match("(")){if(this.isAtEnd())return this.addError("Expected expression inside parentheses"),this.createErrorNode();const e=this.parseExpression();return this.consume(")","Expected closing parenthesis ')' after expression - unclosed parentheses"),e}if(this.match("{"))return this.parseObjectLiteral();if(this.match("["))return this.parseAttributeOrArrayLiteral();if(this.check(":")){if(this.advance(),this.check(":")){this.advance();const e=this.advance();return{type:"identifier",name:e.value,scope:"global",start:e.start-2,end:e.end,line:e.line,column:e.column}}{const e=this.advance();return{type:"identifier",name:e.value,scope:"local",start:e.start-1,end:e.end,line:e.line,column:e.column}}}if(this.matchBasicOperator()){const e=this.previous();return this.createIdentifier(e.value)}const e=this.peek();if(!(e&&("end"===e.value||"else"===e.value||"then"===e.value))&&(this.matchPredicate(Pe)||this.matchPredicate(ge)||this.matchPredicate(be)||this.matchPredicate(ve)||this.matchPredicate(ke))){const e=this.previous();if("new"===e.value)return this.parseConstructorCall();if("on"===e.value)return this.parseEventHandler();if("if"===e.value)return this.parseConditional();if("closest"===e.value||"first"===e.value||"last"===e.value||"previous"===e.value||"next"===e.value){if(this.check("(")||this.checkCssSelector()||this.checkClassSelector()||this.checkIdSelector()||this.check("<")||this.checkQueryReference())return this.parseNavigationFunction(e.value);if(this.check(".")){const t=this.current;if(this.advance(),this.checkIdentifier()){const t=this.advance().value,r=this.createSelector("."+t);return this.createCallExpression(this.createIdentifier(e.value),[r])}this.current=t}if(this.check("#")){const t=this.current;if(this.advance(),this.checkIdentifier()){const t=this.advance().value,r=this.createSelector("#"+t);return this.createCallExpression(this.createIdentifier(e.value),[r])}this.current=t}return this.createIdentifier(e.value)}if("my"===e.value&&!this.check("."))return this.parseContextPropertyAccess("me");if("its"===e.value&&!this.check("."))return this.parseContextPropertyAccess("it");if("your"===e.value&&!this.check("."))return this.parseContextPropertyAccess("you");if("the"===e.value)return this.parseTheXofY();if("values"===e.value&&this.check("of")){this.advance();return{type:"propertyOfExpression",property:{type:"identifier",name:"values"},target:this.parsePrimary(),line:e.line,column:e.column}}return this.createIdentifier(e.value)}if(this.match("$"))return this.parseDollarExpression();if(Le(this.peek())&&this.peek().value.startsWith("@")){const e=this.advance();return{type:"attributeAccess",attributeName:e.value.substring(1),start:e.start,end:e.end,line:e.line,column:e.column}}const t=this.peek();return this.addError(`Unexpected token: ${t.value} at line ${t.line}, column ${t.column}`),this.advance(),this.createErrorNode()}parseDollarExpression(){if(this.checkNumber()){const e=this.advance().value;return this.createLiteral(e,"$"+e)}if(this.checkIdentifier()){const e=this.advance();let t=this.createIdentifier(e.value);for(;this.match(".");){if(!this.checkIdentifier())return this.addError("Expected property name after '.' in dollar expression"),this.createErrorNode();{const e=this.advance();t=this.createMemberExpression(t,this.createIdentifier(e.value),!1)}}return{type:"dollarExpression",expression:t,raw:`$${e.value}${this.previous().value||""}`,line:e.line,column:e.column-1}}return this.addError("Expected identifier or number after '$'"),this.createErrorNode()}parseHyperscriptSelector(){let e="";for(;!this.check("/")&&!this.isAtEnd();)e+=this.advance().value;return this.consume("/","Expected '/' in hyperscript selector"),this.consume(">","Expected '>' after '/' in hyperscript selector"),this.createSelector(e)}parseObjectLiteral(){const e=[],t=this.getPosition();if(this.check("}"))return this.advance(),{type:"objectLiteral",properties:e,start:t.start,end:this.getPosition().end,line:t.line,column:t.column};do{let t;if(this.matchPredicate(Pe))t=this.createIdentifier(this.previous().value);else{if(!this.matchString())return this.addError("Expected property name in object literal"),this.createErrorNode();{const e=this.previous().value,r=e.slice(1,-1);t=this.createLiteral(r,e)}}this.consume(":","Expected ':' after property name in object literal");const r=this.parseExpression();if(e.push({key:t,value:r}),!this.match(","))break;if(this.check("}"))break}while(!this.isAtEnd());return this.consume("}","Expected '}' after object literal properties"),{type:"objectLiteral",properties:e,start:t.start,end:this.getPosition().end,line:t.line,column:t.column}}parseCSSObjectLiteral(){const e=this.getPosition(),t=[];do{if(this.check("}"))break;let r;if(this.matchPredicate(Pe))r=this.createIdentifier(this.previous().value);else{if(!this.matchString())return this.addError("Expected CSS property name"),this.createErrorNode();{const e=this.previous().value,t=e.slice(1,-1);r=this.createLiteral(t,e)}}if(!this.consume(":","Expected ':' after CSS property name"))return this.createErrorNode();const n=[];let i=!1,a=0;for(;!this.isAtEnd()&&(0!==a||!this.check(";")&&!this.check("}"));){const e=this.advance();n.push(e.value),"$"===e.value&&this.check("{")&&(i=!0),"{"===e.value&&a++,"}"===e.value&&a--}const o=n.join(""),s=i?{type:"templateLiteral",value:o,start:e.start,end:this.getPosition().end,line:e.line,column:e.column}:this.createLiteral(o,o);if(t.push({key:r,value:s}),this.check(";")&&this.advance(),this.check("}"))break}while(!this.isAtEnd());return this.consume("}","Expected '}' after CSS object literal properties"),{type:"objectLiteral",properties:t,start:e.start,end:this.getPosition().end,line:e.line,column:e.column}}parseConstructorCall(){const e=this.previous();if(!this.checkIdentifier())return this.addError('Expected constructor name after "new"'),this.createErrorNode();const t=this.advance(),r=t.value;if(!this.check("("))return this.addError('Expected "(" after constructor name'),this.createErrorNode();this.advance();if(this.check(")"))this.advance();else{let e=1;for(;e>0&&!this.isAtEnd();){const t=this.advance();"("===t.value&&e++,")"===t.value&&e--}}return{type:"callExpression",callee:{type:"identifier",name:r,start:t.start,end:t.end,line:t.line,column:t.column},arguments:[],isConstructor:!0,start:e.start,end:this.previous().end,line:e.line,column:e.column}}parseTopLevelInitBlock(){const e=this.getPosition(),t=this.parseCommandBlock(["end"]);return this.consume("end","Expected 'end' after init block"),{type:"initBlock",commands:t,start:e.start,end:this.getPosition().end,line:e.line,column:e.column}}parseDefFeature(){const e=this.getPosition();let t="";if(!this.checkIdentifier())return this.addError("Expected function name after 'def'"),{type:"def",name:"",params:[],body:[],start:e.start,end:this.getPosition().end,line:e.line,column:e.column};for(t=this.advance().value;this.check(".");)this.advance(),this.checkIdentifier()&&(t+="."+this.advance().value);const r=[];if(this.check("(")){if(this.advance(),!this.check(")"))for(this.checkIdentifier()&&r.push(this.advance().value);this.check(",");)this.advance(),this.checkIdentifier()&&r.push(this.advance().value);this.consume(")","Expected ')' after parameter list")}const n=this.parseCommandBlock(["end","catch","finally"]);let i,a,o;return this.check("catch")&&(this.advance(),this.checkIdentifier()&&(i=this.advance().value),a=this.parseCommandBlock(["end","finally"])),this.check("finally")&&(this.advance(),o=this.parseCommandBlock(["end"])),this.consume("end","Expected 'end' after function definition"),{type:"def",name:t,params:r,body:n,...void 0!==i&&{errorSymbol:i},...void 0!==a&&{errorHandler:a},...void 0!==o&&{finallyHandler:o},start:e.start,end:this.getPosition().end,line:e.line,column:e.column}}parseEventNameWithNamespace(e){let t;t=this.checkEvent()||this.checkIdentifier()||this.checkIsCommand()||this.checkIdentifierLike()?this.advance():this.consumeEvent(e);let r=t.value;if(this.check(":")){this.advance();r=`${r}:${this.advance().value}`}return r}callExprToCommandNode(e,t){return{type:"command",name:e.callee.name,args:e.arguments,isBlocking:!1,...void 0!==t.start&&{start:t.start},...void 0!==t.end&&{end:t.end},...void 0!==t.line&&{line:t.line},...void 0!==t.column&&{column:t.column}}}createPseudoCommandNode(e,t,r,n,i){return{type:"command",name:"pseudo-command",args:[{type:"objectLiteral",properties:[{key:{type:"identifier",name:"methodName"},value:{type:"literal",value:e,raw:`"${e}"`}},{key:{type:"identifier",name:"methodArgs"},value:{type:"literal",value:t.arguments,raw:JSON.stringify(t.arguments)}},...r?[{key:{type:"identifier",name:"preposition"},value:{type:"literal",value:r,raw:`"${r}"`}}]:[],{key:{type:"identifier",name:"targetExpression"},value:n}]}],isBlocking:!1,...void 0!==i.start&&{start:i.start},...void 0!==i.end&&{end:i.end},...void 0!==i.line&&{line:i.line},...void 0!==i.column&&{column:i.column}}}tryParsePseudoCommand(e,t){const r=e.callee.name,n=this.peek();if(!(ri.PSEUDO_COMMAND_PREPOSITIONS.includes(n.value.toLowerCase())||Pe(n)&&!this.isCommand(n.value)||be(n)))return{node:this.callExprToCommandNode(e,t),isPseudo:!1,targetFailed:!1};let i,a;this.isCommand(r)&&this.addWarning({type:"command-shadow",message:`Method '${r}' shadows hyperscript command`,suggestions:[`Rename method to avoid confusion (e.g., '${r}Fn', 'my${r.charAt(0).toUpperCase()+r.slice(1)}')`,`Use 'call' command instead: call ${r}(...)`,"This works but may cause ambiguity"],severity:"warning",code:"PSEUDO_CMD_SHADOW",...void 0!==t.line&&{line:t.line},...void 0!==t.column&&{column:t.column}}),ri.PSEUDO_COMMAND_PREPOSITIONS.includes(this.peek().value.toLowerCase())&&(i=this.advance().value.toLowerCase());try{a=this.parseExpression()}catch{return{node:this.callExprToCommandNode(e,t),isPseudo:!1,targetFailed:!0}}return{node:this.createPseudoCommandNode(r,e,i,a,t),isPseudo:!0,targetFailed:!1}}parseCommandWithErrorRecovery(){this.advance();const e=this.error;try{const t=this.parseCommand();return this.error&&this.error!==e&&(this.error=e),t}catch(t){return this.error=e,null}}parseEventHandler(){const e=[],t=this.parseEventNameWithNamespace("Expected event name after 'on'");for(e.push(t);this.check("or");){this.advance();const t=this.parseEventNameWithNamespace("Expected event name after 'or'");e.push(t)}let r;if(e.join(", "),this.registryIntegration){const t=e[0];if(this.registryIntegration.hasEventSource(t)){const e=this.registryIntegration.getEventSource(t);r=e?.name}}const n=[];if(this.match("(")){if(!this.check(")"))do{const e=this.advance();n.push(e.value)}while(this.match(","));this.consume(")","Expected ')' after event parameters"),n.join(", ")}const i={};for(;this.check(".");){this.advance();const e=this.advance().value.toLowerCase();if("once"===e)i.once=!0;else if("prevent"===e)i.prevent=!0;else if("stop"===e)i.stop=!0;else if("debounce"===e||"throttle"===e){if(!this.check("("))throw Error(`Expected '(' after '.${e}'`);{this.advance();const t=this.advance(),r=parseInt(t.value,10);if(isNaN(r))throw Error(`Expected number for ${e} delay, got: ${t.value}`);"debounce"===e?i.debounce=r:i.throttle=r,this.consume(")",`Expected ')' after ${e} delay`)}}}if(this.check("debounced")||this.check("throttled")){const e=this.advance().value.toLowerCase(),t="debounced"===e?"debounce":"throttle";if(this.match("at"))if(this.checkTimeExpression()){const e=this.advance(),r=(a=e.value).endsWith("ms")?parseInt(a,10):a.endsWith("seconds")||a.endsWith("s")?1e3*parseFloat(a):a.endsWith("minutes")?6e4*parseFloat(a):a.endsWith("hours")?36e5*parseFloat(a):a.endsWith("days")?864e5*parseFloat(a):parseInt(a,10);i[t]=r}else if(this.matchNumber()){const e=parseInt(this.previous().value,10);i[t]=e}else this.addError(`Expected time expression after '${e} at', got: ${this.peek().value}`);else this.addError(`Expected 'at' after '${e}'`)}var a;let o,s,l,c;if(this.match("[")&&(o=this.parseExpression(),this.consume("]","Expected ']' after event condition")),this.match("from")){const e=this.advance();s=e.value}if(this.match("of")){const e=this.advance();l=e.value.startsWith("@")?e.value.substring(1):e.value}this.match("in")&&(c=this.parseExpression());const u=[];for(this.isAtEnd()||this.peek(),this.isAtEnd();!this.isAtEnd()&&(this.peek(),this.peek(),!this.check("on"));)if(this.checkComment())this.peek(),this.advance();else{if(this.check("end")){this.advance();break}if(this.checkIsCommand()){const e="("===this.tokens[this.current+1]?.value,t=this.peek().value.toLowerCase();if(e&&!("js"===t||"tell"===t)){let e;const t=this.error;try{e=this.parseExpression()}catch(e){this.error=t,this.advance();const r=this.parseCommand();u.push(r);continue}if(e&&"callExpression"===e.type){const t=this.tryParsePseudoCommand(e,e);if(u.push(t.node),t.isPseudo||t.targetFailed)continue}}else{const e=this.parseCommandWithErrorRecovery();e&&(u.push(e),this.isAtEnd()||this.peek())}}else{if(!this.checkIdentifier())break;{const e=this.peek();if(this.isCommand(e.value)){const e=this.parseCommandWithErrorRecovery();e&&u.push(e)}else{let e;const t=this.error;try{e=this.parseExpression()}catch(e){this.error=t;break}if(e&&"callExpression"===e.type){const t=this.tryParsePseudoCommand(e,e);if(u.push(t.node),t.targetFailed)continue}else{if(!e||"binaryExpression"!==e.type||" "!==e.operator)break;{const t=e;if(!t.left||"identifier"!==t.left.type||!this.isCommand(t.left.name))break;{const r={type:"command",name:t.left.name,args:[t.right],isBlocking:!1,...void 0!==e.start&&{start:e.start},...void 0!==e.end&&{end:e.end},...void 0!==e.line&&{line:e.line},...void 0!==e.column&&{column:e.column}};u.push(r)}}}}}}for(;!(this.isAtEnd()||this.checkIsCommand()||this.isCommand(this.peek().value)||this.check("then")||this.check("and")||this.check(",")||this.check("on"));)this.advance();if(!this.match("then","and",",")&&!this.checkIsCommand()&&!this.isCommand(this.peek().value))break}const p=this.getPosition(),m={type:"eventHandler",event:1===e.length?e[0]:e.join("|"),events:e,commands:u,...n.length>0&&{params:n},...o&&{condition:o},...s&&{target:s},...l&&{attributeName:l},...c&&{watchTarget:c},...r&&{customEventSource:r},...Object.keys(i).length>0&&{modifiers:i},start:p.start,end:p.end,line:p.line,column:p.column};return e.join(", "),m}parseBehaviorDefinition(){const e=this.getPosition(),t=this.consumeIdentifier("Expected behavior name after 'behavior' keyword").value;/^[A-Z]/.test(t)||this.addError(`Behavior name must start with uppercase letter (got "${t}")`);const r=[];if(this.match("(")){if(!this.check(")"))do{const e=this.consumeIdentifierLike("Expected parameter name");r.push(e.value)}while(this.match(","));this.consume(")","Expected ')' after behavior parameters")}const n=new Set(r),i=[];let a;for(;!this.isAtEnd()&&!this.check("end");)if(this.match("on")){const e=this.getPosition(),t=this.peek().value;this.advance();const r=[];if(this.check("(")){for(this.advance();!this.isAtEnd()&&!this.check(")");){const e=this.peek();Pe(e)?(r.push(e.value),this.advance(),this.check(",")&&this.advance()):this.advance()}this.check(")")&&this.advance()}let a;if(this.check("from")){this.advance();const e=[];if(this.check("the")&&this.advance(),!this.isAtEnd()){const t=this.peek(),r=n.has(t.value);this.checkIsCommand()&&!r||(e.push(t.value),a=t.value,this.advance())}}const o={type:"eventHandler",event:t,commands:this.parseCommandListUntilEnd(),...void 0!==a&&{target:a},...r.length>0&&{args:r},start:e.start,end:this.getPosition().end,line:e.line,column:e.column};i.push(o)}else{if(!this.match("init")){this.addError("Unexpected token in behavior body: "+this.peek().value);break}a={type:"initBlock",commands:this.parseCommandBlock(["end"]),start:e.start,end:this.getPosition().end,line:e.line,column:e.column},this.consume("end","Expected 'end' after init block")}this.consume("end","Expected 'end' to close behavior definition");return{type:"behavior",name:t,parameters:r,eventHandlers:i,...void 0!==a?{initBlock:a}:{},start:e.start,end:this.getPosition().end,line:e.line,column:e.column}}parseCommandSequence(){const e=[];for(;!this.isAtEnd();){if(this.checkIsCommand()||this.isCommand(this.peek().value)&&!this.isKeyword(this.peek().value)){this.advance();const t=this.error,r=this.parseCommand();if(this.error&&this.error!==t){this.error.message.includes("Expected closing parenthesis")||this.error.message.includes("Expected ')'")||this.error.message.includes("unclosed parenthes")||this.error.message.includes("Unclosed parenthes")||(this.error=t)}for(e.push(r);!(this.isAtEnd()||this.checkIsCommand()||this.isCommand(this.peek().value)||this.check("then")||this.check("on"));)this.peek(),this.advance();if(this.check("on"))break;if(this.match("then"))continue;if(this.checkIsCommand()||this.isCommand(this.peek().value)&&!this.isKeyword(this.peek().value))continue;break}this.addError("Expected command, got: "+this.peek().value);break}return 1===e.length?e[0]:function(e){return{type:"CommandSequence",commands:e,start:e[0]?.start||0,end:e[e.length-1]?.end||0,line:e[0]?.line||1,column:e[0]?.column||1}}(e)}getMultiWordPattern(e){return function(e){return Nn.find(t=>t.command===e.toLowerCase())||null}(e)}isTokenKeyword(e,t){return On(e,t)}parseMultiWordCommand(e,t){return function(e,t,r){const n=e.getMultiWordPattern(r);if(!n)return null;const i=[],a={};for(;!Rn(e,["catch","finally",...n.keywords])&&!On(e.peek(),n.keywords);){const t=e.parsePrimary();if(!t)break;if(i.push(t),!e.match(",")&&On(e.peek(),n.keywords))break}for(;!e.isAtEnd()&&On(e.peek(),n.keywords);){const t=e.advance().value,r=e.parseExpression();if(r&&(a[t]=r),!On(e.peek(),n.keywords))break}const o=$n.from(t).withArgs(...i).endingAt(e.getPosition());return Object.keys(a).length>0&&o.withModifiers(a),o.build()}(this.getContext(),e,t)}parseCommandBlock(e){const t=[];for(;!this.isAtEnd()&&!e.some(e=>this.check(e));)if(this.checkComment())this.advance();else{if(!this.checkIsCommand()&&!this.isCommand(this.peek().value))break;{this.advance();const e=this.parseCommand();t.push(e)}}return t}trySemanticParse(e){if(!this.semanticAdapter||!this.semanticAdapter.isAvailable())return null;try{const t=this.semanticAdapter.trySemanticParse(e);return t.success&&t.node?t.node:null}catch(e){return null}}getRemainingInput(){if(!this.originalInput)return this.tokens.slice(this.current>0?this.current-1:0).map(e=>e.value).join(" ");const e=this.current>0?this.tokens[this.current-1]:this.tokens[0];return e&&void 0!==e.start?this.originalInput.slice(e.start):this.originalInput}skipToCommandBoundary(){const e=["then","and","else","end"];for(;!this.isAtEnd();){const t=this.peek(),r=t.value.toLowerCase();if(e.includes(r))break;if(ve(t))break;this.advance()}}parseCommand(){const e=this.previous();let t=e.value;if(this.semanticAdapter&&!["install","wait","repeat","for","set","put","increment","decrement","add","if","unless","make","measure","trigger","halt","remove","exit","return","closest","js","tell"].includes(t.toLowerCase())){const e=this.getRemainingInput(),t=this.trySemanticParse(e);if(t)return this.skipToCommandBoundary(),t}if("beep"===t&&this.check("!")&&(this.advance(),t="beep!"),"fetch"===t)return Qn(this.getContext(),e);const r=this.parseMultiWordCommand(e,t);if(r)return r;const n=t.toLowerCase();if("repeat"===n)return this.parseRepeatCommand(e);if("for"===n)return this.parseForCommand(e);if("if"===n||"unless"===n)return this.parseIfCommand(e);if("wait"===n)return this.parseWaitCommand(e);if("install"===n)return this.parseInstallCommand(e);if("transition"===n)return this.parseTransitionCommand(e);if("add"===n)return this.parseAddCommand(e);if(this.isCompoundCommand(n)){return this.parseCompoundCommand({type:"identifier",name:n,start:e.start||0,end:e.end||0,line:e.line,column:e.column})||this.createErrorNode()}const i=[];if(("increment"===t||"decrement"===t)&&!this.isAtEnd())return function(e,t){const r=t.value,n="increment"===r?"+":"-";let i=!1;e.check(T)&&(i=!0,e.advance());const a=e.parseExpression();if(!a)throw Error("Expected variable or expression after "+r);let o;if(e.check(k)){e.advance();const t=e.parseExpression();if(!t)throw Error(`Expected amount after 'by' in ${r} command`);o=t}else o=En(1,"1",{start:t.start,end:e.previous().end,line:t.line,column:t.column});let s=a;i&&"identifier"===a.type&&(s={...a,scope:"global"});const l={start:t.start,end:e.previous().end,line:t.line,column:t.column},c=Sn(n,a,o,l),u=[s,Tn(f,l),c];return $n.from(t).withName("set").withArgs(...u).withOriginalCommand(r).endingAt({end:e.previous().end}).build()}(this.getContext(),e);for(;!(this.isAtEnd()||this.check("then")||this.check("and")||this.check("else")||this.check("end")||this.checkIsCommand());){const e=this.parseExpression();if(i.push(e||this.parsePrimary()),this.match(","))continue;const t=["into","from","to","with","by","at","before","after","over"];if(t.some(e=>this.check(e)))continue;const r=i[i.length-1];if(!r||"identifier"!==r.type&&"keyword"!==r.type||!t.includes(r.name??r.value))break}const a=this.getPosition();return{type:"command",name:t,args:i,isBlocking:!1,start:a.start,end:a.end,line:a.line,column:a.column}}parseConditional(){const e=this.parseExpression();this.consume("then","Expected 'then' after if condition");const t=this.parseConditionalBranch();let r;this.match("else")&&(r=this.parseConditionalBranch());const n=this.getPosition();return{type:"conditionalExpression",test:e,consequent:t,alternate:r,start:n.start,end:n.end,line:n.line,column:n.column}}parseConditionalBranch(){if(this.checkIsCommand()){const e=this.advance(),t=this.createIdentifier(e.value);return this.createCommandFromIdentifier(t)||t}if(this.checkIdentifier()||this.checkKeyword()){const e=this.peek();if(this.isCommand(e.value)){const e=this.advance(),t=this.createIdentifier(e.value);return this.createCommandFromIdentifier(t)||t}}return this.parseExpression()}parseNavigationFunction(e){const t=[];if(this.match("of"))t.push(this.parseExpression());else{if(this.check("("))return this.finishCall(this.createIdentifier(e));this.isAtEnd()||this.checkBasicOperator()||this.check("then")||this.check("else")||t.push(this.parsePrimary())}return this.createCallExpression(this.createIdentifier(e),t)}parseTheXofY(){if(!this.checkIdentifier())return this.createIdentifier("the");const e=this.peek(),t=e.value;if(["first","last","next","previous","random","closest"].includes(t))return this.advance(),this.parseNavigationFunction(t);if(this.advance(),!this.check("of"))return this.createIdentifier(t);this.advance();return{type:"propertyOfExpression",property:{type:"identifier",name:t},target:this.parsePrimary(),line:e.line,column:e.column}}parseContextPropertyAccess(e){if("me"===e&&this.match("*")){let t="";if(!this.checkIdentifier())return this.addError("Expected property name after 'my *'"),this.createMemberExpression(this.createIdentifier(e),this.createIdentifier(""),!1);for(t=this.advance().value;this.check("-")&&!this.isAtEnd();){if(t+="-",this.advance(),!this.checkIdentifier()){this.addError("Expected identifier after hyphen in CSS property name");break}t+=this.advance().value}const r="computed-"+t;return this.createMemberExpression(this.createIdentifier(e),this.createIdentifier(r),!1)}{if(Le(this.peek())&&this.peek().value.startsWith("@")){const t=this.advance();return this.createMemberExpression(this.createIdentifier(e),this.createIdentifier(t.value),!1)}const t=this.consumeIdentifier(`Expected property name after '${{me:"my",it:"its",you:"your"}[e]}'`);return this.createMemberExpression(this.createIdentifier(e),this.createIdentifier(t.value),!1)}}parseMyPropertyAccess(){return this.parseContextPropertyAccess("me")}finishCall(e){const t=[];if(!this.check(")"))do{if(this.check(","))return this.addError("Unexpected token in function arguments"),this.createCallExpression(e,[this.createErrorNode()]);t.push(this.parseExpression())}while(this.match(","));if(!this.check(")")&&"identifier"===e.type){const t=e.name;q.isCSSFunction(t)}return this.consume(")","Expected ')' after arguments"),this.createCallExpression(e,t)}createLiteral(e,t){return En(e,t,this.getPosition())}createIdentifier(e){return Tn(e,this.getPosition())}createBinaryExpression(e,t,r){return Sn(e,t,r,this.getPosition())}createUnaryExpression(e,t,r){return function(e,t,r,n){return{type:"unaryExpression",operator:e,argument:t,prefix:r,start:n.start,end:n.end,line:n.line,column:n.column}}(e,t,r,this.getPosition())}createCallExpression(e,t){return function(e,t,r){return{type:"callExpression",callee:e,arguments:t,start:r.start,end:r.end,line:r.line,column:r.column}}(e,t,this.getPosition())}createMemberExpression(e,t,r){return function(e,t,r,n){return{type:"memberExpression",object:e,property:t,computed:r,start:n.start,end:n.end,line:n.line,column:n.column}}(e,t,r,this.getPosition())}createSelector(e){return function(e,t){return{type:"selector",value:e,start:t.start,end:t.end,line:t.line,column:t.column}}(e,this.getPosition())}createPossessiveExpression(e,t){return function(e,t,r){return{type:"possessiveExpression",object:e,property:t,start:r.start,end:r.end,line:r.line,column:r.column}}(e,t,this.getPosition())}createErrorNode(){return function(e){return{type:"identifier",name:"__ERROR__",start:e.start,end:e.end,line:e.line,column:e.column}}(this.getPosition())}processEscapeSequences(e){return e.replace(/\\(.)/g,(e,t)=>{switch(t){case"n":return"\n";case"t":return"\t";case"r":return"\r";case"b":return"\b";case"f":return"\f";case"v":return"\v";case"0":return"\0";case"\\":return"\\";case'"':return'"';case"'":return"'";default:return t}})}createProgramNode(e){return function(e){if(0===e.length)return{type:"identifier",name:"__ERROR__",start:0,end:0,line:1,column:1};if(1===e.length)return e[0];const t={type:"Program",statements:e,start:e[0]?.start||0,end:e[e.length-1]?.end||0,line:e[0]?.line||1,column:e[0]?.column||1};return t}(e)}match(...e){for(const t of e)if(this.check(t))return this.advance(),!0;return!1}matchOperator(e){if(this.isAtEnd())return!1;const t=this.peek();return!(!$e(t)||t.value!==e)&&(this.advance(),!0)}check(e){if(this.isAtEnd())return!1;const t=this.peek().value;return this.resolveKeyword(t)===e}checkPredicate(e){return!this.isAtEnd()&&e(this.peek())}matchPredicate(e){return!!this.checkPredicate(e)&&(this.advance(),!0)}checkSelector(){return this.checkPredicate(Te)}matchSelector(){return this.matchPredicate(Te)}checkAnySelector(){return this.checkPredicate(Ee)}checkLiteral(){return this.checkPredicate(Se)}checkIdentifierLike(){return this.checkPredicate(xe)}checkIsCommand(){return this.checkPredicate(ve)}checkCommandTerminator(){return this.checkPredicate(Ue)}checkReference(){return this.checkPredicate(Ce)}checkTimeExpression(){return this.checkPredicate(Ae)}checkEvent(){return this.checkPredicate(ke)}checkContextVar(){return this.checkPredicate(be)}checkComment(){return this.checkPredicate(je)}checkIdentifier(){return this.checkPredicate(Pe)}checkKeyword(){return this.checkPredicate(ge)}checkString(){return this.checkPredicate(Ne)}matchString(){return this.matchPredicate(Ne)}checkNumber(){return this.checkPredicate(Oe)}matchNumber(){return this.matchPredicate(Oe)}checkBoolean(){return this.checkPredicate(Ie)}matchBoolean(){return this.matchPredicate(Ie)}checkTemplateLiteral(){return this.checkPredicate(Re)}matchTemplateLiteral(){return this.matchPredicate(Re)}checkQueryReference(){return this.checkPredicate(Me)}matchQueryReference(){return this.matchPredicate(Me)}checkIdSelector(){return this.checkPredicate(We)}checkClassSelector(){return this.checkPredicate(qe)}checkCssSelector(){return this.checkPredicate(_e)}checkBasicOperator(){return this.checkPredicate($e)}matchBasicOperator(){return this.matchPredicate($e)}matchTimeExpression(){return this.matchPredicate(Ae)}matchIdentifierLike(){return this.matchPredicate(xe)}matchComparisonOperator(){return this.matchPredicate(ze)}consumePredicate(e,t){return this.checkPredicate(e)?this.advance():(this.addError(t),this.peek())}consumeIdentifier(e){return this.consumePredicate(Pe,e)}consumeIdentifierLike(e){return this.consumePredicate(xe,e)}consumeEvent(e){return this.consumePredicate(ke,e)}advance(){return this.isAtEnd()||this.current++,this.previous()}isAtEnd(){return this.current>=this.tokens.length}peek(){return this.isAtEnd()?{kind:"unknown",value:"",start:0,end:0,line:1,column:1}:this.tokens[this.current]}previous(){return this.tokens[this.current-1]}consume(e,t){return this.check(e)?this.advance():(this.addError(t),this.peek())}addError(e){const t=this.peek();let r=t.start||0,n=t.line||1,i=t.column||1;if(e.includes("property name after '.'")){const e=this.current>0?this.previous():t;r=e.end||e.start||0,n=e.line||1,i=e.column||1}if(e.includes("parenthes")){const e=this.current>0?this.previous():t;r=e.end||e.start||0,n=e.line||1,i=e.column||1,0===r&&this.current>0&&(r=this.current)}if(e.includes("Expected expression after")){const e=this.current>0?this.previous():t;r=e.start||0,n=e.line||1,i=e.column||1,0===r&&(r=Math.max(1,this.current-1))}if(e.includes("Missing operand")){let e=t;for(let t=this.current-1;t>=0;t--){const r=this.tokens[t];if(r&&("+"===r.value||"-"===r.value)){e=r;break}}r=e.start||0,n=e.line||1,i=e.column||1}this.error={message:e,line:Math.max(1,n),column:Math.max(1,i),position:Math.max(0,r)}}parseAttributeOrArrayLiteral(){const e=this.previous().start,t=this.previous().line,r=this.previous().column;if(!this.isAtEnd()&&this.peek().value.startsWith("@")){const n=[];for(;!this.check("]")&&!this.isAtEnd();){const e=this.advance();n.push(e.value)}this.consume("]","Expected ']' after attribute literal");const i="["+n.join("")+"]";return{type:"literal",value:i,raw:i,start:e,end:this.previous().end,line:t,column:r}}const n=[];if(!this.check("]"))do{if(this.check("]"))break;n.push(this.parseExpression())}while(this.match(","));return this.consume("]","Expected ']' after array elements"),{type:"arrayLiteral",elements:n,start:e,end:this.previous().end,line:t,column:r}}getPosition(){const e=this.current>0?this.previous():this.peek();return{start:e.start||0,end:e.end||0,line:e.line||1,column:e.column||1}}getContext(){const e=this,t={tokens:this.tokens,advance:this.advance.bind(this),peek:this.peek.bind(this),previous:this.previous.bind(this),consume:this.consume.bind(this),check:this.check.bind(this),checkIdentifierLike:this.checkIdentifierLike.bind(this),checkSelector:this.checkSelector.bind(this),checkAnySelector:this.checkAnySelector.bind(this),checkLiteral:this.checkLiteral.bind(this),checkReference:this.checkReference.bind(this),checkTimeExpression:this.checkTimeExpression.bind(this),checkEvent:this.checkEvent.bind(this),checkIsCommand:this.checkIsCommand.bind(this),checkContextVar:this.checkContextVar.bind(this),match:this.match.bind(this),matchOperator:this.matchOperator.bind(this),isAtEnd:this.isAtEnd.bind(this),createIdentifier:this.createIdentifier.bind(this),createLiteral:this.createLiteral.bind(this),createSelector:this.createSelector.bind(this),createBinaryExpression:this.createBinaryExpression.bind(this),createUnaryExpression:this.createUnaryExpression.bind(this),createMemberExpression:this.createMemberExpression.bind(this),createPossessiveExpression:this.createPossessiveExpression.bind(this),createCallExpression:this.createCallExpression.bind(this),createErrorNode:this.createErrorNode.bind(this),createProgramNode:this.createProgramNode.bind(this),createCommandFromIdentifier:this.createCommandFromIdentifier.bind(this),parseExpression:this.parseExpression.bind(this),parsePrimary:this.parsePrimary.bind(this),parseCall:this.parseCall.bind(this),parseAssignment:this.parseAssignment.bind(this),parseLogicalOr:this.parseLogicalOr.bind(this),parseLogicalAnd:this.parseLogicalAnd.bind(this),parseEquality:this.parseEquality.bind(this),parseComparison:this.parseComparison.bind(this),parseAddition:this.parseAddition.bind(this),parseMultiplication:this.parseMultiplication.bind(this),parseImplicitBinary:this.parseImplicitBinary.bind(this),parseConditional:this.parseConditional.bind(this),parseConditionalBranch:this.parseConditionalBranch.bind(this),parseEventHandler:this.parseEventHandler.bind(this),parseBehaviorDefinition:this.parseBehaviorDefinition.bind(this),parseNavigationFunction:this.parseNavigationFunction.bind(this),parseMyPropertyAccess:this.parseMyPropertyAccess.bind(this),parseDollarExpression:this.parseDollarExpression.bind(this),parseHyperscriptSelector:this.parseHyperscriptSelector.bind(this),parseAttributeOrArrayLiteral:this.parseAttributeOrArrayLiteral.bind(this),parseObjectLiteral:this.parseObjectLiteral.bind(this),parseCSSObjectLiteral:this.parseCSSObjectLiteral.bind(this),parseCommand:this.parseCommand.bind(this),parseCommandSequence:this.parseCommandSequence.bind(this),parseCommandListUntilEnd:this.parseCommandListUntilEnd.bind(this),getPosition:this.getPosition.bind(this),addError:this.addError.bind(this),addWarning:this.addWarning.bind(this),isCommand:this.isCommand.bind(this),isCompoundCommand:this.isCompoundCommand.bind(this),isKeyword:this.isKeyword.bind(this),getMultiWordPattern:this.getMultiWordPattern.bind(this),resolveKeyword:this.resolveKeyword.bind(this),savePosition:()=>e.current,restorePosition:t=>{e.current=t},peekAt:t=>{const r=e.current+t;return r>=0&&e.tokens.length>r?e.tokens[r]:null},getInputSlice:(e,t)=>this.originalInput?0>e||e>=this.originalInput.length?"":void 0!==t?this.originalInput.slice(e,t):this.originalInput.slice(e):""};return Object.defineProperty(t,"current",{get:()=>e.current,set:t=>{e.current=t},enumerable:!0,configurable:!0}),t}}ri.POSTFIX_UNARY_OPERATORS=new Set(["exists","does not exist","is empty","is not empty"]),ri.PSEUDO_COMMAND_PREPOSITIONS=["from","on","with","into","at","to"];class ni{constructor(){this.hooks=new Map,this.beforeExecuteHooks=[],this.afterExecuteHooks=[],this.onErrorHooks=[],this.interceptCommandHooks=[]}register(e,t){this.unregister(e),this.hooks.set(e,t),t.beforeExecute&&this.beforeExecuteHooks.push(t.beforeExecute),t.afterExecute&&this.afterExecuteHooks.push(t.afterExecute),t.onError&&this.onErrorHooks.push(t.onError),t.interceptCommand&&this.interceptCommandHooks.push(t.interceptCommand)}unregister(e){const t=this.hooks.get(e);if(!t)return!1;if(t.beforeExecute){const e=this.beforeExecuteHooks.indexOf(t.beforeExecute);e>-1&&this.beforeExecuteHooks.splice(e,1)}if(t.afterExecute){const e=this.afterExecuteHooks.indexOf(t.afterExecute);e>-1&&this.afterExecuteHooks.splice(e,1)}if(t.onError){const e=this.onErrorHooks.indexOf(t.onError);e>-1&&this.onErrorHooks.splice(e,1)}if(t.interceptCommand){const e=this.interceptCommandHooks.indexOf(t.interceptCommand);e>-1&&this.interceptCommandHooks.splice(e,1)}return this.hooks.delete(e)}has(e){return this.hooks.has(e)}async runBeforeExecute(e){for(const t of this.beforeExecuteHooks)await t(e)}async runAfterExecute(e,t){for(const r of this.afterExecuteHooks)await r(e,t)}async runOnError(e,t){let r=t;for(const t of this.onErrorHooks){const n=await t(e,r);n instanceof Error&&(r=n)}return r}shouldIntercept(e,t){for(const r of this.interceptCommandHooks)if(r(e,t))return!0;return!1}getRegisteredNames(){return Array.from(this.hooks.keys())}clear(){this.hooks.clear(),this.beforeExecuteHooks=[],this.afterExecuteHooks=[],this.onErrorHooks=[],this.interceptCommandHooks=[]}}function ii(e){return e instanceof Error&&("isHalt"in e||"isExit"in e||"isBreak"in e||"isContinue"in e||"isReturn"in e)?e:null}function ai(e){return{ok:!0,value:e}}function oi(e){return{ok:!1,error:e}}function si(e){return!0===e.ok}class li{constructor(e){this.elementCleanups=new WeakMap,this.elementCount=0,this.typeCounts={listener:0,observer:0,interval:0,timeout:0,custom:0},this.globalCleanups=[],this.debugMode=e?.debug??!1}registerListener(e,t,r,n,i){this.addCleanup(e,{type:"listener",target:t,eventName:r,cleanup:()=>{t.removeEventListener(r,n,i)},description:r+" listener"})}registerObserver(e,t){this.addCleanup(e,{type:"observer",cleanup:()=>{t.disconnect()},description:"MutationObserver"})}registerInterval(e,t){this.addCleanup(e,{type:"interval",cleanup:()=>{clearInterval(t)},description:"Interval"})}registerTimeout(e,t){this.addCleanup(e,{type:"timeout",cleanup:()=>{clearTimeout(t)},description:"Timeout"})}registerCustom(e,t,r){this.addCleanup(e,{type:"custom",cleanup:t,description:r||"Custom cleanup"})}registerGlobal(e,t="custom",r){this.globalCleanups.push({type:t,cleanup:e,description:r||"Global cleanup"})}addCleanup(e,t){const r=this.elementCleanups.get(e);r?r.push(t):(this.elementCleanups.set(e,[t]),this.elementCount++),this.typeCounts[t.type]++}cleanupElement(e){const t=this.elementCleanups.get(e);if(!t||0===t.length)return 0;let r=0;for(const e of t){try{e.cleanup(),r++}catch(e){}this.typeCounts[e.type]--}return this.elementCleanups.delete(e),this.elementCount--,r}cleanupElementTree(e){let t=this.cleanupElement(e);const r=e.querySelectorAll("*");for(const e of r)t+=this.cleanupElement(e);return t}cleanupGlobal(){let e=0;for(const t of this.globalCleanups)try{t.cleanup(),e++}catch(e){}return this.globalCleanups=[],e}cleanupAll(){return this.cleanupGlobal()}hasCleanups(e){const t=this.elementCleanups.get(e);return void 0!==t&&t.length>0}getCleanupCount(e){const t=this.elementCleanups.get(e);return t?.length??0}getStats(){let e=0,t=0,r=0,n=0,i=0;for(const a of this.globalCleanups)switch(a.type){case"listener":e++;break;case"observer":t++;break;case"interval":r++;break;case"timeout":n++;break;case"custom":i++}return{elementsTracked:this.elementCount,listeners:this.typeCounts.listener+e,observers:this.typeCounts.observer+t,intervals:this.typeCounts.interval+r,timeouts:this.typeCounts.timeout+n,custom:this.typeCounts.custom+i,global:this.globalCleanups.length}}setDebugMode(e){this.debugMode=e}}const ci=new Map;function ui(e,t){return{me:e??null,it:null,you:null,result:null,locals:new Map,globals:ci,flags:{halted:!1,breaking:!1,continuing:!1,returning:!1,async:!1}}}class pi{constructor(){this.sources=new Map,this.subscriptions=new Map,this.nextId=1}register(e,t){const r=e.toLowerCase();this.sources.has(r),this.sources.set(r,t)}unregister(e){const t=e.toLowerCase(),r=this.sources.get(t);if(r){for(const[e,r]of this.subscriptions.entries())r.source===t&&(r.unsubscribe(),this.subscriptions.delete(e));return r.destroy?.(),this.sources.delete(t)}return!1}get(e){return this.sources.get(e.toLowerCase())}has(e){return this.sources.has(e.toLowerCase())}subscribe(e,t,r){const n=this.get(e);if(!n)return;n.initialize?.();const i=n.subscribe(t,r);return this.subscriptions.set(i.id,i),i}unsubscribe(e){const t=this.subscriptions.get(e);return!!t&&(t.unsubscribe(),this.subscriptions.delete(e))}getSourceNames(){return Array.from(this.sources.keys())}getSubscriptions(){return Array.from(this.subscriptions.values())}findSourceForEvent(e){for(const[t,r]of this.sources.entries())if(r.supports?.(e)??r.supportedEvents?.includes(e))return t}generateId(){return`sub_${this.nextId++}_${Date.now().toString(36)}`}destroy(){for(const e of this.subscriptions.values())e.unsubscribe();this.subscriptions.clear();for(const e of this.sources.values())e.destroy?.();this.sources.clear()}}class mi{constructor(){this.providers=new Map,this.globalProviders=new Map}register(e,t,r){const n=e.toLowerCase();this.providers.set(n,"function"==typeof t?{name:n,provide:t,cache:r?.cache??!0,description:r?.description,dependencies:r?.dependencies}:t)}registerGlobal(e,t,r){const n=e.toLowerCase();this.globalProviders.set(n,"function"==typeof t?{name:n,provide:t,cache:r?.cache??!0,description:r?.description,dependencies:r?.dependencies}:t)}unregister(e){return this.providers.delete(e.toLowerCase())}unregisterGlobal(e){return this.globalProviders.delete(e.toLowerCase())}get(e){const t=e.toLowerCase();return this.providers.get(t)??this.globalProviders.get(t)}has(e){const t=e.toLowerCase();return this.providers.has(t)||this.globalProviders.has(t)}async resolve(e,t,r){const n=this.get(e);if(!n)return;const i="__provider_"+n.name;if(n.cache&&r?.has(i))return r.get(i);if(n.dependencies)for(const e of n.dependencies)await this.resolve(e,t,r);const a=await n.provide(t);return n.cache&&r&&r.set(i,a),a}resolveSync(e,t,r){const n=this.get(e);if(!n)return;const i="__provider_"+n.name;if(n.cache&&r?.has(i))return r.get(i);const a=n.provide(t);if(a instanceof Promise)throw Error(`Context provider '${e}' is async. Use resolve() instead of resolveSync().`);return n.cache&&r&&r.set(i,a),a}enhance(e){const t=this,r=new Map;return new Proxy(e,{get(e,n,i){if("string"==typeof n){if(t.get(n))try{return t.resolveSync(n,e,r)}catch{return t.resolve(n,e,r)}}return Reflect.get(e,n,i)},has:(e,r)=>!("string"!=typeof r||!t.has(r))||Reflect.has(e,r)})}async resolveAll(e){const t=new Map,r={},n=[...this.globalProviders.entries(),...this.providers.entries()];for(const[i,a]of n)try{r[i]=await this.resolve(i,e,t)}catch(e){r[i]=void 0}return r}getProviderNames(){return[...new Set([...this.globalProviders.keys(),...this.providers.keys()])]}clear(){this.providers.clear(),this.globalProviders.clear()}}function di(e){if("string"==typeof e)return e;if(e&&"object"==typeof e){if("string"==typeof e.name)return e.name;if("string"==typeof e.value)return e.value}return e}function hi(e){return e.me?.ownerDocument??("undefined"!=typeof document?document:null)}function fi(e,t){return t.locals?.has(e)?t.locals.get(e):t.globals?.has(e)?t.globals.get(e):t.variables?.has(e)?t.variables.get(e):"me"===e?t.me:"it"===e?t.it:"result"===e?t.result:void 0}async function yi(e,t){if(e.includes(".")){const r=e.split(".");let n=fi(r[0],t);for(let e=1;r.length>e&&null!=n;e++)n=n[r[e]];return n}return fi(e,t)}async function vi(e,t){if(t.locals.has(e),Array.from(t.locals.keys()),t.locals.get(e),t.locals.has(e)){const r=t.locals.get(e);return r}if(t.globals&&t.globals.has(e)){const r=t.globals.get(e);return r}if(t.variables&&t.variables.has(e)){const r=t.variables.get(e);return r}const r=Number(e);if(!isNaN(r))return r;if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return e.slice(1,-1);if(e.includes(".")){const r=e.split("."),n=r[0];let i=null;if(t.locals.has(n)?i=t.locals.get(n):t.globals&&t.globals.has(n)?i=t.globals.get(n):t.variables&&t.variables.has(n)&&(i=t.variables.get(n)),null!=i){for(let e=1;r.length>e;e++){if(null==i)return;i=i[r[e]]}return i}}return e}async function gi(e,t){const r=e.match(/^(.+?)\s*\?(?![\.\[])\s*(.+?)\s*:\s*(.+)$/);if(r){const[,e,n,i]=r,a=await vi(e.trim(),t);if(a){const e=await vi(n.trim(),t);return e}{const e=await vi(i.trim(),t);return e}}const n=e.match(/^([a-zA-Z_$][a-zA-Z0-9_$]*|\d+(?:\.\d+)?)\s*([\+\-\*\/\%])\s*([a-zA-Z_$][a-zA-Z0-9_$]*|\d+(?:\.\d+)?)$/);if(n){const[,e,r,i]=n,a=await vi(e.trim(),t),o=await vi(i.trim(),t),s=Number(a),l=Number(o);if(!isNaN(s)&&!isNaN(l)){let e;switch(r){case"+":e=s+l;break;case"-":e=s-l;break;case"*":e=s*l;break;case"/":e=s/l;break;case"%":e=s%l;break;default:e=s}return e}}const i=await vi(e.trim(),t);return i}function ki(e){if(Array.isArray(e)&&1===e.length&&(e=e[0]),null!==e&&"object"==typeof e&&"string"==typeof e.textContent){const t=e.value??e.textContent;if(null!=t){const e=(t+"").trim();if(""===e)return 0;const r=parseFloat(e);return isNaN(r)?e:r}return 0}return e}async function bi(e,t,r,n,i){try{const a=i(await n(e.object,r));if(null==a)throw Error("Cannot call method on null or undefined");const o=di(e.property);if(!o||"string"!=typeof o)throw Error("Invalid method name: "+o);const s=a[o];if("function"!=typeof s)throw Error(`Property "${o}" is not a function on ${a.constructor?.name||typeof a}`);const l=await Promise.all(t.map(e=>n(e,r)));return s.apply(a,l)}catch(e){if(e instanceof Error)throw e;throw Error("Failed to evaluate method call: "+e)}}class wi{constructor(){this.expressionRegistry=new Map}registerCategory(e){Object.entries(e).forEach(([e,t])=>{this.expressionRegistry.set(e,t)})}unwrapSelectorResult(e){if(e instanceof NodeList&&e.length>0)return e[0];if(Array.isArray(e)&&e.length>0){const t=e[0];return"index"in e&&"input"in e?e:t instanceof Element||t instanceof Node?t:e}return e}async evaluate(e,t){if(!e)return null;if(!e.type)throw Error("Node missing type property: "+JSON.stringify(e));switch(e.type){case"identifier":return this.evaluateIdentifier(e,t);case"literal":return this.evaluateLiteral(e,t);case"string":return e.value??"";case"memberExpression":return this.evaluateMemberExpression(e,t);case"binaryExpression":return this.evaluateBinaryExpression(e,t);case"unaryExpression":return this.evaluateUnaryExpression(e,t);case"callExpression":return this.evaluateCallExpression(e,t);case"selector":return this.evaluateSelector(e,t);case"dollarExpression":return this.evaluateDollarExpression(e,t);case"possessiveExpression":return this.evaluatePossessiveExpression(e,t);case"templateLiteral":return this.evaluateTemplateLiteral(e,t);case"arrayLiteral":return this.evaluateArrayLiteral(e,t);case"objectLiteral":return this.evaluateObjectLiteral(e,t);case"conditionalExpression":return this.evaluateConditionalExpression(e,t);case"cssSelector":return this.evaluateCSSSelector(e,t);case"propertyAccess":return this.evaluatePropertyAccess(e,t);case"propertyOfExpression":return this.evaluatePropertyOfExpression(e,t);case"contextReference":return this.evaluateContextReference(e,t);case"queryReference":return this.evaluateQueryReference(e,t);case"idSelector":return this.evaluateIdSelector(e,t);case"attributeAccess":return this.evaluateAttributeAccess(e,t);default:throw Error("Unsupported AST node type for evaluation: "+e.type)}}async evaluateWithResult(e,t){try{return ai(await this.evaluate(e,t))}catch(e){if(e instanceof Error){const t=e;if(t.isHalt||"HALT_EXECUTION"===t.message)return oi({type:"halt"});if(t.isExit||"EXIT_COMMAND"===t.message)return oi({type:"exit",returnValue:t.returnValue});if(t.isBreak)return oi({type:"break"});if(t.isContinue)return oi({type:"continue"});if(t.isReturn)return oi({type:"return",returnValue:t.returnValue})}throw e}}async evaluateArrayLiteral(e,t){const r=e.elements||[],n=[];for(const e of r){const r=await this.evaluate(e,t);n.push(r)}return n}async evaluateObjectLiteral(e,t){const r=e.properties||[],n={};for(const e of r){let r;if("identifier"===e.key.type)r=e.key.name;else if("literal"===e.key.type)r=e.key.value+"";else{r=await this.evaluate(e.key,t)+""}const i=await this.evaluate(e.value,t);n[r]=i}return n}async evaluateConditionalExpression(e,t){return await this.evaluate(e.test,t)?this.evaluate(e.consequent,t):e.alternate?this.evaluate(e.alternate,t):void 0}async evaluateTemplateLiteral(e,t){return async function(e,t){let r=e.value||"";const n=/\$([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)/g,i=[];let a;for(;null!==(a=n.exec(r));)"{"!==r[a.index+1]&&i.push({match:a[0],varName:a[1],index:a.index});for(let e=i.length-1;e>=0;e--){const{match:n,varName:a,index:o}=i[e],s=await yi(a,t);r=r.slice(0,o)+((s??"")+"")+r.slice(o+n.length)}let o="",s=0;for(;r.length>s;){const e=r.indexOf("${",s);if(-1===e){o+=r.slice(s);break}o+=r.slice(s,e);let n=1,i=e+2;for(;r.length>i&&n>0;)"{"===r[i]&&n++,"}"===r[i]&&n--,n>0&&i++;if(0!==n)throw Error("Unterminated template expression in: "+r);const a=r.slice(e+2,i);let l;const c=a.trim();l=t.locals.has(c)?t.locals.get(c):t.globals&&t.globals.has(c)?t.globals.get(c):t.variables&&t.variables.has(c)?t.variables.get(c):await gi(a,t),o+=l+"",s=i+1}return o}(e,t)}async evaluateSimpleExpression(e,t){return gi(e,t)}async resolveValue(e,t){return vi(e,t)}async evaluateIdentifier(e,t){const{name:r,scope:n}=e;if("me"===r||"my"===r||"I"===r)return t.me;if("you"===r||"your"===r)return t.you;if("it"===r||"its"===r)return t.it;if("result"===r)return t.result;if("event"===r)return t.event;const i=this.expressionRegistry.get(r);return i?i.evaluate(t):"local"===n?t.locals?.has(r)?t.locals.get(r):void 0:"global"===n?t.globals?.has(r)?t.globals.get(r):"undefined"!=typeof window&&r in window?window[r]:void 0:t.locals?.has(r)?t.locals.get(r):t.globals?.has(r)?t.globals.get(r):t.variables?.has(r)?t.variables.get(r):"undefined"!=typeof globalThis&&r in globalThis?globalThis[r]:"undefined"!=typeof window&&r in window?window[r]:void 0}async evaluateLiteral(e,t){return e.value}async evaluateContextReference(e,t){const{contextType:r}=e;switch(r){case"me":return t.me;case"it":return t.result;case"you":return t.you;case"event":return t.event;case"body":return t.meta?.ownerDocument?.body||document?.body;case"detail":return t.event?.detail;case"target":return t.you||t.event?.target;case"sender":return t.event?.target;default:return t.locals&&t.locals.has(r)?t.locals.get(r):void 0}}async evaluateMemberExpression(e,t){const{object:r,property:n,computed:i}=e;if("identifier"===r.type&&["add","remove"].includes(r.name)){const e=r.name,i=di(n);if(!t.me)throw Error('Context element "me" is null');return void("add"===e?t.me.classList.add(i):"remove"===e&&t.me.classList.remove(i))}let a=await this.evaluate(r,t);if(i){return a[await this.evaluate(n,t)]}{const e=di(n);if(Array.isArray(a)&&"string"==typeof e&&("length"===e||e in Array.prototype)||(a=this.unwrapSelectorResult(a)),"string"==typeof e){if(e.startsWith("computed-")){const t=e.substring(9);if(a&&"undefined"!=typeof window&&a instanceof Element){return window.getComputedStyle(a).getPropertyValue(t)}return}if(e.startsWith("@")){const t=e.substring(1);return a&&"function"==typeof a.getAttribute?gt(a,t):void 0}if(a&&a instanceof Element){if("previous"===e||"prev"===e)return a.previousElementSibling;if("next"===e)return a.nextElementSibling}}const t=a?.[e];return"function"==typeof t?t.bind(a):t}}coerceArithmeticOperand(e){return ki(e)}async evaluateBinaryExpression(e,t){return async function(e,t,r,n,i){const{operator:a,left:o,right:s}=e;if("in"===a&&"selector"===o.type){let e=o.value;e.startsWith("<")&&e.endsWith("/>")&&(e=e.slice(1,-2).trim());const i=n(await r(s,t));if(!i||"function"!=typeof i.querySelector)throw Error(`'in' operator requires a DOM element as the right operand (got: ${typeof i})`);const a=i.querySelectorAll(e);return Array.from(a)}if("in"===a&&"queryReference"===o.type){let e=o.selector;e.startsWith("<")&&e.endsWith("/>")&&(e=e.slice(1,-2).trim());const i=n(await r(s,t));if(!i||"function"!=typeof i.querySelector)throw Error(`'in' operator requires a DOM element as the right operand (got: ${typeof i})`);const a=i.querySelectorAll(e);return Array.from(a)}if("in"===a){let e=null,i=null;if("positionalExpression"===o.type){e=o.operator;const n=o.argument;"cssSelector"===n?.type?i=n.selector:"selector"===n?.type?i=n.value:"classSelector"===n?.type?i="."+n.className:"idSelector"===n?.type?i="#"+n.id:n&&(i=await r(n,t)+"")}else if("memberExpression"!==o.type||"identifier"!==o.object?.type||"first"!==o.object.name&&"last"!==o.object.name){if("callExpression"===o.type&&"identifier"===o.callee?.type&&("first"===o.callee.name||"last"===o.callee.name)){e=o.callee.name;const n=o.arguments?.[0];"selector"===n?.type?i=n.value:"cssSelector"===n?.type?i=n.selector:"classSelector"===n?.type?i="."+n.className:"idSelector"===n?.type?i="#"+n.id:n&&(i=await r(n,t)+"")}}else e=o.object.name,"identifier"===o.property?.type&&o.property.name&&(i="."+o.property.name);if(e&&i){const a=n(await r(s,t));if(!a||"function"!=typeof a.querySelectorAll)return;const o=a.querySelectorAll(i),l=Array.from(o);return"first"===e?l.length>0?l[0]:void 0:"last"===e?l.length>0?l[l.length-1]:void 0:l}}if("matches"===a&&("selector"===s.type||"cssSelector"===s.type||"classSelector"===s.type)){const e=await r(o,t),n=s.value||s.selector;if(e&&"function"==typeof e.matches)try{return e.matches(n)}catch{return!1}return!1}const l=await r(o,t),c=await r(s,t);if("has"===a||"have"===a){if(l instanceof Element){if("cssSelector"===s.type&&"class"===s.selectorType||"selector"===s.type&&s.value?.startsWith(".")){const e=s.selector?.slice(1)||s.value?.slice(1)||"";return l.classList.contains(e)}if("attributeAccess"===s.type||"attributeRef"===s.type){const e=s.attributeName||s.name||s.value?.replace(/^@/,"")||"";return l.hasAttribute(e)}if("cssSelector"===s.type&&"attribute"===s.selectorType){const e=(s.selector||s.value||"").replace(/^@/,"");return l.hasAttribute(e)}if("cssSelector"===s.type&&"id"===s.selectorType||"idSelector"===s.type){const e=(s.selector||s.value||"").replace(/^#/,"");return null!==l.querySelector("#"+CSS.escape(e))}if("selector"===s.type||"queryReference"===s.type){let e=s.value||s.selector||"";e.startsWith("<")&&e.endsWith("/>")&&(e=e.slice(1,-2).trim());try{return null!==l.querySelector(e)}catch{return!1}}if("cssSelector"===s.type){const e=s.selector||"";try{return null!==l.querySelector(e)}catch{return!1}}}return Array.isArray(l)?l.includes(c):"string"==typeof l&&l.includes(c+"")}switch(a){case">":case"is greater than":return l>c;case"<":case"is less than":return c>l;case">=":case"is greater than or equal to":return l>=c;case"<=":case"is less than or equal to":return c>=l;case"==":case"equals":case"is equal to":return l==c;case"===":case"is really equal to":case"really equals":return l===c;case"!=":case"is not equal to":return l!=c;case"!==":case"is not really equal to":return l!==c;case"+":{const e=ki(l),r=ki(c);if("string"==typeof e||"string"==typeof r){const n=i.get("stringConcatenation");if(n){const i=await n.evaluate(t,{left:e,right:r});return i.success?i.value:e+r}}else{const n=i.get("addition");if(n){const i=await n.evaluate(t,{left:e,right:r});return i.success?i.value:e+r}}return e+r}case"-":return ki(l)-ki(c);case"*":return ki(l)*ki(c);case"/":return ki(l)/ki(c);case"%":case"mod":return ki(l)%ki(c);case"as":const e="string"==typeof c?c:"identifier"===s.type?s.name:"literal"===s.type?s.value:c+"",r=i.get("as");return r?r.evaluate(t,l,e):l;case"&&":case"and":return l&&c;case"||":case"or":return l||c;case"is":return l===c;case"is not":return l!==c;case"is a":case"is an":switch("identifier"===s.type?s.name.toLowerCase():(c+"").toLowerCase()){case"string":return"string"==typeof l;case"number":return"number"==typeof l;case"boolean":return"boolean"==typeof l;case"object":return"object"==typeof l&&null!==l;case"array":return Array.isArray(l);case"function":return"function"==typeof l;case"null":return null===l;case"undefined":return void 0===l;default:const e="identifier"===s.type?s.name:c+"";return null!=l&&l.constructor?.name===e}case"is not a":case"is not an":switch("identifier"===s.type?s.name.toLowerCase():(c+"").toLowerCase()){case"string":return"string"!=typeof l;case"number":return"number"!=typeof l;case"boolean":return"boolean"!=typeof l;case"object":return!("object"==typeof l&&null!==l);case"array":return!Array.isArray(l);case"function":return"function"!=typeof l;case"null":return null!==l;case"undefined":return void 0!==l;default:const e="identifier"===s.type?s.name:c+"";return!(null!=l&&l.constructor?.name===e)}case"=":if("identifier"===o.type){const e=o.name;return"result"===e?t.result=c:"it"===e?t.it=c:"you"===e?t.you=c:t.locals.set(e,c),c}throw Error("Left side of assignment must be an identifier");case"contains":case"include":case"includes":return Array.isArray(l)?l.includes(c):"string"==typeof l?l.includes(c+""):!(!l||"function"!=typeof l.matches)&&l.matches(c+"");case"match":case"matches":if(l&&"function"==typeof l.matches){const e="string"==typeof c?c:c+"";try{return l.matches(e)}catch{return!1}}return!1;case"in":const n="string"==typeof l?l:l+"",u=c;if(!u||"function"!=typeof u.querySelector){if(Array.isArray(u))return u.includes(l);if("object"==typeof u&&null!==u)return n in u;throw Error(`'in' operator requires a DOM element, array, or object as the right operand (got: ${typeof u})`)}return u.querySelector(n);case" ":return"string"==typeof l&&"string"==typeof c?{command:l,selector:c}:"identifier"===o.type&&"selector"===s.type?{command:o.name,selector:s.value}:c;default:throw Error(`Unsupported binary operator: "${a}" (length: ${a.length})`)}}(e,t,this.evaluate.bind(this),this.unwrapSelectorResult.bind(this),this.expressionRegistry,this.evaluateSelector.bind(this))}async evaluateUnaryExpression(e,t){const{operator:r,argument:n}=e,i=await this.evaluate(n,t);switch(r){case"not":case"!":const e=this.expressionRegistry.get("not");return e?e.evaluate(t,i):!i;case"no":const n=this.expressionRegistry.get("no");return!!n&&n.evaluate(t,i);case"some":return null!=i&&("string"==typeof i||Array.isArray(i)||i instanceof NodeList||i instanceof HTMLCollection?i.length>0:"object"!=typeof i||Object.keys(i).length>0);case"exists":const a=this.expressionRegistry.get("exists");return a?a.evaluate(t,i):null!=i;case"does not exist":const o=this.expressionRegistry.get("doesNotExist");return o?o.evaluate(t,i):null==i;case"-":return-i;case"+":return+i;default:throw Error("Unsupported unary operator: "+r)}}async evaluateCallExpression(e,t){return async function(e,t,r,n,i,a){const{callee:o,arguments:s,isConstructor:l}=e;if(l){const e=o.name,n=t.globals?.get(e)||window[e];if("function"==typeof n)return new n(...await Promise.all(s.map(e=>r(e,t))));throw Error("Unknown constructor: "+e)}if("memberExpression"===o.type||"propertyAccess"===o.type)return bi(o,s,t,r,n);const c=o.name||o,u=i.get(c);if(u){const e=["first","last","random","at"],n=["closest","previous","next"].includes(c),i=e.includes(c),o=await Promise.all(s.map(e=>n&&e&&"selector"===e.type&&"string"==typeof e.value?e.value:n&&e&&"identifier"===e.type&&"string"==typeof e.name?e.name:i&&e&&"selector"===e.type&&"string"==typeof e.value?a(e,t):r(e,t)));return u.evaluate(t,...o)}const p=t.globals?.get(c)||window[c];if("function"==typeof p)return p(...await Promise.all(s.map(e=>r(e,t))));throw Error("Unknown function: "+c)}(e,t,this.evaluate.bind(this),this.unwrapSelectorResult.bind(this),this.expressionRegistry,this.evaluateSelector.bind(this))}async evaluateMethodCall(e,t,r){return bi(e,t,r,this.evaluate.bind(this),this.unwrapSelectorResult.bind(this))}async evaluateSelector(e,t){return function(e,t){let r=e.value;r.startsWith("<")&&r.endsWith("/>")&&(r=r.slice(1,-2).trim());const n=hi(t);if(!n)return[];const i=n.querySelectorAll(r);return Array.from(i).filter(e=>e&&"object"==typeof e&&1===e.nodeType&&"string"==typeof e.tagName)}(e,t)}evaluateAttributeAccess(e,t){return t.me&&"function"==typeof t.me.getAttribute?gt(t.me,e.attributeName):"@"+e.attributeName}getAvailableExpressions(){return Array.from(this.expressionRegistry.keys())}async evaluateDollarExpression(e,t){const r=await this.evaluate(e.expression,t);if("identifier"===e.expression.type){const r=e.expression.name;return/^\d+$/.test(r)?r:t.locals?.has(r)?t.locals.get(r):"me"===r&&t.me?t.me:"you"===r&&t.you?t.you:"it"===r&&t.it?t.it:"result"===r&&t.result?t.result:"undefined"!=typeof window&&"window"===r?window:t.globals?.has(r)?t.globals.get(r):void 0}return r}async evaluatePossessiveExpression(e,t){const{object:r,property:n}=e,i=this.unwrapSelectorResult(await this.evaluate(r,t));if(!i)return;const a=di(n);return"string"==typeof a&&yt(i)?bt(i,a):i[a]}hasExpression(e){return this.expressionRegistry.has(e)}async evaluateCSSSelector(e,t){return function(e,t){let r=e.selector;r.startsWith("<")&&r.endsWith("/>")&&(r=r.slice(1,-2).trim());const n=hi(t);if(!n)return"id"===e.selectorType?null:[];if("id"===e.selectorType){const e=r.startsWith("#")?r.slice(1):r;return n.getElementById(e)}if("class"===e.selectorType){const e=r.replace(/:/g,"\\:"),t=n.querySelectorAll(e);return Array.from(t).filter(e=>e instanceof HTMLElement)}const i=n.querySelectorAll(r);return Array.from(i).filter(e=>e instanceof HTMLElement)}(e,t)}async evaluateIdSelector(e,t){return function(e,t){const r=hi(t);if(!r)return null;const n=e.value.startsWith("#")?e.value.slice(1):e.value;return r.getElementById(n)}(e,t)}async evaluateQueryReference(e,t){return function(e,t){let r=e.selector;r.startsWith("<")&&r.endsWith("/>")&&(r=r.slice(1,-2).trim());const n=hi(t);if(!n)return[];try{return n.querySelectorAll(r)}catch{return n.createDocumentFragment().childNodes}}(e,t)}async evaluatePropertyAccess(e,t){const r=await this.evaluate(e.object,t),n=e.property;if(null==r)throw Error(`Cannot access property "${n.name||n.value}" of ${r}`);const i=n.name||n.value;if(!i)throw Error("Property name must be an identifier");try{let e;return e=yt(r)?bt(r,i):r[i],"function"==typeof e?e.bind(r):e}catch(e){throw Error(`Error accessing property "${i}": ${e}`)}}async evaluatePropertyOfExpression(e,t){const r=e.property,n=r.name||r.value;if(!n)throw Error('Property name must be an identifier in "the X of Y" pattern');const i=this.unwrapSelectorResult(await this.evaluate(e.target,t));if(null==i)throw Error(`Cannot access property "${n}" of ${i}`);try{let e;return e=yt(i)?bt(i,n):i[n],"function"==typeof e?e.bind(i):e}catch(e){throw Error(`Failed to access property "${n}" on target: ${e}`)}}}const zi=new Set(["__proto__","constructor","prototype"]),xi={possessive:{name:"possessive",category:"Reference",evaluatesTo:"Any",operators:["'s","s"],async evaluate(e,...t){const[r,n]=t;if(null!=r){if("string"!=typeof n)throw Error("Property name must be a string");if(r instanceof Element)return bt(r,n);if(at(r)){if(zi.has(n))return;return r[n]}return r[n]}},validate:e=>jt(e,2,"possessive","element, property")??Pt(e,1,"possessive","property name")},my:{name:"my",category:"Reference",evaluatesTo:"Any",operators:["my"],async evaluate(e,...t){const[r]=t;if(e.me){if("string"!=typeof r)throw Error("Property name must be a string");if(e.me instanceof Element)return bt(e.me,r);if(at(e.me)){if(zi.has(r))return;return e.me[r]}return e.me[r]}},validate:e=>Nt(e,"my","property")},its:{name:"its",category:"Reference",evaluatesTo:"Any",operators:["its"],async evaluate(e,...t){const[r]=t;if(null==e.it)return;if("string"!=typeof r)throw Error("Property name must be a string");const n=e.it;if(n instanceof Element)return bt(n,r);if(at(n)){if(zi.has(r))return;return n[r]}return n[r]},validate:e=>Nt(e,"its","property")},your:{name:"your",category:"Reference",evaluatesTo:"Any",operators:["your"],async evaluate(e,...t){const[r]=t;if(e.you){if("string"!=typeof r)throw Error("Property name must be a string");if(e.you instanceof Element)return bt(e.you,r);if(at(e.you)){if(zi.has(r))return;return e.you[r]}return e.you[r]}},validate:e=>Nt(e,"your","property")},of:{name:"of",category:"Reference",evaluatesTo:"Any",operators:["of"],async evaluate(e,...t){const[r,n]=t;if(null!=n){if("string"!=typeof r)throw Error("Property name must be a string");if(n instanceof Element)return bt(n,r);if(at(n)){if(zi.has(r))return;return n[r]}return n[r]}},validate:e=>jt(e,2,"of","property, object")??Pt(e,0,"of","property name")},attribute:{name:"attribute",category:"Reference",evaluatesTo:"String",operators:["@"],async evaluate(e,...t){const[r,n]=t;if("string"!=typeof r)throw Error("Attribute name must be a string");const i=n||e.me;return i&&i instanceof Element?i.getAttribute(r):null},validate:e=>Mt(e,1,2,"attribute","attributeName, optional element")??Pt(e,0,"attribute","attribute name")??(2>e.length||null==e[1]||e[1]instanceof Element?null:"attribute element must be an Element")},attributeWithValue:{name:"attributeWithValue",category:"Reference",evaluatesTo:"Boolean",operators:["@="],async evaluate(e,...t){const[r,n,i]=t;if("string"!=typeof r)throw Error("Attribute name must be a string");if("string"!=typeof n)throw Error("Expected value must be a string");const a=i||e.me;if(!(a&&a instanceof Element))return!1;return a.getAttribute(r)===n},validate:e=>Mt(e,2,3,"attributeWithValue","attributeName, expectedValue, optional element")??Pt(e,0,"attributeWithValue","attribute name")??Pt(e,1,"attributeWithValue","expected value")??(3>e.length||null==e[2]||e[2]instanceof Element?null:"attributeWithValue element must be an Element")},classReference:{name:"classReference",category:"Reference",evaluatesTo:"Array",operators:["."],async evaluate(e,...t){const[r]=t;if("string"!=typeof r)throw Error("Class name must be a string");const n=r.startsWith(".")?r.slice(1):r,i=document.getElementsByClassName(n);return Array.from(i)},validate:e=>Nt(e,"classReference","className")},idReference:{name:"idReference",category:"Reference",evaluatesTo:"Element",operators:["#"],async evaluate(e,...t){const[r]=t;if("string"!=typeof r)throw Error("ID value must be a string");const n=r.startsWith("#")?r.slice(1):r;return document.getElementById(n)},validate:e=>Nt(e,"idReference","idValue")}},Ei=e.object({value:e.string().describe("String literal value")}).strict(),Ti=e.object({value:e.number().describe("Number literal value")}).strict(),Si=e.object({value:e.boolean().describe("Boolean literal value")}).strict(),Ci=e.object({left:e.unknown().describe("Left operand"),right:e.unknown().describe("Right operand")}).strict();class Ai extends ht{constructor(){super(...arguments),this.name="stringLiteral",this.category="Special",this.syntax="\"string\" or 'string'",this.description="String literals with template interpolation support",this.outputType="String",this.inputSchema=Ei,this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);if(!n.isValid){const t=this.failure("ValidationError","validation-error",n.errors.map(e=>e.message).join(", "),"VALIDATION_FAILED",n.suggestions);return this.trackSimple(e,r,!1),t}let i=t.value;(i.includes("${")||i.includes("$"))&&(i=this.interpolateString(i,e));const a=this.success(i,"string");return this.trackSimple(e,r,!0,i),a}catch(t){return this.trackSimple(e,r,!1),this.failure("StringEvaluationError","runtime-error","String literal evaluation failed: "+(t instanceof Error?t.message:t+""),"STRING_EVALUATION_FAILED")}}validate(e){try{const t=this.inputSchema.safeParse(e);return t.success?this.validationSuccess():this.validationFailure("type-mismatch",t.error?.errors.map(e=>e.message).join(", ")||"Invalid string literal input",["Provide a value parameter","Ensure value is a string"])}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}interpolateString(e,t){let r=e.replace(/\$\{([^}]+)\}/g,(e,r)=>{try{const e=this.resolveExpression(r.trim(),t);return void 0!==e?e+"":""}catch(e){return""}});return r=r.replace(/\$([a-zA-Z_$][a-zA-Z0-9_.$]*)/g,(e,r)=>{try{const e=this.resolveVariable(r,t);return void 0!==e?e+"":""}catch(e){return""}}),r}resolveExpression(e,t){if(e.includes(".")){const r=e.split(".");let n=this.resolveVariable(r[0],t);for(let e=1;r.length>e&&null!=n;e++)n=n[r[e]];return n}return this.resolveVariable(e,t)}resolveVariable(e,t){return"me"===e&&t.me?t.me:"you"===e&&t.you?t.you:"it"===e&&t.it?t.it:"result"===e&&t.result?t.result:t.locals?.has(e)?t.locals.get(e):t.globals?.has(e)?t.globals.get(e):void 0}}class Li extends ht{constructor(){super(...arguments),this.name="numberLiteral",this.category="Special",this.syntax="123 or 3.14",this.description="Numeric literal with validation",this.inputSchema=Ti,this.outputType="Number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);return n.isValid?Number.isFinite(t.value)?(this.trackSimple(e,r,!0,t.value),this.success(t.value,"number")):(this.trackSimple(e,r,!1),this.failure("NumberValidationError","invalid-argument","Number literal must be finite","NUMBER_NOT_FINITE")):(this.trackSimple(e,r,!1),this.failure("ValidationError","validation-error",n.errors.map(e=>e.message).join(", "),"VALIDATION_FAILED",n.suggestions))}catch(t){return this.trackSimple(e,r,!1),this.failure("NumberEvaluationError","runtime-error","Number literal evaluation failed: "+(t instanceof Error?t.message:t+""),"NUMBER_EVALUATION_FAILED")}}validate(e){try{const t=this.inputSchema.safeParse(e);return t.success?Number.isFinite(t.data.value)?this.validationSuccess():this.validationFailure("invalid-argument","Number literal value must be finite",["Use finite numbers only","Avoid Infinity and NaN values"]):this.validationFailure("type-mismatch",t.error?.errors.map(e=>e.message).join(", ")||"Invalid number literal input",["Provide a value parameter","Ensure value is a number"])}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}}class ji extends ht{constructor(){super(...arguments),this.name="booleanLiteral",this.category="Special",this.syntax="true or false",this.description="Boolean literal values",this.inputSchema=Si,this.outputType="Boolean",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);return n.isValid?(this.trackSimple(e,r,!0,t.value),this.success(t.value,"boolean")):(this.trackSimple(e,r,!1),this.failure("ValidationError","validation-error",n.errors.map(e=>e.message).join(", "),"VALIDATION_FAILED",n.suggestions))}catch(t){return this.trackSimple(e,r,!1),this.failure("BooleanEvaluationError","runtime-error","Boolean literal evaluation failed: "+(t instanceof Error?t.message:t+""),"BOOLEAN_EVALUATION_FAILED")}}validate(e){try{const t=this.inputSchema.safeParse(e);return t.success?this.validationSuccess():this.validationFailure("type-mismatch",t.error?.errors.map(e=>e.message).join(", ")||"Invalid boolean literal input",["Provide a value parameter","Ensure value is a boolean"])}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}}class Pi extends ht{constructor(){super(...arguments),this.name="addition",this.category="Special",this.syntax="left + right",this.description="Addition of two numeric values",this.inputSchema=Ci,this.outputType="Number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);if(!n.isValid)return this.trackSimple(e,r,!1),this.failure("ValidationError","validation-error",n.errors.map(e=>e.message).join(", "),"VALIDATION_FAILED",n.suggestions);const i=Ke(t.left,"left operand"),a=i+Ke(t.right,"right operand");return this.trackSimple(e,r,!0,a),this.success(a,"number")}catch(t){return this.trackSimple(e,r,!1),this.failure("AdditionError","runtime-error","Addition failed: "+(t instanceof Error?t.message:t+""),"ADDITION_FAILED")}}validate(e){try{const t=this.inputSchema.safeParse(e);return t.success?this.validationSuccess():this.validationFailure("type-mismatch",t.error?.errors.map(e=>e.message).join(", ")||"Invalid addition input",["Provide left and right operands"])}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}}class Ni extends ht{constructor(){super(...arguments),this.name="stringConcatenation",this.category="Special",this.syntax="left + right (string concatenation)",this.description="Concatenation of two values into a string",this.inputSchema=Ci,this.outputType="String",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);if(!n.isValid)return this.trackSimple(e,r,!1),this.failure("ValidationError","validation-error",n.errors[0]?.message||"Invalid input","STRING_CONCATENATION_VALIDATION_FAILED",n.suggestions);const i=this.convertToString(t.left),a=i+this.convertToString(t.right);return this.trackSimple(e,r,!0,a),this.success(a,"string")}catch(t){return this.trackSimple(e,r,!1),this.failure("StringConcatenationError","runtime-error",t instanceof Error?t.message:"String concatenation failed","STRING_CONCATENATION_ERROR",["Check that operands can be converted to strings"])}}validate(e){const t=Ci.safeParse(e);return t.success?this.validationSuccess():this.validationFailure("type-mismatch",t.error?.errors.map(e=>e.message).join(", ")||"Invalid string concatenation input",["Provide left and right operands for concatenation"])}convertToString(e){if(null===e)return"null";if(void 0===e)return"undefined";if(rt(e))return e;if(nt(e))return""+e;if(it(e))return""+e;if(e instanceof Date)return""+e;try{return e+""}catch{return"[object Object]"}}}class Oi extends ht{constructor(){super(...arguments),this.name="multiplication",this.category="Special",this.syntax="left * right",this.description="Multiplication of two numeric values",this.inputSchema=Ci,this.outputType="Number",this.metadata={category:"Special",complexity:"simple"}}async evaluate(e,t){const r=Date.now();try{const n=this.validate(t);if(!n.isValid)return this.trackSimple(e,r,!1),this.failure("ValidationError","validation-error",n.errors.map(e=>e.message).join(", "),"VALIDATION_FAILED",n.suggestions);const i=Ke(t.left,"left operand"),a=i*Ke(t.right,"right operand");return this.trackSimple(e,r,!0,a),this.success(a,"number")}catch(t){return this.trackSimple(e,r,!1),this.failure("MultiplicationError","runtime-error","Multiplication failed: "+(t instanceof Error?t.message:t+""),"MULTIPLICATION_FAILED")}}validate(e){try{const t=this.inputSchema.safeParse(e);return t.success?this.validationSuccess():this.validationFailure("type-mismatch",t.error?.errors.map(e=>e.message).join(", ")||"Invalid multiplication input",["Provide left and right operands"])}catch(e){return this.validationFailure("runtime-error","Validation failed with exception",["Check input structure and types"])}}}const Ii={stringLiteral:new Ai,numberLiteral:new Li,booleanLiteral:new ji,addition:new Pi,stringConcatenation:new Ni,multiplication:new Oi};class Ri extends wi{constructor(){super(),this.registerExpressions()}registerExpressions(){this.registerCategory(Mr),this.registerCategory(Ir),this.registerCategory(Ur),this.registerCategory(Xt),this.registerCategory(xi),this.registerCategory(Ii)}}class Mi{static toTyped(e){return{me:e.me,it:e.it,you:e.you,result:e.result,...void 0!==e.event&&{event:e.event},variables:e.variables||new Map,locals:e.locals||new Map,globals:e.globals||new Map,...void 0!==e.events&&{events:e.events},meta:e.meta||{},expressionStack:[],evaluationDepth:0,validationMode:"strict",evaluationHistory:[]}}static fromTyped(e,t){return{...t,me:e.me,it:e.it,you:e.you,result:e.result,...void 0!==e.event&&{event:e.event},...void 0!==e.variables&&{variables:e.variables},locals:e.locals,globals:e.globals,...void 0!==e.events&&{events:e.events},...void 0!==e.meta&&{meta:e.meta}}}}class Wi{constructor(e,t,r){this.impl=e,this.expressionEvaluator=t??new Ri,this.hookRegistry=r??null}setHookRegistry(e){this.hookRegistry=e}createHookContext(e,t,r={}){return{commandName:this.name,element:e.me instanceof Element?e.me:null,args:t,modifiers:r,event:e.event??void 0,executionContext:e}}get name(){return this.impl.name||this.impl.metadata?.name}get metadata(){return{description:this.impl.metadata?.description||"",examples:this.impl.metadata?.examples||[],syntax:this.impl.metadata?.syntax||""}}async execute(e,...t){const r=t[0],n=this.createHookContext(e,t,r&&"object"==typeof r&&"modifiers"in r&&r.modifiers||{});try{if(this.hookRegistry&&await this.hookRegistry.runBeforeExecute(n),this.hookRegistry?.shouldIntercept(this.name,n))return;e.locals||(e.locals=new Map),e.locals.set("__evaluator",this.expressionEvaluator);const i=Mi.toTyped(e);let a,o;if(this.impl.parseInput&&"function"==typeof this.impl.parseInput)if(r&&"object"==typeof r&&("args"in r||"modifiers"in r)){const t=r.modifiers,n=t?.when||t?.where;if(n){if(!await this.expressionEvaluator.evaluate(n,e))return}a=await this.impl.parseInput({args:r.args||[],modifiers:t||{},commandName:r.commandName},this.expressionEvaluator,e)}else a=t;else a=t;return o=2===this.impl.execute.length?await this.impl.execute(a,i):await this.impl.execute(i,...a),Object.assign(e,Mi.fromTyped(i,e)),this.hookRegistry&&await this.hookRegistry.runAfterExecute(n,o),o}catch(e){if(Bi(e),this.hookRegistry&&e instanceof Error){throw await this.hookRegistry.runOnError(n,e)}throw e}}validate(e){return this.impl.validate?this.impl.validate(e):{isValid:!0,errors:[],suggestions:[]}}}class qi{constructor(e,t){this.adapters=new Map,this.implementations=new Map,this.sharedEvaluator=e,this.hookRegistry=t}setHookRegistry(e){this.hookRegistry=e;for(const t of this.adapters.values())t.setHookRegistry(e)}getHookRegistry(){return this.hookRegistry}register(e){const t=e.name||e.metadata?.name;if(!t||"string"!=typeof t)throw Error("Cannot register command: no name found. Provide a 'name' property or 'metadata.name' on the implementation.");const r=t.toLowerCase();this.implementations.set(r,e);const n=new Wi(e,this.sharedEvaluator,this.hookRegistry);this.adapters.set(r,n),j.add(r);const i=e.metadata?.aliases;if(i&&Array.isArray(i))for(const t of i){const r=t.toLowerCase();this.implementations.set(r,e),this.adapters.set(r,n),j.add(r)}}getAdapter(e){return this.adapters.get(e.toLowerCase())}has(e){return this.adapters.has(e.toLowerCase())}getCommandNames(){return Array.from(this.adapters.keys())}getImplementation(e){return this.implementations.get(e.toLowerCase())}getAdapters(){return new Map(this.adapters)}validateCommand(e,t){const r=this.getAdapter(e);return r?r.validate(t):{isValid:!1,errors:[{type:"runtime-error",message:"Unknown command: "+e,suggestions:["Available commands: "+this.getCommandNames().join(", ")]}],suggestions:["Available commands: "+this.getCommandNames().join(", ")]}}}function _i(e){const t=e?.commands??new qi,r=e?.eventSources??new pi,n=e?.context??new mi,i=new Set,a={commands:t,eventSources:r,context:n,use(e){if(!i.has(e.name)){if(e.commands)for(const r of e.commands)t.register(r);if(e.eventSources)for(const t of e.eventSources)r.register(t.name,t);if(e.contextProviders)for(const{name:t,provide:r,options:i}of e.contextProviders)n.register(t,r,i);e.setup?.(a),i.add(e.name)}},reset(){i.clear()}};return a}let $i=null;function Di(){return $i||($i=_i()),$i}class Vi{constructor(e={}){this.contextCache=new WeakMap;const t=Di();this.options={enableContextProviders:e.enableContextProviders??!0,enableEventSources:e.enableEventSources??!0,registry:e.registry??{}},this.contextRegistry=this.options.registry.context??t.context,this.eventSourceRegistry=this.options.registry.eventSources??t.eventSources}enhanceContext(e){if(!this.options.enableContextProviders)return e;const t=this.contextCache.get(e);if(t)return t;try{const t=this.contextRegistry.enhance(e);return this.contextCache.set(e,t),this.contextRegistry.getProviderNames(),t}catch(t){return e}}getEventSource(e){if(!this.options.enableEventSources)return;const t=this.eventSourceRegistry.get(e);if(t)return t;const r=this.eventSourceRegistry.findSourceForEvent(e);if(r){return this.eventSourceRegistry.get(r)}}hasEventSource(e){return void 0!==this.getEventSource(e)}subscribeToEventSource(e,t,r){if(!this.options.enableEventSources)throw Error("Event sources are disabled in this runtime");const n=this.eventSourceRegistry.subscribe(e,t,r);if(!n)throw Error(`Failed to subscribe to event source '${e}'`);return n}getEventSourceNames(){return this.eventSourceRegistry.getSourceNames()}getContextProviderNames(){return this.contextRegistry.getProviderNames()}destroy(){this.eventSourceRegistry.destroy(),this.contextCache=new WeakMap}}function Hi(e){const t=Error(e.type.toUpperCase()+"_EXECUTION");return t["is"+e.type.charAt(0).toUpperCase()+e.type.slice(1)]=!0,"returnValue"in e&&(t.returnValue=e.returnValue),t}function Bi(e){return e instanceof Error&&(null!==ii(e)||"HALT_EXECUTION"===e.message||"EXIT_COMMAND"===e.message||"EXIT_EXECUTION"===e.message)}function Fi(e){if(void 0===e)return;let t=e;if(t&&"object"==typeof t){const e=t;if("result"in e&&"wasAsync"in e)t=e.result;else if("result"in e&&"executed"in e){if(t=e.result,e.preserveArrayResult)return void 0!==t?t:void 0}else if("lastResult"in e&&"type"in e)t=e.lastResult;else if("conditionResult"in e&&"executedBranch"in e){if(void 0===e.result)return;t=e.result}else"value"in e&&1===Object.keys(e).length||"value"in e&&"target"in e&&"targetType"in e?t=e.value:"data"in e&&"status"in e&&"headers"in e&&(t=e.data)}return Array.isArray(t)&&t.length>0&&(t=t[0]),t}function Ui(e){return null!==e&&"object"==typeof e&&"command"in e&&"selector"in e}const Ki=new WeakMap;class Gi{constructor(e){if(this.autoCleanupObserver=null,this.registryIntegration=null,this.options={commandTimeout:1e4,enableErrorReporting:!0,enableResultPattern:!0,enableAutoCleanup:!0,...e},this.registry=e.registry,this.expressionEvaluator=e.expressionEvaluator,this.behaviorRegistry=new Map,this.globalVariables=ci,this.hookRegistry=new ni,e.hooks&&this.hookRegistry.register("default",e.hooks),this.registry.setHookRegistry(this.hookRegistry),this.cleanupRegistry=new li,this.options.enableAutoCleanup&&this.setupAutoCleanup(),!1!==e.registryIntegration){this.registryIntegration=new Vi("object"==typeof e.registryIntegration?e.registryIntegration:{})}this.behaviorAPI={has:e=>this.behaviorRegistry.has(e),get:e=>this.behaviorRegistry.get(e),install:async(e,t,r)=>await this.installBehaviorOnElement(e,t,r)}}setupAutoCleanup(){"undefined"!=typeof MutationObserver&&"undefined"!=typeof document&&(this.autoCleanupObserver=new MutationObserver(e=>{const t=[];for(const r of e)for(const e of r.removedNodes)e instanceof Element&&t.push(e);t.length>0&&queueMicrotask(()=>{for(const e of t)if(!e.isConnected){this.cleanupRegistry.cleanupElementTree(e)}})}),document.body?this.autoCleanupObserver.observe(document.body,{childList:!0,subtree:!0}):document.addEventListener("DOMContentLoaded",()=>{this.autoCleanupObserver?.observe(document.body,{childList:!0,subtree:!0})},{once:!0}))}registerHooks(e,t){this.hookRegistry.register(e,t)}unregisterHooks(e){return this.hookRegistry.unregister(e)}getRegisteredHooks(){return this.hookRegistry.getRegisteredNames()}cleanup(e){return this.cleanupRegistry.cleanupElement(e)}cleanupTree(e){return this.cleanupRegistry.cleanupElementTree(e)}getCleanupStats(){return this.cleanupRegistry.getStats()}destroy(){this.autoCleanupObserver&&(this.autoCleanupObserver.disconnect(),this.autoCleanupObserver=null),this.cleanupRegistry.cleanupAll(),this.hookRegistry.clear(),this.behaviorRegistry.clear()}async execute(e,t){t.locals.has("_behaviors")||t.locals.set("_behaviors",this.behaviorAPI),t.locals.has("_runtimeExecute")||t.locals.set("_runtimeExecute",(e,r)=>this.execute(e,r||t));try{switch(e.type){case"command":if(this.options.enableResultPattern)try{const r=await this.processCommandWithResult(e,t);if(!si(r))throw Hi(r.error);return r.value}catch(e){throw e}return await this.processCommand(e,t);case"eventHandler":return await this.executeEventHandler(e,t);case"event":{const r={type:"eventHandler",event:e.event,events:[e.event],commands:e.body||[],target:e.filter,modifiers:e.modifiers||{}};return await this.executeEventHandler(r,t)}case"behavior":return await this.executeBehaviorDefinition(e,t);case"Program":return await this.executeProgram(e,t);case"initBlock":case"block":return await this.executeBlock(e,t);case"sequence":case"CommandSequence":if(this.options.enableResultPattern){const r=e,n=await this.executeCommandSequenceWithResult(r.commands||[],t);if(!si(n))throw Hi(n.error);return n.value}return await this.executeCommandSequence(e,t);case"objectLiteral":return await this.executeObjectLiteral(e,t);default:if(this.options.enableResultPattern){const r=await this.evaluateExpressionWithResult(e,t);if(!si(r))throw Hi(r.error);return r.value}return await this.evaluateExpression(e,t)}}catch(e){throw e}}async processCommand(e,t){const{name:r,args:n,modifiers:i}=e,a=r.toLowerCase();if(this.registry.has(a)){const e=await this.registry.getAdapter(a);if(!e)throw Error(`Command '${a}' is registered but failed to load adapter.`);try{return await e.execute(t,{args:n||[],modifiers:i||{},commandName:a,runtime:this})}catch(e){throw Bi(e),e}}throw Error(`Unknown command: ${r}. Ensure it is registered in the Runtime options.`)}toSignal(e){const t=ii(e);if(t){if(t.isHalt||"HALT_EXECUTION"===t.message)return{type:"halt"};if(t.isExit||"EXIT_COMMAND"===t.message)return{type:"exit",returnValue:t.returnValue};if(t.isBreak)return{type:"break"};if(t.isContinue)return{type:"continue"};if(t.isReturn)return{type:"return",returnValue:t.returnValue}}if(e instanceof Error){if("HALT_EXECUTION"===e.message)return{type:"halt"};if("EXIT_COMMAND"===e.message)return{type:"exit"}}return null}async processCommandWithResult(e,t){const{name:r,args:n,modifiers:i}=e,a=r.toLowerCase();if(!this.registry.has(a)){throw Error(`Unknown command: ${r}. Ensure it is registered in the Runtime options.`)}const o=await this.registry.getAdapter(a);if(!o)throw Error(`Command '${a}' is registered but failed to load adapter.`);try{return ai(await o.execute(t,{args:n||[],modifiers:i||{},commandName:a,runtime:this}))}catch(e){const t=this.toSignal(e);if(t)return oi(t);throw e}}async executeCommandSequenceWithResult(e,t){let r;for(const n of e)if("command"===n.type){const e=await this.processCommandWithResult(n,t);if(!si(e)){const r=e.error;switch(r.type){case"halt":case"exit":case"break":case"continue":return e;case"return":return void 0!==r.returnValue&&Object.assign(t,{it:r.returnValue,result:r.returnValue}),ai(r.returnValue)}}r=e.value}else{const e=await this.evaluateExpressionWithResult(n,t);if(!si(e))return e;r=e.value}return ai(r)}async evaluateExpression(e,t){const r=await this.expressionEvaluator.evaluate(e,t);return Ui(r)?await this.executeCommandFromPattern(r.command,r.selector,t):r}async evaluateExpressionWithResult(e,t){const r=await this.expressionEvaluator.evaluateWithResult(e,t);if(!si(r))return r;const n=r.value;if(Ui(n)){if(this.options.enableResultPattern){return this.processCommandWithResult({type:"command",name:n.command,args:[{type:"literal",value:n.selector}]},t)}try{return ai(await this.executeCommandFromPattern(n.command,n.selector,t))}catch(e){const t=this.toSignal(e);if(t)return oi(t);throw e}}return ai(n)}async executeCommandFromPattern(e,t,r){return this.processCommand({type:"command",name:e,args:[{type:"literal",value:t}]},r)}async executeProgram(e,t){if(!e.statements||!Array.isArray(e.statements))return;let r;const n=[],i=[],a=[];for(const t of e.statements)"eventHandler"===t.type?n.push(t):"initBlock"===t.type?i.push(t):a.push(t);for(const e of n)try{await this.execute(e,t)}catch(e){if(Bi(e)&&(e.isHalt||e.isExit))break;throw e}for(const e of i)try{r=await this.execute(e,t)}catch(e){if(Bi(e)&&(e.isHalt||e.isExit))break;throw e}for(const e of a)try{r=await this.execute(e,t)}catch(e){if(Bi(e)&&(e.isHalt||e.isExit))break;throw e}return r}async executeBlock(e,t){if(e.commands&&Array.isArray(e.commands))for(const r of e.commands)try{await this.execute(r,t)}catch(e){if(Bi(e)&&e.isHalt)break;throw e}}async executeCommandSequence(e,t){if(!e.commands||!Array.isArray(e.commands))return;let r;for(const n of e.commands)try{r=await this.execute(n,t)}catch(e){if(Bi(e)){if(e.isHalt||e.isExit)break;if(e.isReturn){if(void 0!==e.returnValue)return Object.assign(t,{it:e.returnValue,result:e.returnValue}),e.returnValue;break}if(e.isBreak)throw e}throw e}return r}async executeObjectLiteral(e,t){const r={};if(!e.properties)return r;for(const n of e.properties){let e;if("identifier"===n.key.type)e=n.key.name;else if("literal"===n.key.type)e=n.key.value+"";else{e=await this.execute(n.key,t)+""}const i=await this.execute(n.value,t);r[e]=i}return r}enhanceContext(e){return this.registryIntegration?this.registryIntegration.enhanceContext(e):e}async executeBehaviorDefinition(e,t){const{name:r,parameters:n,eventHandlers:i,initBlock:a}=e,o=e.imperativeInstaller;this.behaviorRegistry.set(r,"function"==typeof o?{name:r,parameters:n,type:"imperative",install:o}:{name:r,parameters:n,eventHandlers:i,initBlock:a})}async installBehaviorOnElement(e,t,r){const n=this.behaviorRegistry.get(e);if(!n)throw Error(`Behavior "${e}" not found`);if("imperative"===n.type&&"function"==typeof n.install)return void n.install(t,r);const i={me:t,you:null,it:null,result:null,locals:new Map,globals:this.globalVariables,halted:!1,returned:!1,broke:!1,continued:!1,async:!1},a=this.enhanceContext(i);if(n.parameters)for(const e of n.parameters){a.locals.set(e,e in r?r[e]:void 0)}for(const[e,t]of Object.entries(r))n.parameters?.includes(e)||a.locals.set(e,t);if(n.initBlock){const t=this.options.commandTimeout??1e4;try{await Promise.race([this.execute(n.initBlock,a),new Promise((r,n)=>setTimeout(()=>n(Error(`Behavior "${e}" init block timed out after ${t}ms`)),t))])}catch(e){if(!(e instanceof Error&&Bi(e)))throw e}}if(n.eventHandlers){const t=this.options.commandTimeout??1e4;for(const r of n.eventHandlers)await Promise.race([this.executeEventHandler(r,a),new Promise((r,n)=>setTimeout(()=>n(Error(`Behavior "${e}" handler attachment timed out after ${t}ms`)),t))])}}async executeEventHandler(e,t){const{event:r,events:n,commands:i,target:a,args:o,selector:s,attributeName:l,watchTarget:c,modifiers:u}=e,p=n&&n.length>0?n:[r];let m=[],d=null;if(a){const e="string"==typeof a?a.toLowerCase():"";if("window"===e||"the window"===e)d=window;else if("document"===e||"the document"===e||"body"===e)d=document;else if("me"===e||"myself"===e)m=t.me?[t.me]:[];else if("string"==typeof a&&t.locals.has(a)){const e=t.locals.get(a);this.isElement(e),this.isElement(e)?m=[e]:Array.isArray(e)?m=e.filter(e=>this.isElement(e)):"string"==typeof e&&(m=this.queryElements(e,t))}else m=this.queryElements(a,t)}else m=t.me?[t.me]:[];if(0===m.length&&!d)return;if("mutation"===r&&l)return void this.setupMutationObserver(m,l,i,t);if("change"===r&&c)return void this.setupChangeObserver(c,i,t);const h=e.customEventSource;if(h&&this.registryIntegration){const e=async e=>{const r=new Map(t.locals),n={...t,locals:r,it:e,event:e},a=this.enhanceContext(n);try{await this.execute({type:"program",commands:i},a)}catch(e){}};try{const n=this.registryIntegration.subscribeToEventSource(h,{event:r,handler:e,target:a,selector:s},t);this.cleanupRegistry.registerGlobal(()=>n.unsubscribe(),"listener",`Custom event source '${h}' subscription ${n.id}`)}catch(e){}return}const f=Gi.createEventHandler(this,i,t,s,o);let y,v=null;if(u){let e=f;if(u.prevent){const t=e;e=async e=>(e.preventDefault(),t(e))}if(u.stop){const t=e;e=async e=>(e.stopPropagation(),t(e))}if(u.debounce){const t=u.debounce;let r;y=n=>{r&&clearTimeout(r),r=setTimeout(()=>e(n),t)},v=()=>{r&&(clearTimeout(r),r=void 0)}}else if(u.throttle){const t=u.throttle;let r=0;y=n=>{const i=Date.now();t>i-r||(r=i,e(n))}}else y=e}else y=f;const g=u?.once?{once:!0}:void 0;if(d){for(const e of p)d.addEventListener(e,y,g),m.length>0?this.cleanupRegistry.registerListener(m[0],d,e,y):this.cleanupRegistry.registerGlobal(()=>d.removeEventListener(e,y),"listener",`Global ${e} listener`);v&&(m.length>0?this.cleanupRegistry.registerCustom(m[0],v,"debounce-timeout"):this.cleanupRegistry.registerGlobal(v,"timeout","debounce-timeout"))}else for(const e of m){for(const t of p)e.addEventListener(t,y,g),this.cleanupRegistry.registerListener(e,e,t,y);v&&this.cleanupRegistry.registerCustom(e,v,"debounce-timeout")}}static createEventHandler(e,t,r,n,i){return async a=>{const o=Ki.get(a)??0;if(o>=100)return;if(Ki.set(a,o+1),n&&a.target instanceof Element)try{if(!a.target.matches(n)&&!a.target.closest(n))return}catch{}const s=new Map(r.locals),l={...r,locals:s,it:a,event:a};s.has("target")||l.locals.set("target",a.target);const c=e.enhanceContext(l);if(i&&i.length>0){const e=a,t=e.detail;for(const r of i){c.locals.set(r,e[r]??t?.[r]??null)}}for(const r of t)try{const t=Fi(await e.execute(r,c));void 0!==t&&Object.assign(c,{it:t,result:t})}catch(e){if(Bi(e)){if(e.isHalt||e.isExit)break;if(e.isReturn){void 0!==e.returnValue&&Object.assign(c,{it:e.returnValue,result:e.returnValue});break}}throw e}}}setupMutationObserver(e,t,r,n){for(const i of e){const e=new MutationObserver(async e=>{for(const a of e)if("attributes"===a.type&&a.attributeName===t){const e={...n,me:i,it:a,locals:new Map(n.locals)},o=a.oldValue,s=i.getAttribute(t);e.locals.set("oldValue",o),e.locals.set("newValue",s);const l=this.enhanceContext(e);for(const e of r)try{await this.execute(e,l)}catch(e){if(Bi(e)&&(e.isHalt||e.isExit||e.isReturn))break}}});e.observe(i,{attributes:!0,attributeOldValue:!0,attributeFilter:[t]}),this.cleanupRegistry.registerObserver(i,e)}}async setupChangeObserver(e,t,r){const n=await this.execute(e,r);let i=[];this.isElement(n)?i=[n]:Array.isArray(n)&&(i=n.filter(e=>this.isElement(e)));for(const e of i){const n=new MutationObserver(async n=>{for(const i of n)if("childList"===i.type||"characterData"===i.type){const n={...r,me:r.me,it:i,locals:new Map(r.locals)};n.locals.set("target",e);const a=i.oldValue,o=e.textContent;null!==a&&n.locals.set("oldValue",a),n.locals.set("newValue",o);const s=this.enhanceContext(n);for(const e of t)try{await this.execute(e,s)}catch(e){if(Bi(e)&&(e.isHalt||e.isExit||e.isReturn))break}}});n.observe(e,{childList:!0,characterData:!0,subtree:!0,characterDataOldValue:!0}),this.cleanupRegistry.registerObserver(e,n)}}queryElements(e,t){const r=t.me,n=(r instanceof Element?r.ownerDocument:null)??("undefined"!=typeof document?document:null);if(!n)return[];let i=e;i.startsWith("<")&&i.endsWith("/>")&&(i=i.slice(1,-2).trim());try{return Array.from(n.querySelectorAll(i))}catch{return[]}}isElement(e){if("undefined"!=typeof HTMLElement&&e instanceof HTMLElement)return!0;if(e&&"object"==typeof e){return!!e.style&&!!e.classList}return!1}}function Yi(e,t,r,n,i,a){function o(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,l=n.kind,c="getter"===l?"get":"setter"===l?"set":"value",u=!t&&e?n.static?e:e.prototype:null,p=t||(u?Object.getOwnPropertyDescriptor(u,n.name):{}),m=!1,d=r.length-1;d>=0;d--){var h={};for(var f in n)h[f]="access"===f?{}:n[f];for(var f in n.access)h.access[f]=n.access[f];h.addInitializer=function(e){if(m)throw new TypeError("Cannot add initializers after decoration has completed");a.push(o(e||null))};var y=(0,r[d])("accessor"===l?{get:p.get,set:p.set}:p[c],h);if("accessor"===l){if(void 0===y)continue;if(null===y||"object"!=typeof y)throw new TypeError("Object expected");(s=o(y.get))&&(p.get=s),(s=o(y.set))&&(p.set=s),(s=o(y.init))&&i.unshift(s)}else(s=o(y))&&("field"===l?i.unshift(s):p[c]=s)}u&&Object.defineProperty(u,n.name,p),m=!0}function Zi(e,t,r){for(var n=arguments.length>2,i=0;t.length>i;i++)r=n?t[i].call(e,r):t[i].call(e);return n?r:void 0}function Xi(e,t,r){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:r?"".concat(r," ",t):t})}"function"==typeof SuppressedError&&SuppressedError;const Ji=Symbol("command:name"),Qi=Symbol("command:category"),ea=Symbol("command:metadata");function ta(e){return function(t,r){const n=t;n[Ji]=e.name,n[Qi]=e.category,Object.defineProperty(t.prototype,"name",{value:e.name,writable:!1,enumerable:!0})}}function ra(e){return function(t,r){const n=t,i=n[Qi];if(!i)throw Error("@meta decorator requires @command decorator to be applied first on "+t.name);const a={description:e.description,syntax:e.syntax,examples:e.examples,category:i,sideEffects:e.sideEffects,deprecated:e.deprecated,deprecationMessage:e.deprecationMessage,aliases:e.aliases,relatedCommands:e.relatedCommands,isBlocking:e.isBlocking??!1,hasBody:e.hasBody??!1,version:"1.0.0",compatibility:e.compatibility};n[ea]=a,Object.defineProperty(t,"metadata",{value:a,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(t.prototype,"metadata",{get:()=>a,enumerable:!0,configurable:!1})}}function na(e){return()=>new e}function ia(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&1===e.nodeType&&"tagName"in e&&"string"==typeof e.tagName&&"classList"in e}function aa(e,t){if(ia(e))return e;if(!e){const e=t.me;if(!e)throw Error("No target element - provide explicit target or ensure context.me is set");return sa(e)}if("string"==typeof e){const r=e.trim();if("me"===r){if(!t.me)throw Error('Context reference "me" is not available');return sa(t.me)}if("it"===r){if(!ia(t.it))throw Error('Context reference "it" is not an HTMLElement');return t.it}if("you"===r){if(!t.you)throw Error('Context reference "you" is not available');return sa(t.you)}const n=t.me?.ownerDocument??("undefined"!=typeof document?document:null);if(!n)throw Error("DOM not available - cannot resolve element selector");const i=n.querySelector(r);if(!i)throw Error("Element not found with selector: "+r);if(!ia(i))throw Error("Element found but is not an HTMLElement: "+r);return i}throw Error("Invalid target type: "+typeof e)}function oa(e,t){if(Array.isArray(e))return e.filter(ia);if(e instanceof NodeList)return Array.from(e).filter(ia);if(ia(e))return[e];if(!e){const e=t.me;return e&&ia(e)?[e]:[]}if("string"==typeof e){const r=e.trim();if("me"===r)return t.me&&ia(t.me)?[t.me]:[];if("it"===r)return ia(t.it)?[t.it]:[];if("you"===r)return t.you&&ia(t.you)?[t.you]:[];const n=t.me?.ownerDocument??("undefined"!=typeof document?document:null);if(n){let e=r;e.startsWith("<")&&e.endsWith("/>")&&(e=e.slice(1,-2).trim());const t=n.querySelectorAll(e);return Array.from(t).filter(ia)}}return[]}function sa(e){if(ia(e))return e;throw Error("Value is not an HTMLElement")}function la(e,t){switch(e.toLowerCase()){case"my":case"me":if(!t.me)throw Error('No "me" element in context');if(!ia(t.me))throw Error("context.me is not an HTMLElement");return t.me;case"its":case"it":if(!t.it)throw Error('No "it" value in context');if(!ia(t.it))throw Error("context.it is not an HTMLElement");return t.it;case"your":case"you":if(!t.you)throw Error('No "you" element in context');if(!ia(t.you))throw Error("context.you is not an HTMLElement");return t.you;default:throw Error("Unknown possessive: "+e)}}const ca=["on","from","to","in","with","at"];async function ua(e,t,r,n,i={},a){let o=e;if(i.filterPrepositions&&e&&(o=e.filter(e=>{const t=e;return"identifier"!==t?.type||"string"!=typeof t.name||!ca.includes(t.name.toLowerCase())})),(!o||0===o.length)&&i.fallbackModifierKey&&a){const e=a[i.fallbackModifierKey];e&&(o=[e])}if(!o||0===o.length){if(!r.me)throw Error(n+" command: no target specified and context.me is null");if(!ia(r.me))throw Error(n+" command: context.me must be an HTMLElement");return[r.me]}const s=[];for(const e of o){const i=await t.evaluate(e,r);if(""!==i&&("string"!=typeof i||""!==i.trim()))if(ia(i))s.push(i);else if(i instanceof NodeList){const e=Array.from(i).filter(ia);s.push(...e)}else if(Array.isArray(i)){const e=i.filter(ia);s.push(...e)}else{if("string"!=typeof i)throw Error(`Invalid ${n} target: expected HTMLElement or CSS selector, got ${typeof i}`);try{let e=i;e.startsWith("<")&&e.endsWith("/>")&&(e=e.slice(1,-2).trim());const t=r.me?.ownerDocument??("undefined"!=typeof document?document:null);if(!t)throw Error("DOM not available - cannot resolve element selector");const n=t.querySelectorAll(e),a=Array.from(n).filter(ia);s.push(...a)}catch(e){throw Error(`Invalid CSS selector: "${i}" - ${e instanceof Error?e.message:e+""}`)}}}if(0===s.length){if(!r.me)throw Error(n+" command: no target specified and context.me is null");if(!ia(r.me))throw Error(n+" command: context.me must be an HTMLElement");return[r.me]}return s}class pa{async parseInput(e,t,r){const{targets:n}=await async function(e,t,r,n){return{targets:await ua(e.args,t,r,n)}}(e,t,r,this.mode);return{targets:n,mode:this.mode,defaultDisplay:"show"===this.mode?"block":void 0}}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&(!!t.targets.every(e=>ia(e))&&(("show"===t.mode||"hide"===t.mode)&&("show"!==t.mode||"string"==typeof t.defaultDisplay)))}showElement(e,t="block"){const r=e.dataset.originalDisplay;void 0!==r?(e.style.display=r||t,delete e.dataset.originalDisplay):"none"===e.style.display&&(e.style.display=t),e.classList.add("show")}hideElement(e){if(!e.dataset.originalDisplay){const t=e.style.display;e.dataset.originalDisplay="none"===t?"":t}e.style.display="none",e.classList.remove("show")}}const ma=na((()=>{let e,t,r=[ra({description:"Hide elements by setting display to none",syntax:"hide [<target>]",examples:["hide me","hide #modal","hide .warnings","hide <button/>"],sideEffects:["dom-mutation"]}),ta({name:"hide",category:"dom"})],n=[],i=pa;return t=class extends i{constructor(){super(...arguments),this.mode="hide"}async execute(e,t){for(const t of e.targets)this.hideElement(t)}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&!!t.targets.every(e=>ia(e))}},Xi(t,"HideCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a}),Zi(t,n)})(),t})());const da=na((()=>{let e,t,r=[ra({description:"Show elements by restoring display property",syntax:"show [<target>]",examples:["show me","show #modal","show .hidden","show <button/>"],sideEffects:["dom-mutation"]}),ta({name:"show",category:"dom"})],n=[],i=pa;return t=class extends i{constructor(){super(...arguments),this.mode="show"}async execute(e,t){const r=e.defaultDisplay||"block";for(const t of e.targets)this.showElement(t,r)}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&(!!t.targets.every(e=>ia(e))&&"string"==typeof t.defaultDisplay)}},Xi(t,"ShowCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a}),Zi(t,n)})(),t})());function ha(e){const t=e.trim();return!(!t.startsWith("[@")||!t.endsWith("]"))||!!t.startsWith("@")}function fa(e){const t=e.trim();if(t.startsWith("[@")&&t.endsWith("]")){const e=t.slice(2,-1),r=e.indexOf("=");if(-1===r)return{name:e.trim()};const n=e.slice(0,r).trim();let i=e.slice(r+1).trim();return(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),{name:n,value:i}}if(t.startsWith("@"))return{name:t.substring(1).trim()};throw Error("Invalid attribute syntax: "+e)}function ya(e,t){for(const r of e)t(r);return e}function va(e,t,r){for(const n of e)for(const e of t)r(n,e);return e}function ga(e,t,r){const n=e.hasAttribute(t);void 0!==r?n&&e.getAttribute(t)===r?e.removeAttribute(t):e.setAttribute(t,r):n?e.removeAttribute(t):e.setAttribute(t,"")}function ka(e){if(!e)return[];if("string"==typeof e)return e.trim().split(/[\s,]+/).map(e=>{const t=e.trim();return t.startsWith(".")?t.substring(1):t}).filter(e=>e.length>0&&wa(e));if(Array.isArray(e))return e.map(e=>{const t=(e+"").trim();return t.startsWith(".")?t.substring(1):t}).filter(e=>e.length>0&&wa(e));const t=(e+"").trim(),r=t.startsWith(".")?t.substring(1):t;return r.length>0&&wa(r)?[r]:[]}function ba(e){const t=e.trim();return/^\{[^}]+\}$/.test(t)}function wa(e){if(!e||0===e.trim().length)return!1;const t=e.trim();if(ba(t))return!0;return/^[a-zA-Z_-][a-zA-Z0-9_-]*$/.test(t)}function za(e,t){return e.map(e=>{if(ba(e)){const r=function(e){const t=e.trim(),r=t.match(/^\{(.+)\}$/);return r?r[1].trim():t}(e),n=t.locals.get(r)??t.globals.get(r);return null!=n?n+"":""}return e}).filter(e=>e.length>0)}function xa(e){return"string"==typeof e&&e.trim().startsWith("*")}function Ea(e,t,r){e.style.setProperty(t,r)}const Ta=["dialog","details","summary","select"];function Sa(e){if(!e||"object"!=typeof e)return null;return"string"==typeof e.selector?e.selector:"string"==typeof e.value?e.value:"string"==typeof e.name?e.name:null}function Ca(e){if(!e||"object"!=typeof e)return!1;if("identifier"!==e.type)return!1;const t=e.name;return"string"==typeof t&&function(e){if("string"!=typeof e)return!1;const t=e.toLowerCase();return Ta.includes(t)}(t)}async function Aa(e,t,r){return function(e){if(!e||"object"!=typeof e)return!1;const t=e.type;if("selector"!==t&&"cssSelector"!==t&&"classSelector"!==t)return!1;const r=Sa(e);return"string"==typeof r&&r.startsWith(".")}(e)||function(e){if(!e||"object"!=typeof e)return!1;const t=e.type;if("selector"!==t&&"cssSelector"!==t&&"cssProperty"!==t)return!1;const r=Sa(e);return"string"==typeof r&&r.startsWith("*")}(e)?{value:Sa(e),extractedFromNode:!0}:function(e){if(!e||"object"!=typeof e)return!1;if("attributeAccess"===e.type)return!0;if("selector"===e.type||"cssSelector"===e.type){const t=Sa(e);return"string"==typeof t&&t.startsWith("@")}return!1}(e)?{value:(n=e,"attributeAccess"===n.type?"@"+n.attributeName:Sa(n)),extractedFromNode:!0}:{value:await t.evaluate(e,r),extractedFromNode:!1};var n}class La{async resolveTargets(e,t,r,n){return ua(e,t,r,this.mode,{filterPrepositions:!0,fallbackModifierKey:this.preposition},n)}async evaluateFirst(e,t,r){return Aa(e,t,r)}parseClassNames(e){return ka(e)}isAttribute(e){return ha(e.trim())}isCSSProperty(e){return xa(e.trim())}validateTargets(e){return Array.isArray(e)&&function(e){return Array.isArray(e)&&e.length>0&&e.every(e=>ia(e))}(e)}validateType(e,t){return function(e,t){return"string"==typeof e&&t.includes(e)}(e,t)}validateStringArray(e,t=1){return Array.isArray(e)&&function(e,t=1){return Array.isArray(e)&&e.length>=t&&e.every(e=>"string"==typeof e&&e.length>0)}(e,t)}}let ja=(()=>{let e,t,r=[ra({description:"Add CSS classes, attributes, or styles to elements",syntax:"add <classes|@attr|{styles}> [to <target>]",examples:["add .active to me",'add "active selected" to <button/>',"add .highlighted to #modal",'add [@data-test="value"] to #element'],sideEffects:["dom-mutation"]}),ta({name:"add",category:"dom"})],n=[],i=La;return t=class extends i{constructor(){super(...arguments),this.mode="add",this.preposition="to"}async parseInput(e,t,r){if(!e.args||0===e.args.length)throw Error("add command requires an argument");const{value:n}=await this.evaluateFirst(e.args[0],t,r);if("object"==typeof n&&null!==n&&!Array.isArray(n)){return{type:"styles",styles:n,targets:await this.resolveTargets(e.args.slice(1),t,r,e.modifiers)}}if("string"==typeof n){const i=n.trim();if(this.isAttribute(i)){const{name:n,value:a}=function(e){const t=fa(e);return{name:t.name,value:t.value??""}}(i);return{type:"attribute",name:n,value:a,targets:await this.resolveTargets(e.args.slice(1),t,r,e.modifiers)}}if(this.isCSSProperty(i)){const n=i.substring(1).trim();if(2>e.args.length)throw Error("add *property requires a value argument");const a=await t.evaluate(e.args[1],r);return{type:"styles",styles:{[n]:a+""},targets:await this.resolveTargets(e.args.slice(2),t,r,e.modifiers)}}}const i=this.parseClassNames(n);if(0===i.length)throw Error("add command: no valid class names found");return{type:"classes",classes:i,targets:await this.resolveTargets(e.args.slice(1),t,r,e.modifiers)}}async execute(e,t){switch(e.type){case"classes":{const r=za(e.classes,t);r.length>0&&va(e.targets,r,(e,t)=>{e.classList.contains(t)||e.classList.add(t)});break}case"attribute":!function(e,t,r){ya(e,e=>{e.setAttribute(t,r)})}(e.targets,e.name,e.value);break;case"styles":!function(e,t){va(e,Object.entries(t),(e,[t,r])=>{e.style.setProperty(t,r)})}(e.targets,e.styles)}}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;if(!this.validateType(t.type,["classes","attribute","styles"]))return!1;if(!this.validateTargets(t.targets))return!1;if("classes"===t.type){if(!this.validateStringArray(e.classes,1))return!1}else if("attribute"===t.type){if("string"!=typeof e.name||0===e.name.length)return!1;if("string"!=typeof e.value)return!1}else if("styles"===t.type){const t=e;if("object"!=typeof t.styles||null===t.styles)return!1;if(Array.isArray(t.styles))return!1;const r=t.styles;if(0===Object.keys(r).length)return!1;if(!Object.values(r).every(e=>"string"==typeof e))return!1}return!0}},Xi(t,"AddCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a}),Zi(t,n)})(),t})();const Pa=na(ja);function Na(e){return!!e.parentNode&&(e.remove(),!0)}const Oa=na((()=>{let e,t,r=[ra({description:"Remove CSS classes, attributes, styles, or elements from the DOM",syntax:"remove <classes|@attr|*prop|element> [from <target>]",examples:["remove .active from me",'remove "active selected" from <button/>',"remove .highlighted from #modal","remove me","remove closest .item"],sideEffects:["dom-mutation"]}),ta({name:"remove",category:"dom"})],n=[],i=La;return t=class extends i{constructor(){super(...arguments),this.mode="remove",this.preposition="from"}async parseInput(e,t,r){if(!e.args||0===e.args.length)throw Error("remove command requires an argument");const{value:n}=await this.evaluateFirst(e.args[0],t,r);if(ia(n))return{type:"element",targets:[n]};if(Array.isArray(n)&&n.length>0&&ia(n[0]))return{type:"element",targets:n.filter(e=>ia(e))};if("string"==typeof n){const i=n.trim();if(this.isAttribute(i)){return{type:"attribute",name:fa(i).name,targets:await this.resolveTargets(e.args.slice(1),t,r,e.modifiers)}}if(this.isCSSProperty(i)){return{type:"styles",properties:[i.substring(1).trim()],targets:await this.resolveTargets(e.args.slice(1),t,r,e.modifiers)}}}const i=this.parseClassNames(n);if(0===i.length)throw Error("remove command: no valid class names found");return{type:"classes",classes:i,targets:await this.resolveTargets(e.args.slice(1),t,r,e.modifiers)}}execute(e,t){switch(e.type){case"classes":{const r=za(e.classes,t);r.length>0&&va(e.targets,r,(e,t)=>{e.classList.remove(t)});break}case"attribute":!function(e,t){ya(e,e=>{e.removeAttribute(t)})}(e.targets,e.name);break;case"styles":!function(e,t){va(e,t,(e,t)=>{e.style.removeProperty(t)})}(e.targets,e.properties);break;case"element":for(const t of e.targets)Na(t)}}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;if(!this.validateType(t.type,["classes","attribute","styles","element"]))return!1;if(!this.validateTargets(t.targets))return!1;if("classes"===t.type){if(!this.validateStringArray(e.classes,1))return!1}else if("attribute"===t.type){if("string"!=typeof e.name||0===e.name.length)return!1}else if("styles"===t.type){if(!this.validateStringArray(e.properties,1))return!1}return!0}},Xi(t,"RemoveCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a}),Zi(t,n)})(),t})());function Ia(e){const t=e.trim().match(/^(\d+(?:\.\d+)?)\s*(s|ms|sec|seconds?|milliseconds?)?$/i);if(!t)return null;const r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();return"ms"===n||"millisecond"===n||"milliseconds"===n?{number:r,milliseconds:Math.floor(r)}:"s"===n||"sec"===n||"second"===n||"seconds"===n?{number:r,milliseconds:Math.floor(1e3*r)}:null}function Ra(e,t=300){if("number"==typeof e)return Math.max(0,Math.floor(e));if("string"==typeof e){const r=Ia(e);return r?r.milliseconds:t}return t}function Ma(e){if("number"==typeof e){if(0>e)throw Error("Duration must be >= 0");return Math.floor(e)}if("string"==typeof e){const t=Ia(e);if(!t)throw Error(`Invalid duration format: "${e}"`);return t.milliseconds}throw Error("Invalid duration type: "+typeof e)}function Wa(e){return e&&"none"!==e?e.split(",").map(e=>{const t=parseFloat(e.trim());return isNaN(t)?0:e.includes("s")&&!e.includes("ms")?1e3*t:t}):[0]}function qa(e,t){let r=0;for(let n=0;e.length>n;n++){r=Math.max(r,(e[n]||0)+(t[n]||0))}return r}function _a(e){if(0===e.length)return[];return"SUMMARY"===e[0].tagName?e.map(e=>e.closest("details")).filter(e=>null!==e):e}function $a(e,t,r){return()=>{"class"===t?e.classList.toggle(r):"attribute"===t&&ga(e,r)}}function Da(e,t,r,n){const i=$a(e,t,r),a=setTimeout(i,n);return()=>{clearTimeout(a)}}function Va(e,t,r,n){const i=$a(e,t,r),a=()=>{i(),e.removeEventListener(n,a)};return e.addEventListener(n,a,{once:!0}),()=>{e.removeEventListener(n,a)}}function Ha(e,t,r){if(t.startsWith("@")){const n=t.substring(1);return void(!1===r?e.removeAttribute(n):e.setAttribute(n,!0===r?"":r+""))}const n=r+"";switch(t){case"textContent":return void(e.textContent=n);case"innerHTML":return void(e.innerHTML=n);case"innerText":return void(e.innerText=n);case"id":return void(e.id=n);case"className":return void(e.className=n);case"value":return void("value"in e&&(e.value=n));case"checked":return void("checked"in e&&(e.checked=!!r))}if(t.includes(".")){const n=t.split(".");let i=e;for(let e=0;n.length-1>e;e++)if(i=i[n[e]],null==i)return;return void(i[n[n.length-1]]=r)}if(t.includes("-")||t in e.style)e.style.setProperty(t,n);else try{e[t]=r}catch(e){if(!(e instanceof TypeError&&(e.message.includes("only a getter")||e.message.includes("read only"))))throw Error(`Cannot set property '${t}': ${e instanceof Error?e.message:"Unknown error"}`)}}function Ba(e){return null==e||""===e}const Fa=/^the\s+(.+?)\s+of\s+(.+)$/i,Ua=new Set(["disabled","checked","hidden","readOnly","readonly","required","multiple","selected","autofocus","autoplay","controls","loop","muted","open","reversed","async","defer","noValidate","novalidate","formNoValidate","formnovalidate","draggable","spellcheck","contentEditable"]);function Ka(e){return"string"==typeof e&&Fa.test(e)}function Ga(e,t){const r=e.match(Fa);if(!r)return null;try{return{element:aa(r[2].trim(),t),property:r[1].trim()}}catch{return null}}async function Ya(e,t,r){if(function(e){return!(!e||"object"!=typeof e)&&("propertyOfExpression"===e.type&&"object"==typeof e.property&&null!==e.property)}(e))return async function(e,t,r){const n=e.property?.name;if(!n)return null;let i=await t.evaluate(e.target,r);return Array.isArray(i)&&(i=i[0]),ia(i)?{element:i,property:n}:null}(e,t,r);if(function(e){return!(!e||"object"!=typeof e)&&("propertyAccess"===e.type&&("string"==typeof e.property||"object"==typeof e.property&&null!==e.property&&"string"==typeof e.property.name))}(e))return async function(e,t,r){const n="string"==typeof e.property?e.property:e.property?.name;if(!n)return null;let i=await t.evaluate(e.object,r);return Array.isArray(i)&&(i=i[0]),ia(i)?{element:i,property:n}:null}(e,t,r);const n=e;if("possessiveExpression"===n?.type||"memberExpression"===n?.type){const e=n.object,i=n.property;let a=await t.evaluate(e,r);if(Array.isArray(a)&&(a=a[0]),!ia(a))return null;const o=i?.name||i?.value;return o&&(o.startsWith("@")||o.startsWith("*"))?{element:a,property:o}:null}return null}function Za(e){const{element:t,property:r}=e;if(r.startsWith("*")){return function(e,t){return window.getComputedStyle(e).getPropertyValue(t)}(t,r.substring(1))}return bt(t,r)}function Xa(e,t){const{element:r,property:n}=e;if(n.startsWith("*")){return void Ea(r,n.substring(1),t+"")}Ha(r,n,t)}async function Ja(e,t,r){let n,i;if(e?.for){const i=await t.evaluate(e.for,r);n="number"==typeof i?i:"string"==typeof i?Ra(i):void 0}if(e?.until){const n=await t.evaluate(e.until,r);"string"==typeof n&&(i=n)}return{duration:n,untilEvent:i}}function Qa(e,t){const r=t?.name,n=Ca(t);if(ia(e)||Array.isArray(e)&&e.every(e=>ia(e)))return{type:"element",expression:""};if(n&&r)return{type:"element",expression:r};if("string"==typeof e){const t=e.trim();return t.startsWith("@")||t.startsWith("[@")?{type:"attribute",expression:t}:t.startsWith("*")?{type:"css-property",expression:t}:t.startsWith(".")?{type:"class",expression:t}:t.startsWith("#")||function(e){if("string"!=typeof e)return!1;const t=e.toLowerCase();return Ta.some(e=>t.includes(e))}(t)?{type:"element",expression:t}:{type:"class",expression:t}}return{type:"class",expression:""}}let eo=(()=>{let e,t,r=[ra({description:"Toggle classes, attributes, or interactive elements",syntax:["toggle <class> [on <target>]","toggle @attr","toggle <element> [as modal]","toggle <expr> for <duration>"],examples:["toggle .active on me","toggle @disabled","toggle #myDialog as modal","toggle .loading for 2s"],sideEffects:["dom-mutation"]}),ta({name:"toggle",category:"dom"})],n=[];return t=class{async parseInput(e,t,r){if(!e.args?.length)throw Error("toggle command requires an argument");const n=e.args[0],i=n?.name;if("between"===i&&e.args.length>=4){const{duration:n,untilEvent:i}=await Ja(e.modifiers,t,r),a=await t.evaluate(e.args[1],r),o=await t.evaluate(e.args[3],r),s=[];for(let t=4;e.args.length>t;t++){const r=e.args[t]?.name;"on"!==r&&"from"!==r&&s.push(e.args[t])}const l={filterPrepositions:!0,fallbackModifierKey:"on"},c=await ua(s,t,r,"toggle",l,e.modifiers);return{type:"classes-between",classA:(a+"").replace(/^\./,""),classB:(o+"").replace(/^\./,""),targets:c,duration:n,untilEvent:i}}const a=await Ya(n,t,r);if(a)return{type:"property",target:a};const{duration:o,untilEvent:s}=await Ja(e.modifiers,t,r),{value:l}=await Aa(n,t,r);if(Ka(l)){const e=Ga(l,r);if(e)return{type:"property",target:e}}const{type:c,expression:u}=Qa(l,n),p={filterPrepositions:!0,fallbackModifierKey:"on"};switch(c){case"attribute":{const{name:n,value:i}=fa(u);return{type:"attribute",name:n,value:i,targets:await ua(e.args.slice(1),t,r,"toggle",p,e.modifiers),duration:o,untilEvent:s}}case"css-property":{const n=function(e){const t=function(e){const t=e.trim();if(!t.startsWith("*"))return null;const r=t.substring(1).trim();return r?{property:r}:null}(e);if(!t)return null;const r=t.property.toLowerCase();return["display","visibility","opacity"].includes(r)?r:null}(u);if(!n)throw Error("Invalid CSS property: "+u);return{type:"css-property",property:n,targets:await ua(e.args.slice(1),t,r,"toggle",p,e.modifiers)}}case"element":{let i;if(ia(l))i=[l];else if(Array.isArray(l)&&l.every(e=>ia(e)))i=l;else if(u){const e=document.querySelectorAll(u);i=Array.from(e).filter(e=>ia(e))}else i=await ua([n],t,r,"toggle",p,e.modifiers);const a=function(e){if(0===e.length)return null;const t=e[0].tagName;if(!e.every(e=>e.tagName===t))return null;switch(t){case"DIALOG":return"dialog";case"DETAILS":return"details";case"SELECT":return"select";case"SUMMARY":return e.map(e=>e.closest("details")).filter(e=>null!==e).length>0?"details":null;default:return null}}(i);if("dialog"===a){const n=await async function(e,t,r,n){if(t?.as){const e=await r.evaluate(t.as,n);if("string"==typeof e&&"modal"===e.toLowerCase())return"modal"}if(e.length>=2){const t=await r.evaluate(e[1],n);if("string"==typeof t){const i=t.toLowerCase();if("modal"===i||"as modal"===i)return"modal";if("as"===i&&e.length>=3){const t=await r.evaluate(e[2],n);if("string"==typeof t&&"modal"===t.toLowerCase())return"modal"}}}return"non-modal"}(e.args,e.modifiers,t,r);return{type:"dialog",mode:n,targets:i}}if("details"===a)return{type:"details",targets:_a(i)};if("select"===a)return{type:"select",targets:i};return{type:"classes",classes:ka(u),targets:i,duration:o,untilEvent:s}}default:{const n=ka(u||l);if(!n.length)throw Error("toggle command: no valid class names found");return{type:"classes",classes:n,targets:await ua(e.args.slice(1),t,r,"toggle",p,e.modifiers),duration:o,untilEvent:s}}}}async execute(e,t){switch(e.type){case"classes":{const r=za(e.classes,t);if(0===r.length)return[...e.targets];if(va(e.targets,r,(e,t)=>{e.classList.toggle(t)}),(e.duration||e.untilEvent)&&r.length)for(const t of e.targets)e.duration&&Da(t,"class",r[0],e.duration),e.untilEvent&&Va(t,"class",r[0],e.untilEvent);return[...e.targets]}case"attribute":if(function(e,t,r){ya(e,e=>{ga(e,t,r)})}(e.targets,e.name,e.value),e.duration||e.untilEvent)for(const t of e.targets)e.duration&&Da(t,"attribute",e.name,e.duration),e.untilEvent&&Va(t,"attribute",e.name,e.untilEvent);return[...e.targets];case"css-property":return ya(e.targets,t=>function(e,t){const r=window.getComputedStyle(e);switch(t){case"display":"none"===r.display?(e.style.display=e.dataset.previousDisplay||"block",delete e.dataset.previousDisplay):(e.dataset.previousDisplay=r.display,e.style.display="none");break;case"visibility":e.style.visibility="hidden"===r.visibility?"visible":"hidden";break;case"opacity":e.style.opacity=0===parseFloat(r.opacity)?"1":"0"}}(t,e.property));case"property":return function(e){const t=Za(e),r=e.property,n=r.startsWith("@")?r.substring(1):r;if("boolean"==typeof t||Ua.has(n)||Ua.has(n.toLowerCase())){const r=!t;return Xa(e,r),r}if("number"==typeof t){const r=0===t?1:0;return Xa(e,r),r}if("string"==typeof t){const n="__ht_"+r,i=e.element[n];return""===t&&void 0!==i?(Xa(e,i),i):(e.element[n]=t,Xa(e,""),"")}const i=!t;Xa(e,i)}(e.target),[e.target.element];case"dialog":return ya(e.targets,t=>{return n=e.mode,void((r=t).open?r.close():"modal"===n?r.showModal():r.show());var r,n});case"details":return ya(e.targets,e=>{var t;(t=e).open=!t.open});case"select":return ya(e.targets,e=>function(e){if(document.activeElement===e)e.blur();else{if(e.focus(),"showPicker"in e&&"function"==typeof e.showPicker)try{return void e.showPicker()}catch{}const t=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});e.dispatchEvent(t)}}(e));case"classes-between":for(const t of e.targets){const r=t.classList.contains(e.classA),n=t.classList.contains(e.classB);r?(t.classList.remove(e.classA),t.classList.add(e.classB)):n?(t.classList.remove(e.classB),t.classList.add(e.classA)):t.classList.add(e.classA)}if(e.duration||e.untilEvent)for(const t of e.targets)e.duration&&Da(t,"class",e.classA,e.duration),e.untilEvent&&Va(t,"class",e.classA,e.untilEvent);return[...e.targets]}}},Xi(t,"ToggleCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})();const to=na(eo);let ro=(()=>{let e,t,r=[ra({description:"Insert content into elements or properties",syntax:["put <value> into <target>","put <value> before <target>","put <value> after <target>"],examples:['put "Hello World" into me',"put <div>Content</div> before #target","put value into #elem's innerHTML"],sideEffects:["dom-mutation"]}),ta({name:"put",category:"dom"})],n=[];return t=class{async parseInput(e,t,r){if(!e.args?.length)throw Error("put requires arguments");const n=e=>e?.type||"unknown",i=["into","before","after","at","at start of","at end of"];let a=-1,o=null;for(let t=0;e.args.length>t;t++){const r=e.args[t],s=n(r),l="literal"===s?r.value:r.name;if(("literal"===s||"identifier"===s)&&i.includes(l)){a=t,o=l;break}}let s=null,l=null;if(-1===a)if(e.modifiers.into||e.modifiers.before||e.modifiers.after){const t=e.modifiers.into?"into":e.modifiers.before?"before":"after";s=e.args[0],o=t,l=e.modifiers[t]}else if(e.args.length<3){if(2>e.args.length)throw Error("put requires content and position");s=e.args[0],o=e.args[1]?.value||e.args[1]?.name||"into"}else s=e.args[0],o=e.args[1]?.value||e.args[1]?.name||null,l=e.args[2];else s=e.args.slice(0,a)[0]||null,l=e.args.slice(a+1)[0]||null;if(!s)throw Error("put requires content");if(!o)throw Error("put requires position keyword");const c=await t.evaluate(s,r),u=this.mapPosition(o);let p,m,d=null;if(l){const e=n(l),i=await Ya(l,t,r);if(i)return{value:c,targets:[i.element],position:"replace",memberPath:i.property};if("memberExpression"===e){const e=l.object,n=l.property;if("selector"===e?.type?d=e.value:"identifier"===e?.type&&(d=e.name),d&&n?.name)p=n.name;else{const e=await t.evaluate(l,r);"string"==typeof e&&(d=e)}}else if("identifier"===e&&"me"===l.name)d=null;else if("selector"===e||"cssSelector"===e)d=l.value||l.selector;else if("literal"===e){const e=l.value;if("string"==typeof e&&Ka(e)){const t=Ga(e,r);if(t)return{value:c,targets:[t.element],position:"replace",memberPath:t.property}}"string"==typeof e&&this.looksLikeCss(e)?d=e:m=e+""}else if("identifier"===e){const e=l.name;if(this.looksLikeCss(e))d=e;else{const n=await t.evaluate(l,r),i=this.resolveEvaluatedAsElements(n);if(i)return{value:c,targets:i,position:u,memberPath:p};m=e}}else{const e=await t.evaluate(l,r),n=this.resolveEvaluatedAsElements(e);if(n)return{value:c,targets:n,position:u,memberPath:p};"string"==typeof e&&(this.looksLikeCss(e)?d=e:m=e)}}if(m)return{value:c,targets:[],position:u,memberPath:p,variableName:m};return{value:c,targets:await this.resolveTargets(d,r),position:u,memberPath:p}}async execute(e,t){const{value:r,targets:n,position:i,memberPath:a,variableName:o}=e;if(o)return t.locals&&t.locals.set(o,r),t[o]=r,void Object.assign(t,{it:r});if(a)for(const e of n)this.setProperty(e,a,r);else for(const e of n){const t=this.parseValue(r);this.insertContent(e,t,i)}return n}mapPosition(e){switch(e){case"into":return"replace";case"before":return"beforebegin";case"after":return"afterend";case"at start of":return"afterbegin";case"at end of":return"beforeend";default:throw Error("Invalid position: "+e)}}async resolveTargets(e,t){if(!e||"me"===e){if(!t.me||!ia(t.me))throw Error("put: no target and context.me is null");return[t.me]}const r=Array.from(document.querySelectorAll(e)).filter(e=>ia(e));if(!r.length)throw Error(`No elements: "${e}"`);return r}parseValue(e){return ia(e)?e:null==e?"":e+""}insertContent(e,t,r){if("replace"!==r)if(ia(t)){const n=t;switch(r){case"beforebegin":e.parentElement?.insertBefore(n,e);break;case"afterbegin":e.insertBefore(n,e.firstChild);break;case"beforeend":e.appendChild(n);break;case"afterend":e.parentElement?.insertBefore(n,e.nextSibling)}}else{t.includes("<")&&t.includes(">")?e.insertAdjacentHTML(r,t):e.insertAdjacentText(r,t)}else if(ia(t))e.innerHTML="",e.appendChild(t);else{t.includes("<")&&t.includes(">")?e.innerHTML=t:e.textContent=t}}resolveEvaluatedAsElements(e){if(ia(e))return[e];if(Array.isArray(e)){const t=e.filter(ia);return t.length>0?t:null}if("undefined"!=typeof NodeList&&e instanceof NodeList){const t=Array.from(e).filter(ia);return t.length>0?t:null}return null}looksLikeCss(e){if(!e)return!1;if(/^[#.\[]/.test(e))return!0;if(/[>+~\s]/.test(e)&&e.length>1)return!0;return["div","span","p","a","button","input","form","ul","li","ol","table","tr","td","th","img","h1","h2","h3","h4","h5","h6","section","article","header","footer","nav","main","aside","dialog","label","select","option","textarea"].includes(e.toLowerCase())}setProperty(e,t,r){const n=t.split(".");let i=e;for(let e=0;n.length-1>e;e++){if(!i[n[e]])throw Error(`Property path "${t}" does not exist`);i=i[n[e]]}i[n[n.length-1]]=r}},Xi(t,"PutCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})();const no=na(ro);function io(e){if(null==e)return 0;if("number"==typeof e)return isFinite(e)?e:0;if("string"==typeof e){return parseFloat(e)}if("boolean"==typeof e)return e?1:0;if(Array.isArray(e))return e.length;if("object"==typeof e){if("length"in e&&"number"==typeof e.length)return e.length;if("function"==typeof e.valueOf){const t=e.valueOf();if("number"==typeof t)return t}return NaN}return 0}function ao(e,t,r){return"global"===r&&t.globals&&t.globals.has(e)?t.globals.get(e):"global"!==r&&t.locals&&t.locals.has(e)?t.locals.get(e):t.globals&&t.globals.has(e)?t.globals.get(e):t.variables&&t.variables.has(e)?t.variables.get(e):"global"===r&&t.locals&&t.locals.has(e)?t.locals.get(e):"undefined"!=typeof window&&e in window?window[e]:"undefined"!=typeof globalThis&&e in globalThis?globalThis[e]:void 0}function oo(e,t,r,n){if("global"===n)return r.globals.set(e,t),void("undefined"!=typeof window&&(window[e]=t));if(r.locals&&r.locals.has(e))r.locals.set(e,t);else{if(r.globals&&r.globals.has(e))return r.globals.set(e,t),void("undefined"!=typeof window&&e in window&&(window[e]=t));if(!r.variables||!r.variables.has(e))return"undefined"!=typeof window&&e in window?(window[e]=t,void r.globals.set(e,t)):void r.locals.set(e,t);r.variables.set(e,t)}}function so(e,t){return"me"===e?t.me:"it"===e?t.it:"you"===e?t.you:ao(e,t)}function lo(e,t,r,n){if("number"==typeof e)return e;if(ia(e)){const r=e;if(t){if(t.startsWith("data-")||["id","class","title","alt","src","href"].includes(t)){return io(r.getAttribute(t))}return io(r[t])}return io(r.value||r.textContent)}if("string"==typeof e){if("global"===r){return io(ao(e,n,"global"))}if(e.includes("."))return function(e,t){const r=e.split("."),n=r[1],i=so(r[0],t);return i?io(i[n]):0}(e,n);if("me"===e&&n.me)return io(n.me.value||0);if("it"===e)return io(n.it||0);if("you"===e&&n.you)return io(n.you.value||0);return io(ao(e,n))}return io(e)}function co(e,t,r,n,i){if(ia(e)){const r=e;return void(t?t.startsWith("data-")||["id","class","title","alt","src","href"].includes(t)?r.setAttribute(t,n+""):r[t]=n:"value"in r&&void 0!==r.value?r.value=n+"":r.textContent=n+"")}if("string"==typeof e){if("global"===r)return void oo(e,n,i,"global");if(e.includes("."))return void function(e,t,r){const n=e.split("."),i=n[1],a=so(n[0],r);a&&(a[i]=t)}(e,n,i);if("me"===e&&i.me)return void(i.me.value=n);if("it"===e)return void Object.assign(i,{it:n});if("you"===e&&i.you)return void(i.you.value=n);oo(e,n,i)}}const uo=na((()=>{let e,t,r=[ra({description:"Create DOM elements or class instances",syntax:["make a <tag#id.class1.class2/>","make a <ClassName> from <args> called <identifier>"],examples:["make an <a.navlink/> called linkElement",'make a URL from "/path/", "https://origin.example.com"'],sideEffects:["dom-creation","data-mutation"]}),ta({name:"make",category:"dom"})],n=[];return t=class{async parseInput(e,t,r){const n=e.args.length>0?await t.evaluate(e.args[0],r):void 0;if(!n)throw Error("Make command requires class name or DOM element expression");const i=void 0!==e.modifiers.an?"an":"a",a=await async function(e,t,r){if(!e)return[];if("arrayLiteral"===e.type&&Array.isArray(e.args)){const n=[];for(const i of e.args)n.push(await t.evaluate(i,r));return n}const n=await t.evaluate(e,r);return Array.isArray(n)?n:[n]}(e.modifiers.from,t,r),o=await async function(e,t,r){if(!e)return;if("symbol"===e.type&&"string"==typeof e.name)return e.name;const n=await t.evaluate(e,r);return"string"==typeof n?n:n+""}(e.modifiers.called,t,r);return{article:i,expression:n,constructorArgs:a,variableName:o}}async execute(e,t){const{expression:r,constructorArgs:n=[],variableName:i}=e,a="string"==typeof r&&r.startsWith("<")&&r.endsWith("/>")?function(e){const t=e.slice(1,-2);let r="div",n=t;const i=t.match(/^([a-zA-Z][a-zA-Z0-9]*)/);i&&(r=i[1],n=t.slice(i[0].length));const a=document.createElement(r),o=n.split(/(?=[.#])/);for(const e of o)if(e.startsWith("#")){const t=e.slice(1);t&&(a.id=t)}else if(e.startsWith(".")){const t=e.slice(1);t&&a.classList.add(t)}return a}(r):function(e,t,r){if(ia(e))return e;const n=e+"";let i;if("undefined"!=typeof window&&(i=window[n]),i||"undefined"==typeof global||(i=global[n]),!i&&r.variables?.has(n)&&(i=r.variables.get(n)),!i||"function"!=typeof i)throw Error(`Constructor '${n}' not found or is not a function`);return 0===t.length?new i:new i(...t)}(r,n,t);return Object.assign(t,{it:a}),i&&oo(i,a,t),a}},Xi(t,"MakeCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})());var po="moveBefore"in Element.prototype,mo=[0,1,0,0,0,0,0,0,0,1,0,1,0],ho=0,fo=1,yo=2,vo=new Set,go=new Set,ko=new Set,bo=new Set,wo=new Set,zo=new Set;function xo(e){for(const t of e.querySelectorAll("input"))(t.name&&t.value!==t.defaultValue||t.checked!==t.defaultChecked)&&t.setAttribute("morphlex-dirty","");for(const t of e.querySelectorAll("option"))t.value&&t.selected!==t.defaultSelected&&t.setAttribute("morphlex-dirty","");for(const t of e.querySelectorAll("textarea"))t.value!==t.defaultValue&&t.setAttribute("morphlex-dirty","")}function Eo(e){const t=document.createElement("template");return t.innerHTML=e.trim(),t.content}function To(e,t,r){if(t!==r){if(t.parentNode===e){if(t.nextSibling===r)return;if(po)return void e.moveBefore(t,r)}e.insertBefore(t,r)}}class So{#e=new WeakMap;#t=new WeakMap;#r;constructor(e={}){this.#r=e}morph(e,t){Lo(e)&&this.#n(e),t instanceof NodeList?(this.#i(t),this.#a(e,t)):Lo(t)&&(this.#o(t),this.#s(e,t))}#a(e,t){const r=t.length;if(0===r)this.#l(e);else if(1===r)this.#s(e,t[0]);else if(r>1){const r=[...t];this.#s(e,r.shift());const n=e.nextSibling,i=e.parentNode||document;for(let e=0;r.length>e;e++){const t=r[e];(this.#r.beforeNodeAdded?.(i,t,n)??1)&&(i.insertBefore(t,n),this.#r.afterNodeAdded?.(t))}}}#s(e,t){e!==t&&(e.isEqualNode(t)||(1===e.nodeType&&1===t.nodeType?e.localName===t.localName?this.#c(e,t):this.#u(e,t):this.#p(e,t)))}#c(e,t){(this.#r.beforeNodeVisited?.(e,t)??1)&&((e.hasAttributes()||t.hasAttributes())&&this.#m(e,t),"textarea"===e.localName&&"textarea"===t.localName?this.#d(e,t):(e.hasChildNodes()||t.hasChildNodes())&&this.visitChildNodes(e,t),this.#r.afterNodeVisited?.(e,t))}#u(e,t){(this.#r.beforeNodeVisited?.(e,t)??1)&&(this.#h(e,t),this.#r.afterNodeVisited?.(e,t))}#p(e,t){(this.#r.beforeNodeVisited?.(e,t)??1)&&(e.nodeType===t.nodeType&&null!==e.nodeValue&&null!==t.nodeValue?e.nodeValue=t.nodeValue:this.#h(e,t),this.#r.afterNodeVisited?.(e,t))}#m(e,t){e.hasAttribute("morphlex-dirty")&&e.removeAttribute("morphlex-dirty");for(const{name:r,value:n}of t.attributes){"value"===r&&Co(e)&&e.value!==n&&(this.#r.preserveChanges&&e.value!==e.defaultValue||(e.value=n)),"selected"===r&&Ao(e)&&!e.selected&&(this.#r.preserveChanges&&e.selected!==e.defaultSelected||(e.selected=!0)),"checked"===r&&Co(e)&&!e.checked&&(this.#r.preserveChanges&&e.checked!==e.defaultChecked||(e.checked=!0));const t=e.getAttribute(r);t!==n&&(this.#r.beforeAttributeUpdated?.(e,r,n)??1)&&(e.setAttribute(r,n),this.#r.afterAttributeUpdated?.(e,r,t))}for(const{name:r,value:n}of e.attributes)t.hasAttribute(r)||("selected"===r&&Ao(e)&&e.selected&&(this.#r.preserveChanges&&e.selected!==e.defaultSelected||(e.selected=!1)),"checked"===r&&Co(e)&&e.checked&&(this.#r.preserveChanges&&e.checked!==e.defaultChecked||(e.checked=!1)),(this.#r.beforeAttributeUpdated?.(e,r,null)??1)&&(e.removeAttribute(r),this.#r.afterAttributeUpdated?.(e,r,n)))}#d(e,t){const r=t.textContent||"",n=e.value!==e.defaultValue;e.textContent!==r&&(e.textContent=r),this.#r.preserveChanges&&n||(e.value=e.defaultValue)}visitChildNodes(e,t){if(!(this.#r.beforeChildrenVisited?.(e)??1))return;const r=e,n=[...e.childNodes],i=[...t.childNodes];vo.clear(),go.clear(),ko.clear(),bo.clear(),wo.clear(),zo.clear();const a=[],o=[],s=[],l=[],c=[],u=[];for(let e=0;n.length>e;e++){const t=n[e],r=t.nodeType;l[e]=r,1===r?(u[e]=t.localName,""!==t.id?ko.add(e):go.add(e)):3===r&&""===t.textContent?.trim()?zo.add(e):vo.add(e)}for(let e=0;i.length>e;e++){const t=i[e],r=t.nodeType;if(s[e]=r,1===r)c[e]=t.localName,wo.add(e);else{if(3===r&&""===t.textContent?.trim())continue;bo.add(e)}}for(const e of wo){const t=c[e],r=i[e];for(const i of go){if(t!==u[i])continue;if(n[i].isEqualNode(r)){a[e]=i,o[e]=ho,go.delete(i),wo.delete(e);break}}}for(const e of wo){const t=i[e],r=t.id,s=this.#e.get(t);if(""!==r||s)e:for(const t of ko){const i=n[t];if(c[e]===u[t]){if(""!==r&&r===i.id){a[e]=t,o[e]=fo,ko.delete(t),wo.delete(e);break e}if(s){const r=this.#t.get(i);if(r)for(let n=0;s.length>n;n++){if(r.has(s[n])){a[e]=t,o[e]=fo,ko.delete(t),wo.delete(e);break e}}}}}}for(const e of wo){const t=i[e],r=t.getAttribute("name"),s=t.getAttribute("href"),l=t.getAttribute("src");for(const t of go){const i=n[t];if(c[e]===u[t]&&(r&&r===i.getAttribute("name")||s&&s===i.getAttribute("href")||l&&l===i.getAttribute("src"))){a[e]=t,o[e]=fo,go.delete(t),wo.delete(e);break}}}for(const e of wo){const t=i[e],r=c[e];for(const i of go){if(r===u[i]){if("input"===r&&n[i].type!==t.type)continue;a[e]=i,o[e]=fo,go.delete(i),wo.delete(e);break}}}for(const e of bo){const t=i[e];for(const r of vo){if(n[r].isEqualNode(t)){a[e]=r,o[e]=ho,vo.delete(r),bo.delete(e);break}}}for(const e of bo){const t=s[e];for(const r of vo)if(t===l[r]){a[e]=r,o[e]=yo,vo.delete(r),bo.delete(e);break}}for(const e of vo)this.#l(n[e]);for(const e of zo)this.#l(n[e]);for(const e of go)this.#l(n[e]);for(const e of ko)this.#l(n[e]);const p=function(e){const t=e.length;if(0===t)return[];const r=[],n=[],i=Array(t);for(let a=0;t>a;a++){const t=e[a];if(void 0===t)continue;let o=0,s=r.length;for(;s>o;){const e=Math.floor((o+s)/2);t>r[e]?o=e+1:s=e}i[a]=o>0?n[o-1]:-1,o===r.length?(r.push(t),n.push(a)):(r[o]=t,n[o]=a)}const a=[];if(0===n.length)return a;let o=n[n.length-1];for(;void 0!==o&&-1!==o;)a.unshift(o),o=i[o];return a}(a),m=Array(n.length);for(let e=0;p.length>e;e++)m[a[p[e]]]=!0;let d=r.firstChild;for(let e=0;i.length>e;e++){const t=i[e],s=a[e];if(void 0!==s){const i=n[s],a=o[e];m[s]||To(r,i,d),a===ho||(a===fo?this.#c(i,t):this.#s(i,t)),d=i.nextSibling}else(this.#r.beforeNodeAdded?.(r,t,d)??1)&&(r.insertBefore(t,d),this.#r.afterNodeAdded?.(t),d=t.nextSibling)}this.#r.afterChildrenVisited?.(e)}#h(e,t){const r=e.parentNode||document,n=e;(this.#r.beforeNodeRemoved?.(e)??1)&&(this.#r.beforeNodeAdded?.(r,t,n)??1)&&(r.insertBefore(t,n),this.#r.afterNodeAdded?.(t),e.remove(),this.#r.afterNodeRemoved?.(e))}#l(e){(this.#r.beforeNodeRemoved?.(e)??1)&&(e.remove(),this.#r.afterNodeRemoved?.(e))}#i(e){for(const t of e)Lo(t)&&this.#o(t)}#o(e){const t=this.#e;for(const r of e.querySelectorAll("[id]")){const n=r.id;if(""===n)continue;let i=r;for(;i;){const r=t.get(i);if(r?r.push(n):t.set(i,[n]),i===e)break;i=i.parentElement}}}#n(e){const t=this.#t;for(const r of e.querySelectorAll("[id]")){const n=r.id;if(""===n)continue;let i=r;for(;i;){const r=t.get(i);if(r?r.add(n):t.set(i,new Set([n])),i===e)break;i=i.parentElement}}}}function Co(e){return"input"===e.localName}function Ao(e){return"option"===e.localName}function Lo(e){return!!mo[e.nodeType]}const jo=function(e,t,r={}){"string"==typeof t&&(t=Eo(t).childNodes),!r.preserveChanges&&Lo(e)&&xo(e),new So(r).morph(e,t)},Po=function(e,t,r={}){if("string"==typeof t){const e=Eo(t);if(!e.firstChild||1!==e.childNodes.length||1!==e.firstChild.nodeType)throw Error("[Morphlex] The string was not a valid HTML element.");t=e.firstChild}if(1!==e.nodeType||1!==t.nodeType||e.localName!==t.localName)throw Error("[Morphlex] You can only do an inner morph with matching elements.");Lo(e)&&xo(e),new So(r).visitChildNodes(e,t)};function No(e){return e?{preserveChanges:e.preserveChanges??!0,beforeNodeVisited:e.beforeNodeVisited,afterNodeVisited:e.afterNodeVisited,beforeNodeAdded:e.beforeNodeAdded?t=>e.beforeNodeAdded(t.parentNode,t,null):void 0,afterNodeAdded:e.afterNodeAdded,beforeNodeRemoved:e.beforeNodeRemoved,afterNodeRemoved:e.afterNodeRemoved}:{preserveChanges:!0}}let Oo={morph(e,t,r){const n=No(r);jo(e,t,n)},morphInner(e,t,r){const n=No(r);let i;if("string"==typeof t){const r=document.createElement(e.tagName);r.innerHTML=t,i=r}else i=t;Po(e,i,n)}};const Io={morph(e,t,r){Oo.morph(e,t,r)},morphInner(e,t,r){Oo.morphInner(e,t,r)}};function Ro(){return"undefined"!=typeof document&&"function"==typeof document.startViewTransition}let Mo={enabled:Ro(),defaultTimeout:5e3},Wo=[],qo=!1;async function _o(e,t){const{skipTransition:r=!1,timeout:n=Mo.defaultTimeout}=t;if(!Mo.enabled||!Ro()||r)return void await e();const i=document.startViewTransition(async()=>{await e()}),a=new Promise((e,t)=>{setTimeout(()=>t(Error("View transition timed out")),n)});try{await Promise.race([i.finished,a])}catch(e){}}function $o(e,t={}){return new Promise((r,n)=>{Wo.push({callback:e,options:t,resolve:r,reject:n}),async function(){if(!qo&&0!==Wo.length){for(qo=!0;Wo.length>0;){const e=Wo.shift();try{await _o(e.callback,e.options),e.resolve()}catch(t){e.reject(t)}}qo=!1}}().catch(n)})}const Do={html:{category:"document-root",message:"The <html> element is the document root and cannot be part of a partial",suggestion:"Remove the <html> element. Return only the content that should replace the target."},body:{category:"document-root",message:"The <body> element is the document body and cannot be part of a partial",suggestion:"Remove the <body> element. Return only the content for the target."},head:{category:"document-root",message:"The <head> element contains document metadata and cannot be part of a partial",suggestion:"Remove the <head> element. Styles/scripts should be loaded separately."}},Vo={header:{category:"semantic-landmark",message:"The <header> element is a semantic landmark. Swapping may create duplicate landmarks.",suggestion:"Consider if <header> is appropriate in this partial, or if the page already has this landmark."},footer:{category:"semantic-landmark",message:"The <footer> element is a semantic landmark. Swapping may create duplicate landmarks.",suggestion:"Consider if <footer> is appropriate in this partial, or if the page already has this landmark."},main:{category:"semantic-landmark",message:"The <main> element should be unique per page. Swapping may create duplicates.",suggestion:"Consider if <main> is appropriate. Pages should have exactly one <main> element."},nav:{category:"semantic-landmark",message:"The <nav> element is a semantic landmark. Consider if navigation should be in a partial.",suggestion:"Consider if <nav> is appropriate in this partial, or if navigation should be static."},aside:{category:"semantic-landmark",message:"The <aside> element is a semantic landmark. Swapping may affect accessibility.",suggestion:"Consider if <aside> is appropriate in this partial."}},Ho={title:{category:"metadata",message:"The <title> element should only appear in <head>. This may be ignored by browsers.",suggestion:"Move <title> to the document <head> or remove from partial."},meta:{category:"metadata",message:"The <meta> element should only appear in <head>. This may be ignored by browsers.",suggestion:"Move <meta> to the document <head> or remove from partial."},link:{category:"metadata",message:"The <link> element for stylesheets should typically be in <head>.",suggestion:"Consider if <link> should be in document <head> for proper loading order."},base:{category:"metadata",message:"The <base> element should only appear once in <head>.",suggestion:"Remove <base> from partial. It must be in document <head>."}};let Bo={...{enabled:!("undefined"!=typeof window&&window.__HYPERFIXI_PROD__||"undefined"!=typeof process&&"production"===process.env?.NODE_ENV),showWarnings:!0,strictness:"standard",additionalCriticalElements:[],additionalStructuralElements:[],ignoredElements:[],ignoredTargets:[],targetOverrides:[]}};function Fo(){return{...Bo}}function Uo(e,t){if("*"===t)return!0;if(t.includes("*")){const r=t.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return RegExp("^"+r+"$").test(e)}return e===t}function Ko(e,t=""){const r=function(e){const t={...Bo};if(Bo.targetOverrides)for(const r of Bo.targetOverrides)if(Uo(e,r.target))return{...t,...r.config};return t}(t);if(!r.enabled)return{valid:!0,issues:[],bySeverity:{critical:[],structural:[],warning:[]},totalIssues:0,shouldProceed:!0};if(r.ignoredTargets?.some(e=>Uo(t,e)))return{valid:!0,issues:[],bySeverity:{critical:[],structural:[],warning:[]},totalIssues:0,shouldProceed:!0};const n=[];if(e.match(/<!DOCTYPE[^>]*>/i)&&!r.ignoredElements?.includes("doctype")&&n.push({severity:"critical",category:"document-root",element:"DOCTYPE",message:"DOCTYPE declarations cannot be part of a partial",suggestion:"Remove DOCTYPE declaration. Partials should only contain content fragments.",targetSelector:t,count:1}),"undefined"==typeof document)return function(e,t,r){const n=[];for(const[i,a]of Object.entries(Do)){if(r.ignoredElements?.includes(i))continue;const o=RegExp(`<${i}[\\s>]`,"gi"),s=e.match(o),l=s?.length||0;l>0&&n.push({severity:"critical",category:a.category,element:i,message:a.message,suggestion:a.suggestion||`Remove the <${i}> element from the partial.`,targetSelector:t,count:l})}if("relaxed"!==r.strictness)for(const[i,a]of Object.entries(Vo)){if(r.ignoredElements?.includes(i))continue;const o=RegExp(`<${i}[\\s>]`,"gi"),s=e.match(o),l=s?.length||0;l>0&&n.push({severity:"strict"===r.strictness?"critical":"structural",category:a.category,element:i,message:a.message,suggestion:a.suggestion||`Consider if <${i}> is appropriate in this partial.`,targetSelector:t,count:l})}return Go(n)}(e,t,r);for(const[i,a]of Object.entries(Do)){if(r.ignoredElements?.includes(i))continue;const o=RegExp(`<${i}[\\s>]`,"gi"),s=e.match(o),l=s?.length||0;l>0&&n.push({severity:"critical",category:a.category,element:i,message:a.message,suggestion:a.suggestion||`Remove the <${i}> element from the partial.`,targetSelector:t,count:l})}const i=document.createElement("div");if(i.innerHTML=e,"relaxed"!==r.strictness)for(const[e,a]of Object.entries(Vo)){if(r.ignoredElements?.includes(e))continue;const o=i.querySelectorAll(e).length;o>0&&n.push({severity:"strict"===r.strictness?"critical":"structural",category:a.category,element:e,message:a.message,suggestion:a.suggestion||`Consider if <${e}> is appropriate in this partial.`,targetSelector:t,count:o})}if("strict"===r.strictness)for(const[e,a]of Object.entries(Ho)){if(r.ignoredElements?.includes(e))continue;const o=i.querySelectorAll(e).length;o>0&&n.push({severity:"warning",category:a.category,element:e,message:a.message,suggestion:a.suggestion||`Move <${e}> to document <head> or remove from partial.`,targetSelector:t,count:o})}if(r.additionalCriticalElements)for(const e of r.additionalCriticalElements){if(r.ignoredElements?.includes(e))continue;const a=i.querySelectorAll(e).length;a>0&&n.push({severity:"critical",category:"document-root",element:e,message:`The <${e}> element is configured as a critical layout element.`,suggestion:`Remove <${e}> from the partial content.`,targetSelector:t,count:a})}if(r.additionalStructuralElements)for(const e of r.additionalStructuralElements){if(r.ignoredElements?.includes(e))continue;const a=i.querySelectorAll(e).length;a>0&&n.push({severity:"structural",category:"semantic-landmark",element:e,message:`The <${e}> element is configured as a structural element.`,suggestion:`Consider if <${e}> is appropriate in this partial.`,targetSelector:t,count:a})}if(r.customValidator){const i=r.customValidator(e,t);n.push(...i)}return Go(n)}function Go(e){const t={critical:e.filter(e=>"critical"===e.severity),structural:e.filter(e=>"structural"===e.severity),warning:e.filter(e=>"warning"===e.severity)};return{valid:0===t.critical.length,issues:e,bySeverity:t,totalIssues:e.length,shouldProceed:!0}}const Yo="color: #dc2626; font-weight: bold;",Zo="color: #ea580c; font-weight: bold;",Xo="color: #ca8a04; font-weight: bold;",Jo="color: inherit;",Qo={critical:"🚨",structural:"⚠️",warning:"💡"},es={critical:"CRITICAL",structural:"STRUCTURAL",warning:"WARNING"};function ts(e){0!==e.totalIssues&&("undefined"!=typeof window&&void 0!==console?function(e){if(function(e){const t=[],r=[];e.bySeverity.critical.length>0&&(t.push(`%c${e.bySeverity.critical.length} critical%c`),r.push(Yo,Jo));e.bySeverity.structural.length>0&&(t.length>0&&t.push(", "),t.push(`%c${e.bySeverity.structural.length} structural%c`),r.push(Zo,Jo));e.bySeverity.warning.length>0&&(t.length>0&&t.push(", "),t.push(`%c${e.bySeverity.warning.length} warning(s)%c`),r.push(Xo,Jo))}(e),e.bySeverity.critical.length>0)for(const t of e.bySeverity.critical)rs(t);if(e.bySeverity.structural.length>0)for(const t of e.bySeverity.structural)rs(t);if(e.bySeverity.warning.length>0)for(const t of e.bySeverity.warning)rs(t)}(e):function(e){const t=[];e.bySeverity.critical.length>0&&t.push(e.bySeverity.critical.length+" critical");e.bySeverity.structural.length>0&&t.push(e.bySeverity.structural.length+" structural");e.bySeverity.warning.length>0&&t.push(e.bySeverity.warning.length+" warning(s)");for(const t of e.issues){}}(e))}function rs(e){}function ns(e){return`${Qo[e.severity]} [${es[e.severity]}] <${e.element}>${e.count>1?` (${e.count}x)`:""}${e.targetSelector?` [target: ${e.targetSelector}]`:""}: ${e.message}`}function is(e){return e.issues.map(ns)}const as={into:"innerHTML",over:"outerHTML",innerhtml:"innerHTML",outerhtml:"outerHTML",beforebegin:"beforeBegin",afterbegin:"afterBegin",beforeend:"beforeEnd",afterend:"afterEnd",delete:"delete",none:"none",morph:"morph",innermorph:"morph",outermorph:"morphOuter"};function os(e,t,r,n){const i=null===t||ia(t)?"":t,a=ia(t)?t:null;switch(r){case"morph":if(null!==t)try{Io.morphInner(e,a||i,n)}catch(t){a?(e.innerHTML="",e.appendChild(a)):e.innerHTML=i}break;case"morphOuter":if(null!==t)try{Io.morph(e,a||i,n)}catch(t){a?e.replaceWith(a):e.outerHTML=i}break;case"innerHTML":a?(e.innerHTML="",e.appendChild(a)):e.innerHTML=i;break;case"outerHTML":a?e.replaceWith(a):e.outerHTML=i;break;case"beforeBegin":a?e.parentElement?.insertBefore(a,e):e.insertAdjacentHTML("beforebegin",i);break;case"afterBegin":a?e.insertBefore(a,e.firstChild):e.insertAdjacentHTML("afterbegin",i);break;case"beforeEnd":a?e.appendChild(a):e.insertAdjacentHTML("beforeend",i);break;case"afterEnd":a?e.parentElement?.insertBefore(a,e.nextSibling):e.insertAdjacentHTML("afterend",i);break;case"delete":e.remove();break;case"none":break;default:throw Error(`[HyperFixi] swap: unknown strategy "${r}"`)}}async function ss(e,t,r,n={}){const{morphOptions:i,useViewTransition:a=!1,validateContent:o=!1,targetSelector:s}=n;if(o&&"string"==typeof t){const r=Fo();if(r.enabled){const n=s||function(e){if(!e)return"";if(e.id)return"#"+e.id;if(e.className){const t=e.className.split(" ")[0];if(t)return"."+t}return e.tagName.toLowerCase()}(e[0]),i=Ko(t,n);i.totalIssues>0&&r.showWarnings&&ts(i)}}const l=()=>{for(const n of e)os(n,t,r,i)};a&&Ro()?await $o(l):l()}function ls(e){if(null==e)return null;if(ia(e))return e;if(function(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&11===e.nodeType&&"childNodes"in e}(e)){const t=e,r=document.createElement("div");return r.appendChild(t.cloneNode(!0)),r.innerHTML}return e+""}async function cs(e,t){const r=oa(e||void 0,t);if(0===r.length){throw Error("[HyperFixi] swap: no elements found"+(e?` matching "${e}"`:""))}return r}let us=(()=>{let e,t,r=[ra({description:"Swap content into target elements with intelligent morphing support",syntax:["swap <target> with <content>","swap [strategy] of <target> with <content>","swap into <target> with <content>","swap over <target> with <content>","swap delete <target>","swap <target> with <content> using view transition"],examples:["swap #target with it","swap innerHTML of #target with it","swap over #modal with fetchedContent","swap delete #notification"],sideEffects:["dom-mutation"]}),ta({name:"swap",category:"dom"})],n=[];return t=class{async parseInput(e,t,r){const n=e.args;if(!n||0===n.length)throw Error("[HyperFixi] swap: command requires arguments");const i=n.map(e=>{if(!e||"object"!=typeof e)return null;const t=e,r=t.type;return"literal"===r&&"string"==typeof t.value?t.value.toLowerCase():"identifier"===r&&"string"==typeof t.name?t.name.toLowerCase():null}),a=i.findIndex(e=>"with"===e),o=i.findIndex(e=>"of"===e),s=i.findIndex(e=>"delete"===e),l=i.findIndex(e=>"using"===e);let c=!1;if(-1!==l){const e=i.slice(l+1);e.includes("view")&&e.includes("transition")&&(c=!0)}let u="morph",p=null,m=null;if(-1!==s)u="delete",p=n[s+1],m=null;else if(-1!==o&&-1!==a){const e=i[0];e&&as[e]&&(u=as[e]),p=n[o+1],m=n[a+1]}else if(-1!==a){const e=i.slice(0,a),t=e.findIndex(e=>"into"===e),r=e.findIndex(e=>"over"===e);if(-1!==t)u="innerHTML",p=n[t+1];else if(-1!==r)u="outerHTML",p=n[r+1];else{const e=i[0];e&&as[e]?(u=as[e],p=n[1]||n[a-1]):p=n[a-1]}m=n[a+1]}else{if(2>n.length)throw Error('[HyperFixi] swap: could not parse arguments. Expected "swap <target> with <content>"');{const e=i[0];e&&as[e]&&(u=as[e]),p=n[n.length-2],m=n[n.length-1]}}let d=null,h=null;if(p){const e=p.type,n=p.value;if("selector"===e&&"string"==typeof n)d=n;else if("binaryExpression"===e&&"of"===p.operator){const e=p.left,n=p.right;if(e&&"identifier"===e.type&&"string"==typeof e.name){const t=e.name.toLowerCase();as[t]&&(u=as[t])}n&&"selector"===n.type&&"string"==typeof n.value?d=n.value:n&&(d=await t.evaluate(n,r))}else d=await t.evaluate(p,r)}m&&(h=await t.evaluate(m,r));let f=null;if("string"==typeof d)f=d;else if(ia(d))return{targets:[d],content:ls(h),strategy:u,morphOptions:{preserveChanges:!0},useViewTransition:c};return{targets:await cs(f,r),content:ls(h),strategy:u,morphOptions:{preserveChanges:!0},useViewTransition:c}}async execute(e,t){const{targets:r,content:n,strategy:i,morphOptions:a,useViewTransition:o}=e;await ss(r,n,i,{morphOptions:a,useViewTransition:o})}},Xi(t,"SwapCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})(),ps=(()=>{let e,t,r=[ra({description:"Morph content into target elements (intelligent diffing, preserves state)",syntax:["morph <target> with <content>","morph over <target> with <content>"],examples:["morph #target with it","morph over #modal with fetchedContent"],sideEffects:["dom-mutation"]}),ta({name:"morph",category:"dom"})],n=[];return t=class{async parseInput(e,t,r){const n=e.args;if(!n||0===n.length)throw Error("[HyperFixi] morph: command requires arguments");const i=n.map(e=>"identifier"===e.type&&"string"==typeof e.name?e.name.toLowerCase():null),a=i.findIndex(e=>"with"===e),o=i.findIndex(e=>"over"===e),s=i.findIndex(e=>"using"===e);let l=!1;if(-1!==s){const e=i.slice(s+1);e.includes("view")&&e.includes("transition")&&(l=!0)}let c="morph",u=null,p=null;if(-1!==o&&(-1===a?1/0:a)>o?(c="morphOuter",u=n[o+1],-1!==a&&(p=n[a+1])):-1!==a?(u=n[a-1],p=n[a+1]):2>n.length||(u=n[0],p=n[1]),!u)throw Error("[HyperFixi] morph: could not determine target");let m=null;m="selector"===u.type&&"string"==typeof u.value?u.value:await t.evaluate(u,r);let d,h=null;if(p&&(h=await t.evaluate(p,r)),!m)throw Error("[HyperFixi] morph: could not determine target");if("string"==typeof m)d=await cs(m,r);else{if(!ia(m))throw Error("[HyperFixi] morph: target must be a selector or element");d=[m]}return{targets:d,content:ls(h),strategy:c,morphOptions:{preserveChanges:!0},useViewTransition:l}}async execute(e,t){const{targets:r,content:n,strategy:i,morphOptions:a,useViewTransition:o}=e;if(o)await ss(r,n,i,{morphOptions:a,useViewTransition:o});else for(const e of r)os(e,n,i,a)}},Xi(t,"MorphCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})();const ms=na(us),ds=na(ps);function hs(e,t,r={}){return new CustomEvent(e,{detail:void 0!==t?t:{},bubbles:void 0===r.bubbles||r.bubbles,cancelable:void 0===r.cancelable||r.cancelable,composed:void 0!==r.composed&&r.composed})}function fs(e){const t=e.trim();return/^\d+$/.test(t)?parseInt(t,10):/^\d*\.\d+$/.test(t)?parseFloat(t):"true"===t||"false"!==t&&("null"===t?null:"undefined"!==t?t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t.slice(1,-1):t:void 0)}function ys(e,t,r={},n={}){const i=hs(t,r,n);return e.dispatchEvent(i),i}function vs(e,t,r={},n={}){return{lokascript:ys(e,"lokascript:"+t,r,n),hyperfixi:ys(e,"hyperfixi:"+t,r,n)}}ms(),ds();const gs={morph:"morph",morphouter:"morphOuter",innerhtml:"innerHTML",outerhtml:"outerHTML",beforebegin:"beforeBegin",afterbegin:"afterBegin",beforeend:"beforeEnd",afterend:"afterEnd",delete:"delete",none:"none"};function ks(e,t){const{target:r,strategy:n,content:i}=e,a=document.querySelector(r);if(!a||!ia(a))return{success:!1,error:`Target "${r}" not found`};try{switch(n){case"morph":Io.morphInner(a,i,t);break;case"morphOuter":Io.morph(a,i,t);break;case"innerHTML":a.innerHTML=i;break;case"outerHTML":a.outerHTML=i;break;case"beforeBegin":a.insertAdjacentHTML("beforebegin",i);break;case"afterBegin":a.insertAdjacentHTML("afterbegin",i);break;case"beforeEnd":a.insertAdjacentHTML("beforeend",i);break;case"afterEnd":a.insertAdjacentHTML("afterend",i);break;case"delete":a.remove();break;case"none":break;default:return{success:!1,error:`Unknown strategy "${n}"`}}return{success:!0}}catch(e){return{success:!1,error:e+""}}}function bs(e,t){const r=function(e){const t=[],r=document.createElement("div");r.innerHTML=e;const n=r.querySelectorAll("hx-partial");for(const e of n){const r=e.getAttribute("target");if(!r)continue;const n=e.getAttribute("strategy")?.toLowerCase()||"morph";t.push({target:r,strategy:gs[n]||"morph",content:e.innerHTML})}return t}(e),n=Fo(),i={count:0,targets:[],errors:[],validationWarnings:[],validationDetails:{}};for(const e of r){if(n.enabled){const t=Ko(e.content,e.target);t.totalIssues>0&&(n.showWarnings&&ts(t),i.validationWarnings.push(...is(t)),i.validationDetails[e.target]=t)}const r=ks(e,t);r.success?(i.count++,i.targets.push(e.target)):r.error&&i.errors.push(`${e.target}: ${r.error}`)}return i}const ws=na((()=>{let e,t,r=[ra({description:"Process <hx-partial> elements for multi-target swaps",syntax:["process partials in <content>","process partials in <content> using view transition"],examples:["process partials in it","process partials in fetchedHtml","process partials in it using view transition"],sideEffects:["dom-mutation"]}),ta({name:"process",category:"dom"})],n=[];return t=class{async parseInput(e,t,r){const n=e.args;if(!n||0===n.length)throw Error("process partials command requires content argument");const i=[],a=[];for(const e of n){const n=await t.evaluate(e,r);i.push(n),"string"==typeof n&&a.push(n.toLowerCase())}const o=a.findIndex(e=>"partials"===e);if(-1===o)throw Error('process command expects "partials" keyword: process partials in <content>');const s=a.findIndex(e=>"in"===e);if(-1===s||o>=s)throw Error('process partials command expects "in" keyword: process partials in <content>');const l=i[s+1];let c;if("string"==typeof l)c=l;else if(ia(l))c=l.outerHTML;else{if(!l||"function"!=typeof l.text)throw Error("process partials: content must be an HTML string or element");c=await l.text()}const u=a.findIndex(e=>"using"===e);let p=!1;if(-1!==u){const e=a.slice(u+1).join(" ");e.includes("view")&&e.includes("transition")&&(p=!0)}return{html:c,useViewTransition:p,morphOptions:{preserveChanges:!0}}}async execute(e,t){const{html:r,useViewTransition:n,morphOptions:i}=e,a=()=>bs(r,i);let o;return n&&Ro()?await $o(()=>{o=a()}):o=a(),t.it=o,vs(window,"partials",o),o}},Xi(t,"ProcessPartialsCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})());function zs(e,t,r){return e?new Promise(r=>{const n=Es(()=>{e.removeEventListener(t,i)},r),i=e=>{n({event:e,timedOut:!1,cancelled:!1})};e.addEventListener(t,i)}):Promise.reject(Error("waitForEvent: no target provided"))}function xs(e){return new Promise(t=>setTimeout(t,e))}function Es(e,t){let r=!1;return n=>{r||(r=!0,e(),t(n))}}ws();let Ts=(()=>{let e,t,r=[ra({description:"Wait for time delay, event, or race condition",syntax:["wait <time>","wait for <event>","wait for <event> or <condition>"],examples:["wait 2s","wait for click","wait for click or 1s","wait for mousemove(clientX, clientY)"],sideEffects:["time","event-listening"]}),ta({name:"wait",category:"async"})],n=[];return t=class{async parseInput(e,t,r){if(!e.args?.length)throw Error("wait command requires an argument");if(e.modifiers.or)return this.parseRaceCondition(e,t,r);if(e.modifiers.for)return this.parseEventWait(e.modifiers.for,e.modifiers.from,t,r);const n=e.args[0];return"arrayLiteral"===n.type&&n.elements?this.parseEventArrayWait(n.elements,e.args[1],t,r):this.parseTimeWait(e.args[0],t,r)}async execute(e,t){const r=Date.now();if("time"===e.type)return await xs(e.milliseconds),{type:"time",result:e.milliseconds,duration:Date.now()-r};if("event"===e.type){const n=e.target??t.me??document,i=(await zs(n,e.eventName)).event;if(Object.assign(t,{it:i}),e.destructure)for(const r of e.destructure)r in i&&t.locals.set(r,i[r]);return{type:"event",result:i,duration:Date.now()-r}}const{result:n,winningCondition:i}=await this.executeRace(e.conditions,t);if(Object.assign(t,{it:n}),n instanceof Event&&"event"===i?.type&&i.destructure)for(const e of i.destructure)e in n&&t.locals.set(e,n[e]);return{type:n instanceof Event?"event":"time",result:n,duration:Date.now()-r}}async parseTimeWait(e,t,r){return{type:"time",milliseconds:Ma(await t.evaluate(e,r))}}async parseEventWait(e,t,r,n){const i=await r.evaluate(e,n);if("string"!=typeof i)throw Error("wait for: event name must be a string");const a=i.match(/^(\w+)\(([^)]+)\)$/),o=a?a[1]:i,s=a?a[2].split(",").map(e=>e.trim()):void 0;let l;if(t){const e=await r.evaluate(t,n);if(!e||"object"!=typeof e||!("addEventListener"in e))throw Error("wait for from: target must be an EventTarget");l=e}else l=n.me??void 0;return{type:"event",eventName:o,target:l,destructure:s}}async parseEventArrayWait(e,t,r,n){const i=[];for(const t of e){const e=t;if("objectLiteral"===e.type&&e.properties){let t="",r=[];for(const n of e.properties){const e=n.key?.name||n.key?.value;"name"===e&&n.value?t=n.value.value||"":"args"===e&&n.value?.elements&&(r=n.value.elements.map(e=>e.value||e.name||""))}t&&i.push({name:t,params:r})}}let a;if(t){const e=await r.evaluate(t,n);e&&"object"==typeof e&&"addEventListener"in e&&(a=e)}return a||(a=n.me??void 0),1===i.length?{type:"event",eventName:i[0].name,target:a,destructure:i[0].params.length>0?i[0].params:void 0}:{type:"race",conditions:i.map(e=>({type:"event",eventName:e.name,target:a,destructure:e.params.length>0?e.params:void 0}))}}async parseRaceCondition(e,t,r){const n=[];e.modifiers.for?n.push(await this.parseEventWait(e.modifiers.for,e.modifiers.from,t,r)):e.args[0]&&n.push(await this.parseTimeWait(e.args[0],t,r));const i=await t.evaluate(e.modifiers.or,r),a=Array.isArray(i)?i:[i];for(const e of a)try{n.push({type:"time",milliseconds:Ma(e)})}catch{if("string"==typeof e){const t=e.match(/^(\w+)\(([^)]+)\)$/);n.push(t?{type:"event",eventName:t[1],target:r.me??void 0,destructure:t[2].split(",").map(e=>e.trim())}:{type:"event",eventName:e,target:r.me??void 0})}}if(2>n.length)throw Error("wait: race requires at least 2 conditions");return{type:"race",conditions:n}}async executeRace(e,t){const r=e.map(e=>{if("time"===e.type)return xs(e.milliseconds).then(()=>({result:e.milliseconds,winningCondition:e}));return zs(e.target??t.me??document,e.eventName).then(t=>({result:t.event,winningCondition:e}))});return Promise.race(r)}},Xi(t,"WaitCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})();const Ss=na(Ts),Cs=new Map;let As=(()=>{let e,t,r=[ra({description:"Make HTTP requests with lifecycle event support",syntax:["fetch <url>","fetch <url> as <type>","fetch <url> with <options>"],examples:['fetch "/api/data"','fetch "/api/users" as json','fetch "/api/save" with { method:"POST" }'],sideEffects:["network","event-dispatching"]}),ta({name:"fetch",category:"async"})],n=[];return t=class{async parseInput(e,t,r){if(!e.args?.length)throw Error("fetch requires a URL");return{url:await this.parseURL(e.args[0],t,r),responseType:this.parseResponseType(e.modifiers.as),options:await this.parseRequestOptions(e.modifiers.with,t,r)}}async execute(e,t){const r=Date.now(),{url:n,responseType:i,options:a}=e,o=new AbortController;let s;t.me&&(s=()=>o.abort(),t.me.addEventListener("fetch:abort",s,{once:!0}));const l={...a,signal:o.signal},c=Cs.get(i);if(c?.accept){const e=new Headers(l.headers);e.has("Accept")||e.set("Accept",c.accept),l.headers=e}if(t.me){const e={...l,sender:t.me,headers:l.headers||{}};this.dispatchEvent(t.me,"fetch:beforeRequest",e),l.headers=e.headers}let u;a.timeout&&(u=setTimeout(()=>o.abort(),a.timeout));try{let e=await fetch(n,l);if(t.me){const r={response:e};this.dispatchEvent(t.me,"fetch:afterResponse",r),e=r.response}const a=await this.handleResponse(e,i,t);t.me&&this.dispatchEvent(t.me,"fetch:afterRequest",{result:a});const o={status:e.status,statusText:e.statusText,headers:e.headers,data:a,url:e.url,duration:Date.now()-r};return Object.assign(t,{it:a}),o}catch(e){if(t.me&&this.dispatchEvent(t.me,"fetch:error",{reason:e instanceof Error?e.message:e+"",error:e}),e instanceof Error&&"AbortError"===e.name)throw Error("Fetch aborted for "+n);throw Error(`Fetch failed for ${n}: ${e instanceof Error?e.message:e+""}`)}finally{u&&clearTimeout(u),t.me&&s&&t.me.removeEventListener("fetch:abort",s)}}async parseURL(e,t,r){const n=await t.evaluate(e,r);if("string"!=typeof n||!n)throw Error("fetch: URL must be a non-empty string");return n}parseResponseType(e){if(!e)return"text";if(("identifier"===e.type||"expression"===e.type)&&e.name){const t=e.name.toLowerCase();if("object"===t)return"json";if(["text","json","html","response","blob","arraybuffer"].includes(t))return"arraybuffer"===t?"arrayBuffer":t;if(Cs.has(t))return t;throw Error(`fetch: invalid response type "${t}"`)}return"text"}async parseRequestOptions(e,t,r){if(!e)return{};const n=await t.evaluate(e,r);if("object"!=typeof n||null===n)throw Error('fetch: "with" options must be an object');const i={};return"method"in n&&(i.method=(n.method+"").toUpperCase()),"headers"in n&&(i.headers=this.parseHeaders(n.headers)),"body"in n&&(i.body=this.parseBody(n.body)),"credentials"in n&&(i.credentials=n.credentials),"mode"in n&&(i.mode=n.mode),"cache"in n&&(i.cache=n.cache),i}parseHeaders(e){if(e instanceof Headers)return e;const t=new Headers;if("object"==typeof e&&null!==e)for(const[r,n]of Object.entries(e))t.set(r,n+"");return t}parseBody(e){return null==e?null:e instanceof FormData||e instanceof Blob||e instanceof ArrayBuffer||e instanceof URLSearchParams||"string"==typeof e?e:"object"==typeof e?JSON.stringify(e):e+""}async handleResponse(e,t,r){switch(t){case"response":return e;case"json":return e.json();case"html":return this.parseHTML(await e.text());case"blob":return e.blob();case"arrayBuffer":return e.arrayBuffer();case"text":return e.text();default:{const n=Cs.get(t);return n?n.handler(e,r):e.text()}}}parseHTML(e){const t=(new DOMParser).parseFromString(e,"text/html"),r=document.createDocumentFragment();return Array.from(t.body.childNodes).forEach(e=>r.appendChild(e.cloneNode(!0))),1===r.childNodes.length&&ia(r.firstChild)?r.firstChild:r}dispatchEvent(e,t,r){e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0,cancelable:!0}))}},Xi(t,"FetchCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})();const Ls=na(As);const js=na((()=>{let e,t,r=[ra({description:"Set values to variables, attributes, or properties",syntax:["set <target> to <value>"],examples:['set myVar to "value"','set @data-theme to "dark"','set my innerHTML to "content"'],sideEffects:["state-mutation","dom-mutation"]}),ta({name:"set",category:"data"})],n=[];return t=class{async parseInput(e,t,r){if(!e.args?.length)throw Error("set command requires a target");const n=e.args[0],i=n?.name||n?.value,a=await Ya(n,t,r);if(a){const n=await this.extractValue(e,t,r);if(a.property.startsWith("*")){const e=a.property.substring(1);return{type:"style",element:a.element,property:e,value:n+""}}return{type:"property",element:a.element,property:a.property,value:n}}if("memberExpression"===n?.type||"propertyAccess"===n?.type){const i=await this.tryParseMemberExpression(n,e,t,r);if(i)return i}let o;if(o="identifier"!==n?.type&&"variable"!==n?.type||"string"!=typeof i?await t.evaluate(n,r):i,function(e){if("object"!=typeof e||null===e||Array.isArray(e))return!1;if(ia(e)||e instanceof Node)return!1;const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}(o)){return{type:"object-literal",properties:o,targets:await this.resolveTargets(e.modifiers.on,t,r)}}if(Ka(o)){const n=Ga(o,r);if(n){const i=await this.extractValue(e,t,r);return{type:"property",element:n.element,property:n.property,value:i}}return this.parseTheXofY(o,e,t,r)}if("string"==typeof o&&xa(o)){const n=o.substring(1).trim(),i=await this.extractValue(e,t,r);return{type:"style",element:await this.resolveElement(e.modifiers.on,t,r),property:n,value:i+""}}if("string"==typeof o&&ha(o)){const n=o.substring(1).trim(),i=await this.extractValue(e,t,r);return{type:"attribute",element:await this.resolveElement(e.modifiers.on,t,r),name:n,value:i}}if("string"==typeof o){const n=o.match(/^(my|me|its?|your?)\s+(.+)$/i);if(n){const i=la(n[1],r),a=await this.extractValue(e,t,r);return{type:"property",element:i,property:n[2],value:a}}}if(ia(o)){return{type:"property",element:o,property:"textContent",value:await this.extractValue(e,t,r)}}if(Array.isArray(o)&&o.length>0&&ia(o[0])){const n=await this.extractValue(e,t,r);return{type:"property",element:o[0],property:"textContent",value:n}}if("string"!=typeof o)throw Error("set command target must be a string or object literal");return{type:"variable",name:o,value:await this.extractValue(e,t,r)}}async execute(e,t){switch(e.type){case"variable":return t.locals.set(e.name,e.value),"result"!==e.name&&"it"!==e.name||Object.assign(t,{[e.name]:e.value}),Object.assign(t,{it:e.value}),{target:e.name,value:e.value,targetType:"variable"};case"attribute":return e.element.setAttribute(e.name,e.value+""),Object.assign(t,{it:e.value}),{target:"@"+e.name,value:e.value,targetType:"attribute"};case"property":return Ha(e.element,e.property,e.value),Object.assign(t,{it:e.value}),{target:e.element,value:e.value,targetType:"property"};case"style":return Ea(e.element,e.property,e.value),Object.assign(t,{it:e.value}),{target:e.element,value:e.value,targetType:"property"};case"object-literal":for(const t of e.targets)for(const[r,n]of Object.entries(e.properties))Ha(t,r,n);return Object.assign(t,{it:e.properties}),{target:e.targets[0]||"unknown",value:e.properties,targetType:"property"};case"member-assignment":return e.container[e.property]=e.value,Object.assign(t,{it:e.value}),{target:e.property,value:e.value,targetType:"property"};default:throw Error("Unknown input type: "+e.type)}}async tryParseMemberExpression(e,t,r,n){const i=e.object,a=e.property;if(i?.name&&a?.name){const e=i.name.toLowerCase();if(["me","my","it","its","you","your"].includes(e)){const i=la(e,n),o=await this.extractValue(t,r,n);return{type:"property",element:i,property:a.name,value:o}}}const o=e.object,s=e.computed;if(o){const i=await r.evaluate(o,n);if(null!=i&&"object"==typeof i){const o=s?await r.evaluate(e.property,n)+"":a?.name||"";if(o){return{type:"member-assignment",container:i,property:o,value:await this.extractValue(t,r,n)}}}}return null}async extractValue(e,t,r){if(e.modifiers.to)return t.evaluate(e.modifiers.to,r);const n=e.args.findIndex(e=>"identifier"===e.type&&"to"===e.name);if(n>=0&&e.args.length>n+1)return t.evaluate(e.args[n+1],r);if(e.args.length>=2)return t.evaluate(e.args[1],r);throw Error('set command requires a value (use "to" keyword)')}async resolveElement(e,t,r){if(!e)return aa(void 0,r);return aa(await t.evaluate(e,r),r)}async resolveTargets(e,t,r){if(!e)return oa(void 0,r);return oa(await t.evaluate(e,r),r)}async parseTheXofY(e,t,r,n){const i=e.match(/^the\s+(.+?)\s+of\s+(.+)$/i);if(!i)throw Error('Invalid "the X of Y" syntax');const[,a,o]=i,s=aa(o,n),l=await this.extractValue(t,r,n);return{type:"property",element:s,property:a.trim(),value:l}}validate(e){if(!e||"object"!=typeof e)return!1;const t=e;if(!t.type||"string"!=typeof t.type)return!1;if(!["variable","attribute","property","style","object-literal"].includes(t.type))return!1;switch(t.type){case"variable":return"string"==typeof t.name&&"value"in t;case"attribute":return"string"==typeof t.name&&ia(t.element)&&"value"in t;case"property":return"string"==typeof t.property&&ia(t.element)&&"value"in t;case"style":return"string"==typeof t.property&&""!==t.property&&ia(t.element)&&"string"==typeof t.value;case"object-literal":return null!==t.properties&&"object"==typeof t.properties&&Array.isArray(t.targets)&&t.targets.length>0;default:return!1}}},Xi(t,"SetCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})());const Ps=na((()=>{let e,t,r=[ra({description:"Evaluate an expression and store the result in it",syntax:"get <expression>",examples:["get #my-dialog","get <button/>","get me.parentElement"],sideEffects:["context-mutation"]}),ta({name:"get",category:"data"})],n=[];return t=class{async parseInput(e,t,r){if(!e.args||0===e.args.length)throw Error("get command requires an expression argument");const n=e.args[0],i=await t.evaluate(n,r);return i instanceof NodeList&&1===i.length||Array.isArray(i)&&1===i.length?{value:i[0]}:{value:i}}execute(e,t){return t.it=e.value,Object.assign(t,{result:e.value}),{value:e.value}}validate(e){return"object"==typeof e&&null!==e&&"value"in e}},Xi(t,"GetCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})());let Ns=(()=>{let e,t,r=[ra({description:"Modify a variable or property by a specified amount (default: 1)",syntax:["increment <target> [by <number>]","decrement <target> [by <number>]"],examples:["increment counter","increment counter by 5","decrement counter","decrement counter by 5"],sideEffects:["data-mutation","context-modification"],aliases:["decrement"]}),ta({name:"increment",category:"data"})],n=[];return t=class{async parseInput(e,t,r){const n="decrement"===e.commandName?.toLowerCase()?"decrement":"increment",i=await async function(e,t,r,n){if(!e.args||0===e.args.length)throw Error(n+" command requires a target");const i=e.args[0];let a,o;const s=(l=i)&&"object"==typeof l&&l.type||"unknown";var l;if("identifier"===s)a=i.name,i.scope&&(o=i.scope);else if("literal"===s)a=i.value;else{const e=await t.evaluate(i,r);a=Array.isArray(e)&&e.length>0?e[0]:e}let c=1,u=o;for(let n=1;e.args.length>n;n++){const i=e.args[n];if(i&&"literal"===i.type){const e=i.value;"global"===e?u="global":"number"==typeof e&&(c=e)}else if(i&&"literal"!==i.type){const e=await t.evaluate(i,r);"number"==typeof e&&(c=e)}}return{target:a,amount:c,...u&&{scope:u}}}(e,t,r,n);return{...i,operation:n}}async execute(e,t){const{target:r,property:n,scope:i,amount:a=1,operation:o="increment"}=e,s=lo(r,n,i,t);let l;if(isNaN(s))l=NaN;else{const e=isFinite(a)?a:1;l="increment"===o?s+e:s-e}return co(r,n,i,l,t),Object.assign(t,{it:l}),l}},Xi(t,"NumericModifyCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})();const Os=na(Ns),Is=na(Ns);const Rs=na((()=>{let e,t,r=[ra({description:"Log values to the console",syntax:"log [<values...>]",examples:['log "Hello World"',"log me.value","log x y z",'log "Result:" result'],sideEffects:["console-output"]}),ta({name:"log",category:"utility"})],n=[];return t=class{async parseInput(e,t,r){if(!e.args||0===e.args.length)return{values:[]};return{values:await Promise.all(e.args.map(e=>t.evaluate(e,r)))}}async execute(e,t){const r="undefined"!=typeof window?window.console:console;0===e.values.length?r.log():r.log(...e.values)}validate(e){if("object"!=typeof e||null===e)return!1;return Array.isArray(e.values)}},Xi(t,"LogCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})());let Ms=(()=>{let e,t,r=[ra({description:"Dispatch events on elements",syntax:["trigger <event> on <target>","trigger <event>(<detail>) on <target>","send <event> to <target>","send <event>(<detail>) to <target>"],examples:["trigger click on #button","trigger customEvent on me","send dataEvent to #target","send myEvent(count: 42) to me"],sideEffects:["event-dispatch"],aliases:["send"]}),ta({name:"trigger",category:"event"})],n=[];return t=class{async parseInput(e,t,r){const n="send"===e.commandName?.toLowerCase()?"send":"trigger",i=n;if(!e.args?.length)throw Error(i+" command requires an event name");const a=e=>e?.type||"unknown",o=e.args[0];let s,l,c;if("functionCall"===a(o)||"callExpression"===a(o)){s=o.name||o.callee?.name;const e=o.args||o.arguments;e?.length&&(l=await this.parseEventDetail(e,t,r))}else if("identifier"===a(o)||"keyword"===a(o))s=o.name;else{const e=await t.evaluate(o,r);s="string"==typeof e?e:e+""}const u=e.modifiers?.on||e.modifiers?.to;if(u)c=await this.resolveTargets([u],t,r,i);else{const n=e.args.findIndex((e,t)=>{if(0===t)return!1;const r=e.name||e.value;return"on"===r||"to"===r});if(-1!==n&&n<e.args.length-1){const a=e.args.slice(n+1),o=a.findIndex(e=>"with"===(e.name||e.value)),s=-1===o?a:a.slice(0,o);c=await this.resolveTargets(s,t,r,i)}else{if(!r.me)throw Error(i+": no target specified and context.me is null");c=[r.me]}}return{eventName:s,detail:l,targets:c,options:await this.parseEventOptions(e.args,t,r),mode:n}}async execute(e,t){const r=hs(e.eventName,e.detail,e.options);for(const t of e.targets)t.dispatchEvent(r);t.it=r}async resolveTargets(e,t,r,n){const i=[];for(const n of e){const e=await t.evaluate(n,r);if("window"!==e&&e!==window)if("document"!==e&&e!==document)if("me"===e&&r.me)i.push(r.me);else if("you"===e&&r.you)i.push(r.you);else if("it"===e&&r.it)i.push(r.it);else if(ia(e))i.push(e);else if(e instanceof NodeList)i.push(...Array.from(e).filter(ia));else if(Array.isArray(e))i.push(...e.filter(ia));else{if("string"==typeof e){const t=document.querySelectorAll(e);if(0===t.length)throw Error(`No elements found: "${e}"`);i.push(...Array.from(t).filter(ia));continue}if(!e||"object"!=typeof e||!("addEventListener"in e))throw Error("Invalid target: "+typeof e);i.push(e)}else i.push(document);else i.push(window)}if(!i.length)throw Error(n+": no valid targets");return i}async parseEventDetail(e,t,r){if(!e?.length)return;if(1===e.length){const n=e[0];if("objectLiteral"!==n?.type)return await t.evaluate(n,r)}const n={};for(const i of e){const e=await t.evaluate(i,r);if("object"!=typeof e||null===e||Array.isArray(e)){if("string"==typeof e&&e.includes(":")){const[t,r]=e.split(":",2);n[t.trim()]=fs(r.trim())}}else Object.assign(n,e)}return Object.keys(n).length?n:void 0}async parseEventOptions(e,t,r){const n={bubbles:!0,cancelable:!0,composed:!1},i=e.findIndex(e=>"with"===(e.name||e.value));if(-1===i)return n;for(const a of e.slice(i+1)){const e=await t.evaluate(a,r);if("string"==typeof e){const t=e.toLowerCase();"bubbles"===t?n.bubbles=!0:"nobubbles"===t?n.bubbles=!1:"cancelable"===t?n.cancelable=!0:"nocancelable"===t?n.cancelable=!1:"composed"===t&&(n.composed=!0)}}return n}},Xi(t,"EventDispatchCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})();const Ws=na(Ms),qs=na(Ms);let _s=(()=>{let e,t,r=[ra({description:"Navigation functionality including URL navigation, element scrolling, and browser history",syntax:["go back","go to url <url> [in new window]","go to [position] [of] <element>"],examples:["go back",'go to url "https://example.com"',"go to top of #header"],sideEffects:["navigation","scrolling"]}),ta({name:"go",category:"navigation"})],n=[];return t=class{async parseInput(e,t,r){if(!e.args||0===e.args.length)return{args:[]};return{args:await Promise.all(e.args.map(e=>t.evaluate(e,r)))}}async execute(e,t){const{args:r}=e;if(0===r.length)throw Error("Go command requires arguments");if("string"==typeof r[0]&&"back"===r[0].toLowerCase())return await this.goBack(),{result:"back",type:"back"};if(this.isUrlNavigation(r)){return{result:await this.navigateToUrl(r,t),type:"url"}}return{result:await this.scrollToElement(r,t),type:"scroll"}}isUrlNavigation(e){return-1!==e.findIndex(e=>"url"===e)}async goBack(){if("undefined"==typeof window||!window.history)throw Error("Browser history API not available");window.history.back()}async navigateToUrl(e,t){const r=e.findIndex(e=>"url"===e),n=e[r+1];if(!n)throw Error('URL is required after "url" keyword');const i="string"==typeof n?n:n+"",a=e.includes("new")&&e.includes("window");if(!this.isValidUrl(i))throw Error(`Invalid URL: "${i}"`);if(a){if("undefined"!=typeof window&&window.open){const e=window.open(i,"_blank");e?.focus&&e.focus()}}else i.startsWith("#")?"undefined"!=typeof window&&(window.location.hash=i):"undefined"!=typeof window&&(window.location.assign?.(i)??(window.location.href=i));return i}isValidUrl(e){try{return e.startsWith("/")||e.startsWith("#")||new URL(e),!0}catch{return!1}}async scrollToElement(e,t){const r=this.parseScrollPosition(e),n=this.parseScrollTarget(e),i=this.parseScrollOffset(e),a=!e.includes("instantly"),o=this.resolveScrollTarget(n,t);if(!o)throw Error("Target element not found: "+n);if("undefined"!=typeof window){const e=a?"smooth":"instant",t=this.mapVerticalPosition(r.vertical),n=this.mapHorizontalPosition(r.horizontal);if(0!==i){o.scrollIntoView?.({behavior:e,block:t,inline:n});const{x:a,y:s}=this.calculateScrollPosition(o,r,i);window.scrollTo?.({left:a,top:s,behavior:e})}else o.scrollIntoView?.({behavior:e,block:t,inline:n})}return o}mapVerticalPosition(e){return{top:"start",middle:"center",bottom:"end",nearest:"nearest"}[e]||"start"}mapHorizontalPosition(e){return{left:"start",center:"center",right:"end",nearest:"nearest"}[e]||"nearest"}parseScrollPosition(e){const t={vertical:"top",horizontal:"nearest"},r=["top","middle","bottom"],n=["left","center","right"];let i=!1,a=!1;for(const o of e)"string"==typeof o&&(r.includes(o)?(t.vertical=o,i=!0):n.includes(o)&&(t.horizontal=o,a=!0));return a&&!i&&(t.vertical="nearest"),t}parseScrollTarget(e){const t=e.findIndex(e=>"of"===e);if(-1!==t&&e.length>t+1){let r=e[t+1];return"the"===r&&e.length>t+2&&(r=e[t+2]),r}for(const t of e)if("object"==typeof t&&t&&t.nodeType)return t;const r=["top","middle","bottom","left","center","right","of","the","to","smoothly","instantly"];for(const t of e)if("string"==typeof t&&!r.includes(t)&&(t.startsWith("#")||t.startsWith(".")||t.includes("[")||/^[a-zA-Z][a-zA-Z0-9-]*$/.test(t)))return t;return"body"}parseScrollOffset(e){for(let t=0;e.length>t;t++){const r=e[t];if("string"==typeof r){const e=r.match(/^([+-]?\d+)(px)?$/);if(e)return parseInt(e[1],10)}if(("+"===r||"-"===r)&&e.length>t+1){const n=e[t+1],i="number"==typeof n?n:parseInt((n+"").replace("px",""),10);if(!isNaN(i))return"-"===r?-i:i}}return 0}resolveScrollTarget(e,t){if("object"==typeof e&&e&&e.nodeType)return e;const r="string"==typeof e?e:e+"";if("body"===r&&"undefined"!=typeof document)return document.body;if("html"===r&&"undefined"!=typeof document)return document.documentElement;if("me"===r&&ia(t.me))return t.me;if("it"===r&&ia(t.it))return t.it;if("you"===r&&ia(t.you))return t.you;const n=ao(r,t);if(ia(n))return n;if("undefined"!=typeof document)try{const e=document.querySelector(r);if(e)return e}catch{try{const e=document.getElementsByTagName(r);if(e.length>0)return e[0]}catch{}}return null}calculateScrollPosition(e,t,r){if("undefined"==typeof window||!e.getBoundingClientRect)return{x:0,y:0};const n=e.getBoundingClientRect(),i=window.pageXOffset||document.documentElement?.scrollLeft||0,a=window.pageYOffset||document.documentElement?.scrollTop||0,o=window.innerWidth||800,s=window.innerHeight||600;let l=i,c=a;switch(t.horizontal){case"left":l=n.left+i;break;case"center":l=n.left+i+n.width/2-o/2;break;case"right":l=n.right+i-o}switch(t.vertical){case"top":c=n.top+a+r;break;case"middle":c=n.top+a+n.height/2-s/2+r;break;case"bottom":c=n.bottom+a-s+r}return{x:Math.max(0,l),y:Math.max(0,c)}}},Xi(t,"GoCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})();const $s=na(_s);const Ds=["url","with","title"];async function Vs(e,t,r,n){if(!e||0===e.length)throw Error(n+" command requires a URL argument");const i=[],a=[];for(let n=0;e.length>n;n++){const o=e[n],s=o,l=s?.type||"unknown",c=s?.name;if("identifier"===l&&c&&Ds.includes(c.toLowerCase()))i.push(c.toLowerCase()),a.push(c.toLowerCase());else{const e=await t.evaluate(o,r);i.push(e),"string"==typeof e&&a.push(e.toLowerCase())}}const o=a.findIndex(e=>"url"===e),s=a.findIndex(e=>"with"===e),l=a.findIndex(e=>"title"===e),c=`urlKeywordIndex=${o}, argCount=${i.length}`;let u,p;if(-1!==o&&i.length>o+1)u=i[o+1]+"";else{if(1>i.length)throw Error(`${n} command: URL is required. Debug: ${c}`);u=i[0]+""}-1!==s&&-1!==l&&l>s&&i.length>l+1&&(p=i[l+1]+"");const m=function(e,t,r){const n=r?" Debug: "+r:"";if(null==e)throw Error(`[HyperFixi] ${t}: URL is required.${n}`);if("string"!=typeof e)throw Error(`[HyperFixi] ${t}: URL must be a string (got ${typeof e}: ${e+""}).${n}`);if(""===e.trim())throw Error(`[HyperFixi] ${t}: URL cannot be empty.${n}`);if("undefined"===e)throw Error(`[HyperFixi] ${t}: URL evaluated to string 'undefined' - check your expression.${n}`);if("null"===e)throw Error(`[HyperFixi] ${t}: URL evaluated to string 'null' - check your expression.${n}`);return e}(u,n,c);return{url:m,title:p}}let Hs=(()=>{let e,t,r=[ra({description:"Modify browser history URL without page reload",syntax:["push url <url>","push url <url> with title <title>","replace url <url>","replace url <url> with title <title>"],examples:['push url "/page/2"','push url "/search" with title "Search Results"','replace url "/search?q=test"','replace url "/page" with title "Updated Page"'],sideEffects:["navigation"],aliases:["replace"]}),ta({name:"push",category:"navigation"})],n=[];return t=class{async parseInput(e,t,r){const n=e.commandName?.toLowerCase().includes("replace")?"replace":"push";return{...await Vs(e.args,t,r,n+" url"),mode:n}}async execute(e,t){const{url:r,title:n,state:i,mode:a}=e;"push"===a?window.history.pushState(i||null,"",r):window.history.replaceState(i||null,"",r),n&&(document.title=n);return vs(window,"push"===a?"pushurl":"replaceurl",{url:r,title:n,state:i}),{url:r,title:n,mode:a}}},Xi(t,"HistoryCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})();const Bs=na(Hs),Fs=na(Hs);function Us(e,t){if("boolean"==typeof e)return e;if("function"==typeof e)return!0;if(e instanceof Promise)throw Error("Condition must be awaited - use await in the condition expression");if("string"==typeof e){if("me"===e)return!!t.me;if("it"===e)return!!t.it;if("you"===e)return!!t.you;const r=ao(e,t);return void 0!==r?!!r:!!e}return!!e}const Ks=na((()=>{let e,t,r=[ra({description:"Conditional execution based on boolean expressions",syntax:["if <condition> then <commands>","if <condition> then <commands> else <commands>","unless <condition> <commands>"],examples:["if x > 5 then add .active","if user.isAdmin then show #adminPanel else hide #adminPanel","unless user.isLoggedIn showLoginForm"],sideEffects:["conditional-execution"],aliases:["unless"]}),ta({name:"if",category:"control-flow"})],n=[];return t=class{async parseInput(e,t,r){const n="unless"===e.commandName?.toLowerCase()?"unless":"if";if(!e.args||0===e.args.length)throw Error(n+" command requires a condition to evaluate");let i,a;if("unless"===n){if(2>e.args.length)throw Error("unless command requires a condition and at least one command");i=e.args.slice(1)}else if(e.args.length>=2&&e.args[1]?(i=e.args[1],a=3>e.args.length?void 0:e.args[2]):e.modifiers?.then&&(i=e.modifiers.then,a=e.modifiers.else),!i)throw Error('if command requires "then" branch with commands');return{mode:n,condition:await t.evaluate(e.args[0],r),thenCommands:i,elseCommands:a}}async execute(e,t){const{mode:r,condition:n,thenCommands:i,elseCommands:a}=e,o=Us(n,t);let s,l;return("unless"===r?!o:o)?(s="then",l=await this.executeCommandsOrBlock(i,t),"unless"===r&&Object.assign(t,{it:l})):a&&"if"===r?(s="else",l=await this.executeCommandsOrBlock(a,t)):s="none",{mode:r,conditionResult:o,executedBranch:s,result:l}}async executeCommandsOrBlock(e,t){return"block"===e?.type?this.executeBlock(e,t):Array.isArray(e)?this.executeCommands(e,t):e}async executeBlock(e,t){const r=t.locals.get("_runtimeExecute");if(!r)throw Error("Runtime execute function not available");let n;if(e.commands?.length)for(const i of e.commands)n=await r(i,t);return n}async executeCommands(e,t){let r;for(const n of e)r=n?.execute?await n.execute(t):"function"==typeof n?await n():n;return r}},Xi(t,"ConditionalCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})()),Gs=Ks,Ys=Ks;let Zs=(()=>{let e,t,r=[ra({description:"Iteration in hyperscript - for-in, counted, conditional, event-driven, and infinite loops",syntax:["repeat for <var> in <collection> { <commands> }","repeat <count> times { <commands> }","repeat while <condition> { <commands> }","repeat until <condition> { <commands> }","repeat forever { <commands> }"],examples:["repeat for item in items { log item }",'repeat 5 times { log "hello" }'],sideEffects:["iteration","conditional-execution"]}),ta({name:"repeat",category:"control-flow"})],n=[];return t=class{async parseInput(e,t,r){let n;if(e.modifiers?.index){const i=await t.evaluate(e.modifiers.index,r);"string"==typeof i&&(n=i)}let i=e.modifiers?.block||e.modifiers?.commands;if(!i)for(let t=e.args.length-1;t>=0;t--){const r=e.args[t];if("block"===r?.type&&r.commands){i=r;break}}const a=e.args[0],o="identifier"===a?.type?a.name:null;if("for"===o||e.modifiers?.for){const a=e.args[1],o=a?.value||a?.name,s=e.args[2]?await t.evaluate(e.args[2],r):void 0;if(!o||void 0===s)throw Error("for loops require variable and collection");return{type:"for",variable:o,collection:Array.isArray(s)?s:[s],indexVariable:n,commands:i}}if("times"===o||e.modifiers?.times){const a=e.args[1],o=a?await t.evaluate(a,r):void 0,s="number"==typeof o?o:parseInt(o+"",10);if(isNaN(s))throw Error("times loops require a count number");return{type:"times",count:s,indexVariable:n,commands:i}}if("while"===o||e.modifiers?.while){const t=e.args[1]||e.modifiers?.while;if(!t)throw Error("while loops require a condition");return{type:"while",condition:t,indexVariable:n,commands:i}}if("until"===o&&e.modifiers?.from||"until-event"===o){const a=e.args[1],o=a?.value||a?.name;if(!o)throw Error("until-event loops require an event name");let s=r.me;if(e.args[2]){const n=await t.evaluate(e.args[2],r);n instanceof EventTarget?s=n:"document"===n&&(s=document)}return{type:"until-event",eventName:o,eventTarget:s,indexVariable:n,commands:i}}if("until"===o||e.modifiers?.until){const t=e.args[1]||e.modifiers?.until;if(!t)throw Error("until loops require a condition");return{type:"until",condition:t,indexVariable:n,commands:i}}if("forever"===o||e.modifiers?.forever)return{type:"forever",indexVariable:n,commands:i};throw Error("repeat command requires a loop type (for/times/while/until/forever)")}async execute(e,t){const{type:r,variable:n,collection:i,condition:a,count:o,indexVariable:s,commands:l,eventName:c,eventTarget:u}=e;let p,m;switch(r){case"for":({config:p,iterCtx:m}=function(e,t,r){return{config:{type:"for",shouldContinue:e=>(e.collection?.length??0)>e.index,beforeIteration:(e,t)=>{e.item=e.collection?.[e.index],e.itemVariable&&t.locals&&t.locals.set(e.itemVariable,e.item)}},iterCtx:{index:0,collection:e,itemVariable:t,indexVariable:r}}}(i,n,s));break;case"times":({config:p,iterCtx:m}=function(e,t){return{config:{type:"times",shouldContinue:e=>(e.count??0)>e.index,beforeIteration:(e,t)=>{Object.assign(t,{it:e.index+1})}},iterCtx:{index:0,count:e,indexVariable:t}}}(o,s));break;case"while":({config:p,iterCtx:m}=function(e,t,r,n){return{config:{type:"while",shouldContinue:()=>t(e,r)},iterCtx:{index:0,conditionExpr:e,indexVariable:n}}}(a,Us,t,s));break;case"until":({config:p,iterCtx:m}=function(e,t,r,n){return{config:{type:"until",shouldContinue:()=>!t(e,r)},iterCtx:{index:0,conditionExpr:e,indexVariable:n}}}(a,Us,t,s));break;case"until-event":({config:p,iterCtx:m}=function(e,t,r){const n={index:0,eventFired:!1,indexVariable:r};return{config:{type:"until-event",shouldContinue:e=>!e.eventFired,eventSetup:{eventName:e,target:t,onEvent:()=>{n.eventFired=!0}}},iterCtx:n}}(c,u,s));break;case"forever":({config:p,iterCtx:m}=function(e,t=1e4){return{config:{type:"forever",maxIterations:t,shouldContinue:()=>!0},iterCtx:{index:0,indexVariable:e}}}(s));break;default:throw Error("Unknown repeat type: "+r)}try{const e=await async function(e,t,r,n,i){const a=e.maxIterations??1e4;let o,s=0,l=!1;e.eventSetup&&e.eventSetup.target.addEventListener(e.eventSetup.eventName,e.eventSetup.onEvent,{once:!0});try{for(;a>s&&await e.shouldContinue(n);){e.beforeIteration&&await e.beforeIteration(n,r),n.indexVariable&&r.locals&&r.locals.set(n.indexVariable,s);try{o=await i(t,r)}catch(t){if(t instanceof Error){if(t.message.includes("BREAK")){l=!0;break}if(t.message.includes("CONTINUE")){s++,n.index=s,"until-event"===e.type&&await new Promise(e=>setTimeout(e,0));continue}}throw t}s++,n.index=s,"until-event"===e.type&&await new Promise(e=>setTimeout(e,0))}}finally{e.eventSetup&&!n.eventFired&&e.eventSetup.target.removeEventListener(e.eventSetup.eventName,e.eventSetup.onEvent)}return{iterations:s,lastResult:o,interrupted:l}}(p,l,t,m,this.executeCommands.bind(this));return Object.assign(t,{it:e.lastResult}),{type:r,iterations:e.iterations,completed:!e.interrupted,lastResult:e.lastResult,interrupted:e.interrupted}}catch(e){if(e instanceof Error&&(e.message.includes("BREAK")||e.message.includes("CONTINUE")))return{type:r,iterations:0,completed:!0,interrupted:e.message.includes("BREAK")};throw e}}async executeCommands(e,t){if(e&&"object"==typeof e&&"block"===e.type){const r=e,n=t.locals.get("_runtimeExecute");if(!n)throw Error("Runtime execute function not available");let i;if(r.commands)for(const e of r.commands)i=await n(e,t);return i}if(Array.isArray(e)){let r;for(const n of e)r="function"==typeof n?await n(t):n&&"function"==typeof n.execute?await n.execute(t):n;return r}return"function"==typeof e?await e(t):e}},Xi(t,"RepeatCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})();const Xs=na(Zs);class Js{async parseInput(e,t,r){return{signalType:this.signalType}}async execute(e,t){const r=Error(this.errorMessage);throw r[this.errorFlag]=!0,"exit"===this.signalType&&(r.returnValue=void 0,r.timestamp=Date.now()),r}}const Qs=na((()=>{let e,t,r=[ra({description:"Exit from the current loop (repeat, for, while, until)",syntax:["break"],examples:["break","if found then break","repeat for item in items { if item == target then break }"],sideEffects:["control-flow"]}),ta({name:"break",category:"control-flow"})],n=[],i=Js;return t=class extends i{constructor(){super(...arguments),this.signalType="break",this.errorMessage="BREAK_LOOP",this.errorFlag="isBreak"}},Xi(t,"BreakCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a}),Zi(t,n)})(),t})());const el=na((()=>{let e,t,r=[ra({description:"Skip to the next iteration of the current loop",syntax:["continue"],examples:["continue","if item.isInvalid then continue","repeat for item in items { if item.skip then continue; process item }"],sideEffects:["control-flow"]}),ta({name:"continue",category:"control-flow"})],n=[],i=Js;return t=class extends i{constructor(){super(...arguments),this.signalType="continue",this.errorMessage="CONTINUE_LOOP",this.errorFlag="isContinue"}},Xi(t,"ContinueCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a}),Zi(t,n)})(),t})());const tl=na((()=>{let e,t,r=[ra({description:"Stop command execution or prevent event defaults",syntax:["halt","halt the event"],examples:["halt","halt the event","if error then halt",'on click halt the event then log "clicked"'],sideEffects:["control-flow","event-prevention"]}),ta({name:"halt",category:"control-flow"})],n=[];return t=class{async parseInput(e,t,r){if(e.args&&e.args.length>0){const n=e.args[0],i=e.args.length>1?e.args[1]:null;if("identifier"===n.type&&"the"===n.name&&i&&"identifier"===i.type&&"event"===i.name)return{target:r.event};return{target:await t.evaluate(e.args[0],r)}}return{}}async execute(e,t){let r=e.target;if(("the"===r&&t.event||"object"==typeof r&&null!==r&&"the"===r.target&&t.event)&&(r=t.event),this.isEvent(r)){const e=r;return e.preventDefault(),e.stopPropagation(),{halted:!0,timestamp:Date.now(),eventHalted:!0}}"halted"in t&&(t.halted=!0);const n=Error("HALT_EXECUTION");throw n.isHalt=!0,n}isEvent(e){return null!==e&&"object"==typeof e&&"preventDefault"in e&&"stopPropagation"in e}},Xi(t,"HaltCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})());const rl=na((()=>{let e,t,r=[ra({description:"Return a value from a command sequence or function, terminating execution",syntax:["return","return <value>"],examples:["return","return 42","return user.name","if found then return result"],sideEffects:["control-flow","context-mutation"]}),ta({name:"return",category:"control-flow"})],n=[];return t=class{async parseInput(e,t,r){if(!e.args||0===e.args.length)return{value:void 0};return{value:await t.evaluate(e.args[0],r)}}async execute(e,t){const{value:r}=e;"returnValue"in t&&(t.returnValue=r),Object.assign(t,{it:r});const n=Error("RETURN_VALUE");throw n.isReturn=!0,n.returnValue=r,n}},Xi(t,"ReturnCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})());const nl=na((()=>{let e,t,r=[ra({description:"Immediately terminate execution of the current event handler or behavior",syntax:["exit"],examples:["exit","if no draggedItem exit","on click if disabled exit"],sideEffects:["control-flow"]}),ta({name:"exit",category:"control-flow"})],n=[],i=Js;return t=class extends i{constructor(){super(...arguments),this.signalType="exit",this.errorMessage="EXIT_COMMAND",this.errorFlag="isExit"}},Xi(t,"ExitCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:a},null,n),t=e.value,a&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a}),Zi(t,n)})(),t})());const il=na((()=>{let e,t,r=[ra({description:"Evaluate an expression and store the result in the it variable",syntax:["call <expression>"],examples:["call myFunction()",'call fetch("/api/data")',"call element.focus()"],sideEffects:["function-execution","context-mutation"]}),ta({name:"call",category:"execution"})],n=[];return t=class{parseInput(e,t,r){if(!e.args?.length)throw Error("call command requires an expression");return Promise.resolve({expression:e.args[0]})}async execute(e,t){const{expression:r}=e,n=t.locals?.get("__evaluator");if(!n)throw Error("[CALL.execute] No evaluator available in context");const i=await n.evaluate(r,t);let a,o,s=!1;return"function"==typeof i?(o="function",a=i(),a instanceof Promise&&(s=!0,a=await a)):i instanceof Promise?(o="promise",s=!0,a=await i):(o="value",a=i),Object.assign(t,{it:a,result:a}),{result:a,wasAsync:s,expressionType:o}}},Xi(t,"CallCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})());const al=na((()=>{let e,t,r=[ra({description:"Add content to the end of a string, array, or HTML element",syntax:["append <content>","append <content> to <target>"],examples:['append "Hello"','append "World" to greeting',"append item to myArray",'append "<p>New</p>" to #content'],sideEffects:["data-mutation","dom-mutation"]}),ta({name:"append",category:"content"})],n=[];return t=class{async parseInput(e,t,r){if(!e.args?.length)throw Error("append requires content");const n=await t.evaluate(e.args[0],r);let i;return e.modifiers?.to?i=await t.evaluate(e.modifiers.to,r):e.target&&(i=e.target),{content:n,target:i}}async execute(e,t){const{content:r,target:n}=e,i=r+"";if(!n)return Object.assign(t,void 0===t.it?{it:i}:{it:t.it+""+i}),{result:t.it,targetType:"result"};if("string"==typeof n){if(n.startsWith("#")||n.startsWith(".")||n.includes("[")){const e=this.resolveDOMElement(n);return e.innerHTML+=i,{result:e,targetType:"element",target:e}}if("me"===n||"it"===n||"you"===n){const e=this.resolveContextRef(n,t);if(ia(e))return e.innerHTML+=i,{result:e,targetType:"element",target:e}}const e=ao(n,t);if(void 0!==e){if(Array.isArray(e))return e.push(r),{result:e,targetType:"array",target:n};const a=(null==e?"":e+"")+i;return oo(n,a,t),{result:a,targetType:"variable",target:n}}return oo(n,i,t),{result:i,targetType:"variable",target:n}}if(Array.isArray(n))return n.push(r),{result:n,targetType:"array"};if(ia(n))return n.innerHTML+=i,{result:n,targetType:"element",target:n};{const e=n+""+i;return Object.assign(t,{it:e}),{result:e,targetType:"string"}}}resolveDOMElement(e){if("undefined"==typeof document)throw Error("DOM not available");const t=document.querySelector(e);if(!t)throw Error("Element not found: "+e);return t}resolveContextRef(e,t){switch(e){case"me":return t.me;case"it":return t.it;case"you":return t.you;default:throw Error("Unknown context ref: "+e)}}},Xi(t,"AppendCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})());const ol=na((()=>{let e,t,r=[ra({description:"Animate CSS properties using CSS transitions",syntax:"transition <property> to <value> [over <duration>] [with <timing>]",examples:["transition opacity to 0.5","transition left to 100px over 500ms","transition background-color to red over 1s with ease-in-out"],sideEffects:["style-change","timing"]}),ta({name:"transition",category:"animation"})],n=[];return t=class{async parseInput(e,t,r){if(!e.args?.length)throw Error("transition requires property and value");let n,i;const a=await t.evaluate(e.args[0],r);if(ia(a)||"string"==typeof a&&/^[#.]|^(?:me|it|you)$/.test(a)?(i=a,n=await t.evaluate(e.args[1],r)+""):n=a+"",!n)throw Error("transition requires a CSS property");if(!e.modifiers?.to)throw Error('transition requires "to <value>"');let o=await t.evaluate(e.modifiers.to,r);void 0===o&&"identifier"===e.modifiers.to.type&&(o=e.modifiers.to.name);const s={property:n,value:o};return void 0!==i&&(s.target=i),e.modifiers?.over&&(s.duration=await t.evaluate(e.modifiers.over,r)),e.modifiers?.with&&(s.timingFunction=await t.evaluate(e.modifiers.with,r)+""),s}async execute(e,t){let{property:r}=e;const{target:n,value:i,duration:a,timingFunction:o}=e;r.startsWith("*")&&(r=r.substring(1)),r=r.replace(/([A-Z])/g,"-$1").toLowerCase();const s=aa(n,t),l=Ra(a,300),c=getComputedStyle(s).getPropertyValue(r),u=s.style.transition,p=`${r} ${l}ms ${o||"ease"}`;s.style.transition=u?`${u}, ${p}`:p;let m=i+"",d=!1;if("initial"===m||"inherit"===m||"unset"===m||"revert"===m){const e=s.style.getPropertyValue(r);s.style.removeProperty(r),m=getComputedStyle(s).getPropertyValue(r),e&&s.style.setProperty(r,e),d=!0}s.style.setProperty(r,m);const h=await function(e,t,r){return new Promise(n=>{const i=r=>{r.target===e&&r.propertyName===t&&o({completed:!0,cancelled:!1})},a=r=>{r.target===e&&r.propertyName===t&&o({completed:!1,cancelled:!0})},o=Es(()=>{e.removeEventListener("transitionend",i),e.removeEventListener("transitioncancel",a),clearTimeout(s)},n);e.addEventListener("transitionend",i),e.addEventListener("transitioncancel",a);const s=setTimeout(()=>{o({completed:!0,cancelled:!1})},r+50)})}(s,r,l);return s.style.transition=u,d&&s.style.removeProperty(r),Object.assign(t,{it:s}),{element:s,property:r,fromValue:c,toValue:m,duration:l,completed:h.completed}}},Xi(t,"TransitionCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})());const sl=na((()=>{let e,t,r=[ra({description:"Measure DOM element dimensions, positions, and properties",syntax:["measure","measure <property>","measure <target> <property>"],examples:["measure","measure width","measure #element height","measure x and set dragX"],sideEffects:["data-mutation"]}),ta({name:"measure",category:"animation"})],n=[];return t=class{async parseInput(e,t,r){let n,i,a;if(e.args?.length){const a=e.args[0];if("identifier"===a.type&&a.name){const o=a.name.toLowerCase();if("me"===o||"it"===o||"you"===o){const o=await t.evaluate(a,r);if(ia(o)&&(n=o,e.args.length>1)){const n=e.args[1];i="identifier"===n.type?n.name:await t.evaluate(n,r)+""}}else i=a.name}else{const o=await t.evaluate(a,r);if(ia(o)||"string"==typeof o&&/^[#.]/.test(o)){if(n=o,e.args.length>1){const n=e.args[1];i="identifier"===n.type?n.name:await t.evaluate(n,r)+""}}else"string"==typeof o&&(i=o)}}e.modifiers?.set&&(a=await t.evaluate(e.modifiers.set,r)+"");const o={};return void 0!==n&&(o.target=n),void 0!==i&&(o.property=i),void 0!==a&&(o.variable=a),o}async execute(e,t){const r=aa(e.target,t),n=e.property||"width",i=this.getMeasurement(r,n);return e.variable&&t.locals&&t.locals.set(e.variable,i.value),Object.assign(t,{it:i.value}),{result:i.value,wasAsync:!1,element:r,property:n,value:i.value,unit:i.unit,stored:!!e.variable}}getMeasurement(e,t){const r=getComputedStyle(e);if(t.startsWith("*")){const e=r.getPropertyValue(t.substring(1)),n=parseFloat(e);if(!isNaN(n)){const t=e.match(/([a-zA-Z%]+)$/);return{value:n,unit:t?t[1]:""}}return{value:e,unit:""}}const n=t.toLowerCase(),i=e.getBoundingClientRect(),a={width:()=>i.width,height:()=>i.height,top:()=>i.top,left:()=>i.left,right:()=>i.right,bottom:()=>i.bottom,x:()=>e.offsetLeft,y:()=>e.offsetTop,clientwidth:()=>e.clientWidth,"client-width":()=>e.clientWidth,clientheight:()=>e.clientHeight,"client-height":()=>e.clientHeight,offsetwidth:()=>e.offsetWidth,"offset-width":()=>e.offsetWidth,offsetheight:()=>e.offsetHeight,"offset-height":()=>e.offsetHeight,scrollwidth:()=>e.scrollWidth,"scroll-width":()=>e.scrollWidth,scrollheight:()=>e.scrollHeight,"scroll-height":()=>e.scrollHeight,scrolltop:()=>e.scrollTop,"scroll-top":()=>e.scrollTop,scrollleft:()=>e.scrollLeft,"scroll-left":()=>e.scrollLeft,offsettop:()=>e.offsetTop,"offset-top":()=>e.offsetTop,offsetleft:()=>e.offsetLeft,"offset-left":()=>e.offsetLeft};if(a[n])return{value:a[n](),unit:"px"};const o=r.getPropertyValue(t),s=parseFloat(o);if(!isNaN(s)){const e=o.match(/([a-zA-Z%]+)$/);return{value:s,unit:e?e[1]:"px"}}return{value:0,unit:"px"}}},Xi(t,"MeasureCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})());const ll=na((()=>{let e,t,r=[ra({description:"Wait for CSS transitions and animations to complete",syntax:"settle [<target>] [for <timeout>]",examples:["settle","settle #animated-element","settle for 3000"],sideEffects:["timing"]}),ta({name:"settle",category:"animation"})],n=[];return t=class{async parseInput(e,t,r){let n,i;if(e.args&&e.args.length>0){const i=await t.evaluate(e.args[0],r);(ia(i)||"string"==typeof i&&(i.startsWith("#")||i.startsWith(".")||"me"===i||"it"===i||"you"===i))&&(n=i)}e.modifiers?.for&&(i=await t.evaluate(e.modifiers.for,r));const a={};return void 0!==n&&(a.target=n),void 0!==i&&(a.timeout=i),a}async execute(e,t){const{target:r,timeout:n}=e,i=aa(r,t),a=Ra(n,5e3),o=Date.now(),s=getComputedStyle(i),l=Wa(s.transitionDuration),c=Wa(s.transitionDelay),u=Wa(s.animationDuration),p=Wa(s.animationDelay),m=qa(l,c),d=qa(u,p),h=Math.max(m,d),f=await(y=i,v=h,g=a,v>0?new Promise(e=>{const t=e=>{e.target===y&&n({completed:!0,type:"transition"})},r=e=>{e.target===y&&n({completed:!0,type:"animation"})},n=Es(()=>{y.removeEventListener("transitionend",t),y.removeEventListener("animationend",r),clearTimeout(i),clearTimeout(a)},e);y.addEventListener("transitionend",t),y.addEventListener("animationend",r);const i=setTimeout(()=>{n({completed:!0,type:"timeout"})},v+50),a=setTimeout(()=>{n({completed:!1,type:"timeout"})},g)}):Promise.resolve({completed:!0,type:"timeout"}));var y,v,g;const k=Date.now()-o;return Object.assign(t,{it:i}),{element:i,settled:f.completed,timeout:a,duration:k}}},Xi(t,"SettleCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})());const cl=na((()=>{let e,t,r=[ra({description:"Execute inline JavaScript code with access to hyperscript context",syntax:["js <code> end","js(param1, param2) <code> end"],examples:['js console.log("Hello") end',"js(x, y) return x + y end",'js me.style.color = "red" end'],sideEffects:["code-execution","data-mutation"]}),ta({name:"js",category:"advanced"})],n=[];return t=class{async parseInput(e,t,r){let n,i;if(0===e.args.length)throw Error("js command requires JavaScript code");const a=e.args[0],o=e.args[1];if(a&&"literal"===a.type&&"string"==typeof a.value)n=a.value;else{if(!a||void 0===a.value)throw Error("js command requires JavaScript code");n=a.value+""}o&&"arrayLiteral"===o.type&&Array.isArray(o.elements)&&(i=o.elements.map(e=>"string"==typeof e.value?e.value:e.value+"").filter(e=>e&&e.length>0));const s={code:n};return i&&i.length>0&&(s.parameters=i),s}async execute(e,t){const{code:r,parameters:n=[]}=e;if(!r.trim())return{result:void 0,executed:!1,codeLength:r.length,parameters:n,preserveArrayResult:!0};try{const e=this.createExecutionContext(t,n),i=Function(...Object.keys(e),r),a=await i(...Object.values(e));return void 0!==a&&Object.assign(t,{it:a}),{result:a,executed:!0,codeLength:r.length,parameters:n,preserveArrayResult:!0}}catch(e){throw Error("JavaScript execution failed: "+(e instanceof Error?e.message:"Unknown error"))}}createExecutionContext(e,t){return{me:e.me,it:e.it,you:e.you,locals:e.locals,globals:e.globals,variables:e.variables,console:console,document:"undefined"!=typeof document?document:void 0,window:"undefined"!=typeof window?window:void 0,...t.reduce((t,r)=>{let n=e.locals?.get(r);return void 0===n&&(n=e.variables?.get(r)),void 0===n&&(n=e[r]),t[r]=n,t},{})}}},Xi(t,"JsCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})());const ul=na((()=>{let e,t,r=[ra({description:"Execute commands asynchronously without blocking",syntax:["async <command> [<command> ...]"],examples:["async command1 command2","async fetchData processData","async animateIn showContent"],sideEffects:["async-execution"]}),ta({name:"async",category:"advanced"})],n=[];return t=class{async parseInput(e,t,r){if(1>e.args.length)throw Error("async command requires at least one command to execute");return{commands:e.args}}async execute(e,t){const{commands:r}=e,n=Date.now();try{const e=await this.executeCommandsAsync(t,r),i=Date.now()-n;return e.length>0&&Object.assign(t,{it:e[e.length-1]}),{commandCount:r.length,results:e,executed:!0,duration:i}}catch(e){throw Error("Async command execution failed: "+(e instanceof Error?e.message:"Unknown error"))}}async executeCommandsAsync(e,t){const r=[];for(let n=0;t.length>n;n++){const i=t[n];try{const t=await this.executeCommand(i,e);r.push(t),Object.assign(e,{it:t})}catch(e){const r=this.getCommandName(i);throw Error(`Command '${r}' (${n+1}/${t.length}) failed: ${e instanceof Error?e.message:"Unknown error"}`)}}return r}async executeCommand(e,t){if("function"==typeof e)return await e(t);if(e&&"object"==typeof e&&"function"==typeof e.execute)return await e.execute(t);throw Error("Invalid command: must be a function or object with execute method")}getCommandName(e){return"function"==typeof e?e.name||"anonymous function":e&&"object"==typeof e?e.name||"unnamed command":"unknown"}},Xi(t,"AsyncCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})());const pl=na((()=>{let e,t,r=[ra({description:"Set a value only if it doesn't already exist",syntax:["default <expression> to <expression>"],examples:['default myVar to "fallback"','default @data-theme to "light"','default my innerHTML to "No content"'],sideEffects:["data-mutation","dom-mutation"]}),ta({name:"default",category:"data"})],n=[];return t=class{async parseInput(e,t,r){if(1>e.args.length)throw Error("default command requires a target");const n=await t.evaluate(e.args[0],r);let i;if(e.modifiers?.to)i=await t.evaluate(e.modifiers.to,r);else{if(2>e.args.length)throw Error('default command requires a value (use "to <value>")');i=await t.evaluate(e.args[1],r)}return{target:n,value:i}}async execute(e,t){const{target:r,value:n}=e;if("string"==typeof r){if(r.startsWith("@"))return this.defaultAttribute(t,r.substring(1),n);const e=r.match(/^(my|its?|your?)\s+(.+)$/);if(e){const[,r,i]=e;return this.defaultElementProperty(t,r,i,n)}return this.defaultVariable(t,r,n)}if(ia(r))return this.defaultElementValue(t,r,n);throw Error("Invalid target type: "+typeof r)}defaultVariable(e,t,r){const n=ao(t,e);return void 0!==n?{target:t,value:r,wasSet:!1,existingValue:n,targetType:"variable"}:(oo(t,r,e),Object.assign(e,{it:r}),{target:t,value:r,wasSet:!0,targetType:"variable"})}defaultAttribute(e,t,r){if(!e.me)throw Error("No element context available for attribute default");const n=e.me.getAttribute(t);return null!==n?{target:"@"+t,value:r,wasSet:!1,existingValue:n,targetType:"attribute"}:(e.me.setAttribute(t,r+""),Object.assign(e,{it:r}),{target:"@"+t,value:r,wasSet:!0,targetType:"attribute"})}defaultElementProperty(e,t,r,n){const i=la(t,e),a=function(e,t){if(t.startsWith("@"))return e.getAttribute(t.substring(1));switch(t){case"textContent":return e.textContent;case"innerHTML":return e.innerHTML;case"innerText":return e.innerText;case"id":return e.id;case"className":return e.className;case"value":return"value"in e?e.value:void 0;case"checked":return"checked"in e?e.checked:void 0}if(t.includes(".")){const r=t.split(".");let n=e;for(const e of r){if(null==n)break;n=n[e]}return n}return t.includes("-")||t in e.style?e.style.getPropertyValue(t)||e.style[t]:e[t]}(i,r),o=`${t} ${r}`;return Ba(a)?(Ha(i,r,n),Object.assign(e,{it:n}),{target:o,value:n,wasSet:!0,targetType:"property"}):{target:o,value:n,wasSet:!1,existingValue:a,targetType:"property"}}defaultElementValue(e,t,r){const n=function(e){return"value"in e?e.value:e.textContent}(t);return Ba(n)?(function(e,t){"value"in e?e.value=t+"":e.textContent=t+""}(t,r),Object.assign(e,{it:r}),{target:"element",value:r,wasSet:!0,targetType:"element"}):{target:"element",value:r,wasSet:!1,existingValue:n,targetType:"element"}}},Xi(t,"DefaultCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})());class ml{constructor(){this.name="pseudo-command"}get metadata(){return ml.metadata}async parseInput(e,t,r){if(1===e.args.length&&"objectLiteral"===e.args[0].type){const n=e.args[0].properties||[];let i,a,o="",s=[];for(const e of n){const n=e.value;switch(e.key?.name||e.key?.value){case"methodName":o=n?.value||await t.evaluate(n,r)+"";break;case"methodArgs":"arrayLiteral"===n?.type&&n.elements?s=await Promise.all(n.elements.map(e=>t.evaluate(e,r))):"literal"===n?.type&&Array.isArray(n.value)&&(s=await Promise.all(n.value.map(e=>t.evaluate(e,r))));break;case"preposition":const e=n?.value;e&&"null"!==e&&(i=e);break;case"target":case"targetExpression":a=await t.evaluate(n,r)}}if(!o)throw Error("pseudo-command requires method name");if(null==a)throw Error("pseudo-command requires a target expression");return{methodName:o,methodArgs:s,preposition:i,targetExpression:a}}if(2>e.args.length)throw Error("pseudo-command requires method name and target expression");const n=await t.evaluate(e.args[0],r)+"",i=Array.isArray(e.args[1])?await Promise.all(e.args[1].map(e=>t.evaluate(e,r))):[];let a,o;const s=["from","on","with","into","at","to"];for(const n of s)if(e.modifiers?.[n]){o=n,a=await t.evaluate(e.modifiers[n],r);break}if(a||3>e.args.length||(a=await t.evaluate(e.args[2],r)),!a)throw Error("pseudo-command requires a target expression");return{methodName:n,methodArgs:i,preposition:o,targetExpression:a}}async execute(e,t){const{methodName:r,methodArgs:n,targetExpression:i}=e;try{const e=await this.resolveTarget(i,t);if(null==e)throw Error("Target expression resolved to "+e);const a=this.resolveMethod(e,r);if(!a)throw Error(`Method "${r}" not found on target object`);if("function"!=typeof a)throw Error(`"${r}" is not a function (it's a ${typeof a})`);const o=await this.executeMethod(a,e,n);return t.locals.set("result",o),Object.assign(t,{it:o}),{result:o,methodName:r,target:e}}catch(e){throw Error("Pseudo-command failed: "+(e instanceof Error?e.message:e+""))}}async resolveTarget(e,t){return"object"==typeof e&&null!==e?e:"string"==typeof e?t.locals.has(e)?t.locals.get(e):t.variables?.has(e)?t.variables.get(e):t.globals.has(e)?t.globals.get(e):"me"===e&&t.me?t.me:"it"===e&&t.it?t.it:"document"===e?"undefined"!=typeof document?document:null:"window"===e?"undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:null:this.resolvePropertyPath(e,t):e}resolvePropertyPath(e,t){const r=e.split(".");let n="undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:null;t.locals.has(r[0])?(n=t.locals.get(r[0]),r.shift()):t.variables?.has(r[0])?(n=t.variables.get(r[0]),r.shift()):t.globals.has(r[0])&&(n=t.globals.get(r[0]),r.shift());for(const e of r){if(null==n)return null;n=n[e]}return n}resolveMethod(e,t){if(!e)return null;if(t in e)return e[t];const r=t.split(".");let n=e;for(let e=0;r.length>e;e++){const t=r[e];if(null==n)return null;if(!(t in n))return null;if(n=n[t],e===r.length-1&&"function"==typeof n)return n}return null}async executeMethod(e,t,r){try{const n=e.apply(t,r);return n&&"object"==typeof n&&"then"in n?await n:n}catch(e){throw Error("Method execution failed: "+(e instanceof Error?e.message:e+""))}}}ml.metadata={description:"Treat a method on an object as a top-level command",syntax:["<method>(<args>) [(to|on|with|into|from|at)] <expression>"],examples:['getElementById("d1") from the document',"reload() the location of the window",'setAttribute("foo", "bar") on me',"foo() on me"],category:"execution",sideEffects:["method-execution"]};const dl=na((()=>{let e,t,r=[ra({description:"Execute commands in the context of target elements",syntax:["tell <target> <command> [<command> ...]"],examples:["tell #sidebar hide","tell .buttons add .disabled","tell closest <form/> submit"],sideEffects:["context-switching","command-execution"]}),ta({name:"tell",category:"utility"})],n=[];return t=class{async parseInput(e,t,r){if(2>e.args.length)throw Error("tell command requires a target and at least one command");return{target:await t.evaluate(e.args[0],r),commands:e.args.slice(1)}}async execute(e,t){const{target:r,commands:n}=e,i=oa(r,t);if(0===i.length)throw Error("tell command found no target elements");const a=t.locals.get("_runtimeExecute"),o=[];for(const e of i){const r={...t,me:e,you:e};for(const e of n)try{const t=await this.executeCommand(e,r,a);o.push(t),Object.assign(r,{it:t})}catch(e){throw Error("Command execution failed in tell block: "+(e instanceof Error?e.message:"Unknown error"))}}return{targetElements:i,commandResults:o,executionCount:i.length*n.length}}async executeCommand(e,t,r){if(e&&"object"==typeof e&&"command"===e.type&&r)return await r(e,t);if("function"==typeof e)return await e(t);if(e&&"object"==typeof e&&"function"==typeof e.execute)return await e.execute(t);throw Error("Invalid command: must be a function or object with execute method")}},Xi(t,"TellCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})());let hl=(()=>{let e,t,r=[ra({description:"Copy text or element content to the clipboard",syntax:["copy <source>","copy <source> to clipboard"],examples:['copy "Hello World"',"copy #code-snippet","copy my textContent"],sideEffects:["clipboard-write","custom-events"]}),ta({name:"copy",category:"utility"})],n=[];return t=class{async parseInput(e,t,r){if(1>e.args.length)throw Error("copy command requires a source (text or element)");const n=await t.evaluate(e.args[0],r);let i="text";if(e.modifiers?.format){const n=await t.evaluate(e.modifiers.format,r);"html"!==n&&"text"!==n||(i=n)}return{source:n,format:i}}async execute(e,t){const{source:r,format:n="text"}=e,i=this.extractText(r,n,t);if("undefined"!=typeof navigator&&navigator.clipboard)try{return await navigator.clipboard.writeText(i),this.dispatchCopyEvent(t,"copy:success",{text:i,method:"clipboard-api"}),{success:!0,text:i,format:n,method:"clipboard-api"}}catch{}try{if(this.copyUsingExecCommand(i))return this.dispatchCopyEvent(t,"copy:success",{text:i,method:"execCommand"}),{success:!0,text:i,format:n,method:"execCommand"}}catch{}return this.dispatchCopyEvent(t,"copy:error",{text:i,error:"All copy methods failed"}),{success:!1,text:i,format:n,method:"fallback"}}extractText(e,t,r){if("string"==typeof e)return e;if(ia(e))return"html"===t?e.outerHTML:e.textContent||"";if(e===r.me&&ia(r.me)){const e=r.me;return"html"===t?e.outerHTML:e.textContent||""}return e+""}copyUsingExecCommand(e){if("undefined"==typeof document)return!1;const t=document.createElement("textarea");t.value=e,t.style.cssText="position:fixed;top:0;left:-9999px",t.setAttribute("readonly",""),document.body.appendChild(t);try{t.select(),t.setSelectionRange(0,e.length);const r=document.execCommand("copy");return document.body.removeChild(t),r}catch{return t.parentNode?.removeChild(t),!1}}dispatchCopyEvent(e,t,r){if(ia(e.me)){const n=new CustomEvent(t,{detail:r,bubbles:!0,cancelable:!1});e.me.dispatchEvent(n)}}},Xi(t,"CopyCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})();const fl=na(hl);const yl=na((()=>{let e,t,r=[ra({description:"Select a random element from a collection",syntax:["pick <item1>, <item2>, ...","pick from <array>"],examples:['pick "red", "green", "blue"',"pick from colors","pick 1, 2, 3, 4, 5"],sideEffects:["random-selection"]}),ta({name:"pick",category:"utility"})],n=[];return t=class{async parseInput(e,t,r){if(e.modifiers?.from){const n=await t.evaluate(e.modifiers.from,r);if(!Array.isArray(n))throw Error("pick from requires an array");if(0===n.length)throw Error("Cannot pick from empty array");return{array:n}}if(0===e.args.length)throw Error("pick command requires items to choose from");return{items:await Promise.all(e.args.map(e=>t.evaluate(e,r)))}}async execute(e,t){const{items:r,array:n}=e,i=r||n,a=r?"items":"array",o=Math.floor(Math.random()*i.length),s=i[o];return Object.assign(t,{it:s}),{selectedItem:s,selectedIndex:o,sourceLength:i.length,sourceType:a}}},Xi(t,"PickCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})());const vl=na((()=>{let e,t,r=[ra({description:"Throw an error with a specified message",syntax:["throw <message>"],examples:['throw "Invalid input"','if not valid then throw "Validation failed"'],sideEffects:["error-throwing","execution-termination"]}),ta({name:"throw",category:"control-flow"})],n=[];return t=class{async parseInput(e,t,r){if(1>e.args.length)throw Error("throw command requires a message or error object");return{message:await t.evaluate(e.args[0],r)}}async execute(e,t){const{message:r}=e;let n;throw n=r instanceof Error?r:Error("string"==typeof r?r:r+""),n}},Xi(t,"ThrowCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})());let gl=(()=>{let e,t,r=[ra({description:"Debug output for expressions with type information",syntax:["beep!","beep! <expression>","beep! <expression>, <expression>, ..."],examples:["beep!","beep! myValue","beep! me.id, me.className"],sideEffects:["console-output","debugging"]}),ta({name:"beep",category:"utility"})],n=[];return t=class{async parseInput(e,t,r){if(0===e.args.length)return{expressions:[]};return{expressions:await Promise.all(e.args.map(e=>t.evaluate(e,r)))}}async execute(e,t){const r=e.expressions||[];if(0===r.length)return this.debugContext(t),{expressionCount:0,debugged:!0,outputs:[]};const n=[];for(const e of r){const t=this.debugExpression(e);n.push(t)}return{expressionCount:r.length,debugged:!0,outputs:n}}debugContext(e){}debugExpression(e){return{value:e,type:this.getType(e),representation:this.getRepresentation(e)}}getType(e){return null===e?"null":void 0===e?"undefined":Array.isArray(e)?"array":ia(e)?"HTMLElement":e instanceof Element?"Element":e instanceof Node?"Node":e instanceof Error?"Error":e instanceof Date?"Date":e instanceof RegExp?"RegExp":typeof e}getRepresentation(e){if(null===e)return"null";if(void 0===e)return"undefined";if(Array.isArray(e))return`Array(${e.length}) [${e.slice(0,3).map(e=>this.getRepresentation(e)).join(", ")}${e.length>3?"...":""}]`;if(ia(e)){const t=e;return`<${t.tagName.toLowerCase()}${t.id?"#"+t.id:""}${t.className?"."+t.className.split(" ").join("."):""}/>`}if(e instanceof Error)return"Error: "+e.message;if("string"==typeof e)return e.length>50?`"${e.substring(0,47)}..."`:`"${e}"`;if("object"==typeof e)try{const t=Object.keys(e);return`Object {${t.slice(0,3).join(", ")}${t.length>3?"...":""}}`}catch{return"[Object]"}return e+""}},Xi(t,"BeepCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})();const kl=na(gl);class bl{constructor(){this.name="install"}get metadata(){return bl.metadata}async parseInput(e,t,r){if(1>e.args.length)throw Error("install command requires a behavior name");const n=e.args[0];let i,a,o;if(i="identifier"===n?.type&&"string"==typeof n.name?n.name:await t.evaluate(n,r)+"",!/^[A-Z][a-zA-Z0-9_]*$/.test(i))throw Error(`Behavior name must be PascalCase (start with uppercase): "${i}"`);if(e.args.length>=2){const n=await t.evaluate(e.args[1],r);if(n&&"object"==typeof n&&!Array.isArray(n)){a=n;for(const e of Object.keys(a))if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(e))throw Error(`Invalid parameter name: "${e}"`)}}return e.modifiers?.on&&(o=await t.evaluate(e.modifiers.on,r)),{behaviorName:i,parameters:a,target:o}}async execute(e,t){const{behaviorName:r,parameters:n={},target:i}=e;try{const e=this.resolveTarget(i,t);if(0===e.length)throw Error("No target elements found to install behavior on");if(!this.behaviorExists(r,t))throw Error(`Behavior "${r}" is not defined. Define it using the 'behavior' keyword before installing.`);const a=[];for(const i of e){const e=await this.installBehavior(r,i,n,t);a.push(e)}return{success:!0,behaviorName:r,installedCount:a.length,instances:a}}catch(e){throw Error(`Failed to install behavior "${r}": ${e instanceof Error?e.message:e+""}`)}}resolveTarget(e,t){if(null==e){const e=t.me||t.locals.get("me");if(ia(e))return[e];throw Error('No target specified and "me" is not available in context')}if(ia(e))return[e];if(Array.isArray(e)){const t=e.filter(e=>ia(e));if(0===t.length)throw Error("Target array contains no valid HTMLElements");return t}if("string"==typeof e){if("me"===e){const e=t.me||t.locals.get("me");if(ia(e))return[e];throw Error('"me" is not available in context')}if("undefined"!=typeof document){const t=document.querySelectorAll(e),r=Array.from(t).filter(e=>ia(e));if(0===r.length)throw Error(`No elements found matching selector: "${e}"`);return r}throw Error("document is not available (not in browser environment)")}if(e&&"object"==typeof e&&"length"in e){const t=Array.from(e).filter(e=>ia(e));if(0===t.length)throw Error("Target collection contains no valid HTMLElements");return t}if("object"==typeof e&&"element"in e){const t=e.element;if(ia(t))return[t]}throw Error("Cannot resolve target to HTMLElement(s): "+(e+""))}behaviorExists(e,t){const r=t.locals.get("_behaviors");if(r&&"object"==typeof r){return r.has(e)}if("undefined"!=typeof globalThis){const t=globalThis._hyperscript;if(t?.behaviors)return t.behaviors.has(e)}return!1}async installBehavior(e,t,r,n){const i=n.locals.get("_behaviors");if(i&&"object"==typeof i){const n=i;if(n.install&&"function"==typeof n.install)return await n.install(e,t,r)}if("undefined"!=typeof globalThis){const n=globalThis._hyperscript;if(n?.behaviors?.install)return await n.behaviors.install(e,t,r)}throw Error("Behavior system not available in context")}}bl.metadata={description:"Install a behavior on an element with optional parameters",syntax:["install <BehaviorName>","install <BehaviorName> on <element>","install <BehaviorName>(param: value)","install <BehaviorName>(param: value) on <element>"],examples:["install Removable","install Draggable on #box",'install Tooltip(text: "Help", position: "top")','install Sortable(axis: "y") on .list',"install MyBehavior(foo: 42) on the first <div/>"],category:"behaviors",sideEffects:["behavior-installation","element-modification"]};let wl=(()=>{let e,t,r=[ra({description:"Move classes, attributes, and properties from one element to another",syntax:["take <property> from <source>","take <property> from <source> and put it on <target>"],examples:["take class from <#source/>","take @data-value from <.source/> and put it on <#target/>"],sideEffects:["dom-mutation","property-transfer"]}),ta({name:"take",category:"animation"})],n=[];return t=class{async parseInput(e,t,r){if(3>e.args.length)throw Error('take requires property, "from", and source');const n=await t.evaluate(e.args[0],r)+"";if("from"!==await t.evaluate(e.args[1],r))throw Error("take syntax: take <property> from <source>");const i=await t.evaluate(e.args[2],r);let a;if(e.args.length<8)e.args.length>3&&(a=await t.evaluate(e.args[3],r));else{const n=await Promise.all([3,4,5,6].map(n=>t.evaluate(e.args[n],r)));"and"===n[0]&&"put"===n[1]&&"it"===n[2]&&"on"===n[3]&&e.args[7]&&(a=await t.evaluate(e.args[7],r))}return!a&&e.modifiers?.on&&(a=await t.evaluate(e.modifiers.on,r)),{property:n,source:i,target:a}}async execute(e,t){const r=aa(e.source,t),n=aa(e.target?e.target:void 0,t),i=this.takeProperty(r,e.property);return this.putProperty(n,e.property,i),{targetElement:n,property:e.property,value:i}}takeProperty(e,t){const r=t.trim(),n=r.toLowerCase();if("class"===n||"classes"===n){const t=Array.from(e.classList);return e.className="",t}if(r.startsWith(".")){const t=r.substring(1);return e.classList.contains(t)?(e.classList.remove(t),t):null}if(r.startsWith("@")){const t=r.substring(1),n=e.getAttribute(t);return e.removeAttribute(t),n}if(r.startsWith("data-")){const t=e.getAttribute(r);return e.removeAttribute(r),t}if("id"===n){const t=e.id;return e.id="",t}if("title"===n){const t=e.title;return e.title="",t}if("value"===n&&"value"in e){const t=e.value;return e.value="",t}const i=r.replace(/-([a-z])/g,(e,t)=>t.toUpperCase());if(r.includes("-")||i in e.style||r in e.style){let t;return i in e.style?(t=e.style[i],e.style[i]=""):r in e.style?(t=e.style[r],e.style[r]=""):(t=e.style.getPropertyValue(r),e.style.removeProperty(r)),t}const a=e.getAttribute(t);return null!==a?(e.removeAttribute(t),a):null}putProperty(e,t,r){if(null==r)return;const n=t.trim(),i=n.toLowerCase();if("class"===i||"classes"===i)return void(Array.isArray(r)?r.forEach(t=>t&&"string"==typeof t&&e.classList.add(t)):"string"==typeof r&&(e.className=r));if(n.startsWith("."))return void(r&&e.classList.add(n.substring(1)));if(n.startsWith("@"))return void e.setAttribute(n.substring(1),r+"");if(n.startsWith("data-"))return void e.setAttribute(n,r+"");if("id"===i)return void(e.id=r+"");if("title"===i)return void(e.title=r+"");if("value"===i&&"value"in e)return void(e.value=r+"");const a=n.replace(/-([a-z])/g,(e,t)=>t.toUpperCase());n.includes("-")||a in e.style||n in e.style?a in e.style?e.style[a]=r+"":n in e.style?e.style[n]=r+"":e.style.setProperty(n,r+""):e.setAttribute(t,r+"")}},Xi(t,"TakeCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;Yi(null,e={value:t},r,{kind:"class",name:t.name,metadata:i},null,n),t=e.value,i&&Object.defineProperty(t,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),Zi(t,n)})(),t})();const zl=na(wl);class xl{constructor(){this.name="render"}get metadata(){return xl.metadata}async parseInput(e,t,r){if(1>e.args.length)throw Error("render command requires a template");const n=await t.evaluate(e.args[0],r);let i;if(e.args.length>=3){if("with"===await t.evaluate(e.args[1],r)){const n=await t.evaluate(e.args[2],r);n&&"object"==typeof n&&(i=n)}}if(!i&&e.modifiers?.with){const n=await t.evaluate(e.modifiers.with,r);n&&"object"==typeof n&&(i=n)}return{template:n,variables:i}}async execute(e,t){const{template:r,variables:n={}}=e,i=this.extractTemplateContent(r,t),a=this.createTemplateContext(t,n),o=[],s=await this.processTemplate(i,a,o),l=this.createDOMElement(s);return Object.assign(t,{it:l}),{element:l,rendered:s,directivesProcessed:o}}extractTemplateContent(e,t){if(e instanceof HTMLTemplateElement)return e.innerHTML;if("string"==typeof e){let r=e;if(!r.includes("<")&&!r.includes("$")){const e=this.resolveVariable(r,t);if(e instanceof HTMLTemplateElement)return e.innerHTML;"string"==typeof e&&(r=e)}const n=r.match(/<template[^>]*>([\s\S]*?)<\/template>/i);return n?n[1]:r}if(e&&"object"==typeof e&&"innerHTML"in e)return e.innerHTML;throw Error("Invalid template format")}createTemplateContext(e,t){return{...e,locals:new Map([...Array.from(e.locals.entries()),...Object.entries(t)])}}async processTemplate(e,t,r){const n=e.split("\n"),i=[];let a=0;for(;n.length>a;){const e=n[a].trim();if(e.startsWith("@repeat ")){const{nextIndex:e,rendered:o}=await this.processRepeatDirective(n,a,t);i.push(o),a=e,r.push("@repeat")}else if(e.startsWith("@if ")){const{nextIndex:e,rendered:o}=await this.processIfDirective(n,a,t,r);i.push(o),a=e,r.push("@if")}else if("@else"===e||"@end"===e)a++;else{const r=this.processVariableInterpolation(e,t);i.push(r),a++}}return i.join("\n")}async processRepeatDirective(e,t,r){const n=e[t].trim(),i=n.match(/^@repeat\s+in\s+(.+)$/);if(!i)throw Error("Invalid @repeat syntax: "+n);const a=this.evaluateExpression(i[1],r),{endIndex:o,blockContent:s}=this.extractDirectiveBlock(e,t+1),l=[];if(Array.isArray(a))for(const e of a){const t={...r,locals:new Map([...r.locals.entries(),["it",e]])},n=await this.processTemplate(s.join("\n"),t,[]);l.push(n)}return{nextIndex:o+1,rendered:l.join("\n")}}async processIfDirective(e,t,r,n){const i=e[t].trim(),a=i.match(/^@if\s+(.+)$/);if(!a)throw Error("Invalid @if syntax: "+i);const o=!!this.evaluateExpression(a[1],r),{endIndex:s,blockContent:l,elseContent:c}=this.extractIfElseBlock(e,t+1);let u="";return o?u=await this.processTemplate(l.join("\n"),r,[]):c.length>0&&(u=await this.processTemplate(c.join("\n"),r,[]),n.push("@else")),{nextIndex:s+1,rendered:u}}extractDirectiveBlock(e,t){const r=[];let n=1,i=t;for(;e.length>i&&n>0;){const t=e[i].trim();t.startsWith("@repeat ")||t.startsWith("@if ")?(n++,r.push(e[i])):"@end"===t?(n--,n>0&&r.push(e[i])):r.push(e[i]),i++}return{endIndex:i-1,blockContent:r}}extractIfElseBlock(e,t){const r=[],n=[];let i=1,a=t,o=!1;for(;e.length>a&&i>0;){const t=e[a].trim();if(t.startsWith("@if "))i++;else{if("@else"===t&&1===i){o=!0,a++;continue}if("@end"===t&&(i--,0===i))break}o?n.push(e[a]):r.push(e[a]),a++}return{endIndex:a,blockContent:r,elseContent:n}}processVariableInterpolation(e,t){return e.replace(/\$\{([^}]+)\}/g,(e,r)=>{try{const e=r.trim();if(e.startsWith("unescaped ")){const r=e.substring(10).trim();return(this.evaluateExpression(r,t)||"")+""}const n=this.evaluateExpression(e,t);return this.escapeHtml((n||"")+"")}catch(t){return e}})}evaluateExpression(e,t){if("true"===e)return!0;if("false"===e)return!1;if("null"===e)return null;if("undefined"===e)return;const r=Number(e);if(!isNaN(r)&&""!==e.trim())return r;if(e.startsWith("[")&&e.endsWith("]"))try{return JSON.parse(e)}catch{}if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return e.slice(1,-1);if(e.includes(".")){const r=e.split(".");let n=this.resolveVariable(r[0],t);for(let e=1;r.length>e&&null!=n;e++){if("object"!=typeof n||null===n)return;n=n[r[e]]}return n}return this.resolveVariable(e,t)}resolveVariable(e,t){return t.locals?.has(e)?t.locals.get(e):"me"===e?t.me:"it"===e?t.it:"you"===e?t.you:"result"===e?t.result:t.globals?.has(e)?t.globals.get(e):void 0}escapeHtml(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}createDOMElement(e){if("undefined"==typeof document)return null;const t=document.createElement("div");return t.innerHTML=e,1===t.children.length?t.firstElementChild:t}}xl.metadata={description:"Render templates with @if, @else, and @repeat directives",syntax:["render <template>","render <template> with <variables>","render <template> with (key: value, ...)"],examples:["render myTemplate",'render myTemplate with (name: "Alice")','render "<template>Hello ${name}!</template>" with (name: "World")',"render template with (items: data)"],category:"templates",sideEffects:["dom-creation","template-execution"]};class El extends Gi{constructor(e={}){const t=e.registry||new qi;e.registry||(t.register(ma()),t.register(da()),t.register(Pa()),t.register(Oa()),t.register(to()),t.register(no()),t.register(uo()),t.register(ms()),t.register(ds()),t.register(ws()),t.register(Ss()),t.register(Ls()),t.register(js()),t.register(Ps()),t.register(Os()),t.register(Is()),t.register(Rs()),t.register(Ws()),t.register(qs()),t.register($s()),t.register(Bs()),t.register(Fs()),t.register(Gs()),t.register(Xs()),t.register(Qs()),t.register(el()),t.register(tl()),t.register(rl()),t.register(nl()),t.register(il()),t.register(al()),t.register(ol()),t.register(sl()),t.register(ll()),t.register(cl()),t.register(ul()),t.register(Ys()),t.register(pl()),t.register(new ml),t.register(dl()),t.register(fl()),t.register(yl()),t.register(vl()),t.register(kl()),t.register(new bl),t.register(zl()),t.register(new xl));const r={registry:t,expressionEvaluator:new Ri};void 0!==e.enableAsyncCommands&&(r.enableAsyncCommands=e.enableAsyncCommands),void 0!==e.commandTimeout&&(r.commandTimeout=e.commandTimeout),void 0!==e.enableErrorReporting&&(r.enableErrorReporting=e.enableErrorReporting),super(r)}getRegistry(){return this.registry}}function Tl(e,t){return t?{type:"literal",value:e,dataType:t}:{type:"literal",value:e}}function Sl(e,t){return t?{type:"selector",value:e,selectorKind:t}:{type:"selector",value:e}}function Cl(e){return{type:"reference",value:e}}function Al(e,t){return{type:"property-path",object:e,property:t}}function Ll(e,t=!0){return{type:"flag",name:e,enabled:t}}var jl=class{constructor(e){this.namespace=e,this.enabled=this.checkEnabled()}checkEnabled(){if("undefined"!=typeof process&&process.env){const e=process.env.DEBUG||"";return"*"===e||e.includes("framework:*")||e.includes("framework:"+this.namespace)}return!1}log(e,t,...r){if(!this.enabled)return;(new Date).toISOString()}debug(e,...t){this.log("debug",e,...t)}info(e,...t){this.log("info",e,...t)}warn(e,...t){this.log("warn",e,...t)}error(e,...t){this.log("error",e,...t)}isEnabled(){return this.enabled}enable(){this.enabled=!0}disable(){this.enabled=!1}};function Pl(e,t){return!t||0===t.length||(!!t.includes(e)||(!!t.includes("expression")||"property-path"===e&&t.some(e=>["selector","reference","expression"].includes(e))))}var Nl=class e{constructor(){this.logger=new jl("pattern-matcher"),this.stemMatchCount=0,this.totalKeywordMatches=0}safeToLowerCase(e){return"string"==typeof e?e.toLowerCase():null==e?"":(e+"").toLowerCase()}matchPattern(e,t,r){const n=e.mark(),i=new Map;if(this.logger.debug("========================================"),this.logger.debug("matchPattern ENTRY"),this.logger.debug("Pattern ID:",t.id),this.logger.debug("Pattern command:",t.command),this.logger.debug("Pattern language:",t.language),this.logger.debug("Pattern template:",JSON.stringify(t.template,null,2)),this.logger.isEnabled()){const t=[];for(let r=0;10>r;r++){const n=e.peek(r);if(!n)break;t.push({type:n.type,value:n.value,kind:n.kind})}this.logger.debug("Input tokens (first 10):",t),this.logger.debug("Profile code:",r?.code)}this.currentProfile=r,this.stemMatchCount=0,this.totalKeywordMatches=0,this.logger.debug("--- Calling matchTokenSequence ---"),this.logger.debug("Pattern tokens to match:",JSON.stringify(t.template.tokens,null,2));const a=this.matchTokenSequence(e,t.template.tokens,i);if(this.logger.debug("matchTokenSequence returned:",a),this.logger.debug("Captured roles:",Array.from(i.entries()).map(([e,t])=>[e,JSON.stringify(t)])),!a)return this.logger.debug(">>> MATCH FAILED - resetting token position"),e.reset(n),null;const o=this.calculateConfidence(t,i);return this.applyExtractionRules(t,i),{pattern:t,captured:i,consumedTokens:e.position()-n.position,confidence:o}}matchBest(e,t,r){const n=[];for(const i of t){const t=e.mark(),a=this.matchPattern(e,i,r);a&&n.push(a),e.reset(t)}if(0===n.length)return null;n.sort((e,t)=>{const r=t.pattern.priority-e.pattern.priority;if(0!==r)return r;const n=t.confidence-e.confidence;return Math.abs(n)>.001?n:t.consumedTokens-e.consumedTokens});const i=n[0];return this.matchPattern(e,i.pattern),i}matchTokenSequence(e,t,r,n){const i=t[0],a="literal"===i?.type&&("and"===i.value||"then"===i.value||i.alternatives?.includes("and")||i.alternatives?.includes("then"));if("ar"===this.currentProfile?.code&&!a)for(;"conjunction"===e.peek()?.kind;)e.advance();let o=null,s=null;for(let i=0;t.length>i;i++){const a=t[i];this.logger.debug(" >> Matching pattern token:",JSON.stringify(a,null,2));const l=e.peek();if(this.logger.debug(" >> Current input token:",l?JSON.stringify({type:l.type,value:l.value,kind:l.kind}):"EOF"),"role"===a.type&&a.greedy){const l=this.collectStopMarkers(t,i+1);if(n)for(const e of n)l.add(e);const c=[];for(;!e.isAtEnd();){const t=e.peek();if(!t)break;if(this.isStopMarker(t,l))break;c.push(t.value),e.advance()}if(c.length>0){r.set(a.role,{type:"expression",raw:c.join(" ")}),o=null,s=null;continue}if(a.optional)continue;return!1}if("group"===a.type){const l=this.collectStopMarkers(t,i+1);if(n)for(const e of n)l.add(e);if(this.matchGroupToken(e,a,r,l)){o=null,s=null;continue}if(this.isOptional(a))continue;return!1}const c="role"===a.type&&!0===a.optional,u=c?e.mark():null;if("role"===a.type&&!c){const n=t.length>i+1?t[i+1]:null;if("literal"===n?.type){const t=e.peek();if(t&&"none"!==this.getMatchType(t,n.value)){if(this.logger.debug(" >> MARKER-STEAL GUARD: current token matches next literal, skipping role"),this.logger.debug(" >> Token match FAILED"),this.isOptional(a))continue;if(o&&s){this.logger.debug(" >> BACKTRACKING: undoing optional role",s),e.reset(o),r.delete(s),o=null,s=null;const t=this.matchPatternToken(e,a,r);if(this.logger.debug(" >> Backtrack retry result:",t),t)continue}return!1}}}const p=this.matchPatternToken(e,a,r);if(this.logger.debug(" >> Match result:",p),p)c?(o=u,s=a.role):(o=null,s=null);else if(this.logger.debug(" >> Token match FAILED"),!this.isOptional(a)){if(o&&s){this.logger.debug(" >> BACKTRACKING: undoing optional role",s),e.reset(o),r.delete(s),o=null,s=null;const t=this.matchPatternToken(e,a,r);if(this.logger.debug(" >> Backtrack retry result:",t),t)continue}return!1}}return!0}matchPatternToken(e,t,r){switch(t.type){case"literal":return this.matchLiteralToken(e,t);case"role":return this.matchRoleToken(e,t,r);case"group":return this.matchGroupToken(e,t,r);default:return!1}}matchLiteralToken(e,t){const r=e.peek();if(this.logger.debug(" >>> matchLiteralToken: expecting",t.value),this.logger.debug(" >>> matchLiteralToken: got token",r?JSON.stringify({type:r.type,value:r.value,kind:r.kind}):"null"),!r)return this.logger.debug(" >>> matchLiteralToken: FAIL - no token"),!1;const n=this.getMatchType(r,t.value);if(this.logger.debug(" >>> matchType for",r.value,"vs",t.value,":",n),"none"!==n)return this.totalKeywordMatches++,"stem"===n&&this.stemMatchCount++,e.advance(),!0;if(t.alternatives)for(const n of t.alternatives){const t=this.getMatchType(r,n);if("none"!==t)return this.totalKeywordMatches++,"stem"===t&&this.stemMatchCount++,e.advance(),!0}return!1}matchRoleToken(e,t,r){this.logger.debug(" >>> matchRoleToken ENTRY: capturing role",t.role),this.logger.debug(" >>> matchRoleToken: expected types",t.expectedTypes),this.logger.debug(" >>> matchRoleToken: optional?",t.optional),this.skipNoiseWords(e);const n=e.peek();if(this.logger.debug(" >>> After skipNoiseWords, current token:",n?JSON.stringify({value:n.value,kind:n.kind}):"null"),!n)return t.optional||!1;const i=this.tryMatchPossessiveExpression(e);if(i)return t.expectedTypes&&t.expectedTypes.length>0&&!Pl(i.type,t.expectedTypes)?t.optional||!1:(r.set(t.role,i),!0);const a=this.tryMatchMethodCallExpression(e);if(a)return t.expectedTypes&&t.expectedTypes.length>0&&!Pl(a.type,t.expectedTypes)?t.optional||!1:(r.set(t.role,a),!0);const o=this.tryMatchPossessiveSelectorExpression(e);if(o)return t.expectedTypes&&t.expectedTypes.length>0&&!Pl(o.type,t.expectedTypes)?t.optional||!1:(r.set(t.role,o),!0);const s=this.tryMatchPropertyAccessExpression(e);if(s)return t.expectedTypes&&t.expectedTypes.length>0&&!Pl(s.type,t.expectedTypes)?t.optional||!1:(r.set(t.role,s),!0);const l=this.tryMatchSelectorPropertyExpression(e);if(l)return t.expectedTypes&&t.expectedTypes.length>0&&!Pl(l.type,t.expectedTypes)?t.optional||!1:(r.set(t.role,l),!0);this.logger.debug(" >>> Trying tokenToSemanticValue for token:",n?JSON.stringify({value:n.value,kind:n.kind}):"null");const c=this.tokenToSemanticValue(n);return this.logger.debug(" >>> tokenToSemanticValue returned:",c?JSON.stringify(c):"null"),c?(this.logger.debug(" >>> Validating type:",c.type,"against expected:",t.expectedTypes),t.expectedTypes&&t.expectedTypes.length>0&&!Pl(c.type,t.expectedTypes)?(this.logger.debug(" >>> TYPE MISMATCH - returning",t.optional||!1),t.optional||!1):(this.logger.debug(" >>> Type validation PASSED"),r.set(t.role,c),e.advance(),!0)):t.optional||!1}tryMatchPossessiveExpression(e){const t=e.peek();if(!t)return null;if(!this.currentProfile)return null;const r=this.safeToLowerCase(t.normalized||t.value),n=(i=this.currentProfile,a=r,i?.possessive?.keywords?.[a]);var i,a;if(!n)return null;const o=e.mark();e.advance();const s=e.peek();if(!s)return e.reset(o),null;if("identifier"===s.kind||"keyword"===s.kind&&!this.isStructuralKeyword(s.value)||"selector"===s.kind&&s.value.startsWith("*")||"selector"===s.kind&&s.value.startsWith("@")||"selector"===s.kind&&s.value.startsWith(".")&&/^\.[a-zA-Z_]\w*/.test(s.value)){e.advance();let t=s.value;"selector"===s.kind&&t.startsWith(".")&&/^\.[a-zA-Z_]\w*/.test(t)&&(t=t.substring(1));let r=t;for(;"selector"===e.peek()?.kind&&e.peek().value.startsWith(".")&&/^\.[a-zA-Z_]\w*/.test(e.peek().value);)r+=e.peek().value,e.advance();const i=e.peek();return"literal"===i?.kind&&i.value.startsWith("(")&&(r+=i.value,e.advance()),Al(Cl(n),r)}return e.reset(o),null}isStructuralKeyword(e){return new Set(["into","in","to","from","at","by","with","without","before","after","of","as","on","then","end","else","if","repeat","while","for","toggle","add","remove","put","set","show","hide","increment","decrement","send","trigger","call"]).has(e.toLowerCase())}tryMatchMethodCallExpression(t){const r=t.peek();if(!r||"selector"!==r.kind)return null;const n=t.mark();t.advance();const i=t.peek();if(!i||"operator"!==i.kind||"."!==i.value)return t.reset(n),null;t.advance();const a=t.peek();if(!a||"identifier"!==a.kind)return t.reset(n),null;t.advance();const o=t.peek();if(!o||"punctuation"!==o.kind||"("!==o.value)return t.reset(n),null;t.advance();const s=[];for(;!t.isAtEnd()&&e.MAX_METHOD_ARGS>s.length;){const e=t.peek();if(!e)break;if("punctuation"===e.kind&&")"===e.value){t.advance();break}"punctuation"!==e.kind||","!==e.value?(s.push(e.value),t.advance()):t.advance()}return{type:"expression",raw:`${r.value}.${a.value}(${s.join(", ")})`}}tryMatchPropertyAccessExpression(t){const r=t.peek();if(!r)return null;if("identifier"!==r.kind&&"keyword"!==r.kind)return null;const n=t.mark();t.advance();const i=t.peek();if(!i||"operator"!==i.kind||"."!==i.value)return t.reset(n),null;t.advance();const a=t.peek();if(!a||"identifier"!==a.kind)return t.reset(n),null;t.advance();let o=`${r.value}.${a.value}`,s=1;for(;!t.isAtEnd()&&e.MAX_PROPERTY_DEPTH>s;){const e=t.peek();if(!e||"operator"!==e.kind||"."!==e.value)break;t.advance();const r=t.peek();if(!r||"identifier"!==r.kind)break;t.advance(),o+="."+r.value,s++}const l=t.peek();if(l&&"punctuation"===l.kind&&"("===l.value){t.advance();const r=[];let n=0;for(;!t.isAtEnd()&&e.MAX_METHOD_ARGS>r.length;){const e=t.peek();if(!e)break;if("punctuation"===e.kind&&")"===e.value){if(0===n){t.advance();break}n--}"punctuation"===e.kind&&"("===e.value&&n++,"punctuation"!==e.kind||","!==e.value?(r.push(e.value),t.advance()):t.advance()}return{type:"expression",raw:`${o}(${r.join(", ")})`}}return{type:"expression",raw:o}}tryMatchPossessiveSelectorExpression(e){const t=e.peek();if(!t||"selector"!==t.kind)return null;const r=e.mark();e.advance();const n=e.peek();if(!n||"punctuation"!==n.kind||"'s"!==n.value)return e.reset(r),null;e.advance();const i=e.peek();return i?"selector"!==i.kind&&"identifier"!==i.kind?(e.reset(r),null):(e.advance(),Al(Sl(t.value),i.value)):(e.reset(r),null)}tryMatchSelectorPropertyExpression(e){const t=e.peek();if(!t||"selector"!==t.kind)return null;if("string"!=typeof t.value||!t.value.startsWith("#"))return null;const r=e.mark();e.advance();const n=e.peek();if(!n||"selector"!==n.kind)return e.reset(r),null;if(!n.value.startsWith("."))return e.reset(r),null;e.peek(1);e.advance();const i=n.value.slice(1);return Al(Sl(t.value),i)}matchGroupToken(t,r,n,i){const a=t.mark(),o=new Set(n.keys());if(this.matchTokenSequence(t,r.tokens,n,i))return!0;t.reset(a);for(const e of n.keys())o.has(e)||n.delete(e);if(!r.optional)return!1;const s=this.getGroupLeadingMarker(r);if(s)for(let l=1;e.MAX_MARKER_SCAN>=l;l++){const e=t.peek(l);if(!e)break;if((e.normalized||e.value).toLowerCase()===s){this.logger.debug(" >> MARKER SCAN: found",s,"at offset",l,"- skipping intervening tokens");for(let e=0;l>e;e++)t.advance();if(this.matchTokenSequence(t,r.tokens,n,i))return!0;t.reset(a);for(const e of n.keys())o.has(e)||n.delete(e);break}}return!0}getGroupLeadingMarker(e){const t=e.tokens[0];return"literal"===t?.type?t.value.toLowerCase():null}getMatchType(e,t){return e.value===t?"exact":e.normalized===t?"normalized":e.stem!==t||void 0===e.stemConfidence||.7>e.stemConfidence?"keyword"===e.kind&&this.safeToLowerCase(e.value)===t.toLowerCase()?"case-insensitive":"none":"stem"}collectStopMarkers(e,t){const r=new Set;for(let n=t;e.length>n;n++){const t=e[n];if("literal"===t.type){if(r.add(t.value.toLowerCase()),t.alternatives)for(const e of t.alternatives)r.add(e.toLowerCase());break}if("group"===t.type){for(const e of t.tokens)if("literal"===e.type){if(r.add(e.value.toLowerCase()),e.alternatives)for(const t of e.alternatives)r.add(t.toLowerCase());break}if(!t.optional)break}}return r}isStopMarker(e,t){return 0!==t.size&&(!!t.has(e.value.toLowerCase())||!(!e.normalized||!t.has(e.normalized.toLowerCase())))}tokenToSemanticValue(e){switch(e.kind){case"selector":return Sl(e.value);case"literal":return this.parseLiteralValue(e.value);case"keyword":return this.safeToLowerCase(e.normalized||e.value),Tl(e.normalized||e.value);case"identifier":return"string"==typeof e.value&&e.value.startsWith(":")?Cl(e.value):(this.safeToLowerCase(e.value),{type:"expression",raw:e.value});case"url":return Tl(e.value,"string");default:return null}}parseLiteralValue(e){if(e.startsWith('"')||e.startsWith("'")||e.startsWith("`")||e.startsWith("「")){return Tl(e.slice(1,-1),"string")}if("true"===e)return Tl(!0,"boolean");if("false"===e)return Tl(!1,"boolean");const t=e.match(/^(\d+(?:\.\d+)?)(ms|s|m|h)?$/);if(t){const r=parseFloat(t[1]);return t[2]?Tl(e,"duration"):Tl(r,"number")}const r=parseFloat(e);return isNaN(r)?Tl(e,"string"):Tl(r,"number")}applyExtractionRules(e,t){for(const[r,n]of Object.entries(e.extraction))t.has(r)||(void 0!==n.value?t.set(r,{type:"literal",value:n.value}):n.default&&t.set(r,n.default))}isOptional(e){return"literal"!==e.type&&!0===e.optional}calculateConfidence(e,t){let r=0,n=0;const i=t=>void 0!==e.extraction?.[t]?.default;for(const a of e.template.tokens)if("role"===a.type)n+=1,t.has(a.role)&&(r+=1);else if("group"===a.type)for(const e of a.tokens)if("role"===e.type){const a=i(e.role),o=.8;n+=o,t.has(e.role)?r+=o:a&&(r+=.6*o)}let a=n>0?r/n:1;if(this.stemMatchCount>0&&this.totalKeywordMatches>0){a=Math.max(.5,a-this.stemMatchCount/this.totalKeywordMatches*.15)}const o=this.calculateVSOConfidenceBoost(e);a=Math.min(1,a+o);const s=this.arabicPrepositionDisambiguation(e,t);return a=Math.max(0,Math.min(1,a+s)),a}calculateVSOConfidenceBoost(e){if("ar"!==e.language)return 0;const t=e.template.tokens[0];if(!t||"literal"!==t.type)return 0;const r=new Set(["بدل","غير","أضف","أزل","ضع","اجعل","عين","زد","انقص","سجل","أظهر","أخف","شغل","أرسل","ركز","شوش","توقف","انسخ","احذف","اصنع","انتظر","انتقال","أو"]);if(r.has(t.value))return.15;if(t.alternatives)for(const e of t.alternatives)if(r.has(e))return.15;return 0}arabicPrepositionDisambiguation(e,t){if("ar"!==e.language)return 0;let r=0;const n={patient:["على"],destination:["إلى","الى"],source:["من"],agent:["من"],manner:["ب"],style:["ب"],goal:["إلى","الى"],method:["ب"]};for(const[e,i]of t.entries()){const t=n[e];if(!t||0===t.length)continue;const a="metadata"in i?i.metadata:void 0;if(a&&"string"==typeof a.prepositionValue){t.includes(a.prepositionValue)?r+=.1:r-=.1}}return Math.max(-.1,Math.min(.1,r))}skipNoiseWords(t){const r=t.peek();if(!r)return;const n=this.safeToLowerCase(r.value);if(e.ENGLISH_NOISE_WORDS.has(n)){const e=t.mark();t.advance();const r=t.peek();if(r&&"selector"===r.kind)return;t.reset(e)}"class"===n&&t.advance()}extractEventModifiers(e){const t={};let r=!1;for(;!e.isAtEnd();){const n=e.peek();if(!n||"event-modifier"!==n.kind)break;const i=n.metadata;if(!i)break;switch(r=!0,i.modifierName){case"once":t.once=!0;break;case"debounce":"number"==typeof i.value&&(t.debounce=i.value);break;case"throttle":"number"==typeof i.value&&(t.throttle=i.value);break;case"queue":"first"!==i.value&&"last"!==i.value&&"all"!==i.value&&"none"!==i.value||(t.queue=i.value)}e.advance()}return r?t:void 0}};Nl.MAX_MARKER_SCAN=3,Nl.MAX_PROPERTY_DEPTH=10,Nl.MAX_METHOD_ARGS=20,Nl.ENGLISH_NOISE_WORDS=new Set(["the","a","an"]),new Nl;var Ol=class{constructor(){this.name="string-literal"}canExtract(e,t){const r=e[t];return'"'===r||"'"===r||"`"===r||"“"===r||"‘"===r}extract(e,t){const r=e[t];if("“"===r){let r=1;for(;e.length>t+r;){if("”"===e[t+r])return r++,{value:e.substring(t,t+r),length:r};r++}return null}if("‘"===r){let r=1;for(;e.length>t+r;){if("’"===e[t+r])return r++,{value:e.substring(t,t+r),length:r};r++}return null}let n=1,i=!1;for(;e.length>t+n;){const a=e[t+n];if(i)i=!1,n++;else if("\\"!==a){if(a===r)return n++,{value:e.substring(t,t+n),length:n};n++}else i=!0,n++}return null}},Il=class{constructor(){this.name="number"}canExtract(e,t){return/\d/.test(e[t])}extract(e,t){let r=0,n=!1;for(;e.length>t+r;){const i=e[t+r];if(/\d/.test(i))r++;else{if("."!==i||n)break;n=!0,r++}}if(0===r)return null;const i=e.substring(t,t+r),a=t+r;if(e.length>a){const t=e.slice(a),n=[{pattern:"毫秒",suffix:"ms"},{pattern:"分钟",suffix:"m"},{pattern:"小时",suffix:"h"},{pattern:"ミリ秒",suffix:"ms"},{pattern:"時間",suffix:"h"}];for(const e of n)if(t.startsWith(e.pattern))return{value:i+e.suffix,length:r+e.pattern.length,metadata:{hasTimeUnit:!0}};if(t.startsWith("ms"))return{value:i+"ms",length:r+2,metadata:{hasTimeUnit:!0}};const o=[{pattern:"秒",suffix:"s"},{pattern:"分",suffix:"m"}];for(const e of o)if(t.startsWith(e.pattern))return{value:i+e.suffix,length:r+1,metadata:{hasTimeUnit:!0}};if(/^[smh](?![a-zA-Z])/.test(t))return{value:i+t[0],length:r+1,metadata:{hasTimeUnit:!0}}}return{value:i,length:r}}},Rl=class{constructor(){this.name="identifier"}canExtract(e,t){return/[a-zA-Z_]/.test(e[t])}extract(e,t){let r=0;for(;e.length>t+r;){if(!/[a-zA-Z0-9_]/.test(e[t+r]))break;r++}return r>0?{value:e.substring(t,t+r),length:r}:null}};function Ml(e){return"setContext"in e&&"function"==typeof e.setContext}function Wl(e){const t={language:e.language,direction:e.direction,lookupKeyword:e.lookupKeyword.bind(e),isKeyword:e.isKeyword.bind(e),isKeywordStart:e.isKeywordStart.bind(e)};return e.normalizer?{...t,normalizer:e.normalizer}:t}var ql=new Set(["me","you","it","result","event","target","body"]);function _l(e,t=ql){return t.has(e)}var $l=new Set(["body","then","else","condition","loop-body","variable","catch","finally"]);function Dl(e){const t=e.slice(1,-1);let r=0;for(const e of t)if("["===e)r++;else if("]"===e)r--;else if(0===r&&(" "===e||":"===e))return!0;return!1}function Vl(e,t={}){const r=e.trim();if(!r.startsWith("[")||!r.endsWith("]"))throw Error("Explicit syntax must be wrapped in brackets: [command role:value ...]");const n=r.slice(1,-1).trim();if(!n)throw Error("Empty explicit statement");const i=function(e){const t=[];let r="",n=!1,i="",a=0;for(let o=0;e.length>o;o++){const s=e[o];n?(r+=s,s===i&&"\\"!==e[o-1]&&(n=!1)):'"'!==s&&"'"!==s?"["!==s?"]"!==s?" "!==s||0!==a?r+=s:r&&(t.push(r),r=""):(a--,r+=s):(a++,r+=s):(n=!0,i=s,r+=s)}r&&t.push(r);return t}(n);if(0===i.length)throw Error("No command specified in explicit statement");const a=i[0].toLowerCase(),o=new Map,s=t.referenceSet??ql,l=t.schemaLookup?.getSchema(a),c=l?new Set(l.roles.map(e=>e.role)):null;for(let e=1;i.length>e;e++){const t=i[e];if(t.startsWith("+")||t.startsWith("~")){const e=t.startsWith("+"),r=t.slice(1);if(!r)throw Error(`Empty flag name: "${t}"`);if(c&&!c.has(r)){const e=[...c].join(", ");throw Error(`Unknown flag "${r}" for command "${a}". Valid roles: ${e}`)}o.set(r,Ll(r,e));continue}const r=t.indexOf(":");if(-1===r)throw Error(`Invalid role format: "${t}". Expected role:value or +flag`);const n=t.slice(0,r);if(c&&!$l.has(n)&&!c.has(n)){const e=[...c].join(", ");throw Error(`Unknown role "${n}" for command "${a}". Valid roles: ${e}`)}const l=n,u=t.slice(r+1);if($l.has(n)&&u.startsWith("[")&&Dl(u)){const e=Ul(t,r+1),n=t.slice(r+1,e+1);o.set(l,{type:"expression",raw:n});continue}const p=Fl(u,s);o.set(l,p)}if(l&&"on"!==a)for(const e of l.roles)if(e.required&&!o.has(e.role)&&!e.default)throw Error(`Missing required role "${e.role}" for command "${a}": ${e.description}`);switch(a){case"on":{if(!o.get("event"))throw Error("Event handler requires event role: [on event:click ...]");const e=Bl(o,"body",t);return o.delete("body"),function(e,t,r,n,i){return{kind:"event-handler",action:e,roles:t instanceof Map?t:new Map(Object.entries(t)),body:r,...i,...n&&{metadata:n}}}("on",o,e,{sourceLanguage:"explicit"})}case"if":{const e=Bl(o,"then",t),r=Bl(o,"else",t);return o.delete("then"),o.delete("else"),function(e,t,r,n,i){return{kind:"conditional",action:e,roles:t instanceof Map?t:new Map(Object.entries(t)),thenBranch:r,...n&&{elseBranch:n},...i&&{metadata:i}}}(a,o,e,r.length>0?r:void 0,{sourceLanguage:"explicit"})}case"repeat":{const e=Bl(o,"loop-body",t),r=o.get("loop-variant"),n=o.get("variable"),i=o.get("index-variable");let s;o.delete("loop-body"),o.delete("loop-variant"),o.delete("variable"),o.delete("index-variable"),s=r&&"literal"===r.type&&"string"==typeof r.value?r.value:o.has("quantity")?"times":o.has("source")?"for":o.has("condition")?"while":"forever";return function(e,t,r,n,i,a,o){return{kind:"loop",action:e,roles:t instanceof Map?t:new Map(Object.entries(t)),loopVariant:r,body:n,...i&&{loopVariable:i},...a&&{indexVariable:a},...o&&{metadata:o}}}(a,o,s,e,"literal"===n?.type&&"string"==typeof n.value?n.value:"expression"===n?.type?n.raw:void 0,"literal"===i?.type&&"string"==typeof i.value?i.value:void 0,{sourceLanguage:"explicit"})}default:return function(e,t,r){const n={kind:"command",action:e,roles:t instanceof Map?t:new Map(Object.entries(t))};return r?{...n,metadata:r}:n}(a,o,{sourceLanguage:"explicit"})}}function Hl(e){const t=e.trim();return t.startsWith("[")&&t.endsWith("]")}function Bl(e,t,r){const n=e.get(t);return n&&"expression"===n.type?[Vl(n.raw,r)]:[]}function Fl(e,t){if(e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("@")||e.startsWith("*"))return Sl(e,function(e){if(e)return e.startsWith("#")?"id":e.startsWith(".")?"class":e.startsWith("[")?"attribute":e.startsWith("<")||e.startsWith("*")?"element":/[>+~ ]/.test(e)&&e.length>1?"complex":void 0}(e));if(e.startsWith('"')||e.startsWith("'")){return Tl(e.slice(1,-1),"string")}if("true"===e)return Tl(!0,"boolean");if("false"===e)return Tl(!1,"boolean");const r=e.toLowerCase();if(_l(r,t))return Cl(r);const n=e.match(/^(-?\d+(?:\.\d+)?)(ms|s|m|h)?$/);if(n){const t=parseFloat(n[1]);return n[2]?Tl(e,"duration"):Tl(t,"number")}return Tl(e)}function Ul(e,t){let r=0;for(let n=t;e.length>n;n++)if("["===e[n])r++;else if("]"===e[n]&&(r--,0===r))return n;return e.length-1}function Kl(e){if("compound"===e.kind){const t=e;return t.statements.map(e=>Kl(e)).join(` ${t.chainType} `)}const t=[e.action];for(const[r,n]of e.roles)t.push("flag"===n.type?n.enabled?"+"+n.name:"~"+n.name:`${r}:${Gl(n)}`);if("event-handler"===e.kind){if(e.body&&e.body.length>0){const r=e.body.map(e=>Kl(e));t.push("body:"+r.join(" "))}}if("conditional"===e.kind){const r=e;if(r.thenBranch&&r.thenBranch.length>0){const e=r.thenBranch.map(e=>Kl(e));t.push("then:"+e.join(" "))}if(r.elseBranch&&r.elseBranch.length>0){const e=r.elseBranch.map(e=>Kl(e));t.push("else:"+e.join(" "))}}if("loop"===e.kind){const r=e;if(r.loopVariant&&t.push("loop-variant:"+r.loopVariant),r.loopVariable&&t.push("variable:"+r.loopVariable),r.indexVariable&&t.push("index-variable:"+r.indexVariable),r.body&&r.body.length>0){const e=r.body.map(e=>Kl(e));t.push("loop-body:"+e.join(" "))}}if("command"===e.kind){const r=e;if(r.body&&r.body.length>0){const e=r.body.map(e=>Kl(e));t.push("body:"+e.join(" "))}if(r.catchBranch&&r.catchBranch.length>0){const e=r.catchBranch.map(e=>Kl(e));t.push("catch:"+e.join(" "))}if(r.finallyBranch&&r.finallyBranch.length>0){const e=r.finallyBranch.map(e=>Kl(e));t.push("finally:"+e.join(" "))}if(r.asyncVariant&&t.push("async-variant:"+r.asyncVariant),r.asyncBody&&r.asyncBody.length>0){const e=r.asyncBody.map(e=>Kl(e));t.push("async-body:"+e.join(" "))}}return`[${t.join(" ")}]`}function Gl(e){switch(e.type){case"literal":return"string"==typeof e.value?"string"===e.dataType||/\s/.test(e.value)?`"${e.value}"`:e.value:e.value+"";case"selector":case"reference":return e.value;case"property-path":return`${Gl(e.object)}'s ${e.property}`;case"expression":return e.raw;case"flag":return e.name}}var Yl=class{constructor(e,t){this.pos=0,this.tokens=e,this.language=t}peek(e=0){const t=this.pos+e;return 0>t||t>=this.tokens.length?null:this.tokens[t]}advance(){if(this.isAtEnd())throw Error("Unexpected end of token stream");return this.tokens[this.pos++]}isAtEnd(){return this.pos>=this.tokens.length}mark(){return{position:this.pos}}reset(e){this.pos=e.position}position(){return this.pos}remaining(){return this.tokens.slice(this.pos)}takeWhile(e){const t=[];for(;!this.isAtEnd()&&e(this.peek());)t.push(this.advance());return t}skipWhile(e){for(;!this.isAtEnd()&&e(this.peek());)this.advance()}};function Zl(e,t){return{start:e,end:t}}function Xl(e,t,r,n){if("object"==typeof e){const{value:t,kind:r,position:n,normalized:i,stem:a,stemConfidence:o,metadata:s}=e;return{value:t,kind:r,position:n,...void 0!==i&&{normalized:i},...void 0!==a&&{stem:a},...void 0!==o&&{stemConfidence:o},...void 0!==s&&{metadata:s}}}const i=e;if(!t||!r)throw Error("createToken requires kind and position parameters");if("string"==typeof n)return{value:i,kind:t,position:r,normalized:n};if(n){const{normalized:e,stem:a,stemConfidence:o,metadata:s}=n;return{value:i,kind:t,position:r,...void 0!==e&&{normalized:e},...void 0!==a&&{stem:a},...void 0!==o&&{stemConfidence:o},...void 0!==s&&{metadata:s}}}return{value:i,kind:t,position:r}}function Jl(e){return/\s/.test(e)}function Ql(e){return/\d/.test(e)}function ec(e){return/[a-zA-Z0-9_-]/.test(e)}function tc(e,t){if(t>=e.length)return null;const r=e[t];if('"'!==(n=r)&&"'"!==n&&"`"!==n&&"「"!==n&&"」"!==n)return null;var n;if("'"===r&&function(e,t){if(t>=e.length||"'"!==e[t])return!1;if(t+1>=e.length)return!1;if("s"!==e[t+1].toLowerCase())return!1;if(t+2>=e.length)return!0;const r=e[t+2];return Jl(r)||"*"===r||!ec(r)}(e,t))return null;const i={'"':'"',"'":"'","`":"`","「":"」"}[r];if(!i)return null;let a=t+1,o=r,s=!1;for(;e.length>a;){const t=e[a];if(o+=t,s)s=!1;else if("\\"===t)s=!0;else if(t===i)return o;a++}return o}function rc(e){return t=>{const r=t.charCodeAt(0);return e.some(([e,t])=>r>=e&&t>=r)}}new Set(["===","!==","->","==","!=","<=",">=","&&","||","**","+=","-=","*=","/=","+","-","*","/","=",">","<","!","&","|","%","^","~"]);var nc=class e{constructor(){this.profileKeywords=[],this.profileKeywordMap=new Map,this.extractors=[]}tokenize(e){if(this.isUsingExtractors())return this.tokenizeWithExtractors(e);throw Error(this.constructor.name+": tokenize() not implemented and no extractors registered. Either register extractors or override tokenize() method.")}registerExtractor(e){Ml(e)&&e.setContext(Wl(this)),this.extractors.push(e)}registerExtractors(e){for(const t of e)this.registerExtractor(t)}clearExtractors(){this.extractors=[]}isUsingExtractors(){return this.extractors.length>0}tokenizeWithExtractors(e){const t=[];let r=0;for(;e.length>r;){for(;e.length>r&&Jl(e[r]);)r++;if(r>=e.length)break;let n=!1;for(const i of this.extractors)if(i.canExtract(e,r)){const a=i.extract(e,r);if(a){const e=a.metadata?.normalized,i=a.metadata?.stem,o=a.metadata?.stemConfidence,s={};if(a.metadata)for(const[e,t]of Object.entries(a.metadata))"normalized"!==e&&"stem"!==e&&"stemConfidence"!==e&&(s[e]=t);const l={};e&&(l.normalized=e),i&&(l.stem=i),void 0!==o&&(l.stemConfidence=o),Object.keys(s).length>0&&(l.metadata=s),t.push(Xl(a.value,this.classifyToken(a.value),Zl(r,r+a.length),Object.keys(l).length>0?l:void 0)),r+=a.length,n=!0;break}}if(!n){const n=e[r],i=this.classifyUnknownChar(n);t.push(Xl(n,i,Zl(r,r+1))),r++}}return new Yl(t,this.language)}classifyUnknownChar(e){return"()[]{},:;".includes(e)?"punctuation":"+-*/<>=!&|".includes(e)?"operator":"identifier"}tryPropertyAccess(e,t,r){if("."!==e[t])return!1;const n=r[r.length-1];if(n&&!(n&&t>n.position.end)&&("identifier"===n.kind||"keyword"===n.kind||"selector"===n.kind))return r.push(Xl(".","operator",Zl(t,t+1))),!0;let i=t+1;for(;e.length>i&&ec(e[i]);)i++;return e.length>i&&"("===e[i]&&(r.push(Xl(".","operator",Zl(t,t+1))),!0)}initializeKeywordsFromProfile(e,t=[]){const r=new Map;if(e.keywords)for(const[t,n]of Object.entries(e.keywords))if(r.set(n.primary,{native:n.primary,normalized:n.normalized||t}),n.alternatives)for(const e of n.alternatives)r.set(e,{native:e,normalized:n.normalized||t});if(e.references){for(const[t,n]of Object.entries(e.references))r.set(n,{native:n,normalized:t});for(const t of Object.keys(e.references))r.has(t)||r.set(t,{native:t,normalized:t})}if(e.roleMarkers)for(const[t,n]of Object.entries(e.roleMarkers))if(n.primary&&r.set(n.primary,{native:n.primary,normalized:t}),n.alternatives)for(const e of n.alternatives)r.set(e,{native:e,normalized:t});if(e.possessive?.keywords)for(const[t,n]of Object.entries(e.possessive.keywords))r.set(t,{native:t,normalized:n});for(const e of t)r.set(e.native,e);this.profileKeywords=Array.from(r.values()).sort((e,t)=>t.native.length-e.native.length),this.profileKeywordMap=new Map;for(const e of this.profileKeywords){this.profileKeywordMap.set(e.native.toLowerCase(),e);const t=this.removeDiacritics(e.native);t===e.native||this.profileKeywordMap.has(t.toLowerCase())||this.profileKeywordMap.set(t.toLowerCase(),e)}}removeDiacritics(e){return e.replace(/[\u064B-\u0652\u0670]/g,"")}tryProfileKeyword(e,t){for(const r of this.profileKeywords)if(e.slice(t).startsWith(r.native))return Xl(r.native,"keyword",Zl(t,t+r.native.length),r.normalized);return null}isKeywordStart(e,t){const r=e.slice(t);return this.profileKeywords.some(e=>r.startsWith(e.native))}lookupKeyword(e){return this.profileKeywordMap.get(e.toLowerCase())}isKeyword(e){return this.profileKeywordMap.has(e.toLowerCase())}setNormalizer(e){this.normalizer=e}tryNormalize(e){if(!this.normalizer)return null;const t=this.normalizer.normalize(e);return t.stem===e||.7>t.confidence?null:t}tryMorphKeywordMatch(e,t,r){const n=this.tryNormalize(e);if(!n)return null;const i=this.lookupKeyword(n.stem);if(!i)return null;const a={normalized:i.normalized,stem:n.stem,stemConfidence:n.confidence};return Xl(e,"keyword",Zl(t,r),a)}trySelector(e,t){const r=function(e,t){if(t>=e.length)return null;const r=e[t];if(!function(e){return"#"===e||"."===e||"["===e||"@"===e||"*"===e||"<"===e}(r))return null;let n=t,i="";if("#"===r||"."===r){for(i+=e[n++];e.length>n&&ec(e[n]);)i+=e[n++];if(1>=i.length)return null;if(e.length>n&&"."===e[n]&&"#"===r){let t=n+1;for(;e.length>t&&ec(e[t]);)t++;if(e.length>t&&"("===e[t])return i}}else if("["===r){let t=1,r=!1,a=null,o=!1;for(i+=e[n++];e.length>n&&t>0;){const s=e[n];i+=s,o?o=!1:"\\"===s?o=!0:r?s===a&&(r=!1,a=null):'"'===s||"'"===s||"`"===s?(r=!0,a=s):"["===s?t++:"]"===s&&t--,n++}if(0!==t)return null}else if("@"===r){for(i+=e[n++];e.length>n&&ec(e[n]);)i+=e[n++];if(1>=i.length)return null}else if("*"===r){for(i+=e[n++];e.length>n&&ec(e[n]);)i+=e[n++];if(1>=i.length)return null}else if("<"===r){if(i+=e[n++],n>=e.length||!function(e){return/[a-zA-Z]/.test(e)}(e[n]))return null;for(;e.length>n&&ec(e[n]);)i+=e[n++];for(;e.length>n;){const t=e[n];if("."===t){if(i+=e[n++],n>=e.length||!ec(e[n]))return null;for(;e.length>n&&ec(e[n]);)i+=e[n++]}else if("#"===t){if(i+=e[n++],n>=e.length||!ec(e[n]))return null;for(;e.length>n&&ec(e[n]);)i+=e[n++]}else{if("["!==t)break;{let t=1,r=!1,a=null,o=!1;for(i+=e[n++];e.length>n&&t>0;){const s=e[n];i+=s,o?o=!1:"\\"===s?o=!0:r?s===a&&(r=!1,a=null):'"'===s||"'"===s||"`"===s?(r=!0,a=s):"["===s?t++:"]"===s&&t--,n++}if(0!==t)return null}}}for(;e.length>n&&Jl(e[n]);)i+=e[n++];if(e.length>n&&"/"===e[n])for(i+=e[n++];e.length>n&&Jl(e[n]);)i+=e[n++];if(n>=e.length||">"!==e[n])return null;i+=e[n++]}return i||null}(e,t);return r?Xl(r,"selector",Zl(t,t+r.length)):null}tryEventModifier(e,t){if("."!==e[t])return null;const r=e.slice(t).match(/^\.(?:once|debounce|throttle|queue)(?:\(([^)]+)\))?(?:\s|$|\.)/);if(!r)return null;const n=r[0].replace(/(\s|\.)$/,""),i=n.slice(1).split("(")[0],a=r[1];return{...Xl(n,"event-modifier",Zl(t,t+n.length)),metadata:{modifierName:i,value:a?"queue"===i?a:parseInt(a,10):void 0}}}tryString(e,t){const r=tc(e,t);return r?Xl(r,"literal",Zl(t,t+r.length)):null}tryNumber(e,t){const r=function(e,t){if(t>=e.length)return null;const r=e[t];if(!Ql(r)&&"-"!==r&&"+"!==r)return null;let n=t,i="";if("-"!==e[n]&&"+"!==e[n]||(i+=e[n++]),n>=e.length||!Ql(e[n]))return null;for(;e.length>n&&Ql(e[n]);)i+=e[n++];if(e.length>n&&"."===e[n])for(i+=e[n++];e.length>n&&Ql(e[n]);)i+=e[n++];e.length>n&&("ms"===e.slice(n,n+2)?i+="ms":"s"!==e[n]&&"m"!==e[n]&&"h"!==e[n]||(i+=e[n]));return i}(e,t);return r?Xl(r,"literal",Zl(t,t+r.length)):null}tryMatchTimeUnit(e,t,r,n=!1){let i=t;if(n)for(;e.length>i&&Jl(e[i]);)i++;const a=e.slice(i);for(const e of r){const t=a.slice(0,e.length);if(e.caseInsensitive?t.toLowerCase()===e.pattern.toLowerCase():t===e.pattern){if(e.notFollowedBy){if((a[e.length]||"")===e.notFollowedBy)continue}if(e.checkBoundary){if(ec(a[e.length]||""))continue}return{suffix:e.suffix,endPos:i+e.length}}}return null}parseBaseNumber(e,t,r=!0){let n=t,i="";if(!r||"-"!==e[n]&&"+"!==e[n]||(i+=e[n++]),n>=e.length||!Ql(e[n]))return null;for(;e.length>n&&Ql(e[n]);)i+=e[n++];if(e.length>n&&"."===e[n])for(i+=e[n++];e.length>n&&Ql(e[n]);)i+=e[n++];return i&&"-"!==i&&"+"!==i?{number:i,endPos:n}:null}tryNumberWithTimeUnits(t,r,n,i={}){const{allowSign:a=!0,skipWhitespace:o=!1}=i,s=this.parseBaseNumber(t,r,a);if(!s)return null;let{number:l,endPos:c}=s;const u=[...n,...e.STANDARD_TIME_UNITS],p=this.tryMatchTimeUnit(t,c,u,o);return p&&(l+=p.suffix,c=p.endPos),Xl(l,"literal",Zl(r,c))}tryUrl(e,t){const r=function(e,t){if(!function(e,t){if(t>=e.length)return!1;const r=e[t],n=e[t+1]||"",i=e[t+2]||"";if("/"===r&&"/"!==n&&/[a-zA-Z0-9._-]/.test(n))return!0;if("/"===r&&"/"===n&&/[a-zA-Z]/.test(i))return!0;if("."===r&&("/"===n||"."===n&&"/"===i))return!0;const a=e.slice(t,t+8).toLowerCase();return!(!a.startsWith("http://")&&!a.startsWith("https://"))}(e,t))return null;let r=t,n="";const i=/[a-zA-Z0-9/:._\-?&=%@+~!$'()*,;[\]]/;for(;e.length>r;){const t=e[r];if("#"===t){if(n.length>0&&/[a-zA-Z0-9/.]$/.test(n))for(n+=t,r++;e.length>r&&/[a-zA-Z0-9_-]/.test(e[r]);)n+=e[r++];break}if(!i.test(t))break;n+=t,r++}return 2>n.length?null:n}(e,t);return r?Xl(r,"url",Zl(t,t+r.length)):null}tryVariableRef(e,t){if(":"!==e[t])return null;if(t+1>=e.length)return null;if(!ec(e[t+1]))return null;let r=t+1;for(;e.length>r&&ec(e[r]);)r++;return Xl(e.slice(t,r),"identifier",Zl(t,r))}tryOperator(e,t){const r=e.slice(t,t+2);if(["==","!=","<=",">=","&&","||","->"].includes(r))return Xl(r,"operator",Zl(t,t+2));const n=e[t];return["<",">","!","+","-","*","/","="].includes(n)?Xl(n,"operator",Zl(t,t+1)):["(",")","{","}",",",";",":"].includes(n)?Xl(n,"punctuation",Zl(t,t+1)):null}tryMultiCharParticle(e,t,r){for(const n of r)if(e.slice(t,t+n.length)===n)return Xl(n,"particle",Zl(t,t+n.length));return null}};nc.STANDARD_TIME_UNITS=[{pattern:"ms",suffix:"ms",length:2},{pattern:"s",suffix:"s",length:1,checkBoundary:!0},{pattern:"m",suffix:"m",length:1,checkBoundary:!0,notFollowedBy:"s"},{pattern:"h",suffix:"h",length:1,checkBoundary:!0}];var ic=nc;function ac(e){return{stem:e,confidence:1}}function oc(e,t,r){return r?{stem:e,confidence:t,metadata:r}:{stem:e,confidence:t}}var sc,lc,cc,uc,pc,mc=Object.defineProperty,dc=Object.getOwnPropertyDescriptor,hc=Object.getOwnPropertyNames,fc=Object.prototype.hasOwnProperty,yc=(e,t)=>function(){return e&&(t=(0,e[hc(e)[0]])(e=0)),t},vc=(e,t)=>{for(var r in t)mc(e,r,{get:t[r],enumerable:!0})},gc=e=>((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of hc(t))fc.call(e,i)||i===r||mc(e,i,{get:()=>t[i],enumerable:!(n=dc(t,i))||n.enumerable});return e})(mc({},"__esModule",{value:!0}),e);function kc(e,t){const r={...e};for(const n of Object.keys(t)){const i=t[n],a=e[n];void 0!==i&&(r[n]="object"!=typeof i||null===i||Array.isArray(i)||"object"!=typeof a||null===a||Array.isArray(a)?i:kc(a,i))}return r}function bc(e,t){return kc(e,t)}function wc(e){if(!e.extends)return e;const t=lc.get(e.extends);if(!t)return e;return bc(wc(t),e)}function zc(e,t,r){sc.set(e,t),lc.set(e,r),cc.delete(e)}function xc(e,t){pc.set(e,t),cc.delete(e)}function Ec(e){return e.split("-")[0]}function Tc(e){return e.includes("-")}function Sc(e){let t=lc.get(e);return!t&&Tc(e)&&(t=lc.get(Ec(e))),t?wc(t):void 0}function Cc(){return Array.from(sc.keys())}function Ac(e){if(sc.has(e)&&lc.has(e))return!0;if(Tc(e)){const t=Ec(e);return sc.has(t)&&lc.has(t)}return!1}function Lc(e,t){return function(e){let t=sc.get(e);if(!t&&Tc(e)){const r=Ec(e);t=sc.get(r)}if(!t){const t=Array.from(sc.keys()).join(", ");throw Error(`Language '${e}' is not registered. Registered languages: ${t||"none"}. Import the language module first: import '@lokascript/semantic/languages/${e}';`)}return t}(t).tokenize(e)}function jc(e){let t=cc.get(e);if(!t&&Tc(e)&&(t=cc.get(Ec(e))),t)return t;let r=pc.get(e);if(!r&&Tc(e)&&(r=pc.get(Ec(e))),r)return cc.set(e,r),r;if(!uc)throw Error(`No patterns registered for language '${e}'. Either import the language module or set a pattern generator.`);const n=function(e){let t=lc.get(e);if(!t&&Tc(e)){const r=Ec(e);t=lc.get(r)}if(!t){const t=Array.from(lc.keys()).join(", ");throw Error(`Language profile '${e}' is not registered. Registered languages: ${t||"none"}. Import the language module first: import '@lokascript/semantic/languages/${e}';`)}return wc(t)}(e),i=uc(n);return cc.set(e,i),i}var Pc,Nc,Oc,Ic,Rc,Mc=yc({"src/registry.ts"(){sc=new Map,lc=new Map,cc=new Map,uc=null,pc=new Map}}),Wc=yc({"src/tokenizers/token-utils.ts"(){}}),qc=yc({"src/tokenizers/char-classifiers.ts"(){}}),_c=yc({"src/tokenizers/base-tokenizer.ts"(){}}),$c=yc({"src/tokenizers/base.ts"(){Wc(),qc(),_c()}}),Dc=yc({"src/tokenizers/morphology/types.ts"(){}});function Vc(e){const t=e.charCodeAt(0);return t>=1536&&1791>=t||t>=1872&&1919>=t||t>=2208&&2303>=t||t>=64336&&65023>=t||t>=65136&&65279>=t}var Hc,Bc=yc({"src/tokenizers/morphology/arabic-normalizer.ts"(){Dc(),Pc=[{pattern:"وال",confidencePenalty:.15,prefixType:"conjunction"},{pattern:"فال",confidencePenalty:.15,prefixType:"conjunction"},{pattern:"بال",confidencePenalty:.15,prefixType:"preposition"},{pattern:"كال",confidencePenalty:.15,prefixType:"preposition"},{pattern:"لل",confidencePenalty:.12,prefixType:"preposition"}],Nc=[{pattern:"ال",confidencePenalty:.08,prefixType:"article",minRemaining:2},{pattern:"و",confidencePenalty:.08,prefixType:"conjunction",minRemaining:3},{pattern:"ف",confidencePenalty:.08,prefixType:"conjunction",minRemaining:3},{pattern:"ب",confidencePenalty:.1,prefixType:"preposition",minRemaining:3},{pattern:"ل",confidencePenalty:.1,prefixType:"preposition",minRemaining:3},{pattern:"ك",confidencePenalty:.1,prefixType:"preposition",minRemaining:3}],Oc=[{pattern:"ي",confidencePenalty:.12,prefixType:"verb-marker",minRemaining:3},{pattern:"ت",confidencePenalty:.12,prefixType:"verb-marker",minRemaining:3},{pattern:"ن",confidencePenalty:.12,prefixType:"verb-marker",minRemaining:3},{pattern:"أ",confidencePenalty:.12,prefixType:"verb-marker",minRemaining:3},{pattern:"ا",confidencePenalty:.12,prefixType:"verb-marker",minRemaining:3}],Ic=[{pattern:"ون",confidencePenalty:.1,type:"masculine-plural"},{pattern:"ين",confidencePenalty:.1,type:"masculine-plural-accusative"},{pattern:"ات",confidencePenalty:.1,type:"feminine-plural"},{pattern:"ان",confidencePenalty:.1,type:"dual-nominative"},{pattern:"ين",confidencePenalty:.1,type:"dual-accusative"},{pattern:"ها",confidencePenalty:.1,type:"pronoun-her"},{pattern:"هم",confidencePenalty:.1,type:"pronoun-them"},{pattern:"هن",confidencePenalty:.1,type:"pronoun-them-f"},{pattern:"نا",confidencePenalty:.1,type:"pronoun-us"},{pattern:"كم",confidencePenalty:.1,type:"pronoun-you-pl"},{pattern:"ك",confidencePenalty:.08,type:"pronoun-you"},{pattern:"ه",confidencePenalty:.08,type:"pronoun-him"},{pattern:"ي",confidencePenalty:.08,type:"pronoun-me"},{pattern:"ة",confidencePenalty:.08,type:"feminine"}],new(Rc=class{constructor(){this.language="ar"}isNormalizable(e){return!!function(e){for(const t of e)if(Vc(t))return!0;return!1}(e)&&2<=e.length}normalize(e){let t=function(e){return e.replace(/[\u064B-\u0652\u0670]/g,"")}(e),r=1;const n=[],i=[];for(const e of Pc)if(t.startsWith(e.pattern)){const i=t.slice(e.pattern.length);if(i.length>=2){t=i,r-=e.confidencePenalty,n.push(e.pattern);break}}if(0===n.length)for(const e of Nc)if(t.startsWith(e.pattern)){const i=t.slice(e.pattern.length);if(i.length>=(e.minRemaining??2)){t=i,r-=e.confidencePenalty,n.push(e.pattern);break}}if(!(t.endsWith("ات")||t.endsWith("ة")||t.endsWith("ون")||t.endsWith("ين")||t.endsWith("ها")||t.endsWith("هم")||t.endsWith("هن")||t.endsWith("نا")||t.endsWith("كم"))&&(0===n.length||"و"===n[0]||"ف"===n[0]))for(const e of Oc)if(t.startsWith(e.pattern)){const i=t.slice(e.pattern.length);if(i.length>=(e.minRemaining??3)){t=i,r-=e.confidencePenalty,n.push(e.pattern);break}}for(const e of Ic)if(t.endsWith(e.pattern)){const n=t.slice(0,-e.pattern.length);2>n.length||(t=n,r-=e.confidencePenalty,i.push(e.pattern))}return r=Math.max(.5,r),0===n.length&&0===i.length?ac(e):oc(t,r,{removedPrefixes:n,removedSuffixes:i})}})}}),Fc={};vc(Fc,{arabicProfile:()=>Hc});var Uc,Kc,Gc,Yc=yc({"src/generators/profiles/arabic.ts"(){Hc={code:"ar",name:"Arabic",nativeName:"العربية",direction:"rtl",script:"arabic",wordOrder:"VSO",markingStrategy:"preposition",usesSpaces:!0,verb:{position:"start",subjectDrop:!0},references:{me:"أنا",it:"هو",you:"أنت",result:"النتيجة",event:"الحدث",target:"الهدف",body:"الجسم"},possessive:{marker:"",markerPosition:"after-object",usePossessiveAdjectives:!0,specialForms:{me:"لي",it:"له",you:"لك"},keywords:{"لي":"me","لك":"you","له":"it","لها":"it"}},roleMarkers:{destination:{primary:"على",alternatives:["في","إلى","ب","قبل","بعد"],position:"before"},source:{primary:"من",position:"before"},patient:{primary:"",position:"before"},style:{primary:"بـ",alternatives:["باستخدام"],position:"before"}},keywords:{toggle:{primary:"بدّل",alternatives:["بدل","غيّر","غير"],normalized:"toggle"},add:{primary:"أضف",alternatives:["اضف"],normalized:"add"},remove:{primary:"احذف",alternatives:["أزل","امسح"],normalized:"remove"},put:{primary:"ضع",alternatives:["اجعل"],normalized:"put"},append:{primary:"ألحق",normalized:"append"},prepend:{primary:"سبق",normalized:"prepend"},take:{primary:"خذ",normalized:"take"},make:{primary:"اصنع",alternatives:["أنشئ"],normalized:"make"},clone:{primary:"استنسخ",normalized:"clone"},swap:{primary:"استبدل",alternatives:["تبادل"],normalized:"swap"},morph:{primary:"حوّل",normalized:"morph"},set:{primary:"اضبط",alternatives:["عيّن","حدد"],normalized:"set"},get:{primary:"احصل",normalized:"get"},increment:{primary:"زِد",alternatives:["زد","ارفع"],normalized:"increment"},decrement:{primary:"أنقص",alternatives:["انقص","قلل"],normalized:"decrement"},log:{primary:"سجل",normalized:"log"},show:{primary:"اظهر",alternatives:["أظهر","اعرض"],normalized:"show"},hide:{primary:"اخف",alternatives:["أخفِ","اخفي","أخف"],normalized:"hide"},transition:{primary:"انتقال",alternatives:["انتقل"],normalized:"transition"},on:{primary:"على",alternatives:["عند","لدى","حين"],normalized:"on"},trigger:{primary:"تشغيل",alternatives:["أطلق","فعّل"],normalized:"trigger"},send:{primary:"أرسل",normalized:"send"},focus:{primary:"تركيز",alternatives:["ركز"],normalized:"focus"},blur:{primary:"ضبابية",alternatives:["شوش"],normalized:"blur"},go:{primary:"اذهب",normalized:"go"},wait:{primary:"انتظر",normalized:"wait"},fetch:{primary:"احضر",alternatives:["جلب"],normalized:"fetch"},settle:{primary:"استقر",normalized:"settle"},if:{primary:"إذا",normalized:"if"},when:{primary:"عندما",normalized:"when"},where:{primary:"أين",normalized:"where"},else:{primary:"وإلا",alternatives:["خلاف ذلك"],normalized:"else"},repeat:{primary:"كرر",normalized:"repeat"},for:{primary:"لكل",normalized:"for"},while:{primary:"بينما",normalized:"while"},continue:{primary:"واصل",normalized:"continue"},halt:{primary:"أوقف",normalized:"halt"},throw:{primary:"ارم",alternatives:["ارمِ"],normalized:"throw"},call:{primary:"استدع",alternatives:["نادِ"],normalized:"call"},return:{primary:"ارجع",alternatives:["عُد"],normalized:"return"},then:{primary:"ثم",alternatives:["بعدها","ثمّ"],normalized:"then"},and:{primary:"وأيضاً",alternatives:["أيضاً"],normalized:"and"},end:{primary:"نهاية",alternatives:["انتهى","آخر"],normalized:"end"},js:{primary:"جافاسكربت",alternatives:["js"],normalized:"js"},async:{primary:"متزامن",normalized:"async"},tell:{primary:"أخبر",normalized:"tell"},default:{primary:"افتراضي",normalized:"default"},init:{primary:"تهيئة",alternatives:["بدء"],normalized:"init"},behavior:{primary:"سلوك",normalized:"behavior"},install:{primary:"تثبيت",alternatives:["ثبّت"],normalized:"install"},measure:{primary:"قياس",alternatives:["قِس"],normalized:"measure"},beep:{primary:"صفّر",normalized:"beep"},break:{primary:"توقف",normalized:"break"},copy:{primary:"انسخ",normalized:"copy"},exit:{primary:"اخرج",normalized:"exit"},pick:{primary:"اختر",normalized:"pick"},render:{primary:"ارسم",normalized:"render"},into:{primary:"في",alternatives:["إلى"],normalized:"into"},before:{primary:"قبل",normalized:"before"},after:{primary:"بعد",normalized:"after"},until:{primary:"حتى",normalized:"until"},event:{primary:"حدث",normalized:"event"},from:{primary:"من",normalized:"from"}},tokenization:{prefixes:["ال","و","ف","ب","ك","ل"]},eventHandler:{eventMarker:{primary:"عند",alternatives:["في","لدى","عندما","حين","حينما","لمّا","لما"],position:"before"},temporalMarkers:["عندما","حين","لمّا"],negationMarker:{primary:"عدم",alternatives:["عدم"],position:"before"}}}}});var Zc,Xc=yc({"src/tokenizers/generic-extractors.ts"(){Uc=["===","!==","->","==","!=","<=",">=","&&","||","**","+=","-=","*=","/=","+","-","*","/","=",">","<","!","&","|","%","^","~"],Kc=class{constructor(e=Uc){this.name="operator",this.operators=[...e].sort((e,t)=>t.length-e.length)}canExtract(e,t){return this.operators.some(r=>e.startsWith(r,t))}extract(e,t){for(const r of this.operators)if(e.startsWith(r,t))return{value:r,length:r.length};return null}},Gc=class{constructor(e="()[]{},:;"){this.punctuation=e,this.name="punctuation"}canExtract(e,t){return this.punctuation.includes(e[t])}extract(e,t){const r=e[t];return this.punctuation.includes(r)?{value:r,length:1}:null}}}});var Jc,Qc,eu=yc({"src/tokenizers/extractors/css-selector.ts"(){Zc=class{constructor(){this.name="css-selector"}canExtract(e,t){const r=e[t];return"#"===r||"."===r||"["===r||"<"===r}extract(e,t){const r=function(e,t){const r=e[t];if("#"===r){const r=e.slice(t).match(/^#[a-zA-Z_][\w-]*/);return r?r[0]:null}if("."===r){const r=e.slice(t).match(/^\.[a-zA-Z_][\w-]*/);return r?r[0]:null}if("["===r){let r=0,n=t;for(;e.length>n;){if("["===e[n]&&r++,"]"===e[n]&&(r--,0===r))return e.slice(t,n+1);n++}return null}if("<"===r){const r=e.slice(t).match(/^<[\w-]+(?:[#.][\w-]+|\[[^\]]+\])*\s*\/>/);return r?r[0]:null}return null}(e,t);return r?{value:r,length:r.length,metadata:{type:"css-selector"}}:null}}}}),tu=yc({"src/tokenizers/extractors/event-modifier.ts"(){Jc=class{constructor(){this.name="event-modifier"}canExtract(e,t){if("."!==e[t])return!1;const r=e.slice(t);return/^\.(once|prevent|stop|debounce|throttle|queue)/.test(r)}extract(e,t){const r=e.slice(t).match(/^\.(?:once|prevent|stop|debounce|throttle|queue)(?:\(([^)]+)\))?/);if(!r)return null;const n=r[0],i=n.slice(1).split("(")[0],a=r[1];return{value:n,length:n.length,metadata:{modifierName:i,value:a?"queue"===i?a:parseInt(a,10):void 0}}}}}});var ru,nu,iu=yc({"src/tokenizers/extractors/url.ts"(){Qc=class{constructor(){this.name="url"}canExtract(e,t){const r=e.slice(t);return r.startsWith("http://")||r.startsWith("https://")||r.startsWith("//")||r.startsWith("./")||r.startsWith("../")||r.startsWith("/")}extract(e,t){const r=function(e,t){const r=e.slice(t);if(r.startsWith("http://")||r.startsWith("https://")){const e=r.match(/^https?:\/\/[^\s]*/);return e?e[0]:null}if(r.startsWith("//")){const e=r.match(/^\/\/[^\s]*/);return e?e[0]:null}if(r.startsWith("./")||r.startsWith("../")){const e=r.match(/^\.\.?\/[^\s]*/);return e?e[0]:null}if(r.startsWith("/")){const e=r.match(/^\/[^\s]*/);return e?e[0]:null}return null}(e,t);return r?{value:r,length:r.length,metadata:{type:"url"}}:null}}}}),au=yc({"src/tokenizers/extractors/variable-ref.ts"(){ru=class{constructor(){this.name="variable-ref"}canExtract(e,t){return":"===e[t]&&e.length>t+1&&/[a-zA-Z_]/.test(e[t+1])}extract(e,t){if(!this.canExtract(e,t))return null;let r=1;for(;e.length>t+r&&/[a-zA-Z0-9_]/.test(e[t+r]);)r++;return{value:e.substring(t,t+r),length:r,metadata:{type:"variable-reference"}}}}}});function ou(e){return function(e){const t=e.charCodeAt(0);return t>=12352&&12447>=t}(e)||function(e){const t=e.charCodeAt(0);return t>=12448&&12543>=t}(e)||function(e){const t=e.charCodeAt(0);return t>=19968&&40879>=t||t>=13312&&19903>=t}(e)}var su,lu,cu,uu,pu,mu=yc({"src/tokenizers/extractors/japanese-keyword.ts"(){nu=class{constructor(){this.name="japanese-keyword"}setContext(e){this.context=e}canExtract(e,t){return ou(e[t])}extract(e,t){if(!this.context)throw Error("JapaneseKeywordExtractor: context not set");const r=t;this.context.isKeywordStart(e,t);let n="",i=t;for(;e.length>i&&ou(e[i]);)n+=e[i],i++;let a=n,o=n.length;for(let e=n.length;e>0;e--){const t=n.substring(0,e);if(this.context.lookupKeyword(t)){a=t,o=e;break}}if(n=a,i=t+o,!n)return null;const s=this.context.lookupKeyword(n),l=s&&s.normalized!==s.native?s.normalized:void 0;let c;if(!s&&this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const t=this.context.lookupKeyword(e.stem);t&&(c=t.normalized)}}return{value:n,length:i-r,metadata:{normalized:l||c}}}}}}),du=yc({"src/tokenizers/extractors/japanese-particle.ts"(){su=new Map([["を",{role:"patient",confidence:.95}],["に",{role:"destination",confidence:.85}],["が",{role:"subject",confidence:.9}],["の",{role:"possessive",confidence:.9}],["と",{role:"conjunction",confidence:.8}],["で",{role:"instrument",confidence:.85}],["へ",{role:"direction",confidence:.85}],["や",{role:"listing",confidence:.8}],["か",{role:"question",confidence:.85}],["も",{role:"also",confidence:.85}],["は",{role:"topic",confidence:.9}]]),lu=new Map([["から",{role:"source",confidence:.95}],["まで",{role:"until",confidence:.95}],["より",{role:"comparison",confidence:.9}],["として",{role:"as",confidence:.9}],["について",{role:"about",confidence:.9}],["によって",{role:"by-means",confidence:.9}],["にて",{role:"at-location",confidence:.85}]]),cu=class{constructor(){this.name="japanese-particle"}setContext(e){this._context=e}canExtract(e,t){if(su.has(e[t]))return!0;for(const[r]of lu)if(e.startsWith(r,t))return!0;return!1}extract(e,t){for(const[r,n]of lu)if(e.startsWith(r,t))return{value:r,length:r.length,metadata:{role:n.role,confidence:n.confidence,variant:r}};const r=e[t],n=su.get(r);return n?{value:r,length:1,metadata:{role:n.role,confidence:n.confidence,variant:r}}:null}}}});function hu(e){return function(e){const t=e.charCodeAt(0);return t>=44032&&55203>=t}(e)||function(e){const t=e.charCodeAt(0);return t>=4352&&4607>=t||t>=12592&&12687>=t}(e)}var fu,yu,vu,gu,ku=yc({"src/tokenizers/extractors/korean-keyword.ts"(){uu=["할때","하면","하니까","할 때"],pu=class{constructor(){this.name="korean-keyword"}setContext(e){this.context=e}canExtract(e,t){return hu(e[t])}extract(e,t){if(!this.context)throw Error("KoreanKeywordExtractor: context not set");const r=t;for(let t=Math.min(6,e.length-r);t>=2;t--){const n=e.slice(r,r+t);let i=!0;for(let e=0;n.length>e;e++)if(!hu(n[e])){i=!1;break}if(!i)continue;const a=this.context.lookupKeyword(n);if(a)return{value:n,length:t,metadata:{normalized:a.normalized!==a.native?a.normalized:void 0}};if(this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const r=this.context.lookupKeyword(e.stem);if(r)return{value:n,length:t,metadata:{normalized:r.normalized,stem:e.stem,stemConfidence:e.confidence}}}}}let n="",i=t;for(;e.length>i&&hu(e[i])&&(0>=n.length||!this.context.isKeywordStart(e,i));)n+=e[i],i++;if(!n)return null;for(const e of uu)if(n.endsWith(e)&&n.length>e.length){const t=n.slice(0,-e.length),r=this.context.lookupKeyword(t);if(r)return{value:t,length:t.length,metadata:{normalized:r.normalized,hasSuffix:!0,suffix:e,stem:t}}}const a=this.context.lookupKeyword(n),o=a&&a.normalized!==a.native?a.normalized:void 0;let s,l,c;if(n.includes("토글"),!a&&this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const t=this.context.lookupKeyword(e.stem);t&&(s=t.normalized,l=e.stem,c=e.confidence,n.includes("토글"))}}return{value:n,length:i-r,metadata:{normalized:o||s,stem:l,stemConfidence:c}}}}}}),bu=yc({"src/tokenizers/extractors/korean-particle.ts"(){fu=new Map([["이",{role:"agent",confidence:.85,variant:"consonant",description:"subject marker (after consonant)"}],["가",{role:"agent",confidence:.85,variant:"vowel",description:"subject marker (after vowel)"}],["을",{role:"patient",confidence:.95,variant:"consonant",description:"object marker (after consonant)"}],["를",{role:"patient",confidence:.95,variant:"vowel",description:"object marker (after vowel)"}],["은",{role:"agent",confidence:.75,variant:"consonant",description:"topic marker (after consonant)"}],["는",{role:"agent",confidence:.75,variant:"vowel",description:"topic marker (after vowel)"}],["에",{role:"destination",confidence:.85,description:"at/to marker"}],["로",{role:"destination",confidence:.85,variant:"vowel",description:"to/by means (after vowel or ㄹ)"}],["와",{role:"style",confidence:.7,variant:"vowel",description:"and/with (after vowel)"}],["과",{role:"style",confidence:.7,variant:"consonant",description:"and/with (after consonant)"}],["의",{role:"patient",confidence:.6,description:"possessive marker"}],["도",{role:"patient",confidence:.65,description:"also/too marker"}],["만",{role:"patient",confidence:.65,description:"only marker"}]]),yu=new Map([["에서",{role:"source",confidence:.8,description:"at/from marker (action location)"}],["으로",{role:"destination",confidence:.85,variant:"consonant",description:"to/by means (after consonant)"}],["부터",{role:"source",confidence:.9,description:"from/since marker"}],["까지",{role:"destination",confidence:.75,description:"until/to marker"}],["처럼",{role:"manner",confidence:.8,description:"like/as marker"}],["보다",{role:"source",confidence:.75,description:"than marker"}]]),vu=class{constructor(){this.name="korean-particle"}setContext(e){this._context=e}canExtract(e,t){if(fu.has(e[t]))return!0;for(const[r]of yu)if(e.startsWith(r,t))return!0;return!1}extract(e,t){for(const[r,n]of yu)if(e.startsWith(r,t))return{value:r,length:r.length,metadata:{particleRole:n.role,particleConfidence:n.confidence,particleVariant:n.variant}};const r=e[t],n=fu.get(r);return n?{value:r,length:1,metadata:{particleRole:n.role,particleConfidence:n.confidence,particleVariant:n.variant}}:null}}}});function wu(e){const t=e.charCodeAt(0);return t>=19968&&40959>=t||t>=13312&&19903>=t||t>=63744&&64255>=t||t>=131072&&173791>=t||t>=173824&&177983>=t||t>=177984&&178207>=t||t>=178208&&183983>=t||t>=183984&&191471>=t||t>=194560&&195103>=t}var zu,xu,Eu,Tu,Su,Cu,Au,Lu=yc({"src/tokenizers/extractors/chinese-keyword.ts"(){gu=class{constructor(){this.name="chinese-keyword"}setContext(e){this.context=e}canExtract(e,t){return wu(e[t])}extract(e,t){if(!this.context)throw Error("ChineseKeywordExtractor: context not set");const r=t;let n=null;if(this.context.isKeywordStart(e,t))for(let r=10;r>=1;r--){const i=e.slice(t,t+r);if([...i].every(e=>wu(e))){const e=this.context.lookupKeyword(i);if(e){n={word:i,entry:e};break}}}if(n)return{value:n.word,length:n.word.length,metadata:{normalized:n.entry.normalized}};let i="",a=t;for(;e.length>a&&wu(e[a])&&(i+=e[a],a++,a>=e.length||!this.context.isKeywordStart(e,a)););return i?{value:i,length:a-r,metadata:{}}:null}}}}),ju=yc({"src/tokenizers/extractors/chinese-particle.ts"(){zu=new Map([["把",{role:"patient",confidence:.95,description:"ba-construction object marker"}],["在",{role:"location",confidence:.85,description:"at/in/on location marker"}],["从",{role:"source",confidence:.9,description:"from marker"}],["到",{role:"destination",confidence:.9,description:"to/until marker"}],["向",{role:"destination",confidence:.85,description:"towards marker"}],["给",{role:"destination",confidence:.85,description:"to/for recipient marker"}],["对",{role:"destination",confidence:.8,description:"to/towards marker"}],["用",{role:"instrument",confidence:.85,description:"with/using marker"}],["被",{role:"agent",confidence:.8,description:"by (passive) marker"}],["让",{role:"agent",confidence:.75,description:"let/make causative marker"}],["的",{role:"possessive",confidence:.9,description:"possessive/attributive marker"}],["地",{role:"manner",confidence:.85,description:"adverbial marker"}],["得",{role:"manner",confidence:.8,description:"complement marker"}],["了",{role:"aspect",confidence:.7,description:"completion aspect marker"}],["着",{role:"aspect",confidence:.7,description:"progressive aspect marker"}],["过",{role:"aspect",confidence:.7,description:"experiential aspect marker"}],["吗",{role:"mood",confidence:.75,description:"question particle"}],["呢",{role:"mood",confidence:.7,description:"question/emphasis particle"}],["吧",{role:"mood",confidence:.7,description:"suggestion particle"}]]),xu=new Map([["然后",{role:"sequence",confidence:.9,description:"then/afterwards"}],["接着",{role:"sequence",confidence:.85,description:"next/following"}],["并且",{role:"conjunction",confidence:.85,description:"and/moreover"}],["或者",{role:"conjunction",confidence:.85,description:"or"}],["如果",{role:"condition",confidence:.9,description:"if"}],["那么",{role:"consequence",confidence:.85,description:"then"}],["否则",{role:"alternative",confidence:.85,description:"otherwise"}]]),Eu=class{constructor(){this.name="chinese-particle"}setContext(e){this._context=e}canExtract(e,t){if(zu.has(e[t]))return!0;for(const[r]of xu)if(e.startsWith(r,t))return!0;return!1}extract(e,t){for(const[r,n]of xu)if(e.startsWith(r,t))return{value:r,length:r.length,metadata:{particleRole:n.role,particleConfidence:n.confidence,particleDescription:n.description}};const r=e[t],n=zu.get(r);return n?{value:r,length:1,metadata:{particleRole:n.role,particleConfidence:n.confidence,particleDescription:n.description}}:null}}}});var Pu,Nu,Ou,Iu,Ru,Mu,Wu,qu,_u,$u,Du,Vu,Hu=yc({"src/tokenizers/extractors/vietnamese-keyword.ts"(){var e;({isLetter:Tu,isIdentifierChar:Su}=(e=/[a-zA-ZàáảãạăằắẳẵặâầấẩẫậèéẻẽẹêềếểễệìíỉĩịòóỏõọôồốổỗộơờớởỡợùúủũụưừứửữựỳýỷỹỵđÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÈÉẺẼẸÊỀẾỂỄỆÌÍỈĨỊÒÓỎÕỌÔỒỐỔỖỘƠỜỚỞỠỢÙÚỦŨỤƯỪỨỬỮỰỲÝỶỸỴĐ]/,{isLetter:t=>e.test(t),isIdentifierChar:t=>/[0-9]/.test(t)||e.test(t)})),Cu=new Set(["trong","ngoài","trên","dưới","vào","ra","đến","từ","với","cho","bởi","qua","trước","sau","giữa","bên","theo","về","tới","lên","xuống"]),Au=class{constructor(){this.name="vietnamese-keyword"}setContext(e){this.context=e}canExtract(e,t){return Tu(e[t])}extract(e,t){if(!this.context)throw Error("VietnameseKeywordExtractor: context not set");const r=this.tryMultiWordPhrase(e,t);if(r)return r;let n=t,i="";for(;e.length>n&&Su(e[n]);)i+=e[n++];if(!i)return null;const a=i.toLowerCase(),o=Cu.has(a),s=this.context.lookupKeyword(a);return{value:i,length:n-t,metadata:{normalized:s&&s.normalized!==s.native?s.normalized:void 0,isPreposition:o}}}tryMultiWordPhrase(e,t){if(!this.context)return null;const r=["chuyển đổi","bật tắt","hiển thị","gỡ bỏ","loại bỏ","bổ sung","thêm vào đầu","hoán đổi","biến đổi","thiết lập","lấy giá trị","tăng lên","giảm đi","in ra","chuyển tiếp","kích hoạt","tập trung","mất tập trung","nhấp chuột","di chuột","rê chuột","nhập liệu","thay đổi","đi đến","chờ đợi","ổn định","nếu không","không thì","lặp lại","với mỗi","trong khi","tiếp tục","dừng lại","trả về","sau đó","kết thúc","bất đồng bộ","nói với","mặc định","khởi tạo","hành vi","cài đặt","đo lường","sao chép","thoát ra","kết xuất","vào trong","trước khi","sau khi","cho đến khi","sự kiện","kết quả","mục tiêu","của tôi","của nó","của bạn","của anh","của chị","không xác định","đầu tiên","cuối cùng","tiếp theo","trước đó","gần nhất","nhấp đúp","gửi biểu mẫu","phím xuống","phím lên","chuột vào","chuột ra","tải trang","mili giây","thêm vào cuối","nhân bản","tạo ra","đặt giá trị","ghi nhật ký","chuyển tới","ngược lại"];for(const n of r){if(e.slice(t,t+n.length).toLowerCase()===n.toLowerCase()){const r=t+n.length;if(r>=e.length||!/[a-zA-Zàáảãạăằắẳẵặâầấẩẫậèéẻẽẹêềếểễệìíỉĩịòóỏõọôồốổỗộơờớởỡợùúủũụưừứửữựỳýỷỹỵđ]/.test(e[r])){const i=this.context.lookupKeyword(n);return{value:e.slice(t,r),length:n.length,metadata:{normalized:i?.normalized,isPreposition:!1}}}}}return null}}}}),Bu=yc({"src/tokenizers/extractors/arabic-keyword.ts"(){$c(),Pu=rc([[1536,1791],[1872,1919],[2208,2303],[64336,65023],[65136,65279]]),Nu=new Set(["في","على","من","إلى","الى","مع","عن","قبل","بعد","بين"]),Ou=class{constructor(){this.name="arabic-keyword"}setContext(e){this.context=e}canExtract(e,t){return Pu(e[t])}extract(e,t){if(!this.context)throw Error("ArabicKeywordExtractor: context not set");const r=t;this.context.isKeywordStart(e,t);let n="",i=t;for(;e.length>i&&(Pu(e[i])||"ـ"===e[i]);)n+=e[i],i++;if(!n)return null;const a=this.context.lookupKeyword(n),o=a&&a.normalized!==a.native?a.normalized:void 0;if(Nu.has(n))return{value:n,length:i-r,metadata:{prepositionValue:n,normalized:o}};let s,l,c;if(!a&&this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const t=this.context.lookupKeyword(e.stem);t&&(s=t.normalized,l=e.stem,c=e.confidence)}}return{value:n,length:i-r,metadata:{normalized:o||s,stem:l,stemConfidence:c}}}}}}),Fu=yc({"src/tokenizers/extractors/arabic-proclitic.ts"(){$c(),Iu=rc([[1536,1791],[1872,1919],[2208,2303],[64336,65023],[65136,65279]]),Ru=new Map([["و",{normalized:"and",type:"conjunction"}],["ف",{normalized:"then",type:"conjunction"}],["ب",{normalized:"with",type:"preposition"}],["ل",{normalized:"to",type:"preposition"}],["ك",{normalized:"like",type:"preposition"}],["ول",{normalized:"and-to",type:"conjunction"}],["وب",{normalized:"and-with",type:"conjunction"}],["وك",{normalized:"and-like",type:"conjunction"}],["فل",{normalized:"then-to",type:"conjunction"}],["فب",{normalized:"then-with",type:"conjunction"}],["فك",{normalized:"then-like",type:"conjunction"}]]),Mu=class{constructor(){this.name="arabic-proclitic"}setContext(e){this.context=e}canExtract(e,t){return Ru.has(e[t])||e.length>t+1&&Ru.has(e.slice(t,t+2))}extract(e,t){if(!this.context)throw Error("ArabicProcliticExtractor: context not set");let r=t;for(;e.length>r&&(Iu(e[r])||"ـ"===e[r]);)r++;const n=e.slice(t,r);if(this.context.isKeyword(n))return null;if(e.length>=t+2){const n=e.slice(t,t+2),i=Ru.get(n);if(i){const a=t+2;if(e.length>a&&Iu(e[a])){let o=0,s=a;for(;e.length>s&&Iu(e[s]);)o++,s++;if(o>=2){if(!Ru.get(e[t]))return{value:n,length:2,metadata:{procliticType:i.type,normalized:i.normalized}};{const a=e.slice(t+1,r);if(!this.context.isKeyword(a))return{value:n,length:2,metadata:{procliticType:i.type,normalized:i.normalized}}}}}}}const i=e[t],a=Ru.get(i);if(!a)return null;const o=t+1;if(o>=e.length||!Iu(e[o]))return null;let s=0,l=o;for(;e.length>l&&Iu(e[l]);)s++,l++;return 2>s?null:{value:i,length:1,metadata:{procliticType:a.type,normalized:a.normalized}}}}}}),Uu=yc({"src/tokenizers/extractors/arabic-temporal.ts"(){$c(),Wu=rc([[1536,1791],[1872,1919],[2208,2303],[64336,65023],[65136,65279]]),qu=new Map([["عندما",{normalized:"on",formality:"formal",confidence:.95,description:"when (formal MSA)"}],["حينما",{normalized:"on",formality:"formal",confidence:.93,description:"when/whenever (formal)"}],["عند",{normalized:"on",formality:"neutral",confidence:.88,description:"at/when (neutral)"}],["حين",{normalized:"on",formality:"neutral",confidence:.85,description:"when/time (neutral)"}],["لمّا",{normalized:"on",formality:"dialectal",confidence:.7,description:"when (dialectal, with shadda)"}],["لما",{normalized:"on",formality:"dialectal",confidence:.68,description:"when (dialectal, no diacritic)"}],["لدى",{normalized:"on",formality:"neutral",confidence:.82,description:"at/with (temporal)"}]]),_u=class{constructor(){this.name="arabic-temporal"}setContext(e){this._context=e}canExtract(e,t){for(const[r]of qu)if(e.startsWith(r,t))return!0;return!1}extract(e,t){const r=Array.from(qu.entries()).sort(([e],[t])=>t.length-e.length);for(const[n,i]of r)if(e.startsWith(n,t)){const r=t+n.length;if(r>=e.length||/\s/.test(e[r])||!Wu(e[r]))return{value:n,length:n.length,metadata:{temporalFormality:i.formality,temporalConfidence:i.confidence,normalized:i.normalized,description:i.description}}}return null}}}});var Ku,Gu=yc({"src/tokenizers/extractors/cyrillic-keyword.ts"(){$u=class{constructor(e,t,r){this.name=e;const n=(i=t,{isLetter:e=>i.test(e),isIdentifierChar:e=>/[0-9]/.test(e)||i.test(e)});var i;this.isLetter=n.isLetter,this.isIdentifierChar=n.isIdentifierChar,this.prepositions=r}setContext(e){this.context=e}canExtract(e,t){return this.isLetter(e[t])}extract(e,t){if(!this.context)throw Error(this.name+": context not set");let r=t,n="";for(;e.length>r&&this.isIdentifierChar(e[r]);)n+=e[r++];if(!n)return null;const i=n.toLowerCase(),a=this.prepositions.has(i),o=this.context.lookupKeyword(i),s=o&&o.normalized!==o.native?o.normalized:void 0;let l;if(!o&&this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const t=this.context.lookupKeyword(e.stem);t&&(l=t.normalized)}}return{value:n,length:r-t,metadata:{normalized:s||l,isPreposition:a}}}},Du=new Set(["в","во","на","с","со","к","ко","о","об","обо","у","от","до","из","за","по","под","над","перед","передо","между","через","без","для","при","про","после","вокруг","против","вместо","кроме","среди"]),Vu=new Set(["в","у","на","з","із","зі","до","від","о","об","при","для","під","над","перед","між","через","без","по","за","про","після","навколо","проти","замість","крім","серед","к"])}});function Yu(e){const t=e.charCodeAt(0);return t>=2304&&2431>=t||t>=43232&&43263>=t}var Zu,Xu,Ju,Qu,ep=yc({"src/tokenizers/extractors/hindi-keyword.ts"(){Ku=class{constructor(){this.name="hindi-keyword"}setContext(e){this.context=e}canExtract(e,t){return Yu(e[t])}extract(e,t){if(!this.context)throw Error("HindiKeywordExtractor: context not set");const r=t;let n="",i=t;for(;e.length>i&&(Yu(e[i])||" "===e[i]);){if(" "===e[i]){if(e.length>i+1&&Yu(e[i+1])){const t=e.slice(i),r=[" के लिए"," के साथ"," के बाद"," से पहले"," नहीं तो"," जब तक"," के बारे में"].find(e=>t.startsWith(e));if(r){n+=r,i+=r.length;continue}}break}n+=e[i],i++}if(!n)return null;const a=this.context.lookupKeyword(n),o=a&&a.normalized!==a.native?a.normalized:void 0;let s;if(!a&&this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const t=this.context.lookupKeyword(e.stem);t&&(s=t.normalized)}}return{value:n,length:i-r,metadata:{normalized:o||s}}}}}}),tp=yc({"src/tokenizers/extractors/hindi-particle.ts"(){Zu=new Map([["को",{role:"patient",confidence:.95}],["में",{role:"destination",confidence:.9}],["पर",{role:"event",confidence:.85}],["से",{role:"source",confidence:.9}],["का",{role:"possessive",confidence:.95}],["की",{role:"possessive",confidence:.95}],["के",{role:"possessive",confidence:.95}],["तक",{role:"until",confidence:.9}],["ने",{role:"agent",confidence:.85}]]),Xu=new Map([["के लिए",{role:"purpose",confidence:.95}],["के साथ",{role:"instrument",confidence:.95}],["के बाद",{role:"temporal-after",confidence:.9}],["से पहले",{role:"temporal-before",confidence:.9}],["नहीं तो",{role:"conditional",confidence:.85}],["जब तक",{role:"temporal-until",confidence:.9}],["के बारे में",{role:"about",confidence:.9}]]),Ju=class{constructor(){this.name="hindi-particle"}setContext(e){this._context=e}canExtract(e,t){for(const[r]of Xu)if(e.startsWith(r,t))return!0;let r="",n=t;for(;e.length>n&&this.isDevanagari(e[n]);)r+=e[n],n++;return Zu.has(r)}extract(e,t){for(const[r,n]of Xu)if(e.startsWith(r,t))return{value:r,length:r.length,metadata:{role:n.role,confidence:n.confidence,variant:r}};let r="",n=t;for(;e.length>n&&this.isDevanagari(e[n]);)r+=e[n],n++;const i=Zu.get(r);return i?{value:r,length:r.length,metadata:{role:i.role,confidence:i.confidence,variant:r}}:null}isDevanagari(e){const t=e.charCodeAt(0);return t>=2304&&2431>=t||t>=43232&&43263>=t}}}});function rp(e){const t=e.charCodeAt(0);return t>=2432&&2559>=t}var np,ip,ap,op=yc({"src/tokenizers/extractors/bengali-keyword.ts"(){Qu=class{constructor(){this.name="bengali-keyword"}setContext(e){this.context=e}canExtract(e,t){return rp(e[t])}extract(e,t){if(!this.context)throw Error("BengaliKeywordExtractor: context not set");const r=t;let n="",i=t;for(;e.length>i&&rp(e[i]);)n+=e[i],i++;if(!n)return null;const a=this.context.lookupKeyword(n),o=a&&a.normalized!==a.native?a.normalized:void 0;let s;if(!a&&this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const t=this.context.lookupKeyword(e.stem);t&&(s=t.normalized)}}return{value:n,length:i-r,metadata:{normalized:o||s}}}}}}),sp=yc({"src/tokenizers/extractors/bengali-particle.ts"(){np=new Map([["কে",{role:"patient",confidence:.95}],["তে",{role:"destination",confidence:.9}],["এ",{role:"event",confidence:.85}],["থেকে",{role:"source",confidence:.95}],["র",{role:"possessive",confidence:.95}],["এর",{role:"possessive",confidence:.95}],["দিয়ে",{role:"instrument",confidence:.9}],["জন্য",{role:"purpose",confidence:.9}],["পর্যন্ত",{role:"until",confidence:.9}],["মধ্যে",{role:"location",confidence:.85}]]),ip=class{constructor(){this.name="bengali-particle"}setContext(e){this._context=e}canExtract(e,t){let r="",n=t;for(;e.length>n&&this.isBengali(e[n]);)r+=e[n],n++;return np.has(r)}extract(e,t){let r="",n=t;for(;e.length>n&&this.isBengali(e[n]);)r+=e[n],n++;const i=np.get(r);return i?{value:r,length:r.length,metadata:{role:i.role,confidence:i.confidence,variant:r}}:null}isBengali(e){const t=e.charCodeAt(0);return t>=2432&&2559>=t}}}});function lp(e){const t=e.charCodeAt(0);return t>=3584&&3711>=t}function cp(e){return/[a-zA-Z0-9_]/.test(e)}var up,pp=yc({"src/tokenizers/extractors/thai-keyword.ts"(){ap=class{constructor(){this.name="thai-keyword"}setContext(e){this.context=e}canExtract(e,t){return lp(e[t])||cp(e[t])}extract(e,t){if(!this.context)throw Error("ThaiKeywordExtractor: context not set");const r=e[t];return lp(r)?this.extractThaiWord(e,t):cp(r)?this.extractAsciiWord(e,t):null}extractThaiWord(e,t){if(!this.context)return null;let r=null,n=t,i="";for(;e.length>n&&lp(e[n]);){i+=e[n],n++;const t=this.context.lookupKeyword(i);t&&(r={word:i,entry:t})}if(r){return{value:r.word,length:r.word.length,metadata:{normalized:r.entry.normalized!==r.entry.native?r.entry.normalized:void 0}}}let a=t,o="";for(;e.length>a&&lp(e[a])&&(0>=o.length||!this.isKeywordStart(e,a));)o+=e[a],a++;return o?{value:o,length:o.length,metadata:{}}:null}extractAsciiWord(e,t){if(!this.context)return null;let r=t,n="";for(;e.length>r&&cp(e[r]);)n+=e[r++];if(!n)return null;const i=n.toLowerCase(),a=this.context.lookupKeyword(i);return{value:n,length:n.length,metadata:{normalized:a&&a.normalized!==a.native?a.normalized:void 0}}}isKeywordStart(e,t){if(!this.context)return!1;let r=t,n="";for(;e.length>r&&lp(e[r]);){if(n+=e[r],r++,this.context.lookupKeyword(n))return!0;if(n.length>10)break}return!1}}}});function mp(e){return/[a-zA-Z0-9_]/.test(e)}var dp,hp,fp=yc({"src/tokenizers/extractors/malay-keyword.ts"(){up=class{constructor(){this.name="malay-keyword"}setContext(e){this.context=e}canExtract(e,t){return/[a-zA-Z_]/.test(e[t])}extract(e,t){if(!this.context)throw Error("MalayKeywordExtractor: context not set");let r=t,n="";for(;e.length>r&&mp(e[r]);)n+=e[r++];if(!n)return null;const i=n.toLowerCase(),a=this.context.lookupKeyword(i);return{value:n,length:n.length,metadata:{normalized:a&&a.normalized!==a.native?a.normalized:void 0}}}}}});function yp(e){return/[a-zA-Z0-9_]/.test(e)}var vp,gp,kp,bp,wp=yc({"src/tokenizers/extractors/tagalog-keyword.ts"(){dp=new Set(["sa","ng","para","mula","hanggang","gaya","tulad","kasama","para sa"]),hp=class{constructor(){this.name="tagalog-keyword"}setContext(e){this.context=e}canExtract(e,t){return/[a-zA-Z_]/.test(e[t])}extract(e,t){if(!this.context)throw Error("TagalogKeywordExtractor: context not set");let r=t,n="";for(;e.length>r&&yp(e[r]);)n+=e[r++];if(!n)return null;const i=n.toLowerCase(),a=dp.has(i),o=this.context.lookupKeyword(i),s=o&&o.normalized!==o.native?o.normalized:void 0;let l;if(!o&&this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const t=this.context.lookupKeyword(e.stem);t&&(l=t.normalized)}}return{value:n,length:n.length,metadata:{normalized:s||l,isPreposition:a}}}}}});var zp,xp,Ep,Tp,Sp=yc({"src/tokenizers/extractors/polish-keyword.ts"(){vp=new Set(["do","od","z","ze","w","we","na","po","pod","przed","za","nad","między","miedzy","przez","dla","bez","o","przy","u","według","wedlug","mimo","wśród","wsrod","obok","poza","wokół","wokol","przeciw","ku"]),({isLetter:gp,isIdentifierChar:kp}=function(){const e=/[a-zA-ZąęćńóśźżłĄĘĆŃÓŚŹŻŁ]/;return{isLetter:t=>e.test(t),isIdentifierChar:t=>/[0-9]/.test(t)||e.test(t)}}()),bp=class{constructor(){this.name="polish-keyword"}setContext(e){this.context=e}canExtract(e,t){return gp(e[t])}extract(e,t){if(!this.context)throw Error("PolishKeywordExtractor: context not set");let r=t,n="";for(;e.length>r&&kp(e[r]);)n+=e[r++];if(!n)return null;const i=n.toLowerCase(),a=vp.has(i),o=this.context.lookupKeyword(i),s=o&&o.normalized!==o.native?o.normalized:void 0;let l;if(!o&&this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const t=this.context.lookupKeyword(e.stem);t&&(l=t.normalized)}}return{value:n,length:r-t,metadata:{normalized:s||l,isPreposition:a}}}}}});var Cp,Ap,Lp,jp,Pp=yc({"src/tokenizers/extractors/indonesian-keyword.ts"(){zp=new Set(["di","ke","dari","pada","dengan","tanpa","untuk","oleh","antara","sebelum","sesudah","setelah","selama","sampai","hingga","sejak","menuju","tentang","terhadap","melalui","dalam","luar"]),({isLetter:xp,isIdentifierChar:Ep}=function(){const e=/[a-zA-Z]/;return{isLetter:t=>e.test(t),isIdentifierChar:t=>/[0-9]/.test(t)||e.test(t)}}()),Tp=class{constructor(){this.name="indonesian-keyword"}setContext(e){this.context=e}canExtract(e,t){return xp(e[t])}extract(e,t){if(!this.context)throw Error("IndonesianKeywordExtractor: context not set");let r=t,n="";for(;e.length>r&&Ep(e[r]);)n+=e[r++];if(!n)return null;const i=n.toLowerCase(),a=zp.has(i),o=this.context.lookupKeyword(i),s=o&&o.normalized!==o.native?o.normalized:void 0;let l;if(!o&&this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const t=this.context.lookupKeyword(e.stem);t&&(l=t.normalized)}}return{value:n,length:r-t,metadata:{normalized:s||l,isPreposition:a}}}}}});var Np,Op,Ip,Rp=yc({"src/tokenizers/extractors/swahili-keyword.ts"(){Cp=new Set(["kwa","na","katika","kwenye","kutoka","hadi","mpaka","kabla","baada","wakati","bila","kuhusu","karibu","mbele","nyuma","ndani","nje","juu","chini","kati"]),({isLetter:Ap,isIdentifierChar:Lp}=function(){const e=/[a-zA-Z]/;return{isLetter:t=>e.test(t),isIdentifierChar:t=>/[0-9]/.test(t)||e.test(t)}}()),jp=class{constructor(){this.name="swahili-keyword"}setContext(e){this.context=e}canExtract(e,t){return Ap(e[t])}extract(e,t){if(!this.context)throw Error("SwahiliKeywordExtractor: context not set");let r=t,n="";for(;e.length>r&&Lp(e[r]);)n+=e[r++];if(!n)return null;const i=n.toLowerCase(),a=Cp.has(i),o=this.context.lookupKeyword(i),s=o&&o.normalized!==o.native?o.normalized:void 0;let l;if(!o&&this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const t=this.context.lookupKeyword(e.stem);t&&(l=t.normalized)}}return{value:n,length:r-t,metadata:{normalized:s||l,isPreposition:a}}}}}});function Mp(e){const t=e.charCodeAt(0);if(t>=65&&90>=t||t>=97&&122>=t)return!0;return"çÇğĞıİöÖşŞüÜ".includes(e)}var Wp,qp,_p,$p=yc({"src/tokenizers/extractors/turkish-keyword.ts"(){Np=new Set(["ile","için","kadar","gibi","önce","üzerinde","altında","içinde","dışında","arasında","karşı","göre","rağmen","doğru","boyunca"]),Op=new Set(["de","da","te","ta","den","dan","ten","tan","e","a","ye","ya","i","ı","u","ü","in","ın","un","ün","le","la","yle","yla"]),Ip=class{constructor(){this.name="turkish-keyword"}setContext(e){this.context=e}canExtract(e,t){return Mp(e[t])}extract(e,t){if(!this.context)throw Error("TurkishKeywordExtractor: context not set");const r=t;for(let t=Math.min(12,e.length-r);t>=2;t--){const n=e.slice(r,r+t);let i=!0;for(let e=0;n.length>e;e++)if(!Mp(n[e])){i=!1;break}if(!i)continue;const a=this.context.lookupKeyword(n);if(a)return{value:n,length:t,metadata:{normalized:a.normalized!==a.native?a.normalized:void 0}};if(this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const r=this.context.lookupKeyword(e.stem);if(r)return{value:n,length:t,metadata:{normalized:r.normalized,stem:e.stem,stemConfidence:e.confidence}}}}}let n="",i=t;for(;e.length>i&&Mp(e[i]);)n+=e[i],i++;for(let e=n.length;e>=2;e--){const t=n.substring(0,e),r=this.context.lookupKeyword(t);if(r)return{value:t,length:e,metadata:{normalized:r.normalized!==r.native?r.normalized:void 0}}}if(!n)return null;if(!n)return null;if(Np.has(n.toLowerCase()))return{value:n,length:i-r,metadata:{postpositionValue:n.toLowerCase()}};if(Op.has(n.toLowerCase()))return{value:n,length:i-r,metadata:{caseSuffixValue:n.toLowerCase()}};const a=this.context.lookupKeyword(n),o=a&&a.normalized!==a.native?a.normalized:void 0;let s,l,c;if(!a&&this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const t=this.context.lookupKeyword(e.stem);t&&(s=t.normalized,l=e.stem,c=e.confidence)}}return{value:n,length:i-r,metadata:{normalized:o||s,stem:l,stemConfidence:c}}}}}});function Dp(e){const t=e.charCodeAt(0);return t>=65&&90>=t||t>=97&&122>=t||("ñ"===e||"Ñ"===e||"'"===e||"’"===e)}var Vp,Hp,Bp,Fp,Up=yc({"src/tokenizers/extractors/quechua-keyword.ts"(){Wp=new Set(["-ta","-man","-manta","-pi","-wan","-paq","-kama","-rayku","-hina","ta","man","manta","pi","wan","paq","kama","hina","pa"]),qp=new Set(["kama","hina","rayku","paq"]),_p=class{constructor(){this.name="quechua-keyword"}setContext(e){this.context=e}canExtract(e,t){return Dp(e[t])}extract(e,t){if(!this.context)throw Error("QuechuaKeywordExtractor: context not set");const r=t;for(let t=Math.min(12,e.length-r);t>=2;t--){const n=e.slice(r,r+t);let i=!0;for(let e=0;n.length>e;e++)if(!Dp(n[e])){i=!1;break}if(!i)continue;const a=this.context.lookupKeyword(n);if(a)return{value:n,length:t,metadata:{normalized:a.normalized!==a.native?a.normalized:void 0}};if(this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const r=this.context.lookupKeyword(e.stem);if(r)return{value:n,length:t,metadata:{normalized:r.normalized}}}}}let n="",i=t;for(;e.length>i&&Dp(e[i])&&(0>=n.length||!this.context.isKeywordStart(e,i));)n+=e[i],i++;if(!n)return null;if(Wp.has(n.toLowerCase()))return{value:n,length:i-r,metadata:{suffixValue:n.toLowerCase()}};if(qp.has(n.toLowerCase()))return{value:n,length:i-r,metadata:{postpositionValue:n.toLowerCase()}};const a=this.context.lookupKeyword(n),o=a&&a.normalized!==a.native?a.normalized:void 0;let s;if(!a&&this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const t=this.context.lookupKeyword(e.stem);t&&(s=t.normalized)}}return{value:n,length:i-r,metadata:{normalized:o||s}}}}}});var Kp,Gp,Yp,Zp,Xp,Jp=yc({"src/tokenizers/extractors/hebrew-keyword.ts"(){$c(),Vp=rc([[1424,1535],[64285,64335]]),Hp=new Set(["על","את","אל","מן","עם","בתוך","מתוך","ליד","אחרי","לפני","בין","עד","של"]),Bp=new Set(["ו"]),Fp=class{constructor(){this.name="hebrew-keyword"}setContext(e){this.context=e}canExtract(e,t){return Vp(e[t])}extract(e,t){if(!this.context)throw Error("HebrewKeywordExtractor: context not set");const r=t;this.context.isKeywordStart(e,t);let n="",i=t;for(;e.length>i&&Vp(e[i]);)n+=e[i],i++;if(!n)return null;const a=this.context.lookupKeyword(n),o=a&&a.normalized!==a.native?a.normalized:void 0;if(Hp.has(n))return{value:n,length:i-r,metadata:{prepositionValue:n,normalized:o}};if(Bp.has(n))return{value:n,length:i-r,metadata:{conjunctionValue:n,normalized:o}};let s;if(!a&&this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const t=this.context.lookupKeyword(e.stem);t&&(s=t.normalized)}}return{value:n,length:i-r,metadata:{normalized:o||s}}}}}});var Qp,em=yc({"src/tokenizers/extractors/hebrew-proclitic.ts"(){$c(),Kp=rc([[1424,1535],[64285,64335]]),Gp=new Map([["ב","on"],["ל","to"],["מ","from"],["כ","as"],["ה","the"],["ו","and"],["ש","that"]]),Yp=new Set(["ב","כ"]),Zp=new Set(["לחיצה","קליק","שליחה","הגשה","ריחוף","מעבר","שינוי","עדכון","קלט","הזנה","מיקוד","טשטוש","טעינה","גלילה"]),Xp=class{constructor(){this.name="hebrew-proclitic"}setContext(e){this.context=e}canExtract(e,t){return Gp.has(e[t])&&e.length>t+1&&Kp(e[t+1])}extract(e,t){if(!this.context)throw Error("HebrewProcliticExtractor: context not set");const r=e[t],n=Gp.get(r);if(!n)return null;let i=t;for(;e.length>i&&Kp(e[i]);)i++;const a=e.slice(t,i),o=this.context?.lookupKeyword(a);if(o)return null;if(e.length>t+1&&Gp.has(e[t+1])){const r=e.slice(t+1,i),n=this.context?.lookupKeyword(r),a=Zp.has(r);if(!n&&!a&&r.length<3)return null}const s=e.slice(t+1,i),l=this.context?.lookupKeyword(s),c=Yp.has(r),u=Zp.has(s);if(c&&u)return{value:r,length:1,metadata:{normalized:n,procliticType:n,isEventMarker:!0}};if(1===s.length&&Gp.has(s))return null;if(!l&&!u&&2>s.length)return null;return{value:r,length:1,metadata:{normalized:n,procliticType:n,isEventMarker:c&&l}}}}}});function tm(e){const t=e.charCodeAt(0);return t>=48&&57>=t||t>=65&&90>=t||t>=97&&122>=t||95===t||36===t}var rm=yc({"src/tokenizers/extractors/ascii-identifier.ts"(){Qp=class{constructor(){this.name="ascii-identifier"}setContext(e){this.context=e}canExtract(e,t){return function(e){const t=e.charCodeAt(0);return t>=65&&90>=t||t>=97&&122>=t||95===t||36===t}(e[t])}extract(e,t){if(!this.context)throw Error("AsciiIdentifierExtractor: context not set");const r=t;let n="",i=t;for(;e.length>i&&tm(e[i]);)n+=e[i],i++;if(!n)return null;const a=this.context.lookupKeyword(n);return{value:n,length:i-r,metadata:{normalized:a&&a.normalized!==a.native?a.normalized:void 0}}}}}}),nm=yc({"src/tokenizers/extractors/index.ts"(){eu(),tu(),iu(),au()}});function im(){return[new Qc,new Jc,new ru,new Zc]}var am,om,sm,lm,cm,um=yc({"src/tokenizers/extractor-helpers.ts"(){nm()}}),pm={};vc(pm,{ArabicTokenizer:()=>lm,arabicTokenizer:()=>cm});var mm,dm,hm=yc({"src/tokenizers/arabic.ts"(){$c(),Bc(),Yc(),Xc(),um(),Bu(),rm(),Fu(),Uu(),am=new Set(["ول","وب","وك","فل","فب","فك"]),om=new Set(["في","على","من","إلى","الى","مع","عن","قبل","بعد","بين","ب","ل","ك"]),sm=[{native:"صحيح",normalized:"true"},{native:"خطأ",normalized:"false"},{native:"null",normalized:"null"},{native:"فارغ",normalized:"null"},{native:"غير معرف",normalized:"undefined"},{native:"الأول",normalized:"first"},{native:"أول",normalized:"first"},{native:"الأخير",normalized:"last"},{native:"آخر",normalized:"last"},{native:"التالي",normalized:"next"},{native:"السابق",normalized:"previous"},{native:"الأقرب",normalized:"closest"},{native:"الأب",normalized:"parent"},{native:"النقر",normalized:"click"},{native:"نقر",normalized:"click"},{native:"الإدخال",normalized:"input"},{native:"إدخال",normalized:"input"},{native:"التغيير",normalized:"change"},{native:"تغيير",normalized:"change"},{native:"الإرسال",normalized:"submit"},{native:"إرسال",normalized:"submit"},{native:"التركيز",normalized:"focus"},{native:"فقدان التركيز",normalized:"blur"},{native:"ضغط",normalized:"keydown"},{native:"رفع",normalized:"keyup"},{native:"تمرير الفأرة",normalized:"mouseover"},{native:"مغادرة الفأرة",normalized:"mouseout"},{native:"تحميل",normalized:"load"},{native:"تمرير",normalized:"scroll"},{native:"هي",normalized:"it"},{native:"ثانية",normalized:"s"},{native:"ثواني",normalized:"s"},{native:"ملي ثانية",normalized:"ms"},{native:"دقيقة",normalized:"m"},{native:"دقائق",normalized:"m"},{native:"ساعة",normalized:"h"},{native:"ساعات",normalized:"h"},{native:"عندما",normalized:"on"},{native:"حينما",normalized:"on"},{native:"عند",normalized:"on"},{native:"حين",normalized:"on"},{native:"لمّا",normalized:"on"},{native:"لما",normalized:"on"},{native:"لدى",normalized:"on"}],cm=new(lm=class extends ic{constructor(){super(),this.language="ar",this.direction="rtl",this.initializeKeywordsFromProfile(Hc,sm),this.normalizer=new Rc,this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractor(new Qp),this.registerExtractor(new _u),this.registerExtractor(new Mu),this.registerExtractor(new Ou),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}tokenizeWithExtractors(e){const t=[];let r=0;for(;e.length>r;){for(;e.length>r&&Jl(e[r]);)r++;if(r>=e.length)break;let n=!1;for(const i of this.extractors)if(i.canExtract(e,r)){const a=i.extract(e,r);if(a){const e=a.metadata?.normalized,i=a.metadata?.stem,o=a.metadata?.stemConfidence,s={};if(a.metadata)for(const[e,t]of Object.entries(a.metadata))"normalized"!==e&&"stem"!==e&&"stemConfidence"!==e&&(s[e]=t);let l;l="conjunction"===s.procliticType?"conjunction":"preposition"===s.procliticType?"particle":this.classifyToken(a.value);const c={};e&&(c.normalized=e),i&&(c.stem=i),void 0!==o&&(c.stemConfidence=o),Object.keys(s).length>0&&(c.metadata=s),t.push(Xl(a.value,l,Zl(r,r+a.length),Object.keys(c).length>0?c:void 0)),r+=a.length,n=!0;break}}if(!n){const n=e[r],i=this.classifyUnknownChar(n);t.push(Xl(n,i,Zl(r,r+1))),r++}}return new Yl(t,this.language)}classifyToken(e){return am.has(e)?"conjunction":om.has(e)?"particle":this.isKeyword(e)?"keyword":e.startsWith("/")||e.startsWith("./")||e.startsWith("../")||e.startsWith("http")?"url":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":"identifier"}})}});function fm(e){return/[\u0980-\u09FF]/u.test(e)}var ym,vm=yc({"src/tokenizers/morphology/bengali-normalizer.ts"(){Dc(),mm=[{suffix:"চ্ছে আছে",replacement:"",confidence:.82,type:"progressive",minStemLength:1},{suffix:"চ্ছ আছি",replacement:"",confidence:.82,type:"progressive",minStemLength:1},{suffix:"চ্ছেন আছেন",replacement:"",confidence:.82,type:"progressive",minStemLength:1},{suffix:"েছেন",replacement:"",confidence:.85,type:"present",minStemLength:1},{suffix:"েছে",replacement:"",confidence:.85,type:"present",minStemLength:1},{suffix:"েছ",replacement:"",confidence:.85,type:"present",minStemLength:1},{suffix:"বেন",replacement:"",confidence:.85,type:"future",minStemLength:1},{suffix:"বে",replacement:"",confidence:.85,type:"future",minStemLength:1},{suffix:"বো",replacement:"",confidence:.85,type:"future",minStemLength:1},{suffix:"লেন",replacement:"",confidence:.85,type:"past",minStemLength:1},{suffix:"লো",replacement:"",confidence:.85,type:"past",minStemLength:1},{suffix:"ল",replacement:"",confidence:.85,type:"past",minStemLength:2},{suffix:"ুন",replacement:"",confidence:.85,type:"imperative",minStemLength:1},{suffix:"ো",replacement:"",confidence:.85,type:"imperative",minStemLength:1},{suffix:"চ্ছে",replacement:"",confidence:.82,type:"progressive",minStemLength:1},{suffix:"চ্ছ",replacement:"",confidence:.82,type:"progressive",minStemLength:1},{suffix:"চ্ছি",replacement:"",confidence:.82,type:"progressive",minStemLength:1},{suffix:"া",replacement:"",confidence:.9,type:"dictionary",minStemLength:1},{suffix:"ে",replacement:"",confidence:.85,type:"present",minStemLength:2},{suffix:"ি",replacement:"",confidence:.85,type:"present",minStemLength:2},{suffix:"ো",replacement:"",confidence:.85,type:"present",minStemLength:2}],dm=new class{constructor(){this.language="bn"}isNormalizable(e){return e.length>=2&&fm(e)}normalize(e){const t=this.tryConjugationNormalization(e);return t||ac(e)}tryConjugationNormalization(e){for(const t of mm)if(e.endsWith(t.suffix)){const r=Array.from(e),n=Array.from(t.suffix),i=r.slice(0,r.length-n.length),a=i.join("")+t.replacement;if((t.minStemLength??1)>i.length)continue;if(a.length>0&&!fm(a))continue;return oc(a,t.confidence,{removedSuffixes:[t.suffix],conjugationType:t.type})}return null}}}}),gm={};vc(gm,{bengaliProfile:()=>ym});var km,bm,wm,zm,xm=yc({"src/generators/profiles/bengali.ts"(){ym={code:"bn",name:"Bengali",nativeName:"বাংলা",direction:"ltr",script:"bengali",wordOrder:"SOV",markingStrategy:"postposition",usesSpaces:!0,defaultVerbForm:"imperative",verb:{position:"end",suffixes:["ুন","ো","া","ে","ি"],subjectDrop:!0},references:{me:"আমি",it:"এটি",you:"আপনি",result:"ফলাফল",event:"ঘটনা",target:"লক্ষ্য",body:"বডি"},possessive:{marker:"র",markerPosition:"between",keywords:{"আমার":"me","তোমার":"you","আপনার":"you","তার":"it","এর":"it"}},roleMarkers:{patient:{primary:"কে",position:"after"},destination:{primary:"তে",alternatives:["এ"],position:"after"},source:{primary:"থেকে",position:"after"},style:{primary:"দিয়ে",position:"after"},event:{primary:"তে",position:"after"}},keywords:{toggle:{primary:"টগল",normalized:"toggle"},add:{primary:"যোগ",alternatives:["যোগ করুন"],normalized:"add"},remove:{primary:"সরান",alternatives:["সরিয়ে ফেলুন","মুছুন"],normalized:"remove"},put:{primary:"রাখুন",alternatives:["রাখ"],normalized:"put"},append:{primary:"শেষে যোগ",alternatives:[],normalized:"append"},prepend:{primary:"শুরুতে যোগ",alternatives:[],normalized:"prepend"},take:{primary:"নিন",alternatives:["নে"],normalized:"take"},make:{primary:"তৈরি করুন",alternatives:["বানান"],normalized:"make"},clone:{primary:"ক্লোন",alternatives:["প্রতিলিপি"],normalized:"clone"},swap:{primary:"বদল",alternatives:[],normalized:"swap"},morph:{primary:"রূপান্তর",alternatives:[],normalized:"morph"},set:{primary:"সেট",alternatives:["নির্ধারণ"],normalized:"set"},get:{primary:"পান",normalized:"get"},increment:{primary:"বৃদ্ধি",alternatives:["বাড়ান"],normalized:"increment"},decrement:{primary:"হ্রাস",alternatives:["কমান"],normalized:"decrement"},log:{primary:"লগ",alternatives:["রেকর্ড"],normalized:"log"},show:{primary:"দেখান",alternatives:["দেখাও"],normalized:"show"},hide:{primary:"লুকান",alternatives:["লুকাও"],normalized:"hide"},transition:{primary:"সংক্রমণ",alternatives:[],normalized:"transition"},on:{primary:"তে",alternatives:["এ"],normalized:"on"},trigger:{primary:"ট্রিগার",alternatives:[],normalized:"trigger"},send:{primary:"পাঠান",alternatives:["পাঠাও"],normalized:"send"},focus:{primary:"ফোকাস",alternatives:["মনোযোগ"],normalized:"focus"},blur:{primary:"ঝাপসা",alternatives:["ফোকাস_সরান"],normalized:"blur"},click:{primary:"ক্লিক",normalized:"click"},hover:{primary:"হোভার",alternatives:["উপরে_রাখুন"],normalized:"hover"},submit:{primary:"সাবমিট",alternatives:["জমা"],normalized:"submit"},input:{primary:"ইনপুট",alternatives:["প্রবেশ"],normalized:"input"},change:{primary:"পরিবর্তন",normalized:"change"},go:{primary:"যান",alternatives:["যাও"],normalized:"go"},wait:{primary:"অপেক্ষা",normalized:"wait"},fetch:{primary:"আনুন",alternatives:[],normalized:"fetch"},settle:{primary:"স্থির",alternatives:[],normalized:"settle"},if:{primary:"যদি",alternatives:[],normalized:"if"},when:{primary:"যখন",normalized:"when"},where:{primary:"কোথায়",normalized:"where"},else:{primary:"নতুবা",alternatives:["না হলে"],normalized:"else"},repeat:{primary:"পুনরাবৃত্তি",alternatives:["বার বার"],normalized:"repeat"},for:{primary:"জন্য",alternatives:[],normalized:"for"},while:{primary:"যতক্ষণ",alternatives:[],normalized:"while"},continue:{primary:"চালিয়ে যান",alternatives:[],normalized:"continue"},halt:{primary:"থামুন",alternatives:["থামাও"],normalized:"halt"},throw:{primary:"নিক্ষেপ",alternatives:["ছুঁড়ে দিন"],normalized:"throw"},call:{primary:"কল",alternatives:["ডাকুন"],normalized:"call"},return:{primary:"ফিরুন",alternatives:["ফেরত দিন"],normalized:"return"},then:{primary:"তারপর",alternatives:["তখন"],normalized:"then"},and:{primary:"এবং",alternatives:[],normalized:"and"},end:{primary:"শেষ",alternatives:["সমাপ্ত"],normalized:"end"},js:{primary:"জেএস",alternatives:["js"],normalized:"js"},async:{primary:"অ্যাসিঙ্ক",alternatives:[],normalized:"async"},tell:{primary:"বলুন",alternatives:["বল"],normalized:"tell"},default:{primary:"ডিফল্ট",alternatives:[],normalized:"default"},init:{primary:"শুরু",alternatives:[],normalized:"init"},behavior:{primary:"আচরণ",alternatives:[],normalized:"behavior"},install:{primary:"ইনস্টল",alternatives:[],normalized:"install"},measure:{primary:"মাপুন",alternatives:[],normalized:"measure"},beep:{primary:"বীপ",alternatives:[],normalized:"beep"},break:{primary:"ভাঙুন",alternatives:[],normalized:"break"},copy:{primary:"কপি",alternatives:[],normalized:"copy"},exit:{primary:"বের",alternatives:[],normalized:"exit"},pick:{primary:"বাছুন",alternatives:[],normalized:"pick"},render:{primary:"রেন্ডার",alternatives:[],normalized:"render"},into:{primary:"ভিতরে",normalized:"into"},before:{primary:"আগে",alternatives:[],normalized:"before"},after:{primary:"পরে",alternatives:[],normalized:"after"},until:{primary:"পর্যন্ত",alternatives:[],normalized:"until"},event:{primary:"ঘটনা",alternatives:[],normalized:"event"},from:{primary:"থেকে",normalized:"from"}},tokenization:{particles:["কে","তে","থেকে","র","এর","দিয়ে","জন্য","পর্যন্ত"],boundaryStrategy:"space"},eventHandler:{keyword:{primary:"তে",alternatives:["এ","যখন"],normalized:"on"},sourceMarker:{primary:"থেকে",position:"after"},eventMarker:{primary:"তে",alternatives:["এ"],position:"after"},temporalMarkers:["যখন","যখনই"]}}}}),Em={};vc(Em,{BengaliTokenizer:()=>wm,bengaliTokenizer:()=>zm});var Tm,Sm=yc({"src/tokenizers/bengali.ts"(){$c(),vm(),xm(),Xc(),um(),op(),sp(),rm(),km=new Set(["কে","তে","থেকে","র","এর","দিয়ে","জন্য","পর্যন্ত","এ","মধ্যে"]),bm=[{native:"সত্য",normalized:"true"},{native:"মিথ্যা",normalized:"false"},{native:"শূন্য",normalized:"null"},{native:"অনির্ধারিত",normalized:"undefined"},{native:"প্রথম",normalized:"first"},{native:"পরবর্তী",normalized:"next"},{native:"আগের",normalized:"previous"},{native:"নিকটতম",normalized:"closest"},{native:"মূল",normalized:"parent"},{native:"ক্লিক",normalized:"click"},{native:"জমা",normalized:"submit"},{native:"ইনপুট",normalized:"input"},{native:"লোড",normalized:"load"},{native:"স্ক্রোল",normalized:"scroll"},{native:"কে",normalized:"to"},{native:"সাথে",normalized:"with"}],zm=new(wm=class extends ic{constructor(){super(),this.language="bn",this.direction="ltr",this.initializeKeywordsFromProfile(ym,bm),this.setNormalizer(dm),this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractor(new ip),this.registerExtractor(new Qu),this.registerExtractor(new Qp),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){return km.has(e)?"particle":this.isKeyword(e)?"keyword":e.startsWith("/")||e.startsWith("./")||e.startsWith("../")||e.startsWith("http")?"url":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":(e.startsWith(":"),"identifier")}})}}),Cm={};vc(Cm,{germanProfile:()=>Tm});var Am,Lm,jm,Pm,Nm,Om=yc({"src/generators/profiles/german.ts"(){Tm={code:"de",name:"German",nativeName:"Deutsch",direction:"ltr",script:"latin",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,defaultVerbForm:"infinitive",verb:{position:"start",subjectDrop:!1},references:{me:"ich",it:"es",you:"du",result:"Ergebnis",event:"Ereignis",target:"Ziel",body:"Körper"},possessive:{marker:"",markerPosition:"before-property",usePossessiveAdjectives:!0,specialForms:{me:"mein",it:"sein",you:"dein"},keywords:{mein:"me",meine:"me",meinen:"me",dein:"you",deine:"you",deinen:"you",sein:"it",seine:"it",seinen:"it"}},roleMarkers:{destination:{primary:"auf",alternatives:["zu","in"],position:"before"},source:{primary:"von",alternatives:["aus"],position:"before"},patient:{primary:"",position:"before"},style:{primary:"mit",position:"before"}},keywords:{toggle:{primary:"umschalten",alternatives:["wechseln"],normalized:"toggle"},add:{primary:"hinzufügen",normalized:"add"},remove:{primary:"entfernen",alternatives:["löschen"],normalized:"remove"},put:{primary:"setzen",alternatives:["stellen","platzieren"],normalized:"put"},append:{primary:"anhängen",normalized:"append"},prepend:{primary:"voranstellen",normalized:"prepend"},take:{primary:"nehmen",normalized:"take"},make:{primary:"machen",alternatives:["erstellen","erzeugen"],normalized:"make"},clone:{primary:"klonen",alternatives:["duplizieren"],normalized:"clone"},swap:{primary:"austauschen",alternatives:["tauschen","vertauschen"],normalized:"swap"},morph:{primary:"verwandeln",alternatives:["transformieren"],normalized:"morph"},set:{primary:"festlegen",alternatives:["definieren"],normalized:"set"},get:{primary:"holen",alternatives:["bekommen"],normalized:"get"},increment:{primary:"erhöhen",normalized:"increment"},decrement:{primary:"verringern",alternatives:["vermindern"],normalized:"decrement"},log:{primary:"protokollieren",alternatives:["ausgeben"],normalized:"log"},show:{primary:"zeigen",alternatives:["anzeigen"],normalized:"show"},hide:{primary:"verbergen",alternatives:["verstecken"],normalized:"hide"},transition:{primary:"übergang",alternatives:["animieren"],normalized:"transition"},on:{primary:"bei",alternatives:["auf"],normalized:"on"},trigger:{primary:"auslösen",normalized:"trigger"},send:{primary:"senden",alternatives:["schicken"],normalized:"send"},focus:{primary:"fokussieren",normalized:"focus"},blur:{primary:"defokussieren",alternatives:["entfokussieren"],normalized:"blur"},go:{primary:"gehen",alternatives:["navigieren"],normalized:"go"},wait:{primary:"warten",normalized:"wait"},fetch:{primary:"abrufen",alternatives:["laden"],normalized:"fetch"},settle:{primary:"stabilisieren",normalized:"settle"},if:{primary:"falls",alternatives:["sofern"],normalized:"if"},when:{primary:"wenn",normalized:"when"},where:{primary:"wo",normalized:"where"},else:{primary:"sonst",alternatives:["ansonsten"],normalized:"else"},repeat:{primary:"wiederholen",normalized:"repeat"},for:{primary:"für",normalized:"for"},while:{primary:"solange",alternatives:["während"],normalized:"while"},continue:{primary:"fortfahren",alternatives:["weiter"],normalized:"continue"},halt:{primary:"anhalten",alternatives:["stoppen"],normalized:"halt"},throw:{primary:"werfen",normalized:"throw"},call:{primary:"aufrufen",normalized:"call"},return:{primary:"zurückgeben",normalized:"return"},then:{primary:"dann",alternatives:["danach","anschließend"],normalized:"then"},and:{primary:"und",alternatives:["sowie","auch"],normalized:"and"},end:{primary:"ende",alternatives:["fertig"],normalized:"end"},js:{primary:"js",alternatives:["javascript"],normalized:"js"},async:{primary:"asynchron",normalized:"async"},tell:{primary:"sagen",normalized:"tell"},default:{primary:"standard",normalized:"default"},init:{primary:"initialisieren",normalized:"init"},behavior:{primary:"verhalten",normalized:"behavior"},install:{primary:"installieren",normalized:"install"},measure:{primary:"messen",normalized:"measure"},beep:{primary:"piepton",normalized:"beep"},break:{primary:"unterbrechen",normalized:"break"},copy:{primary:"kopieren",normalized:"copy"},exit:{primary:"beenden",normalized:"exit"},pick:{primary:"auswählen",normalized:"pick"},render:{primary:"rendern",normalized:"render"},into:{primary:"hinein",normalized:"into"},before:{primary:"vor",normalized:"before"},after:{primary:"nach",normalized:"after"},click:{primary:"Klick",alternatives:["Klicken"],normalized:"click"},hover:{primary:"Hover",alternatives:["Schweben"],normalized:"hover"},submit:{primary:"Absenden",alternatives:["Senden"],normalized:"submit"},input:{primary:"Eingabe",normalized:"input"},change:{primary:"Änderung",alternatives:["Ändern"],normalized:"change"},until:{primary:"bis",normalized:"until"},event:{primary:"Ereignis",alternatives:["Event"],normalized:"event"},from:{primary:"von",alternatives:["aus"],normalized:"from"}},eventHandler:{keyword:{primary:"bei",alternatives:["auf"],normalized:"on"},sourceMarker:{primary:"von",alternatives:["aus"],position:"before"},conditionalKeyword:{primary:"wenn",alternatives:["falls"]},eventMarker:{primary:"bei",alternatives:["beim"],position:"before"},temporalMarkers:["wenn","bei"]}}}});var Im,Rm,Mm,Wm,qm=yc({"src/tokenizers/morphology/german-normalizer.ts"(){Dc(),Am=["an","auf","aus","ein","mit","vor","zu","ab","bei","nach","weg","um","her","hin"],Lm=[{ending:"end",stem:"en",confidence:.88,type:"gerund"},{ending:"e",stem:"en",confidence:.75,type:"present"},{ending:"st",stem:"en",confidence:.8,type:"present"},{ending:"t",stem:"en",confidence:.78,type:"present"},{ending:"en",stem:"en",confidence:.85,type:"dictionary"},{ending:"test",stem:"en",confidence:.85,type:"past"},{ending:"ten",stem:"en",confidence:.82,type:"past"},{ending:"tet",stem:"en",confidence:.85,type:"past"},{ending:"te",stem:"en",confidence:.82,type:"past"},{ending:"test",stem:"en",confidence:.8,type:"subjunctive"},{ending:"ten",stem:"en",confidence:.78,type:"subjunctive"},{ending:"tet",stem:"en",confidence:.8,type:"subjunctive"},{ending:"te",stem:"en",confidence:.78,type:"subjunctive"},{ending:"e",stem:"en",confidence:.72,type:"imperative"},{ending:"t",stem:"en",confidence:.72,type:"imperative"},{ending:"en",stem:"en",confidence:.75,type:"imperative"}],jm=[{ending:"le",stem:"eln",confidence:.82,type:"present"},{ending:"elst",stem:"eln",confidence:.85,type:"present"},{ending:"elt",stem:"eln",confidence:.85,type:"present"},{ending:"eln",stem:"eln",confidence:.88,type:"dictionary"},{ending:"re",stem:"ern",confidence:.82,type:"present"},{ending:"erst",stem:"ern",confidence:.85,type:"present"},{ending:"ert",stem:"ern",confidence:.85,type:"present"},{ending:"ern",stem:"ern",confidence:.88,type:"dictionary"}],Pm=[...Lm,...jm].sort((e,t)=>t.ending.length-e.ending.length),new(Nm=class{constructor(){this.language="de"}isNormalizable(e){return e.length>=3&&function(e){const t=e.toLowerCase();return!!(t.endsWith("en")||t.endsWith("eln")||t.endsWith("ern")||t.startsWith("ge")&&t.endsWith("t")||t.startsWith("ge")&&t.endsWith("en")||/[äöüß]/i.test(e))}(e)}normalize(e){const t=e.toLowerCase();if(t.endsWith("en")&&t.length>=4)return ac(e);if((t.endsWith("eln")||t.endsWith("ern"))&&t.length>=5)return ac(e);const r=this.tryParticipleNormalization(t);if(r)return r;const n=this.tryConjugationNormalization(t);return n||ac(e)}tryParticipleNormalization(e){for(const t of Am)if(e.startsWith(t+"ge")){const r=e.slice(t.length),n=this.trySimpleParticipleNormalization(r);if(n){const e={removedPrefixes:["ge"],conjugationType:"participle"};return n.metadata?.removedSuffixes&&(e.removedSuffixes=n.metadata.removedSuffixes),oc(t+n.stem,.95*n.confidence,e)}}return this.trySimpleParticipleNormalization(e)}trySimpleParticipleNormalization(e){if(!e.startsWith("ge"))return null;const t=e.slice(2);if(t.endsWith("t")&&t.length>=3){return oc(t.slice(0,-1)+"en",.85,{removedPrefixes:["ge"],removedSuffixes:["t"],conjugationType:"participle"})}return t.endsWith("en")&&t.length>=4?oc(t,.82,{removedPrefixes:["ge"],conjugationType:"participle"}):null}tryConjugationNormalization(e){for(const t of Pm)if(e.endsWith(t.ending)){const r=e.slice(0,-t.ending.length);if(2>r.length)continue;return oc(r+t.stem,t.confidence,{removedSuffixes:[t.ending],conjugationType:t.type})}return null}})}});var _m,$m,Dm,Vm=yc({"src/tokenizers/extractors/german-keyword.ts"(){var e;({isLetter:Im,isIdentifierChar:Rm}=(e=/[a-zA-ZäöüÄÖÜß]/,{isLetter:t=>e.test(t),isIdentifierChar:t=>/[0-9]/.test(t)||e.test(t)})),Mm=new Set(["an","auf","aus","bei","durch","für","fur","gegen","in","mit","nach","ohne","seit","über","uber","um","unter","von","vor","zu","zwischen","bis","gegenüber","gegenuber","während","wahrend","wegen","trotz","statt","innerhalb","außerhalb","ausserhalb"]),Wm=class{constructor(){this.name="german-keyword"}setContext(e){this.context=e}canExtract(e,t){return Im(e[t])}extract(e,t){if(!this.context)throw Error("GermanKeywordExtractor: context not set");return this.extractGermanWord(e,t)}extractGermanWord(e,t){if(!this.context)return null;let r=t,n="";for(;e.length>r&&Rm(e[r]);)n+=e[r++];if(!n)return null;const i=n.toLowerCase(),a=Mm.has(i),o=this.context.lookupKeyword(n),s=o&&o.normalized!==o.native?o.normalized:void 0;let l;if(!o&&this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const t=this.context.lookupKeyword(e.stem);t&&(l=t.normalized)}}return{value:n,length:r-t,metadata:{normalized:s||l,isPreposition:a}}}}}}),Hm={};vc(Hm,{GermanTokenizer:()=>$m,germanTokenizer:()=>Dm});var Bm,Fm=yc({"src/tokenizers/german.ts"(){$c(),Om(),qm(),Xc(),um(),Vm(),_m=[{native:"wahr",normalized:"true"},{native:"falsch",normalized:"false"},{native:"null",normalized:"null"},{native:"undefiniert",normalized:"undefined"},{native:"erste",normalized:"first"},{native:"erster",normalized:"first"},{native:"erstes",normalized:"first"},{native:"letzte",normalized:"last"},{native:"letzter",normalized:"last"},{native:"letztes",normalized:"last"},{native:"nächste",normalized:"next"},{native:"nachste",normalized:"next"},{native:"vorherige",normalized:"previous"},{native:"nächste",normalized:"closest"},{native:"eltern",normalized:"parent"},{native:"klick",normalized:"click"},{native:"click",normalized:"click"},{native:"eingabe",normalized:"input"},{native:"änderung",normalized:"change"},{native:"anderung",normalized:"change"},{native:"absenden",normalized:"submit"},{native:"taste unten",normalized:"keydown"},{native:"taste oben",normalized:"keyup"},{native:"maus drüber",normalized:"mouseover"},{native:"maus druber",normalized:"mouseover"},{native:"maus weg",normalized:"mouseout"},{native:"fokus",normalized:"focus"},{native:"unschärfe",normalized:"blur"},{native:"unscharfe",normalized:"blur"},{native:"scrollen",normalized:"scroll"},{native:"meine",normalized:"my"},{native:"meinen",normalized:"my"},{native:"ergebnis",normalized:"result"},{native:"ziel",normalized:"target"},{native:"sekunde",normalized:"s"},{native:"sekunden",normalized:"s"},{native:"millisekunde",normalized:"ms"},{native:"millisekunden",normalized:"ms"},{native:"minute",normalized:"m"},{native:"minuten",normalized:"m"},{native:"stunde",normalized:"h"},{native:"stunden",normalized:"h"},{native:"hinzufugen",normalized:"add"},{native:"hinzufgen",normalized:"add"},{native:"loschen",normalized:"remove"},{native:"anhangen",normalized:"append"},{native:"erhohen",normalized:"increment"},{native:"ubergang",normalized:"transition"},{native:"auslosen",normalized:"trigger"},{native:"zuruckgeben",normalized:"return"},{native:"anschliessend",normalized:"then"},{native:"erhöhe",normalized:"increment"},{native:"erhohe",normalized:"increment"},{native:"verringere",normalized:"decrement"}],Dm=new($m=class extends ic{constructor(){super(),this.language="de",this.direction="ltr",this.initializeKeywordsFromProfile(Tm,_m),this.normalizer=new Nm,this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractors([new Wm]),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){return this.isKeyword(e)?"keyword":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":"identifier"}})}}),Um={};vc(Um,{englishProfile:()=>Bm});var Km,Gm=yc({"src/generators/profiles/english.ts"(){Bm={code:"en",name:"English",nativeName:"English",direction:"ltr",script:"latin",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,defaultVerbForm:"base",verb:{position:"start",subjectDrop:!1},references:{me:"me",it:"it",you:"you",result:"result",event:"event",target:"target",body:"body"},possessive:{marker:"'s",markerPosition:"after-object",specialForms:{me:"my",it:"its",you:"your"},keywords:{my:"me",your:"you",its:"it"}},roleMarkers:{destination:{primary:"on",alternatives:["to","from"],position:"before"},source:{primary:"from",position:"before"},patient:{primary:"",position:"before"},style:{primary:"with",alternatives:["by","using"],position:"before"},responseType:{primary:"as",position:"before"},method:{primary:"via",alternatives:["using"],position:"before"}},keywords:{toggle:{primary:"toggle"},add:{primary:"add"},remove:{primary:"remove"},put:{primary:"put"},append:{primary:"append"},prepend:{primary:"prepend"},take:{primary:"take"},make:{primary:"make"},clone:{primary:"clone"},swap:{primary:"swap"},morph:{primary:"morph"},set:{primary:"set"},get:{primary:"get"},increment:{primary:"increment"},decrement:{primary:"decrement"},log:{primary:"log"},show:{primary:"show"},hide:{primary:"hide"},transition:{primary:"transition"},on:{primary:"on"},trigger:{primary:"trigger"},send:{primary:"send"},focus:{primary:"focus"},blur:{primary:"blur"},go:{primary:"go"},wait:{primary:"wait"},fetch:{primary:"fetch"},settle:{primary:"settle"},if:{primary:"if"},when:{primary:"when",normalized:"when"},where:{primary:"where",normalized:"where"},else:{primary:"else"},repeat:{primary:"repeat"},for:{primary:"for"},while:{primary:"while"},continue:{primary:"continue"},halt:{primary:"halt"},throw:{primary:"throw"},call:{primary:"call"},return:{primary:"return"},then:{primary:"then"},and:{primary:"and"},end:{primary:"end"},js:{primary:"js"},async:{primary:"async"},tell:{primary:"tell"},default:{primary:"default"},init:{primary:"init"},behavior:{primary:"behavior"},install:{primary:"install"},measure:{primary:"measure"},beep:{primary:"beep"},break:{primary:"break"},copy:{primary:"copy"},exit:{primary:"exit"},pick:{primary:"pick"},render:{primary:"render"},into:{primary:"into"},before:{primary:"before"},after:{primary:"after"},until:{primary:"until"},event:{primary:"event"},from:{primary:"from"}}}}});function Ym(e){return/[a-zA-Z0-9_]/.test(e)}var Zm,Xm,Jm,Qm=yc({"src/tokenizers/extractors/english-keyword.ts"(){Km=class{constructor(){this.name="english-keyword"}setContext(e){this.context=e}canExtract(e,t){return/[a-zA-Z_]/.test(e[t])}extract(e,t){if(!this.context)throw Error("EnglishKeywordExtractor: context not set");let r=t,n="";for(;e.length>r&&Ym(e[r]);)n+=e[r++];if(!n)return null;if(e.length>r&&":"===e[r]){const t=r;r++;let i="";for(;e.length>r&&Ym(e[r]);)i+=e[r++];i?n=n+":"+i:r=t}const i=this.context.lookupKeyword(n),a=i&&i.normalized!==i.native?i.normalized:void 0;let o=null;return this.context.isKeyword(n)||(o=this.tryClassSyntaxConversion(e,r,n)),{value:o||n,length:r-t,metadata:{normalized:a,classConversion:!!o||void 0}}}tryClassSyntaxConversion(e,t,r){let n=t;for(;e.length>n&&/\s/.test(e[n]);)n++;if("class"===e.slice(n,n+5).toLowerCase()){const t=n+5;if(t>=e.length||!Ym(e[t]))return"."+r}return null}}}}),ed={};vc(ed,{EnglishTokenizer:()=>Xm,englishTokenizer:()=>Jm});var td,rd,nd,id=yc({"src/tokenizers/english.ts"(){$c(),Gm(),Xc(),um(),Qm(),Zm=[{native:"true",normalized:"true"},{native:"false",normalized:"false"},{native:"null",normalized:"null"},{native:"undefined",normalized:"undefined"},{native:"first",normalized:"first"},{native:"last",normalized:"last"},{native:"next",normalized:"next"},{native:"previous",normalized:"previous"},{native:"closest",normalized:"closest"},{native:"click",normalized:"click"},{native:"dblclick",normalized:"dblclick"},{native:"mousedown",normalized:"mousedown"},{native:"mouseup",normalized:"mouseup"},{native:"mouseover",normalized:"mouseover"},{native:"mouseout",normalized:"mouseout"},{native:"mouseenter",normalized:"mouseenter"},{native:"mouseleave",normalized:"mouseleave"},{native:"mousemove",normalized:"mousemove"},{native:"keydown",normalized:"keydown"},{native:"keyup",normalized:"keyup"},{native:"keypress",normalized:"keypress"},{native:"input",normalized:"input"},{native:"change",normalized:"change"},{native:"submit",normalized:"submit"},{native:"reset",normalized:"reset"},{native:"load",normalized:"load"},{native:"unload",normalized:"unload"},{native:"scroll",normalized:"scroll"},{native:"resize",normalized:"resize"},{native:"dragstart",normalized:"dragstart"},{native:"drag",normalized:"drag"},{native:"dragend",normalized:"dragend"},{native:"dragenter",normalized:"dragenter"},{native:"dragleave",normalized:"dragleave"},{native:"dragover",normalized:"dragover"},{native:"drop",normalized:"drop"},{native:"touchstart",normalized:"touchstart"},{native:"touchmove",normalized:"touchmove"},{native:"touchend",normalized:"touchend"},{native:"touchcancel",normalized:"touchcancel"},{native:"in",normalized:"in"},{native:"to",normalized:"to"},{native:"at",normalized:"at"},{native:"by",normalized:"by"},{native:"with",normalized:"with"},{native:"without",normalized:"without"},{native:"of",normalized:"of"},{native:"as",normalized:"as"},{native:"every",normalized:"every"},{native:"upon",normalized:"upon"},{native:"unless",normalized:"unless"},{native:"forever",normalized:"forever"},{native:"times",normalized:"times"},{native:"and",normalized:"and"},{native:"or",normalized:"or"},{native:"not",normalized:"not"},{native:"is",normalized:"is"},{native:"exists",normalized:"exists"},{native:"empty",normalized:"empty"},{native:"my",normalized:"my"},{native:"your",normalized:"your"},{native:"its",normalized:"its"},{native:"the",normalized:"the"},{native:"a",normalized:"a"},{native:"an",normalized:"an"},{native:"delete",normalized:"delete"},{native:"innerHTML",normalized:"innerHTML"},{native:"outerHTML",normalized:"outerHTML"},{native:"beforebegin",normalized:"beforebegin"},{native:"afterend",normalized:"afterend"},{native:"beforeend",normalized:"beforeend"},{native:"afterbegin",normalized:"afterbegin"},{native:"flip",normalized:"toggle"},{native:"switch",normalized:"toggle"},{native:"increase",normalized:"increment"},{native:"decrease",normalized:"decrement"},{native:"display",normalized:"show"},{native:"reveal",normalized:"show"},{native:"conceal",normalized:"hide"},{native:"colour",normalized:"color"},{native:"grey",normalized:"gray"},{native:"centre",normalized:"center"},{native:"behaviour",normalized:"behavior"},{native:"initialise",normalized:"initialize"},{native:"favourite",normalized:"favorite"}],Jm=new(Xm=class extends ic{constructor(){super(),this.language="en",this.direction="ltr",this.initializeKeywordsFromProfile(Bm,Zm),this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractors([new Km]),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){return this.isKeyword(e)?"keyword":e.startsWith("/")||e.startsWith("./")||e.startsWith("../")||e.startsWith("http")?"url":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":["==","!=","<=",">=","<",">","&&","||","!"].includes(e)?"operator":"identifier"}})}});function ad(e,t){return e.replace(/\{(\w+)\}/g,(e,r)=>(t[r]??`{${r}}`)+"")}function od(e,t,r={},n){const i=ad(rd[e],r),a=nd[e],o=a?ad(a,r):void 0;return{code:e,message:i,severity:t,...n&&{role:n},...o&&{suggestion:o}}}var sd,ld,cd=yc({"src/generators/schema-error-codes.ts"(){td={AMBIGUOUS_TYPE_LITERAL_SELECTOR:"SCHEMA_AMBIGUOUS_TYPE_LITERAL_SELECTOR",TOO_MANY_EXPECTED_TYPES:"SCHEMA_TOO_MANY_EXPECTED_TYPES",MULTI_TYPE_PATIENT_EXPECTED:"SCHEMA_MULTI_TYPE_PATIENT_EXPECTED",NO_REQUIRED_ROLES:"SCHEMA_NO_REQUIRED_ROLES",NO_REQUIRED_ROLES_EXPECTED:"SCHEMA_NO_REQUIRED_ROLES_EXPECTED",TRANSITION_PATIENT_ACCEPTS_SELECTOR:"SCHEMA_TRANSITION_PATIENT_ACCEPTS_SELECTOR",TRANSITION_MISSING_GOAL:"SCHEMA_TRANSITION_MISSING_GOAL",EVENT_HANDLER_MISSING_EVENT:"SCHEMA_EVENT_HANDLER_MISSING_EVENT",EVENT_HANDLER_EVENT_NOT_REQUIRED:"SCHEMA_EVENT_HANDLER_EVENT_NOT_REQUIRED",CONDITIONAL_MISSING_CONDITION:"SCHEMA_CONDITIONAL_MISSING_CONDITION",CONDITIONAL_CONDITION_NOT_REQUIRED:"SCHEMA_CONDITIONAL_CONDITION_NOT_REQUIRED",FOR_LOOP_MISSING_SOURCE:"SCHEMA_FOR_LOOP_MISSING_SOURCE",WHILE_LOOP_MISSING_CONDITION:"SCHEMA_WHILE_LOOP_MISSING_CONDITION",VALUE_TYPE_MISMATCH:"SCHEMA_VALUE_TYPE_MISMATCH",SELECTOR_KIND_MISMATCH:"SCHEMA_SELECTOR_KIND_MISMATCH",SELECTOR_KINDS_WITHOUT_SELECTOR_TYPE:"SCHEMA_SELECTOR_KINDS_WITHOUT_SELECTOR_TYPE",KEYWORD_COLLISION:"PROFILE_KEYWORD_COLLISION"},rd={[td.AMBIGUOUS_TYPE_LITERAL_SELECTOR]:"Role '{role}' accepts both 'literal' and 'selector'. This may cause ambiguous type inference for values starting with special characters (* . # etc.).",[td.TOO_MANY_EXPECTED_TYPES]:"Role '{role}' accepts {count} different types. This may make type inference unreliable.",[td.MULTI_TYPE_PATIENT_EXPECTED]:"Role '{role}' accepts multiple types (expected for {command} command).",[td.NO_REQUIRED_ROLES]:"Command has no required roles. Is this intentional?",[td.NO_REQUIRED_ROLES_EXPECTED]:"Command has no required roles (expected for {command}).",[td.TRANSITION_PATIENT_ACCEPTS_SELECTOR]:"Transition command 'patient' role (CSS property name) should only accept 'literal', not 'selector'. CSS property names like 'background-color' are strings, not CSS selectors.",[td.TRANSITION_MISSING_GOAL]:"Transition command requires a 'goal' role for the target value (to <value>). Without it, there's no way to specify what value to transition to.",[td.EVENT_HANDLER_MISSING_EVENT]:"Event handler command should have an 'event' role to specify which event to listen for.",[td.EVENT_HANDLER_EVENT_NOT_REQUIRED]:"Event role should be required - every event handler needs an event to listen for.",[td.CONDITIONAL_MISSING_CONDITION]:"Conditional command should have a 'condition' role for the boolean expression.",[td.CONDITIONAL_CONDITION_NOT_REQUIRED]:"Condition role should be required - conditionals need a condition to evaluate.",[td.FOR_LOOP_MISSING_SOURCE]:"For-loop should have a 'source' role for the collection to iterate over.",[td.WHILE_LOOP_MISSING_CONDITION]:"While-loop should have a 'condition' role for the loop condition.",[td.VALUE_TYPE_MISMATCH]:"Role '{role}' of command '{command}' expects type [{expectedTypes}], got '{actualType}'.",[td.SELECTOR_KIND_MISMATCH]:"Role '{role}' of command '{command}' expects selector kind [{selectorKinds}], got '{actualKind}'.",[td.SELECTOR_KINDS_WITHOUT_SELECTOR_TYPE]:"Role '{role}' has selectorKinds but expectedTypes does not include 'selector'.",[td.KEYWORD_COLLISION]:"Keyword '{keyword}' is used by multiple commands: {commands}. Only the first-registered command will be reachable."},nd={[td.AMBIGUOUS_TYPE_LITERAL_SELECTOR]:"Consider being more specific about which type is expected, or use explicit type markers.",[td.TOO_MANY_EXPECTED_TYPES]:"Consider narrowing the accepted types to improve type inference reliability.",[td.TRANSITION_PATIENT_ACCEPTS_SELECTOR]:"Remove 'selector' from expectedTypes and only accept 'literal'.",[td.TRANSITION_MISSING_GOAL]:"Add a 'goal' role with expectedTypes ['literal', 'variable'].",[td.EVENT_HANDLER_MISSING_EVENT]:"Add an 'event' role with expectedTypes ['literal'].",[td.EVENT_HANDLER_EVENT_NOT_REQUIRED]:"Set required: true on the 'event' role.",[td.CONDITIONAL_MISSING_CONDITION]:"Add a 'condition' role with expectedTypes ['expression'].",[td.CONDITIONAL_CONDITION_NOT_REQUIRED]:"Set required: true on the 'condition' role.",[td.FOR_LOOP_MISSING_SOURCE]:"Add a 'source' role for the collection to iterate over.",[td.WHILE_LOOP_MISSING_CONDITION]:"Add a 'condition' role for the loop continuation condition.",[td.VALUE_TYPE_MISMATCH]:"Ensure the value matches one of the expected types: [{expectedTypes}].",[td.SELECTOR_KIND_MISMATCH]:"Use a selector of the correct kind: [{selectorKinds}].",[td.SELECTOR_KINDS_WITHOUT_SELECTOR_TYPE]:"Either add 'selector' to expectedTypes or remove selectorKinds.",[td.KEYWORD_COLLISION]:"Give each command a unique keyword. Move the shared keyword to alternatives on one command, or use a more specific translation."}}}),ud={};function pd(e){const t=[];for(const r of e.roles)r.expectedTypes.includes("literal")&&r.expectedTypes.includes("selector")&&("patient"===r.role&&sd.has(e.action)?t.push(od(td.MULTI_TYPE_PATIENT_EXPECTED,"note",{role:r.role,command:e.action},r.role)):t.push(od(td.AMBIGUOUS_TYPE_LITERAL_SELECTOR,"warning",{role:r.role},r.role))),r.expectedTypes.length>3&&!sd.has(e.action)&&t.push(od(td.TOO_MANY_EXPECTED_TYPES,"warning",{role:r.role,count:r.expectedTypes.length},r.role));for(const r of e.roles)r.selectorKinds&&r.selectorKinds.length>0&&(r.expectedTypes.includes("selector")||t.push(od(td.SELECTOR_KINDS_WITHOUT_SELECTOR_TYPE,"warning",{role:r.role},r.role)));switch(e.action){case"transition":!function(e,t){const r=e.roles.find(e=>"patient"===e.role),n=e.roles.find(e=>"goal"===e.role);r&&r.expectedTypes.includes("selector")&&t.push(od(td.TRANSITION_PATIENT_ACCEPTS_SELECTOR,"warning",{},"patient"));r&&!n&&t.push(od(td.TRANSITION_MISSING_GOAL,"error",{}))}(e,t);break;case"on":!function(e,t){const r=e.roles.find(e=>"event"===e.role);r||t.push(od(td.EVENT_HANDLER_MISSING_EVENT,"warning",{}));r&&!r.required&&t.push(od(td.EVENT_HANDLER_EVENT_NOT_REQUIRED,"warning",{}))}(e,t);break;case"if":case"unless":!function(e,t){const r=e.roles.find(e=>"condition"===e.role);r||t.push(od(td.CONDITIONAL_MISSING_CONDITION,"warning",{}));r&&!r.required&&t.push(od(td.CONDITIONAL_CONDITION_NOT_REQUIRED,"warning",{}))}(e,t);break;case"repeat":case"for":case"while":!function(e,t){if("for"===e.action){e.roles.find(e=>"source"===e.role)||t.push(od(td.FOR_LOOP_MISSING_SOURCE,"warning",{}))}else if("while"===e.action){e.roles.find(e=>"condition"===e.role)||t.push(od(td.WHILE_LOOP_MISSING_CONDITION,"warning",{}))}}(e,t)}return 0===e.roles.filter(e=>e.required).length&&(ld.has(e.action)?t.push(od(td.NO_REQUIRED_ROLES_EXPECTED,"note",{command:e.action})):t.push(od(td.NO_REQUIRED_ROLES,"warning",{}))),function(e,t){return{action:e,items:t,get notes(){return t.filter(e=>"note"===e.severity).map(e=>e.message)},get warnings(){return t.filter(e=>"warning"===e.severity).map(e=>e.message)},get errors(){return t.filter(e=>"error"===e.severity).map(e=>e.message)}}}(e.action,t)}function md(e,t={}){const r=new Map,{includeNotes:n=!1}=t;for(const[t,i]of Object.entries(e)){const e=pd(i),a=e.items.some(e=>"warning"===e.severity||"error"===e.severity),o=n&&e.items.some(e=>"note"===e.severity);(a||o)&&r.set(t,e)}return r}function dd(e,t={}){const r=[],{showNotes:n=!1,showCodes:i=!0}=t;for(const[t,a]of e){const e=a.items.filter(e=>"error"===e.severity),o=a.items.filter(e=>"warning"===e.severity),s=a.items.filter(e=>"note"===e.severity);if(e.length>0){r.push(` ❌ ${t}:`);for(const t of e){r.push(` ERROR${i?` [${t.code}]`:""}: ${t.message}`),t.suggestion&&r.push(" 💡 Suggestion: "+t.suggestion)}}if(o.length>0){r.push(` ⚠️ ${t}:`);for(const e of o){r.push(` ${(i?` [${e.code}]`:"")?e.code+": ":""}${e.message}`),e.suggestion&&r.push(" 💡 "+e.suggestion)}}if(n&&s.length>0){r.push(` ℹ️ ${t}:`);for(const e of s){r.push(` ${(i?` [${e.code}]`:"")?e.code+": ":""}${e.message}`)}}}return r.join("\n")}function hd(e){let t=0,r=0,n=0;const i={};for(const a of e.values())for(const e of a.items)"error"===e.severity?t++:"warning"===e.severity?r++:"note"===e.severity&&n++,i[e.code]=(i[e.code]||0)+1;return{totalCommands:e.size,errors:t,warnings:r,notes:n,byCode:i}}function fd(e,t){const r=[];for(const n of t){const t=e.roles.find(e=>e.role===n.role);t&&(t.expectedTypes.length>0&&!t.expectedTypes.includes(n.type)&&(t.expectedTypes.includes("expression")||r.push({level:"error",role:n.role,message:`${e.action}.${n.role} expects type [${t.expectedTypes.join(", ")}], got '${n.type}'`,code:td.VALUE_TYPE_MISMATCH})),"selector"===n.type&&n.selectorKind&&t.selectorKinds&&t.selectorKinds.length>0&&(t.selectorKinds.includes(n.selectorKind)||r.push({level:"error",role:n.role,message:`${e.action}.${n.role} expects selector kind [${t.selectorKinds.join(", ")}], got '${n.selectorKind}'`,code:td.SELECTOR_KIND_MISMATCH})))}return r}function yd(e){const t=[];if(!e.keywords)return{language:e.code,collisions:t};const r=new Map;for(const[t,n]of Object.entries(e.keywords)){if(!n||!n.primary)continue;const e=r.get(n.primary)||[];if(e.push({command:t,isPrimary:!0}),r.set(n.primary,e),n.alternatives)for(const e of n.alternatives){const n=r.get(e)||[];n.push({command:t,isPrimary:!1}),r.set(e,n)}}for(const[e,n]of r){const r=[...new Set(n.map(e=>e.command))];if(1>=r.length)continue;const i=n.filter(e=>e.isPrimary).length;let a;a=2>i?1===i?"primary-alternative":"alternative-alternative":"primary-primary",t.push({keyword:e,commands:r.sort(),type:a})}const n={"primary-primary":0,"primary-alternative":1,"alternative-alternative":2};return t.sort((e,t)=>n[e.type]-n[t.type]),{language:e.code,collisions:t}}function vd(e){const t=[];for(const[,r]of Object.entries(e)){const e=yd(r);e.collisions.length>0&&t.push(e)}return t.sort((e,t)=>e.language.localeCompare(t.language))}vc(ud,{SchemaErrorCodes:()=>td,formatValidationResults:()=>dd,getValidationStats:()=>hd,validateAllKeywordCollisions:()=>vd,validateAllSchemas:()=>md,validateCommandSchema:()=>pd,validateKeywordCollisions:()=>yd,validateRoleValues:()=>fd});var gd,kd,bd,wd,zd,xd,Ed,Td,Sd,Cd,Ad,Ld,jd,Pd,Nd,Od,Id=yc({"src/generators/schema-validator.ts"(){cd(),sd=new Set(["put","append","prepend","log","throw","make","measure","return","swap","morph","beep","copy"]),ld=new Set(["compound","else","halt","continue","async","init","settle","focus","blur","return","js","measure","break","exit","beep"])}});function Rd(e){return Od[e]}function Md(){return Object.values(Od).filter(e=>e.roles.length>0)}var Wd=yc({"src/generators/command-schemas.ts"(){Od={toggle:gd={action:"toggle",description:"Toggle a class or attribute on/off",category:"dom-class",primaryRole:"patient",roles:[{role:"patient",description:"The class or attribute to toggle",required:!0,expectedTypes:["selector"],selectorKinds:["class","attribute"],svoPosition:1,sovPosition:2},{role:"destination",description:"The target element (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:2,sovPosition:1}],errorCodes:["MISSING_ARGUMENT","NO_VALID_CLASS_NAMES","INVALID_CSS_PROPERTY"],preconditions:[{condition:"Command has at least one argument",errorCode:"MISSING_ARGUMENT",message:"toggle command requires an argument"},{condition:"Class names are valid CSS identifiers",errorCode:"NO_VALID_CLASS_NAMES",message:"toggle command: no valid class names found"}],recoveryHints:{MISSING_ARGUMENT:"Add a class selector (.classname) or attribute to toggle",NO_VALID_CLASS_NAMES:"Ensure class names start with a dot (.) and are valid CSS identifiers",INVALID_CSS_PROPERTY:"Check CSS property name syntax (use kebab-case)"}},add:kd={action:"add",description:"Add a class or attribute to an element",category:"dom-class",primaryRole:"patient",roles:[{role:"patient",description:"The class or attribute to add",required:!0,expectedTypes:["selector"],svoPosition:1,sovPosition:2},{role:"destination",description:"The target element (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:2,sovPosition:1,markerOverride:{en:"to"}}],errorCodes:["MISSING_ARGUMENT","NO_VALID_CLASS_NAMES","PROPERTY_REQUIRES_VALUE"],preconditions:[{condition:"Command has at least one argument",errorCode:"MISSING_ARGUMENT",message:"add command requires an argument"}],recoveryHints:{MISSING_ARGUMENT:"Add a class selector (.classname) or attribute to add",NO_VALID_CLASS_NAMES:"Ensure class names start with a dot (.) and are valid CSS identifiers",PROPERTY_REQUIRES_VALUE:"When adding a property (*prop), provide a value argument"}},remove:bd={action:"remove",description:"Remove a class or attribute from an element",category:"dom-class",primaryRole:"patient",roles:[{role:"patient",description:"The class or attribute to remove",required:!0,expectedTypes:["selector"],svoPosition:1,sovPosition:2},{role:"source",description:"The element to remove from (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:2,sovPosition:1}],errorCodes:["MISSING_ARGUMENT","NO_VALID_CLASS_NAMES"],preconditions:[{condition:"Command has at least one argument",errorCode:"MISSING_ARGUMENT",message:"remove command requires an argument"}],recoveryHints:{MISSING_ARGUMENT:"Add a class selector (.classname) or attribute to remove",NO_VALID_CLASS_NAMES:"Ensure class names start with a dot (.) and are valid CSS identifiers"}},put:wd={action:"put",description:"Put content into a target element or variable",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The content to put",required:!0,expectedTypes:["literal","selector","reference","expression"],svoPosition:1,sovPosition:1},{role:"destination",description:"Where to put the content",required:!0,expectedTypes:["selector","reference"],svoPosition:2,sovPosition:2,markerOverride:{en:"into"}}],errorCodes:["MISSING_ARGUMENTS","MISSING_CONTENT","MISSING_POSITION","INVALID_POSITION","NO_TARGET","NO_ELEMENTS"],preconditions:[{condition:"Command has content and position arguments",errorCode:"MISSING_ARGUMENTS",message:"put requires arguments"},{condition:"Content to put is specified",errorCode:"MISSING_CONTENT",message:"put requires content"},{condition:"Position keyword is specified (into, before, after, etc.)",errorCode:"MISSING_POSITION",message:"put requires position keyword"}],recoveryHints:{MISSING_ARGUMENTS:"Use syntax: put <content> into/before/after <target>",MISSING_CONTENT:"Add content to put (string, element, or expression)",MISSING_POSITION:"Add position keyword: into, before, after, at start of, at end of",INVALID_POSITION:"Valid positions: into, before, after, at start of, at end of",NO_TARGET:'Ensure target element exists or use "me" reference',NO_ELEMENTS:"Check that the selector matches existing elements"}},set:zd={action:"set",description:"Set a property or variable to a value",category:"variable",primaryRole:"destination",roles:[{role:"destination",description:"The property or variable to set",required:!0,expectedTypes:["selector","reference","expression"],svoPosition:1,sovPosition:1,markerOverride:{en:"",ja:"を",ko:"를",tr:"i",ar:"",sw:"",tl:"",bn:"কে",qu:"ta"}},{role:"patient",description:"The value to set",required:!0,expectedTypes:["literal","expression","reference"],svoPosition:2,sovPosition:2,markerOverride:{en:"to",es:"a",pt:"para",fr:"à",de:"auf",id:"ke",ja:"に",ko:"으로",tr:"e",ar:"إلى",sw:"kwenye",tl:"sa",bn:"তে",qu:"man"}}],errorCodes:["MISSING_TARGET","INVALID_TARGET","MISSING_VALUE","INVALID_SYNTAX"],preconditions:[{condition:"Command has a target variable or property",errorCode:"MISSING_TARGET",message:"set command requires a target"},{condition:"Target is a valid variable or property reference",errorCode:"INVALID_TARGET",message:"set command target must be a string or object literal"},{condition:'Value is specified with "to" keyword',errorCode:"MISSING_VALUE",message:'set command requires a value (use "to" keyword)'}],recoveryHints:{MISSING_TARGET:"Add a target: set :variable to value OR set element.property to value",INVALID_TARGET:'Use local variable (:name), element property (el.prop), or "the X of Y" syntax',MISSING_VALUE:'Add "to <value>" to specify what to set',INVALID_SYNTAX:"Use syntax: set <target> to <value>"}},show:xd={action:"show",description:"Make an element visible",category:"dom-visibility",primaryRole:"patient",roles:[{role:"patient",description:"The element to show",required:!0,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:1,sovPosition:1},{role:"style",description:"Animation style (fade, slide, etc.)",required:!1,expectedTypes:["literal"],svoPosition:2,sovPosition:2}]},hide:Ed={action:"hide",description:"Make an element invisible",category:"dom-visibility",primaryRole:"patient",roles:[{role:"patient",description:"The element to hide",required:!0,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:1,sovPosition:1},{role:"style",description:"Animation style (fade, slide, etc.)",required:!1,expectedTypes:["literal"],svoPosition:2,sovPosition:2}]},on:Td={action:"on",description:"Handle an event",category:"event",primaryRole:"event",hasBody:!0,roles:[{role:"event",description:"The event to handle",required:!0,expectedTypes:["literal"],svoPosition:1,sovPosition:2},{role:"source",description:"The element to listen on (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:2,sovPosition:1}]},trigger:Sd={action:"trigger",description:"Trigger/dispatch an event",category:"event",primaryRole:"event",roles:[{role:"event",description:"The event to trigger (supports namespaced events like draggable:start)",required:!0,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:2},{role:"destination",description:"The target element (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:2,sovPosition:1}]},wait:Cd={action:"wait",description:"Wait for a duration or event",category:"async",primaryRole:"patient",roles:[{role:"patient",description:"Duration or event to wait for",required:!0,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:1}]},fetch:Ad={action:"fetch",description:"Fetch data from a URL",category:"async",primaryRole:"source",roles:[{role:"source",description:"The URL to fetch from",required:!0,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:1,renderOverride:{en:""}},{role:"responseType",description:"Response format (json, text, html, blob, etc.)",required:!1,expectedTypes:["literal","expression"],svoPosition:2,sovPosition:2},{role:"method",description:"HTTP method (GET, POST, etc.)",required:!1,expectedTypes:["literal"],svoPosition:3,sovPosition:3},{role:"destination",description:"Where to store the result",required:!1,expectedTypes:["selector","reference"],svoPosition:4,sovPosition:4}]},increment:Ld={action:"increment",description:"Increment a numeric value",category:"variable",primaryRole:"patient",roles:[{role:"patient",description:"The value to increment",required:!0,expectedTypes:["selector","reference","expression"],svoPosition:1,sovPosition:1},{role:"quantity",description:"Amount to increment by (defaults to 1)",required:!1,expectedTypes:["literal"],default:{type:"literal",value:1,dataType:"number"},svoPosition:2,sovPosition:2,markerOverride:{en:"by"}}]},decrement:jd={action:"decrement",description:"Decrement a numeric value",category:"variable",primaryRole:"patient",roles:[{role:"patient",description:"The value to decrement",required:!0,expectedTypes:["selector","reference","expression"],svoPosition:1,sovPosition:1},{role:"quantity",description:"Amount to decrement by (defaults to 1)",required:!1,expectedTypes:["literal"],default:{type:"literal",value:1,dataType:"number"},svoPosition:2,sovPosition:2,markerOverride:{en:"by"}}]},append:Pd={action:"append",description:"Append content to an element",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The content to append",required:!0,expectedTypes:["literal","selector","expression"],svoPosition:1,sovPosition:2},{role:"destination",description:"The element to append to",required:!0,expectedTypes:["selector","reference"],svoPosition:2,sovPosition:1,markerOverride:{en:"to"}}]},prepend:Nd={action:"prepend",description:"Prepend content to an element",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The content to prepend",required:!0,expectedTypes:["literal","selector","expression"],svoPosition:1,sovPosition:2},{role:"destination",description:"The element to prepend to",required:!0,expectedTypes:["selector","reference"],svoPosition:2,sovPosition:1,markerOverride:{en:"to"}}]},log:{action:"log",description:"Log a value to the console",category:"variable",primaryRole:"patient",roles:[{role:"patient",description:"The value to log",required:!0,expectedTypes:["literal","selector","reference","expression"],svoPosition:1,sovPosition:1}]},get:{action:"get",description:"Get a value from a source",category:"variable",primaryRole:"source",roles:[{role:"source",description:"The source to get from",required:!0,expectedTypes:["selector","reference","expression"],svoPosition:1,sovPosition:2,markerOverride:{en:"",es:"",pt:"",fr:"",de:"",ja:"を",zh:"",ko:"를",ar:"على",tr:"i",id:"",sw:"",tl:"",bn:"কে",qu:"ta"}},{role:"destination",description:"Where to store the result (optional)",required:!1,expectedTypes:["reference"],svoPosition:2,sovPosition:1}]},take:{action:"take",description:"Take content from a source element",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The class or element to take",required:!0,expectedTypes:["selector"],svoPosition:1,sovPosition:2},{role:"source",description:"The element to take from (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:2,sovPosition:1}]},make:{action:"make",description:"Create a new element",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The element type or selector to create",required:!0,expectedTypes:["literal","selector"],svoPosition:1,sovPosition:1}]},halt:{action:"halt",description:"Halt/stop execution or event propagation",category:"control-flow",primaryRole:"patient",roles:[{role:"patient",description:"What to halt (event, default, bubbling, etc.)",required:!1,expectedTypes:["literal","reference","expression"],svoPosition:1,sovPosition:1}]},settle:{action:"settle",description:"Wait for animations/transitions to settle",category:"async",primaryRole:"patient",roles:[{role:"patient",description:"The element to settle (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:1,sovPosition:1}]},throw:{action:"throw",description:"Throw an error",category:"control-flow",primaryRole:"patient",roles:[{role:"patient",description:"The error message or object to throw",required:!0,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:1}]},send:{action:"send",description:"Send an event to an element",category:"event",primaryRole:"event",roles:[{role:"event",description:"The event to send",required:!0,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:2},{role:"destination",description:"The target element (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:2,sovPosition:1,markerOverride:{en:"to",ja:"に",ar:"إلى",es:"a",ko:"에게",zh:"到",tr:"-e",pt:"para",fr:"à",de:"an",id:"ke",qu:"-man",sw:"kwa"}}]},if:{action:"if",description:"Conditional execution",category:"control-flow",primaryRole:"condition",hasBody:!0,roles:[{role:"condition",description:"The condition to evaluate",required:!0,expectedTypes:["expression"],svoPosition:1,sovPosition:1}]},unless:{action:"unless",description:"Negated conditional execution (executes when condition is false)",category:"control-flow",primaryRole:"condition",hasBody:!0,roles:[{role:"condition",description:"The condition to evaluate (body executes when false)",required:!0,expectedTypes:["expression"],svoPosition:1,sovPosition:1}]},else:{action:"else",description:"Else branch of conditional",category:"control-flow",primaryRole:"patient",hasBody:!0,roles:[]},repeat:{action:"repeat",description:"Repeat a block of commands",category:"control-flow",primaryRole:"loopType",hasBody:!0,roles:[{role:"loopType",description:"Loop variant: forever, times, for, while, until, until-event",required:!0,expectedTypes:["literal"],svoPosition:0,sovPosition:0},{role:"quantity",description:"Number of times to repeat",required:!1,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:1},{role:"event",description:"Event to wait for (terminates loop)",required:!1,expectedTypes:["literal","expression"],svoPosition:2,sovPosition:2},{role:"source",description:"Element to listen for event on",required:!1,expectedTypes:["selector","reference"],svoPosition:3,sovPosition:3}],notes:'Can also use "repeat forever", "repeat until condition", or "repeat until event X from Y"'},for:{action:"for",description:"Iterate over a collection",category:"control-flow",primaryRole:"patient",hasBody:!0,roles:[{role:"patient",description:"The iteration variable",required:!0,expectedTypes:["reference"],svoPosition:1,sovPosition:2},{role:"source",description:"The collection to iterate over",required:!0,expectedTypes:["selector","reference","expression"],svoPosition:2,sovPosition:1,markerOverride:{en:"in"}}]},while:{action:"while",description:"Loop while condition is true",category:"control-flow",primaryRole:"condition",hasBody:!0,roles:[{role:"condition",description:"The condition to check",required:!0,expectedTypes:["expression"],svoPosition:1,sovPosition:1}]},continue:{action:"continue",description:"Continue to next loop iteration",category:"control-flow",primaryRole:"patient",roles:[]},go:{action:"go",description:"Navigate to a URL",category:"navigation",primaryRole:"destination",roles:[{role:"destination",description:"The URL to navigate to",required:!0,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:1,markerOverride:{en:"to"},renderOverride:{en:""}}]},transition:{action:"transition",description:"Transition an element with animation",category:"dom-visibility",primaryRole:"patient",roles:[{role:"patient",description:"The property to transition (opacity, *background-color, etc.)",required:!0,expectedTypes:["literal"],svoPosition:1,sovPosition:2,markerOverride:{en:"",ar:"",tl:"",sw:""}},{role:"goal",description:"The target value to transition to",required:!0,expectedTypes:["literal","expression"],svoPosition:2,sovPosition:3,markerOverride:{en:"to",ar:"إلى",tl:"sa",sw:"kwenye",bn:"তে",qu:"man",es:"a",pt:"para",fr:"à",de:"auf",ja:"に",ko:"으로",tr:"e",id:"ke"}},{role:"destination",description:"The target element (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:3,sovPosition:1},{role:"duration",description:"Transition duration (over 500ms, for 2 seconds)",required:!1,expectedTypes:["literal"],svoPosition:4,sovPosition:4,markerOverride:{en:"over"}},{role:"style",description:"Easing function (ease-in, linear, etc.)",required:!1,expectedTypes:["literal"],svoPosition:5,sovPosition:5}]},clone:{action:"clone",description:"Clone an element",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The element to clone",required:!0,expectedTypes:["selector","reference"],svoPosition:1,sovPosition:2},{role:"destination",description:"Where to put the clone",required:!1,expectedTypes:["selector","reference"],svoPosition:2,sovPosition:1,markerOverride:{en:"into"}}]},focus:{action:"focus",description:"Focus an element",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The element to focus (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:1,sovPosition:1}]},blur:{action:"blur",description:"Remove focus from an element",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The element to blur (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:1,sovPosition:1}]},call:{action:"call",description:"Call a function",category:"control-flow",primaryRole:"patient",roles:[{role:"patient",description:"The function to call",required:!0,expectedTypes:["expression","reference"],svoPosition:1,sovPosition:1}]},return:{action:"return",description:"Return a value from a function",category:"control-flow",primaryRole:"patient",roles:[{role:"patient",description:"The value to return",required:!1,expectedTypes:["literal","expression","reference"],svoPosition:1,sovPosition:1}]},js:{action:"js",description:"Execute raw JavaScript code",category:"control-flow",primaryRole:"patient",hasBody:!0,roles:[{role:"patient",description:"The JavaScript code to execute",required:!1,expectedTypes:["expression"],svoPosition:1,sovPosition:1}]},async:{action:"async",description:"Execute commands asynchronously",category:"async",primaryRole:"patient",hasBody:!0,roles:[]},tell:{action:"tell",description:"Execute commands in context of another element",category:"control-flow",primaryRole:"destination",hasBody:!0,roles:[{role:"destination",description:"The element to tell",required:!0,expectedTypes:["selector","reference"],svoPosition:1,sovPosition:1,markerOverride:{en:""}}]},default:{action:"default",description:"Set a default value for a variable",category:"variable",primaryRole:"destination",roles:[{role:"destination",description:"The variable to set default for",required:!0,expectedTypes:["reference"],svoPosition:1,sovPosition:1,markerOverride:{en:"",ar:"",tl:"",sw:"",bn:"কে",qu:"ta"}},{role:"patient",description:"The default value",required:!0,expectedTypes:["literal","expression"],svoPosition:2,sovPosition:2,markerOverride:{en:"to",ar:"إلى",tl:"sa",sw:"kwenye",bn:"তে",qu:"man"}}]},init:{action:"init",description:"Initialization block that runs once",category:"control-flow",primaryRole:"patient",hasBody:!0,roles:[]},behavior:{action:"behavior",description:"Define a reusable behavior",category:"control-flow",primaryRole:"patient",hasBody:!0,roles:[{role:"patient",description:"The behavior name (PascalCase identifier)",required:!0,expectedTypes:["literal","reference","expression"],svoPosition:1,sovPosition:1}]},install:{action:"install",description:"Install a behavior on an element",category:"control-flow",primaryRole:"patient",roles:[{role:"patient",description:"The behavior name to install",required:!0,expectedTypes:["literal","reference","expression"],svoPosition:1,sovPosition:2},{role:"destination",description:"Element to install on (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:2,sovPosition:1}]},measure:{action:"measure",description:"Measure element dimensions (x, y, width, height, etc.)",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"Property to measure (x, y, width, height, top, left, etc.)",required:!1,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:1},{role:"source",description:"Element to measure (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:2,sovPosition:2,markerOverride:{en:"of"}}]},swap:{action:"swap",description:"Swap DOM content using various strategies (innerHTML, outerHTML, delete, etc.)",category:"dom-content",primaryRole:"destination",roles:[{role:"method",description:"The swap strategy (innerHTML, outerHTML, beforebegin, afterend, delete)",required:!1,expectedTypes:["literal"],svoPosition:1,sovPosition:3,markerOverride:{en:""}},{role:"destination",description:"The element to swap content in/for",required:!0,expectedTypes:["selector","reference"],svoPosition:2,sovPosition:1,markerOverride:{en:"of"}},{role:"patient",description:"The content to swap in (optional for delete)",required:!1,expectedTypes:["literal","expression","selector"],svoPosition:3,sovPosition:2,markerOverride:{en:"with"}}]},morph:{action:"morph",description:"Morph an element into another using DOM diffing",category:"dom-content",primaryRole:"destination",roles:[{role:"destination",description:"The element to morph",required:!0,expectedTypes:["selector","reference"],svoPosition:1,sovPosition:1,markerOverride:{en:""}},{role:"patient",description:"The target content/element to morph into",required:!0,expectedTypes:["literal","expression","selector"],svoPosition:2,sovPosition:2,markerOverride:{en:"to"}}]},beep:{action:"beep",description:"Debug output for expressions with type information",category:"variable",primaryRole:"patient",roles:[{role:"patient",description:"The expression(s) to debug",required:!1,expectedTypes:["literal","selector","reference","expression"],svoPosition:1,sovPosition:1}]},break:{action:"break",description:"Exit from the current loop",category:"control-flow",primaryRole:"patient",roles:[]},copy:{action:"copy",description:"Copy text or element content to the clipboard",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The text or element to copy",required:!0,expectedTypes:["literal","selector","reference","expression"],svoPosition:1,sovPosition:1}]},exit:{action:"exit",description:"Exit from the current event handler",category:"control-flow",primaryRole:"patient",roles:[]},pick:{action:"pick",description:"Select a random element from a collection",category:"variable",primaryRole:"patient",roles:[{role:"patient",description:"The items to pick from",required:!0,expectedTypes:["literal","expression","reference"],svoPosition:1,sovPosition:1},{role:"source",description:'The array to pick from (with "from" keyword)',required:!1,expectedTypes:["reference","expression"],svoPosition:2,sovPosition:2}]},render:{action:"render",description:"Render a template with optional variables",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The template to render",required:!0,expectedTypes:["selector","reference","expression"],svoPosition:1,sovPosition:2},{role:"style",description:"Variables to pass to the template (with keyword)",required:!1,expectedTypes:["expression","reference"],svoPosition:2,sovPosition:1}]},compound:{action:"compound",description:"A compound node representing chained statements",primaryRole:"patient",category:"control-flow",hasBody:!0,roles:[]}},"undefined"!=typeof process&&"production"!==process.env.NODE_ENV&&Promise.resolve().then(()=>(Id(),ud)).then(({validateAllSchemas:e})=>{e(Od)}).catch(e=>{})}});function qd(e,t){const r="SOV"===t?"sovPosition":"svoPosition";return[...e].sort((e,t)=>(e[r]??99)-(t[r]??99))}var _d=yc({"src/parser/utils/role-positioning.ts"(){}});var $d=yc({"src/parser/utils/marker-resolution.ts"(){}});var Dd=yc({"src/generators/event-handlers-sov.ts"(){}});function Vd(e,t,r,n,i){const a=[];if("before"===n.position){a.push(n.alternatives?{type:"literal",value:n.primary,alternatives:n.alternatives}:{type:"literal",value:n.primary})}a.push({type:"role",role:"event",optional:!1});a.push(r.alternatives?{type:"literal",value:r.primary,alternatives:r.alternatives}:{type:"literal",value:r.primary}),a.push({type:"role",role:"patient",optional:!1});const o=t.roleMarkers.destination;return o&&a.push({type:"group",optional:!0,tokens:[o.alternatives?{type:"literal",value:o.primary,alternatives:o.alternatives}:{type:"literal",value:o.primary},{type:"role",role:"destination",optional:!0}]}),{id:`${e.action}-event-${t.code}-vso`,language:t.code,command:"on",priority:(i.basePriority??100)+50,template:{format:`${n.primary} {event} ${r.primary} {patient} ${o?.primary||""} {destination?}`,tokens:a},extraction:{action:{value:e.action},event:{fromRole:"event"},patient:{fromRole:"patient"},destination:{fromRole:"destination",default:{type:"reference",value:"me"}}}}}function Hd(e,t,r,n,i){const a=[];if("before"===n.position){a.push(n.alternatives?{type:"literal",value:n.primary,alternatives:n.alternatives}:{type:"literal",value:n.primary})}a.push({type:"role",role:"event",optional:!1});a.push(r.alternatives?{type:"literal",value:r.primary,alternatives:r.alternatives}:{type:"literal",value:r.primary});const o=[...e.roles.filter(e=>e.required)].sort((e,t)=>(e.svoPosition??999)-(t.svoPosition??999));for(const e of o){let r,n;if(e.markerOverride&&void 0!==e.markerOverride[t.code])r=e.markerOverride[t.code];else{const i=t.roleMarkers[e.role];i&&(r=i.primary,n=i.alternatives)}if(r){a.push(n?{type:"literal",value:r,alternatives:n}:{type:"literal",value:r})}a.push({type:"role",role:e.role,optional:!1})}const s=o.map(e=>`{${e.role}}`).join(" ");return{id:`${e.action}-event-${t.code}-vso-2role`,language:t.code,command:"on",priority:(i.basePriority??100)+55,template:{format:`${n.primary} {event} ${r.primary} ${s}`,tokens:a},extraction:{action:{value:e.action},event:{fromRole:"event"},...Object.fromEntries(o.map(e=>[e.role,{fromRole:e.role}]))}}}var Bd,Fd=yc({"src/generators/event-handlers-vso.ts"(){}});function Ud(){return Cc().map(e=>Sc(e)).filter(e=>void 0!==e)}function Kd(e,t,r=Bd){const n=`${e.action}-${t.code}-generated`,i=r.basePriority??100,a=t.keywords[e.action];if(!a)throw Error(`No keyword translation for '${e.action}' in ${t.code}`);const o=function(e,t,r){const n=[],i=r.alternatives?{type:"literal",value:r.primary,alternatives:r.alternatives}:{type:"literal",value:r.primary},a=function(e,t){const r=[],n=qd(e.roles,t.wordOrder);for(const e of n){const n=Jd(e,t);e.required?r.push(...n):r.push({type:"group",optional:!0,tokens:n})}return r}(e,t);switch(t.wordOrder){case"SVO":case"VSO":default:n.push(i),n.push(...a);break;case"SOV":n.push(...a),n.push(i)}return n}(e,t,a),s=Qd(e,t),l=function(e,t,r){const n=[],i=qd(e.roles,t.wordOrder),a=i.map(e=>{const r=function(e,t){const r=e.markerOverride?.[t.code],n=t.roleMarkers[e.role];if(void 0!==r)return{primary:r,position:n?.position??"before",isOverride:!0};if(n&&n.primary){const e={primary:n.primary,position:n.position,isOverride:!1};return n.alternatives&&(e.alternatives=n.alternatives),e}return null}(e,t);let n="";return n=r&&r.primary?"before"===r.position?`${r.primary} {${e.role}}`:`{${e.role}} ${r.primary}`:`{${e.role}}`,e.required?n:`[${n}]`});switch(t.wordOrder){case"SVO":case"VSO":default:n.push(r.primary,...a);break;case"SOV":n.push(...a,r.primary)}return n.join(" ")}(e,t,a);return{id:n,language:t.code,command:e.action,priority:i,template:{format:l,tokens:o},extraction:s}}function Gd(e,t,r=Bd){if(0===e.roles.filter(e=>!e.required).length)return null;const n=e.roles.filter(e=>e.required);return{...Kd({...e,roles:n},t,r),id:`${e.action}-${t.code}-simple`,priority:(r.basePriority??100)-5,extraction:Qd(e,t)}}function Yd(e,t,r=Bd){const n=[];if(n.push(Kd(e,t,r)),r.generateSimpleVariants){const i=Gd(e,t,r);i&&n.push(i)}return n}function Zd(e,t=Bd){const r=[],n=Md();for(const i of n){if(!e.keywords[i.action])continue;const n=Yd(i,e,t);if(r.push(...n),e.eventHandler?.eventMarker){const n=Xd(i,e,t);r.push(...n)}}return r}function Xd(e,t,r=Bd){if(!t.eventHandler||!t.eventHandler.eventMarker)return[];const n=[],i=t.eventHandler.eventMarker,a=t.keywords[e.action];if(!a)return[];const o=2===e.roles.filter(e=>e.required).length;if("SOV"===t.wordOrder)if(o)n.push(function(e,t,r,n,i){const a=[];if(a.push({type:"role",role:"event",optional:!1}),"after"===n.position){const e=n.primary.split(/\s+/);if(e.length>1)for(const t of e)a.push({type:"literal",value:t});else a.push(n.alternatives?{type:"literal",value:n.primary,alternatives:n.alternatives}:{type:"literal",value:n.primary})}const o=[...e.roles.filter(e=>e.required)].sort((e,t)=>(e.sovPosition??999)-(t.sovPosition??999));for(const e of o){let r,n;if(a.push({type:"role",role:e.role,optional:!1}),e.markerOverride&&void 0!==e.markerOverride[t.code])r=e.markerOverride[t.code];else{const i=t.roleMarkers[e.role];i&&(r=i.primary,n=i.alternatives)}r&&a.push(n?{type:"literal",value:r,alternatives:n}:{type:"literal",value:r})}a.push(r.alternatives?{type:"literal",value:r.primary,alternatives:r.alternatives}:{type:"literal",value:r.primary});const s=o.map(e=>`{${e.role}}`).join(" ");return{id:`${e.action}-event-${t.code}-sov-2role`,language:t.code,command:"on",priority:(i.basePriority??100)+55,template:{format:`{event} ${n.primary} ${s} ${r.primary}`,tokens:a},extraction:{action:{value:e.action},event:{fromRole:"event"},...Object.fromEntries(o.map(e=>[e.role,{fromRole:e.role}]))}}}(e,t,a,i,r)),n.push(function(e,t,r,n,i){const a=[],o=[...e.roles.filter(e=>e.required)].sort((e,t)=>(e.sovPosition??999)-(t.sovPosition??999)),s=o[0];let l;if(a.push({type:"role",role:s.role,optional:!1}),s.markerOverride&&void 0!==s.markerOverride[t.code])l=s.markerOverride[t.code];else{const e=t.roleMarkers[s.role];e&&(l=e.primary)}if(l&&a.push({type:"literal",value:l}),a.push({type:"role",role:"event",optional:!1}),"after"===n.position){const e=n.primary.split(/\s+/);if(e.length>1)for(const t of e)a.push({type:"literal",value:t});else a.push(n.alternatives?{type:"literal",value:n.primary,alternatives:n.alternatives}:{type:"literal",value:n.primary})}a.push(r.alternatives?{type:"literal",value:r.primary,alternatives:r.alternatives}:{type:"literal",value:r.primary});const c=o[1];let u,p;if(a.push({type:"role",role:c.role,optional:!1}),c.markerOverride&&void 0!==c.markerOverride[t.code])u=c.markerOverride[t.code];else{const e=t.roleMarkers[c.role];e&&(u=e.primary,p=e.alternatives)}u&&a.push(p?{type:"literal",value:u,alternatives:p}:{type:"literal",value:u});return{id:`${e.action}-event-${t.code}-sov-2role-dest-first`,language:t.code,command:"on",priority:(i.basePriority??100)+48,template:{format:`{${s.role}} {event} ${n.primary} ${r.primary} {${c.role}}`,tokens:a},extraction:{action:{value:e.action},event:{fromRole:"event"},[s.role]:{fromRole:s.role},[c.role]:{fromRole:c.role}}}}(e,t,a,i,r));else{n.push(function(e,t,r,n,i){const a=[];if(a.push({type:"role",role:"event",optional:!1}),"after"===n.position){const e=n.primary.split(/\s+/);if(e.length>1)for(const t of e)a.push({type:"literal",value:t});else a.push(n.alternatives?{type:"literal",value:n.primary,alternatives:n.alternatives}:{type:"literal",value:n.primary})}const o=t.roleMarkers.destination;o&&a.push({type:"group",optional:!0,tokens:[{type:"role",role:"destination",optional:!0},o.alternatives?{type:"literal",value:o.primary,alternatives:o.alternatives}:{type:"literal",value:o.primary}]}),a.push({type:"role",role:"patient",optional:!1});const s=t.roleMarkers.patient;s&&a.push(s.alternatives?{type:"literal",value:s.primary,alternatives:s.alternatives}:{type:"literal",value:s.primary});return a.push(r.alternatives?{type:"literal",value:r.primary,alternatives:r.alternatives}:{type:"literal",value:r.primary}),{id:`${e.action}-event-${t.code}-sov`,language:t.code,command:"on",priority:(i.basePriority??100)+50,template:{format:`{event} ${n.primary} {destination?} {patient} ${s?.primary||""} ${r.primary}`,tokens:a},extraction:{action:{value:e.action},event:{fromRole:"event"},patient:{fromRole:"patient"},destination:{fromRole:"destination",default:{type:"reference",value:"me"}}}}}(e,t,a,i,r)),n.push(function(e,t,r,n,i){const a=[];a.push({type:"role",role:"patient",optional:!1});const o=t.roleMarkers.patient;o&&a.push(o.alternatives?{type:"literal",value:o.primary,alternatives:o.alternatives}:{type:"literal",value:o.primary});if(a.push({type:"role",role:"event",optional:!1}),"after"===n.position){const e=n.primary.split(/\s+/);if(e.length>1)for(const t of e)a.push({type:"literal",value:t});else a.push(n.alternatives?{type:"literal",value:n.primary,alternatives:n.alternatives}:{type:"literal",value:n.primary})}return a.push(r.alternatives?{type:"literal",value:r.primary,alternatives:r.alternatives}:{type:"literal",value:r.primary}),{id:`${e.action}-event-${t.code}-sov-patient-first`,language:t.code,command:"on",priority:(i.basePriority??100)+45,template:{format:`{patient} ${o?.primary||""} {event} ${n.primary} ${r.primary}`,tokens:a},extraction:{action:{value:e.action},event:{fromRole:"event"},patient:{fromRole:"patient"},destination:{fromRole:"destination",default:{type:"reference",value:"me"}}}}}(e,t,a,i,r));const o=t.roleMarkers.destination;o&&o.primary!==i.primary&&n.push(function(e,t,r,n,i){const a=[];a.push({type:"role",role:"patient",optional:!1});const o=t.roleMarkers.patient;o&&a.push(o.alternatives?{type:"literal",value:o.primary,alternatives:o.alternatives}:{type:"literal",value:o.primary});const s=t.roleMarkers.destination;if(s&&(a.push({type:"role",role:"destination",optional:!1}),a.push(s.alternatives?{type:"literal",value:s.primary,alternatives:s.alternatives}:{type:"literal",value:s.primary})),a.push({type:"role",role:"event",optional:!1}),"after"===n.position){const e=n.primary.split(/\s+/);if(e.length>1)for(const t of e)a.push({type:"literal",value:t});else a.push(n.alternatives?{type:"literal",value:n.primary,alternatives:n.alternatives}:{type:"literal",value:n.primary})}return a.push(r.alternatives?{type:"literal",value:r.primary,alternatives:r.alternatives}:{type:"literal",value:r.primary}),{id:`${e.action}-event-${t.code}-sov-patient-first-dest`,language:t.code,command:"on",priority:(i.basePriority??100)+40,template:{format:`{patient} ${o?.primary||""} {destination} ${s?.primary||""} {event} ${n.primary} ${r.primary}`,tokens:a},extraction:{action:{value:e.action},event:{fromRole:"event"},patient:{fromRole:"patient"},destination:{fromRole:"destination"}}}}(e,t,a,i,r));const s=i.primary.split(/\s+/),l=i.alternatives?.some(e=>!e.includes(" ")&&e.length>1);s.length>1&&l&&n.push(function(e,t,r,n,i){const a=[];a.push({type:"role",role:"event",optional:!1});const o=n.alternatives?.filter(e=>!e.includes(" ")&&e.length>1)||[];o.length>0&&a.push({type:"literal",value:o[0],alternatives:o.slice(1)});const s=t.roleMarkers.destination;s&&a.push({type:"group",optional:!0,tokens:[{type:"role",role:"destination",optional:!0},s.alternatives?{type:"literal",value:s.primary,alternatives:s.alternatives}:{type:"literal",value:s.primary}]}),a.push({type:"role",role:"patient",optional:!1});const l=t.roleMarkers.patient;l&&a.push(l.alternatives?{type:"literal",value:l.primary,alternatives:l.alternatives}:{type:"literal",value:l.primary});return a.push(r.alternatives?{type:"literal",value:r.primary,alternatives:r.alternatives}:{type:"literal",value:r.primary}),{id:`${e.action}-event-${t.code}-sov-compact`,language:t.code,command:"on",priority:(i.basePriority??100)+52,template:{format:`{event}${o[0]||""} {patient} ${r.primary}`,tokens:a},extraction:{action:{value:e.action},event:{fromRole:"event"},patient:{fromRole:"patient"},destination:{fromRole:"destination",default:{type:"reference",value:"me"}}}}}(e,t,a,i,r)),n.push(function(e,t,r,n,i){const a=[];if(a.push({type:"role",role:"event",optional:!1}),"after"===n.position){const e=n.primary.split(/\s+/);if(e.length>1)for(const t of e)a.push({type:"literal",value:t});else a.push(n.alternatives?{type:"literal",value:n.primary,alternatives:n.alternatives}:{type:"literal",value:n.primary})}return a.push(r.alternatives?{type:"literal",value:r.primary,alternatives:r.alternatives}:{type:"literal",value:r.primary}),{id:`${e.action}-event-${t.code}-sov-simple`,language:t.code,command:"on",priority:(i.basePriority??100)+48,template:{format:`{event} ${n.primary} ${r.primary}`,tokens:a},extraction:{action:{value:e.action},event:{fromRole:"event"},patient:{default:{type:"reference",value:"me"}}}}}(e,t,a,i,r));const c=function(e,t,r,n){const i=t.eventHandler?.temporalMarkers;if(!i||0===i.length)return null;const a=[];a.push({type:"role",role:"event",optional:!1}),t.possessive?.marker&&a.push({type:"group",optional:!0,tokens:[{type:"literal",value:t.possessive.marker}]}),a.push({type:"literal",value:i[0],alternatives:i.slice(1)}),a.push({type:"role",role:"patient",optional:!1});const o=t.roleMarkers.patient;o?.primary&&a.push(o.alternatives?{type:"literal",value:o.primary,alternatives:o.alternatives}:{type:"literal",value:o.primary});return a.push(r.alternatives?{type:"literal",value:r.primary,alternatives:r.alternatives}:{type:"literal",value:r.primary}),{id:`${e.action}-event-${t.code}-sov-temporal`,language:t.code,command:"on",priority:(n.basePriority??100)+49,template:{format:`{event} ${i[0]} {patient} ${r.primary}`,tokens:a},extraction:{action:{value:e.action},event:{fromRole:"event"},patient:{fromRole:"patient"}}}}(e,t,a,r);c&&n.push(c)}else"VSO"===t.wordOrder?o?(n.push(Hd(e,t,a,i,r)),n.push(function(e,t,r,n,i){const a=[];a.push(r.alternatives?{type:"literal",value:r.primary,alternatives:r.alternatives}:{type:"literal",value:r.primary});const o=[...e.roles.filter(e=>e.required)].sort((e,t)=>(e.svoPosition??999)-(t.svoPosition??999));for(const e of o){let r,n;if(e.markerOverride&&void 0!==e.markerOverride[t.code])r=e.markerOverride[t.code];else{const i=t.roleMarkers[e.role];i&&(r=i.primary,n=i.alternatives)}r&&a.push(n?{type:"literal",value:r,alternatives:n}:{type:"literal",value:r}),a.push({type:"role",role:e.role,optional:!1})}"before"===n.position&&a.push(n.alternatives?{type:"literal",value:n.primary,alternatives:n.alternatives}:{type:"literal",value:n.primary});a.push({type:"role",role:"event",optional:!1});const s=o.map(e=>`{${e.role}}`).join(" ");return{id:`${e.action}-event-${t.code}-vso-verb-first-2role`,language:t.code,command:"on",priority:(i.basePriority??100)+48,template:{format:`${r.primary} ${s} ${n.primary} {event}`,tokens:a},extraction:{action:{value:e.action},event:{fromRole:"event"},...Object.fromEntries(o.map(e=>[e.role,{fromRole:e.role}]))}}}(e,t,a,i,r))):(n.push(Vd(e,t,a,i,r)),n.push(function(e,t,r,n,i){const a=[];a.push(r.alternatives?{type:"literal",value:r.primary,alternatives:r.alternatives}:{type:"literal",value:r.primary}),a.push({type:"role",role:"patient",optional:!1});const o=t.roleMarkers.destination;o&&a.push({type:"group",optional:!0,tokens:[o.alternatives?{type:"literal",value:o.primary,alternatives:o.alternatives}:{type:"literal",value:o.primary},{type:"role",role:"destination",optional:!0}]}),"before"===n.position&&a.push(n.alternatives?{type:"literal",value:n.primary,alternatives:n.alternatives}:{type:"literal",value:n.primary});return a.push({type:"role",role:"event",optional:!1}),{id:`${e.action}-event-${t.code}-vso-verb-first`,language:t.code,command:"on",priority:(i.basePriority??100)+45,template:{format:`${r.primary} {patient} ${o?.primary||""} {destination?} ${n.primary} {event}`,tokens:a},extraction:{action:{value:e.action},event:{fromRole:"event"},patient:{fromRole:"patient"},destination:{fromRole:"destination",default:{type:"reference",value:"me"}}}}}(e,t,a,i,r)),t.eventHandler?.negationMarker&&n.push(function(e,t,r,n,i){const a=[],o=t.eventHandler?.negationMarker;"before"===n.position&&a.push(n.alternatives?{type:"literal",value:n.primary,alternatives:n.alternatives}:{type:"literal",value:n.primary});o&&a.push(o.alternatives?{type:"literal",value:o.primary,alternatives:o.alternatives}:{type:"literal",value:o.primary});a.push({type:"role",role:"event",optional:!1}),a.push(r.alternatives?{type:"literal",value:r.primary,alternatives:r.alternatives}:{type:"literal",value:r.primary}),a.push({type:"role",role:"patient",optional:!1});const s=t.roleMarkers.destination;return s&&a.push({type:"group",optional:!0,tokens:[s.alternatives?{type:"literal",value:s.primary,alternatives:s.alternatives}:{type:"literal",value:s.primary},{type:"role",role:"destination",optional:!0}]}),{id:`${e.action}-event-${t.code}-vso-negated`,language:t.code,command:"on",priority:(i.basePriority??100)+48,template:{format:`${n.primary} ${o?.primary||""} {event} ${r.primary} {patient} ${s?.primary||""} {destination?}`,tokens:a},extraction:{action:{value:e.action},event:{fromRole:"event"},patient:{fromRole:"patient"},destination:{fromRole:"destination",default:{type:"reference",value:"me"}}}}}(e,t,a,i,r)),t.tokenization?.prefixes&&n.push(function(e,t,r,n){const i=[];i.push({type:"literal",value:"and",alternatives:["then"]}),i.push({type:"role",role:"event",optional:!1}),i.push(r.alternatives?{type:"literal",value:r.primary,alternatives:r.alternatives}:{type:"literal",value:r.primary}),i.push({type:"role",role:"patient",optional:!1});const a=t.roleMarkers.destination;return a&&i.push({type:"group",optional:!0,tokens:[a.alternatives?{type:"literal",value:a.primary,alternatives:a.alternatives}:{type:"literal",value:a.primary},{type:"role",role:"destination",optional:!0}]}),{id:`${e.action}-event-${t.code}-vso-proclitic`,language:t.code,command:"on",priority:(n.basePriority??100)+45,template:{format:`[proclitic?] {event} ${r.primary} {patient} ${a?.primary||""} {destination?}`,tokens:i},extraction:{action:{value:e.action},event:{fromRole:"event"},patient:{fromRole:"patient"},destination:{fromRole:"destination",default:{type:"reference",value:"me"}}}}}(e,t,a,r))):n.push(o?Hd(e,t,a,i,r):Vd(e,t,a,i,r));return n}function Jd(e,t){const r=[],n=e.markerOverride?.[t.code],i=t.roleMarkers[e.role],a={type:"role",role:e.role,optional:!e.required,expectedTypes:e.expectedTypes};if(void 0!==n){"before"===(i?.position??"before")?(n&&r.push({type:"literal",value:n}),r.push(a)):(r.push(a),n&&r.push({type:"literal",value:n}))}else if(i)if("before"===i.position){if(i.primary){r.push(i.alternatives?{type:"literal",value:i.primary,alternatives:i.alternatives}:{type:"literal",value:i.primary})}r.push(a)}else{r.push(a);r.push(i.alternatives?{type:"literal",value:i.primary,alternatives:i.alternatives}:{type:"literal",value:i.primary})}else r.push(a);return r}function Qd(e,t){const r=function(e,t){const r={};for(const n of e.roles){const e=n.markerOverride?.[t.code],i=t.roleMarkers[n.role];r[n.role]=void 0!==e?e?{marker:e}:{}:i&&i.primary?i.alternatives?{marker:i.primary,markerAlternatives:i.alternatives}:{marker:i.primary}:{}}return r}(e,t),n={};for(const t of e.roles){const e=r[t.role]||{};n[t.role]=!t.required&&t.default?{...e,default:t.default}:e}return n}var eh=yc({"src/generators/pattern-generator.ts"(){Wd(),_d(),$d(),Dd(),Fd(),Mc(),Bd={basePriority:100,generateSimpleVariants:!0,generateAlternatives:!0}}});var th=yc({"src/patterns/toggle/en.ts"(){}});var rh=yc({"src/patterns/put/en.ts"(){}});var nh,ih,ah,oh,sh,lh,ch,uh,ph,mh,dh,hh=yc({"src/patterns/event-handler/en.ts"(){}}),fh={};function yh(){const e=[];e.push({id:"toggle-en-full",language:"en",command:"toggle",priority:100,template:{format:"toggle {patient} on {target}",tokens:[{type:"literal",value:"toggle"},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"on",alternatives:["from"]},{type:"role",role:"destination"}]}]},extraction:{patient:{position:1},destination:{marker:"on",markerAlternatives:["from"],default:{type:"reference",value:"me"}}}},{id:"toggle-en-simple",language:"en",command:"toggle",priority:90,template:{format:"toggle {patient}",tokens:[{type:"literal",value:"toggle"},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}}),e.push({id:"put-en-into",language:"en",command:"put",priority:100,template:{format:"put {patient} into {destination}",tokens:[{type:"literal",value:"put"},{type:"role",role:"patient"},{type:"literal",value:"into",alternatives:["in","to"]},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"into",markerAlternatives:["in","to"]}}},{id:"put-en-before",language:"en",command:"put",priority:95,template:{format:"put {patient} before {destination}",tokens:[{type:"literal",value:"put"},{type:"role",role:"patient"},{type:"literal",value:"before"},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"before"},manner:{default:{type:"literal",value:"before"}}}},{id:"put-en-after",language:"en",command:"put",priority:95,template:{format:"put {patient} after {destination}",tokens:[{type:"literal",value:"put"},{type:"role",role:"patient"},{type:"literal",value:"after"},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"after"},manner:{default:{type:"literal",value:"after"}}}}),e.push({id:"event-en-when-source",language:"en",command:"on",priority:115,template:{format:"when {event} from {source} {body}",tokens:[{type:"literal",value:"when"},{type:"role",role:"event"},{type:"literal",value:"from"},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"from"}}},{id:"event-en-when",language:"en",command:"on",priority:105,template:{format:"when {event} {body}",tokens:[{type:"literal",value:"when"},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-en-source",language:"en",command:"on",priority:110,template:{format:"on {event} from {source} {body}",tokens:[{type:"literal",value:"on"},{type:"role",role:"event"},{type:"literal",value:"from"},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"from"}}},{id:"event-en-standard",language:"en",command:"on",priority:100,template:{format:"on {event} {body}",tokens:[{type:"literal",value:"on"},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-en-upon",language:"en",command:"on",priority:98,template:{format:"upon {event} {body}",tokens:[{type:"literal",value:"upon"},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-en-if",language:"en",command:"on",priority:95,template:{format:"if {event} {body}",tokens:[{type:"literal",value:"if"},{type:"role",role:"event"}]},extraction:{event:{position:1}}}),e.push(nh,ih,ah,oh,sh,lh,ch,uh,ph,mh,dh);const t=Zd(Bm);return e.push(...t),e}vc(fh,{buildEnglishPatterns:()=>yh});var vh,gh,kh,bh,wh,zh,xh=yc({"src/patterns/en.ts"(){Gm(),eh(),th(),rh(),hh(),nh={id:"fetch-en-with-response-type",language:"en",command:"fetch",priority:90,template:{format:"fetch {source} as {responseType}",tokens:[{type:"literal",value:"fetch"},{type:"role",role:"source",expectedTypes:["literal","expression"]},{type:"literal",value:"as"},{type:"role",role:"responseType",expectedTypes:["literal","expression"]}]},extraction:{source:{position:1},responseType:{marker:"as"}}},ih={id:"fetch-en-simple",language:"en",command:"fetch",priority:80,template:{format:"fetch {source}",tokens:[{type:"literal",value:"fetch"},{type:"role",role:"source"}]},extraction:{source:{position:1}}},ah={id:"swap-en-handcrafted",language:"en",command:"swap",priority:110,template:{format:"swap {method} {destination}",tokens:[{type:"literal",value:"swap"},{type:"role",role:"method"},{type:"role",role:"destination"}]},extraction:{method:{position:1},destination:{position:2}}},oh={id:"repeat-en-until-event-from",language:"en",command:"repeat",priority:120,template:{format:"repeat until event {event} from {source}",tokens:[{type:"literal",value:"repeat"},{type:"literal",value:"until"},{type:"literal",value:"event"},{type:"role",role:"event",expectedTypes:["literal","expression"]},{type:"literal",value:"from"},{type:"role",role:"source",expectedTypes:["selector","reference","expression"]}]},extraction:{event:{marker:"event"},source:{marker:"from"},loopType:{default:{type:"literal",value:"until-event"}}}},sh={id:"repeat-en-until-event",language:"en",command:"repeat",priority:110,template:{format:"repeat until event {event}",tokens:[{type:"literal",value:"repeat"},{type:"literal",value:"until"},{type:"literal",value:"event"},{type:"role",role:"event",expectedTypes:["literal","expression"]}]},extraction:{event:{marker:"event"},loopType:{default:{type:"literal",value:"until-event"}}}},lh={id:"set-en-possessive",language:"en",command:"set",priority:100,template:{format:"set {destination} to {patient}",tokens:[{type:"literal",value:"set"},{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"literal",value:"to"},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:1},patient:{marker:"to"}}},ch={id:"for-en-basic",language:"en",command:"for",priority:100,template:{format:"for {patient} in {source}",tokens:[{type:"literal",value:"for"},{type:"role",role:"patient",expectedTypes:["expression","reference"]},{type:"literal",value:"in"},{type:"role",role:"source",expectedTypes:["selector","expression","reference"]}]},extraction:{patient:{position:1},source:{marker:"in"},loopType:{default:{type:"literal",value:"for"}}}},uh={id:"if-en-basic",language:"en",command:"if",priority:100,template:{format:"if {condition}",tokens:[{type:"literal",value:"if"},{type:"role",role:"condition",expectedTypes:["expression","reference","selector"]}]},extraction:{condition:{position:1}}},ph={id:"unless-en-basic",language:"en",command:"unless",priority:100,template:{format:"unless {condition}",tokens:[{type:"literal",value:"unless"},{type:"role",role:"condition",expectedTypes:["expression","reference","selector"]}]},extraction:{condition:{position:1}}},mh={id:"temporal-en-in",language:"en",command:"wait",priority:95,template:{format:"in {duration}",tokens:[{type:"literal",value:"in"},{type:"role",role:"duration",expectedTypes:["literal","expression"]}]},extraction:{duration:{position:1}}},dh={id:"temporal-en-after",language:"en",command:"wait",priority:95,template:{format:"after {duration}",tokens:[{type:"literal",value:"after"},{type:"role",role:"duration",expectedTypes:["literal","expression"]}]},extraction:{duration:{position:1}}}}});function Eh(e){return/[áéíóúüñÁÉÍÓÚÜÑ]/.test(e)}var Th,Sh=yc({"src/tokenizers/morphology/spanish-normalizer.ts"(){Dc(),vh=["se","me","te","nos","os"],gh=[{ending:"ando",stem:"ar",confidence:.88,type:"gerund"},{ending:"ado",stem:"ar",confidence:.88,type:"participle"},{ending:"ada",stem:"ar",confidence:.88,type:"participle"},{ending:"ados",stem:"ar",confidence:.88,type:"participle"},{ending:"adas",stem:"ar",confidence:.88,type:"participle"},{ending:"o",stem:"ar",confidence:.75,type:"present"},{ending:"as",stem:"ar",confidence:.82,type:"present"},{ending:"a",stem:"ar",confidence:.75,type:"present"},{ending:"amos",stem:"ar",confidence:.85,type:"present"},{ending:"áis",stem:"ar",confidence:.85,type:"present"},{ending:"ais",stem:"ar",confidence:.82,type:"present"},{ending:"an",stem:"ar",confidence:.8,type:"present"},{ending:"é",stem:"ar",confidence:.85,type:"past"},{ending:"aste",stem:"ar",confidence:.88,type:"past"},{ending:"ó",stem:"ar",confidence:.82,type:"past"},{ending:"amos",stem:"ar",confidence:.85,type:"past"},{ending:"asteis",stem:"ar",confidence:.88,type:"past"},{ending:"aron",stem:"ar",confidence:.88,type:"past"},{ending:"aba",stem:"ar",confidence:.88,type:"past"},{ending:"abas",stem:"ar",confidence:.88,type:"past"},{ending:"ábamos",stem:"ar",confidence:.88,type:"past"},{ending:"abamos",stem:"ar",confidence:.85,type:"past"},{ending:"abais",stem:"ar",confidence:.88,type:"past"},{ending:"aban",stem:"ar",confidence:.88,type:"past"},{ending:"e",stem:"ar",confidence:.72,type:"subjunctive"},{ending:"es",stem:"ar",confidence:.78,type:"subjunctive"},{ending:"emos",stem:"ar",confidence:.82,type:"subjunctive"},{ending:"éis",stem:"ar",confidence:.85,type:"subjunctive"},{ending:"eis",stem:"ar",confidence:.82,type:"subjunctive"},{ending:"en",stem:"ar",confidence:.78,type:"subjunctive"},{ending:"a",stem:"ar",confidence:.75,type:"imperative"},{ending:"ad",stem:"ar",confidence:.85,type:"imperative"},{ending:"ar",stem:"ar",confidence:.92,type:"dictionary"}],kh=[{ending:"iendo",stem:"er",confidence:.88,type:"gerund"},{ending:"ido",stem:"er",confidence:.85,type:"participle"},{ending:"ida",stem:"er",confidence:.85,type:"participle"},{ending:"idos",stem:"er",confidence:.85,type:"participle"},{ending:"idas",stem:"er",confidence:.85,type:"participle"},{ending:"o",stem:"er",confidence:.72,type:"present"},{ending:"es",stem:"er",confidence:.78,type:"present"},{ending:"e",stem:"er",confidence:.72,type:"present"},{ending:"emos",stem:"er",confidence:.85,type:"present"},{ending:"éis",stem:"er",confidence:.85,type:"present"},{ending:"eis",stem:"er",confidence:.82,type:"present"},{ending:"en",stem:"er",confidence:.78,type:"present"},{ending:"í",stem:"er",confidence:.85,type:"past"},{ending:"iste",stem:"er",confidence:.88,type:"past"},{ending:"ió",stem:"er",confidence:.85,type:"past"},{ending:"io",stem:"er",confidence:.82,type:"past"},{ending:"imos",stem:"er",confidence:.85,type:"past"},{ending:"isteis",stem:"er",confidence:.88,type:"past"},{ending:"ieron",stem:"er",confidence:.88,type:"past"},{ending:"ía",stem:"er",confidence:.88,type:"past"},{ending:"ia",stem:"er",confidence:.85,type:"past"},{ending:"ías",stem:"er",confidence:.88,type:"past"},{ending:"ias",stem:"er",confidence:.85,type:"past"},{ending:"íamos",stem:"er",confidence:.88,type:"past"},{ending:"iamos",stem:"er",confidence:.85,type:"past"},{ending:"íais",stem:"er",confidence:.88,type:"past"},{ending:"iais",stem:"er",confidence:.85,type:"past"},{ending:"ían",stem:"er",confidence:.88,type:"past"},{ending:"ian",stem:"er",confidence:.85,type:"past"},{ending:"er",stem:"er",confidence:.92,type:"dictionary"}],bh=[{ending:"iendo",stem:"ir",confidence:.88,type:"gerund"},{ending:"ido",stem:"ir",confidence:.85,type:"participle"},{ending:"ida",stem:"ir",confidence:.85,type:"participle"},{ending:"idos",stem:"ir",confidence:.85,type:"participle"},{ending:"idas",stem:"ir",confidence:.85,type:"participle"},{ending:"o",stem:"ir",confidence:.72,type:"present"},{ending:"es",stem:"ir",confidence:.78,type:"present"},{ending:"e",stem:"ir",confidence:.72,type:"present"},{ending:"imos",stem:"ir",confidence:.85,type:"present"},{ending:"ís",stem:"ir",confidence:.85,type:"present"},{ending:"is",stem:"ir",confidence:.82,type:"present"},{ending:"en",stem:"ir",confidence:.78,type:"present"},{ending:"í",stem:"ir",confidence:.85,type:"past"},{ending:"iste",stem:"ir",confidence:.88,type:"past"},{ending:"ió",stem:"ir",confidence:.85,type:"past"},{ending:"io",stem:"ir",confidence:.82,type:"past"},{ending:"imos",stem:"ir",confidence:.85,type:"past"},{ending:"isteis",stem:"ir",confidence:.88,type:"past"},{ending:"ieron",stem:"ir",confidence:.88,type:"past"},{ending:"ía",stem:"ir",confidence:.88,type:"past"},{ending:"ia",stem:"ir",confidence:.85,type:"past"},{ending:"ías",stem:"ir",confidence:.88,type:"past"},{ending:"ias",stem:"ir",confidence:.85,type:"past"},{ending:"íamos",stem:"ir",confidence:.88,type:"past"},{ending:"iamos",stem:"ir",confidence:.85,type:"past"},{ending:"íais",stem:"ir",confidence:.88,type:"past"},{ending:"iais",stem:"ir",confidence:.85,type:"past"},{ending:"ían",stem:"ir",confidence:.88,type:"past"},{ending:"ian",stem:"ir",confidence:.85,type:"past"},{ending:"ir",stem:"ir",confidence:.92,type:"dictionary"}],wh=[...gh,...kh,...bh].sort((e,t)=>t.ending.length-e.ending.length),new(zh=class{constructor(){this.language="es"}isNormalizable(e){return e.length>=3&&function(e){const t=e.toLowerCase();if(t.endsWith("ar")||t.endsWith("er")||t.endsWith("ir"))return!0;if(t.endsWith("ando")||t.endsWith("iendo"))return!0;if(t.endsWith("ado")||t.endsWith("ido"))return!0;if(t.endsWith("arse")||t.endsWith("erse")||t.endsWith("irse"))return!0;for(const t of e)if(Eh(t))return!0;return!1}(e)}normalize(e){const t=e.toLowerCase();if((t.endsWith("ar")||t.endsWith("er")||t.endsWith("ir"))&&!vh.some(e=>t.endsWith(e+"ar")||t.endsWith(e+"er")||t.endsWith(e+"ir")))return ac(e);const r=this.tryReflexiveNormalization(t);if(r)return r;const n=this.tryConjugationNormalization(t);return n||ac(e)}tryReflexiveNormalization(e){for(const t of vh)if(e.endsWith(t)){const r=e.slice(0,-t.length);if(r.endsWith("ar")||r.endsWith("er")||r.endsWith("ir"))return oc(r,.88,{removedSuffixes:[t],conjugationType:"reflexive"});const n=this.tryConjugationNormalization(r);if(n&&n.stem!==r)return oc(n.stem,.95*n.confidence,{removedSuffixes:[t,...n.metadata?.removedSuffixes||[]],conjugationType:"reflexive"})}return null}tryConjugationNormalization(e){for(const t of wh)if(e.endsWith(t.ending)){const r=e.slice(0,-t.ending.length);if(2>r.length)continue;return oc(r+t.stem,t.confidence,{removedSuffixes:[t.ending],conjugationType:t.type})}return null}})}}),Ch={};vc(Ch,{spanishProfile:()=>Th});var Ah,Lh,jh,Ph,Nh=yc({"src/generators/profiles/spanish.ts"(){Th={code:"es",name:"Spanish",nativeName:"Español",direction:"ltr",script:"latin",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,defaultVerbForm:"infinitive",verb:{position:"start",subjectDrop:!0},references:{me:"yo",it:"ello",you:"tú",result:"resultado",event:"evento",target:"objetivo",body:"cuerpo"},possessive:{marker:"de",markerPosition:"before-property",usePossessiveAdjectives:!0,specialForms:{me:"mi",it:"su",you:"tu"},keywords:{mi:"me",tu:"you",su:"it"}},roleMarkers:{destination:{primary:"en",alternatives:["sobre","a"],position:"before"},source:{primary:"de",alternatives:["desde"],position:"before"},patient:{primary:"",position:"before"},style:{primary:"con",position:"before"}},keywords:{toggle:{primary:"alternar",alternatives:["conmutar","toggle"],normalized:"toggle"},add:{primary:"agregar",alternatives:["añadir"],normalized:"add"},remove:{primary:"quitar",alternatives:["eliminar","remover","sacar","borrar"],normalized:"remove"},put:{primary:"poner",alternatives:["colocar","pon"],normalized:"put"},append:{primary:"anexar",normalized:"append"},prepend:{primary:"anteponer",normalized:"prepend"},take:{primary:"tomar",normalized:"take"},make:{primary:"hacer",alternatives:["crear"],normalized:"make"},clone:{primary:"clonar",alternatives:["duplicar"],normalized:"clone"},swap:{primary:"intercambiar",alternatives:["permutar"],normalized:"swap"},morph:{primary:"transformar",alternatives:["convertir"],normalized:"morph"},set:{primary:"establecer",alternatives:["fijar","definir"],normalized:"set"},get:{primary:"obtener",alternatives:["conseguir"],normalized:"get"},increment:{primary:"incrementar",alternatives:["aumentar"],normalized:"increment"},decrement:{primary:"decrementar",alternatives:["disminuir"],normalized:"decrement"},log:{primary:"registrar",alternatives:["imprimir"],normalized:"log"},show:{primary:"mostrar",alternatives:["enseñar"],normalized:"show"},hide:{primary:"ocultar",alternatives:["esconder"],normalized:"hide"},transition:{primary:"transición",alternatives:["animar"],normalized:"transition"},on:{primary:"en",alternatives:["al"],normalized:"on"},trigger:{primary:"disparar",alternatives:["activar"],normalized:"trigger"},send:{primary:"enviar",normalized:"send"},focus:{primary:"enfocar",alternatives:["enfoque"],normalized:"focus"},blur:{primary:"desenfocar",alternatives:["desenfoque"],normalized:"blur"},click:{primary:"clic",alternatives:["hacer clic","click"],normalized:"click"},hover:{primary:"sobrevolar",alternatives:["pasar por encima"],normalized:"hover"},submit:{primary:"envío",alternatives:["envio","someter"],normalized:"submit"},input:{primary:"entrada",alternatives:["introducir"],normalized:"input"},change:{primary:"cambio",alternatives:["cambiar"],normalized:"change"},load:{primary:"carga",normalized:"load"},scroll:{primary:"desplazamiento",normalized:"scroll"},keydown:{primary:"tecla abajo",normalized:"keydown"},keyup:{primary:"tecla arriba",normalized:"keyup"},mouseover:{primary:"ratón encima",alternatives:["raton encima"],normalized:"mouseover"},mouseout:{primary:"ratón fuera",alternatives:["raton fuera"],normalized:"mouseout"},go:{primary:"ir",alternatives:["navegar"],normalized:"go"},wait:{primary:"esperar",normalized:"wait"},fetch:{primary:"buscar",alternatives:["recuperar"],normalized:"fetch"},settle:{primary:"estabilizar",normalized:"settle"},if:{primary:"si",normalized:"if"},when:{primary:"cuando",normalized:"when"},where:{primary:"donde",normalized:"where"},else:{primary:"sino",alternatives:["de lo contrario"],normalized:"else"},repeat:{primary:"repetir",normalized:"repeat"},for:{primary:"para",normalized:"for"},while:{primary:"mientras",normalized:"while"},continue:{primary:"continuar",normalized:"continue"},halt:{primary:"detener",alternatives:["parar"],normalized:"halt"},throw:{primary:"lanzar",alternatives:["arrojar"],normalized:"throw"},call:{primary:"llamar",normalized:"call"},return:{primary:"retornar",alternatives:["devolver"],normalized:"return"},then:{primary:"entonces",alternatives:["luego"],normalized:"then"},and:{primary:"y",alternatives:["además","también"],normalized:"and"},or:{primary:"o",normalized:"or"},not:{primary:"no",normalized:"not"},is:{primary:"es",normalized:"is"},exists:{primary:"existe",normalized:"exists"},empty:{primary:"vacío",alternatives:["vacio"],normalized:"empty"},end:{primary:"fin",alternatives:["final","terminar"],normalized:"end"},js:{primary:"js",normalized:"js"},async:{primary:"asíncrono",alternatives:["asincrono"],normalized:"async"},tell:{primary:"decir",normalized:"tell"},default:{primary:"predeterminar",alternatives:["por defecto"],normalized:"default"},init:{primary:"iniciar",alternatives:["inicializar"],normalized:"init"},behavior:{primary:"comportamiento",normalized:"behavior"},install:{primary:"instalar",normalized:"install"},measure:{primary:"medir",normalized:"measure"},beep:{primary:"pitido",normalized:"beep"},break:{primary:"romper",normalized:"break"},copy:{primary:"copiar",normalized:"copy"},exit:{primary:"salir",normalized:"exit"},pick:{primary:"escoger",normalized:"pick"},render:{primary:"renderizar",normalized:"render"},first:{primary:"primero",alternatives:["primera"],normalized:"first"},last:{primary:"último",alternatives:["ultima"],normalized:"last"},next:{primary:"siguiente",normalized:"next"},previous:{primary:"anterior",normalized:"previous"},closest:{primary:"cercano",normalized:"closest"},parent:{primary:"padre",normalized:"parent"},into:{primary:"dentro",alternatives:["adentro","dentro de"],normalized:"into"},before:{primary:"antes",alternatives:["antes de"],normalized:"before"},after:{primary:"después",alternatives:["despues","después de","despues de"],normalized:"after"},out:{primary:"fuera",alternatives:["fuera de"],normalized:"out"},until:{primary:"hasta",alternatives:["hasta que"],normalized:"until"},event:{primary:"evento",normalized:"event"},from:{primary:"de",alternatives:["desde"],normalized:"from"}},eventHandler:{keyword:{primary:"al",alternatives:["cuando","en"],normalized:"on"},sourceMarker:{primary:"de",alternatives:["desde"],position:"before"},eventMarker:{primary:"al",alternatives:["cuando"],position:"before"},temporalMarkers:["cuando","al"]}}}});var Oh,Ih,Rh,Mh,Wh=yc({"src/tokenizers/extractors/spanish-keyword.ts"(){var e;$c(),({isLetter:Ah,isIdentifierChar:Lh}=(e=/[a-zA-ZáéíóúüñÁÉÍÓÚÜÑ]/,{isLetter:t=>e.test(t),isIdentifierChar:t=>/[0-9]/.test(t)||e.test(t)})),jh=new Set(["en","a","de","desde","hasta","con","sin","por","para","sobre","entre","antes","después","despues","dentro","fuera","al","del"]),Ph=class{constructor(){this.name="spanish-keyword"}setContext(e){this.context=e}canExtract(e,t){return Ah(e[t])}extract(e,t){if(!this.context)throw Error("SpanishKeywordExtractor: context not set");const r=this.tryMultiWordPhrase(e,t);return r||this.extractSpanishWord(e,t)}tryMultiWordPhrase(e,t){if(!this.context)return null;const r=["de lo contrario","de lo normal","por defecto","de nuevo","de otra manera"];for(const n of r){if(e.slice(t,t+n.length).toLowerCase()===n.toLowerCase()){const r=t+n.length;if(r>=e.length||Jl(e[r])||!Ah(e[r])){const i=this.context.lookupKeyword(n);return{value:e.slice(t,r),length:n.length,metadata:{normalized:i?.normalized,multiWord:!0}}}}}return null}extractSpanishWord(e,t){if(!this.context)return null;let r=t,n="";for(;e.length>r&&Lh(e[r]);)n+=e[r++];if(!n)return null;const i=n.toLowerCase(),a=jh.has(i),o=this.context.lookupKeyword(n),s=o&&o.normalized!==o.native?o.normalized:void 0;let l;if(!o&&this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const t=this.context.lookupKeyword(e.stem);t&&(l=t.normalized)}}return{value:n,length:r-t,metadata:{normalized:s||l,isPreposition:a}}}}}}),qh={};vc(qh,{SpanishTokenizer:()=>Rh,spanishTokenizer:()=>Mh});var _h,$h=yc({"src/tokenizers/spanish.ts"(){$c(),Sh(),Nh(),Xc(),um(),Wh(),Oh=new Set(["en","a","de","desde","hasta","con","sin","por","para","sobre","entre","antes","después","despues","dentro","fuera","al","del"]),Ih=[{native:"verdadero",normalized:"true"},{native:"falso",normalized:"false"},{native:"nulo",normalized:"null"},{native:"indefinido",normalized:"undefined"},{native:"segundo",normalized:"s"},{native:"segundos",normalized:"s"},{native:"milisegundo",normalized:"ms"},{native:"milisegundos",normalized:"ms"},{native:"minuto",normalized:"m"},{native:"minutos",normalized:"m"},{native:"hora",normalized:"h"},{native:"horas",normalized:"h"},{native:"mí",normalized:"me"},{native:"destino",normalized:"target"}],Mh=new(Rh=class extends ic{constructor(){super(),this.language="es",this.direction="ltr",this.initializeKeywordsFromProfile(Th,Ih),this.setNormalizer(new zh),this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractors([new Ph]),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){const t=e.toLowerCase();return Oh.has(t)?"particle":this.isKeyword(t)?"keyword":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":["==","!=","<=",">=","<",">","&&","||","!"].includes(e)?"operator":"identifier"}})}}),Dh={};vc(Dh,{frenchProfile:()=>_h});var Vh,Hh,Bh,Fh,Uh,Kh,Gh=yc({"src/generators/profiles/french.ts"(){_h={code:"fr",name:"French",nativeName:"Français",direction:"ltr",script:"latin",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,defaultVerbForm:"infinitive",verb:{position:"start",subjectDrop:!1},references:{me:"moi",it:"il",you:"toi",result:"résultat",event:"événement",target:"cible",body:"corps"},possessive:{marker:"de",markerPosition:"before-property",usePossessiveAdjectives:!0,specialForms:{me:"ma",it:"sa",you:"ta"},keywords:{mon:"me",ma:"me",mes:"me",ton:"you",ta:"you",tes:"you",son:"it",sa:"it",ses:"it"}},roleMarkers:{destination:{primary:"sur",alternatives:["à","dans"],position:"before"},source:{primary:"de",alternatives:["depuis"],position:"before"},patient:{primary:"",position:"before"},style:{primary:"avec",position:"before"}},keywords:{toggle:{primary:"basculer",alternatives:["alterner"],normalized:"toggle"},add:{primary:"ajouter",normalized:"add"},remove:{primary:"supprimer",alternatives:["enlever","retirer"],normalized:"remove"},put:{primary:"mettre",alternatives:["placer"],normalized:"put"},append:{primary:"annexer",normalized:"append"},prepend:{primary:"préfixer",normalized:"prepend"},take:{primary:"prendre",normalized:"take"},make:{primary:"faire",alternatives:["créer"],normalized:"make"},clone:{primary:"cloner",alternatives:["dupliquer"],normalized:"clone"},swap:{primary:"échanger",alternatives:["permuter"],normalized:"swap"},morph:{primary:"transformer",alternatives:["métamorphoser"],normalized:"morph"},set:{primary:"définir",alternatives:["établir"],normalized:"set"},get:{primary:"obtenir",normalized:"get"},increment:{primary:"incrémenter",alternatives:["augmenter"],normalized:"increment"},decrement:{primary:"décrémenter",alternatives:["diminuer"],normalized:"decrement"},log:{primary:"enregistrer",alternatives:["journaliser"],normalized:"log"},show:{primary:"montrer",alternatives:["afficher"],normalized:"show"},hide:{primary:"cacher",alternatives:["masquer"],normalized:"hide"},transition:{primary:"transition",alternatives:["animer"],normalized:"transition"},on:{primary:"sur",alternatives:["lors"],normalized:"on"},trigger:{primary:"déclencher",normalized:"trigger"},send:{primary:"envoyer",normalized:"send"},focus:{primary:"focaliser",alternatives:["concentrer"],normalized:"focus"},blur:{primary:"défocaliser",normalized:"blur"},go:{primary:"aller",alternatives:["naviguer"],normalized:"go"},wait:{primary:"attendre",normalized:"wait"},fetch:{primary:"chercher",alternatives:["récupérer"],normalized:"fetch"},settle:{primary:"stabiliser",normalized:"settle"},if:{primary:"si",normalized:"if"},when:{primary:"quand",normalized:"when"},where:{primary:"où",normalized:"where"},else:{primary:"sinon",normalized:"else"},repeat:{primary:"répéter",normalized:"repeat"},for:{primary:"pour",normalized:"for"},while:{primary:"pendant",normalized:"while"},continue:{primary:"continuer",normalized:"continue"},halt:{primary:"arrêter",alternatives:["stopper"],normalized:"halt"},throw:{primary:"lancer",normalized:"throw"},call:{primary:"appeler",normalized:"call"},return:{primary:"retourner",alternatives:["renvoyer"],normalized:"return"},then:{primary:"puis",alternatives:["ensuite","alors"],normalized:"then"},and:{primary:"et",alternatives:["aussi","également"],normalized:"and"},end:{primary:"fin",alternatives:["terminer","finir"],normalized:"end"},js:{primary:"js",normalized:"js"},async:{primary:"asynchrone",normalized:"async"},tell:{primary:"dire",normalized:"tell"},default:{primary:"défaut",normalized:"default"},init:{primary:"initialiser",normalized:"init"},behavior:{primary:"comportement",normalized:"behavior"},install:{primary:"installer",normalized:"install"},measure:{primary:"mesurer",normalized:"measure"},beep:{primary:"bip",normalized:"beep"},break:{primary:"interrompre",normalized:"break"},copy:{primary:"copier",normalized:"copy"},exit:{primary:"sortir",normalized:"exit"},pick:{primary:"choisir",normalized:"pick"},render:{primary:"rendu",normalized:"render"},into:{primary:"dans",normalized:"into"},before:{primary:"avant",normalized:"before"},after:{primary:"après",normalized:"after"},click:{primary:"clic",alternatives:["clique"],normalized:"click"},hover:{primary:"survol",alternatives:["survoler"],normalized:"hover"},submit:{primary:"soumission",alternatives:["soumettre"],normalized:"submit"},input:{primary:"saisie",alternatives:["entrée"],normalized:"input"},change:{primary:"changement",alternatives:["modifier"],normalized:"change"},until:{primary:"jusqu'à",alternatives:["jusque"],normalized:"until"},event:{primary:"événement",normalized:"event"},from:{primary:"de",alternatives:["depuis"],normalized:"from"}},eventHandler:{keyword:{primary:"sur",alternatives:["lors"],normalized:"on"},sourceMarker:{primary:"de",alternatives:["depuis"],position:"before"},conditionalKeyword:{primary:"quand",alternatives:["lorsque"]},eventMarker:{primary:"au",alternatives:["lors du","lors de"],position:"before"},temporalMarkers:["quand","lorsque"]}}}});var Yh,Zh,Xh,Jh,Qh=yc({"src/tokenizers/morphology/french-normalizer.ts"(){Dc(),Vh=["toi","vous","nous"],Hh=[{ending:"ant",stem:"er",confidence:.88,type:"gerund"},{ending:"é",stem:"er",confidence:.88,type:"participle"},{ending:"ée",stem:"er",confidence:.88,type:"participle"},{ending:"és",stem:"er",confidence:.88,type:"participle"},{ending:"ées",stem:"er",confidence:.88,type:"participle"},{ending:"e",stem:"er",confidence:.75,type:"present"},{ending:"es",stem:"er",confidence:.78,type:"present"},{ending:"ons",stem:"er",confidence:.85,type:"present"},{ending:"ez",stem:"er",confidence:.85,type:"present"},{ending:"ent",stem:"er",confidence:.82,type:"present"},{ending:"ais",stem:"er",confidence:.82,type:"past"},{ending:"ait",stem:"er",confidence:.82,type:"past"},{ending:"ions",stem:"er",confidence:.85,type:"past"},{ending:"iez",stem:"er",confidence:.85,type:"past"},{ending:"aient",stem:"er",confidence:.85,type:"past"},{ending:"ai",stem:"er",confidence:.8,type:"past"},{ending:"as",stem:"er",confidence:.78,type:"past"},{ending:"a",stem:"er",confidence:.75,type:"past"},{ending:"âmes",stem:"er",confidence:.88,type:"past"},{ending:"âtes",stem:"er",confidence:.88,type:"past"},{ending:"èrent",stem:"er",confidence:.88,type:"past"},{ending:"erai",stem:"er",confidence:.85,type:"future"},{ending:"eras",stem:"er",confidence:.85,type:"future"},{ending:"era",stem:"er",confidence:.82,type:"future"},{ending:"erons",stem:"er",confidence:.88,type:"future"},{ending:"erez",stem:"er",confidence:.88,type:"future"},{ending:"eront",stem:"er",confidence:.88,type:"future"},{ending:"erais",stem:"er",confidence:.85,type:"conditional"},{ending:"erait",stem:"er",confidence:.85,type:"conditional"},{ending:"erions",stem:"er",confidence:.88,type:"conditional"},{ending:"eriez",stem:"er",confidence:.88,type:"conditional"},{ending:"eraient",stem:"er",confidence:.88,type:"conditional"},{ending:"ions",stem:"er",confidence:.8,type:"subjunctive"},{ending:"iez",stem:"er",confidence:.8,type:"subjunctive"},{ending:"ons",stem:"er",confidence:.82,type:"imperative"},{ending:"ez",stem:"er",confidence:.82,type:"imperative"},{ending:"er",stem:"er",confidence:.92,type:"dictionary"}],Bh=[{ending:"issant",stem:"ir",confidence:.88,type:"gerund"},{ending:"i",stem:"ir",confidence:.8,type:"participle"},{ending:"ie",stem:"ir",confidence:.82,type:"participle"},{ending:"is",stem:"ir",confidence:.78,type:"participle"},{ending:"ies",stem:"ir",confidence:.82,type:"participle"},{ending:"is",stem:"ir",confidence:.78,type:"present"},{ending:"it",stem:"ir",confidence:.78,type:"present"},{ending:"issons",stem:"ir",confidence:.88,type:"present"},{ending:"issez",stem:"ir",confidence:.88,type:"present"},{ending:"issent",stem:"ir",confidence:.88,type:"present"},{ending:"issais",stem:"ir",confidence:.85,type:"past"},{ending:"issait",stem:"ir",confidence:.85,type:"past"},{ending:"issions",stem:"ir",confidence:.88,type:"past"},{ending:"issiez",stem:"ir",confidence:.88,type:"past"},{ending:"issaient",stem:"ir",confidence:.88,type:"past"},{ending:"irai",stem:"ir",confidence:.85,type:"future"},{ending:"iras",stem:"ir",confidence:.85,type:"future"},{ending:"ira",stem:"ir",confidence:.82,type:"future"},{ending:"irons",stem:"ir",confidence:.88,type:"future"},{ending:"irez",stem:"ir",confidence:.88,type:"future"},{ending:"iront",stem:"ir",confidence:.88,type:"future"},{ending:"ir",stem:"ir",confidence:.9,type:"dictionary"}],Fh=[{ending:"ant",stem:"re",confidence:.82,type:"gerund"},{ending:"u",stem:"re",confidence:.8,type:"participle"},{ending:"ue",stem:"re",confidence:.82,type:"participle"},{ending:"us",stem:"re",confidence:.82,type:"participle"},{ending:"ues",stem:"re",confidence:.82,type:"participle"},{ending:"s",stem:"re",confidence:.72,type:"present"},{ending:"d",stem:"re",confidence:.75,type:"present"},{ending:"ons",stem:"re",confidence:.82,type:"present"},{ending:"ez",stem:"re",confidence:.82,type:"present"},{ending:"ent",stem:"re",confidence:.8,type:"present"},{ending:"re",stem:"re",confidence:.9,type:"dictionary"}],Uh=[...Hh,...Bh,...Fh].sort((e,t)=>t.ending.length-e.ending.length),new(Kh=class{constructor(){this.language="fr"}isNormalizable(e){return e.length>=3&&function(e){const t=e.toLowerCase();return!!(t.endsWith("er")||t.endsWith("ir")||t.endsWith("re")||t.endsWith("ant")||t.endsWith("é")||t.endsWith("i")||t.endsWith("u")||/[àâäéèêëïîôùûüÿçœæ]/i.test(e))}(e)}normalize(e){const t=e.toLowerCase();if((t.endsWith("er")||t.endsWith("ir")||t.endsWith("re"))&&t.length>=4)return ac(e);const r=this.tryReflexiveNormalization(t);if(r)return r;const n=this.tryConjugationNormalization(t);return n||ac(e)}tryReflexiveNormalization(e){for(const t of Vh){const r="-"+t;if(e.endsWith(r)){const t=e.slice(0,-r.length),n=this.tryConjugationNormalization(t);if(n&&n.stem!==t)return oc(n.stem,.95*n.confidence,{removedSuffixes:[r,...n.metadata?.removedSuffixes||[]],conjugationType:"reflexive"})}}return null}tryConjugationNormalization(e){for(const t of Uh)if(e.endsWith(t.ending)){const r=e.slice(0,-t.ending.length);if(2>r.length)continue;return oc(r+t.stem,t.confidence,{removedSuffixes:[t.ending],conjugationType:t.type})}return null}})}});var ef,tf,rf,nf=yc({"src/tokenizers/extractors/french-keyword.ts"(){var e;({isLetter:Yh,isIdentifierChar:Zh}=(e=/[a-zA-ZàâæçéèêëïîôùûüÿœÀÂÆÇÉÈÊËÏÎÔÙÛÜŸŒ]/,{isLetter:t=>e.test(t),isIdentifierChar:t=>/[0-9]/.test(t)||e.test(t)})),Xh=new Set(["à","a","de","du","des","dans","sur","sous","avec","sans","par","pour","entre","avant","après","apres","depuis","vers","chez","contre","au","aux"]),Jh=class{constructor(){this.name="french-keyword"}setContext(e){this.context=e}canExtract(e,t){return Yh(e[t])}extract(e,t){if(!this.context)throw Error("FrenchKeywordExtractor: context not set");let r=t,n="";for(;e.length>r&&Zh(e[r]);)n+=e[r++];if(!n)return null;const i=n.toLowerCase(),a=Xh.has(i),o=this.context.lookupKeyword(i),s=o&&o.normalized!==o.native?o.normalized:void 0;let l;if(!o&&this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const t=this.context.lookupKeyword(e.stem);t&&(l=t.normalized)}}return{value:n,length:r-t,metadata:{normalized:s||l,isPreposition:a}}}}}}),af={};vc(af,{FrenchTokenizer:()=>tf,frenchTokenizer:()=>rf});var of,sf,lf,cf,uf,pf,mf=yc({"src/tokenizers/french.ts"(){$c(),Gh(),Qh(),Xc(),um(),nf(),ef=[{native:"vrai",normalized:"true"},{native:"faux",normalized:"false"},{native:"nul",normalized:"null"},{native:"indéfini",normalized:"undefined"},{native:"indefini",normalized:"undefined"},{native:"premier",normalized:"first"},{native:"première",normalized:"first"},{native:"premiere",normalized:"first"},{native:"dernier",normalized:"last"},{native:"dernière",normalized:"last"},{native:"derniere",normalized:"last"},{native:"suivant",normalized:"next"},{native:"précédent",normalized:"previous"},{native:"precedent",normalized:"previous"},{native:"plus proche",normalized:"closest"},{native:"parent",normalized:"parent"},{native:"clic",normalized:"click"},{native:"click",normalized:"click"},{native:"entrée",normalized:"input"},{native:"entree",normalized:"input"},{native:"changement",normalized:"change"},{native:"soumission",normalized:"submit"},{native:"touche bas",normalized:"keydown"},{native:"touche haut",normalized:"keyup"},{native:"souris dessus",normalized:"mouseover"},{native:"souris dehors",normalized:"mouseout"},{native:"focus",normalized:"focus"},{native:"flou",normalized:"blur"},{native:"chargement",normalized:"load"},{native:"défilement",normalized:"scroll"},{native:"defilement",normalized:"scroll"},{native:"je",normalized:"me"},{native:"mon",normalized:"my"},{native:"ma",normalized:"my"},{native:"mes",normalized:"my"},{native:"ça",normalized:"it"},{native:"ca",normalized:"it"},{native:"resultat",normalized:"result"},{native:"evenement",normalized:"event"},{native:"seconde",normalized:"s"},{native:"secondes",normalized:"s"},{native:"milliseconde",normalized:"ms"},{native:"millisecondes",normalized:"ms"},{native:"minute",normalized:"m"},{native:"minutes",normalized:"m"},{native:"heure",normalized:"h"},{native:"heures",normalized:"h"},{native:"prefixer",normalized:"prepend"},{native:"creer",normalized:"make"},{native:"definir",normalized:"set"},{native:"etablir",normalized:"set"},{native:"incrementer",normalized:"increment"},{native:"decrementer",normalized:"decrement"},{native:"declencher",normalized:"trigger"},{native:"defocaliser",normalized:"blur"},{native:"recuperer",normalized:"fetch"},{native:"repeter",normalized:"repeat"},{native:"arreter",normalized:"halt"},{native:"defaut",normalized:"default"},{native:"jusqua",normalized:"until"},{native:"apres",normalized:"after"},{native:"journaliser",normalized:"log"},{native:"transmuter",normalized:"morph"},{native:"tant que",normalized:"while"}],rf=new(tf=class extends ic{constructor(){super(),this.language="fr",this.direction="ltr",this.initializeKeywordsFromProfile(_h,ef),this.normalizer=new Kh,this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractors([new Jh]),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){return this.isKeyword(e)?"keyword":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":["==","!=","<=",">=","<",">","&&","||","!"].includes(e)?"operator":e.startsWith("/")||e.startsWith("./")||e.startsWith("http")?"url":"identifier"}})}}),df=yc({"src/generators/profiles/hebrew.ts"(){of={code:"he",name:"Hebrew",nativeName:"עברית",direction:"rtl",script:"hebrew",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,verb:{position:"second",subjectDrop:!0},references:{me:"אני",it:"זה",you:"אתה",result:"תוצאה",event:"אירוע",target:"יעד",body:"גוף"},possessive:{marker:"של",markerPosition:"before-property",usePossessiveAdjectives:!0,specialForms:{me:"שלי",it:"שלו",you:"שלך"},keywords:{"שלי":"me","שלך":"you","שלו":"it","שלה":"it"}},roleMarkers:{destination:{primary:"על",alternatives:["ב","אל","ל"],position:"before"},source:{primary:"מ",alternatives:["מן","מאת"],position:"before"},patient:{primary:"את",position:"before"},style:{primary:"עם",alternatives:["ב"],position:"before"}},keywords:{toggle:{primary:"מתג",alternatives:["הדלק כבה"],normalized:"toggle"},add:{primary:"הוסף",normalized:"add"},remove:{primary:"הסר",alternatives:["מחק","הורד"],normalized:"remove"},put:{primary:"שים",alternatives:["הנח","הכנס"],normalized:"put"},append:{primary:"צרף",alternatives:["הוסף בסוף"],normalized:"append"},prepend:{primary:"הקדם",alternatives:["הוסף בהתחלה"],normalized:"prepend"},take:{primary:"קח",normalized:"take"},make:{primary:"צור",alternatives:["הכן"],normalized:"make"},clone:{primary:"שכפל",normalized:"clone"},swap:{primary:"החלף",alternatives:["המר"],normalized:"swap"},morph:{primary:"הפוך",alternatives:["עצב מחדש"],normalized:"morph"},set:{primary:"קבע",alternatives:["הגדר"],normalized:"set"},get:{primary:"קבל",alternatives:["השג"],normalized:"get"},increment:{primary:"הגדל",alternatives:["הוסף אחד"],normalized:"increment"},decrement:{primary:"הקטן",alternatives:["הפחת"],normalized:"decrement"},log:{primary:"רשום",normalized:"log"},show:{primary:"הראה",alternatives:["הצג"],normalized:"show"},hide:{primary:"הסתר",alternatives:["החבא"],normalized:"hide"},transition:{primary:"מעבר",alternatives:["הנפש"],normalized:"transition"},on:{primary:"ב",alternatives:["עם"],normalized:"on"},trigger:{primary:"הפעל",alternatives:["שגר"],normalized:"trigger"},send:{primary:"שלח",normalized:"send"},focus:{primary:"מקד",alternatives:["התמקד"],normalized:"focus"},blur:{primary:"טשטש",alternatives:["הסר מיקוד"],normalized:"blur"},go:{primary:"לך",alternatives:["נווט"],normalized:"go"},wait:{primary:"חכה",alternatives:["המתן"],normalized:"wait"},fetch:{primary:"הבא",alternatives:["טען"],normalized:"fetch"},settle:{primary:"התייצב",normalized:"settle"},if:{primary:"אם",normalized:"if"},when:{primary:"כאשר",alternatives:["כש"],normalized:"when"},where:{primary:"איפה",alternatives:["היכן"],normalized:"where"},else:{primary:"אחרת",alternatives:["אם לא"],normalized:"else"},repeat:{primary:"חזור",normalized:"repeat"},for:{primary:"עבור",alternatives:["לכל"],normalized:"for"},while:{primary:"כל עוד",alternatives:["בזמן"],normalized:"while"},continue:{primary:"המשך",normalized:"continue"},halt:{primary:"עצור",alternatives:["הפסק"],normalized:"halt"},throw:{primary:"זרוק",normalized:"throw"},call:{primary:"קרא",alternatives:["זמן"],normalized:"call"},return:{primary:"החזר",normalized:"return"},then:{primary:"אז",alternatives:["ואז"],normalized:"then"},and:{primary:"וגם",alternatives:["גם"],normalized:"and"},end:{primary:"סוף",alternatives:["סיום"],normalized:"end"},js:{primary:"js",alternatives:["ג׳אווהסקריפט"],normalized:"js"},async:{primary:"אסינכרוני",normalized:"async"},tell:{primary:"אמור",normalized:"tell"},default:{primary:"ברירת מחדל",normalized:"default"},init:{primary:"אתחל",alternatives:["התחל"],normalized:"init"},behavior:{primary:"התנהגות",normalized:"behavior"},install:{primary:"התקן",normalized:"install"},measure:{primary:"מדוד",normalized:"measure"},beep:{primary:"ביפ",normalized:"beep"},break:{primary:"שבור",normalized:"break"},copy:{primary:"העתק",normalized:"copy"},exit:{primary:"צא",normalized:"exit"},pick:{primary:"בחר",normalized:"pick"},render:{primary:"רנדר",normalized:"render"},into:{primary:"לתוך",alternatives:["אל"],normalized:"into"},before:{primary:"לפני",normalized:"before"},after:{primary:"אחרי",normalized:"after"},click:{primary:"לחיצה",alternatives:["קליק"],normalized:"click"},hover:{primary:"ריחוף",normalized:"hover"},submit:{primary:"שליחה",alternatives:["הגשה"],normalized:"submit"},input:{primary:"קלט",alternatives:["הזנה"],normalized:"input"},change:{primary:"שינוי",alternatives:["עדכון"],normalized:"change"},until:{primary:"עד",normalized:"until"},event:{primary:"אירוע",normalized:"event"},from:{primary:"מ",alternatives:["מאת"],normalized:"from"}},tokenization:{prefixes:["ה","ו","ב","כ","ל","מ","ש"]},eventHandler:{keyword:{primary:"ב",alternatives:["עם"],normalized:"on"},sourceMarker:{primary:"מ",alternatives:["מאת"],position:"before"},conditionalKeyword:{primary:"כאשר",alternatives:["כש","אם"]},eventMarker:{primary:"ב",alternatives:["כש","עם"],position:"before"},temporalMarkers:["כאשר","כש","עם"]}}}}),hf=yc({"src/tokenizers/he.ts"(){$c(),df(),Xc(),um(),Jp(),em(),rm(),sf=new Set(["על","את","אל","מן","עם","בתוך","מתוך","ליד","אחרי","לפני","בין","עד","של"]),lf=[{native:"אמת",normalized:"true"},{native:"שקר",normalized:"false"},{native:"null",normalized:"null"},{native:"ריק",normalized:"null"},{native:"לא מוגדר",normalized:"undefined"},{native:"ראשון",normalized:"first"},{native:"אחרון",normalized:"last"},{native:"הבא",normalized:"next"},{native:"הקודם",normalized:"previous"},{native:"הקרוב",normalized:"closest"},{native:"הורה",normalized:"parent"},{native:"לחיצה",normalized:"click"},{native:"קליק",normalized:"click"},{native:"קלט",normalized:"input"},{native:"שינוי",normalized:"change"},{native:"שליחה",normalized:"submit"},{native:"מיקוד",normalized:"focus"},{native:"טשטוש",normalized:"blur"},{native:"לחיצת מקש",normalized:"keydown"},{native:"שחרור מקש",normalized:"keyup"},{native:"מעבר עכבר",normalized:"mouseover"},{native:"יציאת עכבר",normalized:"mouseout"},{native:"טעינה",normalized:"load"},{native:"גלילה",normalized:"scroll"},{native:"היא",normalized:"it"},{native:"הוא",normalized:"it"},{native:"את",normalized:"you"},{native:"שנייה",normalized:"s"},{native:"שניות",normalized:"s"},{native:"מילישנייה",normalized:"ms"},{native:"דקה",normalized:"m"},{native:"דקות",normalized:"m"},{native:"שעה",normalized:"h"},{native:"שעות",normalized:"h"}],cf=new class extends ic{constructor(){super(),this.language="he",this.direction="rtl",this.initializeKeywordsFromProfile(of,lf),this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractor(new Qp),this.registerExtractor(new Xp),this.registerExtractors([new Fp]),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){return sf.has(e)?"particle":this.isKeyword(e)?"keyword":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":["==","!=","<=",">=","<",">","&&","||","!"].includes(e)?"operator":"identifier"}}}});function ff(e){return/[\u0900-\u097F\u0A8E-\u0A8F]/u.test(e)}var yf,vf=yc({"src/tokenizers/morphology/hindi-normalizer.ts"(){Dc(),uf=[{suffix:" रहा है",replacement:"",confidence:.82,type:"progressive",minStemLength:1},{suffix:" रही है",replacement:"",confidence:.82,type:"progressive",minStemLength:1},{suffix:" रहे हैं",replacement:"",confidence:.82,type:"progressive",minStemLength:1},{suffix:"रहा",replacement:"",confidence:.82,type:"progressive",minStemLength:1},{suffix:"रही",replacement:"",confidence:.82,type:"progressive",minStemLength:1},{suffix:"रहे",replacement:"",confidence:.82,type:"progressive",minStemLength:1},{suffix:"ूंगा",replacement:"",confidence:.85,type:"future",minStemLength:1},{suffix:"ूंगी",replacement:"",confidence:.85,type:"future",minStemLength:1},{suffix:"ेगा",replacement:"",confidence:.85,type:"future",minStemLength:1},{suffix:"ेगी",replacement:"",confidence:.85,type:"future",minStemLength:1},{suffix:"ेंगे",replacement:"",confidence:.85,type:"future",minStemLength:1},{suffix:"ता है",replacement:"",confidence:.85,type:"present",minStemLength:1},{suffix:"ती है",replacement:"",confidence:.85,type:"present",minStemLength:1},{suffix:"ते हैं",replacement:"",confidence:.85,type:"present",minStemLength:1},{suffix:"ता",replacement:"",confidence:.85,type:"present",minStemLength:1},{suffix:"ती",replacement:"",confidence:.85,type:"present",minStemLength:1},{suffix:"ते",replacement:"",confidence:.85,type:"present",minStemLength:1},{suffix:"ना",replacement:"",confidence:.9,type:"dictionary",minStemLength:1},{suffix:"ाया",replacement:"",confidence:.82,type:"past",minStemLength:1},{suffix:"ायी",replacement:"",confidence:.82,type:"past",minStemLength:1},{suffix:"ाये",replacement:"",confidence:.82,type:"past",minStemLength:1},{suffix:"या",replacement:"",confidence:.82,type:"past",minStemLength:1},{suffix:"िये",replacement:"",confidence:.85,type:"imperative",minStemLength:1},{suffix:"िए",replacement:"",confidence:.85,type:"imperative",minStemLength:1},{suffix:"ई",replacement:"",confidence:.82,type:"past",minStemLength:1},{suffix:"ए",replacement:"",confidence:.82,type:"past",minStemLength:1},{suffix:"ें",replacement:"",confidence:.85,type:"imperative",minStemLength:1},{suffix:"ो",replacement:"",confidence:.85,type:"imperative",minStemLength:1},{suffix:"ा",replacement:"",confidence:.82,type:"past",minStemLength:2},{suffix:"ी",replacement:"",confidence:.82,type:"past",minStemLength:2},{suffix:"े",replacement:"",confidence:.82,type:"past",minStemLength:2}],new(pf=class{constructor(){this.language="hi"}isNormalizable(e){return e.length>=2&&ff(e)}normalize(e){const t=this.tryConjugationNormalization(e);return t||ac(e)}tryConjugationNormalization(e){for(const t of uf)if(e.endsWith(t.suffix)){const r=Array.from(e),n=Array.from(t.suffix),i=r.slice(0,r.length-n.length),a=i.join("")+t.replacement;if((t.minStemLength??1)>i.length)continue;if(a.length>0&&!ff(a))continue;return oc(a,t.confidence,{removedSuffixes:[t.suffix],conjugationType:t.type})}return null}})}}),gf={};vc(gf,{hindiProfile:()=>yf});var kf,bf,wf,zf,xf=yc({"src/generators/profiles/hindi.ts"(){yf={code:"hi",name:"Hindi",nativeName:"हिन्दी",direction:"ltr",script:"devanagari",wordOrder:"SOV",markingStrategy:"postposition",usesSpaces:!0,defaultVerbForm:"imperative",verb:{position:"end",suffixes:["ें","ा","ी","े","ो"],subjectDrop:!0},references:{me:"मैं",it:"यह",you:"आप",result:"परिणाम",event:"घटना",target:"लक्ष्य",body:"बॉडी"},possessive:{marker:"का",markerPosition:"between",keywords:{"मेरा":"me","मेरी":"me","मेरे":"me","तेरा":"you","तेरी":"you","तेरे":"you","आपका":"you","आपकी":"you","आपके":"you","उसका":"it","उसकी":"it","उसके":"it","इसका":"it","इसकी":"it","इसके":"it"}},roleMarkers:{patient:{primary:"को",position:"after"},destination:{primary:"में",alternatives:["को","पर"],position:"after"},source:{primary:"से",position:"after"},style:{primary:"से",position:"after"},event:{primary:"पर",position:"after"}},keywords:{toggle:{primary:"टॉगल",alternatives:["बदलें","बदल"],normalized:"toggle"},add:{primary:"जोड़ें",alternatives:["जोड़"],normalized:"add"},remove:{primary:"हटाएं",alternatives:["हटा","मिटाएं"],normalized:"remove"},put:{primary:"रखें",alternatives:["रख","डालें","डाल"],normalized:"put"},append:{primary:"जोड़ें_अंत",alternatives:[],normalized:"append"},prepend:{primary:"जोड़ें_शुरू",alternatives:[],normalized:"prepend"},take:{primary:"लें",alternatives:["ले"],normalized:"take"},make:{primary:"बनाएं",alternatives:["बना"],normalized:"make"},clone:{primary:"क्लोन",alternatives:["प्रतिलिपि"],normalized:"clone"},swap:{primary:"बदलें_स्थान",alternatives:[],normalized:"swap"},morph:{primary:"रूपांतर",alternatives:[],normalized:"morph"},set:{primary:"सेट",alternatives:["निर्धारित"],normalized:"set"},get:{primary:"प्राप्त",alternatives:["पाएं"],normalized:"get"},increment:{primary:"बढ़ाएं",alternatives:["बढ़ा"],normalized:"increment"},decrement:{primary:"घटाएं",alternatives:["घटा"],normalized:"decrement"},log:{primary:"लॉग",alternatives:["दर्ज"],normalized:"log"},show:{primary:"दिखाएं",alternatives:["दिखा"],normalized:"show"},hide:{primary:"छिपाएं",alternatives:["छिपा"],normalized:"hide"},transition:{primary:"संक्रमण",alternatives:[],normalized:"transition"},on:{primary:"पर",alternatives:[],normalized:"on"},trigger:{primary:"ट्रिगर",alternatives:[],normalized:"trigger"},send:{primary:"भेजें",alternatives:["भेज"],normalized:"send"},focus:{primary:"फोकस",alternatives:["केंद्रित"],normalized:"focus"},blur:{primary:"धुंधला",alternatives:["फोकस_हटाएं"],normalized:"blur"},click:{primary:"क्लिक",normalized:"click"},hover:{primary:"होवर",alternatives:["ऊपर_रखें"],normalized:"hover"},submit:{primary:"सबमिट",alternatives:["जमा"],normalized:"submit"},input:{primary:"इनपुट",alternatives:[],normalized:"input"},change:{primary:"बदलाव",alternatives:["परिवर्तन"],normalized:"change"},go:{primary:"जाएं",alternatives:["जा"],normalized:"go"},wait:{primary:"प्रतीक्षा",alternatives:["रुकें"],normalized:"wait"},fetch:{primary:"लाएं",alternatives:[],normalized:"fetch"},settle:{primary:"स्थिर",alternatives:[],normalized:"settle"},if:{primary:"अगर",alternatives:["यदि"],normalized:"if"},when:{primary:"जब",normalized:"when"},where:{primary:"कहाँ",normalized:"where"},else:{primary:"वरना",alternatives:["नहीं तो"],normalized:"else"},repeat:{primary:"दोहराएं",alternatives:["दोहरा"],normalized:"repeat"},for:{primary:"के लिए",alternatives:[],normalized:"for"},while:{primary:"जब तक",alternatives:[],normalized:"while"},continue:{primary:"जारी",alternatives:[],normalized:"continue"},halt:{primary:"रोकें",alternatives:["रोक"],normalized:"halt"},throw:{primary:"फेंकें",alternatives:["फेंक"],normalized:"throw"},call:{primary:"कॉल",alternatives:["बुलाएं"],normalized:"call"},return:{primary:"लौटाएं",alternatives:["लौटा"],normalized:"return"},then:{primary:"फिर",alternatives:["तब"],normalized:"then"},and:{primary:"और",alternatives:[],normalized:"and"},end:{primary:"समाप्त",alternatives:["अंत"],normalized:"end"},js:{primary:"जेएस",alternatives:["js"],normalized:"js"},async:{primary:"असिंक",alternatives:[],normalized:"async"},tell:{primary:"बताएं",alternatives:["बता"],normalized:"tell"},default:{primary:"डिफ़ॉल्ट",alternatives:[],normalized:"default"},init:{primary:"प्रारंभ",alternatives:[],normalized:"init"},behavior:{primary:"व्यवहार",alternatives:[],normalized:"behavior"},install:{primary:"इंस्टॉल",alternatives:[],normalized:"install"},measure:{primary:"मापें",alternatives:[],normalized:"measure"},beep:{primary:"बीप",alternatives:[],normalized:"beep"},break:{primary:"तोड़ें",alternatives:[],normalized:"break"},copy:{primary:"कॉपी",alternatives:[],normalized:"copy"},exit:{primary:"बाहर",alternatives:[],normalized:"exit"},pick:{primary:"चुनें",alternatives:[],normalized:"pick"},render:{primary:"रेंडर",alternatives:[],normalized:"render"},into:{primary:"में",alternatives:["को"],normalized:"into"},before:{primary:"से पहले",alternatives:["पहले"],normalized:"before"},after:{primary:"के बाद",alternatives:["बाद"],normalized:"after"},until:{primary:"तक",alternatives:[],normalized:"until"},event:{primary:"घटना",alternatives:[],normalized:"event"},from:{primary:"से",normalized:"from"}},tokenization:{particles:["को","में","पर","से","का","की","के","तक","ने"],boundaryStrategy:"space"},eventHandler:{keyword:{primary:"पर",alternatives:[],normalized:"on"},sourceMarker:{primary:"से",position:"after"},eventMarker:{primary:"पर",alternatives:["में"],position:"after"},temporalMarkers:["जब","जब भी"]}}}}),Ef={};vc(Ef,{HindiTokenizer:()=>wf,hindiTokenizer:()=>zf});var Tf,Sf=yc({"src/tokenizers/hindi.ts"(){$c(),vf(),xf(),Xc(),um(),ep(),tp(),rm(),kf=new Set(["को","में","पर","से","का","की","के","तक","ने"]),bf=[{native:"सच",normalized:"true"},{native:"सत्य",normalized:"true"},{native:"झूठ",normalized:"false"},{native:"असत्य",normalized:"false"},{native:"खाली",normalized:"null"},{native:"अपरिभाषित",normalized:"undefined"},{native:"पहला",normalized:"first"},{native:"अंतिम",normalized:"last"},{native:"अगला",normalized:"next"},{native:"पिछला",normalized:"previous"},{native:"निकटतम",normalized:"closest"},{native:"मूल",normalized:"parent"},{native:"क्लिक",normalized:"click"},{native:"परिवर्तन",normalized:"change"},{native:"जमा",normalized:"submit"},{native:"इनपुट",normalized:"input"},{native:"लोड",normalized:"load"},{native:"स्क्रॉल",normalized:"scroll"},{native:"को",normalized:"to"},{native:"के साथ",normalized:"with"}],zf=new(wf=class extends ic{constructor(){super(),this.language="hi",this.direction="ltr",this.initializeKeywordsFromProfile(yf,bf),this.normalizer=new pf,this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractor(new Ju),this.registerExtractor(new Ku),this.registerExtractor(new Qp),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){return kf.has(e)?"particle":this.isKeyword(e)?"keyword":e.startsWith("/")||e.startsWith("./")||e.startsWith("../")||e.startsWith("http")?"url":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":(e.startsWith(":"),"identifier")}})}}),Cf={};vc(Cf,{indonesianProfile:()=>Tf});var Af,Lf,jf,Pf,Nf=yc({"src/generators/profiles/indonesian.ts"(){Tf={code:"id",name:"Indonesian",nativeName:"Bahasa Indonesia",direction:"ltr",script:"latin",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,verb:{position:"start",subjectDrop:!0},references:{me:"saya",it:"itu",you:"anda",result:"hasil",event:"peristiwa",target:"target",body:"tubuh"},possessive:{marker:"",markerPosition:"after-object",usePossessiveAdjectives:!0,specialForms:{me:"saya",it:"nya",you:"anda"},keywords:{saya:"me",aku:"me",ku:"me",anda:"you",kamu:"you",mu:"you",nya:"it",dia:"it"}},roleMarkers:{destination:{primary:"pada",alternatives:["ke","di"],position:"before"},source:{primary:"dari",position:"before"},patient:{primary:"",position:"before"},style:{primary:"dengan",position:"before"}},keywords:{toggle:{primary:"alihkan",normalized:"toggle"},add:{primary:"tambah",alternatives:["tambahkan"],normalized:"add"},remove:{primary:"hapus",alternatives:["buang","hilangkan"],normalized:"remove"},put:{primary:"taruh",alternatives:["letakkan","masukkan"],normalized:"put"},append:{primary:"sisipkan",normalized:"append"},prepend:{primary:"awali",normalized:"prepend"},take:{primary:"ambil",normalized:"take"},make:{primary:"buat",alternatives:["bikin","ciptakan"],normalized:"make"},clone:{primary:"klon",alternatives:["tiru"],normalized:"clone"},swap:{primary:"tukar",alternatives:["ganti"],normalized:"swap"},morph:{primary:"ubah",alternatives:["transformasi"],normalized:"morph"},set:{primary:"atur",alternatives:["tetapkan"],normalized:"set"},get:{primary:"dapatkan",alternatives:["peroleh"],normalized:"get"},increment:{primary:"tingkatkan",alternatives:["naikkan"],normalized:"increment"},decrement:{primary:"turunkan",alternatives:["kurangi"],normalized:"decrement"},log:{primary:"catat",alternatives:["rekam","cetak"],normalized:"log"},show:{primary:"tampilkan",alternatives:["perlihatkan"],normalized:"show"},hide:{primary:"sembunyikan",alternatives:["tutup"],normalized:"hide"},transition:{primary:"transisi",alternatives:["animasikan"],normalized:"transition"},on:{primary:"pada",alternatives:["saat"],normalized:"on"},trigger:{primary:"picu",alternatives:["jalankan"],normalized:"trigger"},send:{primary:"kirim",alternatives:["kirimkan"],normalized:"send"},focus:{primary:"fokus",alternatives:["fokuskan"],normalized:"focus"},blur:{primary:"blur",normalized:"blur"},go:{primary:"pergi",alternatives:["pindah","navigasi"],normalized:"go"},wait:{primary:"tunggu",normalized:"wait"},fetch:{primary:"muat",normalized:"fetch"},settle:{primary:"stabilkan",normalized:"settle"},if:{primary:"jika",alternatives:["kalau","bila"],normalized:"if"},when:{primary:"ketika",normalized:"when"},where:{primary:"di_mana",normalized:"where"},else:{primary:"selainnya",normalized:"else"},repeat:{primary:"ulangi",normalized:"repeat"},for:{primary:"untuk",normalized:"for"},while:{primary:"selama",normalized:"while"},continue:{primary:"lanjutkan",alternatives:["terus"],normalized:"continue"},halt:{primary:"hentikan",alternatives:["berhenti"],normalized:"halt"},throw:{primary:"lempar",normalized:"throw"},call:{primary:"panggil",normalized:"call"},return:{primary:"kembalikan",alternatives:["kembali"],normalized:"return"},then:{primary:"lalu",alternatives:["kemudian","setelah itu"],normalized:"then"},and:{primary:"dan",alternatives:["juga","serta"],normalized:"and"},end:{primary:"selesai",alternatives:["akhir","tamat"],normalized:"end"},js:{primary:"js",alternatives:["javascript"],normalized:"js"},async:{primary:"asinkron",normalized:"async"},tell:{primary:"katakan",alternatives:["beritahu"],normalized:"tell"},default:{primary:"bawaan",normalized:"default"},init:{primary:"inisialisasi",alternatives:["mulai"],normalized:"init"},behavior:{primary:"perilaku",normalized:"behavior"},install:{primary:"pasang",alternatives:["instal"],normalized:"install"},measure:{primary:"ukur",normalized:"measure"},beep:{primary:"bunyi",normalized:"beep"},break:{primary:"putuskan",normalized:"break"},copy:{primary:"salin",normalized:"copy"},exit:{primary:"keluar",normalized:"exit"},pick:{primary:"pilih",normalized:"pick"},render:{primary:"olah",normalized:"render"},into:{primary:"ke dalam",normalized:"into"},before:{primary:"sebelum",normalized:"before"},after:{primary:"sesudah",alternatives:["setelah"],normalized:"after"},click:{primary:"klik",alternatives:["tekan"],normalized:"click"},hover:{primary:"hover",alternatives:["arahkan"],normalized:"hover"},submit:{primary:"ajukan",normalized:"submit"},input:{primary:"masuk",alternatives:["input"],normalized:"input"},change:{primary:"berubah",normalized:"change"},until:{primary:"sampai",normalized:"until"},event:{primary:"peristiwa",alternatives:["event"],normalized:"event"},from:{primary:"dari",normalized:"from"}},eventHandler:{keyword:{primary:"pada",alternatives:["ketika","saat"],normalized:"on"},sourceMarker:{primary:"dari",position:"before"},conditionalKeyword:{primary:"ketika",alternatives:["saat","waktu"]},eventMarker:{primary:"saat",alternatives:["ketika"],position:"before"},temporalMarkers:["ketika","saat"]}}}}),Of={};vc(Of,{IndonesianTokenizer:()=>jf,indonesianTokenizer:()=>Pf});var If,Rf,Mf,Wf,qf,_f,$f=yc({"src/tokenizers/indonesian.ts"(){$c(),Nf(),Xc(),um(),Pp(),Af=new Set(["di","ke","dari","pada","dengan","tanpa","untuk","oleh","antara","sebelum","sesudah","setelah","selama","sampai","hingga","sejak","menuju","tentang","terhadap","melalui","dalam","luar"]),Lf=[{native:"benar",normalized:"true"},{native:"salah",normalized:"false"},{native:"null",normalized:"null"},{native:"kosong",normalized:"null"},{native:"tidakdidefinisikan",normalized:"undefined"},{native:"pertama",normalized:"first"},{native:"terakhir",normalized:"last"},{native:"berikutnya",normalized:"next"},{native:"sebelumnya",normalized:"previous"},{native:"terdekat",normalized:"closest"},{native:"induk",normalized:"parent"},{native:"klik",normalized:"click"},{native:"click",normalized:"click"},{native:"ubah",normalized:"change"},{native:"kirim",normalized:"submit"},{native:"tekan",normalized:"keydown"},{native:"arahkan",normalized:"mouseover"},{native:"tinggalkan",normalized:"mouseout"},{native:"kabur",normalized:"blur"},{native:"muat",normalized:"load"},{native:"gulir",normalized:"scroll"},{native:"input",normalized:"input"},{native:"milik",normalized:"my"},{native:"detik",normalized:"s"},{native:"milidetik",normalized:"ms"},{native:"menit",normalized:"m"},{native:"jam",normalized:"h"},{native:"atau",normalized:"or"},{native:"tidak",normalized:"not"},{native:"adalah",normalized:"is"},{native:"ada",normalized:"exists"}],Pf=new(jf=class extends ic{constructor(){super(),this.language="id",this.direction="ltr",this.initializeKeywordsFromProfile(Tf,Lf),this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractors([new Tp]),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){const t=e.toLowerCase();return Af.has(t)?"particle":this.isKeyword(t)?"keyword":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":["==","!=","<=",">=","<",">","&&","||","!"].includes(e)?"operator":"identifier"}})}});function Df(e){return/[àèéìíîòóùúÀÈÉÌÍÎÒÓÙÚ]/.test(e)}var Vf,Hf=yc({"src/tokenizers/morphology/italian-normalizer.ts"(){Dc(),If=["si","mi","ti","ci","vi"],Rf=[{ending:"ando",stem:"are",confidence:.88,type:"gerund"},{ending:"ato",stem:"are",confidence:.88,type:"participle"},{ending:"ata",stem:"are",confidence:.88,type:"participle"},{ending:"ati",stem:"are",confidence:.88,type:"participle"},{ending:"ate",stem:"are",confidence:.88,type:"participle"},{ending:"o",stem:"are",confidence:.75,type:"present"},{ending:"i",stem:"are",confidence:.72,type:"present"},{ending:"a",stem:"are",confidence:.75,type:"present"},{ending:"iamo",stem:"are",confidence:.85,type:"present"},{ending:"ate",stem:"are",confidence:.85,type:"present"},{ending:"ano",stem:"are",confidence:.85,type:"present"},{ending:"avo",stem:"are",confidence:.88,type:"past"},{ending:"avi",stem:"are",confidence:.88,type:"past"},{ending:"ava",stem:"are",confidence:.88,type:"past"},{ending:"avamo",stem:"are",confidence:.88,type:"past"},{ending:"avate",stem:"are",confidence:.88,type:"past"},{ending:"avano",stem:"are",confidence:.88,type:"past"},{ending:"ai",stem:"are",confidence:.85,type:"past"},{ending:"asti",stem:"are",confidence:.88,type:"past"},{ending:"ò",stem:"are",confidence:.85,type:"past"},{ending:"ammo",stem:"are",confidence:.88,type:"past"},{ending:"aste",stem:"are",confidence:.88,type:"past"},{ending:"arono",stem:"are",confidence:.88,type:"past"},{ending:"i",stem:"are",confidence:.72,type:"subjunctive"},{ending:"ino",stem:"are",confidence:.82,type:"subjunctive"},{ending:"a",stem:"are",confidence:.75,type:"imperative"},{ending:"are",stem:"are",confidence:.92,type:"dictionary"}],Mf=[{ending:"endo",stem:"ere",confidence:.88,type:"gerund"},{ending:"uto",stem:"ere",confidence:.85,type:"participle"},{ending:"uta",stem:"ere",confidence:.85,type:"participle"},{ending:"uti",stem:"ere",confidence:.85,type:"participle"},{ending:"ute",stem:"ere",confidence:.85,type:"participle"},{ending:"o",stem:"ere",confidence:.72,type:"present"},{ending:"i",stem:"ere",confidence:.72,type:"present"},{ending:"e",stem:"ere",confidence:.72,type:"present"},{ending:"iamo",stem:"ere",confidence:.85,type:"present"},{ending:"ete",stem:"ere",confidence:.85,type:"present"},{ending:"ono",stem:"ere",confidence:.82,type:"present"},{ending:"evo",stem:"ere",confidence:.88,type:"past"},{ending:"evi",stem:"ere",confidence:.88,type:"past"},{ending:"eva",stem:"ere",confidence:.88,type:"past"},{ending:"evamo",stem:"ere",confidence:.88,type:"past"},{ending:"evate",stem:"ere",confidence:.88,type:"past"},{ending:"evano",stem:"ere",confidence:.88,type:"past"},{ending:"ei",stem:"ere",confidence:.85,type:"past"},{ending:"etti",stem:"ere",confidence:.85,type:"past"},{ending:"esti",stem:"ere",confidence:.88,type:"past"},{ending:"é",stem:"ere",confidence:.85,type:"past"},{ending:"ette",stem:"ere",confidence:.85,type:"past"},{ending:"emmo",stem:"ere",confidence:.88,type:"past"},{ending:"este",stem:"ere",confidence:.88,type:"past"},{ending:"erono",stem:"ere",confidence:.88,type:"past"},{ending:"ettero",stem:"ere",confidence:.88,type:"past"},{ending:"ere",stem:"ere",confidence:.92,type:"dictionary"}],Wf=[{ending:"endo",stem:"ire",confidence:.85,type:"gerund"},{ending:"ito",stem:"ire",confidence:.85,type:"participle"},{ending:"ita",stem:"ire",confidence:.85,type:"participle"},{ending:"iti",stem:"ire",confidence:.85,type:"participle"},{ending:"ite",stem:"ire",confidence:.85,type:"participle"},{ending:"o",stem:"ire",confidence:.7,type:"present"},{ending:"i",stem:"ire",confidence:.7,type:"present"},{ending:"e",stem:"ire",confidence:.7,type:"present"},{ending:"iamo",stem:"ire",confidence:.85,type:"present"},{ending:"ite",stem:"ire",confidence:.85,type:"present"},{ending:"ono",stem:"ire",confidence:.78,type:"present"},{ending:"isco",stem:"ire",confidence:.85,type:"present"},{ending:"isci",stem:"ire",confidence:.85,type:"present"},{ending:"isce",stem:"ire",confidence:.85,type:"present"},{ending:"iscono",stem:"ire",confidence:.88,type:"present"},{ending:"ivo",stem:"ire",confidence:.88,type:"past"},{ending:"ivi",stem:"ire",confidence:.88,type:"past"},{ending:"iva",stem:"ire",confidence:.88,type:"past"},{ending:"ivamo",stem:"ire",confidence:.88,type:"past"},{ending:"ivate",stem:"ire",confidence:.88,type:"past"},{ending:"ivano",stem:"ire",confidence:.88,type:"past"},{ending:"ii",stem:"ire",confidence:.85,type:"past"},{ending:"isti",stem:"ire",confidence:.88,type:"past"},{ending:"ì",stem:"ire",confidence:.85,type:"past"},{ending:"immo",stem:"ire",confidence:.88,type:"past"},{ending:"iste",stem:"ire",confidence:.88,type:"past"},{ending:"irono",stem:"ire",confidence:.88,type:"past"},{ending:"ire",stem:"ire",confidence:.92,type:"dictionary"}],qf=[...Rf,...Mf,...Wf].sort((e,t)=>t.ending.length-e.ending.length),new(_f=class{constructor(){this.language="it"}isNormalizable(e){return e.length>=3&&function(e){const t=e.toLowerCase();if(t.endsWith("are")||t.endsWith("ere")||t.endsWith("ire"))return!0;if(t.endsWith("ando")||t.endsWith("endo"))return!0;if(t.endsWith("ato")||t.endsWith("uto")||t.endsWith("ito"))return!0;if(t.endsWith("arsi")||t.endsWith("ersi")||t.endsWith("irsi"))return!0;for(const t of e)if(Df(t))return!0;return!1}(e)}normalize(e){const t=e.toLowerCase();if((t.endsWith("are")||t.endsWith("ere")||t.endsWith("ire"))&&!If.some(e=>t.endsWith(e+"are")||t.endsWith(e+"ere")||t.endsWith(e+"ire")))return ac(e);const r=this.tryReflexiveNormalization(t);if(r)return r;const n=this.tryConjugationNormalization(t);return n||ac(e)}tryReflexiveNormalization(e){for(const t of If)if(e.endsWith(t)){const r=e.slice(0,-t.length);if(r.endsWith("ar")||r.endsWith("er")||r.endsWith("ir")){return oc(r+"e",.88,{removedSuffixes:[t],conjugationType:"reflexive"})}if(r.endsWith("are")||r.endsWith("ere")||r.endsWith("ire"))return oc(r,.88,{removedSuffixes:[t],conjugationType:"reflexive"});const n=this.tryConjugationNormalization(r);if(n&&n.stem!==r)return oc(n.stem,.95*n.confidence,{removedSuffixes:[t,...n.metadata?.removedSuffixes||[]],conjugationType:"reflexive"})}return null}tryConjugationNormalization(e){for(const t of qf)if(e.endsWith(t.ending)){const r=e.slice(0,-t.ending.length);if(2>r.length)continue;return oc(r+t.stem,t.confidence,{removedSuffixes:[t.ending],conjugationType:t.type})}return null}})}}),Bf={};vc(Bf,{italianProfile:()=>Vf});var Ff,Uf,Kf=yc({"src/generators/profiles/italian.ts"(){Vf={code:"it",name:"Italian",nativeName:"Italiano",direction:"ltr",script:"latin",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,defaultVerbForm:"infinitive",verb:{position:"start",subjectDrop:!0},references:{me:"io",it:"esso",you:"tu",result:"risultato",event:"evento",target:"obiettivo",body:"corpo"},possessive:{marker:"di",markerPosition:"before-property",usePossessiveAdjectives:!0,specialForms:{me:"mio",it:"suo",you:"tuo"},keywords:{mio:"me",mia:"me",miei:"me",mie:"me",tuo:"you",tua:"you",tuoi:"you",tue:"you",suo:"it",sua:"it",suoi:"it",sue:"it"}},roleMarkers:{destination:{primary:"in",alternatives:["su","a"],position:"before"},source:{primary:"da",alternatives:["di"],position:"before"},patient:{primary:"",position:"before"},style:{primary:"con",position:"before"}},keywords:{toggle:{primary:"commutare",alternatives:["alternare"],normalized:"toggle"},add:{primary:"aggiungere",alternatives:["aggiungi"],normalized:"add"},remove:{primary:"rimuovere",alternatives:["eliminare","togliere"],normalized:"remove"},put:{primary:"mettere",alternatives:["inserire"],normalized:"put"},append:{primary:"accodare",normalized:"append"},prepend:{primary:"anteporre",normalized:"prepend"},take:{primary:"prendere",normalized:"take"},make:{primary:"fare",alternatives:["creare"],normalized:"make"},clone:{primary:"clonare",normalized:"clone"},swap:{primary:"scambiare",normalized:"swap"},morph:{primary:"trasformare",alternatives:["convertire"],normalized:"morph"},set:{primary:"impostare",alternatives:["definire"],normalized:"set"},get:{primary:"ottenere",normalized:"get"},increment:{primary:"incrementare",alternatives:["aumentare"],normalized:"increment"},decrement:{primary:"decrementare",alternatives:["diminuire"],normalized:"decrement"},log:{primary:"registrare",normalized:"log"},show:{primary:"mostrare",alternatives:["visualizzare"],normalized:"show"},hide:{primary:"nascondere",normalized:"hide"},transition:{primary:"transizione",alternatives:["animare"],normalized:"transition"},on:{primary:"su",alternatives:["al"],normalized:"on"},trigger:{primary:"scatenare",alternatives:["attivare"],normalized:"trigger"},send:{primary:"inviare",normalized:"send"},focus:{primary:"focalizzare",normalized:"focus"},blur:{primary:"sfuocare",normalized:"blur"},go:{primary:"andare",alternatives:["navigare","vai"],normalized:"go"},wait:{primary:"aspettare",alternatives:["attendere"],normalized:"wait"},fetch:{primary:"recuperare",normalized:"fetch"},settle:{primary:"stabilizzare",normalized:"settle"},if:{primary:"se",normalized:"if"},when:{primary:"quando",normalized:"when"},where:{primary:"dove",normalized:"where"},else:{primary:"altrimenti",normalized:"else"},repeat:{primary:"ripetere",normalized:"repeat"},for:{primary:"per",normalized:"for"},while:{primary:"mentre",normalized:"while"},continue:{primary:"continuare",normalized:"continue"},halt:{primary:"fermare",normalized:"halt"},throw:{primary:"lanciare",normalized:"throw"},call:{primary:"chiamare",normalized:"call"},return:{primary:"ritornare",normalized:"return"},then:{primary:"allora",alternatives:["poi","quindi"],normalized:"then"},and:{primary:"e",alternatives:["anche"],normalized:"and"},end:{primary:"fine",normalized:"end"},js:{primary:"js",normalized:"js"},async:{primary:"asincrono",normalized:"async"},tell:{primary:"dire",normalized:"tell"},default:{primary:"predefinito",normalized:"default"},init:{primary:"inizializzare",alternatives:["inizia"],normalized:"init"},behavior:{primary:"comportamento",normalized:"behavior"},install:{primary:"installare",normalized:"install"},measure:{primary:"misurare",normalized:"measure"},beep:{primary:"beep",normalized:"beep"},break:{primary:"interrompere",normalized:"break"},copy:{primary:"copiare",normalized:"copy"},exit:{primary:"uscire",normalized:"exit"},pick:{primary:"scegliere",normalized:"pick"},render:{primary:"renderizzare",normalized:"render"},into:{primary:"in",alternatives:["dentro"],normalized:"into"},before:{primary:"prima",normalized:"before"},after:{primary:"dopo",normalized:"after"},click:{primary:"clic",alternatives:["clicca"],normalized:"click"},hover:{primary:"passaggio",alternatives:["sorvolo"],normalized:"hover"},submit:{primary:"invio",alternatives:["sottomettere"],normalized:"submit"},input:{primary:"inserimento",alternatives:["input"],normalized:"input"},change:{primary:"cambio",alternatives:["cambiamento"],normalized:"change"},until:{primary:"fino",normalized:"until"},event:{primary:"evento",normalized:"event"},from:{primary:"da",alternatives:["di"],normalized:"from"}},eventHandler:{keyword:{primary:"su",alternatives:["al"],normalized:"on"},sourceMarker:{primary:"da",alternatives:["di"],position:"before"},conditionalKeyword:{primary:"quando",alternatives:["se"]},eventMarker:{primary:"al",alternatives:["allo","alla"],position:"before"},temporalMarkers:["quando","al"]}}}});var Gf,Yf,Zf,Xf,Jf=yc({"src/tokenizers/extractors/romance-language-keyword.ts"(){Ff=class{constructor(e,t,r){this.name=e;const n=(i=t,{isLetter:e=>i.test(e),isIdentifierChar:e=>/[0-9]/.test(e)||i.test(e)});var i;this.isLetter=n.isLetter,this.isIdentifierChar=n.isIdentifierChar,this.prepositions=r}setContext(e){this.context=e}canExtract(e,t){return this.isLetter(e[t])}extract(e,t){if(!this.context)throw Error(this.name+": context not set");let r=t,n="";for(;e.length>r&&this.isIdentifierChar(e[r]);)n+=e[r++];if(!n)return null;const i=n.toLowerCase(),a=this.prepositions.has(i),o=this.context.lookupKeyword(i),s=o&&o.normalized!==o.native?o.normalized:void 0;let l;if(!o&&this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const t=this.context.lookupKeyword(e.stem);t&&(l=t.normalized)}}return{value:n,length:r-t,metadata:{normalized:s||l,isPreposition:a}}}},Uf=new Set(["in","a","di","da","con","su","per","tra","fra","dopo","prima","dentro","fuori","sopra","sotto","al","allo","alla","ai","agli","alle","del","dello","della","dei","degli","delle","dal","dallo","dalla","dai","dagli","dalle","nel","nello","nella","nei","negli","nelle","sul","sullo","sulla","sui","sugli","sulle"])}}),Qf={};vc(Qf,{ItalianTokenizer:()=>Zf,italianTokenizer:()=>Xf});var ey,ty,ry,ny=yc({"src/tokenizers/italian.ts"(){$c(),Hf(),Kf(),Xc(),um(),Jf(),Gf=new Set(["in","a","di","da","con","su","per","tra","fra","dopo","prima","dentro","fuori","sopra","sotto","al","allo","alla","ai","agli","alle","del","dello","della","dei","degli","delle","dal","dallo","dalla","dai","dagli","dalle","nel","nello","nella","nei","negli","nelle","sul","sullo","sulla","sui","sugli","sulle"]),Yf=[{native:"vero",normalized:"true"},{native:"falso",normalized:"false"},{native:"nullo",normalized:"null"},{native:"indefinito",normalized:"undefined"},{native:"primo",normalized:"first"},{native:"prima",normalized:"first"},{native:"ultimo",normalized:"last"},{native:"ultima",normalized:"last"},{native:"prossimo",normalized:"next"},{native:"successivo",normalized:"next"},{native:"precedente",normalized:"previous"},{native:"vicino",normalized:"closest"},{native:"padre",normalized:"parent"},{native:"clic",normalized:"click"},{native:"click",normalized:"click"},{native:"fare clic",normalized:"click"},{native:"input",normalized:"input"},{native:"cambio",normalized:"change"},{native:"invio",normalized:"submit"},{native:"tasto giù",normalized:"keydown"},{native:"tasto su",normalized:"keyup"},{native:"mouse sopra",normalized:"mouseover"},{native:"mouse fuori",normalized:"mouseout"},{native:"fuoco",normalized:"focus"},{native:"sfuocatura",normalized:"blur"},{native:"caricamento",normalized:"load"},{native:"scorrimento",normalized:"scroll"},{native:"io",normalized:"me"},{native:"me",normalized:"me"},{native:"destinazione",normalized:"target"},{native:"secondo",normalized:"s"},{native:"secondi",normalized:"s"},{native:"millisecondo",normalized:"ms"},{native:"millisecondi",normalized:"ms"},{native:"minuto",normalized:"m"},{native:"minuti",normalized:"m"},{native:"ora",normalized:"h"},{native:"ore",normalized:"h"},{native:"fino a",normalized:"until"},{native:"prima di",normalized:"before"},{native:"dopo di",normalized:"after"},{native:"dentro di",normalized:"into"},{native:"fuori di",normalized:"out"},{native:"aggiungere",normalized:"add"},{native:"aggiungi",normalized:"add"},{native:"rimuovi",normalized:"remove"},{native:"elimina",normalized:"remove"},{native:"togli",normalized:"remove"},{native:"metti",normalized:"put"},{native:"inserisci",normalized:"put"},{native:"prendi",normalized:"take"},{native:"fai",normalized:"make"},{native:"crea",normalized:"make"},{native:"clona",normalized:"clone"},{native:"copia",normalized:"clone"},{native:"imposta",normalized:"set"},{native:"ottieni",normalized:"get"},{native:"incrementa",normalized:"increment"},{native:"aumenta",normalized:"increment"},{native:"decrementa",normalized:"decrement"},{native:"diminuisci",normalized:"decrement"},{native:"registra",normalized:"log"},{native:"mostra",normalized:"show"},{native:"visualizza",normalized:"show"},{native:"nascondi",normalized:"hide"},{native:"anima",normalized:"transition"},{native:"scatena",normalized:"trigger"},{native:"attiva",normalized:"trigger"},{native:"invia",normalized:"send"},{native:"focalizza",normalized:"focus"},{native:"sfuoca",normalized:"blur"},{native:"vai",normalized:"go"},{native:"naviga",normalized:"go"},{native:"aspetta",normalized:"wait"},{native:"attendi",normalized:"wait"},{native:"recupera",normalized:"fetch"},{native:"stabilizza",normalized:"settle"},{native:"ripeti",normalized:"repeat"},{native:"continua",normalized:"continue"},{native:"ferma",normalized:"halt"},{native:"lancia",normalized:"throw"},{native:"chiama",normalized:"call"},{native:"ritorna",normalized:"return"},{native:"inizializza",normalized:"init"},{native:"installa",normalized:"install"},{native:"misura",normalized:"measure"},{native:"e",normalized:"and"},{native:"o",normalized:"or"},{native:"non",normalized:"not"},{native:"è",normalized:"is"},{native:"esiste",normalized:"exists"},{native:"vuoto",normalized:"empty"},{native:"toggle",normalized:"toggle"},{native:"di",normalized:"tell"}],Xf=new(Zf=class extends ic{constructor(){super(),this.language="it",this.direction="ltr",this.initializeKeywordsFromProfile(Vf,Yf),this.setNormalizer(new _f),this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractors([new Ff("italian-keyword",/[a-zA-ZàèéìíîòóùúÀÈÉÌÍÎÒÓÙÚ]/,Uf)]),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){const t=e.toLowerCase();return Gf.has(t)?"particle":this.isKeyword(t)?"keyword":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":["==","!=","<=",">=","<",">","&&","||","!"].includes(e)?"operator":"identifier"}})}});function iy(e){const t=e.charCodeAt(0);return t>=12352&&12447>=t}function ay(e){const t=e.charCodeAt(0);return t>=12448&&12543>=t}function oy(e){const t=e.charCodeAt(0);return t>=19968&&40959>=t||t>=13312&&19903>=t}var sy,ly=yc({"src/tokenizers/morphology/japanese-normalizer.ts"(){Dc(),ey=[{pattern:"したら",confidence:.88,conjugationType:"conditional-tara",minStemLength:2},{pattern:"すると",confidence:.88,conjugationType:"conditional-to",minStemLength:2},{pattern:"すれば",confidence:.85,conjugationType:"conditional-ba",minStemLength:2},{pattern:"たら",confidence:.85,conjugationType:"conditional-tara",minStemLength:2},{pattern:"れば",confidence:.82,conjugationType:"conditional-ba",minStemLength:2},{pattern:"ていました",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"ています",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"てください",confidence:.85,conjugationType:"request",minStemLength:2},{pattern:"でください",confidence:.85,conjugationType:"request",minStemLength:2},{pattern:"ている",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"ておく",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"てみる",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"てある",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"てくれ",confidence:.8,conjugationType:"casual-request",minStemLength:2},{pattern:"でくれ",confidence:.8,conjugationType:"casual-request",minStemLength:2},{pattern:"ちゃった",confidence:.82,conjugationType:"contracted-past",minStemLength:2},{pattern:"じゃった",confidence:.82,conjugationType:"contracted-past",minStemLength:2},{pattern:"ちゃう",confidence:.82,conjugationType:"contracted",minStemLength:2},{pattern:"じゃう",confidence:.82,conjugationType:"contracted",minStemLength:2},{pattern:"ました",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"ません",confidence:.85,conjugationType:"negative",minStemLength:2},{pattern:"ます",confidence:.85,conjugationType:"polite",minStemLength:2},{pattern:"て",confidence:.85,conjugationType:"te-form",minStemLength:2},{pattern:"た",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"ない",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"なかった",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"られる",confidence:.8,conjugationType:"potential",minStemLength:2},{pattern:"れる",confidence:.78,conjugationType:"potential",minStemLength:2},{pattern:"られた",confidence:.8,conjugationType:"passive",minStemLength:2},{pattern:"させる",confidence:.8,conjugationType:"causative",minStemLength:2},{pattern:"せる",confidence:.78,conjugationType:"causative",minStemLength:2},{pattern:"よう",confidence:.8,conjugationType:"volitional",minStemLength:2},{pattern:"る",confidence:.75,conjugationType:"dictionary",minStemLength:3}],ty=[{pattern:"したら",confidence:.88,conjugationType:"conditional-tara"},{pattern:"すると",confidence:.88,conjugationType:"conditional-to"},{pattern:"すれば",confidence:.85,conjugationType:"conditional-ba"},{pattern:"しています",confidence:.85,conjugationType:"progressive"},{pattern:"している",confidence:.85,conjugationType:"progressive"},{pattern:"しました",confidence:.85,conjugationType:"past"},{pattern:"します",confidence:.85,conjugationType:"polite"},{pattern:"しない",confidence:.82,conjugationType:"negative"},{pattern:"して",confidence:.85,conjugationType:"te-form"},{pattern:"した",confidence:.85,conjugationType:"past"},{pattern:"する",confidence:.88,conjugationType:"dictionary"}],new(ry=class{constructor(){this.language="ja"}isNormalizable(e){if(!function(e){for(const t of e)if(iy(t)||ay(t)||oy(t))return!0;return!1}(e))return!1;if(2>e.length)return!1;return iy(e[e.length-1])}normalize(e){const t=this.normalizeCompound(e);if(t)return t;const r=this.trySuruNormalization(e);if(r)return r;for(const t of ey)if(e.endsWith(t.pattern)){const r=e.slice(0,-t.pattern.length);if((t.minStemLength??2)>r.length)continue;const n={removedSuffixes:[t.pattern]};return t.conjugationType&&(n.conjugationType=t.conjugationType),oc(r,t.confidence,n)}return ac(e)}trySuruNormalization(e){for(const t of ty)if(e.endsWith(t.pattern)){const r=e.slice(0,-t.pattern.length);if(1>r.length)continue;return oc(r,t.confidence,{removedSuffixes:[t.pattern],conjugationType:t.conjugationType,originalForm:"suru-verb"})}return null}normalizeCompound(e){const t=[{pattern:"ていなかった",suffixes:["て","い","なかった"],confidence:.8,minStemLength:2},{pattern:"でいなかった",suffixes:["で","い","なかった"],confidence:.8,minStemLength:2},{pattern:"ていない",suffixes:["て","い","ない"],confidence:.82,minStemLength:2},{pattern:"でいない",suffixes:["で","い","ない"],confidence:.82,minStemLength:2},{pattern:"ていた",suffixes:["て","い","た"],confidence:.85,minStemLength:2},{pattern:"でいた",suffixes:["で","い","た"],confidence:.85,minStemLength:2}];for(const{pattern:r,suffixes:n,confidence:i,minStemLength:a}of t)if(e.endsWith(r)){const t=e.slice(0,-r.length);if(a>t.length)continue;return oc(t,i,{removedSuffixes:n,conjugationType:"compound"})}return null}})}}),cy={};vc(cy,{japaneseProfile:()=>sy});var uy,py,my,dy,hy=yc({"src/generators/profiles/japanese.ts"(){sy={code:"ja",name:"Japanese",nativeName:"日本語",direction:"ltr",script:"cjk",wordOrder:"SOV",markingStrategy:"particle",usesSpaces:!1,defaultVerbForm:"base",verb:{position:"end",suffixes:["る","て","た","ます","ない"],subjectDrop:!0},references:{me:"自分",it:"それ",you:"あなた",result:"結果",event:"イベント",target:"ターゲット",body:"ボディ"},possessive:{marker:"の",markerPosition:"between",keywords:{"私の":"me","あなたの":"you","その":"it"}},roleMarkers:{patient:{primary:"を",position:"after"},destination:{primary:"に",alternatives:["へ","で","の"],position:"after"},source:{primary:"から",position:"after"},style:{primary:"で",position:"after"},event:{primary:"を",position:"after"}},keywords:{toggle:{primary:"切り替え",alternatives:["切り替える","トグル","トグルする"],normalized:"toggle"},add:{primary:"追加",alternatives:["追加する","加える"],normalized:"add"},remove:{primary:"削除",alternatives:["削除する","取り除く"],normalized:"remove"},put:{primary:"置く",alternatives:["入れる"],normalized:"put"},append:{primary:"末尾追加",alternatives:["末尾に追加","アペンド"],normalized:"append"},prepend:{primary:"先頭追加",alternatives:["先頭に追加","プリペンド"],normalized:"prepend"},take:{primary:"取る",normalized:"take"},make:{primary:"作る",alternatives:["作成"],normalized:"make"},clone:{primary:"複製",alternatives:["クローン"],normalized:"clone"},swap:{primary:"交換",alternatives:["スワップ","入れ替え"],normalized:"swap"},morph:{primary:"変形",alternatives:["モーフ","変換"],normalized:"morph"},set:{primary:"設定",alternatives:["設定する"],normalized:"set"},get:{primary:"取得",alternatives:["取得する","ゲット"],normalized:"get"},increment:{primary:"増加",alternatives:["増やす","インクリメント"],normalized:"increment"},decrement:{primary:"減少",alternatives:["減らす","デクリメント"],normalized:"decrement"},log:{primary:"記録",alternatives:["ログ","出力"],normalized:"log"},show:{primary:"表示",alternatives:["表示する","見せる"],normalized:"show"},hide:{primary:"隠す",alternatives:["非表示","非表示にする"],normalized:"hide"},transition:{primary:"遷移",alternatives:["トランジション","アニメーション"],normalized:"transition"},on:{primary:"で",alternatives:["時"],normalized:"on"},trigger:{primary:"引き金",alternatives:["発火","トリガー"],normalized:"trigger"},send:{primary:"送る",alternatives:["送信"],normalized:"send"},focus:{primary:"フォーカス",alternatives:["集中"],normalized:"focus"},blur:{primary:"ぼかし",alternatives:["フォーカス解除","ブラー"],normalized:"blur"},go:{primary:"移動",alternatives:["行く","ナビゲート"],normalized:"go"},wait:{primary:"待つ",alternatives:["待機"],normalized:"wait"},fetch:{primary:"フェッチ",normalized:"fetch"},settle:{primary:"安定",alternatives:["落ち着く"],normalized:"settle"},if:{primary:"もし",normalized:"if"},when:{primary:"とき",alternatives:["ときに"],normalized:"when"},where:{primary:"どこ",normalized:"where"},else:{primary:"そうでなければ",alternatives:["それ以外"],normalized:"else"},repeat:{primary:"繰り返し",alternatives:["繰り返す","リピート"],normalized:"repeat"},for:{primary:"ために",alternatives:["各"],normalized:"for"},while:{primary:"の間",alternatives:["間"],normalized:"while"},continue:{primary:"続ける",alternatives:["継続"],normalized:"continue"},halt:{primary:"停止",alternatives:["止める","ハルト"],normalized:"halt"},throw:{primary:"投げる",alternatives:["スロー"],normalized:"throw"},call:{primary:"呼び出し",alternatives:["コール","呼ぶ"],normalized:"call"},return:{primary:"戻る",alternatives:["返す","リターン"],normalized:"return"},then:{primary:"それから",alternatives:["次に","ならば","なら"],normalized:"then"},and:{primary:"また",alternatives:["と","そして"],normalized:"and"},end:{primary:"終わり",alternatives:["終了","おわり"],normalized:"end"},js:{primary:"JS実行",alternatives:["js"],normalized:"js"},async:{primary:"非同期",alternatives:["アシンク"],normalized:"async"},tell:{primary:"伝える",alternatives:["テル"],normalized:"tell"},default:{primary:"既定",alternatives:["デフォルト"],normalized:"default"},init:{primary:"初期化",alternatives:["イニット"],normalized:"init"},behavior:{primary:"振る舞い",alternatives:["ビヘイビア"],normalized:"behavior"},install:{primary:"インストール",alternatives:["導入"],normalized:"install"},measure:{primary:"測定",alternatives:["計測","メジャー"],normalized:"measure"},beep:{primary:"ビープ",normalized:"beep"},break:{primary:"中断",normalized:"break"},copy:{primary:"コピー",normalized:"copy"},exit:{primary:"退出",normalized:"exit"},pick:{primary:"選択",normalized:"pick"},render:{primary:"描画",normalized:"render"},into:{primary:"へ",alternatives:["に"],normalized:"into"},before:{primary:"前に",alternatives:["前"],normalized:"before"},after:{primary:"後に",alternatives:["後"],normalized:"after"},until:{primary:"まで",alternatives:["迄"],normalized:"until"},event:{primary:"イベント",alternatives:["事象"],normalized:"event"},from:{primary:"から",normalized:"from"}},tokenization:{particles:["を","に","で","から","の","が","は","も","へ","と"],boundaryStrategy:"particle"},eventHandler:{eventMarker:{primary:"で",position:"after"},temporalMarkers:["時","とき"]}}}}),fy={};vc(fy,{JapaneseTokenizer:()=>my,japaneseTokenizer:()=>dy});var yy,vy,gy,ky=yc({"src/tokenizers/japanese.ts"(){$c(),ly(),hy(),Xc(),um(),mu(),du(),rm(),uy=new Set(["を","に","で","から","まで","へ","と","の","が","は","も","より"]),py=[{native:"真",normalized:"true"},{native:"偽",normalized:"false"},{native:"ヌル",normalized:"null"},{native:"未定義",normalized:"undefined"},{native:"最初",normalized:"first"},{native:"最後",normalized:"last"},{native:"次",normalized:"next"},{native:"前",normalized:"previous"},{native:"最も近い",normalized:"closest"},{native:"親",normalized:"parent"},{native:"クリック",normalized:"click"},{native:"変更",normalized:"change"},{native:"送信",normalized:"submit"},{native:"入力",normalized:"input"},{native:"ロード",normalized:"load"},{native:"スクロール",normalized:"scroll"},{native:"キーダウン",normalized:"keydown"},{native:"キーアップ",normalized:"keyup"},{native:"マウスオーバー",normalized:"mouseover"},{native:"マウスアウト",normalized:"mouseout"},{native:"私",normalized:"me"},{native:"したら",normalized:"on"},{native:"すると",normalized:"on"},{native:"時に",normalized:"on"},{native:"秒",normalized:"s"},{native:"ミリ秒",normalized:"ms"},{native:"分",normalized:"m"},{native:"時間",normalized:"h"}],dy=new(my=class extends ic{constructor(){super(),this.language="ja",this.direction="ltr",this.initializeKeywordsFromProfile(sy,py),this.normalizer=new ry,this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractor(new Qp),this.registerExtractor(new cu),this.registerExtractor(new nu),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){return uy.has(e)?"particle":this.isKeyword(e)?"keyword":e.startsWith("/")||e.startsWith("./")||e.startsWith("../")||e.startsWith("http")?"url":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||e.startsWith("「")||/^\d/.test(e)?"literal":"identifier"}})}});function by(e){const t=e.charCodeAt(0);return t>=44032&&55203>=t}var wy,zy=yc({"src/tokenizers/morphology/korean-normalizer.ts"(){Dc(),yy=[{pattern:"하시니까",confidence:.85,conjugationType:"honorific-causal",minStemLength:1},{pattern:"하실때",confidence:.88,conjugationType:"honorific-temporal",minStemLength:1},{pattern:"하실 때",confidence:.88,conjugationType:"honorific-temporal",minStemLength:1},{pattern:"하시면",confidence:.88,conjugationType:"honorific-conditional",minStemLength:1},{pattern:"으시면",confidence:.85,conjugationType:"honorific-conditional",minStemLength:2},{pattern:"시면",confidence:.82,conjugationType:"honorific-conditional",minStemLength:2},{pattern:"하고나서",confidence:.85,conjugationType:"sequential-after",minStemLength:1},{pattern:"하고 나서",confidence:.85,conjugationType:"sequential-after",minStemLength:1},{pattern:"하고서",confidence:.85,conjugationType:"sequential-after",minStemLength:1},{pattern:"고나서",confidence:.82,conjugationType:"sequential-after",minStemLength:2},{pattern:"고 나서",confidence:.82,conjugationType:"sequential-after",minStemLength:2},{pattern:"고서",confidence:.82,conjugationType:"sequential-after",minStemLength:2},{pattern:"하기전에",confidence:.85,conjugationType:"sequential-before",minStemLength:1},{pattern:"하기 전에",confidence:.85,conjugationType:"sequential-before",minStemLength:1},{pattern:"기전에",confidence:.82,conjugationType:"sequential-before",minStemLength:2},{pattern:"기 전에",confidence:.82,conjugationType:"sequential-before",minStemLength:2},{pattern:"하자마자",confidence:.88,conjugationType:"immediate",minStemLength:1},{pattern:"자마자",confidence:.85,conjugationType:"immediate",minStemLength:2},{pattern:"해야해요",confidence:.85,conjugationType:"obligation",minStemLength:1},{pattern:"해야해",confidence:.85,conjugationType:"obligation",minStemLength:1},{pattern:"해야하다",confidence:.85,conjugationType:"obligation",minStemLength:1},{pattern:"어야해요",confidence:.82,conjugationType:"obligation",minStemLength:2},{pattern:"어야해",confidence:.82,conjugationType:"obligation",minStemLength:2},{pattern:"아야해요",confidence:.82,conjugationType:"obligation",minStemLength:2},{pattern:"아야해",confidence:.82,conjugationType:"obligation",minStemLength:2},{pattern:"하니까",confidence:.85,conjugationType:"causal-nikka",minStemLength:1},{pattern:"할때",confidence:.88,conjugationType:"temporal-ttae",minStemLength:1},{pattern:"할 때",confidence:.88,conjugationType:"temporal-ttae",minStemLength:1},{pattern:"을때",confidence:.85,conjugationType:"temporal-ttae",minStemLength:2},{pattern:"을 때",confidence:.85,conjugationType:"temporal-ttae",minStemLength:2},{pattern:"하면",confidence:.88,conjugationType:"conditional-myeon",minStemLength:1},{pattern:"으면",confidence:.85,conjugationType:"conditional-myeon",minStemLength:2},{pattern:"니까",confidence:.82,conjugationType:"causal-nikka",minStemLength:2},{pattern:"면",confidence:.8,conjugationType:"conditional-myeon",minStemLength:2},{pattern:"하였습니다",confidence:.85,conjugationType:"past",minStemLength:1},{pattern:"했습니다",confidence:.85,conjugationType:"past",minStemLength:1},{pattern:"합니다",confidence:.85,conjugationType:"polite",minStemLength:1},{pattern:"습니다",confidence:.82,conjugationType:"polite",minStemLength:2},{pattern:"됩니다",confidence:.82,conjugationType:"polite",minStemLength:1},{pattern:"ㅂ니다",confidence:.82,conjugationType:"polite",minStemLength:2},{pattern:"하세요",confidence:.85,conjugationType:"honorific",minStemLength:1},{pattern:"하십시오",confidence:.85,conjugationType:"honorific",minStemLength:1},{pattern:"세요",confidence:.82,conjugationType:"honorific",minStemLength:2},{pattern:"십시오",confidence:.82,conjugationType:"honorific",minStemLength:2},{pattern:"하고있어요",confidence:.82,conjugationType:"progressive",minStemLength:1},{pattern:"하고있어",confidence:.82,conjugationType:"progressive",minStemLength:1},{pattern:"했어요",confidence:.85,conjugationType:"past",minStemLength:1},{pattern:"해요",confidence:.85,conjugationType:"polite",minStemLength:1},{pattern:"어요",confidence:.82,conjugationType:"polite",minStemLength:2},{pattern:"아요",confidence:.82,conjugationType:"polite",minStemLength:2},{pattern:"했어",confidence:.85,conjugationType:"past",minStemLength:1},{pattern:"해",confidence:.8,conjugationType:"present",minStemLength:1},{pattern:"었어",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"았어",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"하고있다",confidence:.82,conjugationType:"progressive",minStemLength:1},{pattern:"고있다",confidence:.8,conjugationType:"progressive",minStemLength:2},{pattern:"고있어",confidence:.8,conjugationType:"progressive",minStemLength:2},{pattern:"하다",confidence:.88,conjugationType:"dictionary",minStemLength:1},{pattern:"하지않다",confidence:.82,conjugationType:"negative",minStemLength:1},{pattern:"안하다",confidence:.82,conjugationType:"negative",minStemLength:1},{pattern:"지않다",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"해라",confidence:.82,conjugationType:"imperative",minStemLength:1},{pattern:"하라",confidence:.82,conjugationType:"imperative",minStemLength:1},{pattern:"다",confidence:.75,conjugationType:"dictionary",minStemLength:2}],vy=[{pattern:"하시니까",confidence:.88,conjugationType:"honorific-causal"},{pattern:"하실때",confidence:.88,conjugationType:"honorific-temporal"},{pattern:"하실 때",confidence:.88,conjugationType:"honorific-temporal"},{pattern:"하시면",confidence:.88,conjugationType:"honorific-conditional"},{pattern:"하셨어요",confidence:.85,conjugationType:"honorific-past"},{pattern:"하셨어",confidence:.85,conjugationType:"honorific-past"},{pattern:"하십니다",confidence:.85,conjugationType:"honorific-polite"},{pattern:"하고나서",confidence:.88,conjugationType:"sequential-after"},{pattern:"하고 나서",confidence:.88,conjugationType:"sequential-after"},{pattern:"하고서",confidence:.88,conjugationType:"sequential-after"},{pattern:"하기전에",confidence:.88,conjugationType:"sequential-before"},{pattern:"하기 전에",confidence:.88,conjugationType:"sequential-before"},{pattern:"하자마자",confidence:.88,conjugationType:"immediate"},{pattern:"해야해요",confidence:.88,conjugationType:"obligation"},{pattern:"해야해",confidence:.88,conjugationType:"obligation"},{pattern:"해야하다",confidence:.88,conjugationType:"obligation"},{pattern:"하니까",confidence:.88,conjugationType:"causal-nikka"},{pattern:"할때",confidence:.88,conjugationType:"temporal-ttae"},{pattern:"할 때",confidence:.88,conjugationType:"temporal-ttae"},{pattern:"하면",confidence:.88,conjugationType:"conditional-myeon"},{pattern:"하였습니다",confidence:.85,conjugationType:"past"},{pattern:"했습니다",confidence:.85,conjugationType:"past"},{pattern:"합니다",confidence:.85,conjugationType:"polite"},{pattern:"하십시오",confidence:.85,conjugationType:"honorific"},{pattern:"하세요",confidence:.85,conjugationType:"honorific"},{pattern:"했어요",confidence:.85,conjugationType:"past"},{pattern:"해요",confidence:.85,conjugationType:"polite"},{pattern:"했어",confidence:.85,conjugationType:"past"},{pattern:"해",confidence:.8,conjugationType:"present"},{pattern:"하고있어요",confidence:.82,conjugationType:"progressive"},{pattern:"하고있어",confidence:.82,conjugationType:"progressive"},{pattern:"하고있다",confidence:.82,conjugationType:"progressive"},{pattern:"해서",confidence:.82,conjugationType:"connective"},{pattern:"하고",confidence:.8,conjugationType:"connective"},{pattern:"하지않아요",confidence:.82,conjugationType:"negative"},{pattern:"하지않다",confidence:.82,conjugationType:"negative"},{pattern:"안해요",confidence:.82,conjugationType:"negative"},{pattern:"안해",confidence:.82,conjugationType:"negative"},{pattern:"해라",confidence:.82,conjugationType:"imperative"},{pattern:"하라",confidence:.82,conjugationType:"imperative"},{pattern:"하다",confidence:.88,conjugationType:"dictionary"}],new(gy=class{constructor(){this.language="ko"}isNormalizable(e){return!!function(e){for(const t of e)if(by(t))return!0;return!1}(e)&&2<=e.length}normalize(e){const t=this.normalizeCompound(e);if(t)return t;const r=this.tryHadaNormalization(e);if(r)return r;for(const t of yy)if(e.endsWith(t.pattern)){const r=e.slice(0,-t.pattern.length);if((t.minStemLength??2)>r.length)continue;const n={removedSuffixes:[t.pattern]};return t.conjugationType&&(n.conjugationType=t.conjugationType),oc(r,t.confidence,n)}return ac(e)}tryHadaNormalization(e){for(const t of vy)if(e.endsWith(t.pattern)){const r=e.slice(0,-t.pattern.length);if(1>r.length)continue;return oc(r,t.confidence,{removedSuffixes:[t.pattern],conjugationType:t.conjugationType,originalForm:"hada-verb"})}return null}normalizeCompound(e){const t=[{pattern:"하고나서였어",suffixes:["하고나서","였어"],confidence:.78,conjugationType:"sequential-after",minStemLength:2},{pattern:"하고나서였다",suffixes:["하고나서","였다"],confidence:.78,conjugationType:"sequential-after",minStemLength:2},{pattern:"하고나서",suffixes:["하고","나서"],confidence:.85,conjugationType:"sequential-after",minStemLength:2},{pattern:"해야했어",suffixes:["해야","했어"],confidence:.8,conjugationType:"obligation",minStemLength:2},{pattern:"해야했다",suffixes:["해야","했다"],confidence:.8,conjugationType:"obligation",minStemLength:2},{pattern:"해야했습니다",suffixes:["해야","했습니다"],confidence:.8,conjugationType:"obligation",minStemLength:2},{pattern:"하시면서",suffixes:["하시","면서"],confidence:.82,conjugationType:"connective",minStemLength:2},{pattern:"하시며",suffixes:["하시","며"],confidence:.82,conjugationType:"connective",minStemLength:2},{pattern:"하고있었어",suffixes:["하고","있었어"],confidence:.8,conjugationType:"progressive",minStemLength:2},{pattern:"하고있었다",suffixes:["하고","있었다"],confidence:.8,conjugationType:"progressive",minStemLength:2}];for(const{pattern:r,suffixes:n,confidence:i,conjugationType:a,minStemLength:o}of t)if(e.endsWith(r)){const t=e.slice(0,-r.length);if(o>t.length)continue;return oc(t,i,{removedSuffixes:n,conjugationType:a})}return null}})}}),xy={};vc(xy,{koreanProfile:()=>wy});var Ey,Ty,Sy,Cy,Ay=yc({"src/generators/profiles/korean.ts"(){wy={code:"ko",name:"Korean",nativeName:"한국어",direction:"ltr",script:"hangul",wordOrder:"SOV",markingStrategy:"particle",usesSpaces:!0,verb:{position:"end",suffixes:["다","요","니다","세요"],subjectDrop:!0},references:{me:"나",it:"그것",you:"너",result:"결과",event:"이벤트",target:"대상",body:"본문"},possessive:{marker:"의",markerPosition:"between",specialForms:{me:"내",it:"그것의",you:"네"},keywords:{"내":"me","네":"you","그의":"it"}},roleMarkers:{patient:{primary:"을",alternatives:["를"],position:"after"},destination:{primary:"에",alternatives:["으로","로","에서","의"],position:"after"},source:{primary:"에서",alternatives:["부터"],position:"after"},style:{primary:"로",alternatives:["으로"],position:"after"},event:{primary:"을",alternatives:["를"],position:"after"}},keywords:{toggle:{primary:"토글",normalized:"toggle"},add:{primary:"추가",normalized:"add"},remove:{primary:"제거",alternatives:["삭제"],normalized:"remove"},put:{primary:"넣다",alternatives:["넣기","놓기"],normalized:"put"},append:{primary:"덧붙이다",alternatives:["끝에추가"],normalized:"append"},prepend:{primary:"앞에추가",alternatives:["선두추가"],normalized:"prepend"},take:{primary:"가져오다",normalized:"take"},make:{primary:"만들다",normalized:"make"},clone:{primary:"복제",normalized:"clone"},swap:{primary:"교환",alternatives:["바꾸다"],normalized:"swap"},morph:{primary:"변형",alternatives:["변환"],normalized:"morph"},set:{primary:"설정",normalized:"set"},get:{primary:"얻다",normalized:"get"},increment:{primary:"증가",normalized:"increment"},decrement:{primary:"감소",normalized:"decrement"},log:{primary:"로그",normalized:"log"},show:{primary:"보이다",alternatives:["표시","보이기"],normalized:"show"},hide:{primary:"숨기다",alternatives:["숨기기"],normalized:"hide"},transition:{primary:"트랜지션",normalized:"transition"},on:{primary:"에",alternatives:["시","할 때"],normalized:"on"},trigger:{primary:"트리거",normalized:"trigger"},send:{primary:"보내다",normalized:"send"},focus:{primary:"포커스",normalized:"focus"},blur:{primary:"블러",normalized:"blur"},click:{primary:"클릭",normalized:"click"},hover:{primary:"호버",normalized:"hover"},submit:{primary:"제출",normalized:"submit"},input:{primary:"입력",normalized:"input"},change:{primary:"변경",normalized:"change"},go:{primary:"이동",normalized:"go"},wait:{primary:"대기",normalized:"wait"},fetch:{primary:"패치",normalized:"fetch"},settle:{primary:"안정",normalized:"settle"},if:{primary:"만약",normalized:"if"},when:{primary:"때",normalized:"when"},where:{primary:"어디",normalized:"where"},else:{primary:"아니면",normalized:"else"},repeat:{primary:"반복",normalized:"repeat"},for:{primary:"각각",normalized:"for"},while:{primary:"동안",normalized:"while"},continue:{primary:"계속",normalized:"continue"},halt:{primary:"정지",normalized:"halt"},throw:{primary:"던지다",normalized:"throw"},call:{primary:"호출",normalized:"call"},return:{primary:"반환",normalized:"return"},then:{primary:"그다음",alternatives:["그런후"],normalized:"then"},and:{primary:"그리고",alternatives:["또한","및"],normalized:"and"},end:{primary:"끝",alternatives:["마침"],normalized:"end"},js:{primary:"JS실행",alternatives:["js"],normalized:"js"},async:{primary:"비동기",normalized:"async"},tell:{primary:"말하다",normalized:"tell"},default:{primary:"기본값",normalized:"default"},init:{primary:"초기화",normalized:"init"},behavior:{primary:"동작",normalized:"behavior"},install:{primary:"설치",normalized:"install"},measure:{primary:"측정",normalized:"measure"},beep:{primary:"비프",normalized:"beep"},break:{primary:"중단",normalized:"break"},copy:{primary:"복사",normalized:"copy"},exit:{primary:"나가기",normalized:"exit"},pick:{primary:"선택",normalized:"pick"},render:{primary:"렌더링",normalized:"render"},into:{primary:"으로",normalized:"into"},before:{primary:"전에",normalized:"before"},after:{primary:"후에",normalized:"after"},until:{primary:"까지",normalized:"until"},event:{primary:"이벤트",normalized:"event"},from:{primary:"에서",normalized:"from"}},tokenization:{particles:["을","를","이","가","은","는","에","에서","으로","로","와","과","도"],boundaryStrategy:"space"},eventHandler:{eventMarker:{primary:"할 때",alternatives:["할때","때","에"],position:"after"},temporalMarkers:["할 때","할때","때"]}}}}),Ly={};vc(Ly,{KoreanTokenizer:()=>Sy,koreanTokenizer:()=>Cy});var jy,Py=yc({"src/tokenizers/korean.ts"(){$c(),zy(),Ay(),Xc(),um(),ku(),bu(),rm(),Ey=new Set(["이","가","을","를","은","는","에","에서","로","으로","와","과","의","도","만","부터","까지","처럼","보다"]),Ty=[{native:"참",normalized:"true"},{native:"거짓",normalized:"false"},{native:"널",normalized:"null"},{native:"미정의",normalized:"undefined"},{native:"첫번째",normalized:"first"},{native:"마지막",normalized:"last"},{native:"다음",normalized:"next"},{native:"이전",normalized:"previous"},{native:"가장가까운",normalized:"closest"},{native:"부모",normalized:"parent"},{native:"클릭",normalized:"click"},{native:"더블클릭",normalized:"dblclick"},{native:"변경",normalized:"change"},{native:"제출",normalized:"submit"},{native:"입력",normalized:"input"},{native:"로드",normalized:"load"},{native:"스크롤",normalized:"scroll"},{native:"키다운",normalized:"keydown"},{native:"키업",normalized:"keyup"},{native:"마우스오버",normalized:"mouseover"},{native:"마우스아웃",normalized:"mouseout"},{native:"내",normalized:"my"},{native:"그것의",normalized:"its"},{native:"그다음",normalized:"then"},{native:"그런후",normalized:"then"},{native:"그러면",normalized:"then"},{native:"그리고",normalized:"and"},{native:"또는",normalized:"or"},{native:"아니",normalized:"not"},{native:"이다",normalized:"is"},{native:"초",normalized:"s"},{native:"밀리초",normalized:"ms"},{native:"분",normalized:"m"},{native:"시간",normalized:"h"}],Cy=new(Sy=class extends ic{constructor(){super(),this.language="ko",this.direction="ltr",this.initializeKeywordsFromProfile(wy,Ty),this.normalizer=new gy,this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractor(new Qp),this.registerExtractor(new vu),this.registerExtractor(new pu),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){return Ey.has(e)?"particle":this.isKeyword(e)?"keyword":e.startsWith("/")||e.startsWith("./")||e.startsWith("../")||e.startsWith("http")?"url":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":"identifier"}})}}),Ny={};vc(Ny,{malayProfile:()=>jy});var Oy,Iy,Ry,My=yc({"src/generators/profiles/ms.ts"(){jy={code:"ms",name:"Malay",nativeName:"Melayu",direction:"ltr",script:"latin",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,defaultVerbForm:"base",verb:{position:"start",subjectDrop:!0},references:{me:"saya",it:"ia",you:"kamu",result:"hasil",event:"peristiwa",target:"sasaran",body:"badan"},possessive:{marker:"",markerPosition:"after-object",keywords:{saya:"me",aku:"me",awak:"you",kamu:"you",anda:"you",dia:"it",ia:"it","-ku":"me","-mu":"you","-nya":"it"}},roleMarkers:{destination:{primary:"ke",alternatives:["pada"],position:"before"},source:{primary:"dari",position:"before"},patient:{primary:"",position:"before"},style:{primary:"dengan",position:"before"}},keywords:{toggle:{primary:"togol",alternatives:["tukar"],normalized:"toggle"},add:{primary:"tambah",normalized:"add"},remove:{primary:"buang",alternatives:["padam"],normalized:"remove"},put:{primary:"letak",alternatives:["letakkan"],normalized:"put"},append:{primary:"tambah_hujung",normalized:"append"},prepend:{primary:"tambah_mula",normalized:"prepend"},take:{primary:"ambil",normalized:"take"},make:{primary:"buat",alternatives:["cipta"],normalized:"make"},clone:{primary:"klon",alternatives:[],normalized:"clone"},swap:{primary:"tukar_tempat",normalized:"swap"},morph:{primary:"ubah_bentuk",normalized:"morph"},set:{primary:"tetapkan",alternatives:["setkan"],normalized:"set"},get:{primary:"dapatkan",alternatives:[],normalized:"get"},increment:{primary:"tambah_satu",normalized:"increment"},decrement:{primary:"kurang_satu",normalized:"decrement"},log:{primary:"catat",alternatives:["log"],normalized:"log"},show:{primary:"tunjuk",alternatives:[],normalized:"show"},hide:{primary:"sembunyi",alternatives:["sorok"],normalized:"hide"},transition:{primary:"peralihan",normalized:"transition"},on:{primary:"apabila",alternatives:["ketika"],normalized:"on"},trigger:{primary:"cetuskan",normalized:"trigger"},send:{primary:"hantar",normalized:"send"},focus:{primary:"fokus",normalized:"focus"},blur:{primary:"kabur",normalized:"blur"},go:{primary:"pergi",alternatives:["pindah"],normalized:"go"},wait:{primary:"tunggu",normalized:"wait"},fetch:{primary:"ambil_dari",alternatives:["muat"],normalized:"fetch"},settle:{primary:"selesai",normalized:"settle"},if:{primary:"jika",alternatives:["kalau"],normalized:"if"},when:{primary:"bila",normalized:"when"},where:{primary:"di_mana",normalized:"where"},else:{primary:"kalau_tidak",alternatives:["jika_tidak"],normalized:"else"},repeat:{primary:"ulang",normalized:"repeat"},for:{primary:"untuk",normalized:"for"},while:{primary:"selagi",alternatives:["semasa"],normalized:"while"},continue:{primary:"teruskan",normalized:"continue"},halt:{primary:"henti",alternatives:["berhenti"],normalized:"halt"},throw:{primary:"lempar",normalized:"throw"},call:{primary:"panggil",normalized:"call"},return:{primary:"pulang",alternatives:["kembali"],normalized:"return"},then:{primary:"kemudian",alternatives:["lepas_itu"],normalized:"then"},and:{primary:"dan",normalized:"and"},end:{primary:"tamat",alternatives:["habis"],normalized:"end"},js:{primary:"js",normalized:"js"},async:{primary:"tak_segerak",normalized:"async"},tell:{primary:"beritahu",normalized:"tell"},default:{primary:"lalai",normalized:"default"},init:{primary:"mula",alternatives:["mulakan"],normalized:"init"},behavior:{primary:"kelakuan",normalized:"behavior"},install:{primary:"pasang",normalized:"install"},measure:{primary:"ukur",normalized:"measure"},beep:{primary:"bunyi",normalized:"beep"},break:{primary:"pecah",normalized:"break"},copy:{primary:"salin",normalized:"copy"},exit:{primary:"keluar",normalized:"exit"},pick:{primary:"pilih",normalized:"pick"},render:{primary:"papar",normalized:"render"},into:{primary:"ke_dalam",normalized:"into"},before:{primary:"sebelum",normalized:"before"},after:{primary:"selepas",alternatives:["lepas"],normalized:"after"},until:{primary:"sehingga",alternatives:["sampai"],normalized:"until"},event:{primary:"peristiwa",normalized:"event"},from:{primary:"dari",normalized:"from"}},eventHandler:{keyword:{primary:"apabila",alternatives:["ketika"],normalized:"on"},sourceMarker:{primary:"dari",position:"before"}}}}}),Wy={};vc(Wy,{MalayTokenizer:()=>Iy,malayTokenizer:()=>Ry});var qy,_y=yc({"src/tokenizers/ms.ts"(){$c(),My(),Xc(),um(),fp(),Oy=[{native:"benar",normalized:"true"},{native:"salah",normalized:"false"},{native:"kosong",normalized:"null"},{native:"tak_tentu",normalized:"undefined"},{native:"pertama",normalized:"first"},{native:"terakhir",normalized:"last"},{native:"seterusnya",normalized:"next"},{native:"sebelumnya",normalized:"previous"},{native:"terdekat",normalized:"closest"},{native:"induk",normalized:"parent"},{native:"klik",normalized:"click"},{native:"berubah",normalized:"change"},{native:"ubah",normalized:"change"},{native:"hantar",normalized:"submit"},{native:"input",normalized:"input"},{native:"masuk",normalized:"input"},{native:"muat",normalized:"load"},{native:"tatal",normalized:"scroll"},{native:"hover",normalized:"hover"}],Ry=new(Iy=class extends ic{constructor(){super(),this.language="ms",this.direction="ltr",this.initializeKeywordsFromProfile(jy,Oy),this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractors([new up]),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){return this.isKeyword(e)?"keyword":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith(".")||e.startsWith("#")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith(":")?"identifier":e.startsWith('"')||e.startsWith("'")||/^-?\d/.test(e)?"literal":"identifier"}})}}),$y={};vc($y,{polishProfile:()=>qy});var Dy,Vy,Hy,By,Fy,Uy,Ky=yc({"src/generators/profiles/polish.ts"(){qy={code:"pl",name:"Polish",nativeName:"Polski",direction:"ltr",script:"latin",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,defaultVerbForm:"imperative",verb:{position:"start",subjectDrop:!0,suffixes:["ać","eć","ić","yć","ąć","ować"]},references:{me:"ja",it:"to",you:"ty",result:"wynik",event:"zdarzenie",target:"cel",body:"body"},possessive:{marker:"",markerPosition:"after-object",usePossessiveAdjectives:!0,specialForms:{me:"mój",it:"jego",you:"twój"},keywords:{"mój":"me",moja:"me",moje:"me","twój":"you",twoja:"you",twoje:"you",jego:"it",jej:"it"}},roleMarkers:{destination:{primary:"do",alternatives:["w","na"],position:"before"},source:{primary:"z",alternatives:["od","ze"],position:"before"},patient:{primary:"",position:"before"},style:{primary:"z",alternatives:["ze"],position:"before"}},keywords:{toggle:{primary:"przełącz",alternatives:["przelacz"],normalized:"toggle",form:"imperative"},add:{primary:"dodaj",normalized:"add",form:"imperative"},remove:{primary:"usuń",alternatives:["usun","wyczyść","wyczysc"],normalized:"remove",form:"imperative"},put:{primary:"umieść",alternatives:["umiesc","wstaw"],normalized:"put",form:"imperative"},append:{primary:"dołącz",alternatives:["dolacz"],normalized:"append",form:"imperative"},prepend:{primary:"poprzedź",alternatives:["poprzedz"],normalized:"prepend",form:"imperative"},take:{primary:"weź",alternatives:["wez"],normalized:"take",form:"imperative"},make:{primary:"utwórz",alternatives:["utworz","stwórz","stworz"],normalized:"make",form:"imperative"},clone:{primary:"sklonuj",normalized:"clone",form:"imperative"},swap:{primary:"zamień",alternatives:["zamien"],normalized:"swap",form:"imperative"},morph:{primary:"przekształć",alternatives:["przeksztalc"],normalized:"morph",form:"imperative"},set:{primary:"ustaw",alternatives:["określ","okresl"],normalized:"set",form:"imperative"},get:{primary:"uzyskaj",normalized:"get",form:"imperative"},increment:{primary:"zwiększ",alternatives:["zwieksz"],normalized:"increment",form:"imperative"},decrement:{primary:"zmniejsz",normalized:"decrement",form:"imperative"},log:{primary:"loguj",alternatives:["wypisz"],normalized:"log",form:"imperative"},show:{primary:"pokaż",alternatives:["pokaz","wyświetl","wyswietl"],normalized:"show",form:"imperative"},hide:{primary:"ukryj",alternatives:["schowaj"],normalized:"hide",form:"imperative"},transition:{primary:"animuj",alternatives:["przejście","przejscie"],normalized:"transition",form:"imperative"},on:{primary:"gdy",alternatives:["przy","na"],normalized:"on"},trigger:{primary:"wyzwól",alternatives:["wyzwol"],normalized:"trigger",form:"imperative"},send:{primary:"wyślij",alternatives:["wyslij"],normalized:"send",form:"imperative"},focus:{primary:"skup",alternatives:["skupienie"],normalized:"focus",form:"imperative"},blur:{primary:"rozmyj",alternatives:["odskup"],normalized:"blur",form:"imperative"},go:{primary:"idź",alternatives:["idz","przejdź","przejdz","nawiguj"],normalized:"go",form:"imperative"},wait:{primary:"czekaj",alternatives:["poczekaj"],normalized:"wait",form:"imperative"},fetch:{primary:"pobierz",alternatives:["załaduj","zaladuj"],normalized:"fetch",form:"imperative"},settle:{primary:"ustabilizuj",normalized:"settle",form:"imperative"},if:{primary:"jeśli",alternatives:["jesli","jeżeli","jezeli"],normalized:"if"},when:{primary:"kiedy",normalized:"when"},where:{primary:"gdzie",normalized:"where"},else:{primary:"inaczej",alternatives:["wpp"],normalized:"else"},repeat:{primary:"powtórz",alternatives:["powtorz"],normalized:"repeat",form:"imperative"},for:{primary:"dla",alternatives:["każdy","kazdy"],normalized:"for"},while:{primary:"dopóki",alternatives:["dopoki","podczas"],normalized:"while"},continue:{primary:"kontynuuj",alternatives:["dalej"],normalized:"continue",form:"imperative"},halt:{primary:"zatrzymaj",alternatives:["stop"],normalized:"halt",form:"imperative"},throw:{primary:"rzuć",alternatives:["rzuc"],normalized:"throw",form:"imperative"},call:{primary:"wywołaj",alternatives:["wywolaj"],normalized:"call",form:"imperative"},return:{primary:"zwróć",alternatives:["zwroc"],normalized:"return",form:"imperative"},then:{primary:"wtedy",alternatives:["potem","następnie","nastepnie"],normalized:"then"},and:{primary:"i",alternatives:["oraz"],normalized:"and"},end:{primary:"koniec",normalized:"end"},js:{primary:"js",normalized:"js"},async:{primary:"async",alternatives:["asynchronicznie"],normalized:"async"},tell:{primary:"powiedz",normalized:"tell",form:"imperative"},default:{primary:"domyślnie",alternatives:["domyslnie"],normalized:"default"},init:{primary:"inicjuj",normalized:"init",form:"imperative"},behavior:{primary:"zachowanie",normalized:"behavior"},install:{primary:"zainstaluj",normalized:"install",form:"imperative"},measure:{primary:"zmierz",normalized:"measure",form:"imperative"},beep:{primary:"sygnał",normalized:"beep"},break:{primary:"przerwij",normalized:"break"},copy:{primary:"kopiuj",normalized:"copy"},exit:{primary:"wyjdź",normalized:"exit"},pick:{primary:"wybierz",normalized:"pick"},render:{primary:"renderuj",normalized:"render"},into:{primary:"do",alternatives:["w"],normalized:"into"},before:{primary:"przed",normalized:"before"},after:{primary:"po",normalized:"after"},click:{primary:"kliknięciu",alternatives:["klikniecie","klik"],normalized:"click"},hover:{primary:"najechaniu",alternatives:["hover"],normalized:"hover"},submit:{primary:"wysłaniu",alternatives:["wyslaniu","submit"],normalized:"submit"},input:{primary:"wprowadzeniu",alternatives:["input"],normalized:"input"},change:{primary:"zmianie",alternatives:["zmiana"],normalized:"change"},until:{primary:"aż",alternatives:["az"],normalized:"until"},event:{primary:"zdarzenie",normalized:"event"},from:{primary:"z",alternatives:["od","ze"],normalized:"from"}},eventHandler:{keyword:{primary:"gdy",alternatives:["przy","na"],normalized:"on"},sourceMarker:{primary:"na",alternatives:["w","przy"],position:"before"},conditionalKeyword:{primary:"kiedy",alternatives:["gdy","jeśli"]},eventMarker:{primary:"przy",alternatives:["na"],position:"before"},temporalMarkers:["kiedy","gdy","przy"]}}}}),Gy=yc({"src/tokenizers/morphology/polish-normalizer.ts"(){Dc(),Dy=new Map([["przełącz","przełączać"],["przelacz","przelaczac"],["dodaj","dodawać"],["usuń","usuwać"],["usun","usuwac"],["umieść","umieszczać"],["umiesc","umieszczac"],["wstaw","wstawiać"],["ustaw","ustawiać"],["pobierz","pobierać"],["weź","brać"],["wez","brac"],["zwiększ","zwiększać"],["zwieksz","zwiekszac"],["zmniejsz","zmniejszać"],["pokaż","pokazywać"],["pokaz","pokazywac"],["ukryj","ukrywać"],["schowaj","schowywać"],["czekaj","czekać"],["poczekaj","poczekać"],["idź","iść"],["idz","isc"],["przejdź","przejść"],["przejdz","przejsc"],["wywołaj","wywoływać"],["wywolaj","wywolywac"],["wyślij","wysyłać"],["wyslij","wysylac"],["loguj","logować"],["wypisz","wypisywać"],["sklonuj","sklonować"],["kopiuj","kopiować"],["zamień","zamieniać"],["zamien","zamieniac"],["utwórz","tworzyć"],["utworz","tworzyc"],["stwórz","stwarzać"],["stworz","stwarzac"],["skup","skupiać"],["rozmyj","rozmywać"],["nawiguj","nawigować"],["załaduj","ładować"],["zaladuj","ladowac"],["powtórz","powtarzać"],["powtorz","powtarzac"],["kontynuuj","kontynuować"],["zatrzymaj","zatrzymywać"],["przerwij","przerywać"],["rzuć","rzucać"],["rzuc","rzucac"],["zwróć","zwracać"],["zwroc","zwracac"],["inicjuj","inicjować"],["zainstaluj","instalować"],["zmierz","mierzyć"]]),new(Vy=class{constructor(){this.language="pl"}isNormalizable(e){return e.length>=3&&/[a-zA-ZąęćńóśźżłĄĘĆŃÓŚŹŻŁ]/.test(e)}normalize(e){const t=e.toLowerCase();if(this.isInfinitive(t))return ac(t);const r=this.tryImperativeNormalization(t);if(r)return r;const n=this.tryPastTenseNormalization(t);if(n)return n;const i=this.tryPresentTenseNormalization(t);return i||ac(t)}isInfinitive(e){return["ać","eć","ić","yć","ąć","ować","iwać","ywać"].some(t=>e.endsWith(t))}tryImperativeNormalization(e){return Dy.has(e)?oc(Dy.get(e),.95,{removedSuffixes:["imperative"],conjugationType:"imperative"}):e.endsWith("aj")?oc(e.slice(0,-2)+"ać",.8,{removedSuffixes:["aj"],conjugationType:"imperative"}):e.endsWith("uj")?oc(e.slice(0,-2)+"ować",.8,{removedSuffixes:["uj"],conjugationType:"imperative"}):e.endsWith("ij")?oc(e.slice(0,-2)+"ić",.75,{removedSuffixes:["ij"],conjugationType:"imperative"}):null}tryPresentTenseNormalization(e){return e.endsWith("uję")||e.endsWith("uje")?oc(e.slice(0,-3)+"ować",.85,{removedSuffixes:["uję"],conjugationType:"present"}):e.endsWith("am")&&e.length>3?oc(e.slice(0,-2)+"ać",.8,{removedSuffixes:["am"],conjugationType:"present"}):e.endsWith("em")&&e.length>3?oc(e.slice(0,-2)+"eć",.75,{removedSuffixes:["em"],conjugationType:"present"}):e.endsWith("ę")&&e.length>2?oc(e.slice(0,-1)+"ać",.7,{removedSuffixes:["ę"],conjugationType:"present"}):null}tryPastTenseNormalization(e){if(e.endsWith("ałem")||e.endsWith("ałam"))return oc(e.slice(0,-4)+"ać",.85,{removedSuffixes:[e.slice(-4)],conjugationType:"past"});if(e.endsWith("ał")||e.endsWith("ała")){const t=e.endsWith("ała")?3:2;return oc(e.slice(0,-t)+"ać",.8,{removedSuffixes:[e.slice(-t)],conjugationType:"past"})}if(e.endsWith("iłem")||e.endsWith("iłam")||e.endsWith("ilem")||e.endsWith("ilam"))return oc(e.slice(0,-4)+"ić",.85,{removedSuffixes:[e.slice(-4)],conjugationType:"past"});if(e.endsWith("ił")||e.endsWith("iła")||e.endsWith("il")||e.endsWith("ila")){const t=e.endsWith("iła")||e.endsWith("ila")?3:2;return oc(e.slice(0,-t)+"ić",.8,{removedSuffixes:[e.slice(-t)],conjugationType:"past"})}return null}})}}),Yy={};vc(Yy,{PolishTokenizer:()=>Fy,polishTokenizer:()=>Uy});var Zy,Xy=yc({"src/tokenizers/polish.ts"(){$c(),Ky(),Gy(),Xc(),um(),Sp(),Hy=new Set(["do","od","z","ze","w","we","na","po","pod","przed","za","nad","między","miedzy","przez","dla","bez","o","przy","u","według","wedlug","mimo","wśród","wsrod","obok","poza","wokół","wokol","przeciw","ku"]),By=[{native:"prawda",normalized:"true"},{native:"fałsz",normalized:"false"},{native:"falsz",normalized:"false"},{native:"null",normalized:"null"},{native:"nieokreślony",normalized:"undefined"},{native:"nieokreslony",normalized:"undefined"},{native:"pierwszy",normalized:"first"},{native:"pierwsza",normalized:"first"},{native:"pierwsze",normalized:"first"},{native:"ostatni",normalized:"last"},{native:"ostatnia",normalized:"last"},{native:"ostatnie",normalized:"last"},{native:"następny",normalized:"next"},{native:"nastepny",normalized:"next"},{native:"poprzedni",normalized:"previous"},{native:"najbliższy",normalized:"closest"},{native:"najblizszy",normalized:"closest"},{native:"rodzic",normalized:"parent"},{native:"kliknięcie",normalized:"click"},{native:"klikniecie",normalized:"click"},{native:"klik",normalized:"click"},{native:"click",normalized:"click"},{native:"zmiana",normalized:"change"},{native:"wysłanie",normalized:"submit"},{native:"wyslanie",normalized:"submit"},{native:"naciśnięcie",normalized:"keydown"},{native:"nacisniecie",normalized:"keydown"},{native:"klawisz",normalized:"keydown"},{native:"najechanie",normalized:"mouseover"},{native:"zjechanie",normalized:"mouseout"},{native:"rozmycie",normalized:"blur"},{native:"załadowanie",normalized:"load"},{native:"zaladowanie",normalized:"load"},{native:"przewinięcie",normalized:"scroll"},{native:"przewiniecie",normalized:"scroll"},{native:"input",normalized:"input"},{native:"mój",normalized:"my"},{native:"moj",normalized:"my"},{native:"sekunda",normalized:"s"},{native:"sekundy",normalized:"s"},{native:"sekund",normalized:"s"},{native:"milisekunda",normalized:"ms"},{native:"milisekundy",normalized:"ms"},{native:"milisekund",normalized:"ms"},{native:"minuta",normalized:"m"},{native:"minuty",normalized:"m"},{native:"minut",normalized:"m"},{native:"godzina",normalized:"h"},{native:"godziny",normalized:"h"},{native:"godzin",normalized:"h"},{native:"połóż",normalized:"put"},{native:"poloz",normalized:"put"},{native:"lub",normalized:"or"},{native:"nie",normalized:"not"},{native:"jest",normalized:"is"},{native:"istnieje",normalized:"exists"},{native:"pusty",normalized:"empty"},{native:"puste",normalized:"empty"}],Uy=new(Fy=class extends ic{constructor(){super(),this.language="pl",this.direction="ltr",this.initializeKeywordsFromProfile(qy,By),this.setNormalizer(new Vy),this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractors([new bp]),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){const t=e.toLowerCase();return Hy.has(t)?"particle":this.isKeyword(t)?"keyword":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":["==","!=","<=",">=","<",">","&&","||","!"].includes(e)?"operator":"identifier"}})}}),Jy={};vc(Jy,{portugueseProfile:()=>Zy});var Qy,ev,tv,rv,nv,iv,av=yc({"src/generators/profiles/portuguese.ts"(){Zy={code:"pt",name:"Portuguese",nativeName:"Português",direction:"ltr",script:"latin",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,verb:{position:"start",subjectDrop:!0},references:{me:"eu",it:"ele",you:"você",result:"resultado",event:"evento",target:"alvo",body:"corpo"},possessive:{marker:"de",markerPosition:"before-property",usePossessiveAdjectives:!0,specialForms:{me:"meu",it:"seu",you:"teu"},keywords:{meu:"me",minha:"me",teu:"you",tua:"you",seu:"it",sua:"it"}},roleMarkers:{destination:{primary:"em",alternatives:["para","a"],position:"before"},source:{primary:"de",alternatives:["desde"],position:"before"},patient:{primary:"",position:"before"},style:{primary:"com",position:"before"}},keywords:{toggle:{primary:"alternar",alternatives:[],normalized:"toggle"},add:{primary:"adicionar",alternatives:["acrescentar"],normalized:"add"},remove:{primary:"remover",alternatives:["eliminar","apagar"],normalized:"remove"},put:{primary:"colocar",alternatives:["pôr","por"],normalized:"put"},append:{primary:"anexar",normalized:"append"},prepend:{primary:"preceder",normalized:"prepend"},take:{primary:"pegar",normalized:"take"},make:{primary:"fazer",alternatives:["criar"],normalized:"make"},clone:{primary:"clonar",alternatives:[],normalized:"clone"},swap:{primary:"trocar",alternatives:["substituir"],normalized:"swap"},morph:{primary:"transformar",alternatives:["converter"],normalized:"morph"},set:{primary:"definir",alternatives:["configurar"],normalized:"set"},get:{primary:"obter",normalized:"get"},increment:{primary:"incrementar",alternatives:["aumentar"],normalized:"increment"},decrement:{primary:"decrementar",alternatives:["diminuir"],normalized:"decrement"},log:{primary:"registrar",alternatives:["imprimir"],normalized:"log"},show:{primary:"mostrar",alternatives:["exibir"],normalized:"show"},hide:{primary:"ocultar",alternatives:["esconder"],normalized:"hide"},transition:{primary:"transição",alternatives:["animar"],normalized:"transition"},on:{primary:"em",alternatives:["ao"],normalized:"on"},trigger:{primary:"disparar",alternatives:["ativar"],normalized:"trigger"},send:{primary:"enviar",normalized:"send"},focus:{primary:"focar",normalized:"focus"},blur:{primary:"desfocar",normalized:"blur"},go:{primary:"ir",alternatives:["navegar"],normalized:"go"},wait:{primary:"esperar",alternatives:["aguardar"],normalized:"wait"},fetch:{primary:"buscar",normalized:"fetch"},settle:{primary:"estabilizar",normalized:"settle"},if:{primary:"se",normalized:"if"},when:{primary:"quando",normalized:"when"},where:{primary:"onde",normalized:"where"},else:{primary:"senão",normalized:"else"},repeat:{primary:"repetir",normalized:"repeat"},for:{primary:"para",normalized:"for"},while:{primary:"enquanto",normalized:"while"},continue:{primary:"continuar",normalized:"continue"},halt:{primary:"parar",normalized:"halt"},throw:{primary:"lançar",normalized:"throw"},call:{primary:"chamar",normalized:"call"},return:{primary:"retornar",alternatives:["devolver"],normalized:"return"},then:{primary:"então",alternatives:["logo"],normalized:"then"},and:{primary:"e",alternatives:["também","além disso"],normalized:"and"},end:{primary:"fim",alternatives:["final","término"],normalized:"end"},js:{primary:"js",normalized:"js"},async:{primary:"assíncrono",normalized:"async"},tell:{primary:"dizer",normalized:"tell"},default:{primary:"padrão",normalized:"default"},init:{primary:"iniciar",alternatives:["inicializar"],normalized:"init"},behavior:{primary:"comportamento",normalized:"behavior"},install:{primary:"instalar",normalized:"install"},measure:{primary:"medir",normalized:"measure"},beep:{primary:"apitar",normalized:"beep"},break:{primary:"interromper",normalized:"break"},copy:{primary:"copiar",normalized:"copy"},exit:{primary:"sair",normalized:"exit"},pick:{primary:"escolher",normalized:"pick"},render:{primary:"renderizar",normalized:"render"},into:{primary:"dentro",alternatives:["dentro de"],normalized:"into"},before:{primary:"antes",normalized:"before"},after:{primary:"depois",normalized:"after"},click:{primary:"clique",alternatives:["clicar"],normalized:"click"},hover:{primary:"sobrevoar",alternatives:["passar"],normalized:"hover"},submit:{primary:"envio",alternatives:["submeter"],normalized:"submit"},input:{primary:"entrada",alternatives:["inserção"],normalized:"input"},change:{primary:"alteração",alternatives:["mudança"],normalized:"change"},until:{primary:"até",normalized:"until"},event:{primary:"evento",normalized:"event"},from:{primary:"de",alternatives:["desde"],normalized:"from"}},eventHandler:{keyword:{primary:"em",alternatives:["ao"],normalized:"on"},sourceMarker:{primary:"de",alternatives:["desde"],position:"before"},conditionalKeyword:{primary:"quando",alternatives:["se"]},eventMarker:{primary:"ao",alternatives:["no"],position:"before"},temporalMarkers:["quando","ao"]}}}});function ov(e){return/[áàâãéêíóôõúüçÁÀÂÃÉÊÍÓÔÕÚÜÇ]/.test(e)}var sv,lv,cv,uv,pv=yc({"src/tokenizers/morphology/portuguese-normalizer.ts"(){Dc(),Qy=["-se","-me","-te","-nos","-vos"],ev=[{ending:"ando",stem:"ar",confidence:.88,type:"gerund"},{ending:"ado",stem:"ar",confidence:.88,type:"participle"},{ending:"ada",stem:"ar",confidence:.88,type:"participle"},{ending:"ados",stem:"ar",confidence:.88,type:"participle"},{ending:"adas",stem:"ar",confidence:.88,type:"participle"},{ending:"o",stem:"ar",confidence:.75,type:"present"},{ending:"as",stem:"ar",confidence:.82,type:"present"},{ending:"a",stem:"ar",confidence:.75,type:"present"},{ending:"amos",stem:"ar",confidence:.85,type:"present"},{ending:"ais",stem:"ar",confidence:.85,type:"present"},{ending:"am",stem:"ar",confidence:.8,type:"present"},{ending:"ei",stem:"ar",confidence:.88,type:"past"},{ending:"aste",stem:"ar",confidence:.88,type:"past"},{ending:"ou",stem:"ar",confidence:.88,type:"past"},{ending:"ámos",stem:"ar",confidence:.88,type:"past"},{ending:"amos",stem:"ar",confidence:.85,type:"past"},{ending:"astes",stem:"ar",confidence:.88,type:"past"},{ending:"aram",stem:"ar",confidence:.88,type:"past"},{ending:"ava",stem:"ar",confidence:.88,type:"past"},{ending:"avas",stem:"ar",confidence:.88,type:"past"},{ending:"ávamos",stem:"ar",confidence:.88,type:"past"},{ending:"avamos",stem:"ar",confidence:.85,type:"past"},{ending:"áveis",stem:"ar",confidence:.88,type:"past"},{ending:"aveis",stem:"ar",confidence:.85,type:"past"},{ending:"avam",stem:"ar",confidence:.88,type:"past"},{ending:"e",stem:"ar",confidence:.72,type:"subjunctive"},{ending:"es",stem:"ar",confidence:.78,type:"subjunctive"},{ending:"emos",stem:"ar",confidence:.82,type:"subjunctive"},{ending:"eis",stem:"ar",confidence:.82,type:"subjunctive"},{ending:"em",stem:"ar",confidence:.78,type:"subjunctive"},{ending:"a",stem:"ar",confidence:.75,type:"imperative"},{ending:"ai",stem:"ar",confidence:.85,type:"imperative"},{ending:"ar",stem:"ar",confidence:.92,type:"dictionary"}],tv=[{ending:"endo",stem:"er",confidence:.88,type:"gerund"},{ending:"ido",stem:"er",confidence:.85,type:"participle"},{ending:"ida",stem:"er",confidence:.85,type:"participle"},{ending:"idos",stem:"er",confidence:.85,type:"participle"},{ending:"idas",stem:"er",confidence:.85,type:"participle"},{ending:"o",stem:"er",confidence:.72,type:"present"},{ending:"es",stem:"er",confidence:.78,type:"present"},{ending:"e",stem:"er",confidence:.72,type:"present"},{ending:"emos",stem:"er",confidence:.85,type:"present"},{ending:"eis",stem:"er",confidence:.82,type:"present"},{ending:"em",stem:"er",confidence:.78,type:"present"},{ending:"i",stem:"er",confidence:.85,type:"past"},{ending:"este",stem:"er",confidence:.88,type:"past"},{ending:"eu",stem:"er",confidence:.88,type:"past"},{ending:"emos",stem:"er",confidence:.85,type:"past"},{ending:"estes",stem:"er",confidence:.88,type:"past"},{ending:"eram",stem:"er",confidence:.88,type:"past"},{ending:"ia",stem:"er",confidence:.85,type:"past"},{ending:"ias",stem:"er",confidence:.85,type:"past"},{ending:"íamos",stem:"er",confidence:.88,type:"past"},{ending:"iamos",stem:"er",confidence:.85,type:"past"},{ending:"íeis",stem:"er",confidence:.88,type:"past"},{ending:"ieis",stem:"er",confidence:.85,type:"past"},{ending:"iam",stem:"er",confidence:.85,type:"past"},{ending:"er",stem:"er",confidence:.92,type:"dictionary"}],rv=[{ending:"indo",stem:"ir",confidence:.88,type:"gerund"},{ending:"ido",stem:"ir",confidence:.85,type:"participle"},{ending:"ida",stem:"ir",confidence:.85,type:"participle"},{ending:"idos",stem:"ir",confidence:.85,type:"participle"},{ending:"idas",stem:"ir",confidence:.85,type:"participle"},{ending:"o",stem:"ir",confidence:.72,type:"present"},{ending:"es",stem:"ir",confidence:.78,type:"present"},{ending:"e",stem:"ir",confidence:.72,type:"present"},{ending:"imos",stem:"ir",confidence:.85,type:"present"},{ending:"is",stem:"ir",confidence:.82,type:"present"},{ending:"em",stem:"ir",confidence:.78,type:"present"},{ending:"i",stem:"ir",confidence:.85,type:"past"},{ending:"iste",stem:"ir",confidence:.88,type:"past"},{ending:"iu",stem:"ir",confidence:.88,type:"past"},{ending:"imos",stem:"ir",confidence:.85,type:"past"},{ending:"istes",stem:"ir",confidence:.88,type:"past"},{ending:"iram",stem:"ir",confidence:.88,type:"past"},{ending:"ia",stem:"ir",confidence:.85,type:"past"},{ending:"ias",stem:"ir",confidence:.85,type:"past"},{ending:"íamos",stem:"ir",confidence:.88,type:"past"},{ending:"iamos",stem:"ir",confidence:.85,type:"past"},{ending:"íeis",stem:"ir",confidence:.88,type:"past"},{ending:"ieis",stem:"ir",confidence:.85,type:"past"},{ending:"iam",stem:"ir",confidence:.85,type:"past"},{ending:"ir",stem:"ir",confidence:.92,type:"dictionary"}],nv=[...ev,...tv,...rv].sort((e,t)=>t.ending.length-e.ending.length),new(iv=class{constructor(){this.language="pt"}isNormalizable(e){return e.length>=3&&function(e){const t=e.toLowerCase();if(t.endsWith("ar")||t.endsWith("er")||t.endsWith("ir"))return!0;if(t.endsWith("ando")||t.endsWith("endo")||t.endsWith("indo"))return!0;if(t.endsWith("ado")||t.endsWith("ido"))return!0;if(t.endsWith("ar-se")||t.endsWith("er-se")||t.endsWith("ir-se"))return!0;for(const t of e)if(ov(t))return!0;return!1}(e)}normalize(e){const t=e.toLowerCase();if((t.endsWith("ar")||t.endsWith("er")||t.endsWith("ir"))&&!Qy.some(e=>t.endsWith(e)))return ac(e);const r=this.tryReflexiveNormalization(t);if(r)return r;const n=this.tryConjugationNormalization(t);return n||ac(e)}tryReflexiveNormalization(e){for(const t of Qy)if(e.endsWith(t)){const r=e.slice(0,-t.length);if(r.endsWith("ar")||r.endsWith("er")||r.endsWith("ir"))return oc(r,.88,{removedSuffixes:[t],conjugationType:"reflexive"});const n=this.tryConjugationNormalization(r);if(n&&n.stem!==r)return oc(n.stem,.95*n.confidence,{removedSuffixes:[t,...n.metadata?.removedSuffixes||[]],conjugationType:"reflexive"})}return null}tryConjugationNormalization(e){for(const t of nv)if(e.endsWith(t.ending)){const r=e.slice(0,-t.ending.length);if(2>r.length)continue;return oc(r+t.stem,t.confidence,{removedSuffixes:[t.ending],conjugationType:t.type})}return null}})}});var mv,dv,hv,fv,yv=yc({"src/tokenizers/extractors/portuguese-keyword.ts"(){var e;({isLetter:sv,isIdentifierChar:lv}=(e=/[a-zA-ZáâãéêíóôõúçÁÂÃÉÊÍÓÔÕÚÇ]/,{isLetter:t=>e.test(t),isIdentifierChar:t=>/[0-9]/.test(t)||e.test(t)})),cv=new Set(["em","a","de","para","com","sem","por","sobre","entre","antes","depois","dentro","fora","ao","do","da","no","na"]),uv=class{constructor(){this.name="portuguese-keyword"}setContext(e){this.context=e}canExtract(e,t){return sv(e[t])}extract(e,t){if(!this.context)throw Error("PortugueseKeywordExtractor: context not set");let r=t,n="";for(;e.length>r&&lv(e[r]);)n+=e[r++];if(!n)return null;const i=n.toLowerCase(),a=cv.has(i),o=this.context.lookupKeyword(i),s=o&&o.normalized!==o.native?o.normalized:void 0;let l;if(!o&&this.context.normalizer){const e=this.context.normalizer.normalize(n);if(e.stem!==n&&e.confidence>=.7){const t=this.context.lookupKeyword(e.stem);t&&(l=t.normalized)}}return{value:n,length:r-t,metadata:{normalized:s||l,isPreposition:a}}}}}}),vv={};vc(vv,{PortugueseTokenizer:()=>hv,portugueseTokenizer:()=>fv});var gv,kv=yc({"src/tokenizers/portuguese.ts"(){$c(),av(),pv(),Xc(),um(),yv(),mv=new Set(["em","a","de","desde","até","ate","com","sem","por","para","sobre","entre","antes","depois","dentro","fora","ao","do","no","na"]),dv=[{native:"verdadeiro",normalized:"true"},{native:"falso",normalized:"false"},{native:"nulo",normalized:"null"},{native:"indefinido",normalized:"undefined"},{native:"primeiro",normalized:"first"},{native:"primeira",normalized:"first"},{native:"último",normalized:"last"},{native:"ultima",normalized:"last"},{native:"próximo",normalized:"next"},{native:"proximo",normalized:"next"},{native:"anterior",normalized:"previous"},{native:"mais próximo",normalized:"closest"},{native:"mais proximo",normalized:"closest"},{native:"pai",normalized:"parent"},{native:"clique",normalized:"click"},{native:"click",normalized:"click"},{native:"entrada",normalized:"input"},{native:"mudança",normalized:"change"},{native:"mudanca",normalized:"change"},{native:"envio",normalized:"submit"},{native:"tecla baixo",normalized:"keydown"},{native:"tecla cima",normalized:"keyup"},{native:"mouse sobre",normalized:"mouseover"},{native:"mouse fora",normalized:"mouseout"},{native:"foco",normalized:"focus"},{native:"desfoque",normalized:"blur"},{native:"carregar",normalized:"load"},{native:"rolagem",normalized:"scroll"},{native:"meu",normalized:"my"},{native:"minha",normalized:"my"},{native:"isso",normalized:"it"},{native:"segundo",normalized:"s"},{native:"segundos",normalized:"s"},{native:"milissegundo",normalized:"ms"},{native:"milissegundos",normalized:"ms"},{native:"minuto",normalized:"m"},{native:"minutos",normalized:"m"},{native:"hora",normalized:"h"},{native:"horas",normalized:"h"},{native:"senao",normalized:"else"},{native:"transicao",normalized:"transition"},{native:"ate",normalized:"until"},{native:"entao",normalized:"then"},{native:"lancar",normalized:"throw"},{native:"assincrono",normalized:"async"},{native:"padrao",normalized:"default"},{native:"até que",normalized:"until"},{native:"dentro de",normalized:"into"}],fv=new(hv=class extends ic{constructor(){super(),this.language="pt",this.direction="ltr",this.initializeKeywordsFromProfile(Zy,dv),this.setNormalizer(new iv),this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractors([new uv]),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){const t=e.toLowerCase();return mv.has(t)?"particle":this.isKeyword(t)?"keyword":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":"identifier"}})}}),bv={};vc(bv,{quechuaProfile:()=>gv});var wv,zv,xv=yc({"src/generators/profiles/quechua.ts"(){gv={code:"qu",name:"Quechua",nativeName:"Runasimi",direction:"ltr",script:"latin",wordOrder:"SOV",markingStrategy:"postposition",usesSpaces:!0,verb:{position:"end",subjectDrop:!0},references:{me:"ñuqa",it:"pay",you:"qam",result:"rurasqa",event:"ruwakuq",target:"ñawpaqman",body:"ukhu"},possessive:{marker:"-pa",markerPosition:"after-object",keywords:{"ñuqapa":"me","ñuqaypa":"me",qampa:"you",paypa:"it"}},roleMarkers:{patient:{primary:"ta",position:"after"},destination:{primary:"man",alternatives:["pa"],position:"after"},source:{primary:"manta",position:"after"},style:{primary:"wan",position:"after"},event:{primary:"pi",position:"after"}},keywords:{toggle:{primary:"t'ikray",alternatives:["tikray"],normalized:"toggle"},add:{primary:"yapay",alternatives:["yapaykuy"],normalized:"add"},remove:{primary:"qichuy",alternatives:["hurquy","anchuchiy"],normalized:"remove"},put:{primary:"churay",alternatives:["tiyachiy"],normalized:"put"},append:{primary:"qatichiy",alternatives:["qhipaman_yapay"],normalized:"append"},prepend:{primary:"ñawpachiy",normalized:"prepend"},take:{primary:"hapiy",normalized:"take"},make:{primary:"ruray",alternatives:["kamay"],normalized:"make"},clone:{primary:"kikinchay",alternatives:[],normalized:"clone"},swap:{primary:"t'inkuy",alternatives:["rantikunakuy","rantin_tikray"],normalized:"swap"},morph:{primary:"tukunay",alternatives:[],normalized:"morph"},set:{primary:"churanay",alternatives:["kamaykuy"],normalized:"set"},get:{primary:"taripay",normalized:"get"},increment:{primary:"yapachiy",normalized:"increment"},decrement:{primary:"pisiyachiy",normalized:"decrement"},log:{primary:"qillqakuy",alternatives:["willakuy"],normalized:"log"},show:{primary:"rikuchiy",alternatives:["qawachiy"],normalized:"show"},hide:{primary:"pakay",alternatives:["pakakuy"],normalized:"hide"},transition:{primary:"pasay",alternatives:[],normalized:"transition"},on:{primary:"chaypim",alternatives:["kaypi"],normalized:"on"},trigger:{primary:"kuyuchiy",alternatives:["kichay"],normalized:"trigger"},send:{primary:"kachay",alternatives:["apachiy"],normalized:"send"},focus:{primary:"qhawachiy",alternatives:["qhaway"],normalized:"focus"},blur:{primary:"paqariy",alternatives:["mana qhawachiy"],normalized:"blur"},go:{primary:"riy",alternatives:["puriy"],normalized:"go"},wait:{primary:"suyay",normalized:"wait"},fetch:{primary:"apamuy",alternatives:["taripakaramuy"],normalized:"fetch"},settle:{primary:"tiyakuy",normalized:"settle"},if:{primary:"sichus",normalized:"if"},when:{primary:"maykama",normalized:"when"},where:{primary:"maypi",normalized:"where"},else:{primary:"manachus",alternatives:["hukniraq"],normalized:"else"},repeat:{primary:"kutipay",alternatives:["muyu"],normalized:"repeat"},for:{primary:"sapankaq",normalized:"for"},while:{primary:"kaykamaqa",normalized:"while"},continue:{primary:"qatipay",normalized:"continue"},halt:{primary:"sayay",alternatives:[],normalized:"halt"},throw:{primary:"chanqay",normalized:"throw"},call:{primary:"waqyay",alternatives:["qayay"],normalized:"call"},return:{primary:"kutichiy",alternatives:["kutimuy"],normalized:"return"},then:{primary:"chaymantataq",alternatives:["hinaspa","chaymanta"],normalized:"then"},and:{primary:"hinallataq",alternatives:["ima","chaymantawan"],normalized:"and"},end:{primary:"tukukuy",alternatives:["tukuy","puchukay"],normalized:"end"},js:{primary:"js",normalized:"js"},async:{primary:"mana waqtalla",normalized:"async"},tell:{primary:"niy",alternatives:[],normalized:"tell"},default:{primary:"qallariy",normalized:"default"},init:{primary:"qallarichiy",normalized:"init"},behavior:{primary:"ruwana",normalized:"behavior"},install:{primary:"tarpuy",normalized:"install"},measure:{primary:"tupuy",normalized:"measure"},beep:{primary:"waqay",normalized:"beep"},break:{primary:"p'akiy",normalized:"break"},copy:{primary:"qillqay",normalized:"copy"},exit:{primary:"lluqsiy",normalized:"exit"},pick:{primary:"akllay",normalized:"pick"},render:{primary:"rikurichiy",normalized:"render"},into:{primary:"ukuman",normalized:"into"},before:{primary:"ñawpaq",normalized:"before"},after:{primary:"qhipa",normalized:"after"},until:{primary:"kama",alternatives:["-kama"],normalized:"until"},event:{primary:"ruwakuq",alternatives:["imayna"],normalized:"event"},from:{primary:"manta",alternatives:["-manta"],normalized:"from"},click:{primary:"ñitiy",normalized:"click"},load:{primary:"apakuy",normalized:"load"},submit:{primary:"apaykachay",normalized:"submit"},hover:{primary:"hawachiy",normalized:"hover"},input:{primary:"yaykuchiy",normalized:"input"},change:{primary:"kambiay",normalized:"change"}},eventHandler:{keyword:{primary:"pi",alternatives:["kaqtin"]},sourceMarker:{primary:"manta",position:"after"},eventMarker:{primary:"pi",alternatives:["kaqtin","kaqpi"],position:"after"}}}}});function Ev(e){const t=e.charCodeAt(0);return t>=65&&90>=t||t>=97&&122>=t||("ñ"===e||"Ñ"===e||"'"===e||"'"===e)}var Tv,Sv,Cv,Av,Lv,jv=yc({"src/tokenizers/morphology/quechua-normalizer.ts"(){Dc(),wv=[{pattern:"shankichik",confidence:.8,conjugationType:"progressive",minStemLength:2},{pattern:"shaniku",confidence:.8,conjugationType:"progressive",minStemLength:2},{pattern:"shanki",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"shani",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"shanchik",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"shanku",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"shan",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"rqankichik",confidence:.8,conjugationType:"past",minStemLength:2},{pattern:"rqaniku",confidence:.8,conjugationType:"past",minStemLength:2},{pattern:"rqanki",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"rqani",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"rqanchik",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"rqanku",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"rqan",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"nqankichik",confidence:.8,conjugationType:"future",minStemLength:2},{pattern:"nqaniku",confidence:.8,conjugationType:"future",minStemLength:2},{pattern:"nqanki",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"nqani",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"nqanchik",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"nqanku",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"nqa",confidence:.85,conjugationType:"future",minStemLength:2},{pattern:"chikuy",confidence:.8,conjugationType:"compound",minStemLength:2},{pattern:"chiku",confidence:.82,conjugationType:"compound",minStemLength:2},{pattern:"chiy",confidence:.85,conjugationType:"causative",minStemLength:2,replacement:"y"},{pattern:"chiq",confidence:.85,conjugationType:"causative",minStemLength:2,replacement:"y"},{pattern:"chi",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"kuy",confidence:.82,conjugationType:"reflexive",minStemLength:2},{pattern:"rqa",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"rqan",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"sha",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"na",confidence:.85,conjugationType:"obligation",minStemLength:2},{pattern:"manmi",confidence:.8,conjugationType:"potential",minStemLength:2},{pattern:"man",confidence:.8,conjugationType:"potential",minStemLength:2},{pattern:"nkichik",confidence:.8,conjugationType:"present",minStemLength:2},{pattern:"niku",confidence:.8,conjugationType:"present",minStemLength:2},{pattern:"nki",confidence:.82,conjugationType:"present",minStemLength:2},{pattern:"nchik",confidence:.82,conjugationType:"present",minStemLength:2},{pattern:"nku",confidence:.82,conjugationType:"present",minStemLength:2},{pattern:"ni",confidence:.85,conjugationType:"present",minStemLength:2},{pattern:"ku",confidence:.82,conjugationType:"reflexive",minStemLength:2},{pattern:"ychik",confidence:.82,conjugationType:"imperative",minStemLength:2},{pattern:"y",confidence:.9,conjugationType:"dictionary",minStemLength:2},{pattern:"sqa",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"ska",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"kama",confidence:.7,conjugationType:"dictionary",minStemLength:2},{pattern:"manta",confidence:.7,conjugationType:"dictionary",minStemLength:2},{pattern:"man",confidence:.7,conjugationType:"dictionary",minStemLength:2},{pattern:"wan",confidence:.7,conjugationType:"dictionary",minStemLength:2},{pattern:"pi",confidence:.7,conjugationType:"dictionary",minStemLength:2},{pattern:"ta",confidence:.7,conjugationType:"dictionary",minStemLength:2}],zv=new class{constructor(){this.language="qu"}isNormalizable(e){if(!function(e){for(const t of e)if(Ev(t))return!0;return!1}(e))return!1;if(3>e.length)return!1;return!!/[aiu]/.test(e.toLowerCase())}normalize(e){const t=e.toLowerCase();for(const e of wv)if(t.endsWith(e.pattern)){let r=t.slice(0,-e.pattern.length);e.replacement&&!r.endsWith(e.replacement)&&(r+=e.replacement);if((e.minStemLength??2)>r.length)continue;if(!this.isValidStem(r))continue;const n={removedSuffixes:[e.pattern]};return e.conjugationType&&(n.conjugationType=e.conjugationType),oc(r,e.confidence,n)}return ac(e)}isValidStem(e){if(2>e.length)return!1;if(!/[aeiou]/.test(e))return!1;return!new Set(["ta","man","pi","wan","pa","kama","hina"]).has(e)}}}}),Pv={};vc(Pv,{QuechuaTokenizer:()=>Av,quechuaTokenizer:()=>Lv});var Nv,Ov,Iv=yc({"src/tokenizers/quechua.ts"(){$c(),xv(),jv(),Xc(),um(),Up(),Tv=class{constructor(){this.name="quechua-string-literal"}canExtract(e,t){return'"'===e[t]}extract(e,t){const r=e[t];let n=r,i=t+1;for(;e.length>i;){const t=e[i];if(t===r)return n+=t,{value:n,length:n.length};"\\"===t&&e.length>i+1?(n+=t+e[i+1],i+=2):(n+=t,i++)}return null}},Sv=new Set(["-ta","-man","-manta","-pi","-wan","-paq","-kama","-rayku","-hina","ta","man","manta","pi","wan","paq","kama","hina","pa"]),Cv=[{native:"arí",normalized:"true"},{native:"ari",normalized:"true"},{native:"manan",normalized:"false"},{native:"mana",normalized:"false"},{native:"ch'usaq",normalized:"null"},{native:"chusaq",normalized:"null"},{native:"mana riqsisqa",normalized:"undefined"},{native:"ñawpaq",normalized:"first"},{native:"nawpaq",normalized:"first"},{native:"qhipa",normalized:"last"},{native:"hamuq",normalized:"next"},{native:"ñawpaq kaq",normalized:"previous"},{native:"ñawpaq_kaq",normalized:"previous"},{native:"aswan qayllaqa",normalized:"closest"},{native:"tayta",normalized:"parent"},{native:"llikllay",normalized:"click"},{native:"ñitiy",normalized:"click"},{native:"click",normalized:"click"},{native:"yaykuy",normalized:"input"},{native:"llave uray",normalized:"keydown"},{native:"llave hawa",normalized:"keyup"},{native:"mausiri yayku",normalized:"mouseover"},{native:"mausiri lluqsi",normalized:"mouseout"},{native:"qhaway",normalized:"focus"},{native:"mana qhaway",normalized:"blur"},{native:"kargay",normalized:"load"},{native:"muyuy",normalized:"scroll"},{native:"ñuqa",normalized:"me"},{native:"nuqa",normalized:"me"},{native:"ñuqap",normalized:"my"},{native:"nuqap",normalized:"my"},{native:"chay",normalized:"it"},{native:"chaymi",normalized:"it"},{native:"lluqsiy",normalized:"result"},{native:"ruway",normalized:"event"},{native:"maypi",normalized:"target"},{native:"sikundu",normalized:"s"},{native:"segundu",normalized:"s"},{native:"waranqa sikundu",normalized:"ms"},{native:"minutu",normalized:"m"},{native:"ura",normalized:"h"},{native:"hora",normalized:"h"},{native:"chaypim",normalized:"on"},{native:"kaypi",normalized:"on"},{native:"chayqa",normalized:"then"},{native:"chaymanta",normalized:"then"},{native:"chaymantataq",normalized:"then"},{native:"hinaspa",normalized:"then"},{native:"tukukuy",normalized:"end"},{native:"puchukay",normalized:"end"},{native:"kaykama",normalized:"until"},{native:"yapay",normalized:"add"},{native:"t'ikray",normalized:"toggle"},{native:"tikray",normalized:"toggle"},{native:"qhawachiy",normalized:"focus"},{native:"mana qhawachiy",normalized:"blur"},{native:"-manta",normalized:"from"}],Lv=new(Av=class extends ic{constructor(){super(),this.language="qu",this.direction="ltr",this.initializeKeywordsFromProfile(gv,Cv),this.setNormalizer(zv),this.registerExtractors(im()),this.registerExtractor(new Tv),this.registerExtractor(new Il),this.registerExtractor(new _p),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){const t=e.toLowerCase();return Sv.has(t)?"particle":this.isKeyword(t)?"keyword":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||/^\d/.test(e)?"literal":["==","!=","<=",">=","<",">","&&","||","!"].includes(e)?"operator":"identifier"}})}});function Rv(e){return/[а-яА-ЯёЁ]/.test(e)}var Mv,Wv=yc({"src/tokenizers/morphology/russian-normalizer.ts"(){Dc(),Nv=new Map([["переключи","переключить"],["добавь","добавить"],["удали","удалить"],["убери","убрать"],["положи","положить"],["помести","поместить"],["вставь","вставить"],["возьми","взять"],["создай","создать"],["клонируй","клонировать"],["поменяй","поменять"],["трансформируй","трансформировать"],["установи","установить"],["задай","задать"],["получи","получить"],["увеличь","увеличить"],["уменьши","уменьшить"],["запиши","записать"],["покажи","показать"],["скрой","скрыть"],["спрячь","спрятать"],["анимируй","анимировать"],["вызови","вызвать"],["отправь","отправить"],["сфокусируй","сфокусировать"],["размой","размыть"],["перейди","перейти"],["иди","идти"],["жди","ждать"],["подожди","подождать"],["загрузи","загрузить"],["повтори","повторить"],["продолжи","продолжить"],["брось","бросить"],["верни","вернуть"],["скажи","сказать"],["инициализируй","инициализировать"],["измерь","измерить"]]),new(Ov=class{constructor(){this.language="ru"}isNormalizable(e){return e.length>=3&&function(e){for(const t of e)if(Rv(t))return!0;return!1}(e)}normalize(e){const t=e.toLowerCase();if(t.endsWith("ся")||t.endsWith("сь")){const e=this.tryReflexiveNormalization(t);if(e)return e}if(t.endsWith("ть")||t.endsWith("ти")||t.endsWith("чь"))return ac(e);const r=this.tryImperativeLookup(t);if(r)return r;const n=this.tryPastTenseNormalization(t);if(n)return n;const i=this.tryPresentTenseNormalization(t);if(i)return i;const a=this.tryGenericImperativeNormalization(t);return a||ac(e)}tryReflexiveNormalization(e){e.endsWith("ся");const t=e.slice(0,-2);if(e.endsWith("ться")||e.endsWith("тись")||e.endsWith("чься"))return ac(e);const r=this.normalizeNonReflexive(t);if(1>r.confidence){return oc(r.stem.endsWith("ть")?r.stem.slice(0,-2)+"ться":r.stem+"ся",.95*r.confidence,{removedSuffixes:["ся",...r.metadata?.removedSuffixes||[]],conjugationType:"reflexive"})}return null}normalizeNonReflexive(e){if(e.endsWith("ть")||e.endsWith("ти")||e.endsWith("чь"))return ac(e);const t=this.tryImperativeLookup(e);if(t)return t;const r=this.tryPastTenseNormalization(e);if(r)return r;const n=this.tryPresentTenseNormalization(e);if(n)return n;const i=this.tryGenericImperativeNormalization(e);return i||ac(e)}tryImperativeLookup(e){return Nv.has(e)?oc(Nv.get(e),.95,{removedSuffixes:["imperative"],conjugationType:"imperative"}):null}tryGenericImperativeNormalization(e){return e.endsWith("йте")&&e.length>5?oc(e.slice(0,-3)+"ть",.8,{removedSuffixes:["йте"],conjugationType:"imperative"}):e.endsWith("ите")&&e.length>5?oc(e.slice(0,-3)+"ить",.8,{removedSuffixes:["ите"],conjugationType:"imperative"}):e.endsWith("й")&&e.length>3?oc(e.slice(0,-1)+"ть",.75,{removedSuffixes:["й"],conjugationType:"imperative"}):e.endsWith("и")&&e.length>3?oc(e+"ть",.7,{removedSuffixes:["и→ить"],conjugationType:"imperative"}):null}tryPastTenseNormalization(e){return e.endsWith("ала")&&e.length>4?oc(e.slice(0,-3)+"ать",.85,{removedSuffixes:["ала"],conjugationType:"past"}):e.endsWith("ила")&&e.length>4?oc(e.slice(0,-3)+"ить",.85,{removedSuffixes:["ила"],conjugationType:"past"}):e.endsWith("ело")&&e.length>4?oc(e.slice(0,-3)+"еть",.82,{removedSuffixes:["ело"],conjugationType:"past"}):e.endsWith("або")&&e.length>4?oc(e.slice(0,-3)+"ать",.82,{removedSuffixes:["або"],conjugationType:"past"}):e.endsWith("али")&&e.length>4?oc(e.slice(0,-3)+"ать",.85,{removedSuffixes:["али"],conjugationType:"past"}):e.endsWith("или")&&e.length>4?oc(e.slice(0,-3)+"ить",.85,{removedSuffixes:["или"],conjugationType:"past"}):e.endsWith("ал")&&e.length>3?oc(e.slice(0,-2)+"ать",.82,{removedSuffixes:["ал"],conjugationType:"past"}):e.endsWith("ил")&&e.length>3?oc(e.slice(0,-2)+"ить",.82,{removedSuffixes:["ил"],conjugationType:"past"}):null}tryPresentTenseNormalization(e){return e.endsWith("ишь")&&e.length>4?oc(e.slice(0,-3)+"ить",.8,{removedSuffixes:["ишь"],conjugationType:"present"}):e.endsWith("ит")&&e.length>3?oc(e.slice(0,-2)+"ить",.78,{removedSuffixes:["ит"],conjugationType:"present"}):e.endsWith("им")&&e.length>3?oc(e.slice(0,-2)+"ить",.78,{removedSuffixes:["им"],conjugationType:"present"}):e.endsWith("ят")&&e.length>3?oc(e.slice(0,-2)+"ить",.78,{removedSuffixes:["ят"],conjugationType:"present"}):e.endsWith("ешь")&&e.length>4?oc(e.slice(0,-3)+"ать",.75,{removedSuffixes:["ешь"],conjugationType:"present"}):e.endsWith("ет")&&e.length>3?oc(e.slice(0,-2)+"ать",.72,{removedSuffixes:["ет"],conjugationType:"present"}):e.endsWith("ем")&&e.length>3?oc(e.slice(0,-2)+"ать",.72,{removedSuffixes:["ем"],conjugationType:"present"}):e.endsWith("ют")&&e.length>3?oc(e.slice(0,-2)+"ать",.75,{removedSuffixes:["ют"],conjugationType:"present"}):e.endsWith("ут")&&e.length>3?oc(e.slice(0,-2)+"ать",.72,{removedSuffixes:["ут"],conjugationType:"present"}):null}})}}),qv={};vc(qv,{russianProfile:()=>Mv});var _v,$v,Dv,Vv,Hv=yc({"src/generators/profiles/russian.ts"(){Mv={code:"ru",name:"Russian",nativeName:"Русский",direction:"ltr",script:"cyrillic",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,defaultVerbForm:"infinitive",verb:{position:"start",subjectDrop:!0,suffixes:["ть","ться","ить","иться","ать","аться","еть","еться"]},references:{me:"я",it:"это",you:"ты",result:"результат",event:"событие",target:"цель",body:"body"},possessive:{marker:"",markerPosition:"after-object",usePossessiveAdjectives:!0,specialForms:{me:"мой",it:"его",you:"твой"},keywords:{"мой":"me","моя":"me","моё":"me","мои":"me","твой":"you","твоя":"you","твоё":"you","твои":"you","его":"it","её":"it"}},roleMarkers:{destination:{primary:"в",alternatives:["на","к"],position:"before"},source:{primary:"из",alternatives:["от","с"],position:"before"},patient:{primary:"",position:"before"},style:{primary:"с",alternatives:["со"],position:"before"}},keywords:{toggle:{primary:"переключить",alternatives:["переключи"],normalized:"toggle",form:"infinitive"},add:{primary:"добавить",alternatives:["добавь"],normalized:"add",form:"infinitive"},remove:{primary:"удалить",alternatives:["удали","убрать","убери"],normalized:"remove",form:"infinitive"},put:{primary:"положить",alternatives:["положи","поместить","помести","вставить","вставь"],normalized:"put",form:"infinitive"},append:{primary:"добавить_в_конец",alternatives:["дописать"],normalized:"append",form:"infinitive"},prepend:{primary:"добавить_в_начало",normalized:"prepend",form:"infinitive"},take:{primary:"взять",alternatives:["возьми"],normalized:"take",form:"infinitive"},make:{primary:"создать",alternatives:["создай"],normalized:"make",form:"infinitive"},clone:{primary:"клонировать",alternatives:["клонируй"],normalized:"clone",form:"infinitive"},swap:{primary:"поменять",alternatives:["поменяй"],normalized:"swap",form:"infinitive"},morph:{primary:"трансформировать",alternatives:["трансформируй"],normalized:"morph",form:"infinitive"},set:{primary:"установить",alternatives:["установи","задать","задай"],normalized:"set",form:"infinitive"},get:{primary:"получить",alternatives:["получи"],normalized:"get",form:"infinitive"},increment:{primary:"увеличить",alternatives:["увеличь"],normalized:"increment",form:"infinitive"},decrement:{primary:"уменьшить",alternatives:["уменьши"],normalized:"decrement",form:"infinitive"},log:{primary:"записать",alternatives:["запиши"],normalized:"log",form:"infinitive"},show:{primary:"показать",alternatives:["покажи"],normalized:"show",form:"infinitive"},hide:{primary:"скрыть",alternatives:["скрой","спрятать","спрячь"],normalized:"hide",form:"infinitive"},transition:{primary:"анимировать",alternatives:["анимируй"],normalized:"transition",form:"infinitive"},on:{primary:"при",normalized:"on"},trigger:{primary:"инициировать",alternatives:["запустить","запусти"],normalized:"trigger",form:"infinitive"},send:{primary:"отправить",alternatives:["отправь"],normalized:"send",form:"infinitive"},focus:{primary:"сфокусировать",alternatives:["сфокусируй","фокус"],normalized:"focus",form:"infinitive"},blur:{primary:"размыть",alternatives:["размой"],normalized:"blur",form:"infinitive"},click:{primary:"клик",alternatives:["клике","нажатии"],normalized:"click"},hover:{primary:"наведении",alternatives:["наведение"],normalized:"hover"},submit:{primary:"отправке",alternatives:["отправка"],normalized:"submit"},input:{primary:"вводе",alternatives:["ввод"],normalized:"input"},change:{primary:"изменении",alternatives:["изменение"],normalized:"change"},go:{primary:"перейти",alternatives:["перейди","идти","иди"],normalized:"go",form:"infinitive"},wait:{primary:"ждать",alternatives:["жди","подожди"],normalized:"wait",form:"infinitive"},fetch:{primary:"загрузить",alternatives:["загрузи"],normalized:"fetch",form:"infinitive"},settle:{primary:"стабилизировать",normalized:"settle",form:"infinitive"},if:{primary:"если",normalized:"if"},when:{primary:"когда",normalized:"when"},where:{primary:"где",normalized:"where"},else:{primary:"иначе",normalized:"else"},repeat:{primary:"повторить",alternatives:["повтори"],normalized:"repeat",form:"infinitive"},for:{primary:"для",alternatives:["каждый"],normalized:"for"},while:{primary:"пока",normalized:"while"},continue:{primary:"продолжить",alternatives:["продолжи"],normalized:"continue",form:"infinitive"},halt:{primary:"остановить",alternatives:["остановись","стоп"],normalized:"halt",form:"infinitive"},throw:{primary:"бросить",alternatives:["брось"],normalized:"throw",form:"infinitive"},call:{primary:"вызвать",alternatives:["вызови"],normalized:"call",form:"infinitive"},return:{primary:"вернуть",alternatives:["верни"],normalized:"return",form:"infinitive"},then:{primary:"затем",alternatives:["потом","тогда"],normalized:"then"},and:{primary:"и",normalized:"and"},end:{primary:"конец",normalized:"end"},js:{primary:"js",normalized:"js"},async:{primary:"асинхронно",alternatives:["async"],normalized:"async"},tell:{primary:"сказать",alternatives:["скажи"],normalized:"tell",form:"infinitive"},default:{primary:"по_умолчанию",normalized:"default"},init:{primary:"инициализировать",alternatives:["инициализируй"],normalized:"init",form:"infinitive"},behavior:{primary:"поведение",normalized:"behavior"},install:{primary:"установить_пакет",normalized:"install",form:"infinitive"},measure:{primary:"измерить",alternatives:["измерь"],normalized:"measure",form:"infinitive"},beep:{primary:"звук",normalized:"beep"},break:{primary:"прервать",normalized:"break"},copy:{primary:"копировать",normalized:"copy"},exit:{primary:"выйти",normalized:"exit"},pick:{primary:"выбрать",normalized:"pick"},render:{primary:"отобразить",normalized:"render"},into:{primary:"в",alternatives:["во"],normalized:"into"},before:{primary:"до",alternatives:["перед"],normalized:"before"},after:{primary:"после",normalized:"after"},until:{primary:"пока_не",normalized:"until"},event:{primary:"событие",normalized:"event"},from:{primary:"из",alternatives:["от","с"],normalized:"from"}},eventHandler:{keyword:{primary:"при",normalized:"on"},sourceMarker:{primary:"на",alternatives:["в","при"],position:"before"},eventMarker:{primary:"при",position:"before"},temporalMarkers:["когда","если"]}}}}),Bv={};vc(Bv,{RussianTokenizer:()=>Dv,russianTokenizer:()=>Vv});var Fv,Uv=yc({"src/tokenizers/russian.ts"(){$c(),Wv(),Hv(),Xc(),um(),Gu(),rm(),_v=new Set(["в","во","на","с","со","к","ко","о","об","обо","у","от","до","из","за","по","под","над","перед","передо","между","через","без","для","при","про","после","вокруг","против","вместо","кроме","среди"]),$v=[{native:"истина",normalized:"true"},{native:"правда",normalized:"true"},{native:"ложь",normalized:"false"},{native:"null",normalized:"null"},{native:"неопределено",normalized:"undefined"},{native:"секунда",normalized:"s"},{native:"секунды",normalized:"s"},{native:"секунд",normalized:"s"},{native:"миллисекунда",normalized:"ms"},{native:"миллисекунды",normalized:"ms"},{native:"миллисекунд",normalized:"ms"},{native:"минута",normalized:"m"},{native:"минуты",normalized:"m"},{native:"минут",normalized:"m"},{native:"час",normalized:"h"},{native:"часа",normalized:"h"},{native:"часов",normalized:"h"},{native:"первая",normalized:"first"},{native:"первое",normalized:"first"},{native:"последняя",normalized:"last"},{native:"последнее",normalized:"last"},{native:"следующая",normalized:"next"},{native:"предыдущая",normalized:"previous"},{native:"пустая",normalized:"empty"},{native:"пустое",normalized:"empty"},{native:"моя",normalized:"my"},{native:"моё",normalized:"my"},{native:"мои",normalized:"my"}],Vv=new(Dv=class extends ic{constructor(){super(),this.language="ru",this.direction="ltr",this.initializeKeywordsFromProfile(Mv,$v),this.setNormalizer(new Ov),this.registerExtractors([...im(),new $u("russian-keyword",/[a-zA-Zа-яА-ЯёЁ]/,Du),new Ol,new Il,new Qp,new Kc,new Gc])}classifyToken(e){const t=e.toLowerCase();return _v.has(t)?"particle":this.isKeyword(t)?"keyword":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":"identifier"}})}}),Kv={};vc(Kv,{swahiliProfile:()=>Fv});var Gv,Yv,Zv,Xv,Jv=yc({"src/generators/profiles/swahili.ts"(){Fv={code:"sw",name:"Swahili",nativeName:"Kiswahili",direction:"ltr",script:"latin",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,verb:{position:"start",subjectDrop:!0},references:{me:"mimi",it:"hiyo",you:"wewe",result:"matokeo",event:"tukio",target:"lengo",body:"mwili"},possessive:{marker:"",markerPosition:"after-object",usePossessiveAdjectives:!0,specialForms:{me:"yangu",it:"yake",you:"yako"},keywords:{wangu:"me",yangu:"me",langu:"me",changu:"me",wako:"you",yako:"you",lako:"you",chako:"you",wake:"it",yake:"it",lake:"it",chake:"it"}},roleMarkers:{destination:{primary:"kwenye",alternatives:["kwa"],position:"before"},source:{primary:"kutoka",position:"before"},patient:{primary:"",position:"before"},style:{primary:"na",position:"before"}},keywords:{toggle:{primary:"badilisha",normalized:"toggle"},add:{primary:"ongeza",normalized:"add"},remove:{primary:"ondoa",alternatives:["futa","toa"],normalized:"remove"},put:{primary:"weka",alternatives:["tia"],normalized:"put"},append:{primary:"ambatanisha",normalized:"append"},prepend:{primary:"tanguliza",normalized:"prepend"},take:{primary:"chukua",normalized:"take"},make:{primary:"tengeneza",alternatives:["unda"],normalized:"make"},clone:{primary:"nakili",alternatives:["rudufu"],normalized:"clone"},swap:{primary:"badilishana",alternatives:["badalisha"],normalized:"swap"},morph:{primary:"geuza",alternatives:["badilisha umbo"],normalized:"morph"},set:{primary:"seti",normalized:"set"},get:{primary:"pata",alternatives:["pokea"],normalized:"get"},increment:{primary:"ongezeko",normalized:"increment"},decrement:{primary:"punguza",normalized:"decrement"},log:{primary:"andika",alternatives:["rekodi"],normalized:"log"},show:{primary:"onyesha",normalized:"show"},hide:{primary:"ficha",alternatives:["mficho"],normalized:"hide"},transition:{primary:"hamisha",alternatives:["animisha"],normalized:"transition"},on:{primary:"unapo",alternatives:["kwenye"],normalized:"on"},trigger:{primary:"chochea",normalized:"trigger"},send:{primary:"tuma",alternatives:["peleka"],normalized:"send"},focus:{primary:"lenga",alternatives:["angazia"],normalized:"focus"},blur:{primary:"blur",normalized:"blur"},go:{primary:"nenda",alternatives:["enda","elekea"],normalized:"go"},wait:{primary:"subiri",alternatives:["ngoja"],normalized:"wait"},fetch:{primary:"leta",alternatives:["pakia"],normalized:"fetch"},settle:{primary:"tulia",alternatives:["imarika"],normalized:"settle"},if:{primary:"kama",alternatives:["ikiwa"],normalized:"if"},when:{primary:"wakati",normalized:"when"},where:{primary:"wapi",normalized:"where"},else:{primary:"vinginevyo",alternatives:["sivyo"],normalized:"else"},repeat:{primary:"rudia",normalized:"repeat"},for:{primary:"kwa",normalized:"for"},while:{primary:"kadri",normalized:"while"},continue:{primary:"endelea",normalized:"continue"},halt:{primary:"simama",alternatives:["acha"],normalized:"halt"},throw:{primary:"tupa",normalized:"throw"},call:{primary:"ita",normalized:"call"},return:{primary:"rudisha",alternatives:["rejea"],normalized:"return"},then:{primary:"kisha",alternatives:["halafu","baadaye"],normalized:"then"},and:{primary:"na",alternatives:["pia","vilevile"],normalized:"and"},end:{primary:"mwisho",alternatives:["maliza","tamati"],normalized:"end"},js:{primary:"js",alternatives:["javascript"],normalized:"js"},async:{primary:"isiyo sawia",normalized:"async"},tell:{primary:"sema",alternatives:["ambia"],normalized:"tell"},default:{primary:"chaguo-msingi",normalized:"default"},init:{primary:"anzisha",alternatives:["anza"],normalized:"init"},behavior:{primary:"tabia",normalized:"behavior"},install:{primary:"sakinisha",normalized:"install"},measure:{primary:"pima",normalized:"measure"},beep:{primary:"lia",normalized:"beep"},break:{primary:"vunja",normalized:"break"},copy:{primary:"nakala",normalized:"copy"},exit:{primary:"toka",normalized:"exit"},pick:{primary:"chagua",normalized:"pick"},render:{primary:"chora",normalized:"render"},into:{primary:"ndani",normalized:"into"},before:{primary:"kabla",normalized:"before"},after:{primary:"baada",normalized:"after"},until:{primary:"hadi",normalized:"until"},event:{primary:"tukio",normalized:"event"},from:{primary:"kutoka",normalized:"from"}},eventHandler:{keyword:{primary:"unapo",alternatives:["kwenye","kwa","wakati"]},sourceMarker:{primary:"kutoka",position:"before"},conditionalKeyword:{primary:"unapo",alternatives:["anapo","tunapo","mnapo","wanapo"]},eventMarker:{primary:"unapo",alternatives:["kwenye","kwa","wakati"],position:"before"}}}}}),Qv={};vc(Qv,{SwahiliTokenizer:()=>Zv,swahiliTokenizer:()=>Xv});var eg,tg=yc({"src/tokenizers/swahili.ts"(){$c(),Jv(),Xc(),um(),Rp(),Gv=new Set(["kwa","na","katika","kwenye","kutoka","hadi","mpaka","kabla","baada","wakati","bila","kuhusu","karibu","mbele","nyuma","ndani","nje","juu","chini","kati"]),Yv=[{native:"kweli",normalized:"true"},{native:"uongo",normalized:"false"},{native:"null",normalized:"null"},{native:"tupu",normalized:"null"},{native:"haijafafanuliwa",normalized:"undefined"},{native:"wa kwanza",normalized:"first"},{native:"wa mwisho",normalized:"last"},{native:"ifuatayo",normalized:"next"},{native:"iliyotangulia",normalized:"previous"},{native:"karibu",normalized:"closest"},{native:"mzazi",normalized:"parent"},{native:"bonyeza",normalized:"click"},{native:"click",normalized:"click"},{native:"ganti",normalized:"change"},{native:"wasilisha",normalized:"submit"},{native:"bonyeza kitufe",normalized:"keydown"},{native:"sogeza juu",normalized:"mouseover"},{native:"sogeza nje",normalized:"mouseout"},{native:"fifia",normalized:"blur"},{native:"pakia",normalized:"load"},{native:"sukuma",normalized:"scroll"},{native:"input",normalized:"input"},{native:"yangu",normalized:"my"},{native:"wangu",normalized:"my"},{native:"changu",normalized:"my"},{native:"langu",normalized:"my"},{native:"sekunde",normalized:"s"},{native:"millisekunde",normalized:"ms"},{native:"dakika",normalized:"m"},{native:"saa",normalized:"h"},{native:"au",normalized:"or"},{native:"si",normalized:"not"},{native:"ni",normalized:"is"},{native:"ipo",normalized:"exists"},{native:"tupu",normalized:"empty"}],Xv=new(Zv=class extends ic{constructor(){super(),this.language="sw",this.direction="ltr",this.initializeKeywordsFromProfile(Fv,Yv),this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractors([new jp]),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){const t=e.toLowerCase();return Gv.has(t)?"particle":this.isKeyword(t)?"keyword":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":["==","!=","<=",">=","<",">","&&","||","!"].includes(e)?"operator":"identifier"}})}}),rg={};vc(rg,{thaiProfile:()=>eg});var ng,ig,ag,og=yc({"src/generators/profiles/thai.ts"(){eg={code:"th",name:"Thai",nativeName:"ไทย",direction:"ltr",script:"thai",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!1,defaultVerbForm:"base",verb:{position:"second",subjectDrop:!0},references:{me:"ฉัน",it:"มัน",you:"คุณ",result:"ผลลัพธ์",event:"เหตุการณ์",target:"เป้าหมาย",body:"บอดี้"},possessive:{marker:"ของ",markerPosition:"between",keywords:{"ของฉัน":"me","ของผม":"me","ของคุณ":"you","ของมัน":"it","ของเขา":"it","ของเธอ":"it"}},roleMarkers:{patient:{primary:"",position:"before"},destination:{primary:"ใน",alternatives:["ไปยัง"],position:"before"},source:{primary:"จาก",position:"before"},style:{primary:"ด้วย",position:"before"},event:{primary:"เมื่อ",position:"before"}},keywords:{toggle:{primary:"สลับ",alternatives:[],normalized:"toggle"},add:{primary:"เพิ่ม",alternatives:[],normalized:"add"},remove:{primary:"ลบ",alternatives:["ลบออก"],normalized:"remove"},put:{primary:"ใส่",alternatives:["วาง"],normalized:"put"},append:{primary:"เพิ่มท้าย",alternatives:[],normalized:"append"},prepend:{primary:"เพิ่มหน้า",alternatives:[],normalized:"prepend"},take:{primary:"รับ",alternatives:[],normalized:"take"},make:{primary:"สร้าง",alternatives:[],normalized:"make"},clone:{primary:"โคลน",alternatives:["สำเนา"],normalized:"clone"},swap:{primary:"สลับที่",alternatives:[],normalized:"swap"},morph:{primary:"แปลงร่าง",alternatives:[],normalized:"morph"},set:{primary:"ตั้ง",alternatives:["กำหนด"],normalized:"set"},get:{primary:"รับค่า",alternatives:[],normalized:"get"},increment:{primary:"เพิ่มค่า",alternatives:[],normalized:"increment"},decrement:{primary:"ลดค่า",alternatives:[],normalized:"decrement"},log:{primary:"บันทึก",alternatives:[],normalized:"log"},show:{primary:"แสดง",alternatives:[],normalized:"show"},hide:{primary:"ซ่อน",alternatives:[],normalized:"hide"},transition:{primary:"เปลี่ยนผ่าน",alternatives:[],normalized:"transition"},on:{primary:"เมื่อ",alternatives:["ตอน"],normalized:"on"},trigger:{primary:"ทริกเกอร์",alternatives:[],normalized:"trigger"},send:{primary:"ส่ง",alternatives:[],normalized:"send"},focus:{primary:"โฟกัส",alternatives:[],normalized:"focus"},blur:{primary:"เบลอ",alternatives:[],normalized:"blur"},click:{primary:"คลิก",normalized:"click"},hover:{primary:"โฮเวอร์",alternatives:["วางเมาส์"],normalized:"hover"},submit:{primary:"ยื่น",alternatives:["ส่งข้อมูล"],normalized:"submit"},input:{primary:"ป้อน",alternatives:["กรอก"],normalized:"input"},change:{primary:"เปลี่ยน",alternatives:["เปลี่ยนแปลง"],normalized:"change"},go:{primary:"ไป",alternatives:["ไปที่"],normalized:"go"},wait:{primary:"รอ",alternatives:[],normalized:"wait"},fetch:{primary:"ดึงข้อมูล",alternatives:[],normalized:"fetch"},settle:{primary:"คงที่",alternatives:[],normalized:"settle"},if:{primary:"ถ้า",alternatives:["หาก"],normalized:"if"},when:{primary:"ขณะที่",normalized:"when"},where:{primary:"ที่ไหน",normalized:"where"},else:{primary:"ไม่งั้น",alternatives:["ไม่เช่นนั้น"],normalized:"else"},repeat:{primary:"ทำซ้ำ",alternatives:[],normalized:"repeat"},for:{primary:"สำหรับ",alternatives:[],normalized:"for"},while:{primary:"ในขณะที่",alternatives:[],normalized:"while"},continue:{primary:"ต่อไป",alternatives:[],normalized:"continue"},halt:{primary:"หยุด",alternatives:[],normalized:"halt"},throw:{primary:"โยน",alternatives:[],normalized:"throw"},call:{primary:"เรียก",alternatives:[],normalized:"call"},return:{primary:"คืนค่า",alternatives:["กลับ"],normalized:"return"},then:{primary:"แล้ว",alternatives:[],normalized:"then"},and:{primary:"และ",alternatives:[],normalized:"and"},end:{primary:"จบ",alternatives:[],normalized:"end"},js:{primary:"เจเอส",alternatives:["js"],normalized:"js"},async:{primary:"อะซิงค์",alternatives:[],normalized:"async"},tell:{primary:"บอก",alternatives:[],normalized:"tell"},default:{primary:"ค่าเริ่มต้น",alternatives:[],normalized:"default"},init:{primary:"เริ่มต้น",alternatives:[],normalized:"init"},behavior:{primary:"พฤติกรรม",alternatives:[],normalized:"behavior"},install:{primary:"ติดตั้ง",alternatives:[],normalized:"install"},measure:{primary:"วัด",alternatives:[],normalized:"measure"},beep:{primary:"บี๊บ",alternatives:[],normalized:"beep"},break:{primary:"ขัดจังหวะ",alternatives:[],normalized:"break"},copy:{primary:"คัดลอก",alternatives:[],normalized:"copy"},exit:{primary:"ออก",alternatives:[],normalized:"exit"},pick:{primary:"เลือก",alternatives:[],normalized:"pick"},render:{primary:"แสดงผล",alternatives:[],normalized:"render"},into:{primary:"ใน",alternatives:[],normalized:"into"},before:{primary:"ก่อน",alternatives:[],normalized:"before"},after:{primary:"หลัง",alternatives:[],normalized:"after"},until:{primary:"จนถึง",alternatives:[],normalized:"until"},event:{primary:"เหตุการณ์",alternatives:[],normalized:"event"},from:{primary:"จาก",normalized:"from"}},tokenization:{boundaryStrategy:"character"},eventHandler:{keyword:{primary:"เมื่อ",alternatives:["ตอน"],normalized:"on"},sourceMarker:{primary:"จาก",position:"before"},eventMarker:{primary:"เมื่อ",alternatives:["ตอน"],position:"before"},temporalMarkers:["เมื่อ","ตอน"]}}}}),sg={};vc(sg,{ThaiTokenizer:()=>ig,thaiTokenizer:()=>ag});var lg,cg=yc({"src/tokenizers/thai.ts"(){$c(),og(),Xc(),um(),pp(),ng=[{native:"จริง",normalized:"true"},{native:"เท็จ",normalized:"false"},{native:"ว่าง",normalized:"null"},{native:"ไม่กำหนด",normalized:"undefined"},{native:"แรก",normalized:"first"},{native:"สุดท้าย",normalized:"last"},{native:"ถัดไป",normalized:"next"},{native:"ก่อนหน้า",normalized:"previous"},{native:"ใกล้สุด",normalized:"closest"},{native:"ต้นทาง",normalized:"parent"},{native:"คลิก",normalized:"click"},{native:"เปลี่ยนแปลง",normalized:"change"},{native:"ส่ง",normalized:"submit"},{native:"อินพุต",normalized:"input"},{native:"โหลด",normalized:"load"},{native:"เลื่อน",normalized:"scroll"},{native:"เวลา",normalized:"when"},{native:"ไปยัง",normalized:"to"},{native:"ด้วย",normalized:"with"},{native:"และ",normalized:"and"}],ag=new(ig=class extends ic{constructor(){super(),this.language="th",this.direction="ltr",this.initializeKeywordsFromProfile(eg,ng),this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractors([new ap]),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){return this.isKeyword(e)?"keyword":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith(".")||e.startsWith("#")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith(":")?"identifier":e.startsWith('"')||e.startsWith("'")||/^-?\d/.test(e)?"literal":"identifier"}})}}),ug={};vc(ug,{tagalogProfile:()=>lg});var pg,mg,dg,hg,fg,yg=yc({"src/generators/profiles/tl.ts"(){lg={code:"tl",name:"Tagalog",nativeName:"Tagalog",direction:"ltr",script:"latin",wordOrder:"VSO",markingStrategy:"preposition",usesSpaces:!0,defaultVerbForm:"base",verb:{position:"start",subjectDrop:!0},references:{me:"ako",it:"ito",you:"ikaw",result:"resulta",event:"pangyayari",target:"target",body:"body"},possessive:{marker:"ng",markerPosition:"between",keywords:{ko:"me",akin:"me",aking:"me",mo:"you",iyo:"you",niya:"it",nito:"it",kaniya:"it"}},roleMarkers:{destination:{primary:"sa",position:"before"},source:{primary:"mula_sa",position:"before"},patient:{primary:"",position:"before"},style:{primary:"nang",position:"before"}},keywords:{toggle:{primary:"palitan",alternatives:["itoggle"],normalized:"toggle"},add:{primary:"idagdag",alternatives:["magdagdag"],normalized:"add"},remove:{primary:"alisin",alternatives:["tanggalin"],normalized:"remove"},put:{primary:"ilagay",alternatives:["maglagay"],normalized:"put"},append:{primary:"idagdag_sa_dulo",normalized:"append"},prepend:{primary:"idagdag_sa_simula",normalized:"prepend"},take:{primary:"kumuha",normalized:"take"},make:{primary:"gumawa",alternatives:["lumikha"],normalized:"make"},clone:{primary:"i-clone",normalized:"clone"},swap:{primary:"palitan_pwesto",alternatives:["magpalit"],normalized:"swap"},morph:{primary:"baguhin",normalized:"morph"},set:{primary:"itakda",alternatives:["magtakda"],normalized:"set"},get:{primary:"kunin",normalized:"get"},increment:{primary:"dagdagan",alternatives:["taasan"],normalized:"increment"},decrement:{primary:"bawasan",alternatives:["ibaba"],normalized:"decrement"},log:{primary:"itala",normalized:"log"},show:{primary:"ipakita",alternatives:["magpakita"],normalized:"show"},hide:{primary:"itago",alternatives:["magtago"],normalized:"hide"},transition:{primary:"lumipat",normalized:"transition"},on:{primary:"kapag",normalized:"on"},trigger:{primary:"palitawin",alternatives:["magpatugtog"],normalized:"trigger"},send:{primary:"ipadala",alternatives:["magpadala"],normalized:"send"},focus:{primary:"ituon",normalized:"focus"},blur:{primary:"alisin_tuon",normalized:"blur"},go:{primary:"pumunta",alternatives:["punta"],normalized:"go"},wait:{primary:"maghintay",alternatives:["hintay"],normalized:"wait"},fetch:{primary:"kuhanin_mula",alternatives:["kunin_mula"],normalized:"fetch"},settle:{primary:"magpatahimik",normalized:"settle"},if:{primary:"kung",normalized:"if"},when:{primary:"tuwing",normalized:"when"},where:{primary:"kung_saan",normalized:"where"},else:{primary:"kung_hindi",alternatives:["kundi"],normalized:"else"},repeat:{primary:"ulitin",alternatives:["paulit-ulit"],normalized:"repeat"},for:{primary:"para_sa",normalized:"for"},while:{primary:"habang",normalized:"while"},continue:{primary:"magpatuloy",normalized:"continue"},halt:{primary:"itigil",alternatives:["huminto"],normalized:"halt"},throw:{primary:"ihagis",alternatives:["itapon"],normalized:"throw"},call:{primary:"tawagin",alternatives:["tawagan","tumawag"],normalized:"call"},return:{primary:"ibalik",alternatives:["bumalik"],normalized:"return"},then:{primary:"pagkatapos",alternatives:["saka"],normalized:"then"},and:{primary:"at",normalized:"and"},end:{primary:"wakas",alternatives:["tapos"],normalized:"end"},js:{primary:"js",normalized:"js"},async:{primary:"async",normalized:"async"},tell:{primary:"sabihin",alternatives:["magsabi"],normalized:"tell"},default:{primary:"pamantayan",alternatives:["default","unang_halaga"],normalized:"default"},init:{primary:"simulan",alternatives:["magsimula"],normalized:"init"},behavior:{primary:"ugali",alternatives:["kilos"],normalized:"behavior"},install:{primary:"ikabit",alternatives:["mag-install"],normalized:"install"},measure:{primary:"sukatin",normalized:"measure"},beep:{primary:"tunog",normalized:"beep"},break:{primary:"putulin",normalized:"break"},copy:{primary:"kopyahin",normalized:"copy"},exit:{primary:"lumabas",normalized:"exit"},pick:{primary:"pumili",normalized:"pick"},render:{primary:"irender",normalized:"render"},into:{primary:"sa",normalized:"into"},before:{primary:"bago",normalized:"before"},after:{primary:"matapos",normalized:"after"},until:{primary:"hanggang",normalized:"until"},event:{primary:"pangyayari",normalized:"event"},from:{primary:"mula",alternatives:["galing"],normalized:"from"}},eventHandler:{keyword:{primary:"kapag",normalized:"on"},sourceMarker:{primary:"mula_sa",alternatives:["galing_sa"],position:"before"},eventMarker:{primary:"kapag",position:"before"}}}}});function vg(e){const t=e.charCodeAt(0);return t>=65&&90>=t||t>=97&&122>=t||("ñ"===e||"Ñ"===e)}var gg,kg,bg,wg=yc({"src/tokenizers/morphology/tagalog-normalizer.ts"(){Dc(),pg=[{pattern:"magpapa",confidencePenalty:.15,prefixType:"verb-marker",minRemaining:3},{pattern:"magpa",confidencePenalty:.15,prefixType:"verb-marker",minRemaining:3},{pattern:"ipang",confidencePenalty:.15,prefixType:"verb-marker",minRemaining:3},{pattern:"ipag",confidencePenalty:.15,prefixType:"verb-marker",minRemaining:3},{pattern:"nagpa",confidencePenalty:.15,prefixType:"verb-marker",minRemaining:3}],mg=[{pattern:"mag",confidencePenalty:.15,prefixType:"verb-marker",minRemaining:3},{pattern:"nag",confidencePenalty:.15,prefixType:"verb-marker",minRemaining:3},{pattern:"mang",confidencePenalty:.15,prefixType:"verb-marker",minRemaining:3},{pattern:"nang",confidencePenalty:.15,prefixType:"verb-marker",minRemaining:3},{pattern:"ma",confidencePenalty:.12,prefixType:"verb-marker",minRemaining:3},{pattern:"na",confidencePenalty:.12,prefixType:"verb-marker",minRemaining:3},{pattern:"i",confidencePenalty:.15,prefixType:"verb-marker",minRemaining:3},{pattern:"pa",confidencePenalty:.12,prefixType:"verb-marker",minRemaining:3}],dg=["um","in"],hg=[{pattern:"hin",confidencePenalty:.18,type:"patient-focus"},{pattern:"in",confidencePenalty:.18,type:"patient-focus"},{pattern:"han",confidencePenalty:.18,type:"locative-focus"},{pattern:"an",confidencePenalty:.18,type:"locative-focus"}],fg=new class{constructor(){this.language="tl"}isNormalizable(e){return!!function(e){for(const t of e)if(vg(t))return!0;return!1}(e)&&2<=e.length}normalize(e){let t=e.toLowerCase(),r=1;const n=[],i=[],a=[];for(const e of pg)if(t.startsWith(e.pattern)){const i=t.slice(e.pattern.length);if(i.length>=(e.minRemaining??2)){t=i,r-=e.confidencePenalty,n.push(e.pattern),a.push("prefix:"+e.pattern);break}}if(0===n.length)for(const e of mg)if(t.startsWith(e.pattern)){const i=t.slice(e.pattern.length);if(i.length>=(e.minRemaining??2)){t=i,r-=e.confidencePenalty,n.push(e.pattern),a.push("prefix:"+e.pattern);break}}const o=function(e){const t=e.toLowerCase();if(4>t.length)return{stem:t,reduplicated:!1};const r=t[0],n=t[1];if(!"aeiou".includes(r)&&"aeiou".includes(n)){const e=t.slice(2);if(e.length>=2&&e[0]===r)return{stem:e,reduplicated:!0}}return{stem:t,reduplicated:!1}}(t);o.reduplicated&&o.stem.length>=2&&(t=o.stem,r-=.1,a.push("reduplication:CV"));const s=function(e){const t=e.toLowerCase();if(5>t.length)return null;let r=0;for(let e=0;t.length>e&&!"aeiou".includes(t[e]);e++)r=e+1;if(0===r)return null;for(const e of dg){const n=r;if(t.slice(n,n+e.length)===e){const i=t.slice(0,r)+t.slice(n+e.length);if(i.length>=3)return{stem:i,infix:e}}}return null}(t);let l=!1;if(s&&s.stem.length>=2&&(t=s.stem,r-=.18,a.push("infix:"+s.infix),l=!0),!l)for(const e of hg)if(t.endsWith(e.pattern)){const n=t.slice(0,-e.pattern.length);if(n.length>=2){t=n,r-=e.confidencePenalty,i.push(e.pattern),a.push("suffix:"+e.pattern);break}}return r=Math.max(.5,r),0===n.length&&0===i.length&&0===a.length?ac(e):oc(t,r,{removedPrefixes:n,removedSuffixes:i,appliedRules:a})}}}}),zg={};vc(zg,{TagalogTokenizer:()=>kg,tagalogTokenizer:()=>bg});var xg,Eg,Tg=yc({"src/tokenizers/tl.ts"(){$c(),yg(),wg(),Xc(),um(),wp(),gg=[{native:"totoo",normalized:"true"},{native:"mali",normalized:"false"},{native:"wala",normalized:"null"},{native:"hindi_tinukoy",normalized:"undefined"},{native:"una",normalized:"first"},{native:"huli",normalized:"last"},{native:"susunod",normalized:"next"},{native:"nakaraan",normalized:"previous"},{native:"pinakamalapit",normalized:"closest"},{native:"magulang",normalized:"parent"},{native:"pindot",normalized:"click"},{native:"pagbabago",normalized:"change"},{native:"isumite",normalized:"submit"},{native:"input",normalized:"input"},{native:"karga",normalized:"load"},{native:"mag_scroll",normalized:"scroll"}],bg=new(kg=class extends ic{constructor(){super(),this.language="tl",this.direction="ltr",this.initializeKeywordsFromProfile(lg,gg),this.setNormalizer(fg),this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractors([new hp]),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){return this.isKeyword(e)?"keyword":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith(".")||e.startsWith("#")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith(":")?"identifier":e.startsWith('"')||e.startsWith("'")||/^-?\d/.test(e)?"literal":"identifier"}})}});function Sg(e){const t=e.charCodeAt(0);if(t>=65&&90>=t||t>=97&&122>=t)return!0;return"çÇğĞıİöÖşŞüÜ".includes(e)}function Cg(e){return"aıouAIOU".includes(e)}function Ag(e){return"eiöüEİÖÜ".includes(e)}function Lg(e){return Cg(e)||Ag(e)}function jg(e,t){const r=function(e){for(let t=e.length-1;t>=0;t--)if(Lg(e[t]))return e[t];return null}(e);if(!r)return!0;const n=t.split("").find(e=>Lg(e));return!n||(Cg(r)?Cg(n):Ag(n))}var Pg,Ng=yc({"src/tokenizers/morphology/turkish-normalizer.ts"(){Dc(),xg=[{pattern:"iyorsunuz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"ıyorsunuz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"üyorsunuz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"uyorsunuz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"iyorsun",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"ıyorsun",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"üyorsun",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"uyorsun",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"iyoruz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"ıyoruz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"üyoruz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"uyoruz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"iyorum",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"ıyorum",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"üyorum",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"uyorum",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"iyorlar",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"ıyorlar",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"üyorlar",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"uyorlar",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"eceksiniz",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"acaksınız",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"eceksin",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"acaksın",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"eceğiz",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"acağız",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"eceğim",confidence:.85,conjugationType:"future",minStemLength:2},{pattern:"acağım",confidence:.85,conjugationType:"future",minStemLength:2},{pattern:"ecekler",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"acaklar",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"mişsiniz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mışsınız",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"müşsünüz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"muşsunuz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mişsin",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mışsın",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"müşsün",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"muşsun",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mişiz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mışız",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"müşüz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"muşuz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mişim",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"mışım",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"müşüm",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"muşum",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"mişler",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mışlar",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"müşler",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"muşlar",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"diniz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dınız",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dünüz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dunuz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tiniz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tınız",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tünüz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tunuz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"diler",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dılar",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"düler",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dular",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tiler",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tılar",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tüler",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tular",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"din",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dın",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dün",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dun",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tin",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tın",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tün",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tun",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dik",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dık",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dük",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"duk",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tik",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tık",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tük",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tuk",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dim",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"dım",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"düm",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"dum",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"tim",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"tım",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"tüm",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"tum",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"iyor",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"ıyor",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"üyor",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"uyor",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"ecek",confidence:.85,conjugationType:"future",minStemLength:2},{pattern:"acak",confidence:.85,conjugationType:"future",minStemLength:2},{pattern:"miş",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"mış",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"müş",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"muş",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"di",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"dı",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"dü",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"du",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"ti",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"tı",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"tü",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"tu",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"mek",confidence:.88,conjugationType:"dictionary",minStemLength:2},{pattern:"mak",confidence:.88,conjugationType:"dictionary",minStemLength:2},{pattern:"eyelim",confidence:.82,conjugationType:"optative",minStemLength:2},{pattern:"ayalım",confidence:.82,conjugationType:"optative",minStemLength:2},{pattern:"eyim",confidence:.82,conjugationType:"optative",minStemLength:2},{pattern:"ayım",confidence:.82,conjugationType:"optative",minStemLength:2},{pattern:"elim",confidence:.82,conjugationType:"optative",minStemLength:2},{pattern:"alım",confidence:.82,conjugationType:"optative",minStemLength:2},{pattern:"melisiniz",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"malısınız",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"melisin",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"malısın",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"meliyiz",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"malıyız",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"meliyim",confidence:.85,conjugationType:"necessitative",minStemLength:2},{pattern:"malıyım",confidence:.85,conjugationType:"necessitative",minStemLength:2},{pattern:"meliler",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"malılar",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"meli",confidence:.85,conjugationType:"necessitative",minStemLength:2},{pattern:"malı",confidence:.85,conjugationType:"necessitative",minStemLength:2},{pattern:"ebiliyor",confidence:.82,conjugationType:"potential",minStemLength:2},{pattern:"abiliyor",confidence:.82,conjugationType:"potential",minStemLength:2},{pattern:"ebilir",confidence:.85,conjugationType:"potential",minStemLength:2},{pattern:"abilir",confidence:.85,conjugationType:"potential",minStemLength:2},{pattern:"ebildi",confidence:.82,conjugationType:"potential",minStemLength:2},{pattern:"abildi",confidence:.82,conjugationType:"potential",minStemLength:2},{pattern:"ebilmek",confidence:.85,conjugationType:"potential",minStemLength:2},{pattern:"abilmek",confidence:.85,conjugationType:"potential",minStemLength:2},{pattern:"iniz",confidence:.82,conjugationType:"imperative",minStemLength:2},{pattern:"ınız",confidence:.82,conjugationType:"imperative",minStemLength:2},{pattern:"ünüz",confidence:.82,conjugationType:"imperative",minStemLength:2},{pattern:"unuz",confidence:.82,conjugationType:"imperative",minStemLength:2},{pattern:"in",confidence:.8,conjugationType:"imperative",minStemLength:2},{pattern:"ın",confidence:.8,conjugationType:"imperative",minStemLength:2},{pattern:"ün",confidence:.8,conjugationType:"imperative",minStemLength:2},{pattern:"un",confidence:.8,conjugationType:"imperative",minStemLength:2},{pattern:"ildi",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"ıldı",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"üldü",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"uldu",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"ilir",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"ılır",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"ülür",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"ulur",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"tirmek",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"tırmak",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"türmek",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"turmak",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"dirmek",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"dırmak",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"dürmek",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"durmak",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"miyorsunuz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"mıyorsunuz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"müyorsunuz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"muyorsunuz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"miyorsun",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"mıyorsun",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"müyorsun",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"muyorsun",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"miyoruz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"mıyoruz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"müyoruz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"muyoruz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"miyorum",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"mıyorum",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"müyorum",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"muyorum",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"miyor",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"mıyor",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"müyor",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"muyor",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"medi",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"madı",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"me",confidence:.75,conjugationType:"negative",minStemLength:3},{pattern:"ma",confidence:.75,conjugationType:"negative",minStemLength:3}],new(Eg=class{constructor(){this.language="tr"}isNormalizable(e){return!!function(e){for(const t of e)if(Sg(t))return!0;return!1}(e)&&3<=e.length}normalize(e){const t=e.toLowerCase();for(const e of xg)if(t.endsWith(e.pattern)){const r=t.slice(0,-e.pattern.length);if((e.minStemLength??2)>r.length)continue;if(!jg(r,e.pattern)){const t=.9*e.confidence,n={removedSuffixes:[e.pattern]};return e.conjugationType&&(n.conjugationType=e.conjugationType),oc(r,t,n)}const n={removedSuffixes:[e.pattern]};return e.conjugationType&&(n.conjugationType=e.conjugationType),oc(r,e.confidence,n)}return ac(e)}})}}),Og={};vc(Og,{turkishProfile:()=>Pg});var Ig,Rg,Mg,Wg,qg,_g=yc({"src/generators/profiles/turkish.ts"(){Pg={code:"tr",name:"Turkish",nativeName:"Türkçe",direction:"ltr",script:"latin",wordOrder:"SOV",markingStrategy:"case-suffix",usesSpaces:!0,verb:{position:"end",suffixes:["mek","mak","yor","di","miş"],subjectDrop:!0},references:{me:"ben",it:"o",you:"sen",result:"sonuç",event:"olay",target:"hedef",body:"gövde"},possessive:{marker:"",markerPosition:"after-object",usePossessiveAdjectives:!0,specialForms:{me:"benim",it:"onun",you:"senin"},keywords:{benim:"me",senin:"you",onun:"it"}},roleMarkers:{patient:{primary:"i",alternatives:["ı","u","ü","yi","yı","yu","yü","ni","nı","nu","nü"],position:"after"},destination:{primary:"e",alternatives:["a","ye","ya","ne","na","de","da","te","ta","ın","in","un","ün","nın","nin","nun","nün"],position:"after"},source:{primary:"den",alternatives:["dan","ten","tan"],position:"after"},style:{primary:"le",alternatives:["la","yle","yla"],position:"after"},event:{primary:"i",alternatives:["ı","u","ü"],position:"after"}},keywords:{toggle:{primary:"değiştir",alternatives:["aç/kapat"],normalized:"toggle"},add:{primary:"ekle",normalized:"add"},remove:{primary:"kaldır",alternatives:["sil"],normalized:"remove"},put:{primary:"koy",normalized:"put"},append:{primary:"iliştir",normalized:"append"},prepend:{primary:"başınaekle",normalized:"prepend"},take:{primary:"tut",normalized:"take"},make:{primary:"yap",normalized:"make"},clone:{primary:"klonla",normalized:"clone"},swap:{primary:"takas",normalized:"swap"},morph:{primary:"dönüştür",alternatives:["şekil değiştir"],normalized:"morph"},set:{primary:"ayarla",alternatives:["belirle"],normalized:"set"},get:{primary:"al",normalized:"get"},increment:{primary:"artır",normalized:"increment"},decrement:{primary:"azalt",normalized:"decrement"},log:{primary:"kaydet",normalized:"log"},show:{primary:"göster",normalized:"show"},hide:{primary:"gizle",normalized:"hide"},transition:{primary:"geçiş",normalized:"transition"},on:{primary:"üzerinde",alternatives:["zaman"],normalized:"on"},trigger:{primary:"tetikle",normalized:"trigger"},send:{primary:"gönder",normalized:"send"},focus:{primary:"odak",alternatives:["odaklanma"],normalized:"focus"},blur:{primary:"bulanık",alternatives:["bulanıklık","bulanik"],normalized:"blur"},click:{primary:"tıklama",alternatives:["tıkla","tiklama","tık","tik"],normalized:"click"},hover:{primary:"üzerine gelme",alternatives:["üzerinde gezinme"],normalized:"hover"},submit:{primary:"gönderme",normalized:"submit"},input:{primary:"giriş",alternatives:["girdi","giris"],normalized:"input"},change:{primary:"değişiklik",alternatives:["değişim","degisim"],normalized:"change"},go:{primary:"git",normalized:"go"},wait:{primary:"bekle",normalized:"wait"},fetch:{primary:"getir",normalized:"fetch"},settle:{primary:"sabitlen",normalized:"settle"},if:{primary:"eğer",normalized:"if"},when:{primary:"iken",alternatives:["durumunda","olduğunda"],normalized:"when"},where:{primary:"nerede",normalized:"where"},else:{primary:"yoksa",normalized:"else"},repeat:{primary:"tekrarla",normalized:"repeat"},for:{primary:"için",normalized:"for"},while:{primary:"süresince",normalized:"while"},continue:{primary:"devam",normalized:"continue"},halt:{primary:"durdur",normalized:"halt"},throw:{primary:"fırlat",normalized:"throw"},call:{primary:"çağır",normalized:"call"},return:{primary:"dön",normalized:"return"},then:{primary:"ardından",alternatives:["daha sonra","ardindan"],normalized:"then"},and:{primary:"ve",alternatives:["ayrıca","hem de"],normalized:"and"},or:{primary:"veya",normalized:"or"},not:{primary:"değil",alternatives:["degil"],normalized:"not"},end:{primary:"son",alternatives:["bitiş","bitti"],normalized:"end"},js:{primary:"js",normalized:"js"},async:{primary:"asenkron",normalized:"async"},tell:{primary:"söyle",normalized:"tell"},default:{primary:"varsayılan",normalized:"default"},init:{primary:"başlat",normalized:"init"},behavior:{primary:"davranış",normalized:"behavior"},install:{primary:"yükle",alternatives:["kur","yüklemek"],normalized:"install"},measure:{primary:"ölç",normalized:"measure"},beep:{primary:"bip",normalized:"beep"},break:{primary:"dur",normalized:"break"},copy:{primary:"kopyala",normalized:"copy"},exit:{primary:"çık",normalized:"exit"},pick:{primary:"seç",normalized:"pick"},render:{primary:"render",normalized:"render"},into:{primary:"içine",normalized:"into"},before:{primary:"önce",normalized:"before"},after:{primary:"sonra",normalized:"after"},until:{primary:"kadar",normalized:"until"},event:{primary:"olay",normalized:"event"},from:{primary:"den",alternatives:["dan"],normalized:"from"}},eventHandler:{eventMarker:{primary:"da",alternatives:["de","ta","te"],position:"after"},temporalMarkers:["dığında","diğinde"]}}}}),$g={};vc($g,{TurkishTokenizer:()=>Wg,turkishTokenizer:()=>qg});var Dg,Vg,Hg=yc({"src/tokenizers/turkish.ts"(){$c(),Ng(),_g(),Xc(),um(),$p(),Ig=new Set(["ile","için","kadar","gibi","önce","üzerinde","altında","içinde","dışında","arasında","karşı","göre","rağmen","doğru","boyunca"]),Rg=new Set(["de","da","te","ta","den","dan","ten","tan","e","a","ye","ya","i","ı","u","ü","in","ın","un","ün","le","la","yle","yla"]),Mg=[{native:"doğru",normalized:"true"},{native:"dogru",normalized:"true"},{native:"yanlış",normalized:"false"},{native:"yanlis",normalized:"false"},{native:"null",normalized:"null"},{native:"boş",normalized:"null"},{native:"bos",normalized:"null"},{native:"tanımsız",normalized:"undefined"},{native:"tanimsiz",normalized:"undefined"},{native:"ilk",normalized:"first"},{native:"son",normalized:"last"},{native:"sonraki",normalized:"next"},{native:"önceki",normalized:"previous"},{native:"onceki",normalized:"previous"},{native:"en_yakın",normalized:"closest"},{native:"en_yakin",normalized:"closest"},{native:"ebeveyn",normalized:"parent"},{native:"fare üzerinde",normalized:"mouseover"},{native:"fare uzerinde",normalized:"mouseover"},{native:"fare dışında",normalized:"mouseout"},{native:"fare disinda",normalized:"mouseout"},{native:"kaydır",normalized:"scroll"},{native:"kaydir",normalized:"scroll"},{native:"tuş_bas",normalized:"keydown"},{native:"tus_bas",normalized:"keydown"},{native:"tuş_bırak",normalized:"keyup"},{native:"tus_birak",normalized:"keyup"},{native:"saniye",normalized:"s"},{native:"milisaniye",normalized:"ms"},{native:"dakika",normalized:"m"},{native:"saat",normalized:"h"},{native:"sonra",normalized:"then"}],qg=new(Wg=class extends ic{constructor(){super(),this.language="tr",this.direction="ltr",this.initializeKeywordsFromProfile(Pg,Mg),this.setNormalizer(new Eg),this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractor(new Ip),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){const t=e.toLowerCase();return Ig.has(t)||Rg.has(t)?"particle":this.isKeyword(t)?"keyword":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":["==","!=","<=",">=","<",">","&&","||","!"].includes(e)?"operator":"identifier"}})}});var Bg,Fg=yc({"src/tokenizers/morphology/ukrainian-normalizer.ts"(){Dc(),Dg=new Map([["перемкни","перемкнути"],["додай","додати"],["видали","видалити"],["прибери","прибрати"],["поклади","покласти"],["помісти","помістити"],["встав","вставити"],["візьми","взяти"],["створи","створити"],["клонуй","клонувати"],["поміняй","поміняти"],["трансформуй","трансформувати"],["встанови","встановити"],["задай","задати"],["отримай","отримати"],["збільш","збільшити"],["зменш","зменшити"],["запиши","записати"],["покажи","показати"],["сховай","сховати"],["приховай","приховати"],["анімуй","анімувати"],["виклич","викликати"],["надішли","надіслати"],["сфокусуй","сфокусувати"],["розфокусуй","розфокусувати"],["перейди","перейти"],["йди","йти"],["чекай","чекати"],["зачекай","зачекати"],["завантаж","завантажити"],["повтори","повторити"],["продовжуй","продовжити"],["кинь","кинути"],["поверни","повернути"],["скажи","сказати"],["ініціалізуй","ініціалізувати"],["виміряй","виміряти"]]),new(Vg=class{constructor(){this.language="uk"}isNormalizable(e){return e.length>=3&&function(e){return/[а-яА-ЯіІїЇєЄґҐьЬ']/.test(e)}(e)}normalize(e){const t=e.toLowerCase();if(t.endsWith("ся")||t.endsWith("сь")){const e=this.tryReflexiveNormalization(t);if(e)return e}if(t.endsWith("ти")||t.endsWith("чи"))return ac(e);const r=this.tryImperativeLookup(t);if(r)return r;const n=this.tryPastTenseNormalization(t);if(n)return n;const i=this.tryPresentTenseNormalization(t);if(i)return i;const a=this.tryGenericImperativeNormalization(t);return a||ac(e)}tryReflexiveNormalization(e){const t=e.slice(0,-2);if(e.endsWith("тися")||e.endsWith("чися"))return ac(e);const r=this.normalizeNonReflexive(t);if(1>r.confidence){return oc(r.stem.endsWith("ти")?r.stem.slice(0,-2)+"тися":r.stem+"ся",.95*r.confidence,{removedSuffixes:["ся",...r.metadata?.removedSuffixes||[]],conjugationType:"reflexive"})}return null}normalizeNonReflexive(e){if(e.endsWith("ти")||e.endsWith("чи"))return ac(e);const t=this.tryImperativeLookup(e);if(t)return t;const r=this.tryPastTenseNormalization(e);if(r)return r;const n=this.tryPresentTenseNormalization(e);if(n)return n;const i=this.tryGenericImperativeNormalization(e);return i||ac(e)}tryImperativeLookup(e){return Dg.has(e)?oc(Dg.get(e),.95,{removedSuffixes:["imperative"],conjugationType:"imperative"}):null}tryGenericImperativeNormalization(e){return e.endsWith("йте")&&e.length>5?oc(e.slice(0,-3)+"ти",.8,{removedSuffixes:["йте"],conjugationType:"imperative"}):e.endsWith("іть")&&e.length>5?oc(e.slice(0,-3)+"ити",.8,{removedSuffixes:["іть"],conjugationType:"imperative"}):e.endsWith("й")&&e.length>3?oc(e.slice(0,-1)+"ти",.75,{removedSuffixes:["й"],conjugationType:"imperative"}):e.endsWith("и")&&e.length>3?oc(e+"ти",.7,{removedSuffixes:["и→ити"],conjugationType:"imperative"}):null}tryPastTenseNormalization(e){return e.endsWith("ала")&&e.length>4?oc(e.slice(0,-3)+"ати",.85,{removedSuffixes:["ала"],conjugationType:"past"}):e.endsWith("ила")&&e.length>4?oc(e.slice(0,-3)+"ити",.85,{removedSuffixes:["ила"],conjugationType:"past"}):e.endsWith("али")&&e.length>4?oc(e.slice(0,-3)+"ати",.85,{removedSuffixes:["али"],conjugationType:"past"}):e.endsWith("или")&&e.length>4?oc(e.slice(0,-3)+"ити",.85,{removedSuffixes:["или"],conjugationType:"past"}):e.endsWith("ав")&&e.length>3?oc(e.slice(0,-2)+"ати",.82,{removedSuffixes:["ав"],conjugationType:"past"}):e.endsWith("ив")&&e.length>3?oc(e.slice(0,-2)+"ити",.82,{removedSuffixes:["ив"],conjugationType:"past"}):null}tryPresentTenseNormalization(e){return e.endsWith("иш")&&e.length>3?oc(e.slice(0,-2)+"ити",.8,{removedSuffixes:["иш"],conjugationType:"present"}):e.endsWith("ить")&&e.length>4?oc(e.slice(0,-3)+"ити",.78,{removedSuffixes:["ить"],conjugationType:"present"}):e.endsWith("имо")&&e.length>4?oc(e.slice(0,-3)+"ити",.8,{removedSuffixes:["имо"],conjugationType:"present"}):e.endsWith("ять")&&e.length>4?oc(e.slice(0,-3)+"ити",.78,{removedSuffixes:["ять"],conjugationType:"present"}):e.endsWith("єш")&&e.length>3?oc(e.slice(0,-2)+"ати",.78,{removedSuffixes:["єш"],conjugationType:"present"}):e.endsWith("еш")&&e.length>3?oc(e.slice(0,-2)+"ати",.75,{removedSuffixes:["еш"],conjugationType:"present"}):e.endsWith("є")&&e.length>2?oc(e.slice(0,-1)+"ати",.72,{removedSuffixes:["є"],conjugationType:"present"}):e.endsWith("ємо")&&e.length>4?oc(e.slice(0,-3)+"ати",.8,{removedSuffixes:["ємо"],conjugationType:"present"}):e.endsWith("ють")&&e.length>4?oc(e.slice(0,-3)+"ати",.78,{removedSuffixes:["ють"],conjugationType:"present"}):e.endsWith("уть")&&e.length>4?oc(e.slice(0,-3)+"ати",.75,{removedSuffixes:["уть"],conjugationType:"present"}):null}})}}),Ug={};vc(Ug,{ukrainianProfile:()=>Bg});var Kg,Gg,Yg,Zg,Xg=yc({"src/generators/profiles/ukrainian.ts"(){Bg={code:"uk",name:"Ukrainian",nativeName:"Українська",direction:"ltr",script:"cyrillic",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,defaultVerbForm:"infinitive",verb:{position:"start",subjectDrop:!0,suffixes:["ти","тися","ити","итися","ати","атися","іти","ітися"]},references:{me:"я",it:"це",you:"ти",result:"результат",event:"подія",target:"ціль",body:"body"},possessive:{marker:"",markerPosition:"after-object",usePossessiveAdjectives:!0,specialForms:{me:"мій",it:"його",you:"твій"},keywords:{"мій":"me","моя":"me","моє":"me","мої":"me","твій":"you","твоя":"you","твоє":"you","твої":"you","його":"it","її":"it"}},roleMarkers:{destination:{primary:"в",alternatives:["на","до"],position:"before"},source:{primary:"з",alternatives:["від","із"],position:"before"},patient:{primary:"",position:"before"},style:{primary:"з",alternatives:["із"],position:"before"}},keywords:{toggle:{primary:"перемкнути",alternatives:["перемкни"],normalized:"toggle",form:"infinitive"},add:{primary:"додати",alternatives:["додай"],normalized:"add",form:"infinitive"},remove:{primary:"видалити",alternatives:["видали","прибрати","прибери"],normalized:"remove",form:"infinitive"},put:{primary:"покласти",alternatives:["поклади","помістити","помісти","вставити","встав"],normalized:"put",form:"infinitive"},append:{primary:"додати_в_кінець",alternatives:["дописати"],normalized:"append",form:"infinitive"},prepend:{primary:"додати_на_початок",normalized:"prepend",form:"infinitive"},take:{primary:"взяти",alternatives:["візьми"],normalized:"take",form:"infinitive"},make:{primary:"створити",alternatives:["створи"],normalized:"make",form:"infinitive"},clone:{primary:"клонувати",alternatives:["клонуй"],normalized:"clone",form:"infinitive"},swap:{primary:"поміняти",alternatives:["поміняй"],normalized:"swap",form:"infinitive"},morph:{primary:"трансформувати",alternatives:["трансформуй"],normalized:"morph",form:"infinitive"},set:{primary:"встановити",alternatives:["встанови","задати","задай"],normalized:"set",form:"infinitive"},get:{primary:"отримати",alternatives:["отримай"],normalized:"get",form:"infinitive"},increment:{primary:"збільшити",alternatives:["збільш"],normalized:"increment",form:"infinitive"},decrement:{primary:"зменшити",alternatives:["зменш"],normalized:"decrement",form:"infinitive"},log:{primary:"записати",alternatives:["запиши"],normalized:"log",form:"infinitive"},show:{primary:"показати",alternatives:["покажи"],normalized:"show",form:"infinitive"},hide:{primary:"сховати",alternatives:["сховай","приховати","приховай"],normalized:"hide",form:"infinitive"},transition:{primary:"анімувати",alternatives:["анімуй"],normalized:"transition",form:"infinitive"},on:{primary:"при",normalized:"on"},trigger:{primary:"ініціювати",alternatives:["запустити","запусти"],normalized:"trigger",form:"infinitive"},send:{primary:"надіслати",alternatives:["надішли"],normalized:"send",form:"infinitive"},focus:{primary:"сфокусувати",alternatives:["сфокусуй","фокус"],normalized:"focus",form:"infinitive"},blur:{primary:"розфокусувати",alternatives:["розфокусуй"],normalized:"blur",form:"infinitive"},click:{primary:"кліку",alternatives:["клік","натисканні"],normalized:"click"},hover:{primary:"наведенні",alternatives:["наведення"],normalized:"hover"},submit:{primary:"відправці",alternatives:["відправка"],normalized:"submit"},input:{primary:"введенні",alternatives:["введення"],normalized:"input"},change:{primary:"зміні",alternatives:["зміна"],normalized:"change"},go:{primary:"перейти",alternatives:["перейди","йти","йди"],normalized:"go",form:"infinitive"},wait:{primary:"чекати",alternatives:["чекай","зачекай"],normalized:"wait",form:"infinitive"},fetch:{primary:"завантажити",alternatives:["завантаж"],normalized:"fetch",form:"infinitive"},settle:{primary:"стабілізувати",normalized:"settle",form:"infinitive"},if:{primary:"якщо",normalized:"if"},when:{primary:"коли",normalized:"when"},where:{primary:"де",normalized:"where"},else:{primary:"інакше",normalized:"else"},repeat:{primary:"повторити",alternatives:["повтори"],normalized:"repeat",form:"infinitive"},for:{primary:"для",alternatives:["кожний"],normalized:"for"},while:{primary:"поки",normalized:"while"},continue:{primary:"продовжити",alternatives:["продовжуй"],normalized:"continue",form:"infinitive"},halt:{primary:"зупинити",alternatives:["зупинись","стоп"],normalized:"halt",form:"infinitive"},throw:{primary:"кинути",alternatives:["кинь"],normalized:"throw",form:"infinitive"},call:{primary:"викликати",alternatives:["виклич"],normalized:"call",form:"infinitive"},return:{primary:"повернути",alternatives:["поверни"],normalized:"return",form:"infinitive"},then:{primary:"потім",alternatives:["далі","тоді"],normalized:"then"},and:{primary:"і",alternatives:["та"],normalized:"and"},end:{primary:"кінець",normalized:"end"},js:{primary:"js",normalized:"js"},async:{primary:"асинхронно",alternatives:["async"],normalized:"async"},tell:{primary:"сказати",alternatives:["скажи"],normalized:"tell",form:"infinitive"},default:{primary:"за_замовчуванням",normalized:"default"},init:{primary:"ініціалізувати",alternatives:["ініціалізуй"],normalized:"init",form:"infinitive"},behavior:{primary:"поведінка",normalized:"behavior"},install:{primary:"встановити_пакет",normalized:"install",form:"infinitive"},measure:{primary:"виміряти",alternatives:["виміряй"],normalized:"measure",form:"infinitive"},beep:{primary:"звук",normalized:"beep"},break:{primary:"перервати",normalized:"break"},copy:{primary:"копіювати",normalized:"copy"},exit:{primary:"вийти",normalized:"exit"},pick:{primary:"вибрати",normalized:"pick"},render:{primary:"відобразити",normalized:"render"},into:{primary:"в",alternatives:["у"],normalized:"into"},before:{primary:"до",alternatives:["перед"],normalized:"before"},after:{primary:"після",normalized:"after"},until:{primary:"поки_не",normalized:"until"},event:{primary:"подія",normalized:"event"},from:{primary:"з",alternatives:["від","із"],normalized:"from"}},eventHandler:{keyword:{primary:"при",normalized:"on"},sourceMarker:{primary:"на",alternatives:["в","при"],position:"before"},eventMarker:{primary:"при",position:"before"},temporalMarkers:["коли","якщо"]}}}}),Jg={};vc(Jg,{UkrainianTokenizer:()=>Yg,ukrainianTokenizer:()=>Zg});var Qg,ek=yc({"src/tokenizers/ukrainian.ts"(){$c(),Fg(),Xg(),Xc(),um(),Gu(),rm(),Kg=new Set(["в","у","на","з","із","зі","до","від","о","об","при","для","під","над","перед","між","через","без","по","за","про","після","навколо","проти","замість","крім","серед","к"]),Gg=[{native:"істина",normalized:"true"},{native:"правда",normalized:"true"},{native:"хибність",normalized:"false"},{native:"null",normalized:"null"},{native:"невизначено",normalized:"undefined"},{native:"секунда",normalized:"s"},{native:"секунди",normalized:"s"},{native:"секунд",normalized:"s"},{native:"мілісекунда",normalized:"ms"},{native:"мілісекунди",normalized:"ms"},{native:"мілісекунд",normalized:"ms"},{native:"хвилина",normalized:"m"},{native:"хвилини",normalized:"m"},{native:"хвилин",normalized:"m"},{native:"година",normalized:"h"},{native:"години",normalized:"h"},{native:"годин",normalized:"h"},{native:"перша",normalized:"first"},{native:"перше",normalized:"first"},{native:"остання",normalized:"last"},{native:"останнє",normalized:"last"},{native:"наступна",normalized:"next"},{native:"попередня",normalized:"previous"},{native:"порожня",normalized:"empty"},{native:"порожнє",normalized:"empty"},{native:"моя",normalized:"my"},{native:"моє",normalized:"my"},{native:"мої",normalized:"my"}],Zg=new(Yg=class extends ic{constructor(){super(),this.language="uk",this.direction="ltr",this.initializeKeywordsFromProfile(Bg,Gg),this.setNormalizer(new Vg),this.registerExtractors([...im(),new $u("ukrainian-keyword",/[a-zA-Zа-яА-ЯіІїЇєЄґҐьЬ']/,Vu),new Ol,new Il,new Qp,new Kc,new Gc])}classifyToken(e){const t=e.toLowerCase();return Kg.has(t)?"particle":this.isKeyword(t)?"keyword":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":"identifier"}})}}),tk={};vc(tk,{vietnameseProfile:()=>Qg});var rk,nk,ik,ak=yc({"src/generators/profiles/vietnamese.ts"(){Qg={code:"vi",name:"Vietnamese",nativeName:"Tiếng Việt",direction:"ltr",script:"latin",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,defaultVerbForm:"base",verb:{position:"start",subjectDrop:!0},references:{me:"tôi",it:"nó",you:"bạn",result:"kết quả",event:"sự kiện",target:"mục tiêu",body:"body"},possessive:{marker:"của",markerPosition:"between",specialForms:{me:"của tôi",it:"của nó",you:"của bạn"},keywords:{"của tôi":"me","của bạn":"you","của anh":"you","của chị":"you","của nó":"it"}},roleMarkers:{destination:{primary:"vào",alternatives:["cho","đến"],position:"before"},source:{primary:"từ",alternatives:["khỏi"],position:"before"},patient:{primary:"",position:"before"},style:{primary:"với",position:"before"}},keywords:{toggle:{primary:"chuyển đổi",alternatives:["bật tắt","chuyển"],normalized:"toggle"},add:{primary:"thêm",alternatives:["bổ sung"],normalized:"add"},remove:{primary:"xóa",alternatives:["gỡ bỏ","loại bỏ","bỏ"],normalized:"remove"},put:{primary:"đặt",alternatives:["để","đưa"],normalized:"put"},append:{primary:"nối",normalized:"append"},prepend:{primary:"thêm vào đầu",normalized:"prepend"},take:{primary:"lấy",normalized:"take"},make:{primary:"tạo",normalized:"make"},clone:{primary:"nhân bản",normalized:"clone"},swap:{primary:"hoán đổi",normalized:"swap"},morph:{primary:"biến đổi",normalized:"morph"},set:{primary:"gán",alternatives:["thiết lập"],normalized:"set"},get:{primary:"lấy giá trị",alternatives:["nhận"],normalized:"get"},increment:{primary:"tăng",alternatives:["tăng lên"],normalized:"increment"},decrement:{primary:"giảm",alternatives:["giảm đi"],normalized:"decrement"},log:{primary:"in ra",normalized:"log"},show:{primary:"hiển thị",alternatives:["hiện"],normalized:"show"},hide:{primary:"ẩn",alternatives:["che","giấu"],normalized:"hide"},transition:{primary:"chuyển tiếp",normalized:"transition"},on:{primary:"khi",alternatives:["trên"],normalized:"on"},trigger:{primary:"kích hoạt",normalized:"trigger"},send:{primary:"gửi",normalized:"send"},focus:{primary:"tập trung",normalized:"focus"},blur:{primary:"mất tập trung",normalized:"blur"},click:{primary:"nhấp",alternatives:["bấm"],normalized:"click"},hover:{primary:"di chuột",alternatives:["rê chuột"],normalized:"hover"},submit:{primary:"nộp",alternatives:[],normalized:"submit"},input:{primary:"nhập",alternatives:["nhập liệu"],normalized:"input"},change:{primary:"thay đổi",alternatives:["đổi"],normalized:"change"},go:{primary:"đi đến",alternatives:["đi"],normalized:"go"},wait:{primary:"chờ",alternatives:["đợi"],normalized:"wait"},fetch:{primary:"tải",normalized:"fetch"},settle:{primary:"ổn định",normalized:"settle"},if:{primary:"nếu",normalized:"if"},when:{primary:"lúc",normalized:"when"},where:{primary:"ở_đâu",normalized:"where"},else:{primary:"không thì",alternatives:["nếu không"],normalized:"else"},repeat:{primary:"lặp lại",normalized:"repeat"},for:{primary:"với mỗi",normalized:"for"},while:{primary:"trong khi",normalized:"while"},continue:{primary:"tiếp tục",normalized:"continue"},halt:{primary:"dừng",alternatives:["dừng lại"],normalized:"halt"},throw:{primary:"ném",normalized:"throw"},call:{primary:"gọi",normalized:"call"},return:{primary:"trả về",normalized:"return"},then:{primary:"rồi",alternatives:["sau đó","thì"],normalized:"then"},and:{primary:"và",normalized:"and"},end:{primary:"kết thúc",normalized:"end"},js:{primary:"js",normalized:"js"},async:{primary:"bất đồng bộ",normalized:"async"},tell:{primary:"nói với",normalized:"tell"},default:{primary:"mặc định",normalized:"default"},init:{primary:"khởi tạo",normalized:"init"},behavior:{primary:"hành vi",normalized:"behavior"},install:{primary:"cài đặt",normalized:"install"},measure:{primary:"đo lường",normalized:"measure"},beep:{primary:"beep",normalized:"beep"},break:{primary:"ngắt",normalized:"break"},copy:{primary:"sao chép",normalized:"copy"},exit:{primary:"thoát",normalized:"exit"},pick:{primary:"chọn",normalized:"pick"},render:{primary:"kết xuất",normalized:"render"},into:{primary:"vào",alternatives:["vào trong"],normalized:"into"},before:{primary:"trước",alternatives:["trước khi"],normalized:"before"},after:{primary:"sau",alternatives:["sau khi"],normalized:"after"},until:{primary:"cho đến khi",normalized:"until"},event:{primary:"sự kiện",normalized:"event"},from:{primary:"từ",alternatives:["khỏi"],normalized:"from"}},eventHandler:{keyword:{primary:"khi",alternatives:["trên"],normalized:"on"},sourceMarker:{primary:"trên",alternatives:["tại"],position:"before"},eventMarker:{primary:"khi",alternatives:["lúc"],position:"before"},temporalMarkers:["khi","lúc"]}}}}),ok={};vc(ok,{VietnameseTokenizer:()=>nk,vietnameseTokenizer:()=>ik});var sk,lk=yc({"src/tokenizers/vietnamese.ts"(){$c(),ak(),Hu(),Xc(),um(),rk=[{native:"đúng",normalized:"true"},{native:"sai",normalized:"false"},{native:"null",normalized:"null"},{native:"không xác định",normalized:"undefined"},{native:"đầu tiên",normalized:"first"},{native:"cuối cùng",normalized:"last"},{native:"tiếp theo",normalized:"next"},{native:"trước đó",normalized:"previous"},{native:"gần nhất",normalized:"closest"},{native:"cha",normalized:"parent"},{native:"nhấp",normalized:"click"},{native:"nhấp chuột",normalized:"click"},{native:"click",normalized:"click"},{native:"nhấp đúp",normalized:"dblclick"},{native:"nhập",normalized:"input"},{native:"thay đổi",normalized:"change"},{native:"gửi biểu mẫu",normalized:"submit"},{native:"phím xuống",normalized:"keydown"},{native:"phím lên",normalized:"keyup"},{native:"chuột vào",normalized:"mouseover"},{native:"chuột ra",normalized:"mouseout"},{native:"tải trang",normalized:"load"},{native:"cuộn",normalized:"scroll"},{native:"của tôi",normalized:"my"},{native:"của nó",normalized:"its"},{native:"giây",normalized:"s"},{native:"mili giây",normalized:"ms"},{native:"phút",normalized:"m"},{native:"giờ",normalized:"h"},{native:"thêm vào cuối",normalized:"append"},{native:"nhân bản",normalized:"clone"},{native:"tạo ra",normalized:"make"},{native:"đặt giá trị",normalized:"set"},{native:"ghi nhật ký",normalized:"log"},{native:"chuyển tới",normalized:"go"},{native:"ngược lại",normalized:"else"},{native:"lặp",normalized:"repeat"},{native:"hoặc",normalized:"or"},{native:"không",normalized:"not"},{native:"là",normalized:"is"},{native:"tồn tại",normalized:"exists"},{native:"rỗng",normalized:"empty"},{native:"javascript",normalized:"js"}],ik=new(nk=class extends ic{constructor(){super(),this.language="vi",this.direction="ltr",this.initializeKeywordsFromProfile(Qg,rk),this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractors([new Au]),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){const t=e.toLowerCase();return this.isKeyword(t)?"keyword":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":["==","!=","<=",">=","<",">","&&","||","!"].includes(e)?"operator":"identifier"}})}}),ck={};vc(ck,{chineseProfile:()=>sk});var uk,pk,mk,dk,hk=yc({"src/generators/profiles/chinese.ts"(){sk={code:"zh",name:"Chinese",nativeName:"中文",direction:"ltr",script:"cjk",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!1,verb:{position:"second",subjectDrop:!0},references:{me:"我",it:"它",you:"你",result:"结果",event:"事件",target:"目标",body:"主体"},possessive:{marker:"的",markerPosition:"between",keywords:{"我的":"me","你的":"you","它的":"it","他的":"it","她的":"it"}},roleMarkers:{destination:{primary:"在",alternatives:["到","于"],position:"before"},source:{primary:"从",alternatives:["由"],position:"before"},patient:{primary:"把",position:"before"},style:{primary:"用",alternatives:["以"],position:"before"}},keywords:{toggle:{primary:"切换",normalized:"toggle"},add:{primary:"添加",alternatives:["加"],normalized:"add"},remove:{primary:"移除",alternatives:["删除","去掉"],normalized:"remove"},put:{primary:"放置",alternatives:["放","放入"],normalized:"put"},append:{primary:"追加",alternatives:["附加"],normalized:"append"},prepend:{primary:"前置",alternatives:["预置"],normalized:"prepend"},take:{primary:"拿取",normalized:"take"},make:{primary:"制作",normalized:"make"},clone:{primary:"克隆",normalized:"clone"},swap:{primary:"交换",normalized:"swap"},morph:{primary:"变形",alternatives:["转换"],normalized:"morph"},set:{primary:"设置",alternatives:["设定"],normalized:"set"},get:{primary:"获取",alternatives:["获得","取得"],normalized:"get"},increment:{primary:"增加",normalized:"increment"},decrement:{primary:"减少",normalized:"decrement"},log:{primary:"日志",normalized:"log"},show:{primary:"显示",alternatives:["展示"],normalized:"show"},hide:{primary:"隐藏",normalized:"hide"},transition:{primary:"过渡",normalized:"transition"},on:{primary:"当",alternatives:["在...时"],normalized:"on"},trigger:{primary:"触发",normalized:"trigger"},send:{primary:"发送",normalized:"send"},focus:{primary:"聚焦",normalized:"focus"},blur:{primary:"失焦",normalized:"blur"},click:{primary:"点击",normalized:"click"},hover:{primary:"悬停",alternatives:["悬浮"],normalized:"hover"},submit:{primary:"提交",normalized:"submit"},input:{primary:"输入",normalized:"input"},change:{primary:"改变",alternatives:["变化"],normalized:"change"},go:{primary:"前往",normalized:"go"},wait:{primary:"等待",normalized:"wait"},fetch:{primary:"抓取",normalized:"fetch"},settle:{primary:"稳定",normalized:"settle"},if:{primary:"如果",normalized:"if"},when:{primary:"何时",normalized:"when"},where:{primary:"哪里",normalized:"where"},else:{primary:"否则",normalized:"else"},repeat:{primary:"重复",normalized:"repeat"},for:{primary:"为",normalized:"for"},while:{primary:"持续",normalized:"while"},continue:{primary:"继续",normalized:"continue"},halt:{primary:"停止",normalized:"halt"},throw:{primary:"抛出",normalized:"throw"},call:{primary:"调用",normalized:"call"},return:{primary:"返回",normalized:"return"},then:{primary:"然后",alternatives:["接着"],normalized:"then"},and:{primary:"并且",alternatives:["和","而且"],normalized:"and"},end:{primary:"结束",alternatives:["终止","完"],normalized:"end"},js:{primary:"JS执行",alternatives:["js"],normalized:"js"},async:{primary:"异步",normalized:"async"},tell:{primary:"告诉",normalized:"tell"},default:{primary:"默认",normalized:"default"},init:{primary:"初始化",normalized:"init"},behavior:{primary:"行为",normalized:"behavior"},install:{primary:"安装",normalized:"install"},measure:{primary:"测量",normalized:"measure"},beep:{primary:"蜂鸣",normalized:"beep"},break:{primary:"中断",normalized:"break"},copy:{primary:"复制",normalized:"copy"},exit:{primary:"退出",normalized:"exit"},pick:{primary:"选取",normalized:"pick"},render:{primary:"渲染",normalized:"render"},into:{primary:"进入",normalized:"into"},before:{primary:"之前",normalized:"before"},after:{primary:"之后",normalized:"after"},until:{primary:"直到",normalized:"until"},event:{primary:"事件",normalized:"event"},from:{primary:"从",normalized:"from"}},tokenization:{boundaryStrategy:"character"},eventHandler:{keyword:{primary:"当",alternatives:["在...时"],normalized:"on"},sourceMarker:{primary:"从",position:"before"},eventMarker:{primary:"当",alternatives:["在"],position:"before"},temporalMarkers:["当","在...时"]}}}}),fk={};vc(fk,{ChineseTokenizer:()=>mk,chineseTokenizer:()=>dk});var yk=yc({"src/tokenizers/chinese.ts"(){$c(),hk(),Xc(),um(),Lu(),ju(),rm(),uk=new Set(["把","在","从","到","向","给","对","用","被","让","的","地","得","了","着","过","吗","呢","吧"]),pk=[{native:"真",normalized:"true"},{native:"假",normalized:"false"},{native:"空",normalized:"null"},{native:"未定义",normalized:"undefined"},{native:"第一个",normalized:"first"},{native:"首个",normalized:"first"},{native:"最后一个",normalized:"last"},{native:"末个",normalized:"last"},{native:"下一个",normalized:"next"},{native:"上一个",normalized:"previous"},{native:"最近的",normalized:"closest"},{native:"父级",normalized:"parent"},{native:"点击",normalized:"click"},{native:"双击",normalized:"dblclick"},{native:"输入",normalized:"input"},{native:"变更",normalized:"change"},{native:"改变",normalized:"change"},{native:"提交",normalized:"submit"},{native:"按键",normalized:"keydown"},{native:"释放键",normalized:"keyup"},{native:"鼠标移入",normalized:"mouseover"},{native:"鼠标移出",normalized:"mouseout"},{native:"获得焦点",normalized:"focus"},{native:"失去焦点",normalized:"blur"},{native:"加载",normalized:"load"},{native:"滚动",normalized:"scroll"},{native:"我的",normalized:"my"},{native:"它的",normalized:"its"},{native:"秒",normalized:"s"},{native:"毫秒",normalized:"ms"},{native:"分钟",normalized:"m"},{native:"小时",normalized:"h"},{native:"和",normalized:"and"},{native:"或者",normalized:"or"},{native:"或",normalized:"or"},{native:"不",normalized:"not"},{native:"非",normalized:"not"},{native:"是",normalized:"is"},{native:"若",normalized:"if"},{native:"不然",normalized:"else"},{native:"循环",normalized:"repeat"},{native:"遍历",normalized:"for"},{native:"每个",normalized:"for"},{native:"为每",normalized:"for"},{native:"中止",normalized:"halt"},{native:"抛",normalized:"throw"},{native:"呼叫",normalized:"call"},{native:"回",normalized:"return"},{native:"脚本",normalized:"js"},{native:"通知",normalized:"tell"},{native:"缺省",normalized:"default"},{native:"初始",normalized:"init"},{native:"动作",normalized:"behavior"},{native:"激发",normalized:"trigger"},{native:"对焦",normalized:"focus"},{native:"模糊",normalized:"blur"},{native:"跳转",normalized:"go"},{native:"导航",normalized:"go"},{native:"抓取",normalized:"fetch"},{native:"获取数据",normalized:"fetch"},{native:"安定",normalized:"settle"},{native:"拿取",normalized:"take"},{native:"取",normalized:"take"},{native:"创建",normalized:"make"},{native:"克隆",normalized:"clone"},{native:"记录",normalized:"log"},{native:"打印",normalized:"log"},{native:"动画",normalized:"transition"},{native:"到里面",normalized:"into"},{native:"里",normalized:"into"},{native:"前",normalized:"before"},{native:"后",normalized:"after"},{native:"那么",normalized:"then"},{native:"完",normalized:"end"}],dk=new(mk=class extends ic{constructor(){super(),this.language="zh",this.direction="ltr",this.initializeKeywordsFromProfile(sk,pk),this.registerExtractors(im()),this.registerExtractor(new Ol),this.registerExtractor(new Il),this.registerExtractor(new Qp),this.registerExtractor(new Eu),this.registerExtractor(new gu),this.registerExtractor(new Kc),this.registerExtractor(new Gc)}classifyToken(e){return uk.has(e)?"particle":this.isKeyword(e)?"keyword":e.startsWith("/")||e.startsWith("./")||e.startsWith("../")||e.startsWith("http")?"url":/^\.(once|prevent|stop|debounce|throttle|queue)(\(.*\))?$/.test(e)?"event-modifier":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("*")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||e.startsWith("“")||e.startsWith("‘")||/^\d/.test(e)?"literal":"identifier"}})}});function vk(e){let t="complex";return e.startsWith("#")&&!e.includes(" ")?t="id":e.startsWith(".")&&!e.includes(" ")?t="class":e.startsWith("[")&&e.endsWith("]")?t="attribute":/^[a-z][a-z0-9]*$/i.test(e)&&(t="element"),{type:"selector",value:e,selectorKind:t}}function gk(e,t){return void 0!==t?{type:"literal",value:e,dataType:t}:{type:"literal",value:e}}function kk(e){return _l(e)}function bk(e){return{type:"reference",value:e}}function wk(e,t){return{type:"property-path",object:e,property:t}}function zk(e,t,r){const n={kind:"command",action:e,roles:new Map(Object.entries(t))};return void 0!==r?{...n,metadata:r}:n}function xk(e,t,r,n,i,a){const o=new Map;o.set("event",e);const s={kind:"event-handler",action:"on",roles:o,body:t};return void 0!==r&&(s.eventModifiers=r),void 0!==n&&(s.metadata=n),void 0!==i&&i.length>0&&(s.parameterNames=i),void 0!==a&&a.length>0&&(s.additionalEvents=a),s}function Ek(e,t="then",r){const n={kind:"compound",action:"compound",roles:new Map,statements:e,chainType:t};return void 0!==r&&(n.metadata=r),n}var Tk,Sk=yc({"src/types.ts"(){}});var Ck=yc({"src/patterns/event-handler/shared.ts"(){Tk={ko:{"클릭":"click","입력":"input","변경":"change","제출":"submit","키다운":"keydown","키업":"keyup","마우스오버":"mouseover","마우스아웃":"mouseout","마우스다운":"mousedown","마우스업":"mouseup","포커스":"focus","블러":"blur","로드":"load","리사이즈":"resize","스크롤":"scroll"},ja:{"クリック":"click","入力":"input","変更":"change","送信":"submit","キーダウン":"keydown","キーアップ":"keyup","キープレス":"keypress","マウスオーバー":"mouseover","マウスアウト":"mouseout","マウス押下":"mousedown","マウス解放":"mouseup","フォーカス":"focus","ブラー":"blur","ロード":"load","読み込み":"load","サイズ変更":"resize","スクロール":"scroll"},ar:{"النقر":"click","نقر":"click","الإدخال":"input","إدخال":"input","التغيير":"change","تغيير":"change","الإرسال":"submit","إرسال":"submit","ضغط المفتاح":"keydown","رفع المفتاح":"keyup","تمرير الماوس":"mouseover","التركيز":"focus","تحميل":"load","تمرير":"scroll"},es:{clic:"click",click:"click",entrada:"input",cambio:"change","envío":"submit",enviar:"submit","tecla abajo":"keydown","tecla arriba":"keyup","ratón encima":"mouseover","ratón fuera":"mouseout",enfoque:"focus",desenfoque:"blur",carga:"load",desplazamiento:"scroll"},tr:{"tıklama":"click","tıkla":"click","tık":"click","giriş":"input",girdi:"input","değişiklik":"change","değişim":"change","gönderme":"submit","gönder":"submit","tuşbasma":"keydown","tuşbırakma":"keyup",fare_bas:"mousedown","fare_bırak":"mouseup","fareiçinde":"mouseover","faredışında":"mouseout",odaklanma:"focus",odak:"focus","bulanıklık":"blur","yükleme":"load","yükle":"load","boyut_değiştir":"resize","kaydırma":"scroll"},pt:{clique:"click",clicar:"click",click:"click",entrada:"input",inserir:"input","mudança":"change",mudanca:"change",alterar:"change",envio:"submit",enviar:"submit","tecla baixo":"keydown","tecla cima":"keyup","pressionar tecla":"keydown","soltar tecla":"keyup","mouse sobre":"mouseover","mouse fora":"mouseout",foco:"focus",focar:"focus",desfoque:"blur",desfocar:"blur",carregar:"load",carregamento:"load",rolagem:"scroll",rolar:"scroll"},zh:{"点击":"click","单击":"click","双击":"dblclick","输入":"input","改变":"change","变化":"change","变更":"change","提交":"submit","发送":"submit","按键":"keydown","键入":"keydown","松键":"keyup","鼠标进入":"mouseover","鼠标移入":"mouseover","鼠标离开":"mouseout","鼠标移出":"mouseout","焦点":"focus","聚焦":"focus","失焦":"blur","模糊":"blur","加载":"load","载入":"load","滚动":"scroll"},fr:{clic:"click",cliquer:"click",click:"click",saisie:"input","entrée":"input",changement:"change",changer:"change",soumettre:"submit",soumission:"submit",envoi:"submit","touche bas":"keydown","touche haut":"keyup","souris dessus":"mouseover","souris dehors":"mouseout",focus:"focus",focaliser:"focus","défocus":"blur","défocaliser":"blur",chargement:"load",charger:"load","défilement":"scroll","défiler":"scroll"},de:{klick:"click",klicken:"click",click:"click",eingabe:"input",eingeben:"input","änderung":"change","ändern":"change",absenden:"submit",einreichen:"submit","taste runter":"keydown","taste hoch":"keyup","maus über":"mouseover","maus raus":"mouseout",fokus:"focus",fokussieren:"focus",defokussieren:"blur","unschärfe":"blur",laden:"load",ladung:"load",scrollen:"scroll","blättern":"scroll"},id:{klik:"click",click:"click",masukan:"input",input:"input",ubah:"change",perubahan:"change",kirim:"submit","tekan tombol":"keydown","lepas tombol":"keyup","mouse masuk":"mouseover","mouse keluar":"mouseout",fokus:"focus",blur:"blur",muat:"load",memuat:"load",gulir:"scroll",menggulir:"scroll"},bn:{"ক্লিক":"click","ইনপুট":"input","জমা":"submit","লোড":"load","স্ক্রোল":"scroll","রিসাইজ":"resize","ঝাপসা":"blur","ফোকাস":"focus","পরিবর্তন":"change"},qu:{click:"click","ñit'iy":"click","ñitiy":"click",yaykuchiy:"input",yaykuy:"input",tikray:"change","t'ikray":"change",apachiy:"submit",kachay:"submit","llave uray":"keydown","llave hawa":"keyup","q'away":"focus",qhaway:"focus",paqariy:"blur","mana q'away":"blur",cargay:"load",apakuy:"load",apamuy:"load",kunray:"scroll",muyuy:"scroll",hatun_kay:"resize"},sw:{bofya:"click",click:"click",kubofya:"click",ingiza:"input",kubadilisha:"change",mabadiliko:"change",tuma:"submit",kutuma:"submit","bonyeza chini":"keydown","bonyeza juu":"keyup","panya juu":"mouseover","panya nje":"mouseout",lenga:"focus",kulenga:"focus",blur:"blur",pakia:"load",kupakia:"load",sogeza:"scroll",kusogeza:"scroll"}}}});function Ak(e){return function(e){let t=sc.get(e);return!t&&Tc(e)&&(t=sc.get(Ec(e))),t}(e)}function Lk(e,t){return Lc(e,t)}function jk(){return Cc()}var Pk=yc({"src/tokenizers/index.ts"(){Mc(),id(),ky(),Py(),hm(),$h(),Hg(),yk(),$c()}});function Nk(e,t){return!t||0===t.length||(!!t.includes(e)||(!!t.includes("expression")||"property-path"===e&&t.some(e=>["selector","reference","expression"].includes(e))))}var Ok=yc({"src/parser/utils/type-validation.ts"(){}});var Ik,Rk,Mk,Wk=yc({"src/parser/utils/possessive-keywords.ts"(){}});var qk,_k,$k=yc({"src/parser/pattern-matcher.ts"(){Sk(),Ok(),Wk(),Mc(),(Ik=class e{constructor(){this.stemMatchCount=0,this.totalKeywordMatches=0}matchPattern(e,t){const r=e.mark(),n=new Map;this.currentProfile=Sc(t.language),this.stemMatchCount=0,this.totalKeywordMatches=0;if(!this.matchTokenSequence(e,t.template.tokens,n))return e.reset(r),null;const i=this.calculateConfidence(t,n);return this.applyExtractionRules(t,n),{pattern:t,captured:n,consumedTokens:e.position()-r.position,confidence:i}}matchBest(e,t){const r=[];for(const n of t){const t=e.mark(),i=this.matchPattern(e,n);i&&r.push(i),e.reset(t)}if(0===r.length)return null;r.sort((e,t)=>{const r=t.pattern.priority-e.pattern.priority;return 0!==r?r:t.confidence-e.confidence});const n=r[0];return this.matchPattern(e,n.pattern),n}matchTokenSequence(e,t,r){const n=t[0],i="literal"===n?.type&&("and"===n.value||"then"===n.value||n.alternatives?.includes("and")||n.alternatives?.includes("then"));if("ar"===this.currentProfile?.code&&!i)for(;"conjunction"===e.peek()?.kind;)e.advance();for(const n of t){if(!this.matchPatternToken(e,n,r)){if(this.isOptional(n))continue;return!1}}return!0}matchPatternToken(e,t,r){switch(t.type){case"literal":return this.matchLiteralToken(e,t);case"role":return this.matchRoleToken(e,t,r);case"group":return this.matchGroupToken(e,t,r);default:return!1}}matchLiteralToken(e,t){const r=e.peek();if(!r)return!1;const n=this.getMatchType(r,t.value);if("none"!==n)return this.totalKeywordMatches++,"stem"===n&&this.stemMatchCount++,e.advance(),!0;if(t.alternatives)for(const n of t.alternatives){const t=this.getMatchType(r,n);if("none"!==t)return this.totalKeywordMatches++,"stem"===t&&this.stemMatchCount++,e.advance(),!0}return!1}matchRoleToken(e,t,r){this.skipNoiseWords(e);const n=e.peek();if(!n)return t.optional||!1;const i=this.tryMatchPossessiveExpression(e);if(i)return t.expectedTypes&&t.expectedTypes.length>0&&!t.expectedTypes.includes(i.type)&&!t.expectedTypes.includes("expression")?t.optional||!1:(r.set(t.role,i),!0);const a=this.tryMatchMethodCallExpression(e);if(a)return t.expectedTypes&&t.expectedTypes.length>0&&!t.expectedTypes.includes(a.type)&&!t.expectedTypes.includes("expression")?t.optional||!1:(r.set(t.role,a),!0);const o=this.tryMatchPossessiveSelectorExpression(e);if(o)return t.expectedTypes&&t.expectedTypes.length>0&&!Nk(o.type,t.expectedTypes)?t.optional||!1:(r.set(t.role,o),!0);const s=this.tryMatchPropertyAccessExpression(e);if(s)return t.expectedTypes&&t.expectedTypes.length>0&&!t.expectedTypes.includes(s.type)&&!t.expectedTypes.includes("expression")?t.optional||!1:(r.set(t.role,s),!0);const l=this.tryMatchSelectorPropertyExpression(e);if(l)return t.expectedTypes&&t.expectedTypes.length>0&&!Nk(l.type,t.expectedTypes)?t.optional||!1:(r.set(t.role,l),!0);const c=this.tokenToSemanticValue(n);return c?t.expectedTypes&&t.expectedTypes.length>0&&!t.expectedTypes.includes(c.type)?t.optional||!1:(r.set(t.role,c),e.advance(),!0):t.optional||!1}tryMatchPossessiveExpression(e){const t=e.peek();if(!t)return null;if(!this.currentProfile)return null;const r=(t.normalized||t.value).toLowerCase(),n=(i=this.currentProfile,a=r,i.possessive?.keywords?.[a]);var i,a;if(!n)return null;const o=e.mark();e.advance();const s=e.peek();if(!s)return e.reset(o),null;if("identifier"===s.kind||"keyword"===s.kind&&!this.isStructuralKeyword(s.value)||"selector"===s.kind&&s.value.startsWith("*")||"selector"===s.kind&&s.value.startsWith("@")||"selector"===s.kind&&s.value.startsWith(".")&&/^\.[a-zA-Z_]\w*/.test(s.value)){e.advance();let t=s.value;"selector"===s.kind&&t.startsWith(".")&&/^\.[a-zA-Z_]\w*/.test(t)&&(t=t.substring(1));let r=t;for(;"selector"===e.peek()?.kind&&e.peek().value.startsWith(".")&&/^\.[a-zA-Z_]\w*/.test(e.peek().value);)r+=e.peek().value,e.advance();const i=e.peek();return"literal"===i?.kind&&i.value.startsWith("(")&&(r+=i.value,e.advance()),wk(bk(n),r)}return e.reset(o),null}isStructuralKeyword(e){return new Set(["into","in","to","from","at","by","with","without","before","after","of","as","on","then","end","else","if","repeat","while","for","toggle","add","remove","put","set","show","hide","increment","decrement","send","trigger","call"]).has(e.toLowerCase())}tryMatchMethodCallExpression(t){const r=t.peek();if(!r||"selector"!==r.kind)return null;const n=t.mark();t.advance();const i=t.peek();if(!i||"operator"!==i.kind||"."!==i.value)return t.reset(n),null;t.advance();const a=t.peek();if(!a||"identifier"!==a.kind)return t.reset(n),null;t.advance();const o=t.peek();if(!o||"punctuation"!==o.kind||"("!==o.value)return t.reset(n),null;t.advance();const s=[];for(;!t.isAtEnd()&&e.MAX_METHOD_ARGS>s.length;){const e=t.peek();if(!e)break;if("punctuation"===e.kind&&")"===e.value){t.advance();break}"punctuation"!==e.kind||","!==e.value?(s.push(e.value),t.advance()):t.advance()}return{type:"expression",raw:`${r.value}.${a.value}(${s.join(", ")})`}}tryMatchPropertyAccessExpression(t){const r=t.peek();if(!r)return null;if("identifier"!==r.kind&&"keyword"!==r.kind)return null;const n=t.mark();t.advance();const i=t.peek();if(!i||"operator"!==i.kind||"."!==i.value)return t.reset(n),null;t.advance();const a=t.peek();if(!a||"identifier"!==a.kind)return t.reset(n),null;t.advance();let o=`${r.value}.${a.value}`,s=1;for(;!t.isAtEnd()&&e.MAX_PROPERTY_DEPTH>s;){const e=t.peek();if(!e||"operator"!==e.kind||"."!==e.value)break;t.advance();const r=t.peek();if(!r||"identifier"!==r.kind)break;t.advance(),o+="."+r.value,s++}const l=t.peek();if(l&&"punctuation"===l.kind&&"("===l.value){t.advance();const r=[];let n=0;for(;!t.isAtEnd()&&e.MAX_METHOD_ARGS>r.length;){const e=t.peek();if(!e)break;if("punctuation"===e.kind&&")"===e.value){if(0===n){t.advance();break}n--}"punctuation"===e.kind&&"("===e.value&&n++,"punctuation"!==e.kind||","!==e.value?(r.push(e.value),t.advance()):t.advance()}return{type:"expression",raw:`${o}(${r.join(", ")})`}}return{type:"expression",raw:o}}tryMatchPossessiveSelectorExpression(e){const t=e.peek();if(!t||"selector"!==t.kind)return null;const r=e.mark();e.advance();const n=e.peek();if(!n||"punctuation"!==n.kind||"'s"!==n.value)return e.reset(r),null;e.advance();const i=e.peek();return i?"selector"!==i.kind&&"identifier"!==i.kind?(e.reset(r),null):(e.advance(),wk(vk(t.value),i.value)):(e.reset(r),null)}tryMatchSelectorPropertyExpression(e){const t=e.peek();if(!t||"selector"!==t.kind)return null;if(!t.value.startsWith("#"))return null;const r=e.mark();e.advance();const n=e.peek();if(!n||"selector"!==n.kind)return e.reset(r),null;if(!n.value.startsWith("."))return e.reset(r),null;e.peek(1);e.advance();const i=n.value.slice(1);return wk(vk(t.value),i)}matchGroupToken(e,t,r){const n=e.mark(),i=new Set(r.keys());if(!this.matchTokenSequence(e,t.tokens,r)){e.reset(n);for(const e of r.keys())i.has(e)||r.delete(e);return t.optional||!1}return!0}getMatchType(e,t){return e.value===t?"exact":e.normalized===t?"normalized":e.stem!==t||void 0===e.stemConfidence||.7>e.stemConfidence?"keyword"===e.kind&&e.value.toLowerCase()===t.toLowerCase()?"case-insensitive":"none":"stem"}tokenToSemanticValue(e){switch(e.kind){case"selector":return vk(e.value);case"literal":return this.parseLiteralValue(e.value);case"keyword":const t=(e.normalized||e.value).toLowerCase();return kk(t)?bk(t):gk(e.normalized||e.value);case"identifier":if(e.value.startsWith(":"))return bk(e.value);const r=e.value.toLowerCase();return kk(r)?bk(r):{type:"expression",raw:e.value};case"url":return gk(e.value,"string");default:return null}}parseLiteralValue(e){if(e.startsWith('"')||e.startsWith("'")||e.startsWith("`")||e.startsWith("「")){return gk(e.slice(1,-1),"string")}if("true"===e)return gk(!0,"boolean");if("false"===e)return gk(!1,"boolean");const t=e.match(/^(\d+(?:\.\d+)?)(ms|s|m|h)?$/);if(t){const r=parseFloat(t[1]);return t[2]?gk(e,"duration"):gk(r,"number")}const r=parseFloat(e);return isNaN(r)?gk(e,"string"):gk(r,"number")}applyExtractionRules(e,t){for(const[r,n]of Object.entries(e.extraction))t.has(r)||(void 0!==n.value?t.set(r,{type:"literal",value:n.value}):n.default&&t.set(r,n.default))}isOptional(e){return"literal"!==e.type&&!0===e.optional}calculateConfidence(e,t){let r=0,n=0;const i=t=>void 0!==e.extraction?.[t]?.default;for(const a of e.template.tokens)if("role"===a.type)n+=1,t.has(a.role)&&(r+=1);else if("group"===a.type)for(const e of a.tokens)if("role"===e.type){const a=i(e.role),o=.8;n+=o,t.has(e.role)?r+=o:a&&(r+=.6*o)}let a=n>0?r/n:1;if(this.stemMatchCount>0&&this.totalKeywordMatches>0){a=Math.max(.5,a-this.stemMatchCount/this.totalKeywordMatches*.15)}const o=this.calculateVSOConfidenceBoost(e);a=Math.min(1,a+o);const s=this.arabicPrepositionDisambiguation(e,t);return a=Math.max(0,Math.min(1,a+s)),a}calculateVSOConfidenceBoost(e){if("ar"!==e.language)return 0;const t=e.template.tokens[0];if(!t||"literal"!==t.type)return 0;const r=new Set(["بدل","غير","أضف","أزل","ضع","اجعل","عين","زد","انقص","سجل","أظهر","أخف","شغل","أرسل","ركز","شوش","توقف","انسخ","احذف","اصنع","انتظر","انتقال","أو"]);if(r.has(t.value))return.15;if(t.alternatives)for(const e of t.alternatives)if(r.has(e))return.15;return 0}arabicPrepositionDisambiguation(e,t){if("ar"!==e.language)return 0;let r=0;const n={patient:["على"],destination:["إلى","الى"],source:["من"],agent:["من"],manner:["ب"],style:["ب"],goal:["إلى","الى"],method:["ب"]};for(const[e,i]of t.entries()){const t=n[e];if(!t||0===t.length)continue;const a="metadata"in i?i.metadata:void 0;if(a&&"string"==typeof a.prepositionValue){t.includes(a.prepositionValue)?r+=.1:r-=.1}}return Math.max(-.1,Math.min(.1,r))}skipNoiseWords(t){const r=t.peek();if(!r)return;const n=r.value.toLowerCase();if(e.ENGLISH_NOISE_WORDS.has(n)){const e=t.mark();t.advance();const r=t.peek();if(r&&("selector"===r.kind||"identifier"===r.kind))return;t.reset(e)}"class"===n&&t.advance()}extractEventModifiers(e){const t={};let r=!1;for(;!e.isAtEnd();){const n=e.peek();if(!n||"event-modifier"!==n.kind)break;const i=n.metadata;if(!i)break;switch(r=!0,i.modifierName){case"once":t.once=!0;break;case"debounce":"number"==typeof i.value&&(t.debounce=i.value);break;case"throttle":"number"==typeof i.value&&(t.throttle=i.value);break;case"queue":"first"!==i.value&&"last"!==i.value&&"all"!==i.value&&"none"!==i.value||(t.queue=i.value)}e.advance()}return r?t:void 0}}).MAX_PROPERTY_DEPTH=10,Ik.MAX_METHOD_ARGS=20,Ik.ENGLISH_NOISE_WORDS=new Set(["the","a","an"]),Mk=new(Rk=Ik)}});function Dk(e,t){return _k.render(e,t)}function Vk(e){return _k.renderExplicit(e)}var Hk,Bk=yc({"src/explicit/renderer.ts"(){Mc(),Pk(),qk=class{render(e,t){if("compound"===e.kind)return this.renderCompound(e,t);const r=function(e,t){return jc(e).filter(e=>e.command===t).sort((e,t)=>t.priority-e.priority)}(t,e.action);if(0===r.length)return this.renderExplicit(e);const n=this.findBestPattern(e,r);return n?this.renderWithPattern(e,n):this.renderExplicit(e)}renderCompound(e,t){const r=e.statements.map(e=>this.render(e,t)),n=this.getChainWord(e.chainType,t);return r.join(` ${n} `)}getChainWord(e,t){const r=Sc(t);if(!r?.keywords)return e;const n=r.keywords[e];return n?.primary??e}renderExplicit(e){return Kl(e)}supportedLanguages(){return jk()}findBestPattern(e,t){const r=t.map(t=>{let r=t.priority;for(const n of t.template.tokens)"role"===n.type&&(e.roles.has(n.role)?r+=10:n.optional||(r-=50));return"en"===t.language&&((t.id.includes("standard")||t.id.includes("en-source"))&&(r+=20),(t.id.includes("-when")||t.id.includes("-if")||t.id.includes("-upon"))&&(r-=15)),{pattern:t,score:r}});return r.sort((e,t)=>t.score-e.score),r.length>0?r[0].pattern:null}renderWithPattern(e,t){const r=[],n=t.language;for(const i of t.template.tokens){const t=this.renderPatternToken(i,e,n);null!==t&&r.push(t)}if("event-handler"===e.kind){if(e.body&&e.body.length>0){const t=e.body.map(e=>this.render(e,n));r.push(t.join(" "))}}return r.join(" ")}renderPatternToken(e,t,r){switch(e.type){case"literal":return e.value;case"role":{const n=t.roles.get(e.role);return n?this.valueToNaturalString(n,r):null}case"group":{if(!e.tokens.filter(e=>"role"===e.type&&!e.optional).every(e=>t.roles.has(e.role))&&e.optional)return null;if(e.optional){if(e.tokens.find(e=>"role"===e.type&&"destination"===e.role)){const e=t.roles.get("destination");if("reference"===e?.type&&"me"===e.value)return null}}const n=[];let i=!1;for(const a of e.tokens){const e=this.renderPatternToken(a,t,r);null!==e&&(n.push(e),"role"===a.type&&(i=!0))}return e.optional&&!i?null:n.length>0?n.join(" "):null}default:return null}}valueToNaturalString(e,t="en"){switch(e.type){case"literal":return"string"==typeof e.value&&"string"===e.dataType?`"${e.value}"`:e.value+"";case"selector":return e.value;case"reference":return this.renderReference(e,t);case"property-path":return this.renderPropertyPath(e,t);case"expression":return e.raw;case"flag":return e.name}}renderReference(e,t){const r=Sc(t);return r?.references?r.references[e.value]??e.value:e.value}renderPropertyPath(e,t){const r=Sc(t),n=e.property,i="reference"===e.object.type?e.object.value:null;if(r?.possessive?.specialForms&&i){const e=r.possessive.specialForms[i];if(e){const{markerPosition:t,usePossessiveAdjectives:i}=r.possessive;return i&&"after-object"===t?`${n} ${e}`:`${e} ${n}`}}const a=this.valueToNaturalString(e.object,t);if(r?.possessive){const{marker:e,markerPosition:t,usePossessiveAdjectives:o}=r.possessive;if(o&&i&&"after-object"===t)return`${n} ${a}`;if(e)switch(t){case"between":return r.usesSpaces?`${a}${e} ${n}`:`${a}${e}${n}`;case"after-object":return`${a}${e} ${n}`;case"before-property":return`${a} ${e} ${n}`}}return"en"!==t&&r?.possessive?`${a} ${n}`:"me"===a?"my "+n:"it"===a?"its "+n:`${a}'s ${n}`}},_k=new qk}});function Fk(e){return Vl(e,{schemaLookup:Hk})}var Uk,Kk,Gk,Yk=yc({"src/explicit/parser.ts"(){Wd(),Hk={getSchema:Rd}}}),Zk={};function Xk(e,t){return Gk.parse(e,t)}function Jk(e,t){return Gk.canParse(e,t)}function Qk(e,t){try{return Gk.parse(e,t).action}catch{return null}}function eb(e,t){return Lk(e,t)}function tb(){return jk()}function rb(e,t,r){return ab(Xk(e,t),r)}function nb(e,t){const r=Xk(e,t),n={};for(const e of tb())try{n[e]=ab(r,e)}catch{}return n}function ib(){return{analyze(e,t){try{return{node:Xk(e,t),confidence:1,success:!0}}catch(e){return{node:null,confidence:0,success:!1,error:e}}}}}function ab(e,t){return Dk(e,t)}function ob(e){return Dk(e,"explicit")}function sb(e){return Fk(e)}function lb(e,t){return ob(Xk(e,t))}function cb(e,t){return ab(sb(e),t)}function ub(e,t){return cb(lb(e,t),t)}vc(Zk,{SemanticParserImpl:()=>Kk,canParse:()=>Jk,createSemanticAnalyzer:()=>ib,fromExplicit:()=>cb,getAllTranslations:()=>nb,getCommandType:()=>Qk,getSupportedLanguages:()=>tb,parse:()=>Xk,parseExplicit:()=>sb,render:()=>ab,renderExplicit:()=>ob,roundTrip:()=>ub,semanticParser:()=>Gk,toExplicit:()=>lb,tokenize:()=>eb,translate:()=>rb});var pb=yc({"src/parser/semantic-parser.ts"(){Sk(),Pk(),Mc(),$k(),Ck(),Bk(),Yk(),(Uk=class e{parse(e,t){const{modifiers:r,remainingInput:n}=this.extractStandaloneModifiers(e,t),i=n||e,a=Lk(i,t),o=jc(t);if(0===o.length)throw Error("No patterns available for language: "+t);const s=[...o].sort((e,t)=>t.priority-e.priority),l=s.filter(e=>"on"===e.command),c=Mk.matchBest(a,l);if(c){const e=this.buildEventHandler(c,a,t);return r?this.applyModifiers(e,r):e}const u=s.filter(e=>"on"!==e.command),p=Mk.matchBest(a,u);if(p)return this.buildCommand(p,t);const m=this.trySOVEventExtraction(i,t,s);if(m)return r?this.applyModifiers(m,r):m;const d=this.tryCompoundCommandParsing(a,u,t);if(d)return d;throw Error(`Could not parse input in ${t}: ${i}`)}canParse(e,t){try{return this.parse(e,t),!0}catch{return!1}}supportedLanguages(){return jk()}buildCommand(e,t){if(!e)throw Error("No match to build command from");const r={};for(const[t,n]of e.captured)r[t]=n;return zk(e.pattern.command,r,{sourceLanguage:t,patternId:e.pattern.id,confidence:e.confidence})}buildEventHandler(e,t,r){if(!e)throw Error("No match to build event handler from");const n=e.captured.get("event");if(!n)throw Error("Event handler pattern matched but no event captured");const i=Mk.extractEventModifiers(t),a=this.extractOrConjunctionEvents(t,r);let o,s=n;if(a.length>0&&"literal"===n.type){s={type:"literal",value:[n.value+"",...a.map(e=>("value"in e?e.value:"")+"")].join(" or ")}}const l=e.captured.get("action");if(l&&"literal"===l.type){const n=l.value,i={};for(const[t,r]of e.captured)"event"!==t&&"action"!==t&&"continues"!==t&&(i[t]=r);const a=zk(n,i,{sourceLanguage:r,patternId:e.pattern.id,confidence:e.confidence}),s=e.captured.get("continues");if(s&&"literal"===s.type&&"then"===s.value){const e=jc(r).filter(e=>"on"!==e.command).sort((e,t)=>t.priority-e.priority),n=jc(r).filter(e=>e.id.startsWith("grammar-")&&e.id.includes("-continuation")).sort((e,t)=>t.priority-e.priority),i=this.parseBodyWithGrammarPatterns(t,e,n,r);o=i.length>0?[a,...i]:[a]}else o=[a]}else{const e=jc(r).filter(e=>"on"!==e.command).sort((e,t)=>t.priority-e.priority);o=this.parseBodyWithClauses(t,e,r)}return xk(s,o,i,{sourceLanguage:r,patternId:e.pattern.id,confidence:e.confidence})}parseBodyWithClauses(e,t,r){const n=[],i=[];for(;!e.isAtEnd();){const a=e.peek();if(!a)break;const o="conjunction"===a.kind||"keyword"===a.kind&&this.isThenKeyword(a.value,r),s="keyword"===a.kind&&this.isEndKeyword(a.value,r);if(o){if(i.length>0){const e=this.parseClause(i,t,r);n.push(...e),i.length=0}e.advance()}else{if(s){if(i.length>0){const e=this.parseClause(i,t,r);n.push(...e)}e.advance();break}i.push(a),e.advance()}}if(i.length>0){const e=this.parseClause(i,t,r);n.push(...e)}return n.length>1?[Ek(n,"then",{sourceLanguage:r})]:n}parseClause(e,t,r){if(0===e.length)return[];const n=new Yl(e,r),i=[];for(;!n.isAtEnd();){const e=Mk.matchBest(n,t);e?i.push(this.buildCommand(e,r)):n.advance()}if(0===i.length){const t=this.parseSOVClauseByVerbAnchoring(e,r);if(t.length>0)return t}return i}static buildVerbLookup(e){const t=new Map;for(const[r,n]of Object.entries(e.keywords))if(!["on","if","else","when","where","while","for","end","then","and"].includes(r)&&(t.set(n.primary.toLowerCase(),r),n.alternatives))for(const e of n.alternatives)t.set(e.toLowerCase(),r);return t}static buildMarkerToRoleLookup(e){const t=new Map;for(const[r,n]of Object.entries(e.roleMarkers))if(n&&(t.set(n.primary,r),n.alternatives))for(const e of n.alternatives)t.has(e)||t.set(e,r);return t}parseSOVClauseByVerbAnchoring(t,r){const n=Sc(r);if(!n||"SOV"!==n.wordOrder)return[];const i=e.buildVerbLookup(n),a=e.buildMarkerToRoleLookup(n),o=[];let s=0;for(;t.length>s;){let e=-1,n="";for(let r=s;t.length>r;r++){const a=t[r],o=i.get(a.value.toLowerCase()),s=a.normalized?i.get(a.normalized.toLowerCase()):void 0,l=o||s;if(l){e=r,n=l;break}}if(-1===e)break;const l=t.slice(s,e);let c=t.length;for(let n=e+1;t.length>n;n++){const a=t[n];if("conjunction"===a.kind||this.isThenKeyword(a.value,r)){c=n;break}if(n>e+1){if(i.get(a.value.toLowerCase())||(a.normalized?i.get(a.normalized.toLowerCase()):void 0)){c=n;break}}}const u=t.slice(e+1,c),p=this.extractRolesFromMarkedTokens(l,u,a,n,r);if(o.push(zk(n,p,{sourceLanguage:r,confidence:.7})),s=c,t.length>s){const e=t[s];("conjunction"===e.kind||this.isThenKeyword(e.value,r))&&s++}}return o}extractRolesFromMarkedTokens(e,t,r,n,i){const a={},o=e=>{let t=[];for(const i of e){const e=r.get(i.value);if(e&&"particle"===i.kind&&t.length>0){const r=this.tokensToSemanticValue(t);if(r){const t=this.mapRoleForCommand(e,n,a);t&&(a[t]=r)}t=[]}else t.push(i)}if(t.length>0){const e=this.tokensToSemanticValue(t);e&&(a.patient?a.destination||(a.destination=e):a.patient=e)}};return o(e),o(t),a}mapRoleForCommand(e,t,r){return r[e]?"patient"!==e||r.destination?"destination"!==e||r.patient?"source"!==e||r.source?null:"source":"patient":"destination":e}tokensToSemanticValue(e){if(0===e.length)return null;const t=e.filter(e=>"whitespace"!==e.kind);if(0===t.length)return null;if(1===t.length)return this.tokenToSemanticValue(t[0]);const r=t.map(e=>e.value).join(""),n=t[0];return"selector"===n.kind||n.value.startsWith("#")||n.value.startsWith(".")||n.value.startsWith("@")||n.value.startsWith("*")?vk(r):"literal"===n.kind||n.value.startsWith('"')||n.value.startsWith("'")?gk(r):"reference"===n.kind?bk(r):gk(r)}tokenToSemanticValue(e){const t=e.value;if("selector"===e.kind||t.startsWith("#")||t.startsWith(".")||t.startsWith("@")||t.startsWith("*"))return vk(t);if(t.startsWith('"')||t.startsWith("'"))return gk(t);if(/^-?\d+(\.\d+)?$/.test(t))return gk(parseFloat(t));if("true"===t||"真"===t||"참"===t||"doğru"===t)return gk(!0);if("false"===t||"偽"===t||"거짓"===t||"yanlış"===t)return gk(!1);const r=e.normalized?.toLowerCase();return"me"===r||"it"===r||"you"===r||"result"===r||"body"===r?bk(r):"reference"===e.kind?bk(e.normalized||"me"):gk(t)}parseBodyWithGrammarPatterns(e,t,r,n){const i=[];for(;!e.isAtEnd();){const a=e.peek();if(a&&this.isThenKeyword(a.value,n)){e.advance();continue}if(a&&this.isEndKeyword(a.value,n)){e.advance();break}let o=!1;if(r.length>0){const t=Mk.matchBest(e,r);if(t){const e=t.pattern.command,r={};for(const[e,n]of t.captured)"event"!==e&&"action"!==e&&"continues"!==e&&(r[e]=n);const a=zk(e,r,{sourceLanguage:n,patternId:t.pattern.id});i.push(a),o=!0;const s=t.captured.get("continues");if(s&&"literal"===s.type&&"then"===s.value)continue}}if(!o){const r=Mk.matchBest(e,t);r&&(i.push(this.buildCommand(r,n)),o=!0)}o||e.advance()}return i}tryCompoundCommandParsing(e,t,r){const n=e.tokens;if(!n.some(e=>"conjunction"===e.kind||"keyword"===e.kind&&this.isThenKeyword(e.value,r)))return null;const i=new Yl(n,r),a=this.parseBodyWithClauses(i,t,r);return 0===a.length?null:1===a.length?a[0]:Ek(a,"then",{sourceLanguage:r,confidence:.65})}trySOVEventExtraction(t,r,n){const i=e.SOV_EVENT_MARKERS[r];if(!i)return null;const a=Lk(t,r).tokens,o=Tk[r],s=new Set;if(o)for(const e of Object.keys(o))s.add(e.toLowerCase());const l=e.SOV_SOURCE_MARKERS[r];let c=-1,u="",p="",m=1;for(let t=0;a.length>t;t++){const r=a[t],n=r.value.toLowerCase();let l=n,d="";const h=n.indexOf("[");h>0&&(l=n.slice(0,h),d=r.value.slice(h));const f=r.normalized?.toLowerCase(),y=f&&e.KNOWN_EVENTS.has(f),v=s.has(n)||s.has(l),g=e.KNOWN_EVENTS.has(l);if(y||v||g){let e;if(e=y?f:v?o?.[n]??o?.[l]??l:l,0>=i.size){c=t,u=e,p=d,m=1;break}{let r=1;const n=a[t+1];n&&"selector"===n.kind&&n.value.startsWith("[")&&(r=2);const o=a[t+r];if(o&&("particle"===o.kind||"keyword"===o.kind)&&i.has(o.value)){c=t,u=e,p=d||(2===r?a[t+1].value:""),m=r+1;break}}}}if(-1===c)return null;const d=new Set;for(let e=c;c+m>e;e++)d.add(e);if(l){const e=c+m;if(a.length>e){const t=a[e];"particle"!==t.kind&&"keyword"!==t.kind||!l.markers.has(t.value)||d.add(e)}for(let e=0;c>e;e++){const t=a[e],r=t.value.toLowerCase(),n=t.normalized?.toLowerCase();if(l.windowTokens.has(r)||n&&l.windowTokens.has(n)){d.add(e);break}}}const h=a.filter((e,t)=>!d.has(t));if(0===h.length)return null;const f=n.filter(e=>"on"!==e.command),y=new Yl(h,r),v=this.parseBodyWithClauses(y,f,r);if(0===v.length)return null;const g={sourceLanguage:r,confidence:.75};return p&&(g.keyFilter=p),xk({type:"literal",value:u},v,void 0,g)}isThenKeyword(e,t){const r={en:new Set(["then"]),ja:new Set(["それから","次に","そして"]),ar:new Set(["ثم","بعدها","ثمّ"]),es:new Set(["entonces","luego","después"]),ko:new Set(["그다음","그리고","그런후","그러면"]),zh:new Set(["然后","接着","之后"]),tr:new Set(["sonra","ardından","daha sonra"]),pt:new Set(["então","depois","logo"]),fr:new Set(["puis","ensuite","alors"]),de:new Set(["dann","danach","anschließend"]),id:new Set(["lalu","kemudian","setelah itu"]),tl:new Set(["pagkatapos","tapos"]),bn:new Set(["তারপর","পরে"]),qu:new Set(["chaymantataq","hinaspa","chaymanta","chayqa"]),sw:new Set(["kisha","halafu","baadaye"])};return(r[t]||r.en).has(e.toLowerCase())}isEndKeyword(e,t){const r={en:new Set(["end"]),ja:new Set(["終わり","終了","おわり"]),ar:new Set(["نهاية","انتهى","آخر"]),es:new Set(["fin","final","terminar"]),ko:new Set(["끝","종료","마침"]),zh:new Set(["结束","终止","完"]),tr:new Set(["son","bitiş","bitti"]),pt:new Set(["fim","final","término"]),fr:new Set(["fin","terminer","finir"]),de:new Set(["ende","beenden","fertig"]),id:new Set(["selesai","akhir","tamat"]),tl:new Set(["wakas","tapos"]),bn:new Set(["সমাপ্ত"]),qu:new Set(["tukukuy","tukuy","puchukay"]),sw:new Set(["mwisho","maliza","tamati"])};return(r[t]||r.en).has(e.toLowerCase())}extractStandaloneModifiers(t,r){const n=Lk(t,r).tokens;if(0===n.length)return{modifiers:null,remainingInput:null};const i=n[0].value.toLowerCase(),a=e.STANDALONE_MODIFIERS[i];if(!a)return{modifiers:null,remainingInput:null};const o={};let s=1;if("once"===a)o.once=!0;else{let e=1;if(n.length>e){const t=n[e];"keyword"!==t.kind&&"particle"!==t.kind||(e++,s++)}if(n.length>e){const t=n[e];if("literal"===t.kind){const r=t.value.match(/^(\d+)(ms|s|m)?$/);if(r){let t=parseInt(r[1],10);const n=r[2]||"ms";"s"===n?t*=1e3:"m"===n&&(t*=6e4),o[a]=t,s=e+1}}}o[a]||(o[a]="debounce"===a?300:100)}const l=n.slice(s);if(0===l.length)return{modifiers:null,remainingInput:null};return{modifiers:o,remainingInput:t.slice(l[0].position.start)}}applyModifiers(e,t){return{...e,eventModifiers:{...e.eventModifiers,...t}}}extractOrConjunctionEvents(t,r){const n=[];for(;;){const r=t.mark(),i=t.peek();if(!i)break;const a=(i.normalized||i.value).toLowerCase();if(!e.OR_KEYWORDS.has(a)){t.reset(r);break}t.advance();const o=t.peek();if(!o){t.reset(r);break}const s=(o.normalized||o.value).toLowerCase();t.advance(),n.push({type:"literal",value:s})}return n}}).KNOWN_EVENTS=new Set(["click","dblclick","input","change","submit","keydown","keyup","keypress","mouseover","mouseout","mousedown","mouseup","focus","blur","load","scroll","resize","contextmenu"]),Uk.SOV_EVENT_MARKERS={ja:new Set(["で"]),ko:new Set,tr:new Set(["de","da","te","ta"]),bn:new Set(["এ"]),qu:new Set(["pi"])},Uk.SOV_SOURCE_MARKERS={ja:{markers:new Set(["から"]),windowTokens:new Set(["ウィンドウ","ドキュメント","window","document"])},ko:{markers:new Set(["에서"]),windowTokens:new Set(["창","윈도우","문서","window","document"])},tr:{markers:new Set(["den","dan","ten","tan"]),windowTokens:new Set(["pencere","belge","window","document"])},bn:{markers:new Set(["থেকে","মধ্যে"]),windowTokens:new Set(["উইন্ডো","ডকুমেন্ট","window","document"])},qu:{markers:new Set(["manta"]),windowTokens:new Set(["k_iri","ventana","window","document"])}},Uk.STANDALONE_MODIFIERS={once:"once",debounced:"debounce",debounce:"debounce",throttled:"throttle",throttle:"throttle"},Uk.OR_KEYWORDS=new Set(["or","أو","o","ou","oder","atau","atau","或","または","또는","veya","অথবা","utaq","au","або","или","hoặc","lub","או","หรือ","o"]),Gk=new(Kk=Uk)}});Mc(),hm(),Yc(),zc("ar",cm,Hc),Mc(),Sm(),xm(),zc("bn",zm,ym),Mc(),Fm(),Om(),zc("de",Dm,Tm),Mc(),id(),Gm(),xh(),zc("en",Jm,Bm),xc("en",yh()),Mc(),$h(),Nh(),zc("es",Mh,Th),Mc(),$h();var mb={code:"es-MX",name:"Spanish (Mexico)",nativeName:"Español (México)",direction:"ltr",script:"latin",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,defaultVerbForm:"infinitive",extends:"es",verb:{position:"start",subjectDrop:!0},references:{me:"yo",it:"ello",you:"tú",result:"resultado",event:"evento",target:"objetivo",body:"cuerpo"},possessive:{marker:"de",markerPosition:"before-property",usePossessiveAdjectives:!0,specialForms:{me:"mi",it:"su",you:"tu"},keywords:{mi:"me",tu:"you",su:"it"}},roleMarkers:{destination:{primary:"en",alternatives:["sobre","a"],position:"before"},source:{primary:"de",alternatives:["desde"],position:"before"},patient:{primary:"",position:"before"},style:{primary:"con",position:"before"}},keywords:{toggle:{primary:"alternar",alternatives:["conmutar","switchear"],normalized:"toggle"},add:{primary:"agregar",alternatives:["añadir"],normalized:"add"},remove:{primary:"quitar",alternatives:["eliminar","borrar","sacar"],normalized:"remove"},put:{primary:"poner",alternatives:["colocar","meter"],normalized:"put"},append:{primary:"anexar",normalized:"append"},prepend:{primary:"anteponer",normalized:"prepend"},take:{primary:"tomar",alternatives:["agarrar"],normalized:"take"},make:{primary:"hacer",alternatives:["crear"],normalized:"make"},clone:{primary:"clonar",alternatives:["duplicar"],normalized:"clone"},swap:{primary:"intercambiar",alternatives:["permutar"],normalized:"swap"},morph:{primary:"transformar",alternatives:["convertir"],normalized:"morph"},set:{primary:"establecer",alternatives:["fijar","definir","setear"],normalized:"set"},get:{primary:"obtener",alternatives:["conseguir"],normalized:"get"},increment:{primary:"incrementar",alternatives:["aumentar","subir"],normalized:"increment"},decrement:{primary:"decrementar",alternatives:["disminuir","bajar"],normalized:"decrement"},log:{primary:"registrar",alternatives:["imprimir","loguear"],normalized:"log"},show:{primary:"mostrar",alternatives:["enseñar"],normalized:"show"},hide:{primary:"ocultar",alternatives:["esconder"],normalized:"hide"},transition:{primary:"transición",alternatives:["animar"],normalized:"transition"},on:{primary:"en",alternatives:["al"],normalized:"on"},trigger:{primary:"disparar",alternatives:["activar"],normalized:"trigger"},send:{primary:"enviar",alternatives:["mandar"],normalized:"send"},focus:{primary:"enfocar",normalized:"focus"},blur:{primary:"desenfocar",normalized:"blur"},click:{primary:"clic",alternatives:["hacer clic","dar clic"],normalized:"click"},hover:{primary:"sobrevolar",alternatives:["pasar encima"],normalized:"hover"},submit:{primary:"envío",alternatives:["someter"],normalized:"submit"},input:{primary:"entrada",alternatives:["introducir"],normalized:"input"},change:{primary:"cambio",alternatives:["cambiar"],normalized:"change"},go:{primary:"ir",alternatives:["navegar"],normalized:"go"},wait:{primary:"esperar",alternatives:["ahorita","aguantar"],normalized:"wait"},fetch:{primary:"buscar",alternatives:["jalar","traer","recuperar"],normalized:"fetch"},settle:{primary:"estabilizar",normalized:"settle"},if:{primary:"si",normalized:"if"},when:{primary:"cuando",normalized:"when"},where:{primary:"donde",normalized:"where"},else:{primary:"sino",alternatives:["de lo contrario","si no"],normalized:"else"},repeat:{primary:"repetir",normalized:"repeat"},for:{primary:"para",normalized:"for"},while:{primary:"mientras",normalized:"while"},continue:{primary:"continuar",alternatives:["seguir"],normalized:"continue"},halt:{primary:"detener",alternatives:["parar"],normalized:"halt"},throw:{primary:"lanzar",alternatives:["aventar","arrojar"],normalized:"throw"},call:{primary:"llamar",normalized:"call"},return:{primary:"retornar",alternatives:["devolver","regresar"],normalized:"return"},then:{primary:"entonces",alternatives:["luego"],normalized:"then"},and:{primary:"y",alternatives:["además","también"],normalized:"and"},end:{primary:"fin",alternatives:["final","terminar"],normalized:"end"},js:{primary:"js",normalized:"js"},async:{primary:"asíncrono",normalized:"async"},tell:{primary:"decir",normalized:"tell"},default:{primary:"predeterminar",alternatives:["por defecto"],normalized:"default"},init:{primary:"iniciar",alternatives:["inicializar","arrancar"],normalized:"init"},behavior:{primary:"comportamiento",normalized:"behavior"},install:{primary:"instalar",normalized:"install"},measure:{primary:"medir",normalized:"measure"},beep:{primary:"pitido",normalized:"beep"},break:{primary:"romper",normalized:"break"},copy:{primary:"copiar",normalized:"copy"},exit:{primary:"salir",normalized:"exit"},pick:{primary:"escoger",normalized:"pick"},render:{primary:"renderizar",normalized:"render"},into:{primary:"dentro",alternatives:["adentro"],normalized:"into"},before:{primary:"antes",normalized:"before"},after:{primary:"después",normalized:"after"},until:{primary:"hasta",normalized:"until"},event:{primary:"evento",normalized:"event"},from:{primary:"de",alternatives:["desde"],normalized:"from"}},eventHandler:{keyword:{primary:"al",alternatives:["cuando","en"],normalized:"on"},sourceMarker:{primary:"de",alternatives:["desde"],position:"before"},eventMarker:{primary:"al",alternatives:["cuando"],position:"before"},temporalMarkers:["cuando","al"]}};function db(e){switch(e){case"ar":case"ja":case"ko":case"tr":default:return[];case"bn":return[{id:"toggle-bn-full",language:"bn",command:"toggle",priority:100,template:{format:"{patient} কে টগল করুন",tokens:[{type:"role",role:"patient"},{type:"literal",value:"কে"},{type:"literal",value:"টগল",alternatives:["পরিবর্তন"]},{type:"literal",value:"করুন"}]},extraction:{patient:{position:0}}},{id:"toggle-bn-simple",language:"bn",command:"toggle",priority:90,template:{format:"টগল {patient}",tokens:[{type:"literal",value:"টগল",alternatives:["পরিবর্তন"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}},{id:"toggle-bn-with-dest",language:"bn",command:"toggle",priority:95,template:{format:"{destination} এ {patient} কে টগল করুন",tokens:[{type:"role",role:"destination"},{type:"literal",value:"এ",alternatives:["তে"]},{type:"role",role:"patient"},{type:"literal",value:"কে"},{type:"literal",value:"টগল",alternatives:["পরিবর্তন"]},{type:"literal",value:"করুন"}]},extraction:{destination:{position:0},patient:{position:2}}}];case"en":return[{id:"toggle-en-full",language:"en",command:"toggle",priority:100,template:{format:"toggle {patient} on {target}",tokens:[{type:"literal",value:"toggle"},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"on",alternatives:["from"]},{type:"role",role:"destination"}]}]},extraction:{patient:{position:1},destination:{marker:"on",markerAlternatives:["from"],default:{type:"reference",value:"me"}}}},{id:"toggle-en-simple",language:"en",command:"toggle",priority:90,template:{format:"toggle {patient}",tokens:[{type:"literal",value:"toggle"},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}}];case"es":return[{id:"toggle-es-full",language:"es",command:"toggle",priority:100,template:{format:"alternar {patient} en {target}",tokens:[{type:"literal",value:"alternar",alternatives:["cambiar","toggle"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"en",alternatives:["sobre","de"]},{type:"role",role:"destination"}]}]},extraction:{patient:{position:1},destination:{marker:"en",markerAlternatives:["sobre","de"],default:{type:"reference",value:"me"}}}},{id:"toggle-es-simple",language:"es",command:"toggle",priority:90,template:{format:"alternar {patient}",tokens:[{type:"literal",value:"alternar",alternatives:["cambiar","toggle"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}}];case"hi":return[{id:"toggle-hi-full",language:"hi",command:"toggle",priority:100,template:{format:"{patient} को {destination} पर टॉगल करें",tokens:[{type:"role",role:"patient"},{type:"literal",value:"को"},{type:"role",role:"destination"},{type:"literal",value:"पर"},{type:"literal",value:"टॉगल",alternatives:["बदलें","बदल"]},{type:"group",optional:!0,tokens:[{type:"literal",value:"करें",alternatives:["करो"]}]}]},extraction:{patient:{position:0},destination:{marker:"को",position:2}}},{id:"toggle-hi-simple",language:"hi",command:"toggle",priority:90,template:{format:"{patient} टॉगल करें",tokens:[{type:"role",role:"patient"},{type:"literal",value:"टॉगल",alternatives:["बदलें","बदल"]},{type:"group",optional:!0,tokens:[{type:"literal",value:"करें",alternatives:["करो"]}]}]},extraction:{patient:{position:0},destination:{default:{type:"reference",value:"me"}}}},{id:"toggle-hi-bare",language:"hi",command:"toggle",priority:80,template:{format:"टॉगल {patient}",tokens:[{type:"literal",value:"टॉगल",alternatives:["बदलें","बदल"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}}];case"it":return[{id:"toggle-it-full",language:"it",command:"toggle",priority:100,template:{format:"commutare {patient} su {target}",tokens:[{type:"literal",value:"commutare",alternatives:["alternare","toggle","cambiare"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"su",alternatives:["in","di"]},{type:"role",role:"destination"}]}]},extraction:{patient:{position:1},destination:{marker:"su",markerAlternatives:["in","di"],default:{type:"reference",value:"me"}}}},{id:"toggle-it-simple",language:"it",command:"toggle",priority:90,template:{format:"commutare {patient}",tokens:[{type:"literal",value:"commutare",alternatives:["alternare","toggle","cambiare"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}}];case"pl":return[{id:"toggle-pl-full",language:"pl",command:"toggle",priority:100,template:{format:"przełącz {patient} na {destination}",tokens:[{type:"literal",value:"przełącz",alternatives:["przelacz","przełączaj"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"na",alternatives:["w","dla"]},{type:"role",role:"destination"}]}]},extraction:{patient:{position:1},destination:{marker:"na",markerAlternatives:["w","dla"],default:{type:"reference",value:"me"}}}},{id:"toggle-pl-simple",language:"pl",command:"toggle",priority:90,template:{format:"przełącz {patient}",tokens:[{type:"literal",value:"przełącz",alternatives:["przelacz","przełączaj"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}}];case"qu":return[{id:"toggle-qu-sov",language:"qu",command:"toggle",priority:100,template:{format:"{patient} ta t'ikray",tokens:[{type:"role",role:"patient"},{type:"literal",value:"ta"},{type:"literal",value:"t'ikray",alternatives:["tikray","kutichiy"]}]},extraction:{patient:{position:0}}},{id:"toggle-qu-simple",language:"qu",command:"toggle",priority:90,template:{format:"t'ikray {patient}",tokens:[{type:"literal",value:"t'ikray",alternatives:["tikray","kutichiy"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}},{id:"toggle-qu-with-dest",language:"qu",command:"toggle",priority:95,template:{format:"{destination} pi {patient} ta t'ikray",tokens:[{type:"role",role:"destination"},{type:"literal",value:"pi"},{type:"role",role:"patient"},{type:"literal",value:"ta"},{type:"literal",value:"t'ikray",alternatives:["tikray","kutichiy"]}]},extraction:{destination:{position:0},patient:{position:2}}},{id:"toggle-qu-dest-man",language:"qu",command:"toggle",priority:93,template:{format:"{destination} man {patient} ta t'ikray",tokens:[{type:"role",role:"destination"},{type:"literal",value:"man"},{type:"role",role:"patient"},{type:"literal",value:"ta"},{type:"literal",value:"t'ikray",alternatives:["tikray","kutichiy"]}]},extraction:{destination:{position:0},patient:{position:2}}}];case"ru":return[{id:"toggle-ru-full",language:"ru",command:"toggle",priority:100,template:{format:"переключить {patient} на {destination}",tokens:[{type:"literal",value:"переключить",alternatives:["переключи"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"на",alternatives:["в","для"]},{type:"role",role:"destination"}]}]},extraction:{patient:{position:1},destination:{marker:"на",markerAlternatives:["в","для"],default:{type:"reference",value:"me"}}}},{id:"toggle-ru-simple",language:"ru",command:"toggle",priority:90,template:{format:"переключить {patient}",tokens:[{type:"literal",value:"переключить",alternatives:["переключи"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}}];case"th":return[{id:"toggle-th-simple",language:"th",command:"toggle",priority:100,template:{format:"สลับ {patient}",tokens:[{type:"literal",value:"สลับ"},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}},{id:"toggle-th-with-dest",language:"th",command:"toggle",priority:95,template:{format:"สลับ {patient} ใน {destination}",tokens:[{type:"literal",value:"สลับ"},{type:"role",role:"patient"},{type:"literal",value:"ใน"},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"ใน",position:3}}}];case"uk":return[{id:"toggle-uk-full",language:"uk",command:"toggle",priority:100,template:{format:"перемкнути {patient} на {destination}",tokens:[{type:"literal",value:"перемкнути",alternatives:["перемкни"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"на",alternatives:["в","для"]},{type:"role",role:"destination"}]}]},extraction:{patient:{position:1},destination:{marker:"на",markerAlternatives:["в","для"],default:{type:"reference",value:"me"}}}},{id:"toggle-uk-simple",language:"uk",command:"toggle",priority:90,template:{format:"перемкнути {patient}",tokens:[{type:"literal",value:"перемкнути",alternatives:["перемкни"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}}];case"vi":return[{id:"toggle-vi-full",language:"vi",command:"toggle",priority:100,template:{format:"chuyển đổi {patient} trên {target}",tokens:[{type:"literal",value:"chuyển đổi",alternatives:["chuyển","bật tắt"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"trên",alternatives:["tại","ở"]},{type:"role",role:"destination"}]}]},extraction:{patient:{position:1},destination:{marker:"trên",markerAlternatives:["tại","ở"],default:{type:"reference",value:"me"}}}},{id:"toggle-vi-simple",language:"vi",command:"toggle",priority:90,template:{format:"chuyển đổi {patient}",tokens:[{type:"literal",value:"chuyển đổi",alternatives:["chuyển","bật tắt"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}}];case"zh":return[{id:"toggle-zh-full",language:"zh",command:"toggle",priority:100,template:{format:"切换 {patient} 在 {target}",tokens:[{type:"literal",value:"切换"},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"在",alternatives:["到","于"]},{type:"role",role:"destination"}]}]},extraction:{patient:{position:1},destination:{marker:"在",markerAlternatives:["到","于"],default:{type:"reference",value:"me"}}}},{id:"toggle-zh-simple",language:"zh",command:"toggle",priority:90,template:{format:"切换 {patient}",tokens:[{type:"literal",value:"切换"},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}},{id:"toggle-zh-ba",language:"zh",command:"toggle",priority:95,template:{format:"把 {patient} 切换",tokens:[{type:"literal",value:"把"},{type:"role",role:"patient"},{type:"literal",value:"切换"}]},extraction:{patient:{marker:"把"},destination:{default:{type:"reference",value:"me"}}}},{id:"toggle-zh-full-ba",language:"zh",command:"toggle",priority:98,template:{format:"在 {target} 把 {patient} 切换",tokens:[{type:"literal",value:"在",alternatives:["到","于"]},{type:"role",role:"destination"},{type:"literal",value:"把"},{type:"role",role:"patient"},{type:"literal",value:"切换"}]},extraction:{destination:{marker:"在",markerAlternatives:["到","于"]},patient:{marker:"把"}}}]}}function hb(e){switch(e){case"ar":case"ja":case"ko":case"tr":default:return[];case"bn":return[{id:"put-bn-full",language:"bn",command:"put",priority:100,template:{format:"{patient} কে {destination} এ রাখুন",tokens:[{type:"role",role:"patient"},{type:"literal",value:"কে"},{type:"role",role:"destination"},{type:"literal",value:"এ",alternatives:["তে"]},{type:"literal",value:"রাখুন",alternatives:["রাখ"]}]},extraction:{patient:{position:0},destination:{marker:"এ",position:2}}},{id:"put-bn-simple",language:"bn",command:"put",priority:90,template:{format:"রাখুন {patient} {destination} এ",tokens:[{type:"literal",value:"রাখুন",alternatives:["রাখ"]},{type:"role",role:"patient"},{type:"role",role:"destination"},{type:"literal",value:"এ",alternatives:["তে"]}]},extraction:{patient:{position:1},destination:{position:2}}}];case"en":return[{id:"put-en-into",language:"en",command:"put",priority:100,template:{format:"put {patient} into {destination}",tokens:[{type:"literal",value:"put"},{type:"role",role:"patient"},{type:"literal",value:"into",alternatives:["in","to"]},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"into",markerAlternatives:["in","to"]}}},{id:"put-en-before",language:"en",command:"put",priority:95,template:{format:"put {patient} before {destination}",tokens:[{type:"literal",value:"put"},{type:"role",role:"patient"},{type:"literal",value:"before"},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"before"},manner:{default:{type:"literal",value:"before"}}}},{id:"put-en-after",language:"en",command:"put",priority:95,template:{format:"put {patient} after {destination}",tokens:[{type:"literal",value:"put"},{type:"role",role:"patient"},{type:"literal",value:"after"},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"after"},manner:{default:{type:"literal",value:"after"}}}}];case"es":return[{id:"put-es-full",language:"es",command:"put",priority:100,template:{format:"poner {patient} en {destination}",tokens:[{type:"literal",value:"poner",alternatives:["pon","colocar","put"]},{type:"role",role:"patient"},{type:"literal",value:"en",alternatives:["dentro de","a"]},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"en",markerAlternatives:["dentro de","a"]}}},{id:"put-es-before",language:"es",command:"put",priority:95,template:{format:"poner {patient} antes de {destination}",tokens:[{type:"literal",value:"poner",alternatives:["pon","colocar"]},{type:"role",role:"patient"},{type:"literal",value:"antes de",alternatives:["antes"]},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"antes de",markerAlternatives:["antes"]},manner:{default:{type:"literal",value:"before"}}}},{id:"put-es-after",language:"es",command:"put",priority:95,template:{format:"poner {patient} después de {destination}",tokens:[{type:"literal",value:"poner",alternatives:["pon","colocar"]},{type:"role",role:"patient"},{type:"literal",value:"después de",alternatives:["despues de","después"]},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"después de",markerAlternatives:["despues de","después"]},manner:{default:{type:"literal",value:"after"}}}}];case"hi":return[{id:"put-hi-full",language:"hi",command:"put",priority:100,template:{format:"{patient} को {destination} में रखें",tokens:[{type:"role",role:"patient"},{type:"literal",value:"को"},{type:"role",role:"destination"},{type:"literal",value:"में"},{type:"literal",value:"रखें",alternatives:["रख","डालें","डाल"]}]},extraction:{patient:{position:0},destination:{marker:"में",position:3}}},{id:"put-hi-simple",language:"hi",command:"put",priority:90,template:{format:"{patient} रखें",tokens:[{type:"role",role:"patient"},{type:"literal",value:"रखें",alternatives:["रख","डालें","डाल"]}]},extraction:{patient:{position:0},destination:{default:{type:"reference",value:"me"}}}},{id:"put-hi-bare",language:"hi",command:"put",priority:80,template:{format:"रखें {patient}",tokens:[{type:"literal",value:"रखें",alternatives:["रख","डालें","डाल"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}}];case"id":return[{id:"put-id-full",language:"id",command:"put",priority:100,template:{format:"taruh {patient} ke dalam {destination}",tokens:[{type:"literal",value:"taruh",alternatives:["letakkan","masukkan","tempatkan","put"]},{type:"role",role:"patient",expectedTypes:["literal","selector","reference","expression"]},{type:"literal",value:"ke"},{type:"literal",value:"dalam",alternatives:["di"]},{type:"role",role:"destination",expectedTypes:["selector","reference"]}]},extraction:{patient:{position:1},destination:{position:4}}},{id:"put-id-simple-ke",language:"id",command:"put",priority:95,template:{format:"taruh {patient} ke {destination}",tokens:[{type:"literal",value:"taruh",alternatives:["letakkan","masukkan","tempatkan"]},{type:"role",role:"patient",expectedTypes:["literal","selector","reference","expression"]},{type:"literal",value:"ke",alternatives:["di","pada"]},{type:"role",role:"destination",expectedTypes:["selector","reference"]}]},extraction:{patient:{position:1},destination:{position:3}}},{id:"put-id-di",language:"id",command:"put",priority:90,template:{format:"taruh {patient} di {destination}",tokens:[{type:"literal",value:"taruh",alternatives:["letakkan","masukkan"]},{type:"role",role:"patient",expectedTypes:["literal","selector","reference","expression"]},{type:"literal",value:"di"},{type:"role",role:"destination",expectedTypes:["selector","reference"]}]},extraction:{patient:{position:1},destination:{position:3}}}];case"it":return[{id:"put-it-full",language:"it",command:"put",priority:100,template:{format:"mettere {patient} in {target}",tokens:[{type:"literal",value:"mettere",alternatives:["metti","inserire","put"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"in",alternatives:["dentro","nel"]},{type:"role",role:"destination"}]}]},extraction:{patient:{position:1},destination:{marker:"in",markerAlternatives:["dentro","nel"]}}},{id:"put-it-simple",language:"it",command:"put",priority:90,template:{format:"mettere {patient}",tokens:[{type:"literal",value:"mettere",alternatives:["metti","inserire","put"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"pl":return[{id:"put-pl-full",language:"pl",command:"put",priority:100,template:{format:"umieść {patient} w {destination}",tokens:[{type:"literal",value:"umieść",alternatives:["umiesc","wstaw","włóż","wloz"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"w",alternatives:["do","na"]},{type:"role",role:"destination"}]}]},extraction:{patient:{position:1},destination:{marker:"w",markerAlternatives:["do","na"]}}},{id:"put-pl-before",language:"pl",command:"put",priority:95,template:{format:"umieść {patient} przed {destination}",tokens:[{type:"literal",value:"umieść",alternatives:["umiesc","wstaw"]},{type:"role",role:"patient"},{type:"literal",value:"przed"},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"przed"},manner:{default:{type:"literal",value:"before"}}}},{id:"put-pl-after",language:"pl",command:"put",priority:95,template:{format:"umieść {patient} po {destination}",tokens:[{type:"literal",value:"umieść",alternatives:["umiesc","wstaw"]},{type:"role",role:"patient"},{type:"literal",value:"po"},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"po"},manner:{default:{type:"literal",value:"after"}}}}];case"ru":return[{id:"put-ru-full",language:"ru",command:"put",priority:100,template:{format:"положить {patient} в {destination}",tokens:[{type:"literal",value:"положить",alternatives:["положи","поместить","помести","вставить","вставь"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"в",alternatives:["во","на"]},{type:"role",role:"destination"}]}]},extraction:{patient:{position:1},destination:{marker:"в",markerAlternatives:["во","на"]}}},{id:"put-ru-before",language:"ru",command:"put",priority:95,template:{format:"положить {patient} перед {destination}",tokens:[{type:"literal",value:"положить",alternatives:["положи","поместить","помести"]},{type:"role",role:"patient"},{type:"literal",value:"перед",alternatives:["до"]},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"перед",markerAlternatives:["до"]},manner:{default:{type:"literal",value:"before"}}}},{id:"put-ru-after",language:"ru",command:"put",priority:95,template:{format:"положить {patient} после {destination}",tokens:[{type:"literal",value:"положить",alternatives:["положи","поместить","помести"]},{type:"role",role:"patient"},{type:"literal",value:"после"},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"после"},manner:{default:{type:"literal",value:"after"}}}}];case"th":return[{id:"put-th-full",language:"th",command:"put",priority:100,template:{format:"ใส่ {patient} ใน {destination}",tokens:[{type:"literal",value:"ใส่",alternatives:["วาง"]},{type:"role",role:"patient"},{type:"literal",value:"ใน"},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"ใน",position:3}}}];case"uk":return[{id:"put-uk-full",language:"uk",command:"put",priority:100,template:{format:"покласти {patient} в {destination}",tokens:[{type:"literal",value:"покласти",alternatives:["поклади","помістити","помісти","вставити","встав"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"в",alternatives:["у","на"]},{type:"role",role:"destination"}]}]},extraction:{patient:{position:1},destination:{marker:"в",markerAlternatives:["у","на"]}}},{id:"put-uk-before",language:"uk",command:"put",priority:95,template:{format:"покласти {patient} перед {destination}",tokens:[{type:"literal",value:"покласти",alternatives:["поклади","помістити","помісти"]},{type:"role",role:"patient"},{type:"literal",value:"перед",alternatives:["до"]},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"перед",markerAlternatives:["до"]},manner:{default:{type:"literal",value:"before"}}}},{id:"put-uk-after",language:"uk",command:"put",priority:95,template:{format:"покласти {patient} після {destination}",tokens:[{type:"literal",value:"покласти",alternatives:["поклади","помістити","помісти"]},{type:"role",role:"patient"},{type:"literal",value:"після"},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"після"},manner:{default:{type:"literal",value:"after"}}}}];case"vi":return[{id:"put-vi-into",language:"vi",command:"put",priority:100,template:{format:"đặt {patient} vào {target}",tokens:[{type:"literal",value:"đặt",alternatives:["để","đưa"]},{type:"role",role:"patient"},{type:"literal",value:"vào",alternatives:["vào trong"]},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"vào",markerAlternatives:["vào trong"]}}},{id:"put-vi-before",language:"vi",command:"put",priority:95,template:{format:"đặt {patient} trước {target}",tokens:[{type:"literal",value:"đặt",alternatives:["để","đưa"]},{type:"role",role:"patient"},{type:"literal",value:"trước",alternatives:["trước khi"]},{type:"role",role:"manner"}]},extraction:{patient:{position:1},manner:{marker:"trước",markerAlternatives:["trước khi"]}}},{id:"put-vi-after",language:"vi",command:"put",priority:95,template:{format:"đặt {patient} sau {target}",tokens:[{type:"literal",value:"đặt",alternatives:["để","đưa"]},{type:"role",role:"patient"},{type:"literal",value:"sau",alternatives:["sau khi"]},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"sau",markerAlternatives:["sau khi"]}}}];case"zh":return[{id:"put-zh-full",language:"zh",command:"put",priority:100,template:{format:"放置 {patient} 到 {destination}",tokens:[{type:"literal",value:"放置",alternatives:["放","放入","置入","put"]},{type:"role",role:"patient",expectedTypes:["literal","selector","reference","expression"]},{type:"literal",value:"到",alternatives:["在","于","入"]},{type:"role",role:"destination",expectedTypes:["selector","reference"]}]},extraction:{patient:{position:1},destination:{position:3}}},{id:"put-zh-ba",language:"zh",command:"put",priority:95,template:{format:"把 {patient} 放到 {destination}",tokens:[{type:"literal",value:"把"},{type:"role",role:"patient",expectedTypes:["literal","selector","reference","expression"]},{type:"literal",value:"放到",alternatives:["放在","放入"]},{type:"role",role:"destination",expectedTypes:["selector","reference"]}]},extraction:{patient:{position:1},destination:{position:3}}}]}}function fb(e){switch(e){case"ar":case"he":case"ja":case"ko":case"tr":default:return[];case"bn":return[{id:"event-handler-bn-sov",language:"bn",command:"on",priority:100,template:{format:"{event} তে {action}",tokens:[{type:"role",role:"event"},{type:"literal",value:"তে",alternatives:["এ"]},{type:"role",role:"action"}]},extraction:{event:{position:0},action:{position:2}}},{id:"event-handler-bn-with-source",language:"bn",command:"on",priority:95,template:{format:"{source} থেকে {event} তে {action}",tokens:[{type:"role",role:"source"},{type:"literal",value:"থেকে"},{type:"role",role:"event"},{type:"literal",value:"তে",alternatives:["এ"]},{type:"role",role:"action"}]},extraction:{source:{position:0},event:{marker:"তে",position:2},action:{position:4}}},{id:"event-handler-bn-when",language:"bn",command:"on",priority:90,template:{format:"যখন {event} {action}",tokens:[{type:"literal",value:"যখন"},{type:"role",role:"event"},{type:"role",role:"action"}]},extraction:{event:{position:1},action:{position:2}}}];case"de":return[{id:"event-de-wenn-source",language:"de",command:"on",priority:115,template:{format:"wenn {event} von {source} {body}",tokens:[{type:"literal",value:"wenn",alternatives:["falls","sobald"]},{type:"role",role:"event"},{type:"literal",value:"von",alternatives:["aus"]},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"von",markerAlternatives:["aus"]}}},{id:"event-de-wenn",language:"de",command:"on",priority:105,template:{format:"wenn {event} {body}",tokens:[{type:"literal",value:"wenn",alternatives:["falls","sobald"]},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-de-bei-source",language:"de",command:"on",priority:110,template:{format:"bei {event} von {source} {body}",tokens:[{type:"literal",value:"bei",alternatives:["beim"]},{type:"role",role:"event"},{type:"literal",value:"von",alternatives:["aus"]},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"von",markerAlternatives:["aus"]}}},{id:"event-de-bei",language:"de",command:"on",priority:100,template:{format:"bei {event} {body}",tokens:[{type:"literal",value:"bei",alternatives:["beim"]},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-de-auf",language:"de",command:"on",priority:95,template:{format:"auf {event} {body}",tokens:[{type:"literal",value:"auf"},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-de-im-falle",language:"de",command:"on",priority:90,template:{format:"im Falle von {event} {body}",tokens:[{type:"literal",value:"im Falle von",alternatives:["im Fall von"]},{type:"role",role:"event"}]},extraction:{event:{position:1}}}];case"en":return[{id:"event-en-when-source",language:"en",command:"on",priority:115,template:{format:"when {event} from {source} {body}",tokens:[{type:"literal",value:"when"},{type:"role",role:"event"},{type:"literal",value:"from"},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"from"}}},{id:"event-en-when",language:"en",command:"on",priority:105,template:{format:"when {event} {body}",tokens:[{type:"literal",value:"when"},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-en-source",language:"en",command:"on",priority:110,template:{format:"on {event} from {source} {body}",tokens:[{type:"literal",value:"on"},{type:"role",role:"event"},{type:"literal",value:"from"},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"from"}}},{id:"event-en-standard",language:"en",command:"on",priority:100,template:{format:"on {event} {body}",tokens:[{type:"literal",value:"on"},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-en-upon",language:"en",command:"on",priority:98,template:{format:"upon {event} {body}",tokens:[{type:"literal",value:"upon"},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-en-if",language:"en",command:"on",priority:95,template:{format:"if {event} {body}",tokens:[{type:"literal",value:"if"},{type:"role",role:"event"}]},extraction:{event:{position:1}}}];case"es":return[{id:"event-es-native-al-source",language:"es",command:"on",priority:115,template:{format:"al {event} en {source} {body}",tokens:[{type:"literal",value:"al"},{type:"role",role:"event"},{type:"literal",value:"en",alternatives:["de"]},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"en",markerAlternatives:["de"]}}},{id:"event-es-cuando-source",language:"es",command:"on",priority:112,template:{format:"cuando {event} en {source} {body}",tokens:[{type:"literal",value:"cuando"},{type:"role",role:"event"},{type:"literal",value:"en",alternatives:["de"]},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"en",markerAlternatives:["de"]}}},{id:"event-es-native-al",language:"es",command:"on",priority:108,template:{format:"al {event} {body}",tokens:[{type:"literal",value:"al"},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-es-standard",language:"es",command:"on",priority:100,template:{format:"en {event} {body}",tokens:[{type:"literal",value:"en",alternatives:["al","cuando"]},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-es-source",language:"es",command:"on",priority:110,template:{format:"en {event} desde {source} {body}",tokens:[{type:"literal",value:"en",alternatives:["al"]},{type:"role",role:"event"},{type:"literal",value:"desde",alternatives:["de"]},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"desde",markerAlternatives:["de"]}}},{id:"event-es-when",language:"es",command:"on",priority:95,template:{format:"cuando {event} {body}",tokens:[{type:"literal",value:"cuando"},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-es-conditional-si",language:"es",command:"on",priority:85,template:{format:"si {event} {body}",tokens:[{type:"literal",value:"si"},{type:"role",role:"event"}]},extraction:{event:{position:1}}}];case"fr":return[{id:"event-fr-quand-source",language:"fr",command:"on",priority:115,template:{format:"quand {event} de {source} {body}",tokens:[{type:"literal",value:"quand",alternatives:["lorsque"]},{type:"role",role:"event"},{type:"literal",value:"de",alternatives:["depuis"]},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"de",markerAlternatives:["depuis"]}}},{id:"event-fr-quand",language:"fr",command:"on",priority:105,template:{format:"quand {event} {body}",tokens:[{type:"literal",value:"quand",alternatives:["lorsque"]},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-fr-sur-source",language:"fr",command:"on",priority:110,template:{format:"sur {event} de {source} {body}",tokens:[{type:"literal",value:"sur",alternatives:["lors de"]},{type:"role",role:"event"},{type:"literal",value:"de",alternatives:["depuis"]},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"de",markerAlternatives:["depuis"]}}},{id:"event-fr-sur",language:"fr",command:"on",priority:100,template:{format:"sur {event} {body}",tokens:[{type:"literal",value:"sur",alternatives:["lors de"]},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-fr-si",language:"fr",command:"on",priority:95,template:{format:"si {event} {body}",tokens:[{type:"literal",value:"si"},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-fr-a",language:"fr",command:"on",priority:90,template:{format:"à {event} {body}",tokens:[{type:"literal",value:"à",alternatives:["au"]},{type:"role",role:"event"}]},extraction:{event:{position:1}}}];case"hi":return[{id:"event-hi-standard",language:"hi",command:"on",priority:100,template:{format:"{event} पर",tokens:[{type:"role",role:"event"},{type:"literal",value:"पर",alternatives:["में","जब"]}]},extraction:{event:{position:0}}},{id:"event-hi-with-source",language:"hi",command:"on",priority:95,template:{format:"{source} से {event} पर",tokens:[{type:"role",role:"source"},{type:"literal",value:"से"},{type:"role",role:"event"},{type:"literal",value:"पर",alternatives:["में","जब"]}]},extraction:{source:{position:0},event:{marker:"से",position:2}}},{id:"event-hi-bare",language:"hi",command:"on",priority:80,template:{format:"{event}",tokens:[{type:"role",role:"event"}]},extraction:{event:{position:0}}}];case"id":return[{id:"event-id-ketika-source",language:"id",command:"on",priority:115,template:{format:"ketika {event} dari {source} {body}",tokens:[{type:"literal",value:"ketika",alternatives:["saat","waktu"]},{type:"role",role:"event"},{type:"literal",value:"dari"},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"dari"}}},{id:"event-id-ketika",language:"id",command:"on",priority:105,template:{format:"ketika {event} {body}",tokens:[{type:"literal",value:"ketika",alternatives:["saat","waktu"]},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-id-pada-source",language:"id",command:"on",priority:110,template:{format:"pada {event} dari {source} {body}",tokens:[{type:"literal",value:"pada"},{type:"role",role:"event"},{type:"literal",value:"dari"},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"dari"}}},{id:"event-id-pada",language:"id",command:"on",priority:100,template:{format:"pada {event} {body}",tokens:[{type:"literal",value:"pada"},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-id-jika",language:"id",command:"on",priority:95,template:{format:"jika {event} {body}",tokens:[{type:"literal",value:"jika",alternatives:["kalau","apabila"]},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-id-bila",language:"id",command:"on",priority:90,template:{format:"bila {event} {body}",tokens:[{type:"literal",value:"bila"},{type:"role",role:"event"}]},extraction:{event:{position:1}}}];case"it":return[{id:"event-handler-it-full",language:"it",command:"on",priority:100,template:{format:"su {event} {action}",tokens:[{type:"literal",value:"su",alternatives:["quando","al","on"]},{type:"role",role:"event"},{type:"role",role:"action"}]},extraction:{event:{position:1},action:{position:2}}},{id:"event-handler-it-from",language:"it",command:"on",priority:95,template:{format:"su {event} da {source} {action}",tokens:[{type:"literal",value:"su",alternatives:["quando","al","on"]},{type:"role",role:"event"},{type:"literal",value:"da",alternatives:["di"]},{type:"role",role:"source"},{type:"role",role:"action"}]},extraction:{event:{position:1},source:{marker:"da",markerAlternatives:["di"]},action:{position:-1}}}];case"ms":return[{id:"event-ms-apabila",language:"ms",command:"on",priority:100,template:{format:"apabila {event} {body}",tokens:[{type:"literal",value:"apabila",alternatives:["bila","ketika"]},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-ms-apabila-source",language:"ms",command:"on",priority:110,template:{format:"apabila {event} dari {source} {body}",tokens:[{type:"literal",value:"apabila",alternatives:["bila","ketika"]},{type:"role",role:"event"},{type:"literal",value:"dari"},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"dari"}}}];case"pl":return[{id:"event-handler-pl-full",language:"pl",command:"on",priority:100,template:{format:"gdy {event} na {source}",tokens:[{type:"literal",value:"gdy",alternatives:["przy","na"]},{type:"role",role:"event"},{type:"group",optional:!0,tokens:[{type:"literal",value:"na",alternatives:["w","przy","z"]},{type:"role",role:"source"}]}]},extraction:{event:{position:1},source:{marker:"na",markerAlternatives:["w","przy","z"],default:{type:"reference",value:"me"}}}},{id:"event-handler-pl-simple",language:"pl",command:"on",priority:90,template:{format:"gdy {event}",tokens:[{type:"literal",value:"gdy",alternatives:["przy","na"]},{type:"role",role:"event"}]},extraction:{event:{position:1},source:{default:{type:"reference",value:"me"}}}}];case"pt":return[{id:"event-pt-ao-source",language:"pt",command:"on",priority:115,template:{format:"ao {event} em {source} {body}",tokens:[{type:"literal",value:"ao",alternatives:["à"]},{type:"role",role:"event"},{type:"literal",value:"em",alternatives:["de","no","na"]},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"em",markerAlternatives:["de","no","na"]}}},{id:"event-pt-quando-source",language:"pt",command:"on",priority:110,template:{format:"quando {event} de {source} {body}",tokens:[{type:"literal",value:"quando"},{type:"role",role:"event"},{type:"literal",value:"de",alternatives:["em","no","na"]},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"de",markerAlternatives:["em","no","na"]}}},{id:"event-pt-ao",language:"pt",command:"on",priority:105,template:{format:"ao {event} {body}",tokens:[{type:"literal",value:"ao",alternatives:["à"]},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-pt-quando",language:"pt",command:"on",priority:100,template:{format:"quando {event} {body}",tokens:[{type:"literal",value:"quando"},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-pt-em",language:"pt",command:"on",priority:95,template:{format:"em {event} {body}",tokens:[{type:"literal",value:"em",alternatives:["no","na"]},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-pt-se",language:"pt",command:"on",priority:90,template:{format:"se {event} {body}",tokens:[{type:"literal",value:"se"},{type:"role",role:"event"}]},extraction:{event:{position:1}}}];case"qu":return[{id:"event-qu-source",language:"qu",command:"on",priority:110,template:{format:"{event} pi {source} manta {body}",tokens:[{type:"role",role:"event"},{type:"literal",value:"pi"},{type:"role",role:"source"},{type:"literal",value:"manta"}]},extraction:{event:{position:0},source:{marker:"manta"}}},{id:"event-qu-kaqtin",language:"qu",command:"on",priority:105,template:{format:"{event} kaqtin {body}",tokens:[{type:"role",role:"event"},{type:"literal",value:"kaqtin",alternatives:["qtin","ptin"]}]},extraction:{event:{position:0}}},{id:"event-qu-standard",language:"qu",command:"on",priority:100,template:{format:"{event} pi {body}",tokens:[{type:"role",role:"event"},{type:"literal",value:"pi",alternatives:["kaqpi","kaqpim"]}]},extraction:{event:{position:0}}}];case"ru":return[{id:"event-handler-ru-full",language:"ru",command:"on",priority:100,template:{format:"при {event} на {source}",tokens:[{type:"literal",value:"при",alternatives:["когда"]},{type:"role",role:"event"},{type:"group",optional:!0,tokens:[{type:"literal",value:"на",alternatives:["в","от"]},{type:"role",role:"source"}]}]},extraction:{event:{position:1},source:{marker:"на",markerAlternatives:["в","от"],default:{type:"reference",value:"me"}}}},{id:"event-handler-ru-simple",language:"ru",command:"on",priority:90,template:{format:"при {event}",tokens:[{type:"literal",value:"при",alternatives:["когда"]},{type:"role",role:"event"}]},extraction:{event:{position:1},source:{default:{type:"reference",value:"me"}}}}];case"sw":return[{id:"event-sw-unapo-source",language:"sw",command:"on",priority:115,template:{format:"unapo {event} kutoka {source} {body}",tokens:[{type:"literal",value:"unapo",alternatives:["wakati wa","wakati"]},{type:"role",role:"event"},{type:"literal",value:"kutoka"},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"kutoka"}}},{id:"event-sw-unapo",language:"sw",command:"on",priority:105,template:{format:"unapo {event} {body}",tokens:[{type:"literal",value:"unapo",alternatives:["wakati wa","wakati"]},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-sw-kwa-source",language:"sw",command:"on",priority:110,template:{format:"kwa {event} kutoka {source} {body}",tokens:[{type:"literal",value:"kwa"},{type:"role",role:"event"},{type:"literal",value:"kutoka"},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"kutoka"}}},{id:"event-sw-kwa",language:"sw",command:"on",priority:100,template:{format:"kwa {event} {body}",tokens:[{type:"literal",value:"kwa"},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-sw-ikiwa",language:"sw",command:"on",priority:95,template:{format:"ikiwa {event} {body}",tokens:[{type:"literal",value:"ikiwa",alternatives:["kama"]},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-sw-baada-ya",language:"sw",command:"on",priority:90,template:{format:"baada ya {event} {body}",tokens:[{type:"literal",value:"baada ya"},{type:"role",role:"event"}]},extraction:{event:{position:1}}}];case"th":return[{id:"event-handler-th-svo",language:"th",command:"on",priority:100,template:{format:"เมื่อ {event} {action}",tokens:[{type:"literal",value:"เมื่อ",alternatives:["ตอน"]},{type:"role",role:"event"},{type:"role",role:"action"}]},extraction:{event:{position:1},action:{position:2}}},{id:"event-handler-th-with-source",language:"th",command:"on",priority:95,template:{format:"เมื่อ {event} จาก {source} {action}",tokens:[{type:"literal",value:"เมื่อ",alternatives:["ตอน"]},{type:"role",role:"event"},{type:"literal",value:"จาก"},{type:"role",role:"source"},{type:"role",role:"action"}]},extraction:{event:{position:1},source:{marker:"จาก",position:3},action:{position:4}}}];case"tl":return[{id:"event-tl-kapag-source",language:"tl",command:"on",priority:115,template:{format:"kapag {event} mula_sa {source} {body}",tokens:[{type:"literal",value:"kapag",alternatives:["kung","sa"]},{type:"role",role:"event"},{type:"literal",value:"mula_sa",alternatives:["galing_sa"]},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"mula_sa"}}},{id:"event-tl-kapag",language:"tl",command:"on",priority:105,template:{format:"kapag {event} {body}",tokens:[{type:"literal",value:"kapag",alternatives:["kung","sa"]},{type:"role",role:"event"}]},extraction:{event:{position:1}}}];case"uk":return[{id:"event-handler-uk-full",language:"uk",command:"on",priority:100,template:{format:"при {event} на {source}",tokens:[{type:"literal",value:"при",alternatives:["коли"]},{type:"role",role:"event"},{type:"group",optional:!0,tokens:[{type:"literal",value:"на",alternatives:["в","від"]},{type:"role",role:"source"}]}]},extraction:{event:{position:1},source:{marker:"на",markerAlternatives:["в","від"],default:{type:"reference",value:"me"}}}},{id:"event-handler-uk-simple",language:"uk",command:"on",priority:90,template:{format:"при {event}",tokens:[{type:"literal",value:"при",alternatives:["коли"]},{type:"role",role:"event"}]},extraction:{event:{position:1},source:{default:{type:"reference",value:"me"}}}}];case"vi":return[{id:"event-handler-vi-full",language:"vi",command:"on",priority:100,template:{format:"khi {event} trên {source}",tokens:[{type:"literal",value:"khi",alternatives:["lúc","trên"]},{type:"role",role:"event"},{type:"group",optional:!0,tokens:[{type:"literal",value:"trên",alternatives:["tại"]},{type:"role",role:"source"}]}]},extraction:{event:{position:1},source:{marker:"trên",markerAlternatives:["tại"],default:{type:"reference",value:"me"}}}},{id:"event-handler-vi-simple",language:"vi",command:"on",priority:90,template:{format:"khi {event}",tokens:[{type:"literal",value:"khi",alternatives:["lúc","trên"]},{type:"role",role:"event"}]},extraction:{event:{position:1},source:{default:{type:"reference",value:"me"}}}}];case"zh":return[{id:"event-zh-temporal-source",language:"zh",command:"on",priority:115,template:{format:"{event} 的时候 从 {source} {body}",tokens:[{type:"role",role:"event"},{type:"literal",value:"的时候",alternatives:["时候","时"]},{type:"literal",value:"从",alternatives:["在"]},{type:"role",role:"source"}]},extraction:{event:{position:0},source:{marker:"从",markerAlternatives:["在"]}}},{id:"event-zh-source",language:"zh",command:"on",priority:110,template:{format:"当 {event} 从 {source} {body}",tokens:[{type:"literal",value:"当"},{type:"role",role:"event"},{type:"literal",value:"从",alternatives:["在"]},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"从",markerAlternatives:["在"]}}},{id:"event-zh-immediate",language:"zh",command:"on",priority:108,template:{format:"一 {event} 就 {body}",tokens:[{type:"literal",value:"一"},{type:"role",role:"event"},{type:"literal",value:"就"}]},extraction:{event:{position:1}}},{id:"event-zh-temporal",language:"zh",command:"on",priority:105,template:{format:"{event} 的时候 {body}",tokens:[{type:"role",role:"event"},{type:"literal",value:"的时候",alternatives:["时候","时"]}]},extraction:{event:{position:0}}},{id:"event-zh-whenever",language:"zh",command:"on",priority:103,template:{format:"每当 {event} {body}",tokens:[{type:"literal",value:"每当",alternatives:["每次"]},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-zh-standard",language:"zh",command:"on",priority:100,template:{format:"当 {event} {body}",tokens:[{type:"literal",value:"当"},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-zh-completion",language:"zh",command:"on",priority:95,template:{format:"{event} 了 {body}",tokens:[{type:"role",role:"event"},{type:"literal",value:"了"}]},extraction:{event:{position:0}}},{id:"event-zh-conditional",language:"zh",command:"on",priority:90,template:{format:"如果 {event} {body}",tokens:[{type:"literal",value:"如果",alternatives:["若","假如"]},{type:"role",role:"event"}]},extraction:{event:{position:1}}}]}}zc("es-MX",Mh,mb),Mc(),mf(),Gh(),zc("fr",rf,_h),Mc(),hf(),df(),zc("he",cf,of),Mc(),Sf(),xf(),zc("hi",zf,yf),Mc(),$f(),Nf(),zc("id",Pf,Tf),Mc(),ny(),Kf(),zc("it",Xf,Vf),Mc(),ky(),hy(),zc("ja",dy,sy),Mc(),Py(),Ay(),zc("ko",Cy,wy),Mc(),_y(),My(),zc("ms",Ry,jy),Mc(),Xy(),Ky(),zc("pl",Uy,qy),Mc(),kv(),av(),zc("pt",fv,Zy),Mc(),Iv(),xv(),zc("qu",Lv,gv),Mc(),Uv(),Hv(),zc("ru",Vv,Mv),Mc(),tg(),Jv(),zc("sw",Xv,Fv),Mc(),cg(),og(),zc("th",ag,eg),Mc(),Tg(),yg(),zc("tl",bg,lg),Mc(),Hg(),_g(),zc("tr",qg,Pg),Mc(),ek(),Xg(),zc("uk",Zg,Bg),Mc(),lk(),ak(),zc("vi",ik,Qg),Mc(),yk(),hk(),zc("zh",dk,sk),Sk(),th(),rh(),hh();var yb=[...[{id:"fetch-en-with-response-type",language:"en",command:"fetch",priority:90,template:{format:"fetch {source} as {responseType}",tokens:[{type:"literal",value:"fetch"},{type:"role",role:"source",expectedTypes:["literal","expression"]},{type:"literal",value:"as"},{type:"role",role:"responseType",expectedTypes:["literal","expression"]}]},extraction:{source:{position:1},responseType:{marker:"as"}}},{id:"fetch-en-simple",language:"en",command:"fetch",priority:80,template:{format:"fetch {source}",tokens:[{type:"literal",value:"fetch"},{type:"role",role:"source"}]},extraction:{source:{position:1}}}],...[{id:"swap-en-handcrafted",language:"en",command:"swap",priority:110,template:{format:"swap {method} {destination}",tokens:[{type:"literal",value:"swap"},{type:"role",role:"method"},{type:"role",role:"destination"}]},extraction:{method:{position:1},destination:{position:2}}}],...[{id:"repeat-en-until-event-from",language:"en",command:"repeat",priority:120,template:{format:"repeat until event {event} from {source}",tokens:[{type:"literal",value:"repeat"},{type:"literal",value:"until"},{type:"literal",value:"event"},{type:"role",role:"event",expectedTypes:["literal","expression"]},{type:"literal",value:"from"},{type:"role",role:"source",expectedTypes:["selector","reference","expression"]}]},extraction:{event:{marker:"event"},source:{marker:"from"},loopType:{default:{type:"literal",value:"until-event"}}}},{id:"repeat-en-until-event",language:"en",command:"repeat",priority:110,template:{format:"repeat until event {event}",tokens:[{type:"literal",value:"repeat"},{type:"literal",value:"until"},{type:"literal",value:"event"},{type:"role",role:"event",expectedTypes:["literal","expression"]}]},extraction:{event:{marker:"event"},loopType:{default:{type:"literal",value:"until-event"}}}}],...[{id:"set-en-possessive",language:"en",command:"set",priority:100,template:{format:"set {destination} to {patient}",tokens:[{type:"literal",value:"set"},{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"literal",value:"to"},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:1},patient:{marker:"to"}}}],...[{id:"for-en-basic",language:"en",command:"for",priority:100,template:{format:"for {patient} in {source}",tokens:[{type:"literal",value:"for"},{type:"role",role:"patient",expectedTypes:["expression","reference"]},{type:"literal",value:"in"},{type:"role",role:"source",expectedTypes:["selector","expression","reference"]}]},extraction:{patient:{position:1},source:{marker:"in"},loopType:{default:{type:"literal",value:"for"}}}},{id:"if-en-basic",language:"en",command:"if",priority:100,template:{format:"if {condition}",tokens:[{type:"literal",value:"if"},{type:"role",role:"condition",expectedTypes:["expression","reference","selector"]}]},extraction:{condition:{position:1}}},{id:"unless-en-basic",language:"en",command:"unless",priority:100,template:{format:"unless {condition}",tokens:[{type:"literal",value:"unless"},{type:"role",role:"condition",expectedTypes:["expression","reference","selector"]}]},extraction:{condition:{position:1}}}],...[{id:"temporal-en-in",language:"en",command:"wait",priority:95,template:{format:"in {duration}",tokens:[{type:"literal",value:"in"},{type:"role",role:"duration",expectedTypes:["literal","expression"]}]},extraction:{duration:{position:1}}},{id:"temporal-en-after",language:"en",command:"wait",priority:95,template:{format:"after {duration}",tokens:[{type:"literal",value:"after"},{type:"role",role:"duration",expectedTypes:["literal","expression"]}]},extraction:{duration:{position:1}}}]];eh(),Mc();var vb=[db,function(e){return[]},hb,fb,function(e){switch(e){case"ar":case"ja":case"ko":case"tr":default:return[];case"bn":return[{id:"add-bn-full",language:"bn",command:"add",priority:100,template:{format:"{patient} কে যোগ করুন",tokens:[{type:"role",role:"patient"},{type:"literal",value:"কে"},{type:"literal",value:"যোগ"},{type:"literal",value:"করুন"}]},extraction:{patient:{position:0}}},{id:"add-bn-simple",language:"bn",command:"add",priority:90,template:{format:"যোগ {patient}",tokens:[{type:"literal",value:"যোগ"},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}},{id:"add-bn-with-dest",language:"bn",command:"add",priority:95,template:{format:"{destination} এ {patient} কে যোগ করুন",tokens:[{type:"role",role:"destination"},{type:"literal",value:"এ",alternatives:["তে"]},{type:"role",role:"patient"},{type:"literal",value:"কে"},{type:"literal",value:"যোগ"},{type:"literal",value:"করুন"}]},extraction:{destination:{position:0},patient:{position:2}}}];case"hi":return[{id:"add-hi-full",language:"hi",command:"add",priority:100,template:{format:"{patient} को {destination} में जोड़ें",tokens:[{type:"role",role:"patient"},{type:"literal",value:"को"},{type:"role",role:"destination"},{type:"literal",value:"में"},{type:"literal",value:"जोड़ें",alternatives:["जोड़"]}]},extraction:{patient:{position:0},destination:{marker:"में",position:3}}},{id:"add-hi-simple",language:"hi",command:"add",priority:90,template:{format:"{patient} जोड़ें",tokens:[{type:"role",role:"patient"},{type:"literal",value:"जोड़ें",alternatives:["जोड़"]}]},extraction:{patient:{position:0},destination:{default:{type:"reference",value:"me"}}}},{id:"add-hi-bare",language:"hi",command:"add",priority:80,template:{format:"जोड़ें {patient}",tokens:[{type:"literal",value:"जोड़ें",alternatives:["जोड़"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}}];case"it":return[{id:"add-it-full",language:"it",command:"add",priority:100,template:{format:"aggiungere {patient} a {target}",tokens:[{type:"literal",value:"aggiungere",alternatives:["aggiungi","add"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"a",alternatives:["su","in"]},{type:"role",role:"destination"}]}]},extraction:{patient:{position:1},destination:{marker:"a",markerAlternatives:["su","in"],default:{type:"reference",value:"me"}}}},{id:"add-it-simple",language:"it",command:"add",priority:90,template:{format:"aggiungere {patient}",tokens:[{type:"literal",value:"aggiungere",alternatives:["aggiungi","add"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}}];case"pl":return[{id:"add-pl-full",language:"pl",command:"add",priority:100,template:{format:"dodaj {patient} do {destination}",tokens:[{type:"literal",value:"dodaj",alternatives:["dołącz","dolacz"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"do",alternatives:["na","w"]},{type:"role",role:"destination"}]}]},extraction:{patient:{position:1},destination:{marker:"do",markerAlternatives:["na","w"],default:{type:"reference",value:"me"}}}},{id:"add-pl-simple",language:"pl",command:"add",priority:90,template:{format:"dodaj {patient}",tokens:[{type:"literal",value:"dodaj",alternatives:["dołącz","dolacz"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}}];case"qu":return[{id:"add-qu-sov",language:"qu",command:"add",priority:100,template:{format:"{patient} ta yapay",tokens:[{type:"role",role:"patient"},{type:"literal",value:"ta"},{type:"literal",value:"yapay",alternatives:["yapaykuy"]}]},extraction:{patient:{position:0}}},{id:"add-qu-simple",language:"qu",command:"add",priority:90,template:{format:"yapay {patient}",tokens:[{type:"literal",value:"yapay",alternatives:["yapaykuy"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}},{id:"add-qu-with-dest",language:"qu",command:"add",priority:95,template:{format:"{destination} man {patient} ta yapay",tokens:[{type:"role",role:"destination"},{type:"literal",value:"man"},{type:"role",role:"patient"},{type:"literal",value:"ta"},{type:"literal",value:"yapay",alternatives:["yapaykuy"]}]},extraction:{destination:{position:0},patient:{position:2}}}];case"ru":return[{id:"add-ru-full",language:"ru",command:"add",priority:100,template:{format:"добавить {patient} к {destination}",tokens:[{type:"literal",value:"добавить",alternatives:["добавь"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"к",alternatives:["на","в"]},{type:"role",role:"destination"}]}]},extraction:{patient:{position:1},destination:{marker:"к",markerAlternatives:["на","в"],default:{type:"reference",value:"me"}}}},{id:"add-ru-simple",language:"ru",command:"add",priority:90,template:{format:"добавить {patient}",tokens:[{type:"literal",value:"добавить",alternatives:["добавь"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}}];case"th":return[{id:"add-th-simple",language:"th",command:"add",priority:100,template:{format:"เพิ่ม {patient}",tokens:[{type:"literal",value:"เพิ่ม"},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}},{id:"add-th-with-dest",language:"th",command:"add",priority:95,template:{format:"เพิ่ม {patient} ใน {destination}",tokens:[{type:"literal",value:"เพิ่ม"},{type:"role",role:"patient"},{type:"literal",value:"ใน"},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"ใน",position:3}}}];case"uk":return[{id:"add-uk-full",language:"uk",command:"add",priority:100,template:{format:"додати {patient} до {destination}",tokens:[{type:"literal",value:"додати",alternatives:["додай"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"до",alternatives:["на","в"]},{type:"role",role:"destination"}]}]},extraction:{patient:{position:1},destination:{marker:"до",markerAlternatives:["на","в"],default:{type:"reference",value:"me"}}}},{id:"add-uk-simple",language:"uk",command:"add",priority:90,template:{format:"додати {patient}",tokens:[{type:"literal",value:"додати",alternatives:["додай"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}}];case"vi":return[{id:"add-vi-full",language:"vi",command:"add",priority:100,template:{format:"thêm {patient} vào {target}",tokens:[{type:"literal",value:"thêm",alternatives:["bổ sung"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"vào",alternatives:["cho"]},{type:"role",role:"destination"}]}]},extraction:{patient:{position:1},destination:{marker:"vào",markerAlternatives:["cho"],default:{type:"reference",value:"me"}}}},{id:"add-vi-simple",language:"vi",command:"add",priority:90,template:{format:"thêm {patient}",tokens:[{type:"literal",value:"thêm",alternatives:["bổ sung"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}}];case"zh":return[{id:"add-zh-full",language:"zh",command:"add",priority:100,template:{format:"给 {destination} 添加 {patient}",tokens:[{type:"literal",value:"给",alternatives:["為","为"]},{type:"role",role:"destination"},{type:"literal",value:"添加",alternatives:["加","增加","加上"]},{type:"role",role:"patient"}]},extraction:{destination:{position:1},patient:{position:3}}},{id:"add-zh-simple",language:"zh",command:"add",priority:90,template:{format:"添加 {patient}",tokens:[{type:"literal",value:"添加",alternatives:["加","增加"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}},{id:"add-zh-ba",language:"zh",command:"add",priority:95,template:{format:"把 {patient} 添加到 {destination}",tokens:[{type:"literal",value:"把"},{type:"role",role:"patient"},{type:"literal",value:"添加到",alternatives:["加到","增加到"]},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"添加到",markerAlternatives:["加到","增加到"]}}}]}},function(e){switch(e){case"ar":case"ja":case"ko":case"tr":default:return[];case"bn":return[{id:"remove-bn-full",language:"bn",command:"remove",priority:100,template:{format:"{patient} কে সরান",tokens:[{type:"role",role:"patient"},{type:"literal",value:"কে"},{type:"literal",value:"সরান",alternatives:["মুছুন"]}]},extraction:{patient:{position:0}}},{id:"remove-bn-simple",language:"bn",command:"remove",priority:90,template:{format:"সরান {patient}",tokens:[{type:"literal",value:"সরান",alternatives:["মুছুন"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}},{id:"remove-bn-with-source",language:"bn",command:"remove",priority:95,template:{format:"{source} থেকে {patient} কে সরান",tokens:[{type:"role",role:"source"},{type:"literal",value:"থেকে"},{type:"role",role:"patient"},{type:"literal",value:"কে"},{type:"literal",value:"সরান",alternatives:["মুছুন"]}]},extraction:{source:{position:0},patient:{position:2}}}];case"hi":return[{id:"remove-hi-full",language:"hi",command:"remove",priority:100,template:{format:"{patient} को {source} से हटाएं",tokens:[{type:"role",role:"patient"},{type:"literal",value:"को"},{type:"role",role:"source"},{type:"literal",value:"से"},{type:"literal",value:"हटाएं",alternatives:["हटा","मिटाएं"]}]},extraction:{patient:{position:0},source:{marker:"से",position:3}}},{id:"remove-hi-simple",language:"hi",command:"remove",priority:90,template:{format:"{patient} हटाएं",tokens:[{type:"role",role:"patient"},{type:"literal",value:"हटाएं",alternatives:["हटा","मिटाएं"]}]},extraction:{patient:{position:0},source:{default:{type:"reference",value:"me"}}}},{id:"remove-hi-bare",language:"hi",command:"remove",priority:80,template:{format:"हटाएं {patient}",tokens:[{type:"literal",value:"हटाएं",alternatives:["हटा","मिटाएं"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},source:{default:{type:"reference",value:"me"}}}}];case"it":return[{id:"remove-it-full",language:"it",command:"remove",priority:100,template:{format:"rimuovere {patient} da {target}",tokens:[{type:"literal",value:"rimuovere",alternatives:["rimuovi","eliminare","togliere","remove"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"da",alternatives:["di"]},{type:"role",role:"destination"}]}]},extraction:{patient:{position:1},destination:{marker:"da",markerAlternatives:["di"],default:{type:"reference",value:"me"}}}},{id:"remove-it-simple",language:"it",command:"remove",priority:90,template:{format:"rimuovere {patient}",tokens:[{type:"literal",value:"rimuovere",alternatives:["rimuovi","eliminare","togliere","remove"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}}];case"pl":return[{id:"remove-pl-full",language:"pl",command:"remove",priority:100,template:{format:"usuń {patient} z {source}",tokens:[{type:"literal",value:"usuń",alternatives:["usun","wyczyść","wyczysc"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"z",alternatives:["od","ze"]},{type:"role",role:"source"}]}]},extraction:{patient:{position:1},source:{marker:"z",markerAlternatives:["od","ze"],default:{type:"reference",value:"me"}}}},{id:"remove-pl-simple",language:"pl",command:"remove",priority:90,template:{format:"usuń {patient}",tokens:[{type:"literal",value:"usuń",alternatives:["usun","wyczyść","wyczysc"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},source:{default:{type:"reference",value:"me"}}}}];case"qu":return[{id:"remove-qu-sov",language:"qu",command:"remove",priority:100,template:{format:"{patient} ta qichuy",tokens:[{type:"role",role:"patient"},{type:"literal",value:"ta"},{type:"literal",value:"qichuy",alternatives:["hurquy","anchuchiy"]}]},extraction:{patient:{position:0}}},{id:"remove-qu-simple",language:"qu",command:"remove",priority:90,template:{format:"qichuy {patient}",tokens:[{type:"literal",value:"qichuy",alternatives:["hurquy","anchuchiy"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}},{id:"remove-qu-with-source",language:"qu",command:"remove",priority:95,template:{format:"{source} manta {patient} ta qichuy",tokens:[{type:"role",role:"source"},{type:"literal",value:"manta"},{type:"role",role:"patient"},{type:"literal",value:"ta"},{type:"literal",value:"qichuy",alternatives:["hurquy","anchuchiy"]}]},extraction:{source:{position:0},patient:{position:2}}}];case"ru":return[{id:"remove-ru-full",language:"ru",command:"remove",priority:100,template:{format:"удалить {patient} из {source}",tokens:[{type:"literal",value:"удалить",alternatives:["удали","убрать","убери"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"из",alternatives:["от","с"]},{type:"role",role:"source"}]}]},extraction:{patient:{position:1},source:{marker:"из",markerAlternatives:["от","с"],default:{type:"reference",value:"me"}}}},{id:"remove-ru-simple",language:"ru",command:"remove",priority:90,template:{format:"удалить {patient}",tokens:[{type:"literal",value:"удалить",alternatives:["удали","убрать","убери"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},source:{default:{type:"reference",value:"me"}}}}];case"th":return[{id:"remove-th-simple",language:"th",command:"remove",priority:100,template:{format:"ลบ {patient}",tokens:[{type:"literal",value:"ลบ",alternatives:["ลบออก"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}},{id:"remove-th-with-source",language:"th",command:"remove",priority:95,template:{format:"ลบ {patient} จาก {source}",tokens:[{type:"literal",value:"ลบ",alternatives:["ลบออก"]},{type:"role",role:"patient"},{type:"literal",value:"จาก"},{type:"role",role:"source"}]},extraction:{patient:{position:1},source:{marker:"จาก",position:3}}}];case"uk":return[{id:"remove-uk-full",language:"uk",command:"remove",priority:100,template:{format:"видалити {patient} з {source}",tokens:[{type:"literal",value:"видалити",alternatives:["видали","прибрати","прибери"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"з",alternatives:["від","із"]},{type:"role",role:"source"}]}]},extraction:{patient:{position:1},source:{marker:"з",markerAlternatives:["від","із"],default:{type:"reference",value:"me"}}}},{id:"remove-uk-simple",language:"uk",command:"remove",priority:90,template:{format:"видалити {patient}",tokens:[{type:"literal",value:"видалити",alternatives:["видали","прибрати","прибери"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},source:{default:{type:"reference",value:"me"}}}}];case"vi":return[{id:"remove-vi-full",language:"vi",command:"remove",priority:100,template:{format:"xóa {patient} khỏi {target}",tokens:[{type:"literal",value:"xóa",alternatives:["gỡ bỏ","loại bỏ","bỏ"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"khỏi",alternatives:["từ"]},{type:"role",role:"source"}]}]},extraction:{patient:{position:1},source:{marker:"khỏi",markerAlternatives:["từ"],default:{type:"reference",value:"me"}}}},{id:"remove-vi-simple",language:"vi",command:"remove",priority:90,template:{format:"xóa {patient}",tokens:[{type:"literal",value:"xóa",alternatives:["gỡ bỏ","loại bỏ","bỏ"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},source:{default:{type:"reference",value:"me"}}}}];case"zh":return[{id:"remove-zh-full",language:"zh",command:"remove",priority:100,template:{format:"从 {destination} 删除 {patient}",tokens:[{type:"literal",value:"从",alternatives:["從"]},{type:"role",role:"destination"},{type:"literal",value:"删除",alternatives:["刪除","移除","去掉"]},{type:"role",role:"patient"}]},extraction:{destination:{position:1},patient:{position:3}}},{id:"remove-zh-simple",language:"zh",command:"remove",priority:90,template:{format:"删除 {patient}",tokens:[{type:"literal",value:"删除",alternatives:["刪除","移除","去掉"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}},{id:"remove-zh-ba",language:"zh",command:"remove",priority:95,template:{format:"把 {patient} 从 {destination} 删除",tokens:[{type:"literal",value:"把"},{type:"role",role:"patient"},{type:"literal",value:"从",alternatives:["從"]},{type:"role",role:"destination"},{type:"literal",value:"删除",alternatives:["刪除","移除"]}]},extraction:{patient:{position:1},destination:{position:3}}}]}},function(e){switch(e){case"ar":case"ja":case"ko":case"tr":default:return[];case"bn":return[{id:"show-bn-full",language:"bn",command:"show",priority:100,template:{format:"{patient} কে দেখান",tokens:[{type:"role",role:"patient"},{type:"literal",value:"কে"},{type:"literal",value:"দেখান",alternatives:["দেখাও"]}]},extraction:{patient:{position:0}}},{id:"show-bn-simple",language:"bn",command:"show",priority:90,template:{format:"দেখান {patient}",tokens:[{type:"literal",value:"দেখান",alternatives:["দেখাও"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"de":return[{id:"show-de-full",language:"de",command:"show",priority:100,template:{format:"zeige {patient}",tokens:[{type:"literal",value:"zeige",alternatives:["zeigen","anzeigen","show"]},{type:"role",role:"patient",expectedTypes:["selector","reference"]}]},extraction:{patient:{position:1}}}];case"fr":return[{id:"show-fr-full",language:"fr",command:"show",priority:100,template:{format:"afficher {patient}",tokens:[{type:"literal",value:"afficher",alternatives:["montrer","présenter","show"]},{type:"role",role:"patient",expectedTypes:["selector","reference"]}]},extraction:{patient:{position:1}}}];case"hi":return[{id:"show-hi-full",language:"hi",command:"show",priority:100,template:{format:"{patient} को दिखाएं",tokens:[{type:"role",role:"patient"},{type:"literal",value:"को"},{type:"literal",value:"दिखाएं",alternatives:["दिखा"]}]},extraction:{patient:{position:0}}},{id:"show-hi-simple",language:"hi",command:"show",priority:90,template:{format:"दिखाएं {patient}",tokens:[{type:"literal",value:"दिखाएं",alternatives:["दिखा"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}},{id:"show-hi-bare",language:"hi",command:"show",priority:80,template:{format:"दिखाएं",tokens:[{type:"literal",value:"दिखाएं",alternatives:["दिखा"]}]},extraction:{patient:{default:{type:"reference",value:"me"}}}}];case"it":return[{id:"show-it-full",language:"it",command:"show",priority:100,template:{format:"mostrare {patient} con {style}",tokens:[{type:"literal",value:"mostrare",alternatives:["mostra","visualizzare","show"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"con"},{type:"role",role:"style"}]}]},extraction:{patient:{position:1},style:{marker:"con"}}},{id:"show-it-simple",language:"it",command:"show",priority:90,template:{format:"mostrare {patient}",tokens:[{type:"literal",value:"mostrare",alternatives:["mostra","visualizzare","show"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"pl":return[{id:"show-pl-full",language:"pl",command:"show",priority:100,template:{format:"pokaż {patient} z {style}",tokens:[{type:"literal",value:"pokaż",alternatives:["pokaz","wyświetl","wyswietl"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"z",alternatives:["ze","jako"]},{type:"role",role:"style"}]}]},extraction:{patient:{position:1},style:{marker:"z",markerAlternatives:["ze","jako"]}}},{id:"show-pl-simple",language:"pl",command:"show",priority:90,template:{format:"pokaż {patient}",tokens:[{type:"literal",value:"pokaż",alternatives:["pokaz","wyświetl","wyswietl"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"ru":return[{id:"show-ru-full",language:"ru",command:"show",priority:100,template:{format:"показать {patient} с {style}",tokens:[{type:"literal",value:"показать",alternatives:["покажи"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"с",alternatives:["со","как"]},{type:"role",role:"style"}]}]},extraction:{patient:{position:1},style:{marker:"с",markerAlternatives:["со","как"]}}},{id:"show-ru-simple",language:"ru",command:"show",priority:90,template:{format:"показать {patient}",tokens:[{type:"literal",value:"показать",alternatives:["покажи"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"th":return[{id:"show-th-simple",language:"th",command:"show",priority:100,template:{format:"แสดง {patient}",tokens:[{type:"literal",value:"แสดง"},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"uk":return[{id:"show-uk-full",language:"uk",command:"show",priority:100,template:{format:"показати {patient} з {style}",tokens:[{type:"literal",value:"показати",alternatives:["покажи"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"з",alternatives:["із","як"]},{type:"role",role:"style"}]}]},extraction:{patient:{position:1},style:{marker:"з",markerAlternatives:["із","як"]}}},{id:"show-uk-simple",language:"uk",command:"show",priority:90,template:{format:"показати {patient}",tokens:[{type:"literal",value:"показати",alternatives:["покажи"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"vi":return[{id:"show-vi-full",language:"vi",command:"show",priority:100,template:{format:"hiển thị {patient} với {effect}",tokens:[{type:"literal",value:"hiển thị",alternatives:["hiện"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"với"},{type:"role",role:"style"}]}]},extraction:{patient:{position:1},style:{marker:"với"}}},{id:"show-vi-simple",language:"vi",command:"show",priority:90,template:{format:"hiển thị {patient}",tokens:[{type:"literal",value:"hiển thị",alternatives:["hiện"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"zh":return[{id:"show-zh-full",language:"zh",command:"show",priority:100,template:{format:"显示 {patient}",tokens:[{type:"literal",value:"显示",alternatives:["顯示","展示","呈现","呈現"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}},{id:"show-zh-ba",language:"zh",command:"show",priority:95,template:{format:"把 {patient} 显示",tokens:[{type:"literal",value:"把"},{type:"role",role:"patient"},{type:"literal",value:"显示",alternatives:["顯示","展示"]}]},extraction:{patient:{position:1}}},{id:"show-zh-with-给",language:"zh",command:"show",priority:90,template:{format:"给 {destination} 显示 {patient}",tokens:[{type:"literal",value:"给",alternatives:["給"]},{type:"role",role:"destination"},{type:"literal",value:"显示",alternatives:["顯示"]},{type:"role",role:"patient"}]},extraction:{destination:{position:1},patient:{position:3}}}]}},function(e){switch(e){case"ar":case"ja":case"ko":case"tr":default:return[];case"bn":return[{id:"hide-bn-full",language:"bn",command:"hide",priority:100,template:{format:"{patient} কে লুকান",tokens:[{type:"role",role:"patient"},{type:"literal",value:"কে"},{type:"literal",value:"লুকান",alternatives:["লুকাও"]}]},extraction:{patient:{position:0}}},{id:"hide-bn-simple",language:"bn",command:"hide",priority:90,template:{format:"লুকান {patient}",tokens:[{type:"literal",value:"লুকান",alternatives:["লুকাও"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"de":return[{id:"hide-de-full",language:"de",command:"hide",priority:100,template:{format:"verstecke {patient}",tokens:[{type:"literal",value:"verstecke",alternatives:["verstecken","verberge","verbergen","hide"]},{type:"role",role:"patient",expectedTypes:["selector","reference"]}]},extraction:{patient:{position:1}}}];case"hi":return[{id:"hide-hi-full",language:"hi",command:"hide",priority:100,template:{format:"{patient} को छिपाएं",tokens:[{type:"role",role:"patient"},{type:"literal",value:"को"},{type:"literal",value:"छिपाएं",alternatives:["छिपा"]}]},extraction:{patient:{position:0}}},{id:"hide-hi-simple",language:"hi",command:"hide",priority:90,template:{format:"छिपाएं {patient}",tokens:[{type:"literal",value:"छिपाएं",alternatives:["छिपा"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}},{id:"hide-hi-bare",language:"hi",command:"hide",priority:80,template:{format:"छिपाएं",tokens:[{type:"literal",value:"छिपाएं",alternatives:["छिपा"]}]},extraction:{patient:{default:{type:"reference",value:"me"}}}}];case"it":return[{id:"hide-it-full",language:"it",command:"hide",priority:100,template:{format:"nascondere {patient} con {style}",tokens:[{type:"literal",value:"nascondere",alternatives:["nascondi","hide"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"con"},{type:"role",role:"style"}]}]},extraction:{patient:{position:1},style:{marker:"con"}}},{id:"hide-it-simple",language:"it",command:"hide",priority:90,template:{format:"nascondere {patient}",tokens:[{type:"literal",value:"nascondere",alternatives:["nascondi","hide"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"pl":return[{id:"hide-pl-full",language:"pl",command:"hide",priority:100,template:{format:"ukryj {patient} z {style}",tokens:[{type:"literal",value:"ukryj",alternatives:["schowaj","zasłoń","zaslon"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"z",alternatives:["ze","jako"]},{type:"role",role:"style"}]}]},extraction:{patient:{position:1},style:{marker:"z",markerAlternatives:["ze","jako"]}}},{id:"hide-pl-simple",language:"pl",command:"hide",priority:90,template:{format:"ukryj {patient}",tokens:[{type:"literal",value:"ukryj",alternatives:["schowaj","zasłoń","zaslon"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"ru":return[{id:"hide-ru-full",language:"ru",command:"hide",priority:100,template:{format:"скрыть {patient} с {style}",tokens:[{type:"literal",value:"скрыть",alternatives:["скрой","спрятать","спрячь"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"с",alternatives:["со","как"]},{type:"role",role:"style"}]}]},extraction:{patient:{position:1},style:{marker:"с",markerAlternatives:["со","как"]}}},{id:"hide-ru-simple",language:"ru",command:"hide",priority:90,template:{format:"скрыть {patient}",tokens:[{type:"literal",value:"скрыть",alternatives:["скрой","спрятать","спрячь"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"th":return[{id:"hide-th-simple",language:"th",command:"hide",priority:100,template:{format:"ซ่อน {patient}",tokens:[{type:"literal",value:"ซ่อน"},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"uk":return[{id:"hide-uk-full",language:"uk",command:"hide",priority:100,template:{format:"сховати {patient} з {style}",tokens:[{type:"literal",value:"сховати",alternatives:["сховай","приховати","приховай"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"з",alternatives:["із","як"]},{type:"role",role:"style"}]}]},extraction:{patient:{position:1},style:{marker:"з",markerAlternatives:["із","як"]}}},{id:"hide-uk-simple",language:"uk",command:"hide",priority:90,template:{format:"сховати {patient}",tokens:[{type:"literal",value:"сховати",alternatives:["сховай","приховати","приховай"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"vi":return[{id:"hide-vi-full",language:"vi",command:"hide",priority:100,template:{format:"ẩn {patient} với {effect}",tokens:[{type:"literal",value:"ẩn",alternatives:["che","giấu"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"với"},{type:"role",role:"style"}]}]},extraction:{patient:{position:1},style:{marker:"với"}}},{id:"hide-vi-simple",language:"vi",command:"hide",priority:90,template:{format:"ẩn {patient}",tokens:[{type:"literal",value:"ẩn",alternatives:["che","giấu"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"zh":return[{id:"hide-zh-full",language:"zh",command:"hide",priority:100,template:{format:"隐藏 {patient}",tokens:[{type:"literal",value:"隐藏",alternatives:["隱藏","藏起","藏"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}},{id:"hide-zh-ba",language:"zh",command:"hide",priority:95,template:{format:"把 {patient} 隐藏",tokens:[{type:"literal",value:"把"},{type:"role",role:"patient"},{type:"literal",value:"隐藏",alternatives:["隱藏","藏起"]}]},extraction:{patient:{position:1}}},{id:"hide-zh-from",language:"zh",command:"hide",priority:90,template:{format:"从 {destination} 隐藏 {patient}",tokens:[{type:"literal",value:"从",alternatives:["從"]},{type:"role",role:"destination"},{type:"literal",value:"隐藏",alternatives:["隱藏"]},{type:"role",role:"patient"}]},extraction:{destination:{position:1},patient:{position:3}}}]}},function(e){switch(e){case"ar":case"ja":case"ko":case"tr":default:return[];case"bn":return[{id:"set-bn-full",language:"bn",command:"set",priority:100,template:{format:"{patient} কে {goal} এ সেট করুন",tokens:[{type:"role",role:"patient"},{type:"literal",value:"কে"},{type:"role",role:"goal"},{type:"literal",value:"এ",alternatives:["তে"]},{type:"literal",value:"সেট",alternatives:["নির্ধারণ"]},{type:"literal",value:"করুন"}]},extraction:{patient:{position:0},goal:{marker:"এ",position:2}}},{id:"set-bn-simple",language:"bn",command:"set",priority:90,template:{format:"সেট {patient} {goal}",tokens:[{type:"literal",value:"সেট",alternatives:["নির্ধারণ"]},{type:"role",role:"patient"},{type:"role",role:"goal"}]},extraction:{patient:{position:1},goal:{position:2}}}];case"de":return[{id:"set-de-full",language:"de",command:"set",priority:100,template:{format:"setze {destination} auf {patient}",tokens:[{type:"literal",value:"setze",alternatives:["setzen","stelle","stellen","set"]},{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"literal",value:"auf",alternatives:["zu","an"]},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:1},patient:{position:3}}},{id:"set-de-festlegen-auf",language:"de",command:"set",priority:99,template:{format:"festlegen auf {destination} {patient}",tokens:[{type:"literal",value:"festlegen",alternatives:["einstellen","setzen"]},{type:"literal",value:"auf",alternatives:["an"]},{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:2},patient:{position:3}}},{id:"set-de-equals",language:"de",command:"set",priority:95,template:{format:"{destination} = {patient}",tokens:[{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"literal",value:"="},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:0},patient:{position:2}}}];case"es":return[{id:"set-es-full",language:"es",command:"set",priority:100,template:{format:"establecer {destination} a {patient}",tokens:[{type:"literal",value:"establecer",alternatives:["fijar","definir","poner","set"]},{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"literal",value:"a",alternatives:["en","como"]},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:1},patient:{position:3}}},{id:"set-es-prep-first",language:"es",command:"set",priority:95,template:{format:"establecer en {destination} {patient}",tokens:[{type:"literal",value:"establecer",alternatives:["fijar","definir","poner","set"]},{type:"literal",value:"en",alternatives:["a"]},{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:2},patient:{position:3}}},{id:"set-es-equals",language:"es",command:"set",priority:95,template:{format:"{destination} = {patient}",tokens:[{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"literal",value:"="},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:0},patient:{position:2}}}];case"fr":return[{id:"set-fr-full",language:"fr",command:"set",priority:100,template:{format:"définir {destination} à {patient}",tokens:[{type:"literal",value:"définir",alternatives:["definir","mettre","fixer","set"]},{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"literal",value:"à",alternatives:["a","sur","comme"]},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:1},patient:{position:3}}},{id:"set-fr-sur-direct",language:"fr",command:"set",priority:98,template:{format:"définir sur {destination} {patient}",tokens:[{type:"literal",value:"définir",alternatives:["definir","mettre","fixer"]},{type:"literal",value:"sur",alternatives:["à","en"]},{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:2},patient:{position:3}}},{id:"set-fr-equals",language:"fr",command:"set",priority:95,template:{format:"{destination} = {patient}",tokens:[{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"literal",value:"="},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:0},patient:{position:2}}}];case"hi":return[{id:"set-hi-full",language:"hi",command:"set",priority:100,template:{format:"{destination} को {patient} सेट करें",tokens:[{type:"role",role:"destination"},{type:"literal",value:"को"},{type:"role",role:"patient"},{type:"literal",value:"सेट",alternatives:["निर्धारित"]},{type:"group",optional:!0,tokens:[{type:"literal",value:"करें",alternatives:["करो"]}]}]},extraction:{destination:{position:0},patient:{marker:"को",position:2}}},{id:"set-hi-simple",language:"hi",command:"set",priority:90,template:{format:"सेट {destination} {patient}",tokens:[{type:"literal",value:"सेट",alternatives:["निर्धारित"]},{type:"role",role:"destination"},{type:"role",role:"patient"}]},extraction:{destination:{position:1},patient:{position:2}}}];case"id":return[{id:"set-id-full",language:"id",command:"set",priority:100,template:{format:"atur {destination} ke {patient}",tokens:[{type:"literal",value:"atur",alternatives:["tetapkan","setel","set"]},{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"literal",value:"ke",alternatives:["menjadi","jadi","pada"]},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:1},patient:{position:3}}},{id:"set-id-pada-direct",language:"id",command:"set",priority:98,template:{format:"atur pada {destination} {patient}",tokens:[{type:"literal",value:"atur",alternatives:["tetapkan","setel"]},{type:"literal",value:"pada",alternatives:["ke","di"]},{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:2},patient:{position:3}}},{id:"set-id-equals",language:"id",command:"set",priority:95,template:{format:"{destination} = {patient}",tokens:[{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"literal",value:"="},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:0},patient:{position:2}}}];case"it":return[{id:"set-it-full",language:"it",command:"set",priority:100,template:{format:"impostare {patient} a {goal}",tokens:[{type:"literal",value:"impostare",alternatives:["imposta","set","definire"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"a",alternatives:["su","come"]},{type:"role",role:"goal"}]}]},extraction:{patient:{position:1},goal:{marker:"a",markerAlternatives:["su","come"]}}},{id:"set-it-simple",language:"it",command:"set",priority:90,template:{format:"impostare {patient}",tokens:[{type:"literal",value:"impostare",alternatives:["imposta","set"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"pl":return[{id:"set-pl-full",language:"pl",command:"set",priority:100,template:{format:"ustaw {patient} na {goal}",tokens:[{type:"literal",value:"ustaw",alternatives:["określ","okresl","przypisz"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"na",alternatives:["do","jako"]},{type:"role",role:"goal"}]}]},extraction:{patient:{position:1},goal:{marker:"na",markerAlternatives:["do","jako"]}}},{id:"set-pl-simple",language:"pl",command:"set",priority:90,template:{format:"ustaw {patient}",tokens:[{type:"literal",value:"ustaw",alternatives:["określ","okresl"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"pt":return[{id:"set-pt-full",language:"pt",command:"set",priority:100,template:{format:"definir {destination} para {patient}",tokens:[{type:"literal",value:"definir",alternatives:["estabelecer","colocar","set"]},{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"literal",value:"para",alternatives:["como","a","em"]},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:1},patient:{position:3}}},{id:"set-pt-em-direct",language:"pt",command:"set",priority:98,template:{format:"definir em {destination} {patient}",tokens:[{type:"literal",value:"definir",alternatives:["estabelecer","colocar"]},{type:"literal",value:"em",alternatives:["para","a"]},{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:2},patient:{position:3}}},{id:"set-pt-equals",language:"pt",command:"set",priority:95,template:{format:"{destination} = {patient}",tokens:[{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"literal",value:"="},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:0},patient:{position:2}}}];case"ru":return[{id:"set-ru-full",language:"ru",command:"set",priority:100,template:{format:"установить {patient} в {goal}",tokens:[{type:"literal",value:"установить",alternatives:["установи","задать","задай"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"в",alternatives:["на","как"]},{type:"role",role:"goal"}]}]},extraction:{patient:{position:1},goal:{marker:"в",markerAlternatives:["на","как"]}}},{id:"set-ru-simple",language:"ru",command:"set",priority:90,template:{format:"установить {patient}",tokens:[{type:"literal",value:"установить",alternatives:["установи","задать","задай"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"th":return[{id:"set-th-simple",language:"th",command:"set",priority:100,template:{format:"ตั้ง {patient} {goal}",tokens:[{type:"literal",value:"ตั้ง",alternatives:["กำหนด"]},{type:"role",role:"patient"},{type:"role",role:"goal"}]},extraction:{patient:{position:1},goal:{position:2}}}];case"uk":return[{id:"set-uk-full",language:"uk",command:"set",priority:100,template:{format:"встановити {patient} в {goal}",tokens:[{type:"literal",value:"встановити",alternatives:["встанови","задати","задай"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"в",alternatives:["на","як"]},{type:"role",role:"goal"}]}]},extraction:{patient:{position:1},goal:{marker:"в",markerAlternatives:["на","як"]}}},{id:"set-uk-simple",language:"uk",command:"set",priority:90,template:{format:"встановити {patient}",tokens:[{type:"literal",value:"встановити",alternatives:["встанови","задати","задай"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"vi":return[{id:"set-vi-full",language:"vi",command:"set",priority:100,template:{format:"gán {target} thành {value}",tokens:[{type:"literal",value:"gán",alternatives:["thiết lập","đặt giá trị"]},{type:"role",role:"patient"},{type:"literal",value:"thành",alternatives:["bằng","là"]},{type:"role",role:"goal"}]},extraction:{patient:{position:1},goal:{marker:"thành",markerAlternatives:["bằng","là"]}}},{id:"set-vi-simple",language:"vi",command:"set",priority:90,template:{format:"đặt {target} là {value}",tokens:[{type:"literal",value:"đặt"},{type:"role",role:"patient"},{type:"literal",value:"là"},{type:"role",role:"goal"}]},extraction:{patient:{position:1},goal:{marker:"là"}}}];case"zh":return[{id:"set-zh-full",language:"zh",command:"set",priority:100,template:{format:"设置 {destination} 为 {patient}",tokens:[{type:"literal",value:"设置",alternatives:["設置","设定","設定"]},{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"literal",value:"为",alternatives:["為","到","成"]},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:1},patient:{marker:"为",markerAlternatives:["為","到","成"]}}},{id:"set-zh-ba",language:"zh",command:"set",priority:95,template:{format:"把 {destination} 设置为 {patient}",tokens:[{type:"literal",value:"把"},{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"literal",value:"设置为",alternatives:["設置為","设定为","設定為"]},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:1},patient:{marker:"设置为",markerAlternatives:["設置為","设定为","設定為"]}}},{id:"set-zh-simple",language:"zh",command:"set",priority:90,template:{format:"{destination} = {patient}",tokens:[{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"literal",value:"="},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:0},patient:{position:2}}}]}},function(e){switch(e){case"ar":case"ja":case"ko":default:return[];case"bn":return[{id:"get-bn-full",language:"bn",command:"get",priority:100,template:{format:"{source} থেকে পান",tokens:[{type:"role",role:"source"},{type:"literal",value:"থেকে"},{type:"literal",value:"পান",alternatives:["নিন"]}]},extraction:{source:{position:0}}},{id:"get-bn-simple",language:"bn",command:"get",priority:90,template:{format:"পান {source}",tokens:[{type:"literal",value:"পান",alternatives:["নিন"]},{type:"role",role:"source"}]},extraction:{source:{position:1}}}];case"de":return[{id:"get-de-full",language:"de",command:"get",priority:100,template:{format:"hole {source}",tokens:[{type:"literal",value:"hole",alternatives:["holen","get","bekomme","bekommen"]},{type:"role",role:"source",expectedTypes:["selector","reference","expression"]}]},extraction:{source:{position:1}}}];case"hi":return[{id:"get-hi-full",language:"hi",command:"get",priority:100,template:{format:"{source} से प्राप्त करें",tokens:[{type:"role",role:"source"},{type:"literal",value:"से"},{type:"literal",value:"प्राप्त",alternatives:["पाएं"]},{type:"group",optional:!0,tokens:[{type:"literal",value:"करें",alternatives:["करो"]}]}]},extraction:{source:{position:0}}},{id:"get-hi-simple",language:"hi",command:"get",priority:90,template:{format:"प्राप्त {source}",tokens:[{type:"literal",value:"प्राप्त",alternatives:["पाएं"]},{type:"role",role:"source"}]},extraction:{source:{position:1}}}];case"it":return[{id:"get-it-full",language:"it",command:"get",priority:100,template:{format:"ottenere {patient} da {source}",tokens:[{type:"literal",value:"ottenere",alternatives:["ottieni","get","prendere"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"da",alternatives:["di"]},{type:"role",role:"source"}]}]},extraction:{patient:{position:1},source:{marker:"da",markerAlternatives:["di"]}}},{id:"get-it-simple",language:"it",command:"get",priority:90,template:{format:"ottenere {patient}",tokens:[{type:"literal",value:"ottenere",alternatives:["ottieni","get"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"pl":return[{id:"get-pl-full",language:"pl",command:"get",priority:100,template:{format:"uzyskaj {patient} z {source}",tokens:[{type:"literal",value:"uzyskaj"},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"z",alternatives:["od","ze"]},{type:"role",role:"source"}]}]},extraction:{patient:{position:1},source:{marker:"z",markerAlternatives:["od","ze"]}}},{id:"get-pl-simple",language:"pl",command:"get",priority:90,template:{format:"uzyskaj {patient}",tokens:[{type:"literal",value:"uzyskaj"},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"ru":return[{id:"get-ru-full",language:"ru",command:"get",priority:100,template:{format:"получить {patient} из {source}",tokens:[{type:"literal",value:"получить",alternatives:["получи","взять","возьми"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"из",alternatives:["от","с"]},{type:"role",role:"source"}]}]},extraction:{patient:{position:1},source:{marker:"из",markerAlternatives:["от","с"]}}},{id:"get-ru-simple",language:"ru",command:"get",priority:90,template:{format:"получить {patient}",tokens:[{type:"literal",value:"получить",alternatives:["получи","взять","возьми"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"th":return[{id:"get-th-simple",language:"th",command:"get",priority:100,template:{format:"รับค่า {source}",tokens:[{type:"literal",value:"รับค่า"},{type:"role",role:"source"}]},extraction:{source:{position:1}}}];case"uk":return[{id:"get-uk-full",language:"uk",command:"get",priority:100,template:{format:"отримати {patient} з {source}",tokens:[{type:"literal",value:"отримати",alternatives:["отримай","взяти","візьми"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"з",alternatives:["від","із"]},{type:"role",role:"source"}]}]},extraction:{patient:{position:1},source:{marker:"з",markerAlternatives:["від","із"]}}},{id:"get-uk-simple",language:"uk",command:"get",priority:90,template:{format:"отримати {patient}",tokens:[{type:"literal",value:"отримати",alternatives:["отримай","взяти","візьми"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"vi":return[{id:"get-vi-full",language:"vi",command:"get",priority:100,template:{format:"lấy giá trị của {target}",tokens:[{type:"literal",value:"lấy giá trị",alternatives:["nhận","lấy"]},{type:"group",optional:!0,tokens:[{type:"literal",value:"của"}]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}},{id:"get-vi-simple",language:"vi",command:"get",priority:90,template:{format:"lấy {target}",tokens:[{type:"literal",value:"lấy",alternatives:["nhận","lấy giá trị"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}]}},function(e){switch(e){case"ar":case"es":case"fr":case"ja":case"ko":case"tr":default:return[];case"bn":return[{id:"increment-bn-full",language:"bn",command:"increment",priority:100,template:{format:"{patient} কে বৃদ্ধি করুন",tokens:[{type:"role",role:"patient"},{type:"literal",value:"কে"},{type:"literal",value:"বৃদ্ধি",alternatives:["বাড়ান"]},{type:"literal",value:"করুন"}]},extraction:{patient:{position:0}}},{id:"increment-bn-with-quantity",language:"bn",command:"increment",priority:95,template:{format:"{patient} কে {quantity} দিয়ে বৃদ্ধি করুন",tokens:[{type:"role",role:"patient"},{type:"literal",value:"কে"},{type:"role",role:"quantity"},{type:"literal",value:"দিয়ে"},{type:"literal",value:"বৃদ্ধি",alternatives:["বাড়ান"]},{type:"literal",value:"করুন"}]},extraction:{patient:{position:0},quantity:{marker:"দিয়ে",position:2}}},{id:"increment-bn-simple",language:"bn",command:"increment",priority:90,template:{format:"বৃদ্ধি {patient}",tokens:[{type:"literal",value:"বৃদ্ধি",alternatives:["বাড়ান"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"de":return[{id:"increment-de-full",language:"de",command:"increment",priority:100,template:{format:"erhöhe {patient}",tokens:[{type:"literal",value:"erhöhe",alternatives:["erhoehe","erhöhen","inkrementiere","inkrementieren","increment"]},{type:"role",role:"patient",expectedTypes:["selector","reference","expression"]}]},extraction:{patient:{position:1}}}];case"hi":return[{id:"increment-hi-full",language:"hi",command:"increment",priority:100,template:{format:"{patient} को बढ़ाएं",tokens:[{type:"role",role:"patient"},{type:"literal",value:"को"},{type:"literal",value:"बढ़ाएं",alternatives:["बढ़ा"]}]},extraction:{patient:{position:0}}},{id:"increment-hi-with-quantity",language:"hi",command:"increment",priority:95,template:{format:"{patient} को {quantity} से बढ़ाएं",tokens:[{type:"role",role:"patient"},{type:"literal",value:"को"},{type:"role",role:"quantity"},{type:"literal",value:"से"},{type:"literal",value:"बढ़ाएं",alternatives:["बढ़ा"]}]},extraction:{patient:{position:0},quantity:{marker:"से",position:2}}},{id:"increment-hi-simple",language:"hi",command:"increment",priority:90,template:{format:"बढ़ाएं {patient}",tokens:[{type:"literal",value:"बढ़ाएं",alternatives:["बढ़ा"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"it":return[{id:"increment-it-full",language:"it",command:"increment",priority:100,template:{format:"incrementare {patient} di {quantity}",tokens:[{type:"literal",value:"incrementare",alternatives:["incrementa","aumentare","increment"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"di",alternatives:["per"]},{type:"role",role:"quantity"}]}]},extraction:{patient:{position:1},quantity:{marker:"di",markerAlternatives:["per"],default:{type:"literal",value:"1"}}}},{id:"increment-it-simple",language:"it",command:"increment",priority:90,template:{format:"incrementare {patient}",tokens:[{type:"literal",value:"incrementare",alternatives:["incrementa","aumentare","increment"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},quantity:{default:{type:"literal",value:"1"}}}}];case"pl":return[{id:"increment-pl-full",language:"pl",command:"increment",priority:100,template:{format:"zwiększ {patient} o {quantity}",tokens:[{type:"literal",value:"zwiększ",alternatives:["zwieksz","podnieś","podnies"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"o"},{type:"role",role:"quantity"}]}]},extraction:{patient:{position:1},quantity:{marker:"o",default:{type:"literal",value:1}}}},{id:"increment-pl-simple",language:"pl",command:"increment",priority:90,template:{format:"zwiększ {patient}",tokens:[{type:"literal",value:"zwiększ",alternatives:["zwieksz","podnieś","podnies"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},quantity:{default:{type:"literal",value:1}}}}];case"ru":return[{id:"increment-ru-full",language:"ru",command:"increment",priority:100,template:{format:"увеличить {patient} на {quantity}",tokens:[{type:"literal",value:"увеличить",alternatives:["увеличь"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"на"},{type:"role",role:"quantity"}]}]},extraction:{patient:{position:1},quantity:{marker:"на",default:{type:"literal",value:1}}}},{id:"increment-ru-simple",language:"ru",command:"increment",priority:90,template:{format:"увеличить {patient}",tokens:[{type:"literal",value:"увеличить",alternatives:["увеличь"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},quantity:{default:{type:"literal",value:1}}}}];case"th":return[{id:"increment-th-simple",language:"th",command:"increment",priority:100,template:{format:"เพิ่มค่า {patient}",tokens:[{type:"literal",value:"เพิ่มค่า"},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}},{id:"increment-th-with-quantity",language:"th",command:"increment",priority:95,template:{format:"เพิ่มค่า {patient} ด้วย {quantity}",tokens:[{type:"literal",value:"เพิ่มค่า"},{type:"role",role:"patient"},{type:"literal",value:"ด้วย"},{type:"role",role:"quantity"}]},extraction:{patient:{position:1},quantity:{marker:"ด้วย",position:3}}}];case"uk":return[{id:"increment-uk-full",language:"uk",command:"increment",priority:100,template:{format:"збільшити {patient} на {quantity}",tokens:[{type:"literal",value:"збільшити",alternatives:["збільш"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"на"},{type:"role",role:"quantity"}]}]},extraction:{patient:{position:1},quantity:{marker:"на",default:{type:"literal",value:1}}}},{id:"increment-uk-simple",language:"uk",command:"increment",priority:90,template:{format:"збільшити {patient}",tokens:[{type:"literal",value:"збільшити",alternatives:["збільш"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},quantity:{default:{type:"literal",value:1}}}}];case"vi":return[{id:"increment-vi-full",language:"vi",command:"increment",priority:100,template:{format:"tăng {target} thêm {amount}",tokens:[{type:"literal",value:"tăng",alternatives:["tăng lên"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"thêm",alternatives:["lên"]},{type:"role",role:"quantity"}]}]},extraction:{patient:{position:1},quantity:{marker:"thêm",markerAlternatives:["lên"],default:{type:"literal",value:"1"}}}},{id:"increment-vi-simple",language:"vi",command:"increment",priority:90,template:{format:"tăng {target}",tokens:[{type:"literal",value:"tăng",alternatives:["tăng lên"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},quantity:{default:{type:"literal",value:"1"}}}}];case"zh":return[{id:"increment-zh-full",language:"zh",command:"increment",priority:100,template:{format:"增加 {patient}",tokens:[{type:"literal",value:"增加",alternatives:["递增","加","增","increment"]},{type:"role",role:"patient",expectedTypes:["selector","reference","expression"]}]},extraction:{patient:{position:1}}}]}},function(e){switch(e){case"bn":return[{id:"decrement-bn-full",language:"bn",command:"decrement",priority:100,template:{format:"{patient} কে হ্রাস করুন",tokens:[{type:"role",role:"patient"},{type:"literal",value:"কে"},{type:"literal",value:"হ্রাস",alternatives:["কমান"]},{type:"literal",value:"করুন"}]},extraction:{patient:{position:0}}},{id:"decrement-bn-with-quantity",language:"bn",command:"decrement",priority:95,template:{format:"{patient} কে {quantity} দিয়ে হ্রাস করুন",tokens:[{type:"role",role:"patient"},{type:"literal",value:"কে"},{type:"role",role:"quantity"},{type:"literal",value:"দিয়ে"},{type:"literal",value:"হ্রাস",alternatives:["কমান"]},{type:"literal",value:"করুন"}]},extraction:{patient:{position:0},quantity:{marker:"দিয়ে",position:2}}},{id:"decrement-bn-simple",language:"bn",command:"decrement",priority:90,template:{format:"হ্রাস {patient}",tokens:[{type:"literal",value:"হ্রাস",alternatives:["কমান"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"de":return[{id:"decrement-de-full",language:"de",command:"decrement",priority:100,template:{format:"verringere {patient}",tokens:[{type:"literal",value:"verringere",alternatives:["verringern","dekrementiere","dekrementieren","reduziere","decrement"]},{type:"role",role:"patient",expectedTypes:["selector","reference","expression"]}]},extraction:{patient:{position:1}}}];case"hi":return[{id:"decrement-hi-full",language:"hi",command:"decrement",priority:100,template:{format:"{patient} को घटाएं",tokens:[{type:"role",role:"patient"},{type:"literal",value:"को"},{type:"literal",value:"घटाएं",alternatives:["घटा"]}]},extraction:{patient:{position:0}}},{id:"decrement-hi-with-quantity",language:"hi",command:"decrement",priority:95,template:{format:"{patient} को {quantity} से घटाएं",tokens:[{type:"role",role:"patient"},{type:"literal",value:"को"},{type:"role",role:"quantity"},{type:"literal",value:"से"},{type:"literal",value:"घटाएं",alternatives:["घटा"]}]},extraction:{patient:{position:0},quantity:{marker:"से",position:2}}},{id:"decrement-hi-simple",language:"hi",command:"decrement",priority:90,template:{format:"घटाएं {patient}",tokens:[{type:"literal",value:"घटाएं",alternatives:["घटा"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}}];case"it":return[{id:"decrement-it-full",language:"it",command:"decrement",priority:100,template:{format:"decrementare {patient} di {quantity}",tokens:[{type:"literal",value:"decrementare",alternatives:["decrementa","diminuire","decrement"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"di",alternatives:["per"]},{type:"role",role:"quantity"}]}]},extraction:{patient:{position:1},quantity:{marker:"di",markerAlternatives:["per"],default:{type:"literal",value:"1"}}}},{id:"decrement-it-simple",language:"it",command:"decrement",priority:90,template:{format:"decrementare {patient}",tokens:[{type:"literal",value:"decrementare",alternatives:["decrementa","diminuire","decrement"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},quantity:{default:{type:"literal",value:"1"}}}}];case"ja":case"ko":case"tr":default:return[];case"pl":return[{id:"decrement-pl-full",language:"pl",command:"decrement",priority:100,template:{format:"zmniejsz {patient} o {quantity}",tokens:[{type:"literal",value:"zmniejsz",alternatives:["obniż","obniz"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"o"},{type:"role",role:"quantity"}]}]},extraction:{patient:{position:1},quantity:{marker:"o",default:{type:"literal",value:1}}}},{id:"decrement-pl-simple",language:"pl",command:"decrement",priority:90,template:{format:"zmniejsz {patient}",tokens:[{type:"literal",value:"zmniejsz",alternatives:["obniż","obniz"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},quantity:{default:{type:"literal",value:1}}}}];case"ru":return[{id:"decrement-ru-full",language:"ru",command:"decrement",priority:100,template:{format:"уменьшить {patient} на {quantity}",tokens:[{type:"literal",value:"уменьшить",alternatives:["уменьши"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"на"},{type:"role",role:"quantity"}]}]},extraction:{patient:{position:1},quantity:{marker:"на",default:{type:"literal",value:1}}}},{id:"decrement-ru-simple",language:"ru",command:"decrement",priority:90,template:{format:"уменьшить {patient}",tokens:[{type:"literal",value:"уменьшить",alternatives:["уменьши"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},quantity:{default:{type:"literal",value:1}}}}];case"th":return[{id:"decrement-th-simple",language:"th",command:"decrement",priority:100,template:{format:"ลดค่า {patient}",tokens:[{type:"literal",value:"ลดค่า"},{type:"role",role:"patient"}]},extraction:{patient:{position:1}}},{id:"decrement-th-with-quantity",language:"th",command:"decrement",priority:95,template:{format:"ลดค่า {patient} ด้วย {quantity}",tokens:[{type:"literal",value:"ลดค่า"},{type:"role",role:"patient"},{type:"literal",value:"ด้วย"},{type:"role",role:"quantity"}]},extraction:{patient:{position:1},quantity:{marker:"ด้วย",position:3}}}];case"uk":return[{id:"decrement-uk-full",language:"uk",command:"decrement",priority:100,template:{format:"зменшити {patient} на {quantity}",tokens:[{type:"literal",value:"зменшити",alternatives:["зменш"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"на"},{type:"role",role:"quantity"}]}]},extraction:{patient:{position:1},quantity:{marker:"на",default:{type:"literal",value:1}}}},{id:"decrement-uk-simple",language:"uk",command:"decrement",priority:90,template:{format:"зменшити {patient}",tokens:[{type:"literal",value:"зменшити",alternatives:["зменш"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},quantity:{default:{type:"literal",value:1}}}}];case"vi":return[{id:"decrement-vi-full",language:"vi",command:"decrement",priority:100,template:{format:"giảm {target} đi {amount}",tokens:[{type:"literal",value:"giảm",alternatives:["giảm đi"]},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"đi",alternatives:["xuống"]},{type:"role",role:"quantity"}]}]},extraction:{patient:{position:1},quantity:{marker:"đi",markerAlternatives:["xuống"],default:{type:"literal",value:"1"}}}},{id:"decrement-vi-simple",language:"vi",command:"decrement",priority:90,template:{format:"giảm {target}",tokens:[{type:"literal",value:"giảm",alternatives:["giảm đi"]},{type:"role",role:"patient"}]},extraction:{patient:{position:1},quantity:{default:{type:"literal",value:"1"}}}}];case"zh":return[{id:"decrement-zh-full",language:"zh",command:"decrement",priority:100,template:{format:"减少 {patient}",tokens:[{type:"literal",value:"减少",alternatives:["递减","减","降低","decrement"]},{type:"role",role:"patient",expectedTypes:["selector","reference","expression"]}]},extraction:{patient:{position:1}}}]}},function(e){return"en"===e?[{id:"append-en-full",language:"en",command:"append",priority:100,template:{format:"append {patient} to {destination}",tokens:[{type:"literal",value:"append"},{type:"role",role:"patient",expectedTypes:["literal","selector","expression"]},{type:"literal",value:"to"},{type:"role",role:"destination",expectedTypes:["selector","reference"]}]},extraction:{patient:{position:1},destination:{marker:"to"}}}]:[]},function(e){return"en"===e?[{id:"prepend-en-full",language:"en",command:"prepend",priority:100,template:{format:"prepend {patient} to {destination}",tokens:[{type:"literal",value:"prepend"},{type:"role",role:"patient",expectedTypes:["literal","selector","expression"]},{type:"literal",value:"to"},{type:"role",role:"destination",expectedTypes:["selector","reference"]}]},extraction:{patient:{position:1},destination:{marker:"to"}}}]:[]},function(e){return"en"===e?[{id:"trigger-en-full",language:"en",command:"trigger",priority:100,template:{format:"trigger {event} on {destination}",tokens:[{type:"literal",value:"trigger"},{type:"role",role:"event",expectedTypes:["literal","expression"]},{type:"group",optional:!0,tokens:[{type:"literal",value:"on"},{type:"role",role:"destination",expectedTypes:["selector","reference"]}]}]},extraction:{event:{position:1},destination:{marker:"on",default:{type:"reference",value:"me"}}}},{id:"trigger-en-simple",language:"en",command:"trigger",priority:90,template:{format:"trigger {event}",tokens:[{type:"literal",value:"trigger"},{type:"role",role:"event",expectedTypes:["literal","expression"]}]},extraction:{event:{position:1},destination:{default:{type:"reference",value:"me"}}}}]:[]},function(e){return[]}],gb=new Map;function kb(e){const t=vb.flatMap(t=>t(e));return"en"===e&&t.push(...yb),t.push(...function(e){const t=gb.get(e);if(t)return t;const r=Sc(e);if(!r)return[];const n=Zd(r);return gb.set(e,n),n}(e)),t}var bb=["en","ja","ar","es","ko","zh","tr","pt","fr","de","id","qu","sw","it","vi","pl","ru","uk","hi","bn","th","ms","tl","he"];function wb(){const e=[];for(const t of bb)e.push(...kb(t));return e}var zb=new Map,xb=null;function Eb(){return null===xb&&(xb=wb()),xb}var Tb=new Proxy([],{get(e,t){const r=Eb(),n=Reflect.get(r,t);return"function"==typeof n?n.bind(r):n},ownKeys:()=>Reflect.ownKeys(Eb()),getOwnPropertyDescriptor:(e,t)=>Reflect.getOwnPropertyDescriptor(Eb(),t)});function Sb(e){if(zb.has(e))return zb.get(e);const t=kb(e);return zb.set(e,t),t}function Cb(e,t){return Dk(Fk(e),t)}function Ab(e,t){return Hl(e)?Fk(e):Xk(e,t)}function Lb(e,t){if(e.type!==t.type)return!1;switch(e.type){case"literal":case"selector":case"reference":return e.value===t.value;case"property-path":return Lb(e.object,t.object)&&e.property===t.property;case"expression":return e.raw===t.raw;case"flag":return e.name===t.name&&e.enabled===t.enabled;default:return!1}}Ck(),Mc(),uc=function(e){return kb(e.code)},Pk(),nm(),um(),Xc(),$k(),pb(),Yk(),Bk(),Bk(),Yk(),Mc(),$k(),pb(),Pk(),Mc();var jb=class{constructor(e={}){this.cache=new Map,this.config={maxSize:e.maxSize??1e3,ttlMs:e.ttlMs??0,enabled:e.enabled??!0},this.stats={hits:0,misses:0,evictions:0,expirations:0}}makeKey(e,t){return`${t}:${e}`}isExpired(e){return 0!==this.config.ttlMs&&Date.now()-e.createdAt>this.config.ttlMs}evictLRU(){const e=this.cache.keys().next().value;void 0!==e&&(this.cache.delete(e),this.stats.evictions++)}get(e,t){if(!this.config.enabled)return void this.stats.misses++;const r=this.makeKey(e,t),n=this.cache.get(r);if(n)return this.isExpired(n)?(this.cache.delete(r),this.stats.expirations++,void this.stats.misses++):(this.cache.delete(r),n.lastAccessed=Date.now(),this.cache.set(r,n),this.stats.hits++,n.result);this.stats.misses++}set(e,t,r){if(!this.config.enabled)return;if(0===r.confidence)return;const n=this.makeKey(e,t),i=Date.now();for(;this.cache.size>=this.config.maxSize;)this.evictLRU();this.cache.set(n,{result:r,createdAt:i,lastAccessed:i})}has(e,t){if(!this.config.enabled)return!1;const r=this.makeKey(e,t),n=this.cache.get(r);return!!n&&(!this.isExpired(n)||(this.cache.delete(r),this.stats.expirations++,!1))}delete(e,t){const r=this.makeKey(e,t);return this.cache.delete(r)}clear(){this.cache.clear()}resetStats(){this.stats={hits:0,misses:0,evictions:0,expirations:0}}getStats(){const e=this.stats.hits+this.stats.misses;return{hits:this.stats.hits,misses:this.stats.misses,size:this.cache.size,maxSize:this.config.maxSize,hitRate:e>0?this.stats.hits/e:0,evictions:this.stats.evictions,expirations:this.stats.expirations,enabled:this.config.enabled}}configure(e){if(void 0!==e.maxSize)for(this.config.maxSize=e.maxSize;this.cache.size>this.config.maxSize;)this.evictLRU();void 0!==e.ttlMs&&(this.config.ttlMs=e.ttlMs),void 0!==e.enabled&&(this.config.enabled=e.enabled)}enable(){this.config.enabled=!0}disable(){this.config.enabled=!1}getConfig(){return{...this.config}}},Pb=new jb;var Nb=class{constructor(e={}){this.patternMatcher=new Rk,this.languages=new Set(Cc()),this.cache=!1===e.cache?new jb({enabled:!1}):e.cache?new jb(e.cache):Pb}analyze(e,t){if(!this.supportsLanguage(t))return{confidence:0,errors:[`Language '${t}' is not supported for semantic parsing`]};const r=this.cache.get(e,t);if(r)return r;const n=this.analyzeUncached(e,t);return this.cache.set(e,t,n),n}analyzeUncached(e,t){try{try{const r=Xk(e,t),n={confidence:r.metadata?.confidence??.8,node:r};return"command"===r.kind?{...n,command:{name:r.action,roles:r.roles}}:n}catch{}const r=Ak(t);if(!r)return{confidence:0,errors:[`No tokenizer available for language '${t}'`]};const n=r.tokenize(e),i=jc(t);if(0===i.length)return{confidence:0,errors:[`No patterns available for language '${t}'`]};const a=this.patternMatcher.matchBest(n,i);if(a){const e=this.buildSemanticNode(a);return{confidence:a.confidence,command:{name:a.pattern.command,roles:a.captured},node:e,tokensConsumed:a.consumedTokens}}return{confidence:0,errors:["No pattern matched the input"]}}catch(e){return{confidence:0,errors:[e instanceof Error?e.message:e+""]}}}supportsLanguage(e){return this.languages.has(e)}supportedLanguages(){return Array.from(this.languages)}getCacheStats(){return this.cache.getStats()}clearCache(){this.cache.clear()}configureCache(e){this.cache.configure(e)}buildSemanticNode(e){return{kind:"command",action:e.pattern.command,roles:e.captured,metadata:{patternId:e.pattern.id}}}};function Ob(e){return new Nb(e)}var Ib=.5;Yc(),hk(),Gm(),Gh(),Om(),Nf(),hy(),Ay(),av(),xv(),Nh(),Jv(),_g(),Yc(),xm(),hk(),Gm(),Gh(),Om(),df(),xf(),Nf(),Kf(),hy(),Ay(),My(),Ky(),av(),xv(),Hv(),Nh(),Jv(),og(),yg(),_g(),Xg(),ak();var Rb={ar:Hc,bn:ym,zh:sk,en:Bm,fr:_h,de:Tm,he:of,hi:yf,id:Tf,it:Vf,ja:sy,ko:wy,ms:jy,pl:qy,pt:Zy,qu:gv,ru:Mv,es:Th,"es-MX":mb,sw:Fv,th:eg,tl:lg,tr:Pg,uk:Bg,vi:Qg};Wd(),eh(),Id(),Wd();var Mb=new Map(Object.entries(Od));function Wb(e){return Mb.get(e)}function qb(e){return"literal"===e.type&&"string"==typeof e.value||"selector"===e.type||"reference"===e.type?e.value:void 0}function _b(e,t){if(null==e)return!1;for(const r of t)switch(r){case"selector":if("selector"===e.type)return!0;const t=qb(e);if(t&&(t.startsWith(".")||t.startsWith("#")||t.startsWith("[")))return!0;break;case"literal":if("literal"===e.type)return!0;if("property-path"===e.type)return!0;break;case"reference":if("reference"===e.type)return!0;if("property-path"===e.type)return!0;const r=qb(e);if(r&&["me","you","it","my","its","result","event","target"].includes(r.toLowerCase()))return!0;break;case"expression":if("expression"===e.type)return!0;if("property-path"===e.type)return!0}return!1}function $b(e){const t=[],r=[],n=[];let i=0;const a=Wb(e.action);if(!a)return r.push({code:"UNKNOWN_ROLE",message:`No schema found for action '${e.action}'. Skipping validation.`,severity:"warning"}),{valid:!0,errors:t,warnings:r,confidenceAdjustment:-.1,suggestions:n};const o=new Map;for(const t of e.arguments)t.role&&o.set(t.role,t);for(const e of a.roles){const a=o.get(e.role);!e.required||a?a&&!_b(a,e.expectedTypes)&&(r.push({code:"INVALID_TYPE",message:`Role '${e.role}' expected ${e.expectedTypes.join(" or ")}, got ${a.type}.`,role:e.role,expected:e.expectedTypes,actual:a,severity:"warning"}),i-=.1):e.default?r.push({code:"MISSING_REQUIRED_ROLE",message:`Role '${e.role}' not provided, using default.`,role:e.role,severity:"warning"}):(t.push({code:"MISSING_REQUIRED_ROLE",message:`Required role '${e.role}' (${e.description}) is missing.`,role:e.role,expected:e.expectedTypes,severity:"error"}),n.push(`Add ${e.description.toLowerCase()} to the command.`),i-=.2)}for(const t of e.arguments)if(t.role){a.roles.some(e=>e.role===t.role)||(r.push({code:"UNKNOWN_ROLE",message:`Role '${t.role}' is not recognized for command '${e.action}'.`,role:t.role,severity:"warning"}),i-=.05)}return a.roles.filter(e=>e.required&&!e.default).every(e=>o.has(e.role))&&0===t.length&&(i+=.1),{valid:0===t.length,errors:t,warnings:r,confidenceAdjustment:Math.max(-1,Math.min(1,i)),suggestions:n}}function Db(e){switch(e){case"preposition":return"preposition";case"postposition":case"particle":case"case-suffix":return"postposition";default:return"none"}}function Vb(e,t,r){const n={form:t.primary,role:e,position:Db(r),required:t.required??!1};return t.alternatives&&(n.alternatives=t.alternatives),n}var Hb={accessibility:!0,performance:!0,schema:!0,strict:!1},Bb=new Set(["scroll","mousemove","touchmove","resize","input","keydown","keyup","keypress"]),Fb=new Set(["scroll","mousemove","touchmove","resize"]);function Ub(e,t){const r=[];if("event-handler"===e.kind){const n=e.roles.get("event");if(n&&"literal"===n.type){const e=(n.value+"").toLowerCase();"mouseenter"!==e&&"mouseover"!==e&&"hover"!==e||r.push({code:"HOVER_ONLY_INTERACTION",severity:"warning",message:`Hover-only interaction detected (${e}). Not accessible to keyboard or touch users.`,suggestion:"Add keyboard equivalent (focus) or use a click-based interaction.",location:{input:t,role:"event"}})}}return r}function Kb(e,t){const r=[];if("event-handler"===e.kind){const n=e.roles.get("event");if(n&&"literal"===n.type){const e=(n.value+"").toLowerCase();if(Bb.has(e)){const n=Fb.has(e)?"warning":"info";r.push({code:"HIGH_FREQUENCY_TRIGGER",severity:n,message:`High-frequency event '${e}' may cause performance issues.`,suggestion:Fb.has(e)?`Consider using 'on ${e} throttled:100ms' to limit execution frequency.`:"Consider debouncing or throttling this handler.",location:{input:t,role:"event"}})}}}return r}function Gb(e,t){const r=[];if("command"!==e.kind)return r;const n=Wb(e.action);if(!n)return r;const i=Array.isArray(n.roles)?n.roles:[],a=new Set;for(const n of i)n&&"object"==typeof n&&"role"in n&&(a.add(n.role),n.required&&!e.roles.has(n.role)&&r.push({code:"MISSING_REQUIRED_ROLE",severity:"error",message:`Command '${e.action}' requires '${n.role}' but it was not provided.`,suggestion:n.description,location:{input:t}}));return e.roles.forEach((n,i)=>{a.has(i)||r.push({code:"INVALID_ROLE_FOR_COMMAND",severity:"warning",message:`Role '${i}' is not typically used with '${e.action}' command.`,location:{input:t,role:i}})}),r}function Yb(e){if("event-handler"===e.kind){return e.body??[]}return[]}function Zb(e,t={}){const r=[],n=new Map;for(const t of e)if("event-handler"===t.kind){const e=t.roles.get("event"),r=t.roles.get("source"),i=`${"literal"===e?.type?e.value:"unknown"}:${"selector"===r?.type?r.value:"self"}`;n.has(i)||n.set(i,[]);const a=Yb(t);n.get(i).push({handler:t,commands:a})}return n.forEach((e,t)=>{if(e.length>1){const n=[],i=[];for(const{commands:t}of e)for(const e of t){n.push(e.action);const t=e.roles.get("patient");i.push("selector"===t?.type?t.value:"unknown")}const a=n.includes("toggle"),o=n.includes("show"),s=n.includes("hide");if(a&&(o||s)){i.filter((e,t)=>("toggle"===n[t]||"show"===n[t]||"hide"===n[t])&&i.some((r,n)=>t!==n&&e===r)).length>0&&r.push({code:"CONFLICTING_ACTIONS",severity:"warning",message:`Conflicting actions on '${t}': ${[...new Set(n)].join(", ")} may interfere with each other.`,suggestion:"Consider using a single toggle or conditional logic."})}n.some(e=>["fetch","wait","send"].includes(e))&&e.length>1&&r.push({code:"POTENTIAL_RACE_CONDITION",severity:"info",message:`Multiple handlers on '${t}' include async operations. Consider sequencing.`,suggestion:'Use "then" to chain operations or add loading states.'})}}),r}function Xb(e,t="en",r={}){const n={...Hb,...r},i=[];let a=null;try{a=Xk(e,t)}catch{}if(!a)return{valid:!1,warnings:[{code:"UNREACHABLE_BEHAVIOR",severity:"error",message:"Could not parse input to semantic representation.",location:{input:e}}],node:null};n.accessibility&&i.push(...Ub(a,e)),n.performance&&i.push(...Kb(a,e)),n.schema&&i.push(...Gb(a,e));const o=i.some(e=>"error"===e.severity),s=i.some(e=>"warning"===e.severity);return{valid:n.strict?!o&&!s:!o,warnings:i,node:a}}var Jb=!1,Qb={};var ew=new Set(["me","my","myself","you","your","yourself","it","its","result","event","target","body","detail","window","document"]),tw=new Set(["and","or","not","no"]),rw=new Set(["true","false","null","undefined"]),nw=new Set(["ms","s","seconds","second","milliseconds","millisecond","minutes","minute","hours","hour"]);var iw=class{constructor(){this.tokens=[],this.current=0}parse(e){try{if(this.tokens=function(e){const t=[];let r=0,n=1,i=1;function a(){return 0===t.length||["OPERATOR","COMPARISON","LOGICAL","LPAREN","LBRACKET","LBRACE","COMMA","COLON"].includes(t[t.length-1].type)}function o(t=0){return e[r+t]??""}function s(){const t=e[r];return r++,"\n"===t?(n++,i=1):i++,t}function l(){for(;e.length>r&&/\s/.test(e[r]);)s()}function c(t){let n="";for(;e.length>r&&t(e[r]);)n+=s();return n}function u(t){let n=t;for(s();e.length>r&&e[r]!==t;)"\\"===e[r]&&e.length>r+1?(n+=s(),n+=s()):n+=s();return e.length>r&&(n+=s()),n}function p(){let t="`";for(s();e.length>r&&"`"!==e[r];)"\\"===e[r]&&e.length>r+1?(t+=s(),t+=s()):t+=s();return e.length>r&&(t+=s()),t}function m(){let t="<";for(s();e.length>r&&(t+=s(),!t.endsWith("/>")););return t}function d(e,t,a){return{type:e,value:t,start:a,end:r,line:n,column:i-t.length}}for(;e.length>r&&(l(),e.length>r);){const n=r,i=o();if("'"!==i||"s"!==o(1)||/\w/.test(o(2))){if('"'===i||"'"===i){const e=u(i);t.push(d("STRING",e,n));continue}if("`"===i){const e=p();t.push(d("TEMPLATE_LITERAL",e,n));continue}if("<"===i&&/[a-zA-Z.#\[]/.test(o(1))){const e=m();t.push(d("QUERY_SELECTOR",e,n));continue}if("#"===i&&a()){s();const e=c(e=>/[\w-]/.test(e));t.push(d("ID_SELECTOR","#"+e,n));continue}if("."===i&&/[a-zA-Z_-]/.test(o(1))&&a()){s();const e=c(e=>/[\w-]/.test(e));t.push(d("CLASS_SELECTOR","."+e,n));continue}if("["===i&&a()){const i=o(1);if("@"===i||/[a-zA-Z]/.test(i)){let i="";for(i+=s();e.length>r&&"]"!==e[r];)i+='"'===e[r]||"'"===e[r]?u(e[r]):s();e.length>r&&(i+=s()),t.push(d("ATTRIBUTE_SELECTOR",i,n));continue}}if("["!==i)if("]"!==i){if(/\d/.test(i)){const e=c(e=>/[\d.]/.test(e)),i=r,a=c(e=>/[a-zA-Z]/.test(e));nw.has(a)?t.push(d("TIME_EXPRESSION",e+a,n)):(r=i,t.push(d("NUMBER",e,n)));continue}if("("!==i)if(")"!==i)if("{"!==i)if("}"!==i)if(","!==i)if(":"!==i)if("."!==i)if("+"!==i&&"-"!==i&&"*"!==i&&"/"!==i&&"%"!==i){if("="===i||"!"===i||"<"===i||">"===i){let e=s();"="===o()&&(e+=s()),t.push(d("COMPARISON",e,n));continue}if(/[a-zA-Z_$]/.test(i)){const e=c(e=>/[\w$]/.test(e)),r=e.toLowerCase();ew.has(r)?t.push(d("CONTEXT_VAR",e,n)):tw.has(r)?t.push(d("LOGICAL",e,n)):rw.has(r)?t.push(d("BOOLEAN",e,n)):t.push(d("IDENTIFIER",e,n));continue}s()}else s(),t.push(d("OPERATOR",i,n));else s(),t.push(d("DOT",".",n));else s(),t.push(d("COLON",":",n));else s(),t.push(d("COMMA",",",n));else s(),t.push(d("RBRACE","}",n));else s(),t.push(d("LBRACE","{",n));else s(),t.push(d("RPAREN",")",n));else s(),t.push(d("LPAREN","(",n))}else s(),t.push(d("RBRACKET","]",n));else s(),t.push(d("LBRACKET","[",n))}else s(),s(),t.push(d("POSSESSIVE","'s",n))}return t.push(d("EOF","",r)),t}(e),this.current=0,this.isAtEnd())return{success:!1,error:"Empty expression"};return{success:!0,node:this.parseExpression(),consumed:this.current}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Parse error"}}}peek(){return this.tokens[this.current]??{type:"EOF",value:"",start:0,end:0}}previous(){return this.tokens[this.current-1]??{type:"EOF",value:"",start:0,end:0}}isAtEnd(){return"EOF"===this.peek().type}advance(){return this.isAtEnd()||this.current++,this.previous()}check(e){return this.peek().type===e}checkValue(e){return this.peek().value.toLowerCase()===e.toLowerCase()}match(...e){for(const t of e)if(this.check(t))return this.advance(),!0;return!1}parseExpression(){return this.parseOr()}parseOr(){let e=this.parseAnd();for(;this.checkValue("or");){const t=this.advance().value,r=this.parseAnd();e=this.createBinaryExpression(t,e,r)}return e}parseAnd(){let e=this.parseEquality();for(;this.checkValue("and");){const t=this.advance().value,r=this.parseEquality();e=this.createBinaryExpression(t,e,r)}return e}parseEquality(){let e=this.parseComparison();for(;this.match("COMPARISON")||this.checkValue("is")||this.checkValue("matches")||this.checkValue("contains")||this.checkValue("in");){const t=this.previous().value,r=this.parseComparison();e=this.createBinaryExpression(t,e,r)}return e}parseComparison(){let e=this.parseAddition();for(;this.check("COMPARISON");){const t=this.advance().value,r=this.parseAddition();e=this.createBinaryExpression(t,e,r)}return e}parseAddition(){let e=this.parseMultiplication();for(;"+"===this.peek().value||"-"===this.peek().value;){const t=this.advance().value,r=this.parseMultiplication();e=this.createBinaryExpression(t,e,r)}return e}parseMultiplication(){let e=this.parseUnary();for(;"*"===this.peek().value||"/"===this.peek().value||"%"===this.peek().value;){const t=this.advance().value,r=this.parseUnary();e=this.createBinaryExpression(t,e,r)}return e}parseUnary(){if(this.checkValue("not")||this.checkValue("no")||"-"===this.peek().value){const e=this.advance().value,t=this.parseUnary();return this.createUnaryExpression(e,t)}return this.parsePostfix()}parsePostfix(){let e=this.parsePrimary();for(;;)if(this.match("DOT")){if(!this.check("IDENTIFIER")&&!this.check("CONTEXT_VAR"))break;{const t=this.advance().value;e=this.createPropertyAccess(e,t)}}else if(this.match("POSSESSIVE")){if(!this.check("IDENTIFIER")&&!this.check("CONTEXT_VAR"))break;{const t=this.advance().value;e=this.createPossessiveExpression(e,t)}}else if(this.match("LPAREN")){const t=this.parseArguments();e=this.createCallExpression(e,t)}else{if(!this.match("LBRACKET"))break;{const t=this.parseExpression();if(!this.match("RBRACKET"))throw Error("Expected ] after index");e=this.createPropertyAccess(e,t)}}return e}parsePrimary(){const e=this.peek();if(this.match("NUMBER"))return this.createLiteral(parseFloat(e.value),"number",e);if(this.match("STRING")){const t=e.value.slice(1,-1);return this.createLiteral(t,"string",e)}if(this.match("BOOLEAN")){return this.createLiteral("true"===e.value||"false"!==e.value&&("null"===e.value?null:void 0),{true:"boolean",false:"boolean",null:"null",undefined:"undefined"}[e.value]??"string",e)}if(this.match("TEMPLATE_LITERAL")){return{type:"templateLiteral",value:e.value,start:e.start,end:e.end,line:e.line,column:e.column}}if(this.match("TIME_EXPRESSION"))return this.parseTimeExpression(e);if(this.match("ID_SELECTOR"))return this.createSelector(e.value,"id",e);if(this.match("CLASS_SELECTOR"))return this.createSelector(e.value,"class",e);if(this.match("ATTRIBUTE_SELECTOR"))return this.createSelector(e.value,"attribute",e);if(this.match("QUERY_SELECTOR")){const t=e.value.slice(1,-2);return this.createSelector(t,"query",e)}if(this.match("CONTEXT_VAR"))return this.createContextReference(e.value,e);if(this.match("IDENTIFIER"))return this.createIdentifier(e.value,e);if(this.match("LPAREN")){const e=this.parseExpression();if(!this.match("RPAREN"))throw Error("Expected ) after expression");return e}if(this.match("LBRACKET"))return this.parseArrayLiteral();if(this.match("LBRACE"))return this.parseObjectLiteral();throw Error("Unexpected token: "+e.value)}parseArguments(){const e=[];if(!this.check("RPAREN"))do{e.push(this.parseExpression())}while(this.match("COMMA"));if(!this.match("RPAREN"))throw Error("Expected ) after arguments");return e}parseArrayLiteral(){const e=[],t=this.previous().start;if(!this.check("RBRACKET"))do{e.push(this.parseExpression())}while(this.match("COMMA"));if(!this.match("RBRACKET"))throw Error("Expected ] after array elements");return{type:"arrayLiteral",elements:e,start:t,end:this.previous().end}}parseObjectLiteral(){const e=[],t=this.previous().start;if(!this.check("RBRACE"))do{let t;if(this.check("STRING"))t=this.advance().value.slice(1,-1);else{if(!this.check("IDENTIFIER"))throw Error("Expected property name");t=this.advance().value}if(!this.match("COLON"))throw Error("Expected : after property name");const r=this.parseExpression();e.push({key:t,value:r})}while(this.match("COMMA"));if(!this.match("RBRACE"))throw Error("Expected } after object properties");return{type:"objectLiteral",properties:e.map(e=>({type:"objectProperty",key:e.key,value:e.value})),start:t,end:this.previous().end}}parseTimeExpression(e){const t=e.value.match(/^(\d+(?:\.\d+)?)(ms|s|seconds?|milliseconds?|minutes?|hours?)$/i);if(!t)throw Error("Invalid time expression: "+e.value);return{type:"timeExpression",value:parseFloat(t[1]),unit:t[2].toLowerCase(),raw:e.value,start:e.start,end:e.end,line:e.line,column:e.column}}createLiteral(e,t,r){return{type:"literal",value:e,dataType:t,raw:r.value,start:r.start,end:r.end,line:r.line,column:r.column}}createSelector(e,t,r){return{type:"selector",value:e,selector:e,selectorType:t,start:r.start,end:r.end,line:r.line,column:r.column}}createContextReference(e,t){return{type:"contextReference",contextType:e,name:t.value,start:t.start,end:t.end,line:t.line,column:t.column}}createIdentifier(e,t){return{type:"identifier",name:e,start:t.start,end:t.end,line:t.line,column:t.column}}createPropertyAccess(e,t){return{type:"propertyAccess",object:e,property:"string"==typeof t?t:"identifier"===t.type?t.name:"",start:e.start,end:this.previous().end}}createPossessiveExpression(e,t){return{type:"possessiveExpression",object:e,property:t,start:e.start,end:this.previous().end}}createBinaryExpression(e,t,r){return{type:"binaryExpression",operator:e,left:t,right:r,start:t.start,end:r.end}}createUnaryExpression(e,t){return{type:"unaryExpression",operator:e,operand:t,prefix:!0,start:this.previous().start,end:t.end}}createCallExpression(e,t){return{type:"callExpression",callee:e,arguments:t,start:e.start,end:this.previous().end}}};function aw(e,t){switch(e.type){case"literal":return ow(e);case"selector":return sw(e,t);case"reference":return lw(e);case"property-path":return cw(e,t);case"expression":return uw(e);case"flag":return{type:"literal",value:e.enabled};default:throw Error("Unknown semantic value type: "+e.type)}}function ow(e){const t={type:"literal",value:e.value};return e.dataType?{...t,dataType:e.dataType}:t}function sw(e,t){return t&&e.value.startsWith("*")&&/^[a-zA-Z-]/.test(e.value.slice(1))&&t.push(`Converted '${e.value}' to a CSS selector, but it looks like a CSS property name. CSS properties in commands like 'transition' should be literal strings, not selectors. Consider using expectedTypes: ['literal'] instead of ['literal', 'selector'] in the command schema.`),{type:"selector",value:e.value,selector:e.value,selectorType:e.selectorKind}}function lw(e){return{type:"contextReference",contextType:e.value,name:e.value}}function cw(e,t){return{type:"propertyAccess",object:aw(e.object,t),property:e.property}}function uw(e){const t=(r=e.raw,(new iw).parse(r));var r;if(!t.success||!t.node){return{type:"identifier",name:e.raw}}return t.node}function pw(e,t){return e.roles.get(t)}function mw(e,t,r){const n=pw(e,t);return n?aw(n,r):void 0}function dw(e,t=[],r,n={}){const i={type:"command",name:e,args:t};return r&&Object.keys(r).length>0&&(i.modifiers=r),n.isBlocking&&(i.isBlocking=n.isBlocking),n.implicitTarget&&(i.implicitTarget=n.implicitTarget),n.semanticRoles&&Object.keys(n.semanticRoles).length>0&&(i.semanticRoles=n.semanticRoles),i}var hw={action:"toggle",toAST(e,t){const r=mw(e,"patient"),n=mw(e,"destination"),i=mw(e,"duration"),a=r?[r]:[],o={};return n&&(o.on=n),i&&(o.for=i),dw("toggle",a,o)}},fw={action:"add",toAST(e,t){const r=mw(e,"patient"),n=mw(e,"destination"),i=r?[r]:[],a={};return n&&(a.to=n),dw("add",i,a)}},yw={action:"remove",toAST(e,t){const r=mw(e,"patient"),n=mw(e,"source"),i=r?[r]:[],a={};return n&&(a.from=n),dw("remove",i,a)}},vw={action:"set",toAST(e,t){const r=mw(e,"destination"),n=mw(e,"patient"),i=[],a={};return r&&i.push(r),n&&(a.to=n),dw("set",i,a)}},gw={action:"show",toAST(e,t){const r=mw(e,"destination"),n=mw(e,"patient"),i=mw(e,"duration"),a=[],o={},s=r??n;return s&&a.push(s),i&&(o.with=i),dw("show",a,o)}},kw={action:"hide",toAST(e,t){const r=mw(e,"destination"),n=mw(e,"patient"),i=mw(e,"duration"),a=[],o={},s=r??n;return s&&a.push(s),i&&(o.with=i),dw("hide",a,o)}},bw={action:"increment",toAST(e,t){const r=mw(e,"destination"),n=mw(e,"patient"),i=mw(e,"quantity"),a=[],o={},s=r??n;return s&&a.push(s),i&&(o.by=i),dw("increment",a,o)}},ww={action:"decrement",toAST(e,t){const r=mw(e,"destination"),n=mw(e,"patient"),i=mw(e,"quantity"),a=[],o={},s=r??n;return s&&a.push(s),i&&(o.by=i),dw("decrement",a,o)}},zw={action:"wait",toAST(e,t){const r=mw(e,"duration");return dw("wait",r?[r]:[],void 0,{isBlocking:!0})}},xw={action:"log",toAST(e,t){const r=mw(e,"patient"),n=[];return r&&n.push(r),dw("log",n)}},Ew={action:"put",toAST(e,t){const r=mw(e,"patient"),n=mw(e,"destination"),i=pw(e,"method"),a=r?[r]:[],o={};if(n){o["literal"===i?.type?i.value+"":"into"]=n}return dw("put",a,o)}},Tw={action:"fetch",toAST(e,t){const r=mw(e,"source"),n=mw(e,"method"),i=mw(e,"responseType"),a=mw(e,"patient"),o=r?[r]:[],s={};return n&&(s.with=n),i&&(s.as=i),a&&(s.body=a),dw("fetch",o,s,{isBlocking:!0})}},Sw={action:"append",toAST(e,t){const r=mw(e,"patient"),n=mw(e,"destination"),i=r?[r]:[],a={};return n&&(a.to=n),dw("append",i,a)}},Cw={action:"prepend",toAST(e,t){const r=mw(e,"patient"),n=mw(e,"destination"),i=r?[r]:[],a={};return n&&(a.to=n),dw("prepend",i,a)}},Aw={action:"trigger",toAST(e,t){const r=mw(e,"event"),n=mw(e,"destination"),i=r?[r]:[],a={};return n&&(a.on=n),dw("trigger",i,a)}},Lw={action:"send",toAST(e,t){const r=mw(e,"event"),n=mw(e,"destination"),i=mw(e,"patient"),a=r?[r]:[],o={};return n&&(o.to=n),i&&(o.detail=i),dw("send",a,o)}},jw={action:"go",toAST(e,t){const r=mw(e,"source"),n=mw(e,"destination"),i=[],a={};return r&&i.push(r),n&&(a.to=n),dw("go",i,a)}},Pw={action:"transition",toAST(e,t){const r=mw(e,"patient"),n=mw(e,"goal"),i=mw(e,"duration"),a=mw(e,"destination"),o=r?[r]:[],s={};return n&&(s.to=n),i&&(s.over=i),a&&(s.on=a),dw("transition",o,s)}},Nw={action:"focus",toAST(e,t){const r=mw(e,"destination"),n=mw(e,"patient"),i=[],a=r??n;return a&&i.push(a),dw("focus",i,{})}},Ow={action:"blur",toAST(e,t){const r=mw(e,"destination"),n=mw(e,"patient"),i=[],a=r??n;return a&&i.push(a),dw("blur",i)}},Iw={action:"get",toAST(e,t){const r=mw(e,"source"),n=mw(e,"patient"),i=[],a=r??n;return a&&i.push(a),dw("get",i)}},Rw={action:"take",toAST(e,t){const r=mw(e,"patient"),n=mw(e,"source"),i=r?[r]:[],a={};return n&&(a.from=n),dw("take",i,a)}},Mw={action:"call",toAST(e,t){const r=mw(e,"patient");return dw("call",r?[r]:[])}},Ww={action:"return",toAST(e,t){const r=mw(e,"patient");return dw("return",r?[r]:[])}},qw={action:"halt",toAST:(e,t)=>dw("halt",[])},_w={action:"throw",toAST(e,t){const r=mw(e,"patient");return dw("throw",r?[r]:[])}},$w={action:"settle",toAST(e,t){const r=mw(e,"destination"),n=mw(e,"patient"),i=[],a=r??n;return a&&i.push(a),dw("settle",i,void 0,{isBlocking:!0})}},Dw={action:"swap",toAST(e,t){const r=mw(e,"patient"),n=mw(e,"source"),i=mw(e,"destination"),a=mw(e,"style"),o=[],s={};return r&&o.push(r),n&&o.push(n),i&&(s.on=i),a&&(s.with=a),dw("swap",o,s)}},Vw={action:"morph",toAST(e,t){const r=mw(e,"source"),n=mw(e,"destination"),i=mw(e,"patient"),a=[],o={},s=r??i;return s&&a.push(s),n&&(o.on=n),dw("morph",a,o)}},Hw={action:"clone",toAST(e,t){const r=mw(e,"source"),n=mw(e,"destination"),i=mw(e,"patient"),a=[],o={},s=r??i;return s&&a.push(s),n&&(o.into=n),dw("clone",a,o)}},Bw={action:"make",toAST(e,t){const r=mw(e,"patient");return dw("make",r?[r]:[])}},Fw={action:"measure",toAST(e,t){const r=mw(e,"patient"),n=mw(e,"destination"),i=mw(e,"source"),a=[],o={};r&&a.push(r);const s=n??i;return s&&(o.of=s),dw("measure",a,o)}},Uw={action:"tell",toAST(e,t){const r=mw(e,"destination"),n=mw(e,"patient"),i=[],a=r??n;return a&&i.push(a),dw("tell",i)}},Kw={action:"js",toAST(e,t){const r=mw(e,"patient");return dw("js",r?[r]:[])}},Gw={action:"async",toAST:(e,t)=>dw("async",[])},Yw={action:"if",toAST(e,t){const r=mw(e,"condition");return dw("if",r?[r]:[])}},Zw={action:"unless",toAST(e,t){const r=mw(e,"condition");return dw("unless",r?[r]:[])}},Xw={action:"repeat",toAST(e,t){const r=mw(e,"quantity"),n=mw(e,"patient"),i=[],a=r??n;return a&&i.push(a),dw("repeat",i)}},Jw={action:"for",toAST(e,t){const r=mw(e,"patient"),n=mw(e,"source"),i=r?[r]:[],a={};return n&&(a.in=n),dw("for",i,a)}},Qw={action:"while",toAST(e,t){const r=mw(e,"condition");return dw("while",r?[r]:[])}},ez={action:"continue",toAST:(e,t)=>dw("continue",[])},tz={action:"default",toAST(e,t){const r=mw(e,"patient"),n=mw(e,"source"),i=r?[r]:[],a={};return n&&(a.to=n),dw("default",i,a)}},rz={action:"init",toAST:(e,t)=>dw("init",[])},nz={action:"behavior",toAST(e,t){const r=mw(e,"patient");return dw("behavior",r?[r]:[])}},iz={action:"install",toAST(e,t){const r=mw(e,"patient"),n=mw(e,"destination"),i=r?[r]:[],a={};return n&&(a.on=n),dw("install",i,a)}},az=new Map([["toggle",hw],["add",fw],["remove",yw],["set",vw],["show",gw],["hide",kw],["increment",bw],["decrement",ww],["wait",zw],["log",xw],["put",Ew],["fetch",Tw],["append",Sw],["prepend",Cw],["get",Iw],["take",Rw],["trigger",Aw],["send",Lw],["on",{action:"on",toAST(e,t){const r=mw(e,"event"),n=mw(e,"source"),i=r?[r]:[],a={};return n&&(a.from=n),dw("on",i,a)}}],["go",jw],["transition",Pw],["focus",Nw],["blur",Ow],["call",Mw],["return",Ww],["halt",qw],["throw",_w],["settle",$w],["swap",Dw],["morph",Vw],["clone",Hw],["measure",Fw],["make",Bw],["tell",Uw],["default",tz],["js",Kw],["async",Gw],["if",Yw],["unless",Zw],["repeat",Xw],["for",Jw],["while",Qw],["continue",ez],["init",rz],["behavior",nz],["install",iz]]);function oz(e){return az.get(e)}var sz=class{constructor(e={}){this.warnings=[]}build(e){switch(e.kind){case"command":return this.buildCommand(e);case"event-handler":return this.buildEventHandler(e);case"conditional":return this.buildConditional(e);case"compound":return this.buildCompound(e);case"loop":return this.buildLoop(e);default:throw Error("Unknown semantic node kind: "+e.kind)}}buildCommand(e){const t=oz(e.action);let r;if(t){const n=t.toAST(e,this);if("ast"in n&&"warnings"in n){const e=n;this.warnings.push(...e.warnings),r=e.ast}else r=n}else r=this.buildGenericCommand(e);if(e.roles&&e.roles.size>0){const t={};for(const[r,n]of e.roles)t[r]=aw(n);Object.keys(t).length>0&&(r.semanticRoles=t)}return r}buildGenericCommand(e){const t=[],r={},n=["patient","source","quantity"],i=["destination","duration","method","style"];for(const r of n){const n=e.roles.get(r);n&&t.push(aw(n))}for(const t of i){const n=e.roles.get(t);if(n){r[this.roleToModifierKey(t)]=aw(n)}}const a={type:"command",name:e.action,args:t};return Object.keys(r).length>0?{...a,modifiers:r}:a}roleToModifierKey(e){return{destination:"on",duration:"for",source:"from",condition:"if",method:"via",style:"with"}[e]??e}buildEventHandler(e){const t=e.roles.get("event");let r,n;if("literal"===t?.type){const e=t.value+"";e.includes("|")||e.includes(" or ")?(n=e.split(/\s+or\s+|\|/).map(e=>e.trim()),r=n[0]):r=e}else r="reference"===t?.type?t.value:"click";const i=e.body.map(e=>this.build(e)),a=e.roles.get("source");let o,s;"selector"===a?.type?(o=a.value,s=a.value):"reference"===a?.type?s=a.value:"literal"===a?.type&&(s=a.value+"");const l=e.roles.get("condition"),c=l?aw(l):void 0,u=e.roles.get("destination"),p=u?aw(u):void 0,m=e.eventModifiers;let d=o;if(m?.from){const e=m.from;"selector"!==e.type||o||(d=e.value)}const h=e.parameterNames?[...e.parameterNames]:void 0;return{type:"eventHandler",event:r,commands:i,...n&&n.length>1?{events:n}:{},...d?{selector:d}:{},...s?{target:s}:{},...c?{condition:c}:{},...p?{watchTarget:p}:{},...h&&h.length>0?{args:h,params:h}:{}}}buildConditional(e){const t=e.roles.get("condition");if(!t)throw Error("Conditional node missing condition");const r=aw(t),n=e.thenBranch.map(e=>this.build(e)),i=e.elseBranch?.map(e=>this.build(e)),a=[r,{type:"block",commands:n}];return i&&i.length>0&&a.push({type:"block",commands:i}),{type:"command",name:"if",args:a}}buildCompound(e){const t=e.statements.map(e=>this.build(e));if(1===t.length)return t[0];if(0===t.length)return{type:"block",commands:[]};return{type:"CommandSequence",commands:t}}buildLoop(e){const t=e.body.map(e=>this.build(e)),r=[{type:"identifier",name:e.loopVariant}];switch(e.loopVariant){case"times":{const t=e.roles.get("quantity");t&&r.push(aw(t));break}case"for":{e.loopVariable&&r.push({type:"string",value:e.loopVariable});const t=e.roles.get("source");t&&r.push(aw(t));break}case"while":case"until":{const t=e.roles.get("condition");t&&r.push(aw(t));break}}return r.push({type:"block",commands:t}),{type:"command",name:"repeat",args:r}}buildBlock(e){return{type:"block",commands:e.map(e=>this.build(e))}}};Mc();var lz={en:async()=>{const{englishTokenizer:e}=await Promise.resolve().then(()=>(id(),ed)),{englishProfile:t}=await Promise.resolve().then(()=>(Gm(),Um)),{buildEnglishPatterns:r}=await Promise.resolve().then(()=>(xh(),fh));return{tokenizer:e,profile:t,buildPatterns:r}},es:async()=>{const{spanishTokenizer:e}=await Promise.resolve().then(()=>($h(),qh)),{spanishProfile:t}=await Promise.resolve().then(()=>(Nh(),Ch));return{tokenizer:e,profile:t}},ja:async()=>{const{japaneseTokenizer:e}=await Promise.resolve().then(()=>(ky(),fy)),{japaneseProfile:t}=await Promise.resolve().then(()=>(hy(),cy));return{tokenizer:e,profile:t}},ar:async()=>{const{arabicTokenizer:e}=await Promise.resolve().then(()=>(hm(),pm)),{arabicProfile:t}=await Promise.resolve().then(()=>(Yc(),Fc));return{tokenizer:e,profile:t}},ko:async()=>{const{koreanTokenizer:e}=await Promise.resolve().then(()=>(Py(),Ly)),{koreanProfile:t}=await Promise.resolve().then(()=>(Ay(),xy));return{tokenizer:e,profile:t}},zh:async()=>{const{chineseTokenizer:e}=await Promise.resolve().then(()=>(yk(),fk)),{chineseProfile:t}=await Promise.resolve().then(()=>(hk(),ck));return{tokenizer:e,profile:t}},tr:async()=>{const{turkishTokenizer:e}=await Promise.resolve().then(()=>(Hg(),$g)),{turkishProfile:t}=await Promise.resolve().then(()=>(_g(),Og));return{tokenizer:e,profile:t}},pt:async()=>{const{portugueseTokenizer:e}=await Promise.resolve().then(()=>(kv(),vv)),{portugueseProfile:t}=await Promise.resolve().then(()=>(av(),Jy));return{tokenizer:e,profile:t}},fr:async()=>{const{frenchTokenizer:e}=await Promise.resolve().then(()=>(mf(),af)),{frenchProfile:t}=await Promise.resolve().then(()=>(Gh(),Dh));return{tokenizer:e,profile:t}},de:async()=>{const{germanTokenizer:e}=await Promise.resolve().then(()=>(Fm(),Hm)),{germanProfile:t}=await Promise.resolve().then(()=>(Om(),Cm));return{tokenizer:e,profile:t}},id:async()=>{const{indonesianTokenizer:e}=await Promise.resolve().then(()=>($f(),Of)),{indonesianProfile:t}=await Promise.resolve().then(()=>(Nf(),Cf));return{tokenizer:e,profile:t}},qu:async()=>{const{quechuaTokenizer:e}=await Promise.resolve().then(()=>(Iv(),Pv)),{quechuaProfile:t}=await Promise.resolve().then(()=>(xv(),bv));return{tokenizer:e,profile:t}},sw:async()=>{const{swahiliTokenizer:e}=await Promise.resolve().then(()=>(tg(),Qv)),{swahiliProfile:t}=await Promise.resolve().then(()=>(Jv(),Kv));return{tokenizer:e,profile:t}},bn:async()=>{const{bengaliTokenizer:e}=await Promise.resolve().then(()=>(Sm(),Em)),{bengaliProfile:t}=await Promise.resolve().then(()=>(xm(),gm));return{tokenizer:e,profile:t}},hi:async()=>{const{hindiTokenizer:e}=await Promise.resolve().then(()=>(Sf(),Ef)),{hindiProfile:t}=await Promise.resolve().then(()=>(xf(),gf));return{tokenizer:e,profile:t}},it:async()=>{const{italianTokenizer:e}=await Promise.resolve().then(()=>(ny(),Qf)),{italianProfile:t}=await Promise.resolve().then(()=>(Kf(),Bf));return{tokenizer:e,profile:t}},ms:async()=>{const{malayTokenizer:e}=await Promise.resolve().then(()=>(_y(),Wy)),{malayProfile:t}=await Promise.resolve().then(()=>(My(),Ny));return{tokenizer:e,profile:t}},pl:async()=>{const{polishTokenizer:e}=await Promise.resolve().then(()=>(Xy(),Yy)),{polishProfile:t}=await Promise.resolve().then(()=>(Ky(),$y));return{tokenizer:e,profile:t}},ru:async()=>{const{russianTokenizer:e}=await Promise.resolve().then(()=>(Uv(),Bv)),{russianProfile:t}=await Promise.resolve().then(()=>(Hv(),qv));return{tokenizer:e,profile:t}},th:async()=>{const{thaiTokenizer:e}=await Promise.resolve().then(()=>(cg(),sg)),{thaiProfile:t}=await Promise.resolve().then(()=>(og(),rg));return{tokenizer:e,profile:t}},tl:async()=>{const{tagalogTokenizer:e}=await Promise.resolve().then(()=>(Tg(),zg)),{tagalogProfile:t}=await Promise.resolve().then(()=>(yg(),ug));return{tokenizer:e,profile:t}},uk:async()=>{const{ukrainianTokenizer:e}=await Promise.resolve().then(()=>(ek(),Jg)),{ukrainianProfile:t}=await Promise.resolve().then(()=>(Xg(),Ug));return{tokenizer:e,profile:t}},vi:async()=>{const{vietnameseTokenizer:e}=await Promise.resolve().then(()=>(lk(),ok)),{vietnameseProfile:t}=await Promise.resolve().then(()=>(ak(),tk));return{tokenizer:e,profile:t}}},cz=Object.keys(lz);async function uz(e,t={}){const{url:r,module:n,skipIfRegistered:i=!0}=t;if(i&&Ac(e))return{code:e,loaded:!1};try{let t;if(n)t=n;else if(r)t=await async function(e,t){try{const e=await fetch(t);if(!e.ok)throw Error(`Failed to fetch ${t}: ${e.status} ${e.statusText}`);const r=await e.text(),n=new Blob([r],{type:"application/javascript"}),i=URL.createObjectURL(n);try{const e=await import(i);if(!e.tokenizer||!e.profile)throw Error("Invalid language module: missing tokenizer or profile");return e}finally{URL.revokeObjectURL(i)}}catch(r){throw Error(`Failed to load language '${e}' from ${t}: ${r instanceof Error?r.message:r+""}`)}}(e,r);else{const r=lz[e];if(!r)throw Error(`Unknown language: ${e}. Supported: ${cz.join(", ")}`);t=await r()}return function(e,t){zc(e,t.tokenizer,t.profile),t.patterns?xc(e,t.patterns):t.buildPatterns&&xc(e,t.buildPatterns())}(e,t),{code:e,loaded:!0}}catch(t){return{code:e,loaded:!1,error:t instanceof Error?t.message:t+""}}}function pz(e,t){try{const r=Lk(e,t),n=jc(t);if(0===n.length)return{confidence:0,parseSuccess:!1,error:"No patterns available for language: "+t};const i=[...n].sort((e,t)=>t.priority-e.priority),a=i.filter(e=>"on"===e.command),o=Mk.matchBest(r,a);if(o)return{confidence:o.confidence,parseSuccess:!0,patternId:o.pattern.id,action:o.pattern.command,tokensConsumed:o.consumedTokens};r.reset(r.mark());const s=i.filter(e=>"on"!==e.command),l=Mk.matchBest(r,s);return l?{confidence:l.confidence,parseSuccess:!0,patternId:l.pattern.id,action:l.pattern.command,tokensConsumed:l.consumedTokens}:{confidence:0,parseSuccess:!1,error:"Could not match any patterns for: "+e}}catch(e){return{confidence:0,parseSuccess:!1,error:e instanceof Error?e.message:e+""}}}function mz(e,t){const r=pz(e,t);if(!r.parseSuccess)return{node:null,confidence:0,error:r.error};try{const{parse:n}=(pb(),gc(Zk));return{node:n(e,t),confidence:r.confidence,error:void 0}}catch(e){return{node:null,confidence:r.confidence,error:e instanceof Error?e.message:e+""}}}function dz(e){const t={};return"number"==typeof e.start&&(t.start=e.start),"number"==typeof e.end&&(t.end=e.end),"number"==typeof e.line&&(t.line=e.line),"number"==typeof e.column&&(t.column=e.column),t}function hz(e){if(!e)return{type:"literal",value:null};switch(e.type){case"eventHandler":return function(e){const t=e.event??"click",r=e.commands??e.body??[],n=r.map(e=>hz(e)),i=function(e){const t=e.eventModifiers;return{...e.once||t?.once?{once:!0}:{},...e.debounce||t?.debounce?{debounce:e.debounce??t?.debounce}:{},...e.throttle||t?.throttle?{throttle:e.throttle??t?.throttle}:{},...e.prevent||t?.prevent?{prevent:!0}:{},...e.stop||t?.stop?{stop:!0}:{},...e.capture||t?.capture?{capture:!0}:{},...e.passive||t?.passive?{passive:!0}:{},...e.from||t?.from?{from:e.from??t?.from}:e.selector?{from:e.selector}:{}}}(e);return{type:"event",event:t,modifiers:i,body:n,...dz(e)}}(e);case"command":return function(e){const t=e.name;if("if"===t||"unless"===t)return function(e){const t=e.args??[];let r=t[0]?hz(t[0]):{type:"literal",value:!0};const n=fz(t[1]),i=t[2]?fz(t[2]):void 0;"unless"===e.name&&(r={type:"unary",operator:"not",operand:r});return{type:"if",condition:r,thenBranch:n,...i?{elseBranch:i}:{},...dz(e)}}(e);if("repeat"===t)return function(e){const t=e.args??[];if(0===t.length)return{type:"repeat",body:[],...dz(e)};const r=t[0],n=t[t.length-1];switch(r?.name??r?.value??"forever"){case"times":return{type:"repeat",count:t[1]?hz(t[1]):void 0,body:fz(n),...dz(e)};case"for":return{type:"foreach",itemName:t[1]?.value??"item",collection:t[2]?hz(t[2]):{type:"identifier",value:"[]"},body:fz(n),...dz(e)};case"while":return{type:"while",condition:t[1]?hz(t[1]):{type:"literal",value:!0},body:fz(n),...dz(e)};case"until":return{type:"while",condition:{type:"unary",operator:"not",operand:t[1]?hz(t[1]):{type:"literal",value:!1}},body:fz(n),...dz(e)};default:return{type:"repeat",body:fz(n),...dz(e)}}}(e);const r=(e.args??[]).map(e=>hz(e)),n=e.target?hz(e.target):void 0,i=e.modifiers?function(e){const t={};for(const[r,n]of Object.entries(e))t[r]=hz(n);return t}(e.modifiers):void 0,a=e.semanticRoles,o=a?function(e){const t={};for(const[r,n]of Object.entries(e))t[r]=hz(n);return t}(a):void 0;return{type:"command",name:t,args:r,...n?{target:n}:{},...i&&Object.keys(i).length>0?{modifiers:i}:{},...o&&Object.keys(o).length>0?{roles:o}:{},...dz(e)}}(e);case"CommandSequence":return function(e){const t=e.commands??[];return 1===t.length?hz(t[0]):{type:"event",event:"click",body:t.map(e=>hz(e)),...dz(e)}}(e);case"block":return function(e){const t=e.commands??[];return 1===t.length?hz(t[0]):{type:"event",event:"click",body:t.map(e=>hz(e)),...dz(e)}}(e);case"if":return function(e){const t=e.condition?hz(e.condition):{type:"literal",value:!0},r=(e.thenBranch??[]).map(e=>hz(e)),n=e.elseBranch?e.elseBranch.map(e=>hz(e)):void 0;return{type:"if",condition:t,thenBranch:r,...n?{elseBranch:n}:{},...dz(e)}}(e);case"literal":case"string":case"timeExpression":return{type:"literal",value:e.value,...dz(e)};case"selector":case"htmlSelector":return{type:"selector",value:e.value??e.selector??"",...dz(e)};case"contextReference":return{type:"identifier",value:e.name??e.contextType??"",...dz(e)};case"identifier":return{type:"identifier",value:e.name??e.value??"",name:e.name??"",...dz(e)};case"propertyAccess":return function(e){const t=e.object?hz(e.object):{type:"identifier",value:"me"};return{type:"possessive",object:t,property:e.property??"",...dz(e)}}(e);case"possessiveExpression":return function(e){const t=e.object?hz(e.object):{type:"identifier",value:"me"},r="string"==typeof e.property?e.property:e.property?.name??e.property?.value??"";return{type:"possessive",object:t,property:r,...dz(e)}}(e);case"memberExpression":return function(e){const t=e.object?hz(e.object):{type:"identifier",value:"me"},r="string"==typeof e.property?e.property:e.property?hz(e.property):{type:"literal",value:""};return{type:"member",object:t,property:r,computed:e.computed??!1,...dz(e)}}(e);case"binaryExpression":return function(e){return{type:"binary",operator:e.operator??"",left:hz(e.left),right:hz(e.right),...dz(e)}}(e);case"callExpression":return function(e){const t="string"==typeof e.callee?{type:"identifier",value:e.callee,name:e.callee}:hz(e.callee),r=(e.arguments??e.args??[]).map(e=>hz(e));return{type:"call",callee:t,args:r,...dz(e)}}(e);case"unaryExpression":return{type:"unary",operator:e.operator,operand:hz(e.operand),...dz(e)};case"templateLiteral":return{type:"literal",value:e.raw??"",...dz(e)};case"variable":return{type:"variable",name:e.name??"",scope:e.scope??"local",...dz(e)};case"positional":return{type:"positional",position:e.position,...e.target?{target:hz(e.target)}:{},...dz(e)};case"positionalExpression":return{type:"positional",position:e.operator,...e.argument?{target:hz(e.argument)}:{},...dz(e)};default:return{type:"literal",value:e.value??null,...dz(e)}}}function fz(e){return e?"block"===e.type?(e.commands??[]).map(e=>hz(e)):[hz(e)]:[]}Pk(),Mc(),$k();var yz=Object.freeze({__proto__:null,ASTBuilder:sz,get CssSelectorExtractor(){return Zc},DEFAULT_CONFIDENCE_THRESHOLD:Ib,get EventModifierExtractor(){return Jc},HIGH_CONFIDENCE_THRESHOLD:.8,IdentifierExtractor:Rl,LAZY_LOAD_LANGUAGES:cz,NumberExtractor:Il,get OperatorExtractor(){return Kc},get PatternMatcher(){return Rk},get PunctuationExtractor(){return Gc},get SchemaErrorCodes(){return td},SemanticAnalyzerImpl:Nb,SemanticCache:jb,get SemanticParserImpl(){return Kk},get SemanticRendererImpl(){return qk},StringLiteralExtractor:Ol,TokenStreamImpl:Yl,get UrlExtractor(){return Qc},VERSION:"0.1.0",get VariableRefExtractor(){return ru},get addSchema(){return kd},analyze:Xb,analyzeAll:function(e,t="en",r={}){const n=[],i=[];for(const a of e){const e=Xb(a,t,r);n.push(...e.warnings),e.node&&i.push(e.node)}n.push(...Zb(i,r));const a=n.some(e=>"error"===e.severity),o={...Hb,...r},s=n.some(e=>"warning"===e.severity);return{valid:o.strict?!a&&!s:!a,warnings:n,node:i[0]??null}},analyzeMultiple:Zb,get appendSchema(){return Pd},get arabicProfile(){return Hc},get arabicTokenizer(){return cm},buildAST:function(e){const t=new sz;return{ast:t.build(e),warnings:t.warnings}},calculateTranslationConfidence:pz,canLoadLanguage:function(e){return e in lz},canParse:Jk,checkAccessibility:Ub,checkPerformance:Kb,checkSchema:Gb,get chineseProfile(){return sk},get chineseTokenizer(){return dk},get commandSchemas(){return Od},convertExpression:uw,convertLiteral:ow,convertPropertyPath:cw,convertReference:lw,convertSelector:sw,convertValue:aw,createCommandNode:zk,createCompoundNode:Ek,createConditionalNode:function(e,t,r,n){const i=new Map;i.set("condition",e);const a={kind:"conditional",action:"if",roles:i,thenBranch:t};return void 0!==r&&(a.elseBranch=r),void 0!==n&&(a.metadata=n),a},createEventHandler:xk,createLiteral:gk,createLoopNode:function(e,t,r,n,i){const a={kind:"loop",action:e,loopVariant:t,roles:new Map(Object.entries(r)),body:n};return i?.loopVariable&&(a.loopVariable=i.loopVariable),i?.indexVariable&&(a.indexVariable=i.indexVariable),i?.metadata&&(a.metadata=i.metadata),a},createPropertyPath:wk,createReference:bk,createSelector:vk,createSemanticAnalyzer:Ob,createSemanticCache:function(e){return new jb(e)},createTokenizerContext:Wl,get decrementSchema(){return jd},devModeAnalyze:function(e,t,r){if(!Jb)return;if(!r)return;const n=Xb(e,t,Qb);for(const e of n.warnings){}},disableDevMode:function(){Jb=!1},enableDevMode:function(e={}){Jb=!0,Qb=e},get englishProfile(){return Bm},get englishTokenizer(){return Jm},get eventNameTranslations(){return Tk},get fetchSchema(){return Ad},formatValidationResults:dd,get frenchProfile(){return _h},fromExplicit:Cb,fromSemanticAST:hz,generateAllPatterns:function(e,t=Bd){const r=[],n=e??Ud();for(const e of n){const n=Zd(e,t);r.push(...n)}return r},generatePattern:Kd,generatePatternVariants:Yd,generatePatternsForCommand:function(e,t,r=Bd){const n=[],i=t??Ud();for(const t of i){if(!t.keywords[e.action])continue;const i=Yd(e,t,r);n.push(...i)}return n},generatePatternsForLanguage:Zd,generateSimplePattern:Gd,get germanProfile(){return Tm},getAllPatterns:function(){return null===xb&&(xb=wb()),xb},getAllTranslations:function(e,t,r=["en","ja","ar","es","ko","zh","tr","pt","fr","de","id","qu","sw"]){const n={},i=Ab(e,t);for(const e of r)n[e]=Dk(i,e);return n.explicit=Vk(i),n},getCommandMapper:oz,getCommandType:Qk,getDefaultExtractors:function(){return[new Ol,new Il,new Kc,new Gc,new Rl]},getDefinedSchemas:Md,getDevModeConfig:function(){return{...Qb}},getEventHandlerPatternsForLanguage:fb,getGeneratorLanguages:function(){return Object.keys(Rb)},getGeneratorSummary:function(){const e=Cc(),t=Md().map(e=>e.action);let r=0;for(const t of e){const e=Sc(t);if(e)for(const t of Md())e.keywords[t.action]&&(r+=2)}return{languages:e,commands:t,totalPatterns:r}},getHyperscriptExtractors:im,getLoadedLanguages:function(){return cz.filter(Ac)},getPatternById:function(e){return Tb.find(t=>t.id===e)},getPatternStats:function(){const e={},t={};for(const r of Tb)e[r.language]=(e[r.language]||0)+1,t[r.command]=(t[r.command]||0)+1;return{totalPatterns:Tb.length,byLanguage:e,byCommand:t}},getPatternsForLanguage:Sb,getPatternsForLanguageAndCommand:function(e,t){return Sb(e).filter(e=>e.command===t).sort((e,t)=>t.priority-e.priority)},getProfile:function(e){return Rb[e]},getPutPatternsForLanguage:hb,getRegisteredLanguages:Cc,getRegisteredMappers:function(){return new Map(az)},getSchema:Rd,getSchemasByCategory:function(e){return Object.values(Od).filter(t=>t.category===e)},getSupportedCommands:function(){const e=new Set(Tb.map(e=>e.command));return Array.from(e)},getSupportedLanguages:function(){return["en","ja","ar","es","ko","zh","tr","pt","fr","de","id","qu","sw"]},getSupportedPatternLanguages:function(){const e=new Set(Tb.map(e=>e.language));return Array.from(e)},getSupportedTokenizerLanguages:jk,getTogglePatternsForLanguage:db,getTokenizer:Ak,getUnloadedLanguages:function(){return cz.filter(e=>!Ac(e))},getValidationStats:hd,getValidatorSchema:Wb,get hideSchema(){return Ed},get incrementSchema(){return Ld},get indonesianProfile(){return Tf},isContextAwareExtractor:Ml,isDevModeEnabled:function(){return Jb},isExplicitSyntax:Hl,isGeneratorLanguageSupported:function(e){return e in Rb},isLanguageSupported:function(e){return Ac(e)},isUnifiedProfile:function(e){return!(!e||"object"!=typeof e)&&("string"==typeof e.code&&"string"==typeof e.name&&"string"==typeof e.wordOrder&&"string"==typeof e.markingStrategy&&"string"==typeof e.morphology&&"object"==typeof e.keywords&&Array.isArray(e.canonicalOrder))},get japaneseProfile(){return sy},get japaneseTokenizer(){return dy},get koreanProfile(){return wy},get koreanTokenizer(){return Cy},languageProfiles:Rb,loadLanguage:uz,loadLanguages:async function(e,t={}){return Promise.all(e.map(e=>uz(e,t)))},markingStrategyToAdpositionType:Db,matchBest:function(e,t){return Mk.matchBest(e,t)},matchPattern:function(e,t){return Mk.matchPattern(e,t)},normalizeEventName:function(e,t){const r=Tk[t];return r&&r[e]?r[e]:e.toLowerCase()},get onSchema(){return Td},parse:Xk,parseAny:Ab,parseExplicit:Fk,parseSemantic:function(e,t){return mz(e,t)},parseWithConfidence:mz,get patternMatcher(){return Mk},get portugueseProfile(){return Zy},get prependSchema(){return Nd},get putSchema(){return wd},get quechuaProfile(){return gv},registerCommandMapper:function(e){az.set(e.action,e)},registerSchema:function(e,t){Mb.set(e,t)},registerTokenizer:function(e){!function(e){sc.set(e.language,e)}(e)},get removeSchema(){return bd},render:Dk,renderExplicit:Vk,rolesToCommandArgs:function(e,t){const r=[],n={};for(const[i,a]of e)switch(i){case"patient":case"event":r.push(a);break;case"destination":"put"===t?n.into=a:n.on=a;break;case"source":n.from=a;break;case"quantity":n.by=a;break;case"duration":n.over=a;break;case"method":n.as=a;break;case"style":n.with=a;break;case"condition":n.if=a;break;case"agent":n.agent=a;break;default:n[i]=a}return{args:r,modifiers:n}},roundTrip:function(e,t,r){const n=Ab(e,t),i=r??t,a=Hl(e)?Vk(n):Dk(n,i);if(void 0!==r)return a;const o=e.trim().toLowerCase(),s=a.trim().toLowerCase();return{original:e,semantic:n,rendered:a,matches:o===s}},schemaRegistry:Mb,semanticCache:Pb,get semanticParser(){return Gk},get semanticRenderer(){return _k},get setSchema(){return zd},shouldUseSemanticResult:function(e,t=.5){return e.confidence>=t&&void 0!==e.command},get showSchema(){return xd},get spanishProfile(){return Th},get spanishTokenizer(){return Mh},get swahiliProfile(){return Fv},toExplicit:function(e,t){return Hl(e)?e:Vk(Xk(e,t))},toGrammaticalMarker:Vb,toI18nProfile:function(e){const t=[];for(const[r,n]of Object.entries(e.roleMarkers))n&&t.push(Vb(r,n,e.markingStrategy));return{code:e.code,name:e.nativeName,wordOrder:e.wordOrder,adpositionType:Db(e.markingStrategy),morphology:e.morphology,direction:e.direction,markers:t,canonicalOrder:e.canonicalOrder}},get toggleSchema(){return gd},tokenize:Lk,translate:function(e,t,r){return Hl(e)?Cb(e,r):Dk(Xk(e,t),r)},get triggerSchema(){return Sd},tryGetProfile:Sc,get turkishProfile(){return Pg},get turkishTokenizer(){return qg},validateAllSchemas:md,validateAndAdjustConfidence:function(e){const t=$b(e);return{...e,confidence:Math.max(0,Math.min(1,e.confidence+t.confidenceAdjustment)),validation:t}},validateCommandSchema:pd,validateLanguageKeywords:function(e,t=Md()){const r=[],n=[];for(const i of t)e.keywords[i.action]?n.push(i.action):r.push(i.action);return{missing:r,available:n}},validateSemanticResult:$b,validateTranslation:function(e,t,r,n){try{const i=Ab(e,r),a=Ab(t,n);if(i.action!==a.action)return!1;for(const[e,t]of i.roles){const r=a.roles.get(e);if(!r)return!1;if(!Lb(t,r))return!1}return!0}catch{return!1}},get waitSchema(){return Cd},withCache:function(e,t=Pb){return(r,n)=>{const i=t.get(r,n);if(i)return i;const a=e(r,n);return t.set(r,n,a),a}}});let vz=null;function gz(){return vz||(vz=Ob()),vz}function kz(e){if(e&&"object"==typeof e.locals&&e.locals instanceof Map)return e;const t={me:e?.me||null,you:e?.you||null,it:e?.it||e?.result,result:e?.result,locals:new Map,globals:new Map,halted:!1,returned:!1,broke:!1,continued:!1,async:!1};if(!e)return t;if(e.locals&&"object"==typeof e.locals)for(const[r,n]of Object.entries(e.locals))t.locals.set(r,n);if(e.globals&&"object"==typeof e.globals)if(e.globals instanceof Map)for(const[r,n]of e.globals)t.globals.set(r,n);else for(const[r,n]of Object.entries(e.globals))t.globals.set(r,n);const r=new Set(["me","you","it","result","locals","globals","language"]);for(const[n,i]of Object.entries(e))r.has(n)||void 0===i||t.locals.set(n,i);return t}async function bz(e,t){if(!e||""===e.trim())throw Error("Cannot evaluate empty script");try{const r=kz(t),n=t?.language||"en";if(function(e){const t=e.trim().toLowerCase();if([/^set\s+.+\s+to\s+.+/,/^put\s+.+\s+(into|before|after)\s+.+/,/^add\s+.+(\s+to\s+.+)?/,/^remove\s+.+(\s+from\s+.+)?/,/^show\s+.+/,/^hide\s+.+/,/^toggle\s+.+/,/^log\s+.*/,/^wait\s+.+/,/^call\s+.+/,/^send\s+.+/,/^make\s+.+/,/^increment\s+.+/,/^decrement\s+.+/,/^fetch\s+.+/,/^throw\s+.+/,/^return\s+.+/,/^break/,/^continue/,/^halt/,/^go\s+.+/,/^if\s+.+/,/^repeat\s+.+/,/^on\s+.+/,/^render\s+.+/].some(e=>e.test(t)))return!0;const r=t.split(/\s/)[0];if(r&&j.has(r))return!0;return!1}(e))return await async function(e,t,r="en"){const n=X(e),i=new ri(n,{semanticAnalyzer:gz(),language:r,semanticConfidenceThreshold:Ib}),a=i.parse();if(!a.success||!a.node)throw Error("Parse error: "+(a.error?.message||"Unknown parse error"));const o=new El,s=await o.execute(a.node,t);return s}(e,r,n);return await nn(e,r)}catch(e){if(e instanceof Error)throw Error("HyperScript evaluation error: "+e.message);throw e}}async function wz(e,t){if(!e||""===e.trim())throw Error("Cannot evaluate empty expression");try{const r=kz(t);return await nn(e,r)}catch(e){if(e instanceof Error)throw Error("HyperScript evaluation error: "+e.message);throw e}}async function zz(e,t){if(function(e){const t=e.toLowerCase();return["fetch","wait","settle","async","promise"].some(e=>t.includes(e))}(e))return wz(e,t);try{return bz(e,t)}catch(r){if(r instanceof Error&&r.message.includes("Async expressions not yet supported"))return wz(e,t);throw r}}function xz(e){const{target:t,strategy:r="morph",useViewTransition:n=!1,fetchOptions:i={},transformUrl:a,onBeforeFetch:o,onAfterSwap:s,onError:l}=e,c=async e=>{const c=(()=>{if("string"==typeof t){const e=document.querySelector(t);return ia(e)?e:null}return ia(t)?t:null})();if(!c)return;let u=window.location.href;a&&(u=a(u));try{o&&await o(u),c.classList.add("hx-swapping");const e=await fetch(u,{method:"GET",headers:{Accept:"text/html","HX-Request":"true","HX-History-Restore-Request":"true"},...i});if(!e.ok)throw Error(`HTTP ${e.status}: ${e.statusText}`);const a=await e.text(),l=()=>{os(c,a,r)};n&&Ro()?await $o(l):l(),c.classList.remove("hx-swapping"),s&&await s(u,a),vs(window,"historyswap",{url:u,strategy:r,target:t})}catch(e){c.classList.remove("hx-swapping"),l&&l(e,u)}};return window.addEventListener("popstate",c),{destroy:()=>{window.removeEventListener("popstate",c)},config:e}}const Ez={name:"HistorySwap",init:(e,t={})=>xz({target:t.target||e,strategy:t.strategy||"morph",useViewTransition:!!t.useViewTransition}),destroy(e){e.destroy()}};function Tz(e){return!function(e){try{return new URL(e,window.location.origin).origin!==window.location.origin}catch{return!1}}(e.href)&&((!e.target||"_self"===e.target)&&(!e.hasAttribute("download")&&(!e.hasAttribute("data-no-boost")&&!e.hasAttribute("hx-boost-off")&&("javascript:"!==e.protocol&&"mailto:"!==e.protocol))))}function Sz(e){const{container:t,target:r,linkSelector:n="a[href]",formSelector:i="form",boostForms:a=!1,strategy:o="morph",pushUrl:s=!0,useViewTransition:l=!1,fetchOptions:c={},onBeforeFetch:u,onAfterSwap:p,onError:m}=e,d=async(e,n="GET",i=null)=>{const a=(()=>{if(!r)return document.body;if("string"==typeof r){const e=document.querySelector(r);return ia(e)?e:null}return ia(r)?r:null})();if(a)try{if(u){if(!1===await u(e,n))return}a.classList.add("hx-swapping"),t.classList.add("hx-boosting");const m={method:n,headers:{Accept:"text/html","HX-Request":"true","HX-Boosted":"true"},...c};i&&"GET"!==n&&(m.body=i);const d=await fetch(e,m);if(!d.ok)throw Error(`HTTP ${d.status}: ${d.statusText}`);const h=await d.text(),f=()=>{os(a,h,o)};l&&Ro()?await $o(f):f(),a.classList.remove("hx-swapping"),t.classList.remove("hx-boosting"),s&&"GET"===n&&window.history.pushState(null,"",e),p&&await p(e,h),vs(window,"boosted",{url:e,method:n,strategy:o,target:r})}catch(r){a.classList.remove("hx-swapping"),t.classList.remove("hx-boosting"),m?m(r,e):window.location.href=e}},h=async e=>{const t=e.target.closest(n);t&&function(e){return!(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)&&0===e.button}(e)&&Tz(t)&&(e.preventDefault(),e.stopPropagation(),await d(t.href))},f=async e=>{if(!a)return;const t=e.target.closest(i);if(!t)return;if(t.hasAttribute("data-no-boost")||t.hasAttribute("hx-boost-off"))return;if(t.target&&"_self"!==t.target)return;e.preventDefault(),e.stopPropagation();const r=(t.method||"GET").toUpperCase(),n=new FormData(t);let o,s=null;if("GET"===r){const e=new URLSearchParams;n.forEach((t,r)=>{e.append(r,t+"")}),o=`${t.action||window.location.pathname}?${""+e}`}else o=t.action||window.location.pathname,s=n;await d(o,r,s)};return t.addEventListener("click",h),a&&t.addEventListener("submit",f),{destroy:()=>{t.removeEventListener("click",h),t.removeEventListener("submit",f)},config:e,boost:d}}const Cz={name:"Boosted",init:(e,t={})=>Sz({container:e,target:t.target,linkSelector:t.linkSelector||"a[href]",formSelector:t.formSelector||"form",boostForms:!!t.boostForms,strategy:t.strategy||"morph",pushUrl:!1!==t.pushUrl,useViewTransition:!!t.useViewTransition}),destroy(e){e.destroy()}};const Az="click";let Lz,jz,Pz;function Nz(e,t,r){r.errors?.length&&r.errors.forEach((e,t)=>{}),t.split("\n")}async function Oz(e,t){try{return await Pz().execute(e,t)}catch(e){throw e}}function Iz(e,t,r){try{const n=function(e){try{if(function(e){return"eventHandler"===e.type}(e)){return{eventType:e.event||Az,body:{type:"CommandSequence",commands:e.commands||[],start:e.start||0,end:e.end||0,line:e.line||1,column:e.column||1}}}if(function(e){return"FeatureNode"===e.type}(e)&&"on"===e.name){return{eventType:e.args?.[0]?.value||Az,body:e.body||e}}return"CommandSequence"===e.type||"Block"===e.type?{eventType:Az,body:e}:null}catch(e){return null}}(t);if(!n)return;e.addEventListener(n.eventType,async e=>{try{r.locals.set("event",e),r.locals.set("target",e.target),await Oz(n.body,r)}catch(e){}})}catch(e){}}function Rz(e){return ui(e)}function Mz(e,t){const r=function(e){const t=e.getAttribute("data-lang");if(t)return t;const r=e.closest("[lang]")?.getAttribute("lang");if(r)return r.split("-")[0];if("undefined"!=typeof document){const e=document.documentElement?.lang;if(e)return e.split("-")[0]}return"en"}(e);"en"===r?function(e,t){try{const r=Lz(t);if(!r.ok)return void Nz(0,t,r);if(!r.ast)return;const n=Rz(e);if(t.trim().startsWith("on "))try{Iz(e,r.ast,n)}catch(e){throw e}else Oz(r.ast,n)}catch(e){}}(e,t):async function(e,t,r){try{const n=await jz(t,{language:r});if(!n.ok)return void Nz(0,t,n);if(!n.ast)return;const i=Rz(e);t.trim().startsWith("on ")||"eventHandler"===n.ast.type?Iz(e,n.ast,i):Oz(n.ast,i)}catch(e){}}(e,t,r)}class Wz{constructor(e){this.capacity=e,this.head=0,this.count=0,this.items=Array(e)}push(e){this.items[this.head]=e,this.head=(this.head+1)%this.capacity,this.capacity>this.count&&this.count++}toArray(){return this.capacity>this.count?this.items.slice(0,this.count):[...this.items.slice(this.head),...this.items.slice(0,this.head)]}get length(){return this.count}clear(){this.head=0,this.count=0}last(){if(0===this.count)return;return this.items[(this.head-1+this.capacity)%this.capacity]}}class qz{constructor(){this.state={enabled:!1,paused:!1,stepMode:"continue",callDepth:0,pauseDepth:0,currentSnapshot:null},this.history=new Wz(200),this.breakpoints=new Map,this.snapshotIndex=0,this._resumeResolver=null,this.listeners=new Map,this.hooks={beforeExecute:this.beforeExecute.bind(this),afterExecute:this.afterExecute.bind(this)}}on(e,t){let r=this.listeners.get(e);return r||(r=new Set,this.listeners.set(e,r)),r.add(t),()=>r.delete(t)}emit(e,t){const r=this.listeners.get(e);if(r)for(const e of r)try{e(t)}catch{}}enable(){this.state.enabled=!0,this.emit("enabled")}disable(){this.state.paused&&this._resumeResolver&&(this._resumeResolver(),this._resumeResolver=null),this.state.enabled=!1,this.state.paused=!1,this.state.stepMode="continue",this.state.callDepth=0,this.emit("disabled")}get enabled(){return this.state.enabled}continue(){this.state.stepMode="continue",this.resume()}pause(){this.state.stepMode="pause"}stepOver(){this.state.stepMode="over",this.state.pauseDepth=this.state.callDepth,this.resume()}stepInto(){this.state.stepMode="into",this.resume()}stepOut(){this.state.stepMode="out",this.state.pauseDepth=this.state.callDepth,this.resume()}resume(){this._resumeResolver&&(this.state.paused=!1,this.emit("resumed"),this._resumeResolver(),this._resumeResolver=null)}setBreakpoint(e){const t=`bp_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return this.breakpoints.set(t,{...e,id:t,hitCount:0}),t}removeBreakpoint(e){return this.breakpoints.delete(e)}getBreakpoints(){return Array.from(this.breakpoints.values())}clearBreakpoints(){this.breakpoints.clear()}getState(){return{...this.state}}getHistory(){return this.history.toArray()}clearHistory(){this.history.clear(),this.snapshotIndex=0}async beforeExecute(e){if(!this.state.enabled)return;this.state.callDepth++;const t=this.captureSnapshot(e);this.history.push(t),this.emit("snapshot",t),this.shouldPause(e)&&(this.state.paused=!0,this.state.currentSnapshot=t,this.emit("paused",t),await new Promise(e=>{this._resumeResolver=e}),this.state.currentSnapshot=null)}async afterExecute(e,t){if(!this.state.enabled)return;const r=this.history.last();r&&(r.variables.__result=_z(t)),this.state.callDepth=Math.max(0,this.state.callDepth-1)}shouldPause(e){if(this.hitBreakpoint(e))return!0;switch(this.state.stepMode){case"pause":return this.state.stepMode="into",!0;case"into":return!0;case"over":return this.state.pauseDepth>=this.state.callDepth;case"out":return this.state.pauseDepth>this.state.callDepth;case"continue":return!1}}hitBreakpoint(e){for(const t of this.breakpoints.values()){if(!t.enabled)continue;let r=!1;switch(t.type){case"command":r=e.commandName===t.value;break;case"element":if(e.element)try{r=e.element.matches(t.value)}catch{}break;case"expression":r=this.evaluateCondition(t.value,e)}if(r)return t.hitCount++,!0}return!1}evaluateCondition(e,t){try{const r=t.executionContext,n={commandName:t.commandName,it:r.it,result:r.result,me:r.me};if(r.locals)for(const[e,t]of r.locals)n[e]=t;const i=Object.keys(n),a=i.map(e=>n[e]);return!!Function(...i,`return (${e});`)(...a)}catch{return!1}}captureSnapshot(e){const t=e.executionContext,r={};if(r.it=_z(t.it),r.result=_z(t.result),t.me&&(r.me=$z(t.me)),t.you&&(r.you=$z(t.you)),e.event&&(r["event.type"]=e.event.type,e.event.target&&(r["event.target"]=$z(e.event.target))),t.locals)for(const[e,n]of t.locals)e.startsWith("__")||(r[":"+e]=_z(n));return{commandName:e.commandName,element:e.element,variables:r,timestamp:Date.now(),depth:this.state.callDepth,index:this.snapshotIndex++}}}function _z(e){if(null==e)return e;if("string"==typeof e||"number"==typeof e||"boolean"==typeof e)return e;if(e instanceof Element)return $z(e);if(Array.isArray(e))return`Array(${e.length})`;if(e instanceof Map)return`Map(${e.size})`;if(e instanceof Set)return`Set(${e.size})`;if("function"==typeof e)return`ƒ ${e.name||"anonymous"}()`;if("object"==typeof e){const t=Object.keys(e);return t.length>3?`{${t.slice(0,3).join(", ")}, ...${t.length-3} more}`:`{${t.join(", ")}}`}return e+""}function $z(e){let t="<"+e.tagName.toLowerCase();return e.id&&(t+="#"+e.id),e.classList.length>0&&(t+="."+Array.from(e.classList).join(".")),t+=">",t}const Dz="en";const Vz=new class{constructor(e=500){this.cache=new Map,this.hits=0,this.misses=0,this.maxSize=e}makeKey(e,t){return`${t?.language||Dz}\0${t?.traditional?"1":"0"}\0${e}`}get(e,t){const r=this.makeKey(e,t),n=this.cache.get(r);if(n)return this.hits++,this.cache.delete(r),this.cache.set(r,n),n.result;this.misses++}set(e,t,r){if(!r.ok)return;const n=this.makeKey(e,t);if(this.cache.size>=this.maxSize&&!this.cache.has(n)){const e=this.cache.keys().next().value;void 0!==e&&this.cache.delete(e)}this.cache.set(n,{result:r})}clear(){this.cache.clear(),this.hits=0,this.misses=0}getStats(){const e=this.hits+this.misses;return{size:this.cache.size,hits:this.hits,misses:this.misses,hitRate:e>0?this.hits/e:0}}}(500);let Hz=null,Bz=null;const Fz={semantic:!0,language:"en",confidenceThreshold:Ib};let Uz=null,Kz=null;function Gz(){if(!Uz&&(Uz=new El({lazyLoad:!1}),(e=Uz.behaviorRegistry)instanceof Map||e&&"function"==typeof e.set?e.set("HistorySwap",Ez):e&&"object"==typeof e&&(e.HistorySwap=Ez),function(e){e instanceof Map||e&&"function"==typeof e.set?e.set("Boosted",Cz):e&&"object"==typeof e&&(e.Boosted=Cz)}(Uz.behaviorRegistry),"undefined"!=typeof globalThis)){const e=globalThis;e._hyperscript=e._hyperscript||{},e._hyperscript.runtime=Uz,e._hyperscript.behaviors=Uz.behaviorAPI}var e;return Uz}async function Yz(e,t){if(!e)throw Error("AST is required for execution");const r=t||ui();return await Gz().execute(e,r)}function Zz(e,t){if("string"!=typeof e)throw new TypeError("Code must be a string");const r=Vz.get(e,t);if(r)return r;const n=performance.now(),i=t?.language||Dz;try{const r=t?.traditional??!1,o=r?{}:Fz.semantic?{semanticAnalyzer:(Hz||(Hz=Ob()),Hz),language:Fz.language,semanticConfidenceThreshold:Fz.confidenceThreshold}:{},s=!r,l=function(e,t){const r=X(e);return new ri(r,t,e).parse()}(e,o),c=performance.now()-n;if(l.success&&l.node){const r={ok:!0,ast:l.node,meta:{parser:s?"semantic":"traditional",language:i,timeMs:c}};return Vz.set(e,t,r),r}return{ok:!1,errors:l.error?[(a=l.error,{message:a.message,line:a.line??1,column:a.column??1})]:[],meta:{parser:s?"semantic":"traditional",language:i,timeMs:c}}}catch(a){const e=performance.now()-n;return{ok:!1,errors:[{message:a instanceof Error?a.message:"Unknown compilation error",line:1,column:1}],meta:{parser:"traditional",language:i,timeMs:e}}}var a}async function Xz(e,t){if("string"!=typeof e)throw new TypeError("Code must be a string");const r=t?.language||Dz;if(r===Dz||t?.traditional)return Zz(e,t);const n=Vz.get(e,t);if(n)return n;const i=performance.now();try{const n=await async function(){if(!Bz){const{SemanticGrammarBridge:e}=await import("./bridge-CZfeDyEz.js");Bz=new e,await Bz.initialize()}return Bz}(),a=await n.parseToASTWithDetails(e,r);if(a.usedDirectPath&&a.ast){const n=performance.now()-i,o={ok:!0,ast:a.ast,meta:{parser:"semantic",confidence:a.confidence,language:r,timeMs:n,directPath:!0}};return Vz.set(e,t,o),o}const o=Zz(a.fallbackText||e,{...t,language:Dz}),s={...o,meta:{...o.meta,language:r,confidence:a.confidence,directPath:!1}};return Vz.set(e,t,s),s}catch{return Zz(e,{...t,language:"en"})}}!function(e,t,r){Lz=e,jz=t,Pz=r}(Zz,Xz,Gz);const Jz={compile:Xz,compileSync:Zz,execute:Yz,eval:async function(e,t,r){if("string"!=typeof e||0===e.trim().length)throw Error("Code must be a non-empty string");let n;if(t)if(t instanceof Element)n=ui(t);else if("object"==typeof(i=t)&&null!==i&&"locals"in i&&i.locals instanceof Map)n=t;else{const e=t;n=function(e){return"object"==typeof e&&null!==e&&"me"in e}(e)?ui(e.me):ui()}else n=ui();var i;const a=await Xz(e.trim(),r);if(!a.ok){throw Error("Compilation failed: "+(a.errors?.[0]?.message||"Unknown compilation error"))}return Yz(a.ast,n)},validate:async function(e,t){const r=await Xz(e,t);return{valid:r.ok,errors:r.errors}},process:function(e){try{const t=e.getAttribute("_");t&&Mz(e,t);e.querySelectorAll("[_]").forEach(e=>{const t=e.getAttribute("_");t&&Mz(e,t)})}catch(e){}},createContext:function(e,t){return t?function(e,t){return{me:t??e.me,it:null,you:null,result:null,locals:new Map,globals:e.globals,parent:e,flags:{halted:!1,breaking:!1,continuing:!1,returning:!1,async:!1}}}(t,e):ui(e)},config:Fz,version:"2.0.0",createRuntime:function(e){return new El(e)},registerHooks:(e,t)=>{Gz().registerHooks(e,t)},unregisterHooks:e=>Gz().unregisterHooks(e),getRegisteredHooks:()=>Gz().getRegisteredHooks(),clearCache:()=>Vz.clear(),getCacheStats:()=>Vz.getStats(),get debug(){return Kz||(Kz=new qz,Gz().registerHooks("__debugger",Kz.hooks)),Kz}},Qz=/^on\s+(\w+)/,ex=new Set(["load","mutation","intersection","appear","every"]);function tx(){return"undefined"!=typeof globalThis&&"scheduler"in globalThis&&"function"==typeof globalThis.scheduler?.yield?globalThis.scheduler.yield():new Promise(e=>setTimeout(e,0))}const rx=new class{constructor(e={}){this.processedElements=new WeakSet,this.observer=null,this.processedCount=0,this.readyEventDispatched=!1,this.initialized=!1,this.lazyElements=new WeakSet,this.options={attributeName:"_",autoScan:!0,processOnlyNewElements:!0,lazyParsing:!1,chunkedProcessing:!1,chunkSize:16,...e}}async init(){"undefined"!=typeof document&&(this.initialized||(this.initialized=!0,this.options.autoScan&&(await this.scanAndProcessAll(),this.dispatchReadyEvent()),this.setupMutationObserver()))}async scanAndProcessAll(){"undefined"!=typeof window&&window.__hyperfixi_behaviors_ready&&await window.__hyperfixi_behaviors_ready;const e=document.querySelectorAll('script[type="text/hyperscript"]');for(const t of e)t instanceof HTMLScriptElement&&(t.textContent?.substring(0,50),await this.processHyperscriptTag(t));const t=document.querySelectorAll(`[${this.options.attributeName}]`);if(this.options.lazyParsing){const e=[];t.forEach(t=>{if(t instanceof HTMLElement){const r=this.processElementLazy(t);r&&e.push(r)}}),e.length>0&&await Promise.all(e)}else if(this.options.chunkedProcessing)await this.processElementsChunked(t);else{const e=[];t.forEach(t=>{t instanceof HTMLElement&&e.push(this.processElementAsync(t))}),await Promise.all(e)}"undefined"!=typeof window&&window.dispatchEvent(new CustomEvent("lokascript:initialized",{detail:{scriptsProcessed:e.length,elementsProcessed:t.length}}))}async processHyperscriptTag(e){const t=e.getAttribute("for");t?await this.processHyperscriptTagForElements(e,t):await this.processHyperscriptTagGlobal(e)}async processHyperscriptTagForElements(e,t){const r=e.textContent||e.innerHTML;if(!r||!r.trim())return;const n=document.querySelectorAll(t);if(0!==n.length)try{r.substring(0,50);const e=Jz.compileSync(r);if(!e.ok)return;for(const t of n)if(t instanceof HTMLElement){const r=ui(t);await Jz.execute(e.ast,r)}}catch(e){}}async processHyperscriptTagGlobal(e){const t=e.textContent||e.innerHTML;if(t&&t.trim())try{t.substring(0,50);const e=ui(null),r=Jz.compileSync(t);if(!r.ok)return;await Jz.execute(r.ast,e)}catch(e){}}processElement(e){this.processElementAsync(e)}async processElementAsync(e){if(this.options.processOnlyNewElements&&this.processedElements.has(e))return;const t=e.getAttribute(this.options.attributeName);if(t)try{const r=ui(e),n=Jz.compileSync(t);if(!n.ok)return;await Jz.execute(n.ast,r),this.processedElements.add(e),this.processedCount++,this.dispatchLoadEvent(e)}catch(e){}}async processElementsChunked(e){const t=this.options.chunkSize,r=[];e.forEach(e=>{e instanceof HTMLElement&&r.push(e)});for(let e=0;r.length>e;e+=t){const n=r.slice(e,e+t).map(e=>this.processElementAsync(e));await Promise.all(n),r.length>e+t&&await tx()}}processElementLazy(e){const t=e.getAttribute(this.options.attributeName);if(!t)return null;const r=t.match(Qz);if(!r||ex.has(r[1])||this.hasMultipleHandlers(t))return this.processElementAsync(e);const n=r[1];return e.addEventListener(n,async r=>{this.lazyElements.delete(e);try{const n=Jz.compileSync(t);if(!n.ok||!n.ast)return;const i=ui(e);Jz.execute(n.ast,i);const a=n.ast;if("eventHandler"===a.type&&a.commands?.length>0){a.modifiers?.prevent&&r.preventDefault(),a.modifiers?.stop&&r.stopPropagation();const t=ui(e);t.locals.set("event",r),t.locals.set("target",r.target),t.event=r;for(const e of a.commands){const r=Fi(await Jz.execute(e,t));void 0!==r&&Object.assign(t,{it:r,result:r})}}this.dispatchLoadEvent(e)}catch(e){}},{once:!0}),this.lazyElements.add(e),this.processedElements.add(e),this.processedCount++,null}hasMultipleHandlers(e){const t=new Set(["me","it","its","my","you","yourself"]);let r=0;const n=/\bon\s+(\w+)/g;let i;for(;null!==(i=n.exec(e));){if("."!==e[i.index+i[0].length]&&(!t.has(i[1])&&(r++,r>1)))return!0}return!1}dispatchLoadEvent(e){try{const t=new Event("load",{bubbles:!1,cancelable:!1});e.dispatchEvent(t)}catch(e){}}dispatchReadyEvent(){if(!this.readyEventDispatched)try{const e=new CustomEvent("hyperscript:ready",{bubbles:!0,cancelable:!1,detail:{processedElements:this.processedCount,timestamp:Date.now()}});document.dispatchEvent(e),this.readyEventDispatched=!0}catch(e){}}setupMutationObserver(){"undefined"!=typeof MutationObserver&&(this.observer=new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if(e.nodeType===Node.ELEMENT_NODE){const t=e;"SCRIPT"===t.tagName&&"text/hyperscript"===t.getAttribute("type")&&this.processHyperscriptTag(t).catch(e=>{});const r=t.querySelectorAll?.('script[type="text/hyperscript"]');r?.forEach(e=>{e instanceof HTMLScriptElement&&this.processHyperscriptTag(e).catch(e=>{})}),t.getAttribute&&t.getAttribute(this.options.attributeName)&&this.processElementAsync(t).catch(e=>{});const n=t.querySelectorAll?.(`[${this.options.attributeName}]`);n?.forEach(e=>{e instanceof HTMLElement&&this.processElementAsync(e).catch(e=>{})})}})})}),this.observer.observe(document.body,{childList:!0,subtree:!0}))}destroy(){this.observer&&(this.observer.disconnect(),this.observer=null),this.initialized=!1,this.readyEventDispatched=!1,this.processedCount=0,this.lazyElements=new WeakSet}reset(){this.destroy()}};const nx=new class{constructor(){this.defaultStrategy=null,this.strategies={twDisplay:this.createDisplayStrategy(),twVisibility:this.createVisibilityStrategy(),twOpacity:this.createOpacityStrategy()}}getStrategies(){return{...this.strategies}}setDefaultStrategy(e){if(!this.strategies[e])throw Error("Unknown Tailwind strategy: "+e);this.defaultStrategy=e}getDefaultStrategy(){return this.defaultStrategy}resetDefaultStrategy(){this.defaultStrategy=null}async executeStrategy(e,t,r){if(!r)throw Error("Element is required");if(!this.strategies[e])throw Error("Unknown Tailwind strategy: "+e);if(!["hide","show","toggle"].includes(t))throw Error("Invalid operation: "+t);await this.strategies[e](t,r)}async executeWithDefaultStrategy(e,t){if(!this.defaultStrategy)throw Error("No default strategy set");await this.executeStrategy(this.defaultStrategy,e,t)}createDisplayStrategy(){return async(e,t)=>{switch(e){case"toggle":t.classList.contains("hidden")?await this.executeStrategy("twDisplay","show",t):await this.executeStrategy("twDisplay","hide",t);break;case"hide":t.classList.add("hidden");break;case"show":t.classList.remove("hidden")}}}createVisibilityStrategy(){return async(e,t)=>{switch(e){case"toggle":t.classList.contains("invisible")?await this.executeStrategy("twVisibility","show",t):await this.executeStrategy("twVisibility","hide",t);break;case"hide":t.classList.add("invisible");break;case"show":t.classList.remove("invisible")}}}createOpacityStrategy(){return async(e,t)=>{switch(e){case"toggle":t.classList.contains("opacity-0")?await this.executeStrategy("twOpacity","show",t):await this.executeStrategy("twOpacity","hide",t);break;case"hide":t.classList.add("opacity-0");break;case"show":t.classList.remove("opacity-0")}}}};class ix{constructor(e,t,r=0){this.pool=[],this.index=0,this.metrics={allocations:0,reuses:0,peakPoolSize:0},this.factory=e,this.reset=t;for(let t=0;r>t;t++)this.pool.push(e());this.metrics.allocations=r,this.metrics.peakPoolSize=r}get(){let e;return this.pool.length>this.index?(e=this.pool[this.index++],this.metrics.reuses++,this.reset&&this.reset(e)):(e=this.factory(),this.pool.push(e),this.index++,this.metrics.allocations++,this.pool.length>this.metrics.peakPoolSize&&(this.metrics.peakPoolSize=this.pool.length)),e}releaseAll(){this.index=0}getMetrics(){const e=this.metrics.allocations+this.metrics.reuses;return{...this.metrics,hitRate:e>0?this.metrics.reuses/e*100:0}}clear(){this.pool=[],this.index=0,this.metrics={allocations:0,reuses:0,peakPoolSize:0}}}const ax=new class{constructor(){this.pending=new Map,this.rafId=null,this.stylePool=new ix(()=>({}),e=>{for(const t of Object.keys(e))delete e[t]},10)}add(e,t){let r=this.pending.get(e);r||(r=this.stylePool.get(),this.pending.set(e,r)),Object.assign(r,t),this.rafId||(this.rafId=requestAnimationFrame(()=>this.flush()))}flush(){for(const[e,t]of this.pending)for(const[r,n]of Object.entries(t))if(r.startsWith("--"))e.style.setProperty(r,n);else{const t=r.replace(/-([a-z])/g,e=>e[1].toUpperCase());e.style[t]=n}this.pending.clear(),this.stylePool.releaseAll(),this.rafId=null}cancel(){this.rafId&&(cancelAnimationFrame(this.rafId),this.rafId=null),this.pending.clear(),this.stylePool.releaseAll()}getPendingCount(){return this.pending.size}getPoolMetrics(){return this.stylePool.getMetrics()}},ox={sockets:/\b(socket|connect\s+to\s+ws[s]?:)/i,eventsource:/\b(eventsource|connect\s+to\s+sse:)/i,workers:/\b(worker|start\s+worker)/i},sx=new Set,lx=new Map;function cx(e){const t=new Set,r=Array.isArray(e)?e:[e];for(const e of r)for(const[r,n]of Object.entries(ox))n.test(e)&&t.add(r);return t}async function ux(e){if(sx.has(e))return;const t=lx.get(e);if(t)return t;const r=(async()=>{try{switch(e){case"sockets":await import("./feature-sockets-ClOH7vk7.js").then(function(e){return e.s});break;case"eventsource":await import("./feature-eventsource-B5F2-H1r.js");break;case"workers":await import("./feature-webworker-3bAp0ac9.js");break;default:return}sx.add(e)}catch(e){throw e}finally{lx.delete(e)}})();return lx.set(e,r),r}async function px(e){const t=[...cx(e)].filter(e=>!sx.has(e));0!==t.length&&await Promise.all(t.map(e=>ux(e)))}async function mx(){const e=function(){if("undefined"==typeof document)return[];const e=[];return document.querySelectorAll("[_]").forEach(t=>{const r=t.getAttribute("_");r&&e.push(r)}),document.querySelectorAll('script[type="text/hyperscript"]').forEach(t=>{t.textContent&&e.push(t.textContent)}),e}();await px(e)}function dx(e){return sx.has(e)}function hx(){return[...sx]}async function fx(e){await Promise.all(e.map(e=>ux(e)))}const yx={evalHyperScript:bz,evalHyperScriptAsync:wz,evalHyperScriptSmart:zz,evaluate:bz,compile:e=>{const t=Jz.compileSync(e);if(!t.ok){throw Error(t.errors&&t.errors.length>0?t.errors[0].message:"Compilation failed")}return t},execute:Jz.execute,run:async(e,t)=>Jz.eval(e,t),createContext:Jz.createContext,createRuntime:Jz.createRuntime,Parser:ri,Runtime:El,tokenize:X,processNode:async e=>{const t=[];if(e===document)document.querySelectorAll("[_]").forEach(e=>{const r=e.getAttribute("_");r&&t.push(r)}),document.querySelectorAll('script[type="text/hyperscript"]').forEach(e=>{e.textContent&&t.push(e.textContent)});else if(e instanceof HTMLElement){const r=e.getAttribute("_");r&&t.push(r)}await px(t),e===document?rx.scanAndProcessAll():e instanceof HTMLElement&&rx.processElement(e)},process:e=>yx.processNode(e),attributeProcessor:rx,tailwindExtension:nx,styleBatcher:ax,ObjectPool:ix,debug:t,features:{preloadDocument:mx,loadRequired:px,detect:cx,isLoaded:dx,getLoaded:hx,preload:fx},version:"1.0.0-modular"};"undefined"!=typeof window&&(window.hyperfixi=yx,window.evalHyperScript=bz,window.evalHyperScriptAsync=wz,window.evalHyperScriptSmart=zz,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",async()=>{await mx(),await rx.init()}):mx().then(()=>{rx.init()}));export{Ib as D,ix as O,ri as P,El as R,rx as a,cx as b,wz as c,t as d,bz as e,zz as f,hx as g,yx as h,Jz as i,dx as j,fx as k,px as l,X as m,yz as n,mx as p,ax as s,nx as t};
2
- //# sourceMappingURL=browser-modular-CwTpxqdt.js.map