@hyperfixi/core 2.3.1 → 2.5.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.
- package/dist/api/dom-processor.d.ts +8 -4
- package/dist/api/hyperscript-api.d.ts +5 -1
- package/dist/ast-utils/index.js +25320 -94
- package/dist/ast-utils/index.mjs +25320 -94
- package/dist/ast-utils/interchange/types.d.ts +7 -1
- package/dist/behaviors/index.js +54 -100
- package/dist/behaviors/index.mjs +54 -100
- package/dist/bundle-generator/index.js +19 -2
- package/dist/bundle-generator/index.mjs +19 -2
- package/dist/bundle-generator/parser-templates.d.ts +1 -1
- package/dist/bundle-generator/template-capabilities.d.ts +1 -1
- package/dist/chunks/bridge-Ce2mO-nk.js +2 -0
- package/dist/chunks/browser-modular-D5vPrb2X.js +2 -0
- package/dist/chunks/feature-eventsource-BpZvPy_K.js +2 -0
- package/dist/chunks/{feature-sockets-ClOH7vk7.js → feature-sockets-CrYvjZ4j.js} +2 -2
- package/dist/chunks/feature-webworker-BSYguEIW.js +2 -0
- package/dist/chunks/index-DsBHN4zW.js +2 -0
- package/dist/commands/advanced/async.d.ts +6 -2
- package/dist/commands/advanced/js.d.ts +1 -1
- package/dist/commands/animation/start-view-transition.d.ts +24 -0
- package/dist/commands/async/fetch.d.ts +6 -1
- package/dist/commands/control-flow/repeat.d.ts +2 -0
- package/dist/commands/data/clear.d.ts +23 -0
- package/dist/commands/data/set.d.ts +6 -0
- package/dist/commands/dom/close.d.ts +19 -0
- package/dist/commands/dom/empty.d.ts +19 -0
- package/dist/commands/dom/open.d.ts +21 -0
- package/dist/commands/dom/reset.d.ts +19 -0
- package/dist/commands/dom/select.d.ts +19 -0
- package/dist/commands/dom/swap.d.ts +7 -4
- package/dist/commands/events/trigger.d.ts +1 -1
- package/dist/commands/execution/blur.d.ts +19 -0
- package/dist/commands/execution/call.d.ts +1 -2
- package/dist/commands/execution/focus.d.ts +19 -0
- package/dist/commands/helpers/element-resolution.d.ts +2 -2
- package/dist/commands/helpers/event-waiting.d.ts +1 -1
- package/dist/commands/helpers/numeric-target-parser.d.ts +7 -0
- package/dist/commands/index.d.ts +34 -2
- package/dist/commands/index.js +19353 -4845
- package/dist/commands/index.mjs +19321 -4846
- package/dist/commands/navigation/go.d.ts +3 -0
- package/dist/commands/navigation/scroll-to.d.ts +26 -0
- package/dist/commands/utility/beep.d.ts +2 -2
- package/dist/commands/utility/breakpoint.d.ts +19 -0
- package/dist/commands/utility/pick.d.ts +11 -2
- package/dist/compatibility/browser-bundle-modular.d.ts +2 -2
- package/dist/compatibility/browser-bundle-multilingual.d.ts +1 -1
- package/dist/compatibility/browser-bundle-semantic-complete.d.ts +3 -3
- package/dist/compatibility/browser-bundle.d.ts +13 -6
- package/dist/compatibility/browser-modular.d.ts +1 -3
- package/dist/core/expression-evaluator.d.ts +4 -4
- package/dist/core/expression-registry.d.ts +8 -0
- package/dist/expressions/bundles/common-expressions.d.ts +2 -2
- package/dist/expressions/bundles/core-expressions.d.ts +2 -2
- package/dist/expressions/bundles/full-expressions.d.ts +2 -2
- package/dist/expressions/bundles/index.d.ts +3 -3
- package/dist/expressions/collection/index.d.ts +35 -0
- package/dist/expressions/conversion/impl/index.d.ts +1 -1
- package/dist/expressions/index.d.ts +4 -3
- package/dist/expressions/index.js +1117 -1590
- package/dist/expressions/index.mjs +1113 -1586
- package/dist/expressions/logical/index.d.ts +2 -0
- package/dist/expressions/mathematical/index.d.ts +11 -0
- package/dist/expressions/shared/index.d.ts +1 -1
- package/dist/expressions/shared/number-utils.d.ts +1 -0
- package/dist/htmx/htmx-attribute-processor.d.ts +37 -1
- package/dist/htmx/htmx-translator.d.ts +2 -0
- package/dist/htmx/i18n-hooks.d.ts +15 -0
- package/dist/htmx/i18n-orchestrator.d.ts +15 -0
- package/dist/htmx/lang-resolver.d.ts +3 -0
- package/dist/htmx/sse.d.ts +60 -0
- package/dist/htmx/ws.d.ts +59 -0
- package/dist/hyperfixi-browser-classic-i18n.js +2 -0
- package/dist/hyperfixi-browser-minimal.js +1 -0
- package/dist/hyperfixi-browser-standard.js +2 -0
- package/dist/hyperfixi-browser.js +2 -0
- package/dist/hyperfixi-classic-i18n.js +1 -1
- package/dist/hyperfixi-hx-v4.js +1 -0
- package/dist/hyperfixi-hx.js +1 -1
- package/dist/hyperfixi-hybrid-complete.js +1 -1
- package/dist/hyperfixi-hybrid-hx.js +1 -0
- package/dist/hyperfixi-minimal.js +1 -1
- package/dist/hyperfixi-multilingual.js +1 -1
- package/dist/hyperfixi-standard.js +1 -1
- package/dist/hyperfixi.js +1 -1
- package/dist/hyperfixi.mjs +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +43592 -45060
- package/dist/index.min.js +1 -1
- package/dist/index.mjs +43589 -45061
- package/dist/lib/index.d.ts +2 -2
- package/dist/lib/morph-adapter.d.ts +0 -13
- package/dist/lib/swap-executor.d.ts +0 -10
- package/dist/lib/view-transitions.d.ts +1 -30
- package/dist/lokascript-browser-classic-i18n.js +1 -1
- package/dist/lokascript-browser-minimal.js +1 -1
- package/dist/lokascript-browser-standard.js +1 -1
- package/dist/lokascript-browser.js +1 -1
- package/dist/lokascript-hybrid-complete.js +1 -1
- package/dist/lokascript-hybrid-hx.js +1 -1
- package/dist/lokascript-multilingual.js +1 -1
- package/dist/lsp-metadata.d.ts +9 -4
- package/dist/lsp-metadata.js +187 -3
- package/dist/lsp-metadata.mjs +185 -4
- package/dist/metadata.d.ts +1 -1
- package/dist/metadata.js +3 -3
- package/dist/metadata.mjs +3 -3
- package/dist/multilingual/bridge.d.ts +1 -1
- package/dist/multilingual/index.js +79 -22
- package/dist/multilingual/index.mjs +79 -22
- package/dist/parser/command-parsers/animation-commands.d.ts +1 -0
- package/dist/parser/command-parsers/utility-commands.d.ts +1 -0
- package/dist/parser/extensions.d.ts +51 -0
- package/dist/parser/full-parser.js +1223 -897
- package/dist/parser/full-parser.mjs +1223 -897
- package/dist/parser/helpers/ast-helpers.d.ts +1 -0
- package/dist/parser/helpers/parsing-helpers.d.ts +4 -0
- package/dist/parser/parser-types.d.ts +8 -28
- package/dist/parser/parser.d.ts +3 -7
- package/dist/parser/pratt-parser.d.ts +0 -3
- package/dist/parser/runtime.d.ts +4 -0
- package/dist/parser/semantic-integration.d.ts +17 -0
- package/dist/parser/types.d.ts +7 -1
- package/dist/reference/index.js +91 -0
- package/dist/reference/index.mjs +91 -0
- package/dist/registry/index.js +12867 -5876
- package/dist/registry/index.mjs +12867 -5876
- package/dist/registry/universal-types.d.ts +2 -1
- package/dist/runtime/command-adapter.d.ts +23 -16
- package/dist/runtime/plugin.d.ts +14 -0
- package/dist/runtime/runtime-base.d.ts +32 -7
- package/dist/runtime/runtime-factory.d.ts +3 -3
- package/dist/runtime/runtime.d.ts +2 -2
- package/dist/test-setup.d.ts +1 -0
- package/dist/types/base-types.d.ts +3 -0
- package/dist/types/feature-types.d.ts +1 -1
- package/dist/types/index.d.ts +2 -2
- package/package.json +29 -23
- package/vocab/htmx/ar.js +60 -0
- package/vocab/htmx/bn.js +49 -0
- package/vocab/htmx/de.js +60 -0
- package/vocab/htmx/en.js +21 -0
- package/vocab/htmx/es.js +60 -0
- package/vocab/htmx/fr.js +59 -0
- package/vocab/htmx/he.js +40 -0
- package/vocab/htmx/hi.js +60 -0
- package/vocab/htmx/id.js +57 -0
- package/vocab/htmx/it.js +58 -0
- package/vocab/htmx/ja.js +60 -0
- package/vocab/htmx/ko.js +60 -0
- package/vocab/htmx/ms.js +35 -0
- package/vocab/htmx/pl.js +60 -0
- package/vocab/htmx/pt.js +60 -0
- package/vocab/htmx/qu.js +60 -0
- package/vocab/htmx/ru.js +60 -0
- package/vocab/htmx/sw.js +59 -0
- package/vocab/htmx/th.js +49 -0
- package/vocab/htmx/tl.js +33 -0
- package/vocab/htmx/tr.js +60 -0
- package/vocab/htmx/uk.js +60 -0
- package/vocab/htmx/vi.js +51 -0
- package/vocab/htmx/zh.js +60 -0
- package/dist/bundles/test-minimal.d.ts +0 -3
- package/dist/bundles/test-standard.d.ts +0 -3
- package/dist/chunks/bridge-Clbh_xAj.js +0 -2
- package/dist/chunks/browser-modular-DIOxQqhV.js +0 -2
- package/dist/chunks/feature-eventsource-B5F2-H1r.js +0 -2
- package/dist/chunks/feature-webworker-3bAp0ac9.js +0 -2
- package/dist/chunks/index-DcxoRUBe.js +0 -2
- package/dist/compatibility/browser-bundle-minimal.d.ts +0 -8
- package/dist/compatibility/browser-bundle-standard.d.ts +0 -8
- package/dist/compatibility/hyperscript-tests/test-adapter.d.ts +0 -13
- package/dist/core/base-expression-evaluator.d.ts +0 -74
- package/dist/core/binary-expression-evaluator.d.ts +0 -7
- package/dist/core/call-expression-evaluator.d.ts +0 -7
- package/dist/core/configurable-expression-evaluator.d.ts +0 -5
- package/dist/core/lazy-expression-evaluator.d.ts +0 -22
- package/dist/core/parser.d.ts +0 -21
- package/dist/core/selector-evaluator.d.ts +0 -15
- package/dist/core/template-literal-evaluator.d.ts +0 -5
- package/dist/expressions/comparison/index.d.ts +0 -80
- package/dist/expressions/comparison/utils.d.ts +0 -2
- package/dist/expressions/conversion/impl/bridge.d.ts +0 -117
- package/dist/expressions/logical/impl/pattern-matching.d.ts +0 -58
- package/dist/expressions/positional/impl/bridge.d.ts +0 -95
- package/dist/expressions/property/index.d.ts +0 -55
- package/dist/expressions/references/impl/bridge.d.ts +0 -54
- package/dist/extensions/index.d.ts +0 -3
- package/dist/extensions/tailwind.d.ts +0 -22
- package/dist/mod.d.ts +0 -63
- package/dist/parser/expression-parser.d.ts +0 -6
- package/dist/runtime/runtime-experimental.d.ts +0 -18
- package/dist/scripts/code-generator.d.ts +0 -64
- package/dist/scripts/generate-missing-commands.d.ts +0 -4
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var hyperfixi=function(){"use strict";function e(e){return e instanceof Error&&("isHalt"in e||"isExit"in e||"isBreak"in e||"isContinue"in e||"isReturn"in e)?e:null}function t(e){return{ok:!0,value:e}}function r(e){return{ok:!1,error:e}}function n(e){return!0===e.ok}const i="then",a="else",o="end",s="and",l="if",c="for",u="while",p="until",m="forever",d="times",f="each",h="index",y="in",g="to",v="from",k="with",w="of",b="by",z="between",x="on",E="event",S="def",T="behavior",C="global",A="local",L="the",j="start",P=[i,s,a,o,x],N=new Set(["add","append","async","beep","blur","break","breakpoint","call","clear","close","continue","copy","decrement","default","empty","exit","fetch","focus","for","get","go","halt","hide","open","if","increment","install","js","log","make","measure","morph","pick","process","push","put","remove","render","repeat","replace","reset","return","scroll","select","send","set","settle","show","start","swap","take","tell","throw","toggle","transition","trigger","unless","wait"]),O=new Set(["put","trigger","send","remove","take","toggle","set","show","hide","add","halt","measure","js","tell","pick","start","swap","morph","push","replace","process"]),I=new Set(["if","unless","repeat","wait","for","while"]),R="at",M="at start of",$="at end of",W=["into","before","after",R,M,$,"at the start of","at the end of"],_=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=>N.has(e.toLowerCase()),isCompoundCommand:e=>O.has(e.toLowerCase()),isControlFlowCommand:e=>I.has(e.toLowerCase()),isKeyword:e=>_.has(e.toLowerCase()),isTerminator:e=>P.includes(e),isPutOperation:e=>W.includes(e),isCSSFunction:e=>V.has(e.toLowerCase())},V=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"]),D=new Set(["me","it","you","result","my","its","your"]),B=new Set(["and","or","not","no"]),H=new Set(["==","!=","===","!==","<",">","<=",">=","is","is not","am","is a","is an","is not a","is not an","precedes","does not precede","follows","does not follow","contains","starts with","ends with","does not start with","does not end with","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","is between","is not between","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","ignoring case","sorted by","mapped to","split by","joined by"]),F=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"]),U=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"]),K=new Set(["then","end","to","into","on","with","from","in","by","for","while","until","unless","else","catch","finally"]),G=new Set([")","]","}",","]);function J(e,t){return{infix:{bp:[e,e+1],handler:t??((t,r,n)=>{const i=n.parseExpr(e+1);return{type:"binaryExpression",operator:r.value,left:t,right:i,start:t.start,end:i.end??r.end,line:t.line??r.line,column:t.column??r.column}})}}}function Y(e,t){return{infix:{bp:[e+1,e],handler:(t,r,n)=>{const i=n.parseExpr(e);return{type:"binaryExpression",operator:r.value,left:t,right:i,start:t.start,end:i.end??r.end,line:t.line??r.line,column:t.column??r.column}}}}}function Z(e,t){return{prefix:{bp:e,handler:t??((t,r)=>{const n=r.parseExpr(e);return{type:"unaryExpression",operator:t.value,operand:n,argument:n,prefix:!0,start:t.start,end:n.end??t.end,line:t.line,column:t.column}})}}}const X=new Map([["or",J(10)],["||",J(10)],["and",J(20)],["&&",J(20)],["==",J(30)],["!=",J(30)],["<",J(30)],[">",J(30)],["<=",J(30)],[">=",J(30)],["is",J(30)],["matches",J(30)],["contains",J(30)],["starts with",J(30)],["ends with",J(30)],["does not start with",J(30)],["does not end with",J(30)],["is between",J(30,(e,t,r)=>{const n=r.parseExpr(31),i=r.peek();if(!i||"and"!==i.value.toLowerCase())throw new Error(`between requires 'and' between min and max operands, got: ${i?.value??"<end>"}`);r.advance();const a=r.parseExpr(31);return{type:"betweenExpression",value:e,min:n,max:a,negated:!1,start:e.start,end:a.end}})],["is not between",J(30,(e,t,r)=>{const n=r.parseExpr(31),i=r.peek();if(!i||"and"!==i.value.toLowerCase())throw new Error(`between requires 'and' between min and max operands, got: ${i?.value??"<end>"}`);r.advance();const a=r.parseExpr(31);return{type:"betweenExpression",value:e,min:n,max:a,negated:!0,start:e.start,end:a.end}})],["ignoring case",{infix:{bp:[25,26],handler:(e,t,r)=>(e.ignoringCase=!0,e)}}],["where",J(28,(e,t,r)=>{const n=r.parseExpr(29);return{type:"collectionExpression",operator:"where",collection:e,right:n,start:e.start,end:n.end}})],["sorted by",J(28,(e,t,r)=>{const n=r.parseExpr(29);let i="asc";const a=r.peek();if(a&&"string"==typeof a.value){const e=a.value.toLowerCase();"asc"===e||"ascending"===e?(r.advance(),i="asc"):"desc"!==e&&"descending"!==e||(r.advance(),i="desc")}return{type:"collectionExpression",operator:"sorted by",collection:e,right:n,order:i,start:e.start,end:n.end}})],["mapped to",J(28,(e,t,r)=>{const n=r.parseExpr(29);return{type:"collectionExpression",operator:"mapped to",collection:e,right:n,start:e.start,end:n.end}})],["split by",J(28,(e,t,r)=>{const n=r.parseExpr(29);return{type:"collectionExpression",operator:"split by",collection:e,right:n,start:e.start,end:n.end}})],["joined by",J(28,(e,t,r)=>{const n=r.parseExpr(29);return{type:"collectionExpression",operator:"joined by",collection:e,right:n,start:e.start,end:n.end}})],["+",{...J(40),...Z(80)}],["-",{...J(40),...Z(80)}],["*",J(50)],["/",J(50)],["%",J(50)],["mod",J(50)],["^",Y(60)],["**",Y(60)],["as",J(70,(e,t,r)=>{const n=r.parseExpr(71),i=r.peek();if(i&&":"===i.value&&n&&"identifier"===n.type){r.advance();const e=r.advance();e&&void 0!==e.value&&(n.name=`${n.name}:${e.value}`,n.end=e.end)}return{type:"asExpression",expression:e,targetType:n,start:e.start,end:n.end??t.end,line:e.line??t.line,column:e.column??t.column}})],["not",Z(80)],["!",Z(80)],["no",Z(80)]]);function Q(e){return(t,r,n)=>{const i=n.advance();if(!i||!i.value)throw new Error(`Type check requires a type name after 'is ${e?"not ":""}a/an', got: <end>`);let a=!0;const o=n.peek();return o&&"!"===o.value&&(n.advance(),a=!1),{type:"typeCheckExpression",value:t,typeName:i.value,nullOk:a,negated:e,start:t.start,end:i.end}}}const ee=function(...e){const t=new Map;for(const r of e)for(const[e,n]of r){const r=t.get(e);t.set(e,r?{prefix:n.prefix??r.prefix,infix:n.infix??r.infix}:{...n})}return t}(X,new Map([["===",J(30)],["!==",J(30)],["is not",J(30)],["am",J(30)],["is in",J(30)],["is not in",J(30)],["precedes",J(30)],["does not precede",J(30)],["follows",J(30)],["does not follow",J(30)],["is a",J(30,Q(!1))],["is an",J(30,Q(!1))],["is not a",J(30,Q(!0))],["is not an",J(30,Q(!0))],["has",J(30)],["have",J(30)],["match",J(30)],["include",J(30)],["includes",J(30)],["equals",J(30)],["does not contain",J(30)],["does not include",J(30)],["is equal to",J(30)],["is not equal to",J(30)],["is really equal to",J(30)],["is not really equal to",J(30)],["really equals",J(30)],["is greater than",J(30)],["is less than",J(30)],["is greater than or equal to",J(30)],["is less than or equal to",J(30)],["in",J(30)],["of",J(30)],["really",J(30)],["exists",{prefix:{bp:80,handler:(e,t)=>({type:"unaryExpression",operator:e.value,operand:t.parseExpr(80),start:e.start})},infix:{bp:[30,31],handler:(e,t)=>({type:"unaryExpression",operator:t.value,operand:e,prefix:!1,start:e.start})}}],["does not exist",{infix:{bp:[30,31],handler:(e,t)=>({type:"unaryExpression",operator:t.value,operand:e,prefix:!1,start:e.start})}}],["is empty",{infix:{bp:[30,31],handler:(e,t)=>({type:"unaryExpression",operator:t.value,operand:e,prefix:!1,start:e.start})}}],["is not empty",{infix:{bp:[30,31],handler:(e,t)=>({type:"unaryExpression",operator:t.value,operand:e,prefix:!1,start:e.start})}}],["some",Z(80)]]),new Map([["=",Y(5)]])),te=new Map,re=new Map,ne=new Map,ie=new Set,ae=new Set,oe=new Set,se=new Set;function le(e){return te.get(e.toLowerCase())}function ce(e){return ne.get(e)}function ue(e,t){if(0!==ae.size)for(const r of ae)try{r(e,t)}catch(e){}}function pe(e,t,r){if(0!==oe.size)for(const n of oe)try{n(e,t,r)}catch(e){}}function me(e,t){if(0!==se.size)for(const r of se)try{r(e,t)}catch(e){}}const de=new class{registerCommand(e){N.add(e.toLowerCase())}registerCompoundOperator(e){H.add(e.toLowerCase())}registerInfixOperator(e,t,r,n){const i=e.toLowerCase(),a=ee.get(i);ee.set(i,{...a??{},infix:{bp:[t,r],handler:n}})}registerPrefixOperator(e,t,r){const n=e.toLowerCase(),i=ee.get(n);ee.set(n,{...i??{},prefix:{bp:t,handler:r}})}hasCommand(e){return N.has(e.toLowerCase())}registerFeature(e,t){te.set(e.toLowerCase(),t)}hasFeature(e){return te.has(e.toLowerCase())}registerNodeEvaluator(e,t){re.set(e,t)}registerNodeWriter(e,t){ne.set(e,t)}registerGlobalWriteHook(e){return ie.add(e),()=>ie.delete(e)}registerGlobalReadHook(e){return ae.add(e),()=>ae.delete(e)}registerLocalWriteHook(e){return oe.add(e),()=>oe.delete(e)}registerLocalReadHook(e){return se.add(e),()=>se.delete(e)}snapshot(){return{commands:Array.from(N),operators:Array.from(H),prattEntries:Array.from(ee.entries()).map(([e,t])=>[e,{...t}]),features:Array.from(te.entries()),nodeEvaluators:Array.from(re.entries()),nodeWriters:Array.from(ne.entries()),globalWriteHooks:Array.from(ie),globalReadHooks:Array.from(ae),localWriteHooks:Array.from(oe),localReadHooks:Array.from(se)}}restore(e){N.clear();for(const t of e.commands)N.add(t);H.clear();for(const t of e.operators)H.add(t);ee.clear();for(const[t,r]of e.prattEntries)ee.set(t,r);te.clear();for(const[t,r]of e.features)te.set(t,r);re.clear();for(const[t,r]of e.nodeEvaluators)re.set(t,r);ne.clear();for(const[t,r]of e.nodeWriters??[])ne.set(t,r);ie.clear();for(const t of e.globalWriteHooks)ie.add(t);ae.clear();for(const t of e.globalReadHooks??[])ae.add(t);oe.clear();for(const t of e.localWriteHooks??[])oe.add(t);se.clear();for(const t of e.localReadHooks??[])se.add(t)}},fe="__hyperfixi_parser_extension_registry__";function he(){if("undefined"!=typeof globalThis){const e=globalThis,t=e[fe];if(t&&"object"==typeof t&&"function"==typeof t.registerFeature)return t;e[fe]=de}return de}function ye(e,t,r){if(e.globals.set(t,r),0!==ie.size)for(const n of ie)try{n(t,r,e)}catch(e){}}const ge=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 new 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=>String(e),Boolean:e=>String(e),Null:()=>"",Undefined:()=>"",Array:e=>Array.isArray(e)?e.join(", "):null,Object:e=>{try{return JSON.stringify(e)}catch{return String(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[String(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 ve(e){const t=ge.get("String");return t?t.isType(e):"string"==typeof e}function ke(e){const t=ge.get("Number");return t?t.isType(e):"number"==typeof e}function we(e){const t=ge.get("Boolean");return t?t.isType(e):"boolean"==typeof e}function be(e){const t=ge.get("Object");return t?t.isType(e):"object"==typeof e&&null!==e}function ze(e){const t=ge.get("Function");return t?t.isType(e):"function"==typeof e}function xe(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&1===e.nodeType&&"style"in e}const Ee=new Set(["disabled","readonly","required","checked","selected","hidden","open","autofocus","autoplay","controls","loop","muted","multiple","reversed","defer","async","novalidate","formnovalidate","ismap"]);function Se(e,t){return Ee.has(t.toLowerCase())?e.hasAttribute(t):e.getAttribute(t)}const Te={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=>xe(e)?e.tabIndex:void 0,hidden:e=>xe(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 Ce(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 Se(e,t.slice(1))}const r=Te[t.toLowerCase()];if(r)return r(e);if(function(e,t){return e.hasAttribute(t)}(e,t))return Se(e,t);const n=e[t];return ze(n)?n.bind(e):n}function Ae(e){return Array.isArray(e)?e:null==e?[]:"string"==typeof e?[e]:e instanceof NodeList||e instanceof HTMLCollection||"number"==typeof e.length?Array.from(e):[e]}var Le;!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"}(Le||(Le={}));const je=new Set(["+","-","*","/","mod"]),Pe=new Set(["ms","s","seconds","minutes","hours","days"]);function Ne(e){const t={input:"",position:0,line:1,column:1,tokens:[]};t.input=e;const r=e.length;for(;t.position<r&&(Re(t),!(t.position>=r));){const r=e[t.position];if("-"!==r||"-"!==Oe(t,1))if('"'!==r){if("'"===r||"'"===r){const e=Oe(t,1),r=t.tokens[t.tokens.length-1];if("s"===e&&r&&(r.kind===Le.IDENTIFIER||r.kind===Le.SELECTOR||"]"===r.value||")"===r.value||"}"===r.value)){const e=t.position;Ie(t),Ie(t),Me(t,Le.OPERATOR,"'s",e)}else _e(t);continue}if("`"!==r)if("<"!==r)if("#"!==r){if("."===r){if("."===Oe(t,1)){const e=t.position;Ie(t),Ie(t),Me(t,Le.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===Le.IDENTIFIER&&N.has(e.value.toLowerCase()),i=e&&e.kind===Le.IDENTIFIER&&r.has(e.value.toLowerCase());if((!e||e.kind===Le.OPERATOR&&")"!==e.value&&"]"!==e.value||n||i||"("===e.value||"["===e.value||"{"===e.value||","===e.value||";"===e.value)&&!(e&&e.end===t.position)&&(Ge(Oe(t))||"{"===Oe(t))){Ve(t);continue}}if("@"!==r)if("{"!==r)if("}"!==r){if("["===r){const e=t.tokens[t.tokens.length-1],r=e&&e.kind===Le.IDENTIFIER&&F.has(e.value)&&t.tokens.length>=2&&"on"===t.tokens[t.tokens.length-2]?.value;e&&(e.kind===Le.IDENTIFIER||")"===e.value||"]"===e.value)&&!r?(Me(t,Le.OPERATOR,"["),Ie(t)):r?(Me(t,Le.SYMBOL,"["),Ie(t)):(Me(t,Le.OPERATOR,"["),Ie(t));continue}if("]"!==r){if("$"===r){const e=Oe(t,1);if(e>="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e){Ke(t);continue}}Ze(r)?He(t):r>="0"&&r<="9"?Fe(t):r>="a"&&r<="z"||r>="A"&&r<="Z"||"_"===r?Ue(t):(Me(t,Le.UNKNOWN,r),Ie(t))}else Me(t,Le.OPERATOR,"]"),Ie(t)}else Me(t,Le.OPERATOR,"}"),Ie(t);else Me(t,Le.OPERATOR,"{"),Ie(t);else Be(t)}else Ve(t);else Ye(t)?De(t):He(t);else qe(t)}else _e(t);else We(t)}return t.tokens}function Oe(e,t=1){const r=e.position+t;return r<e.input.length?e.input[r]:""}function Ie(e){const t=e.input[e.position];if(e.position++,"\n"===t)e.line++,e.column=1;else if("\r"===t){"\n"===(e.position<e.input.length?e.input[e.position]:"")&&e.position++,e.line++,e.column=1}else e.column++;return t}function Re(e){const t=e.input,r=t.length;for(;e.position<r;){const r=t[e.position];if(" "!==r&&"\t"!==r&&"\r"!==r&&"\n"!==r)break;Ie(e)}}function Me(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;r<n;r++)"\n"!==e.input[r]&&"\r"!==e.input[r]||(t=r);s=n-t}const l={kind:t,value:r,start:a,end:o,line:$e(e,a),column:s};e.tokens.push(l)}function $e(e,t){let r=1;for(let n=0;n<t&&n<e.input.length;n++){const t=e.input[n];"\n"===t?r++:"\r"===t&&(r++,n+1<e.input.length&&"\n"===e.input[n+1]&&n++)}return r}function We(e){const t=e.position;let r="";for(Ie(e),Ie(e);e.position<e.input.length;){if("\n"===e.input[e.position])break;r+=Ie(e)}Me(e,Le.COMMENT,"--"+r,t)}function _e(e){const t=e.position,r=Ie(e);let n=r;for(;e.position<e.input.length;){const t=Ie(e);if(n+=t,t===r)break;"\\"===t&&e.position<e.input.length&&(n+=Ie(e))}Me(e,Le.STRING,n,t)}function qe(e){const t=e.position;Ie(e);let r="";for(;e.position<e.input.length;){const t=e.input[e.position];if("`"===t){Ie(e);break}if("\\"===t){if(Ie(e),e.position<e.input.length){const t=Ie(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+=Ie(e)}if(e.position>=e.input.length&&!e.input.endsWith("`"))throw new Error(`Unterminated template literal at line ${e.line}, column ${e.column-r.length}`);Me(e,Le.TEMPLATE,r,t)}function Ve(e){const t=e.position;let r=Ie(e);if(e.position<e.input.length&&"{"===e.input[e.position]){for(r+=Ie(e);e.position<e.input.length;){const t=e.input[e.position];if(r+=Ie(e),"}"===t)break}Me(e,Le.SELECTOR,r,t)}else{for(;e.position<e.input.length;){const t=e.input[e.position];if(!Je(t)&&"-"!==t&&"_"!==t&&":"!==t)break;r+=Ie(e)}Me(e,Le.SELECTOR,r,t)}}function De(e){const t=e.position;let r="";for(r+=Ie(e);e.position<e.input.length-1;){const t=e.input[e.position],n=e.input[e.position+1];if(r+=Ie(e),"/"===t&&">"===n){r+=Ie(e);break}}Me(e,Le.SELECTOR,r,t)}function Be(e){const t=e.position;let r=Ie(e);for(;e.position<e.input.length;){const t=e.input[e.position];if(!Je(t)&&"_"!==t&&"-"!==t)break;r+=Ie(e)}Me(e,Le.SYMBOL,r,t)}function He(e){const t=e.position;let r="";const n=e.input[e.position];if(("'"===n||"'"===n)&&"s"===Oe(e,1))return r="'s",Ie(e),Ie(e),void Me(e,Le.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,Ie(e),Ie(e),Ie(e)):["==","!=","<=",">=","&&","||","**","~=","|=","^=","$=","*=","?."].includes(i)?(r=i,Ie(e),Ie(e)):r=Ie(e),Me(e,Le.OPERATOR,r,t)}function Fe(e){const t=e.position,r=e.input,n=r.length;let i="";for(;e.position<n;){const t=r[e.position];if(!(t>="0"&&t<="9"))break;i+=Ie(e)}if(e.position<n&&"."===r[e.position]&&!(e.position+1<n&&"."===r[e.position+1]))for(i+=Ie(e);e.position<n;){const t=r[e.position];if(!(t>="0"&&t<="9"))break;i+=Ie(e)}if(e.position<n){const t=r[e.position];if("e"===t||"E"===t){const t=e.position+1<n?r[e.position+1]:"",a=e.position+2<n?r[e.position+2]:"";if(t>="0"&&t<="9"||("+"===t||"-"===t)&&a>="0"&&a<="9")for(i+=Ie(e),"+"!==r[e.position]&&"-"!==r[e.position]||(i+=Ie(e));e.position<n;){const t=r[e.position];if(!(t>="0"&&t<="9"))break;i+=Ie(e)}}}const a=e.position;let o="";for(;e.position<n;){const t=r[e.position];if(!(t>="a"&&t<="z"||t>="A"&&t<="Z"))break;o+=Ie(e)}Pe.has(o)?Me(e,Le.TIME,i+o,t):(e.position=a,Me(e,Le.NUMBER,i,t))}function Ue(e){const t=e.position,r=e.input,n=r.length;let i="";for(;e.position<n;){const t=r[e.position];if(!(t>="a"&&t<="z"||t>="A"&&t<="Z"||t>="0"&&t<="9"||"_"===t||"-"===t))break;i+=Ie(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&&(a.kind===Le.IDENTIFIER||a.kind===Le.SELECTOR)){const t=e.position<e.input.length?e.input[e.position]:"";if("'"===t||"'"===t)return!1}Re(e);let o="";for(;e.position<e.input.length;){const t=e.input[e.position];if(!(t>="a"&&t<="z"||t>="A"&&t<="Z"||t>="0"&&t<="9"||"_"===t||"-"===t))break;o+=Ie(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){Re(e);let r="";for(;e.position<e.input.length;){const t=e.input[e.position];if(!(t>="a"&&t<="z"||t>="A"&&t<="Z"||t>="0"&&t<="9"||"_"===t||"-"===t))break;r+=Ie(e)}const i=r.toLowerCase();if("start"===i||"end"===i){Re(e);let t="";for(;e.position<e.input.length;){const r=e.input[e.position];if(!(r>="a"&&r<="z"||r>="A"&&r<="Z"||r>="0"&&r<="9"||"_"===r||"-"===r))break;t+=Ie(e)}if("of"===t.toLowerCase()){return Me(e,Le.IDENTIFIER,`at the ${i} of`,n),!0}}return e.position=t,!1}if("start"===a||"end"===a){Re(e);let r="";for(;e.position<e.input.length;){const t=e.input[e.position];if(!(t>="a"&&t<="z"||t>="A"&&t<="Z"||t>="0"&&t<="9"||"_"===t||"-"===t))break;r+=Ie(e)}if("of"===r.toLowerCase()){return Me(e,Le.IDENTIFIER,`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(;o.length<s&&(Re(e),!(e.position>=e.input.length));){let t="";for(;e.position<e.input.length;){const r=e.input[e.position];if(!(r>="a"&&r<="z"||r>="A"&&r<="Z"))break;t+=Ie(e)}if(!t)break;o.push(t.toLowerCase());const r=o.join(" ");H.has(r)&&(i=r,a=e.position)}if(H.has(i)&&i!==`${t} ${r}`)return e.position=a,i;return e.position=n,null}(e,n,t);if(s)return Me(e,Le.OPERATOR,s,r),!0;if(H.has(i))return Me(e,Le.OPERATOR,i,r),!0}if(H.has(n))return e.position=i,Me(e,Le.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 Le.OPERATOR;if(B.has(t))return Le.OPERATOR;if(je.has(e)||je.has(t))return Le.OPERATOR;if(H.has(t))return Le.OPERATOR;return Le.IDENTIFIER}(i);Me(e,o,i,t)}function Ke(e){const t=e.position,r=e.input,n=r.length;Ie(e);let i="$";for(;e.position<n;){const t=r[e.position];if(!(t>="a"&&t<="z"||t>="A"&&t<="Z"||t>="0"&&t<="9"||"_"===t))break;i+=Ie(e)}Me(e,Le.IDENTIFIER,i,t)}function Ge(e){return/[a-zA-Z]/.test(e)}function Je(e){return/[a-zA-Z0-9]/.test(e)}function Ye(e){let t=e.position+1,r=!1;for(;t<e.input.length;){const n=e.input[t];if("/"===n&&t+1<e.input.length&&">"===e.input[t+1])return r;if(Je(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 Ze(e){return"+-*/^%=!<>&|(){}[],.;:?''~$".includes(e)}const Xe=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{}return!("undefined"==typeof window||!window.__HYPERFIXI_DEBUG__)||"undefined"!=typeof process&&"true"===process.env?.HYPERFIXI_DEBUG}(),Qe={command:(...e)=>{},event:(...e)=>{},parse:(...e)=>{},expr:(...e)=>{},expressions:(...e)=>{},style:(...e)=>{},runtime:(...e)=>{},loop:(...e)=>{},async:(...e)=>{}},et={enable(){if("undefined"!=typeof localStorage)try{localStorage.setItem("hyperfixi:debug","*")}catch(e){}},disable(){if("undefined"!=typeof localStorage)try{localStorage.removeItem("hyperfixi:debug"),localStorage.removeItem("lokascript:debug")}catch(e){}},isEnabled:()=>Xe,status(){if("undefined"!=typeof localStorage)try{const e=localStorage;if(e.getItem("hyperfixi:debug")||e.getItem("lokascript:debug"))return{enabled:!0,source:"localStorage"}}catch{}return"undefined"!=typeof window&&window.__HYPERFIXI_DEBUG__?{enabled:!0,source:"window.__HYPERFIXI_DEBUG__"}:"undefined"!=typeof process&&"true"===process.env?.HYPERFIXI_DEBUG?{enabled:!0,source:"process.env.HYPERFIXI_DEBUG"}:{enabled:!1,source:"none"}}};let tt=!1,rt=null;if("undefined"!=typeof window&&"undefined"!=typeof URLSearchParams)try{"semantic"===new URLSearchParams(window.location.search).get("debug")&&(tt=!0,rt=window)}catch{}function nt(){return tt}let it={totalParses:0,semanticSuccesses:0,semanticFallbacks:0,traditionalParses:0,averageConfidence:0,confidenceHistory:[]};const at=50;let ot=[];class st{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(st.SKIP_SEMANTIC_COMMANDS.has(t))return!0;const r=e.toLowerCase();return!!/\bjs\b/.test(r)||(!!/\btell\b/.test(r)||!!/\*[a-zA-Z]/.test(e))}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(nt()){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(!tt)return;if(ot.push(e),ot.length>at&&ot.shift(),Math.round(100*e.confidence),Math.round(100*e.threshold),e.roles&&Object.keys(e.roles),rt){const t=new CustomEvent("lokascript:semantic:parse",{detail:e,bubbles:!0});rt.dispatchEvent(t)}}(s),r=s,it.totalParses++,r.semanticSuccess?it.semanticSuccesses++:r.fallbackTriggered?it.semanticFallbacks++:it.traditionalParses++,it.confidenceHistory.push(r.confidence),it.confidenceHistory.length>100&&it.confidenceHistory.shift(),it.averageConfidence=it.confidenceHistory.reduce((e,t)=>e+t,0)/it.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:String(e)]}}var r}buildCommandNode(e){const{command:t}=e;if(!t)throw new 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:String(n.value),start:0,end:0,line:1,column:0});const i=e.roles.get("patient");"for"===(n?String(n.value):"")&&i&&t.push({type:"identifier",name:"expression"===i.type&&i.raw||String(i.value),start:0,end:0,line:1,column:0});const a=e.roles.get("event");a&&t.push({type:"string",value:String(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(;t<e.length&&/\s/.test(e[t]);)t++},n=()=>{r();const n=t;for(;t<e.length&&/[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(;t<e.length;){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 lt(e){return{analyze(t,r){if(!e.isRegistered(r))return{confidence:0,errors:[`Language '${r}' is not supported for semantic parsing`]};const n=e.parse(t,r);return{confidence:n.confidence,...void 0!==n.tokensConsumed?{tokensConsumed:n.tokensConsumed}:{},...n.node?{command:{name:n.node.action,roles:n.node.roles}}:{},...n.error?{errors:[n.error]}:{}}},supportsLanguage:t=>e.isRegistered(t),supportedLanguages:()=>e.registered()}}function ct(e){return e.kind===Le.IDENTIFIER&&N.has(e.value.toLowerCase())}function ut(e){return e.kind===Le.IDENTIFIER&&U.has(e.value.toLowerCase())}function pt(e){return e.kind===Le.IDENTIFIER&&F.has(e.value.toLowerCase())}function mt(e){return e.kind===Le.IDENTIFIER&&D.has(e.value.toLowerCase())}function dt(e){return H.has(e.value.toLowerCase())}function ft(e){return e.kind===Le.IDENTIFIER}function ht(e){return e.kind===Le.SELECTOR}function yt(e){return e.kind===Le.SELECTOR&&!e.value.startsWith("<")}function gt(e){return e.kind===Le.STRING||e.kind===Le.NUMBER||e.kind===Le.TEMPLATE}function vt(e){return e.kind===Le.IDENTIFIER}function kt(e){return e.kind===Le.TIME}function wt(e){return e.kind===Le.SYMBOL}function bt(e){return e.kind===Le.COMMENT}function zt(e){if(e.kind!==Le.IDENTIFIER)return!1;const t=e.value.toLowerCase();return!(N.has(t)||U.has(t)||F.has(t)||D.has(t))}function xt(e){return e.kind===Le.STRING}function Et(e){return e.kind===Le.NUMBER}function St(e){if(e.kind===Le.IDENTIFIER){const t=e.value;return"true"===t||"false"===t||"null"===t||"undefined"===t}return!1}function Tt(e){return e.kind===Le.TEMPLATE}function Ct(e){return e.kind===Le.SELECTOR&&e.value.startsWith("<")}function At(e){return e.kind===Le.SELECTOR&&e.value.startsWith("#")}function Lt(e){return e.kind===Le.SELECTOR&&e.value.startsWith(".")}function jt(e){return e.kind===Le.SELECTOR&&(!e.value.startsWith("#")&&!e.value.startsWith("."))}function Pt(e){if(e.kind!==Le.OPERATOR)return!1;const t=e.value.toLowerCase();return!B.has(t)&&!H.has(t)}function Nt(e){const t=e.value.toLowerCase();return"then"===t||"and"===t||"else"===t||"end"===t||"on"===t}function Ot(e,t,r){return{type:"literal",value:e,raw:t,start:r.start,end:r.end,line:r.line,column:r.column}}function It(e,t){return{type:"identifier",name:e,start:t.start,end:t.end,line:t.line,column:t.column}}function Rt(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 Mt(e,t){return{type:"block",commands:e,start:t.start,end:t.end,line:t.line,column:t.column}}function $t(e,t){return{type:"string",value:e,start:t.start,end:t.end,line:t.line,column:t.column}}function Wt(e,t){return{type:"objectLiteral",properties:e,start:t.start,end:t.end,line:t.line,column:t.column}}function _t(e,t){return{type:"arrayLiteral",elements:e,start:t.start,end:t.end,line:t.line,column:t.column}}function qt(e,t,r){return{type:"propertyOfExpression",property:e,target:t,start:r.start,end:r.end,line:r.line,column:r.column}}function Vt(e,t,r){return{type:"command",name:"__ERROR__",args:[],diagnostics:[{message:t,severity:"error",code:"parse-error",line:e.line,column:e.column,...r&&{source:r}}],start:e.start,end:e.end,line:e.line,column:e.column}}st.SKIP_SEMANTIC_COMMANDS=new Set(["swap","morph","js","tell"]);const Dt=[{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 Bt(e,t){return!!e&&t.some(t=>e.value===t||e.value.toLowerCase()===t)}const Ht=[i,s,a,o];function Ft(e,t=[]){if(e.isAtEnd())return!0;for(const t of Ht)if(e.check(t))return!0;for(const r of t)if(e.check(r))return!0;return!!e.checkIsCommand()}function Ut(e,t=[]){if(!Ft(e,t))return e.parseExpression()}function Kt(e,t,r){return!!e.check(t)&&(e.advance(),r.push(e.createIdentifier(t)),!0)}function Gt(e,t,r){for(const n of t)if(e.check(n))return e.advance(),r.push(e.createIdentifier(n)),n;return null}function Jt(e,t){return!!e.check(t)&&(e.advance(),!0)}function Yt(e){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 n=e.parseExpression();return void 0!==r?{name:r,value:n}:{value:n}}class Zt{constructor(e){this.args=[],this.isBlocking=!1,this.name=e}static from(e){const t=new Zt(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 Zt(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 Zt(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 Zt(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 Xt(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{name:r,value:n}=Yt(e);if(t.push(void 0!==r?{type:"objectLiteral",properties:[{key:{type:"identifier",name:r},value:n}],start:n.start,end:n.end,line:n.line,column:n.column}:n),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})}const s=[...r];for(;!Ft(e);){if(e.check("on")||e.check("to")){const t=e.advance().value;s.push(e.createIdentifier(t));continue}s.push(e.parsePrimary())}return Zt.fromIdentifier(t).withArgs(...s).endingAt(e.getPosition()).build()}function Qt(e,t){const r=[];if(e.check(L)){const t=e.advance();if(r.push({type:"identifier",name:L,start:t.start,end:t.end,line:t.line,column:t.column}),e.check(E)){const t=e.advance();r.push({type:"identifier",name:E,start:t.start,end:t.end,line:t.line,column:t.column})}}return Zt.fromIdentifier(t).withArgs(...r).endingAt(e.getPosition()).build()}function er(e,t){const r=[];let n=!1;const s=e.savePosition();for(let t=0;t<500&&!e.isAtEnd();t++){const t=e.peek();if(t.value===i){n=!0;break}if(t.value===o||t.value===T||t.value===S||t.value===x)break;e.advance()}e.restorePosition(s);let c=!1;if(!n){const r=e.savePosition(),n=t.line,i=100;for(;!e.isAtEnd()&&e.current-r<i;){const t=e.peek(),r=t.value?.toLowerCase();if(r===T||r===S||r===x)break;if(r===a||r===o){t.line===n&&(c=!0);break}if((e.checkIsCommand()||e.isCommand(r))&&void 0!==t.line&&t.line!==n){c=!0;break}e.advance()}e.restorePosition(r)}const u=n||c;let p;if(u)p=e.parseExpression();else{const r=[],n=20;let a=0;for(;!e.isAtEnd()&&!e.checkIsCommand()&&!e.isCommand(e.peek().value)&&!e.check(i)&&a<n;){const t=e.savePosition();r.push(e.parseLogicalAnd()),e.savePosition()===t&&e.advance(),a++}if(0===r.length)throw new Error("Expected condition after if/unless");p=1===r.length?r[0]:{type:"expression",tokens:r,start:r[0].start,end:r[r.length-1].end,line:t.line,column:t.column}}if(r.push(p),u){n&&e.advance();const i=[];for(;!e.isAtEnd()&&!e.check(a)&&!e.check(o)&&(e.checkIsCommand()||e.isCommand(e.peek().value));){e.advance();const t=e.parseCommand();t&&i.push(t)}if(0===i.length&&e.isAtEnd())throw new Error("Expected command after 'then' in if statement - incomplete conditional");r.push(Mt(i,{start:t.start,end:e.getPosition().end,line:t.line,column:t.column}));let s=!1;if(e.check(a))if(e.advance(),e.check(l)){const t=e.peek();e.advance();const n=er(e,t);r.push(Mt([n],{start:t.start,end:e.getPosition().end,line:t.line,column:t.column})),s=!0}else{const n=[];for(;!e.isAtEnd()&&!e.check(o)&&(e.checkIsCommand()||e.isCommand(e.peek().value));){e.advance();const t=e.parseCommand();t&&n.push(t)}r.push(Mt(n,{start:t.start,end:e.getPosition().end,line:t.line,column:t.column}))}s||e.consume(o,"Expected 'end' after if block")}else{if(!e.checkIsCommand()&&!e.isCommand(e.peek().value))throw new Error("Expected command after if condition in single-line form");{e.advance();const n=e.parseCommand();r.push(Mt([n],{start:t.start,end:e.getPosition().end,line:t.line,column:t.column}))}}return Zt.from(t).withArgs(...r).endingAt(e.getPosition()).build()}function tr(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=Zt.fromIdentifier(t).withArgs(...r).endingAt(e.getPosition());return Object.keys(n).length>0&&i.withModifiers(n),i.build()}function rr(e,t){const r=[],n=Ut(e,[v]);n&&r.push(n),Kt(e,v,r);const i=Ut(e);return i&&r.push(i),Zt.fromIdentifier(t).withArgs(...r).endingAt(e.getPosition()).build()}function nr(e,t){const r=[];if(e.check(z)){e.advance(),r.push(e.createIdentifier("between"));const n=Ut(e,[s]);n&&r.push(n),Kt(e,s,r);const i=Ut(e,[v,x,c]);i&&r.push(i);if(Gt(e,[v,x],r)){const t=Ut(e);t&&r.push(t)}return Zt.fromIdentifier(t).withArgs(...r).endingAt(e.getPosition()).build()}const n=Ut(e,[v,x]);n&&r.push(n);if(Gt(e,[v,x],r)){const t=Ut(e);t&&r.push(t)}return Zt.fromIdentifier(t).withArgs(...r).endingAt(e.getPosition()).build()}function ir(e,t){const r=e.parseExpression();if(!r)return e.addError("Put command requires content expression"),null;const n=e.peek();if(!n||!W.includes(n.value))return e.addError(`Expected operation keyword (${W.join(", ")}) after put expression, got: ${n?.value}`),null;let i=e.advance().value;const a=i.toLowerCase();"at start of"===a||"at the start of"===a?i=M:"at end of"===a||"at the end of"===a?i=$:i===R&&(e.check(j)||e.check(L)?(Jt(e,L),e.check(j)&&(e.advance(),e.check(w)&&(e.advance(),i=M))):e.check(o)&&(e.advance(),e.check(w)&&(e.advance(),i=$)));const s=e.parseExpression();return s?Zt.fromIdentifier(t).withArgs(r,e.createIdentifier(i),s).endingAt(e.getPosition()).build():(e.addError("Put command requires target expression after operation keyword"),null)}const ar=["innerhtml","outerhtml","into","over","delete","morph","morphouter"];function or(e,t){const r=e.savePosition();let n=null,l=[];try{n=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(C)&&!e.check(A))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){if(!e.check(L))return null;const t=e.savePosition();e.advance();const r=e.parseExpression();if(!r)return e.restorePosition(t),null;if("binaryExpression"===r.type&&r.operator===w){const e=r.left,t=r.right;return qt(e,t,{start:e.start??0,end:t.end??0,line:e.line??1,column:e.column??1})}return e.check(g)?r:(e.restorePosition(t),null)}(e),n||(n=e.parseExpression())}catch{e.restorePosition(r),n=null}if(!n){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(g)||e.check(i)||e.check(s)||e.check(a)||e.check(o));)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")===L&&e(t[2],"value")===w){const r=t[1],n=t[3];return{expression:qt(It(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);n=t.expression,l=t.tokens}if(!e.check(g)){const t=e.isAtEnd()?"end of input":e.peek().value;throw new Error(`Expected 'to' in set command, found: ${t}`)}e.advance();const c=e.parseExpression()??e.parsePrimary(),u=[];return n?u.push(n):l.length>0&&u.push(...l),u.push(e.createIdentifier(g)),c&&u.push(c),Zt.fromIdentifier(t).withArgs(...u).endingAt(e.getPosition()).build()}function sr(e,t){switch(t.name.toLowerCase()){case"put":return ir(e,t);case"trigger":case"send":return Xt(e,t);case"remove":return rr(e,t);case"toggle":return nr(e,t);case"set":return or(e,t);case"halt":return Qt(e,t);case"measure":return tr(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,i=function(e,t){const r=e.getInputSlice(t);if(!r)return t;let n=0;for(;n<r.length;){const e=r[n];if("'"!==e&&"’"!==e&&"‘"!==e)if('"'!==e)if("`"!==e)if("/"===e&&n+1<r.length&&"/"===r[n+1])for(n+=2;n<r.length&&"\n"!==r[n];)n++;else if("/"===e&&n+1<r.length&&"*"===r[n+1]){for(n+=2;n<r.length&&!("*"===r[n]&&n+1<r.length&&"/"===r[n+1]);)n++;n+=2}else{if(("e"===e||"E"===e)&&n+3<=r.length&&"end"===r.slice(n,n+3).toLowerCase()){const e=0===n||!/[a-zA-Z0-9_]/.test(r[n-1]),i=n+3>=r.length||!/[a-zA-Z0-9_]/.test(r[n+3]);if(e&&i)return t+n}n++}else{for(n++;n<r.length&&"`"!==r[n];)"\\"===r[n]&&n++,n++;n++}else{for(n++;n<r.length&&'"'!==r[n];)"\\"===r[n]&&n++,n++;n++}else{for(n++;n<r.length&&r[n]!==e;)"\\"===r[n]&&n++,n++;n++}}return t+r.length}(e,n);for(;!(e.isAtEnd()||e.check(o)||e.peek().start>=i);)e.advance();e.consume(o,"Expected end after js code body");const a=e.getInputSlice(n,i),s={type:"literal",value:a.trim(),start:t.start,end:e.getPosition().end},l={type:"arrayLiteral",elements:r.map(e=>({type:"literal",value:e,start:t.start,end:t.end})),start:t.start,end:e.getPosition().end};return Zt.fromIdentifier(t).withArgs(s,l).endingAt(e.getPosition()).build()}(e,t);case"tell":return function(e,t){const r=e.parseExpression();if(!r)throw new Error("tell command requires a target expression");const n=[];for(;!e.isAtEnd();){if(e.checkIsCommand()){try{e.advance();const t=e.parseCommand();if(!t)break;n.push(t)}catch{break}if(e.match(s))continue;if(e.check(i)||e.check(a)||e.check(o))break;if(e.checkIsCommand())continue;break}break}if(0===n.length)throw new Error("tell command requires at least one command after the target");return Zt.fromIdentifier(t).withArgs(r,...n).endingAt(e.getPosition()).build()}(e,t);case"pick":return function(e,t){const r=Zt.fromIdentifier(t);Jt(e,L);const n=e.peek(),i=n.value,a=e=>({type:"literal",value:e,start:t.start,end:t.end}),o=()=>{if(!e.match("of","from"))throw new Error("pick: expected 'of' or 'from' before source expression");return e.parseExpression()};if("first"===i){e.advance();const t=e.parsePrimary(),n=o();return r.withArgs(n).withModifier("variant",a("first")).withModifier("count",t).endingAt(e.getPosition()).build()}if("last"===i){e.advance();const t=e.parsePrimary(),n=o();return r.withArgs(n).withModifier("variant",a("last")).withModifier("count",t).endingAt(e.getPosition()).build()}if("random"===i){let t;e.advance(),e.check("of")||e.check("from")||(t=e.parsePrimary());const n=o(),i=r.withArgs(n).withModifier("variant",a("random"));return t&&i.withModifier("count",t),i.endingAt(e.getPosition()).build()}if("item"===i||"items"===i||"character"===i||"characters"===i){let t,n;e.advance(),e.match("at","from"),t=e.match("start")?a("start"):e.parsePrimary();let i=!1;(e.match("to")||e.match(".."))&&(e.match("end")?i=!0:n=e.parsePrimary());let s="default";e.match("inclusive")?s="inclusive":e.match("exclusive")&&(s="exclusive");const l=o(),c=r.withArgs(l).withModifier("variant",a("range")).withModifier("rangeStart",t).withModifier("rangeMode",a(s));return i?c.withModifier("rangeEnd",a("end")):n&&c.withModifier("rangeEnd",n),c.endingAt(e.getPosition()).build()}if("match"===i||"matches"===i){e.advance(),e.match("of");const t=e.parsePrimary();let n;e.matchOperator("|")&&(n=e.advance().value);const s=o(),l=r.withArgs(s).withModifier("variant",a("match"===i?"match":"matches")).withModifier("regex",t);return n&&l.withModifier("flags",a(n)),l.endingAt(e.getPosition()).build()}return lr(e,t)}(e,t);case"start":return function(e,t){if(!e.match("view"))throw new Error("start: expected 'view transition' (only `start view transition ... end` is supported)");if(!e.match("transition"))throw new Error("start view: expected 'transition'");const r={};if(e.match("using")){const t=e.parsePrimary();r.transitionName=t}const n=e.parseCommandListUntilEnd();return Zt.fromIdentifier(t).withArgs(...n).withModifiers(r).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();ar.includes(i)&&(n=i,e.advance(),r.push(e.createIdentifier(n)))}}if("delete"===n){const n=e.parseExpression();return n&&r.push(n),Zt.fromIdentifier(t).withArgs(...r).endingAt(e.getPosition()).build()}!e.isAtEnd()&&e.check(w)&&(e.advance(),r.push(e.createIdentifier("of")));const i=e.parseExpression();if(i&&r.push(i),!e.isAtEnd()&&e.check(k)){e.advance(),r.push(e.createIdentifier("with"));const t=e.parseExpression();t&&r.push(t)}return Zt.fromIdentifier(t).withArgs(...r).endingAt(e.getPosition()).build()}(e,t);default:return lr(e,t)}}function lr(e,t){const r=[];for(;!Ft(e,["catch","finally"])&&(e.checkIdentifierLike()||e.checkSelector()||e.checkLiteral()||e.checkTimeExpression()||e.match("<"));)r.push(e.parsePrimary());return Zt.fromIdentifier(t).withArgs(...r).endingAt(e.getPosition()).build()}function cr(e){if(e.isAtEnd())return!0;const t=e.peek().value;return["as","with","{","then","end","else","otherwise",")"].includes(t)||Ft(e)}function ur(e,t){const r={};let n=null;if(!e.isAtEnd()&&e.check("/")&&(n=function(e){const t=e.savePosition();let r="";for(;!e.isAtEnd()&&!cr(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"),Zt.from(t).endingAt(e.getPosition()).build();!e.isAtEnd()&&e.check("{")&&(r.with=e.parsePrimary());for(let t=0;t<3&&!e.isAtEnd();t++)if(!e.check("as")||r.as){if(!e.check("with")||r.with){if(e.check("do")&&!r.doNotThrow){const t=e.peekAt(1),n=e.peekAt(2);if("not"===t?.value&&"throw"===n?.value){const t=e.advance();e.advance();const n=e.advance();r.doNotThrow={type:"literal",value:!0,start:t.start,end:n.end,line:t.line,column:t.column};continue}}break}e.advance(),r.with=pr(e)?mr(e):e.parsePrimary()}else e.advance(),e.isAtEnd()||Jt(e,"a")||Jt(e,"an"),r.as=e.parsePrimary();const i=Zt.from(t).withArgs(n).endingAt(e.getPosition());return Object.keys(r).length>0&&i.withModifiers(r),i.build()}function pr(e){if(e.check("{"))return!1;if(!e.checkIdentifierLike())return!1;const t=e.peekAt(1);return null!==t&&":"===t.value}function mr(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 dr{constructor(e,t,r){this.current=0,this.errors=[],this.warnings=[],this.prattCache=new Map,this.tokens=e,this.keywordResolver=t?.keywords,this.registryIntegration=t?.registryIntegration,t?.semanticAnalyzer&&t?.language&&(this.semanticAdapter=new st({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(){this.prattCache.clear();const e=this.parseInternal();return this.errors.length>0&&(e.errors=[...this.errors]),e}parseInternal(){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}}const e=this.peek(),t=e&&le(e.value)?e.value:null;if(this.check("init")||this.check("on")||this.check("def")||this.checkComment()||null!==t){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")){const t=this.peek(),r=t?le(t.value):void 0;if(r){const t=this.advance(),n=r(this.getContext(),t);n&&e.push(n);continue}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 r=this.parseExpression();if(this.error)return{success:!1,node:r||this.createErrorNode(),tokens:this.tokens,error:this.error};if(!this.isAtEnd()){const e=this.peek();return r&&["number","string","identifier"].includes(e.kind)?this.addError(`Unexpected token: ${e.value} (missing operator between values? expected one of +, -, *, /, etc.)`):this.addError(`Unexpected token: ${e.value}`),{success:!1,node:r||this.createErrorNode(),tokens:this.tokens,error:this.error,warnings:this.warnings}}return{success:!0,node:r,tokens:this.tokens,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.parseExpressionPratt(0)}parseExpressionPratt(e){const t=`${this.current}:${e}`,r=this.prattCache.get(t);if(r)return this.current=r.endPos,r.node;if(this.isAtEnd())return this.addError("Unexpected end of expression"),this.createErrorNode();const n=this.peek(),i=dr.PRATT_TABLE.get(n.value);let a;if(i?.prefix){const e=this.advance();if(this.isAtEnd())return this.addError(`Expected expression after '${e.value}' operator`),this.createErrorNode();a=i.prefix.handler(e,this.makePrattContext())}else a=this.parseCall();for(;!this.isAtEnd();){const t=this.peek(),r=dr.PRATT_TABLE.get(t.value);if(!r?.infix){if(K.has(t.value)||G.has(t.value))break;break}const[n]=r.infix.bp;if(n<e)break;if("="===t.value&&this.current+1<this.tokens.length&&">"===this.tokens[this.current+1].value){if(this.advance(),this.advance(),this.addError('Arrow functions (=>) are not supported in hyperscript. Use "js ... end" blocks for JavaScript callbacks.'),!this.isAtEnd())try{this.parseExpressionPratt(0)}catch(e){e instanceof Error||String(e)}return this.createErrorNode()}if("+"===t.value||"-"===t.value){const e=this.current+1<this.tokens.length?this.tokens[this.current+1]:null;if(e&&("+"===e.value||"-"===e.value))return this.addError(`Invalid operator combination: ${t.value}${e.value}`),a}if("*"===t.value||"/"===t.value||"%"===t.value){const e=this.current+1<this.tokens.length?this.tokens[this.current+1]:null;if(e&&("*"===e.value||"/"===e.value||"%"===e.value||"+"===e.value||"-"===e.value))return this.addError("*"===t.value&&"*"===e.value?`Unexpected token: ${e.value}`:`Invalid operator combination: ${t.value}${e.value}`),a}const i=this.advance();if(this.isAtEnd()&&!dr.POSTFIX_UNARY_OPERATORS.has(i.value))return this.addError(`Expected expression after '${i.value}' operator`),a;a=r.infix.handler(a,i,this.makePrattContext())}return this.prattCache.set(t,{node:a,endPos:this.current}),a}makePrattContext(){const e=this;return{peek:()=>e.current<e.tokens.length?e.tokens[e.current]:void 0,advance:()=>{const t=e.tokens[e.current];return e.current++,t},parseExpr:t=>e.parseExpressionPratt(t),isStopToken:()=>{const t=e.tokens[e.current];return!t||(K.has(t.value)||G.has(t.value))},atEnd:()=>e.current>=e.tokens.length}}parseLogicalAnd(){return this.parseExpressionPratt(11)}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()||this.checkNumber()||this.checkIdentifier()||this.checkContextVar()||this.check("("))){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 sr(this.getContext(),e)}parsePutCommand(e){return ir(this.getContext(),e)}parseSetCommand(e){return or(this.getContext(),e)}parseHaltCommand(e){return Qt(this.getContext(),e)}parseMeasureCommand(e){return tr(this.getContext(),e)}parseTriggerCommand(e){return Xt(this.getContext(),e)}parseCommandListUntilTerminator(e){const t=[],r=()=>this.check("end")||e.some(e=>this.check(e));for(e.join(",");!this.isAtEnd()&&!r();){this.peek(),this.peek();let e=!1;const n=this.checkIsCommand(),i=!n&&this.checkIdentifier()&&this.isCommand(this.peek().value);if(n||i){this.peek(),this.advance();const r=this.error;try{const n=this.parseCommand();this.error&&this.error!==r&&(this.error=r),n&&(t.push(n),e=!0)}catch(e){e instanceof Error||String(e),this.error=r}}else this.checkIdentifier()&&this.peek();if(!e){this.peek();break}for(this.peek();!(this.isAtEnd()||r()||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}}let n="end";for(const t of e)if(this.check(t)){n=t;break}return this.check("end")||e.some(e=>this.check(e))||(n=""),{commands:t,terminator:n}}parseCommandListUntilEnd(){const{commands:e}=this.parseCommandListUntilTerminator([]);if(this.peek(),!this.check("end"))throw this.peek(),this.peek(),new Error('Expected "end" to close repeat block');return this.advance(),e}parseCommandListUntilEndOrElse(){const{commands:e,terminator:t}=this.parseCommandListUntilTerminator(["else"]),r="else"===t;if(!r){if(!this.check("end"))throw new Error('Expected "end" to close repeat block');this.advance()}return{commands:e,hasElse:r}}parseRepeatBody(){const{commands:e,terminator:t}=this.parseCommandListUntilTerminator(["else","until","while"]);if("end"===t)this.advance();else if(""===t)throw new Error('Expected "end", "else", "until", or "while" to close repeat block');return{commands:e,terminator:t}}parseRepeatCommand(e){return function(e,t){const r=[];let n="forever",i=null,a=null,o=null,s=null,l=null,f=null;if(e.check(c)){e.advance(),n=c;const t=e.peek();ft(t)&&(l=t.value,e.advance()),e.check(y)&&(e.advance(),s=e.parseExpression())}else if(e.check(y))e.advance(),n=c,l="it",s=e.parseExpression();else if(e.check(u))e.advance(),n=u,o=e.parseExpression();else if(e.check(p))if(e.advance(),n=p,e.check(E)){e.advance(),n="until-event";const t=e.peek();if(!ft(t)&&!pt(t))throw new Error('Expected event name after "event"');i=t.value,e.advance(),e.peek(),e.peek(),e.check(v)&&(e.advance(),e.peek(),Jt(e,L),e.peek(),a=e.parsePrimary())}else o=e.parseExpression();else e.check(m)?(e.advance(),n=m):(f=e.parseExpression(),e.check(d)&&(e.advance(),n=d));let g,w=null;if(e.check(k)){const t=e.peekAt(1);t&&t.value.toLowerCase()===h&&(e.advance(),e.advance(),w=h)}else if(e.check(h)){e.advance();const t=e.peek();ft(t)?(w=t.value,e.advance()):w=h}let b=null,z=!1;if(n===m){const t=e.parseRepeatBody();if(g=t.commands,"else"===t.terminator)e.advance(),b=e.parseCommandListUntilEnd();else if("until"===t.terminator||"while"===t.terminator){if(z=!0,n=t.terminator,e.advance(),o=e.parseExpression(),!e.check("end"))throw new Error('Expected "end" to close repeat block');e.advance()}}else{const t=e.parseCommandListUntilEndOrElse();g=t.commands,t.hasElse&&(e.advance(),b=e.parseCommandListUntilEnd())}r.push({type:"identifier",name:n,start:t.start,end:t.end,line:t.line,column:t.column});const x={start:t.start,end:t.end,line:t.line,column:t.column};l&&r.push($t(l,x)),s&&r.push(s),o&&r.push(o),f&&r.push(f),i&&r.push($t(i,x)),a&&r.push(a),w&&r.push($t(w,x)),r.push(Mt(g,{...x,end:x.end||0})),null!==b&&r.push(Mt(b,{...x,end:x.end||0}));const S=Zt.from(t).withArgs(...r);return z&&S.withModifier("bottomTested",{type:"literal",value:!0,...x}),S.endingAt(e.getPosition()).build()}(this.getContext(),e)}parseForCommand(e){return function(e,t){const r=[];let n=null,i=null;e.check(f)&&e.advance();const a=e.peek();if(!ft(a))throw new Error('Expected variable name after "for"');if(n=a.value,e.advance(),!e.check(y))throw new Error('Expected "in" after variable name in for loop');if(e.advance(),i=e.parseExpression(),!i)throw new Error('Expected collection expression after "in"');let o=null;if(e.check(k)){const t=e.peekAt(1);t&&t.value.toLowerCase()===h&&(e.advance(),e.advance(),o=h)}else if(e.check(h)){e.advance();const t=e.peek();ft(t)?(o=t.value,e.advance()):o=h}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($t(n,l)),r.push(i),o&&r.push($t(o,l)),r.push(Mt(s,{...l,end:l.end||0})),Zt.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()||e.checkContextVar()||e.check("(")||e.checkIdentifierLike()&&!e.check("for")&&!Ft(e)){const n=e.parseExpression();return r.push(n),Zt.from(t).withArgs(...r).blocking().endingAt(e.getPosition()).build()}if(e.check("for")){e.advance();const n=[];do{const t=e.peek();if(!ft(t))throw new 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(!ft(t))break;i.push(t.value),e.advance(),e.check(",")&&e.advance()}if(!e.check(")"))throw new 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(v)&&(e.advance(),Jt(e,L),i=e.parsePrimary());const a={start:t.start,end:e.getPosition().end,line:t.line,column:t.column};r.push(_t(n.map(e=>Wt([{key:It("name",a),value:Ot(e.name,`"${e.name}"`,a)},{key:It("args",a),value:_t(e.params.map(e=>Ot(e,`"${e}"`,a)),a)}],a)),a)),i&&r.push(i)}return Zt.from(t).withArgs(...r).blocking().endingAt(e.getPosition()).build()}(this.getContext(),e)}parseInstallCommand(e){return function(e,t){const r=[];if(!e.checkIdentifierLike())throw new Error('Expected behavior name after "install"');const n=e.advance().value,i=e.previous();if(r.push(It(n,{start:i.start,end:i.end,line:i.line,column:i.column})),e.check("(")){e.advance();const n=[];for(;!e.isAtEnd()&&!e.check(")");)if(n.push(Yt(e)),e.check(","))e.advance();else if(!e.check(")"))break;if(!e.check(")"))throw new 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(Wt(n.map(e=>({key:e.name?It(e.name,i):Ot("_positional","_positional",i),value:e.value})),i))}}return Zt.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(ft(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 new Error("Transition command requires a CSS property");if(r.push(i),!e.check(g))throw new 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(k)){e.advance();const t=e.parsePrimary();n.with=t}return Zt.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=Ut(e,[g]);t&&r.push(t)}if(e.check(g)){e.advance();const t=Ut(e);t&&r.push(t)}return Zt.from(t).withArgs(...r).endingAt(e.getPosition()).build()}(this.getContext(),e)}parseIfCommand(e){return er(this.getContext(),e)}parseRemoveCommand(e){return rr(this.getContext(),e)}parseToggleCommand(e){return nr(this.getContext(),e)}parseRegularCommand(e){return lr(this.getContext(),e)}parseCall(){let e=this.parsePrimary();for(;;)if(this.match("("))e=this.finishCall(e);else if(this.match(".")){const t=this.consumeIdentifierLike("Expected property name after '.' - malformed member access");e=this.createMemberExpression(e,this.createIdentifier(t.value),!1)}else if(this.match("?.")){const t=this.consumeIdentifierLike("Expected property name after '?.' - malformed optional access"),r=this.createMemberExpression(e,this.createIdentifier(t.value),!1);r.optional=!0,e=r}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(wt(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()&&ft(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(e.length<2||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(),t=this.createSelector(e);return t.fromQuery=!0,t}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(zt)||this.matchPredicate(ut)||this.matchPredicate(mt)||this.matchPredicate(ct)||this.matchPredicate(pt))){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.isAtEnd()||this.checkBasicOperator()||this.check("then")||this.check("else")||this.check("end")?this.createIdentifier(e.value):this.parseNavigationFunction(e.value)}const t=this.check(".")||this.check("?.");if("my"===e.value&&!t)return this.parseContextPropertyAccess("me");if("its"===e.value&&!t)return this.parseContextPropertyAccess("it");if("your"===e.value&&!t)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(wt(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(zt))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(zt))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();const n=[];if(!this.check(")"))do{n.push(this.parseExpression())}while(this.match(","));return this.consume(")","Expected ')' after constructor arguments"),{type:"callExpression",callee:{type:"identifier",name:r,start:t.start,end:t.end,line:t.line,column:t.column},arguments:n,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(!(dr.PSEUDO_COMMAND_PREPOSITIONS.includes(n.value.toLowerCase())||zt(n)&&!this.isCommand(n.value)||mt(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}}),dr.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 t instanceof Error||String(t),this.error=e,null}}parseEventHandler(){const e=[];let t=!1;if(this.check("first")&&!this.checkIsCommand()&&this.current+1<this.tokens.length){const e=this.tokens[this.current+1],r=e?.value?.toLowerCase();r&&"of"!==r&&"in"!==r&&"from"!==r&&(this.advance(),t=!0)}const r=this.parseEventNameWithNamespace("Expected event name after 'on'");for(e.push(r);this.check("or");){this.advance();const t=this.parseEventNameWithNamespace("Expected event name after 'or'");e.push(t)}let n;if(e.join(", "),this.registryIntegration){const t=e[0];if(this.registryIntegration.hasEventSource(t)){const e=this.registryIntegration.getEventSource(t);n=e?.name}}const i=[];if(this.match("(")){if(!this.check(")"))do{const e=this.advance();i.push(e.value)}while(this.match(","));this.consume(")","Expected ')' after event parameters"),i.join(", ")}const a={};for(;this.check(".");){this.advance();const e=this.advance().value.toLowerCase();if("once"===e)a.once=!0;else if("prevent"===e)a.prevent=!0;else if("stop"===e)a.stop=!0;else if("debounce"===e||"throttle"===e){if(!this.check("("))throw new Error(`Expected '(' after '.${e}'`);{this.advance();const t=this.advance(),r=parseInt(t.value,10);if(isNaN(r))throw new Error(`Expected number for ${e} delay, got: ${t.value}`);"debounce"===e?a.debounce=r:a.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=(o=e.value).endsWith("ms")?parseInt(o,10):o.endsWith("seconds")||o.endsWith("s")?1e3*parseFloat(o):o.endsWith("minutes")?6e4*parseFloat(o):o.endsWith("hours")?36e5*parseFloat(o):o.endsWith("days")?864e5*parseFloat(o):parseInt(o,10);a[t]=r}else if(this.matchNumber()){const e=parseInt(this.previous().value,10);a[t]=e}else this.addError(`Expected time expression after '${e} at', got: ${this.peek().value}`);else this.addError(`Expected 'at' after '${e}'`)}var o;let s,l,c,u;if(t&&(a.once=!0),Object.keys(a),this.match("[")&&(s=this.parseExpression(),this.consume("]","Expected ']' after event condition")),this.match("from")){const e=this.advance();l=e.value}if(this.match("of")){const e=this.advance();c=e.value.startsWith("@")?e.value.substring(1):e.value}this.match("in")&&(u=this.parseExpression());const p=[];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();p.push(r);continue}if(e&&"callExpression"===e.type){const t=this.tryParsePseudoCommand(e,e);if(p.push(t.node),t.isPseudo||t.targetFailed)continue}}else{const e=this.parseCommandWithErrorRecovery();e&&(p.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&&p.push(e)}else{let e;const t=this.error;try{e=this.parseExpression()}catch(e){e instanceof Error||String(e),this.error=t;break}if(e&&"callExpression"===e.type){const t=this.tryParsePseudoCommand(e,e);if(p.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}};p.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 m=this.getPosition(),d={type:"eventHandler",event:1===e.length?e[0]:e.join("|"),events:e,commands:p,...i.length>0&&{params:i},...s&&{condition:s},...l&&{target:l},...c&&{attributeName:c},...u&&{watchTarget:u},...n&&{customEventSource:n},...Object.keys(a).length>0&&{modifiers:a},start:m.start,end:m.end,line:m.line,column:m.column};return e.join(", "),d}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.parseEventNameWithNamespace("Expected event name after 'on'"),r=[];if(this.check("(")){for(this.advance();!this.isAtEnd()&&!this.check(")");){const e=this.peek();zt(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}{const t=this.peek(),r=this.getPosition(),n=`Expected command, got: ${t.value}`;this.addError(n);const i=Vt(r,n,t.value);if(e.push(i),this.synchronizeToCommandBoundary(),this.isAtEnd())break;if(this.match("then"))continue;if(this.check("end")||this.check("on"))break;if(this.checkIsCommand()||this.isCommand(this.peek().value)&&!this.isKeyword(this.peek().value))continue;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 Dt.find(t=>t.command===e.toLowerCase())||null}(e)}isTokenKeyword(e,t){return Bt(e,t)}parseMultiWordCommand(e,t){return function(e,t,r){const n=e.getMultiWordPattern(r);if(!n)return null;const i=[],a={};for(;!Ft(e,["catch","finally",...n.keywords])&&!Bt(e.peek(),n.keywords);){const t=e.parsePrimary();if(!t)break;if(i.push(t),!e.match(",")&&Bt(e.peek(),n.keywords))break}for(;!e.isAtEnd()&&Bt(e.peek(),n.keywords);){const t=e.advance().value,r=e.parseExpression();if(r&&(a[t]=r),!Bt(e.peek(),n.keywords))break}const o=Zt.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(ct(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","toggle","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 ur(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})||function(e,t){return{type:"command",name:e,args:[],partial:!0,start:t.start,end:t.end,line:t.line,column:t.column}}(n,this.getPosition())}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(C)&&(i=!0,e.advance());const a=e.parseExpression();if(!a)throw new Error(`Expected variable or expression after ${r}`);let o;if(e.check(b)){e.advance();const t=e.parseExpression();if(!t)throw new Error(`Expected amount after 'by' in ${r} command`);o=t}else o=Ot(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=Rt(n,a,o,l),u=[s,It(g,l),c];return Zt.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(wt(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 Ot(e,t,this.getPosition())}createIdentifier(e){return It(e,this.getPosition())}createBinaryExpression(e,t,r){return Rt(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!(!Pt(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(yt)}matchSelector(){return this.matchPredicate(yt)}checkAnySelector(){return this.checkPredicate(ht)}checkLiteral(){return this.checkPredicate(gt)}checkIdentifierLike(){return this.checkPredicate(ft)}checkIsCommand(){return this.checkPredicate(ct)}checkCommandTerminator(){return this.checkPredicate(Nt)}checkReference(){return this.checkPredicate(vt)}checkTimeExpression(){return this.checkPredicate(kt)}checkEvent(){return this.checkPredicate(pt)}checkContextVar(){return this.checkPredicate(mt)}checkComment(){return this.checkPredicate(bt)}checkIdentifier(){return this.checkPredicate(zt)}checkKeyword(){return this.checkPredicate(ut)}checkString(){return this.checkPredicate(xt)}matchString(){return this.matchPredicate(xt)}checkNumber(){return this.checkPredicate(Et)}matchNumber(){return this.matchPredicate(Et)}checkBoolean(){return this.checkPredicate(St)}matchBoolean(){return this.matchPredicate(St)}checkTemplateLiteral(){return this.checkPredicate(Tt)}matchTemplateLiteral(){return this.matchPredicate(Tt)}checkQueryReference(){return this.checkPredicate(Ct)}matchQueryReference(){return this.matchPredicate(Ct)}checkIdSelector(){return this.checkPredicate(At)}checkClassSelector(){return this.checkPredicate(Lt)}checkCssSelector(){return this.checkPredicate(jt)}checkBasicOperator(){return this.checkPredicate(Pt)}matchBasicOperator(){return this.matchPredicate(Pt)}matchTimeExpression(){return this.matchPredicate(kt)}matchIdentifierLike(){return this.matchPredicate(ft)}matchComparisonOperator(){return this.matchPredicate(dt)}consumePredicate(e,t){return this.checkPredicate(e)?this.advance():(this.addError(t),this.peek())}consumeIdentifier(e){return this.consumePredicate(zt,e)}consumeIdentifierLike(e){return this.consumePredicate(ft,e)}consumeEvent(e){return this.consumePredicate(pt,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)},this.errors.push(this.error)}synchronizeToCommandBoundary(){for(;!this.isAtEnd();){const e=this.peek();if("then"===e.value||"end"===e.value||"on"===e.value)return;if(this.checkIsCommand()||this.isCommand(e.value)&&!this.isKeyword(e.value))return;this.advance()}}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=new Set(["=","~=","|=","^=","$=","*="]),i=this.tokens[this.current],a=this.tokens[this.current+1];if("identifier"===i?.kind&&("]"===a?.value||a&&n.has(a.value)&&"string"===this.tokens[this.current+2]?.kind)){let e="["+this.advance().value;if(this.check("]"))this.advance(),e+="]";else{const t=this.advance().value,r=this.advance().value;e+=t+'"'+(r.startsWith('"')&&r.endsWith('"')||r.startsWith("'")&&r.endsWith("'")?r.slice(1,-1):r)+'"',this.consume("]","Expected ']' after attribute selector"),e+="]"}return this.createSelector(e)}const o=[];if(!this.check("]"))do{if(this.check("]"))break;o.push(this.parseExpression())}while(this.match(","));return this.consume("]","Expected ']' after array elements"),{type:"arrayLiteral",elements:o,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),parseExpression:this.parseExpression.bind(this),parsePrimary:this.parsePrimary.bind(this),parseLogicalAnd:this.parseLogicalAnd.bind(this),parseCSSObjectLiteral:this.parseCSSObjectLiteral.bind(this),parseCommand:this.parseCommand.bind(this),parseCommandSequence:this.parseCommandSequence.bind(this),parseCommandListUntilEnd:this.parseCommandListUntilEnd.bind(this),parseCommandListUntilEndOrElse:this.parseCommandListUntilEndOrElse.bind(this),parseRepeatBody:this.parseRepeatBody.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&&r<e.tokens.length?e.tokens[r]:null},getInputSlice:(e,t)=>this.originalInput?e<0||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}}function fr(e,t){const r=Ne(e);return new dr(r,t,e).parse()}function hr(e,t){const r=e.registry?.get(t);if(!r)throw new Error(`Expression '${t}' not in ExecutionContext.registry. The bundle's ExpressionRegistry must include this expression's category. Use createExpressionRegistry() with the relevant category objects (referencesExpressions, logicalExpressions, conversionExpressions, positionalExpressions, propertiesExpressions, specialExpressions, mathematicalExpressions).`);return r}function yr(e){if(e&&"object"==typeof e&&"success"in e){if(e.success)return"value"in e?e.value:void 0;const t=e.errors||[];throw new Error(t.length>0?t[0].message:"Expression evaluation failed")}return e}async function gr(e,t){if(!e)throw new Error("Cannot evaluate null or undefined AST node");if("literal"===e.type)return e.value;if("identifier"===e.type)return br(e,t);const r=e;switch(e.type){case"literal":return function(e){return e.value}(r);case"identifier":return br(r,t);case"binaryExpression":return async function(e,t){const r=e.operator,n=e.right,i=e.left;if("has"===r||"have"===r){const r=await gr(e.left,t);return!!(r instanceof Element&&"selector"===n.type&&"string"==typeof n.value&&n.value.startsWith("."))&&r.classList.contains(n.value.slice(1))}if("in"===r||"is in"===r){const r="callExpression"===i?.type&&"identifier"===i.callee?.type?i.callee.name:null;if(("first"===r||"last"===r)&&Array.isArray(i.arguments)){const n=i.arguments[0];if("selector"===n?.type&&"string"==typeof n.value){const i=await gr(e.right,t);if(i&&"function"==typeof i.querySelectorAll){const e=Array.from(i.querySelectorAll(n.value));return 0===e.length?null:"first"===r?e[0]:e[e.length-1]}}}if("selector"===i?.type&&i.fromQuery&&"string"==typeof i.value){const r=await gr(e.right,t),n=r&&"function"==typeof r.querySelectorAll?r:null;if(n)return Array.from(n.querySelectorAll(i.value))}}const a=await gr(e.left,t);if("and"===r){if(!a)return a;const r=await gr(e.right,t);return hr(t,"and").evaluate(t,a,r)}if("or"===r){if(a)return a;const r=await gr(e.right,t);return hr(t,"or").evaluate(t,a,r)}const o=await gr(e.right,t),s=e=>"string"==typeof e?e.toLowerCase():e,l=e.ignoringCase?s(a):a,c=e.ignoringCase?s(o):o;switch(r){case"+":return"string"==typeof a||"string"==typeof o?String(a??"")+String(o??""):yr(await hr(t,"addition").evaluate(t,{left:a,right:o}));case"-":return yr(await hr(t,"subtraction").evaluate(t,{left:a,right:o}));case"*":return yr(await hr(t,"multiplication").evaluate(t,{left:a,right:o}));case"/":return yr(await hr(t,"division").evaluate(t,{left:a,right:o}));case"%":case"mod":return yr(await hr(t,"modulo").evaluate(t,{left:a,right:o}));case"^":case"**":return yr(await hr(t,"power").evaluate(t,{left:a,right:o}));case">":case"is greater than":return hr(t,"greaterThan").evaluate(t,a,o);case"<":case"is less than":return hr(t,"lessThan").evaluate(t,a,o);case">=":case"is greater than or equal to":return hr(t,"greaterThanOrEqual").evaluate(t,a,o);case"<=":case"is less than or equal to":return hr(t,"lessThanOrEqual").evaluate(t,a,o);case"==":case"is":case"am":case"equals":case"is equal to":return hr(t,"equals").evaluate(t,l,c);case"!=":case"is not":case"is not equal to":return hr(t,"notEquals").evaluate(t,l,c);case"===":case"really equals":case"is really equal to":return hr(t,"strictEquals").evaluate(t,l,c);case"!==":case"is not really equal to":return hr(t,"strictNotEquals").evaluate(t,l,c);case"as":return hr(t,"as").evaluate(t,a,Er(o));case"contains":return hr(t,"contains").evaluate(t,l,c);case"does not contain":case"does not include":return hr(t,"doesNotContain").evaluate(t,l,c);case"starts with":return hr(t,"startsWith").evaluate(t,l,c);case"ends with":return hr(t,"endsWith").evaluate(t,l,c);case"does not start with":return!await hr(t,"startsWith").evaluate(t,l,c);case"does not end with":return!await hr(t,"endsWith").evaluate(t,l,c);case"match":case"matches":return hr(t,"matches").evaluate(t,l,c);case"in":case"is in":return zr(a,o);case"is not in":return!zr(a,o);case"of":return o&&"object"==typeof o?o[a]:void 0;case"precedes":return xr(a,o,Node.DOCUMENT_POSITION_FOLLOWING);case"does not precede":return!xr(a,o,Node.DOCUMENT_POSITION_FOLLOWING);case"follows":return xr(a,o,Node.DOCUMENT_POSITION_PRECEDING);case"does not follow":return!xr(a,o,Node.DOCUMENT_POSITION_PRECEDING);default:throw new Error(`Unknown binary operator: ${r}`)}}(r,t);case"asExpression":return async function(e,t){const r=await gr(e.expression,t),n=Er(e.targetType);return hr(t,"as").evaluate(t,r,n)}(r,t);case"betweenExpression":return async function(e,t){const r=await gr(e.value,t),n=await gr(e.min,t),i=await gr(e.max,t),a=e=>"string"==typeof e?e.toLowerCase():e,[o,s,l]=e.ignoringCase?[a(r),a(n),a(i)]:[r,n,i],c=await hr(t,"between").evaluate(t,o,s,l);return e.negated?!c:c}(r,t);case"typeCheckExpression":return async function(e,t){const r=await gr(e.value,t),n=String(e.typeName),i=!1!==e.nullOk,a=function(e,t,r){if(null==e&&r)return!0;const n=Object.prototype.toString.call(e).slice(8,-1);if(n===t)return!0;const i=globalThis[t];return"function"==typeof i&&e instanceof i}(r,n,i);return e.negated?!a:a}(r,t);case"collectionExpression":return async function(e,t){const r=await gr(e.collection,t),n=async(e,r)=>gr(e,{...t,it:r});switch(e.operator){case"where":return async function(e,t,r){const n=Ae(e),i=[];for(const e of n)await r(t,e)&&i.push(e);return i}(r,e.right,n);case"sorted by":return async function(e,t,r,n){const i=[...Ae(e)],a=await Promise.all(i.map(e=>n(t,e))),o=i.map((e,t)=>t);o.sort((e,t)=>{const r=a[e],n=a[t];return r===n?0:null==r?1:null==n||r<n?-1:1});const s=o.map(e=>i[e]);return"desc"===r?s.reverse():s}(r,e.right,e.order??"asc",n);case"mapped to":return async function(e,t,r){const n=Ae(e);return Promise.all(n.map(e=>r(t,e)))}(r,e.right,n);case"split by":return function(e,t){if(null==e)return[];const r=String(e),n=null==t?"":String(t);return r.split(n)}(r,await gr(e.right,t));case"joined by":return function(e,t){const r=Ae(e),n=null==t?"":String(t);return r.map(e=>null==e?"":String(e)).join(n)}(r,await gr(e.right,t));default:throw new Error(`Unknown collection operator: ${e.operator}`)}}(r,t);case"unaryExpression":return async function(e,t){const r=e.operand??e.argument;if(!r)throw new Error(`Unary expression has no operand (operator: ${e.operator})`);const n=await gr(r,t);switch(e.operator){case"not":case"!":return hr(t,"not").evaluate(t,n);case"no":return hr(t,"no").evaluate(t,n);case"-":return-n;case"+":return+n;case"exists":case"some":return hr(t,"exists").evaluate(t,n);case"does not exist":return hr(t,"doesNotExist").evaluate(t,n);case"is empty":return hr(t,"isEmpty").evaluate(t,n);case"is not empty":return hr(t,"isNotEmpty").evaluate(t,n);default:throw new Error(`Unknown unary operator: ${e.operator}`)}}(r,t);case"memberExpression":return async function(e,t){const r=await gr(e.object,t);if(e.computed){const n=await gr(e.property,t);return r?.[n]}{const t=e.property.name;if("string"==typeof t&&t.startsWith("@")){const e=t.substring(1);return r&&"function"==typeof r.getAttribute?r.getAttribute(e):void 0}return r instanceof Element&&"string"==typeof t?Ce(r,t):r?.[t]}}(r,t);case"callExpression":return async function(e,t){const r=await gr(e.callee,t);if(e.isConstructor&&"function"==typeof r){return new r(...await Promise.all(e.arguments.map(e=>gr(e,t))))}if("identifier"===e.callee.type){const n=e.callee.name,i=await async function(e,t,r){if(!Cr.has(t))return Promise.all(e.map(e=>gr(e,r)));return Promise.all(e.map(e=>"identifier"===e.type&&e.name?e.name:"selector"===e.type&&e.value?e.value:gr(e,r)))}(e.arguments,n,t);switch(n){case"closest":return hr(t,"closest").evaluate(t,...i);case"previous":return hr(t,"previous").evaluate(t,...i);case"next":return hr(t,"next").evaluate(t,...i);case"first":return hr(t,"first").evaluate(t,...i);case"last":return hr(t,"last").evaluate(t,...i);default:if("function"==typeof r)return r(...i);throw new Error(`Cannot call non-function: ${n}`)}}if("function"==typeof r){const n=await Promise.all(e.arguments.map(e=>gr(e,t)));if("memberExpression"===e.callee.type&&e.callee.object){const i=await gr(e.callee.object,t);return r.apply(i,n)}return r(...n)}throw new Error("Cannot call non-function")}(r,t);case"selector":return async function(e,t){const r=e.value,n="string"==typeof r?function(e){return e.replace(Ar,"$1\\:")}(r):r,i=await hr(t,"elementWithSelector").evaluate(t,n);if(!e.fromQuery&&"string"==typeof r&&r.startsWith("#"))return Array.isArray(i)?i[0]??null:i;return i}(r,t);case"possessiveExpression":return async function(e,t){const r=await gr(e.object,t),n=e.property.name;return hr(t,"possessive").evaluate(t,r,n)}(r,t);case"eventHandler":return async function(e,t){return{event:e.event,selector:e.selector,commands:e.commands,handler:async r=>{const n={...t,event:r,target:r.target,currentTarget:r.currentTarget};for(const t of e.commands)await gr(t,n)}}}(r,t);case"conditionalExpression":return async function(e,t){const r=await gr(e.test,t);if(r)return gr(e.consequent,t);if(e.alternate)return gr(e.alternate,t);return}(r,t);case"string":return r.value;case"arrayLiteral":return async function(e,t){const r=[];for(const n of e.elements)r.push(await gr(n,t));return r}(r,t);case"objectLiteral":return async function(e,t){const r={};for(const n of e.properties){const e=n.key;let i;i="identifier"===e.type?e.name:"literal"===e.type&&"string"===e.valueType?e.value:String(await gr(e,t)),r[i]=await gr(n.value,t)}return r}(r,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}`}(r,t);case"propertyOfExpression":return async function(e,t){const r=e.property;if("identifier"!==r?.type)throw new Error('Property name must be an identifier in "the X of Y" pattern');const n=r.name,i=await gr(e.target,t);if(null==i)throw new Error(`Cannot access property "${n}" of ${i}`);if(function(e){return e instanceof Element}(i))return Ce(i,n);const a=i[n];return"function"==typeof a?a.bind(i):a}(r,t);case"templateLiteral":return async function(e,t){let r=e.value;return r=await Tr(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=Sr(e[0],t);for(let t=1;t<e.length&&null!=n;t++)n=n[e[t]];return String(n??"")}const e=Sr(r,t);return String(e??"")}catch{return""}}),r=await Tr(r,/\$(?:\{([^}]+)\}|\(([^)]+)\))/g,async(e,r,n)=>{const i=r||n;try{const e=await vr(i,t);return String(e)}catch{return"undefined"}}),r}(r,t);default:{const r=re.get(e.type);if(r)return r(e,t);throw new Error(`Unknown AST node type: ${e.type}`)}}}async function vr(e,t){const r=fr(e);if(!r.success||!r.node){const e=r.error??r.errors?.[0];throw new Error(`Failed to parse expression: ${e?.message??"unknown error"}`)}const n=t.registry?t:{...t,registry:await wr()};return gr(r.node,n)}dr.POSTFIX_UNARY_OPERATORS=new Set(["exists","does not exist","is empty","is not empty","ignoring case"]),dr.PRATT_TABLE=ee,dr.PSEUDO_COMMAND_PREPOSITIONS=["from","on","with","into","at","to"];let kr=null;async function wr(){if(!kr){const e=await Promise.resolve().then(function(){return la});kr=e.createFullExpressionRegistry()}return kr}async function br(e,t){const r=e.name;return"me"===r||"my"===r||"I"===r?hr(t,"me").evaluate(t):"you"===r||"your"===r||"yourself"===r?hr(t,"you").evaluate(t):"it"===r||"its"===r?hr(t,"it").evaluate(t):"window"===r?hr(t,"window").evaluate(t):"document"===r?hr(t,"document").evaluate(t):t.locals&&t.locals.has(r)?(me(r,t),t.locals.get(r)):t.globals&&t.globals.has(r)?(r.startsWith("$")&&ue(r.slice(1),t),t.globals.get(r)):r.startsWith("$")&&t.globals&&t.globals.has(r.slice(1))?(ue(r.slice(1),t),t.globals.get(r.slice(1))):void 0!==t[r]?t[r]:"undefined"!=typeof globalThis&&r in globalThis?globalThis[r]:void 0}function zr(e,t){return Array.isArray(t)?t.includes(e):"string"==typeof t?t.includes(String(e)):e instanceof Node&&t instanceof Node?e===t||t.contains(e):null!=t&&"object"==typeof t&&e in t}function xr(e,t,r){return e instanceof Node&&t instanceof Node&&0!==(e.compareDocumentPosition(t)&r)}function Er(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 String(e)}function Sr(e,t){return t.locals?.has(e)?(me(e,t),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 Tr(e,t,r){const n=[];let i;for(;null!==(i=t.exec(e));)n.push({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{index:t,length:r,replacement:i}=n[e];a=a.substring(0,t)+i+a.substring(t+r)}return a}const Cr=new Set(["closest","previous","next"]);const Ar=new 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");class Lr{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=[]}}class jr{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 Pr=new Map;function Nr(e,t){return{me:e??null,it:null,you:null,result:null,locals:new Map,globals:Pr,flags:{halted:!1,breaking:!1,continuing:!1,returning:!1,async:!1}}}function Or(){return Pr}class Ir{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 Rr{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 new 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()}}const Mr={evaluate:(e,t)=>gr(e,t)};class $r{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||{},...void 0!==e.registry&&{registry:e.registry},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 Wr{constructor(e,t,r){this.impl=e,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(){const e=this.impl.name;if(e)return e;const t=this.impl.metadata?.name;return"string"==typeof t?t:""}get metadata(){const e=this.impl.metadata?.syntax;return{description:this.impl.metadata?.description||"",examples:this.impl.metadata?.examples||[],syntax:Array.isArray(e)?e.join(" | "):e||""}}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;const i=$r.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 gr(n,e))return}a=await this.impl.parseInput({args:r.args||[],modifiers:t||{},commandName:r.commandName},Mr,e)}else a=t;else a=t;if(2===this.impl.execute.length)o=await this.impl.execute(a,i);else{const e=Array.isArray(a)?a:[a];o=await this.impl.execute(i,...e)}return Object.assign(e,$r.fromTyped(i,e)),this.hookRegistry&&await this.hookRegistry.runAfterExecute(n,o),o}catch(e){if(Fr(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 _r{constructor(e,t){this.adapters=new Map,this.implementations=new Map,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 new 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 Wr(e,void 0,this.hookRegistry);this.adapters.set(r,n),N.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),N.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 qr(e){const t=e?.commands??new _r,r=e?.eventSources??new Ir,n=e?.context??new Rr,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 Vr=null;function Dr(){return Vr||(Vr=qr()),Vr}class Br{constructor(e={}){this.contextCache=new WeakMap;const t=Dr();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 t instanceof Error||String(t),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 new Error("Event sources are disabled in this runtime");const n=this.eventSourceRegistry.subscribe(e,t,r);if(!n)throw new 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 Hr(e){const t=new 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 Fr(t){return t instanceof Error&&(null!==e(t)||"HALT_EXECUTION"===t.message||"EXIT_COMMAND"===t.message||"EXIT_EXECUTION"===t.message)}function Ur(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 Kr(e){return null!==e&&"object"==typeof e&&"command"in e&&"selector"in e}const Gr=new WeakMap;class Jr{constructor(e){if(this.autoCleanupObserver=null,this.registryIntegration=null,this.runtimeWarnings=[],this.options={commandTimeout:1e4,enableErrorReporting:!0,enableResultPattern:!0,enableAutoCleanup:!0,...e},this.registry=e.registry,this.expressionRegistry=e.expressionRegistry,this.behaviorRegistry=new Map,this.globalVariables=Or(),this.hookRegistry=new Lr,e.hooks&&this.hookRegistry.register("default",e.hooks),this.registry.setHookRegistry(this.hookRegistry),this.cleanupRegistry=new jr,this.options.enableAutoCleanup&&this.setupAutoCleanup(),!1!==e.registryIntegration){this.registryIntegration=new Br("object"==typeof e.registryIntegration?e.registryIntegration:{})}this.behaviorAPI={has:e=>this.behaviorRegistry.has(e),get:e=>this.behaviorRegistry.get(e),set:(e,t)=>this.behaviorRegistry.set(e,t),resolve:null,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)}trackListener(e,t,r,n,i){this.cleanupRegistry.registerListener(e,t,r,n,i)}cleanupTree(e){return this.cleanupRegistry.cleanupElementTree(e)}getCleanupStats(){return this.cleanupRegistry.getStats()}getCleanupRegistry(){return this.cleanupRegistry}logError(...e){}logWarn(...e){}destroy(){this.autoCleanupObserver&&(this.autoCleanupObserver.disconnect(),this.autoCleanupObserver=null),this.cleanupRegistry.cleanupAll(),this.hookRegistry.clear(),this.behaviorRegistry.clear()}hasErrorDiagnostics(e){const t=e.diagnostics;return!!t?.some(e=>"error"===e.severity)}getWarnings(){return this.runtimeWarnings}async execute(e,t){t.registry||(t.registry=this.expressionRegistry),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{if(this.hasErrorDiagnostics(e)){const t=e.diagnostics?.[0];return void this.runtimeWarnings.push(t?.message||"Skipped error node")}switch(e.type){case"command":if(this.options.enableResultPattern)try{const r=await this.processCommandWithResult(e,t);if(!n(r))throw Hr(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,i=await this.executeCommandSequenceWithResult(r.commands||[],t);if(!n(i))throw Hr(i.error);return i.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(!n(r))throw Hr(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 new 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 Fr(e)||this.logError(`Error executing command '${a}':`,e),e}}const o=`Unknown command: ${r}. Ensure it is registered in the Runtime options.`;throw this.logWarn(o),new Error(o)}toSignal(t){const r=e(t);if(r){if(r.isHalt||"HALT_EXECUTION"===r.message)return{type:"halt"};if(r.isExit||"EXIT_COMMAND"===r.message)return{type:"exit",returnValue:r.returnValue};if(r.isBreak)return{type:"break"};if(r.isContinue)return{type:"continue"};if(r.isReturn)return{type:"return",returnValue:r.returnValue}}if(t instanceof Error){if("HALT_EXECUTION"===t.message)return{type:"halt"};if("EXIT_COMMAND"===t.message)return{type:"exit"}}return null}async processCommandWithResult(e,n){const{name:i,args:a,modifiers:o}=e,s=i.toLowerCase();if(!this.registry.has(s)){const e=`Unknown command: ${i}. Ensure it is registered in the Runtime options.`;throw this.logWarn(e),new Error(e)}const l=await this.registry.getAdapter(s);if(!l)throw new Error(`Command '${s}' is registered but failed to load adapter.`);try{return t(await l.execute(n,{args:a||[],modifiers:o||{},commandName:s,runtime:this}))}catch(e){const t=this.toSignal(e);if(t)return r(t);throw this.logError(`Error executing command '${s}':`,e),e}}async executeCommandSequenceWithResult(e,r){let i;for(const a of e){if(this.hasErrorDiagnostics(a)){const e=a.diagnostics?.[0];this.runtimeWarnings.push(e?.message||"Skipped error node");continue}if("command"===a.type){const e=await this.processCommandWithResult(a,r);if(!n(e)){const n=e.error;switch(n.type){case"halt":case"exit":case"break":case"continue":return e;case"return":return void 0!==n.returnValue&&Object.assign(r,{it:n.returnValue,result:n.returnValue}),t(n.returnValue)}}i=e.value}else{const e=await this.evaluateExpressionWithResult(a,r);if(!n(e))return e;i=e.value}}return t(i)}async evaluateExpression(e,t){const r=t.registry?t:{...t,registry:this.expressionRegistry},n=await gr(e,r);return Kr(n)?await this.executeCommandFromPattern(n.command,n.selector,t):n}async evaluateExpressionWithResult(e,i){const a=i.registry?i:{...i,registry:this.expressionRegistry},o=await async function(e,n){try{return t(await gr(e,n))}catch(e){if(e instanceof Error){const t=e;if(t.isHalt||"HALT_EXECUTION"===t.message)return r({type:"halt"});if(t.isExit||"EXIT_COMMAND"===t.message)return r({type:"exit",returnValue:t.returnValue});if(t.isBreak)return r({type:"break"});if(t.isContinue)return r({type:"continue"});if(t.isReturn)return r({type:"return",returnValue:t.returnValue})}throw e}}(e,a);if(!n(o))return o;const s=o.value;if(Kr(s)){if(this.options.enableResultPattern){return this.processCommandWithResult({type:"command",name:s.command,args:[{type:"literal",value:s.selector}]},i)}try{return t(await this.executeCommandFromPattern(s.command,s.selector,i))}catch(e){const t=this.toSignal(e);if(t)return r(t);throw e}}return t(s)}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(Fr(e)&&(e.isHalt||e.isExit))break;throw e}for(const e of i)try{r=await this.execute(e,t)}catch(e){if(Fr(e)&&(e.isHalt||e.isExit))break;throw e}for(const e of a)try{r=await this.execute(e,t)}catch(e){if(Fr(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(Fr(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(Fr(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=String(n.key.value);else{const r=await this.execute(n.key,t);e=String(r)}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){let n=this.behaviorRegistry.get(e);if(!n&&(this.behaviorAPI.resolve&&this.behaviorAPI.resolve(e)&&(n=this.behaviorRegistry.get(e)),!n))throw new Error(`Behavior "${e}" not found`);if("imperative"===n.type)return void("function"==typeof n.install&&n.install(t,r));const i={me:t,you:null,it:null,result:null,locals:new Map,globals:this.globalVariables,registry:this.expressionRegistry,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(new Error(`Behavior "${e}" init block timed out after ${t}ms`)),t))])}catch(e){if(!(e instanceof Error&&Fr(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(new 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 f=e.customEventSource;if(f&&this.registryIntegration){const e=async e=>{const n=new Map(t.locals),a={...t,locals:n,it:e,event:e},o=this.enhanceContext(a);try{await this.execute({type:"program",commands:i},o)}catch(e){this.logError(`[HyperFixi] Error executing commands for custom event '${r}':`,e)}};try{const n=this.registryIntegration.subscribeToEventSource(f,{event:r,handler:e,target:a,selector:s},t);this.cleanupRegistry.registerGlobal(()=>n.unsubscribe(),"listener",`Custom event source '${f}' subscription ${n.id}`)}catch(e){this.logError(`[HyperFixi] Failed to subscribe to custom event source '${f}':`,e)}return}const h=Jr.createEventHandler(this,i,t,s,o);let y,g=null;if(u){let e=h;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)},g=()=>{r&&(clearTimeout(r),r=void 0)}}else if(u.throttle){const t=u.throttle;let r=0;y=n=>{const i=Date.now();i-r>=t&&(r=i,e(n))}}else y=e}else y=h;const v=u?.once?{once:!0}:void 0;if(d){for(const e of p)d.addEventListener(e,y,v),m.length>0?this.cleanupRegistry.registerListener(m[0],d,e,y):this.cleanupRegistry.registerGlobal(()=>d.removeEventListener(e,y),"listener",`Global ${e} listener`);g&&(m.length>0?this.cleanupRegistry.registerCustom(m[0],g,"debounce-timeout"):this.cleanupRegistry.registerGlobal(g,"timeout","debounce-timeout"))}else for(const e of m){for(const t of p){if("resize"===t&&"undefined"!=typeof ResizeObserver){const t=new ResizeObserver(e=>{for(const r of e){const e=new CustomEvent("resize",{detail:r,bubbles:!1,cancelable:!1});if(e.synthetic=!0,y(e),v?.once){t.disconnect();break}}});t.observe(e),this.cleanupRegistry.registerCustom(e,()=>t.disconnect(),"resize-observer");continue}e.addEventListener(t,y,v),this.cleanupRegistry.registerListener(e,e,t,y)}g&&this.cleanupRegistry.registerCustom(e,g,"debounce-timeout")}}static createEventHandler(e,t,r,n,i){return async a=>{const o=Gr.get(a)??0;if(o>=100)return;if(Gr.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=Ur(await e.execute(r,c));void 0!==t&&Object.assign(c,{it:t,result:t})}catch(t){if(Fr(t)){if(t.isHalt||t.isExit)break;if(t.isReturn){void 0!==t.returnValue&&Object.assign(c,{it:t.returnValue,result:t.returnValue});break}}throw e.logError("COMMAND FAILED:",t),t}}}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(Fr(e)){if(e.isHalt||e.isExit||e.isReturn)break}else this.logError("Error executing mutation handler command:",e)}}});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(Fr(e)){if(e.isHalt||e.isExit||e.isReturn)break}else this.logError("Error executing change handler command:",e)}}});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 Yr(...e){const t=new Map;for(const r of e)for(const[e,n]of Object.entries(r))t.set(e,n);return t}const Zr={1:"one",2:"two",3:"three",4:"four",5:"five"};function Xr(e,t,r,n){if(e.length!==t){const e=n?` (${n})`:"";return`${r} requires exactly ${i=t,Zr[i]??String(i)} argument${1===t?"":"s"}${e}`}var i;return null}function Qr(e,t,r,n){if("string"!=typeof e[t]){return`${r} ${n||`argument ${t+1}`} must be a string`}return null}function en(e,t,r){return Xr(e,1,t,r)??Qr(e,0,t,r)}function tn(e,t){return Xr(e,2,t,"left, right")}function rn(){return null}function nn(e,t,r,n){if(e.length>t){const e=n?` (${n})`:"";return`${r} expression takes at most ${1===t?"one":String(t)} argument${1===t?"":"s"}${e}`}return null}function an(e,t,r,n,i){if(e.length<t||e.length>r){return`${n} requires ${t}-${r} arguments${i?` (${i})`:""}`}return null}function on(e,t,r,n=[]){return{type:e,message:t,suggestions:n,...r&&{path:r}}}const sn="undefined"!=typeof process&&"production"===process.env.NODE_ENV||"undefined"!=typeof process&&"true"===process.env.HYPERFIXI_SKIP_VALIDATION||"undefined"!=typeof globalThis&&"true"===globalThis.HYPERFIXI_SKIP_VALIDATION;let ln;function cn(){return ln({validate:e=>({success:!0,data:e})})}function un(e,t){if(sn)return cn();const r=ln({validate:r=>{if("object"!=typeof r||null===r||Array.isArray(r))return{success:!1,error:on("type-mismatch","Expected object, received "+typeof r)};const n=r,i={};if(t?.strict){const t=Object.keys(e),r=Object.keys(n).filter(e=>!t.includes(e));if(r.length>0)return{success:!1,error:on("runtime-error",`Unexpected properties: ${r.join(", ")}`)}}for(const[t,r]of Object.entries(e)){const e=n[t];if(!(t in n)&&!r._isOptional)return{success:!1,error:on("missing-argument",`Required field "${t}" is missing`,t)};const a=r.validate(e);if(!a.success){return{success:!1,error:on("validation-error",a.error.message||`Field "${t}" validation failed`,a.error.path?`${t}.${a.error.path}`:t)}}void 0!==a.data&&(i[t]=a.data)}return{success:!0,data:i}}});return r.strict=()=>un(e,{strict:!0}),r}function pn(e,t="Custom validation failed"){return sn?cn():ln({validate:r=>e(r)?{success:!0,data:r}:{success:!1,error:on("runtime-error",t)}})}ln=function(e){return e.describe||(e.describe=function(e){return this.description=e,this}),e.safeParse||(e.safeParse=function(e){const t=this.validate(e);return t.success?{success:!0,data:t.data}:{success:!1,error:{errors:t.error?[t.error]:[]}}}),e.parse||(e.parse=function(e){const t=this.validate(e);if(t.success&&void 0!==t.data)return t.data;throw new Error(t.error?.message||"Validation failed")}),e.optional||(e.optional=function(){const e=this.validate.bind(this),t={...this,_isOptional:!0,validate:t=>null==t?{success:!0,data:void 0}:e(t)};return ln(t)}),e.min||(e.min=function(e){const t=this.validate.bind(this),r={...this,validate:r=>{const n=t(r);return n.success&&"string"==typeof n.data&&n.data.length<e?{success:!1,error:on("runtime-error",`String must be at least ${e} characters long`)}:n}};return ln(r)}),e.max||(e.max=function(e){const t=this.validate.bind(this),r={...this,validate:r=>{const n=t(r);return n.success&&"string"==typeof n.data&&n.data.length>e?{success:!1,error:on("runtime-error",`String must be at most ${e} characters long`)}:n}};return ln(r)}),e.default||(e.default=function(e){const t=this.validate.bind(this),r={...this,_defaultValue:e,_hasDefault:!0,validate:r=>void 0===r?{success:!0,data:e}:t(r)};return ln(r)}),e.rest||(e.rest=function(e){return this}),e.refine||(e.refine=function(e,t){const r=this.validate.bind(this),n={...this,validate:n=>{const i=r(n);return i.success?e(i.data)?i:{success:!1,error:on("runtime-error",t||"Refinement validation failed")}:i}};return ln(n)}),new Proxy(e,{get:(e,t,r)=>t in e||"string"!=typeof t||t.startsWith("_")||"constructor"===t||"validate"===t||"then"===t?Reflect.get(e,t,r):function(...e){return r}})};const mn=e=>function(e={}){return sn?cn():ln({validate:t=>e.optional&&null==t?{success:!0,data:void 0}:"string"!=typeof t?{success:!1,error:on("type-mismatch","Expected string, received "+typeof t)}:void 0!==e.minLength&&t.length<e.minLength?{success:!1,error:on("runtime-error",`String must be at least ${e.minLength} characters long`)}:void 0!==e.maxLength&&t.length>e.maxLength?{success:!1,error:on("runtime-error",`String must be at most ${e.maxLength} characters long`)}:e.pattern&&!e.pattern.test(t)?e.pattern.source.startsWith("^")&&e.pattern.source.endsWith("$")?{success:!1,error:on("runtime-error",`Expected "${e.pattern.source.slice(1,-1)}", received "${t}"`)}:{success:!1,error:on("missing-argument","String does not match required pattern")}:{success:!0,data:t},...e.description&&{description:e.description}})}(e||{}),dn=e=>function(e={}){return sn?cn():ln({validate:t=>{const r=Number(t);return isNaN(r)?{success:!1,error:on("type-mismatch","Expected number, received "+typeof t)}:void 0!==e.min&&r<e.min?{success:!1,error:on("runtime-error",`Number must be at least ${e.min}`)}:void 0!==e.max&&r>e.max?{success:!1,error:on("runtime-error",`Number must be at most ${e.max}`)}:{success:!0,data:r}}})}(e||{}),fn=()=>sn?cn():ln({validate:e=>"boolean"!=typeof e?{success:!1,error:on("type-mismatch","Expected boolean, received "+typeof e)}:{success:!0,data:e}}),hn=e=>un(e),yn=e=>function(e){return sn?cn():ln({validate:t=>{if(!Array.isArray(t))return{success:!1,error:on("type-mismatch","Expected array, received "+typeof t)};if(t.length!==e.length)return{success:!1,error:on("runtime-error",`Expected tuple of length ${e.length}, received length ${t.length}`)};const r=[];for(let n=0;n<e.length;n++){const i=e[n].validate(t[n]);if(!i.success)return{success:!1,error:on("runtime-error",i.error.message,i.error.path?`${n}.${i.error.path}`:`${n}`)};r.push(i.data)}return{success:!0,data:r}}})}(e),gn=()=>cn(),vn=()=>cn(),kn=()=>pn(e=>void 0===e,"Expected undefined");class wn{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&&(!ke(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":be(e)?"object":typeof e}inferEvaluationType(e){return void 0===e?"Undefined":null===e?"Null":ve(e)?"String":ke(e)?"Number":we(e)?"Boolean":Array.isArray(e)?"Array":this.isElement(e)?"Element":"Object"}normalizeCollection(e){return Array.isArray(e)?e:e instanceof NodeList?Array.from(e):ve(e)?e.split(""):null==e?[]:be(e)&&Symbol.iterator in e?Array.from(e):[]}toNumber(e){if(ke(e)&&Number.isFinite(e))return e;if(ve(e)){const t=Number(e);return Number.isFinite(t)?t:null}return we(e)?e?1:0:null}}const bn=hn({selector:mn().min(1),single:fn().optional().default(!1)});new class extends wn{constructor(){super(...arguments),this.name="me",this.category="Reference",this.syntax="me",this.description="References the current element in the execution context",this.inputSchema=kn(),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 wn{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=kn(),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 wn{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=kn(),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 wn{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=bn,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 zn={me:{name:"me",category:"Reference",evaluatesTo:"Element",evaluate:async e=>e.me??null,validate:rn},you:{name:"you",category:"Reference",evaluatesTo:"Element",evaluate:async e=>e.you??null,validate:rn},it:{name:"it",category:"Reference",evaluatesTo:"Any",evaluate:async e=>e.it,validate:rn},its:{name:"its",category:"Reference",evaluatesTo:"Any",evaluate:async e=>e.it,validate:rn},result:{name:"result",category:"Reference",evaluatesTo:"Any",evaluate:async e=>e.result,validate:rn},querySelector:{name:"querySelector",category:"Reference",evaluatesTo:"Element",async evaluate(e,...t){const[r]=t;if("string"!=typeof r)throw new Error("querySelector requires a string selector");return document.querySelector(r)},validate:e=>en(e,"querySelector","selector")},querySelectorAll:{name:"querySelectorAll",category:"Reference",evaluatesTo:"Array",async evaluate(e,...t){const r=t[0];if("string"!=typeof r)throw new Error("querySelectorAll requires a string selector");const n=document.querySelectorAll(r);return Array.from(n)},validate:e=>en(e,"querySelectorAll","selector")},getElementById:{name:"getElementById",category:"Reference",evaluatesTo:"Element",async evaluate(e,...t){const r=t[0];if("string"!=typeof r)throw new Error("getElementById requires a string ID");return document.getElementById(r)},validate:e=>en(e,"getElementById","ID")},getElementsByClassName:{name:"getElementsByClassName",category:"Reference",evaluatesTo:"Array",async evaluate(e,...t){const r=t[0];if("string"!=typeof r)throw new Error("getElementsByClassName requires a string class name");const n=document.getElementsByClassName(r);return Array.from(n)},validate:e=>en(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 new 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:rn},window:{name:"window",category:"Reference",evaluatesTo:"Object",evaluate:async e=>window,validate:rn},document:{name:"document",category:"Reference",evaluatesTo:"Object",evaluate:async e=>document,validate:rn},elementWithSelector:{name:"elementWithSelector",category:"Reference",evaluatesTo:"Array",async evaluate(e,...t){const r=t[0];if("string"!=typeof r)throw new Error("Selector must be a string");const n=document.querySelectorAll(r);return Array.from(n)},validate:e=>en(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 new 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=>an(e,1,2,"styleRef","property, optional element")??Qr(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 new 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=>Xr(e,2,"possessiveStyleRef","possessor, property")??Qr(e,0,"possessiveStyleRef","possessor")??Qr(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 new 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=>Xr(e,2,"ofStyleRef","property, reference")??Qr(e,0,"ofStyleRef","property")??Qr(e,1,"ofStyleRef","reference")}};class xn{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.cache.size>=this.maxSize&&!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)n<t&&(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 En=new class{constructor(){this.domQueryCache=new xn(200,3e3),this.exprResultCache=new xn(500,2e3),this.cssMatchCache=new xn(100,5e3),this.formValueCache=new xn(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(()=>{En.cleanup()},1e4);const Sn=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=En.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 Tn(){En.cleanup();Sn.getMetrics().memoryUsage>52428800&&Sn.reset()}let Cn=null;function An(e,t){if("number"==typeof e){if(!Number.isFinite(e))throw new 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 new 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 new Error(`${t} is a nested array, cannot convert to number`);return An(r,t)}if("string"==typeof e.textContent||"value"in e){const t=e.value??e.textContent;if(null!=t){const e=String(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 new Error(`${t} cannot be converted to number: ${typeof e}`)}function Ln(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 jn(e,t){if(!Number.isFinite(e)){if(Number.isNaN(e))throw new Error(`${t} resulted in non-finite value: NaN`);throw new Error(`${t} resulted in non-finite value: ${e>0?"Infinity":"-Infinity"}`)}return e}function Pn(e){try{return An(e,"_"),!0}catch{return!1}}function Nn(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=Ln(e),n=Ln(t);if(null!==r&&null!==n)return[r,n];return[String(e),String(t)]}(e,t);switch(r){case">":return n>i;case"<":return n<i;case">=":return n>=i;case"<=":return n<=i;case"==":return On(e,t);case"!=":return!On(e,t);default:return!1}}function On(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?On(e?1:0,t):"boolean"==typeof t?On(e,t?1:0):String(e)===String(t)}function In(e,t=[]){return{isValid:!1,errors:e,suggestions:t}}function Rn(e,t,r=[],n="error"){return{type:e,message:t,suggestions:r,severity:n}}function Mn(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}"undefined"!=typeof window&&function(e=3e4){Cn&&clearInterval(Cn),Cn=setInterval(Tn,e)}();const $n=hn({left:gn().describe("Left operand value"),right:gn().describe("Right operand value")}).strict(),Wn=hn({operand:gn().describe("Operand value to negate")}).strict();class _n extends wn{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=$n,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:String(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 qn extends wn{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=$n,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:String(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 Vn extends wn{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=Wn,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:String(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 Dn(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&1===e.nodeType}new _n,new qn,new Vn;const Bn=yn([gn(),gn()]),Hn=yn([gn(),mn()]),Fn={name:"equals",category:"Comparison",evaluatesTo:"Boolean",precedence:10,associativity:"Left",operators:["is","==","equals"],async evaluate(e,t,r){const n=Date.now();try{return Mn(this,e,[t,r],t==r,n)}catch(i){throw Mn(this,e,[t,r],!1,n,!1,i instanceof Error?i:new Error(String(i))),i}},validate:e=>tn(e,"equals"),inputSchema:Bn,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"]}},Un={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&&Mn(this,e,[t,r],a,i),a},validate:e=>tn(e,"strictEquals")},Kn={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&&Mn(this,e,[t,r],a,i),a},validate:e=>tn(e,"notEquals")},Gn={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&&Mn(this,e,[t,r],a,i),a},validate:e=>tn(e,"strictNotEquals")},Jn={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=Nn(t,r,"<");return n&&Mn(this,e,[t,r],a,i),a},validate:e=>tn(e,"lessThan")},Yn={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=Nn(t,r,"<=");return n&&Mn(this,e,[t,r],a,i),a},validate:e=>tn(e,"lessThanOrEqual")},Zn={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=Nn(t,r,">");return n&&Mn(this,e,[t,r],a,i),a},validate:e=>tn(e,"greaterThan")},Xn={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=Nn(t,r,">=");return n&&Mn(this,e,[t,r],a,i),a},validate:e=>tn(e,"greaterThanOrEqual")},Qn={name:"and",category:"Logical",evaluatesTo:"Boolean",precedence:6,associativity:"Left",operators:["and","&&"],async evaluate(e,t,r){const n=Date.now();try{return Mn(this,e,[t,r],t&&r,n)}catch(i){throw Mn(this,e,[t,r],!1,n,!1,i instanceof Error?i:new Error(String(i))),i}},validate:e=>tn(e,"and"),inputSchema:Bn,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"]}},ei={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&&Mn(this,e,[t,r],a,i),a},validate:e=>tn(e,"or")},ti={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&&Mn(this,e,[t],i,n),i},validate:e=>Xr(e,1,"not","operand")},ri={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||(ve(t)||Array.isArray(t)||t instanceof NodeList?0===t.length:!(t instanceof Node||t instanceof Element)&&(!!be(t)&&0===Object.keys(t).length)),r&&Mn(this,e,[t],i,n),i},validate:e=>Xr(e,1,"isEmpty","value")},ni={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:(ve(t),!1))),r&&Mn(this,e,[t],i,n),i},validate:e=>Xr(e,1,"no","value")},ii={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 ri.evaluate(e,t);return r&&Mn(this,e,[t],i,n),i},validate:e=>Xr(e,1,"isNotEmpty","value")},ai={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&&Mn(this,e,[t],i,n),i},validate:e=>Xr(e,1,"exists","value")},oi={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&&Mn(this,e,[t],i,n),i},validate:e=>Xr(e,1,"doesNotExist","value")},si={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(Dn(t)&&Dn(r))return a=t.contains(r),n&&Mn(this,e,[t,r],a,i),a;if(ve(t)&&t.match(/^[.#][\w-]+$/)){const o=document.querySelector(t);if(o&&Dn(r))return a=o.contains(r),n&&Mn(this,e,[t,r],a,i),a;if(o&&ve(r)&&r.match(/^[.#][\w-]+$/)){const s=document.querySelector(r);return a=!!s&&o.contains(s),n&&Mn(this,e,[t,r],a,i),a}}if(ve(r)&&r.match(/^[.#][\w-]+$/)&&Dn(t)){const o=document.querySelector(r);return a=!!o&&t.contains(o),n&&Mn(this,e,[t,r],a,i),a}}return a=ve(t)&&ve(r)||Array.isArray(t)?t.includes(r):"undefined"!=typeof NodeList&&t instanceof NodeList?Array.from(t).includes(r):!(!be(t)||!ve(r))&&r in t,n&&Mn(this,e,[t,r],a,i),a},validate:e=>Xr(e,2,"contains","container, value")},li={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 si.evaluate(e,t,r);return n&&Mn(this,e,[t,r],a,i),a},validate:e=>Xr(e,2,"doesNotContain","container, value")},ci={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=!(!ve(t)||!ve(r))&&t.startsWith(r);return n&&Mn(this,e,[t,r],a,i),a},validate:e=>Xr(e,2,"startsWith","str, prefix")},ui={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=!(!ve(t)||!ve(r))&&t.endsWith(r);return n&&Mn(this,e,[t,r],a,i),a},validate:e=>Xr(e,2,"endsWith","str, suffix")},pi={name:"between",category:"Logical",evaluatesTo:"Boolean",operators:["is between","between"],async evaluate(e,t,r,n){const i=e.evaluationHistory,a=i?Date.now():0;let o=r,s=n;if(null!=o&&null!=s&&o>s){const e=o;o=s,s=e}const l=null!=o&&null!=s&&t>=o&&t<=s;return i&&Mn(this,e,[t,r,n],l,a),l},validate:e=>Xr(e,3,"between","value, min, max")},mi={name:"matches",category:"Logical",evaluatesTo:"Boolean",operators:["matches"],async evaluate(e,t,r){const n=Date.now();try{let i;if(t instanceof Element&&ve(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 En.matches(e,t)}(t,e)}catch(e){i=!1}else i=!1}else if(ve(t)&&ve(r)){const e=t,n=r;try{i=(n.startsWith("/")&&n.endsWith("/")?new RegExp(n.slice(1,-1)):new RegExp(n)).test(e)}catch(t){i=e.includes(n)}}else i=!1;return Mn(this,e,[t,r],i,n)}catch(i){throw Mn(this,e,[t,r],!1,n,!1,i instanceof Error?i:new Error(String(i))),i}},validate:e=>Xr(e,2,"matches","element, selector"),inputSchema:Hn,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"]}},di={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&&ve(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&&Mn(this,e,[t,r],a,i),a},validate:e=>Xr(e,2,"has","element, selector")},fi={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 di.evaluate(e,t,r);return n&&Mn(this,e,[t,r],a,i),a},validate:e=>Xr(e,2,"doesNotHave","element, selector")},hi={equals:Fn,strictEquals:Un,notEquals:Kn,strictNotEquals:Gn,lessThan:Jn,lessThanOrEqual:Yn,greaterThan:Zn,greaterThanOrEqual:Xn,and:Qn,or:ei,not:ti,no:ni,isEmpty:ri,isNotEmpty:ii,exists:ai,doesNotExist:oi,contains:si,doesNotContain:li,startsWith:ci,endsWith:ui,between:pi,matches:mi,has:di,doesNotHave:fi},yi=hn({value:mn().describe("String literal value")}).strict(),gi=hn({value:dn().describe("Number literal value")}).strict(),vi=hn({value:fn().describe("Boolean literal value")}).strict(),ki=hn({left:gn().describe("Left operand"),right:gn().describe("Right operand")}).strict();class wi extends wn{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=yi,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:String(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?String(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?String(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;e<r.length&&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)?(me(e,t),t.locals.get(e)):t.globals?.has(e)?t.globals.get(e):void 0}}class bi extends wn{constructor(){super(...arguments),this.name="numberLiteral",this.category="Special",this.syntax="123 or 3.14",this.description="Numeric literal with validation",this.inputSchema=gi,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:String(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 zi extends wn{constructor(){super(...arguments),this.name="booleanLiteral",this.category="Special",this.syntax="true or false",this.description="Boolean literal values",this.inputSchema=vi,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:String(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"])}}}let xi=class extends wn{constructor(){super(...arguments),this.name="addition",this.category="Special",this.syntax="left + right",this.description="Addition of two numeric values",this.inputSchema=ki,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=An(t.left,"left operand"),a=i+An(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:String(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 Ei extends wn{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=ki,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=ki.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(ve(e))return e;if(ke(e))return e.toString();if(we(e))return e.toString();if(e instanceof Date)return e.toString();try{return String(e)}catch{return"[object Object]"}}}let Si=class extends wn{constructor(){super(...arguments),this.name="multiplication",this.category="Special",this.syntax="left * right",this.description="Multiplication of two numeric values",this.inputSchema=ki,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=An(t.left,"left operand"),a=i*An(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:String(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 Ti={stringLiteral:new wi,numberLiteral:new bi,booleanLiteral:new zi,addition:new xi,stringConcatenation:new Ei,multiplication:new Si};function Ci(e,t,r,n,i="runtime-error"){return{success:!1,error:{name:`${e}ConversionError`,type:i,message:r,code:t,suggestions:n}}}function Ai(e,t){return{success:!0,value:e,type:t}}function Li(e,t){return`${e}: ${t instanceof Error?t.message:String(t)}`}const ji={Array:(e,t)=>{try{return Array.isArray(e)?Ai(e,"array"):e instanceof NodeList?Ai(Array.from(e),"array"):Ai(null==e?[]:[e],"array")}catch(e){return Ci("Array","ARRAY_CONVERSION_FAILED",Li("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?Ai("","string"):ve(e)?Ai(e,"string"):be(e)?Ai(JSON.stringify(e),"string"):Ai(String(e),"string")}catch(e){return Ci("String","STRING_CONVERSION_FAILED",Li("Failed to convert value to String",e),["Check if object has circular references","Ensure value is serializable"])}},Boolean:(e,t)=>{try{if(we(e))return Ai(e,"boolean");if(null==e)return Ai(!1,"boolean");if(ve(e)){const t=e.toLowerCase().trim();return Ai("false"!==t&&"0"!==t&&""!==t,"boolean")}return ke(e)?Ai(0!==e&&!isNaN(e),"boolean"):Ai(Boolean(e),"boolean")}catch(e){return Ci("Boolean","BOOLEAN_CONVERSION_FAILED",Li("Failed to convert value to Boolean",e),["Use explicit true/false values","Check for unexpected data types"])}},Number:(e,t)=>{try{if(ke(e))return Ai(e,"number");if(null==e)return Ai(0,"number");const t=Number(e);return isNaN(t)?Ci("Number","INVALID_NUMBER",`Cannot convert "${e}" to a valid number`,["Check if value contains non-numeric characters","Use a valid numeric format"],"invalid-argument"):Ai(t,"number")}catch(e){return Ci("Number","NUMBER_CONVERSION_FAILED",Li("Failed to convert value to Number",e),["Ensure value is convertible to number","Check for special characters"])}},Int:(e,t)=>{const r=ji.Number(e,t);return r.success?Ai(Math.trunc(r.value),"number"):r},Float:(e,t)=>{const r=ji.Number(e,t);return r.success?Ai(parseFloat(r.value.toString()),"number"):r},Date:(e,t)=>{try{if(e instanceof Date)return Ai(e,"object");if(null==e)return Ai(new Date(""),"object");if(ve(e)&&/^\d{4}-\d{2}-\d{2}$/.test(e)){const[t,r,n]=e.split("-").map(Number);return Ai(new Date(t,r-1,n),"object")}const t=new Date(e);return isNaN(t.getTime())?Ci("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"):Ai(t,"object")}catch(e){return Ci("Date","DATE_CONVERSION_FAILED",Li("Failed to convert value to Date",e),["Check date format","Ensure value is a valid date string or timestamp"])}},JSON:(e,t)=>{if(!ve(e))return Ai(e,"object");try{return Ai(JSON.parse(e),"object")}catch(e){return Ci("JSON","JSON_PARSE_FAILED",Li("Failed to parse value as JSON",e),["Check JSON syntax and escaping","Use `as JSONString` to stringify a value instead"],"syntax-error")}},JSONString:(e,t)=>{try{return Ai(JSON.stringify(e),"string")}catch(e){return Ci("JSONString","JSON_STRINGIFY_FAILED",Li("Failed to stringify value as JSON",e),["Check for circular references","Ensure all properties are serializable","Remove functions and undefined values"])}},Object:(e,t)=>{try{if(be(e))return Ai(e,"object");if(ve(e))try{return Ai(JSON.parse(e),"object")}catch(e){return Ci("Object","JSON_PARSE_FAILED",Li("Cannot parse JSON string",e),["Check JSON syntax","Ensure proper escaping of quotes","Validate JSON format"],"syntax-error")}return Ai({},"object")}catch(e){return Ci("Object","OBJECT_CONVERSION_FAILED",Li("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 Ai(Ii(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=Ri(t);void 0!==e&&(r[t.name]=e)}}),Ai(r,"object")}return Ai({},"object")}catch(e){return Ci("FormValues","FORM_VALUES_EXTRACTION_FAILED",Li("Failed to extract form values",e),["Ensure element is a form or contains form inputs","Check form structure","Verify input names are set"])}},FormEncoded:(e,t)=>{try{let r=e;if(e instanceof HTMLElement){const n=ji.Values(e,t);if(!n.success)return n;r=n.value}if(!be(r))return Ai("","string");const n=new URLSearchParams;for(const[e,t]of Object.entries(r))if(null!=t)if(Array.isArray(t))for(const r of t)n.append(e,String(r));else n.append(e,String(t));return Ai(n.toString(),"string")}catch(e){return Ci("FormEncoded","FORM_ENCODE_FAILED",Li("Failed to URL-encode values",e),["Ensure input is a form element or plain object of scalar/array values"])}}},Pi=hn({value:vn(),type:mn().min(1)});const Ni=hn({value:vn(),type:mn().min(1)});new class extends wn{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=Pi,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 JSONString",description:"Convert array to JSON string (upstream 0.9.90: use JSONString, not JSON)",expectedOutput:"[1,2,3]"},{input:"'{\"a\":1}' as JSON",description:"Parse a JSON string (upstream 0.9.90: as JSON now parses)",expectedOutput:{a:1}},{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 JSONString into storage",explanation:"Convert array to JSON string for storage (upstream 0.9.90: use `as JSONString`)",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=ji.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=ji[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",jsonstring:"JSONString",formencoded:"FormEncoded"}[s];if(l&&(o=ji[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:String(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 wn{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=Ni,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=ve(i);break;case"number":s=ke(i)&&!isNaN(i);break;case"boolean":s=we(i);break;case"object":s=be(i);break;case"array":s=Array.isArray(i);break;case"function":s=ze(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||be(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:String(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 Oi={Array:e=>Array.isArray(e)?e:e instanceof NodeList?Array.from(e):null==e?[]:[e],String:e=>null==e?"":ve(e)?e:be(e)?JSON.stringify(e):String(e),Boolean:e=>{if(we(e))return e;if(null==e)return!1;if(ve(e)){const t=e.toLowerCase().trim();return"false"!==t&&"0"!==t&&""!==t}return ke(e)?0!==e&&!isNaN(e):Boolean(e)},Number:e=>{if(ke(e))return e;if(null==e)return 0;const t=Number(e);return isNaN(t)?0:t},Math:e=>{if(ke(e))return e;if(null==e)return 0;const t=String(e).trim();if(!t)return 0;try{return function(e){if(e=e.replace(/\s/g,""),!/^[0-9+\-*/().]+$/.test(e))throw new Error("Invalid characters in math expression");try{const t=new Function(`"use strict"; return (${e})`)();if(!ke(t)||!isFinite(t))throw new Error("Expression did not evaluate to a finite number");return t}catch(e){throw new Error(`Math expression evaluation failed: ${e instanceof Error?e.message:String(e)}`)}}(t)}catch(e){return 0}},Int:e=>{const t=Oi.Number(e);return Math.trunc(t)},Float:e=>{const t=Oi.Number(e);return parseFloat(t.toString())},Date:e=>{if(e instanceof Date)return e;if(null==e)return new Date(NaN);if(ve(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=>{if(!ve(e))return e;try{return JSON.parse(e)}catch{return e}},JSONString:e=>{try{return JSON.stringify(e)}catch{return"{}"}},Object:e=>{if(be(e))return e;if(ve(e))try{return JSON.parse(e)}catch(e){return{}}return{}},Fragment:e=>{ve(e)||(e=Oi.String(e));const t=document.createElement("template");return t.innerHTML=String(e),t.content},HTML:e=>ve(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:Oi.String(e)).join(""):e instanceof Element?e.outerHTML:Oi.String(e),Values:(e,t)=>{if(e instanceof HTMLFormElement)return Ii(e);if(e instanceof HTMLElement){const t=e.querySelectorAll("input, select, textarea"),r={};return t.forEach(e=>{e.name&&(r[e.name]=Ri(e))}),r}return{}},FormEncoded:(e,t)=>{const r=e instanceof HTMLElement?Oi.Values(e,t):e;if(!be(r))return"";const n=new URLSearchParams;for(const[e,t]of Object.entries(r))if(null!=t)if(Array.isArray(t))for(const r of t)n.append(e,String(r));else n.append(e,String(t));return n.toString()},"Values:Form":(e,t)=>{const r=Oi.Values(e,t);return Oi.FormEncoded(r,t)},"Values:JSON":(e,t)=>{const r=Oi.Values(e,t);return JSON.stringify(r)}};function Ii(e){const t={};return e.querySelectorAll("input, select, textarea").forEach(e=>{const r=e;if(r.name){const e=Ri(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 Ri(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 Mi={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 new 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 Oi.Number(r).toFixed(e||2)}let i=Oi[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",jsonstring:"JSONString",formencoded:"FormEncoded"}[n.toLowerCase()];return a&&(i=Oi[a],i)?i(r,e):r},validate:e=>Xr(e,2,"as","value, type")??Qr(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(!ve(n))throw new Error("Type check requires a string type");switch(n.toLowerCase()){case"null":return null===r;case"undefined":return void 0===r;case"string":return ve(r);case"number":return ke(r)&&!isNaN(r);case"boolean":return we(r);case"object":return be(r);case"array":return Array.isArray(r);case"function":return ze(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||be(r)&&0===Object.keys(r).length;default:return r?.constructor?.name?.toLowerCase()===n.toLowerCase()}},validate:e=>Xr(e,2,"is","value, type")??Qr(e,1,"is","type")},async:{name:"async",category:"Conversion",evaluatesTo:"Any",precedence:25,associativity:"Right",operators:["async"],evaluate:async(e,t)=>t,validate:e=>Xr(e,1,"async","expression")}},$i={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"},Wi=hn({collection:gn().describe("Collection to operate on (array, NodeList, or string)")}).strict(),_i=hn({collection:gn().describe("Collection to access"),index:dn().describe("Index position to access")}).strict(),qi=hn({collection:gn().describe("Collection to select random item from")}).strict();class Vi extends wn{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=Wi,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:$i[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:String(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 Di extends wn{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=Wi,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:$i[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:String(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 Bi extends wn{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=_i,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&&a<i.length?i[a]:void 0,s={success:!0,value:o,type:$i[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:String(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 e<0?t+e:e}}class Hi extends wn{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=qi,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:$i[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:String(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 Vi,new Di,new Bi,new Hi;const Fi={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(ve(r)){return r.length>0?r[0]:null}if(be(r)&&"length"in r&&ke(r.length)){return r.length>0?r[0]:null}return null},validate:e=>nn(e,1,"first","collection")},Ui={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(ve(r)){return r.length>0?r[r.length-1]:null}if(be(r)&&"length"in r&&ke(r.length)){return r.length>0?r[r.length-1]:null}return null},validate:e=>nn(e,1,"last","collection")},Ki={name:"at",category:"Reference",evaluatesTo:"Any",operators:["at"],async evaluate(e,...t){const[r,n]=t;if(!ke(r))throw new 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=i<0?a.length+i:i;return e>=0&&e<a.length?a[e]:null}if(a instanceof NodeList||a instanceof HTMLCollection){const e=i<0?a.length+i:i;return e>=0&&e<a.length?a[e]:null}if(a instanceof Element){const e=a.children,t=i<0?e.length+i:i;return t>=0&&t<e.length?e[t]:null}if(ve(a)){const e=i<0?a.length+i:i;return e>=0&&e<a.length?a[e]:null}if(be(a)&&"length"in a&&ke(a.length)){const e=i<0?a.length+i:i;return e>=0&&e<a.length?a[e]:null}return null},validate:e=>an(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 Gi(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?Gi(n,t):null}function Ji(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?Ji(n,t):null}function Yi(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 Zi={first:Fi,last:Ui,at:Ki,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?Gi(i,r):i.nextElementSibling:null},validate(e){const t=nn(e,2,"next","optional selector, optional fromElement");return t||(e.length>=1&&null!=e[0]&&"string"!=typeof e[0]?"selector must be a string":e.length>=2&&null!=e[1]&&!(e[1]instanceof Element)?"fromElement must be an Element":null)}},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?Ji(i,r):i.previousElementSibling:null},validate(e){const t=nn(e,2,"previous","optional selector, optional fromElement");return t||(e.length>=1&&null!=e[0]&&"string"!=typeof e[0]?"selector must be a string":e.length>=2&&null!=e[1]&&!(e[1]instanceof Element)?"fromElement must be an Element":null)}},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=Yi(e);for(const e of n){if(Yi(e)>i)return e}return null}(a,r,o):null},validate(e){const t=an(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":e.length>=3&&null!=e[2]&&!(e[2]instanceof Element)?"fromElement must be an Element":null)}},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=Yi(e);for(let e=n.length-1;e>=0;e--){const t=n[e];if(Yi(t)<i)return t}return null}(a,r,o):null},validate(e){const t=an(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":e.length>=3&&null!=e[2]&&!(e[2]instanceof Element)?"fromElement must be an Element":null)}}};const Xi=new Set(["__proto__","constructor","prototype"]),Qi={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 new Error("Property name must be a string");if(r instanceof Element)return Ce(r,n);if(be(r)){if(Xi.has(n))return;return r[n]}return r[n]}},validate:e=>Xr(e,2,"possessive","element, property")??Qr(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 new Error("Property name must be a string");if(e.me instanceof Element)return Ce(e.me,r);if(be(e.me)){if(Xi.has(r))return;return e.me[r]}return e.me[r]}},validate:e=>en(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 new Error("Property name must be a string");const n=e.it;if(n instanceof Element)return Ce(n,r);if(be(n)){if(Xi.has(r))return;return n[r]}return n[r]},validate:e=>en(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 new Error("Property name must be a string");if(e.you instanceof Element)return Ce(e.you,r);if(be(e.you)){if(Xi.has(r))return;return e.you[r]}return e.you[r]}},validate:e=>en(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 new Error("Property name must be a string");if(n instanceof Element)return Ce(n,r);if(be(n)){if(Xi.has(r))return;return n[r]}return n[r]}},validate:e=>Xr(e,2,"of","property, object")??Qr(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 new Error("Attribute name must be a string");const i=n||e.me;return i&&i instanceof Element?i.getAttribute(r):null},validate:e=>an(e,1,2,"attribute","attributeName, optional element")??Qr(e,0,"attribute","attribute name")??(e.length>=2&&null!=e[1]&&!(e[1]instanceof Element)?"attribute element must be an Element":null)},attributeWithValue:{name:"attributeWithValue",category:"Reference",evaluatesTo:"Boolean",operators:["@="],async evaluate(e,...t){const[r,n,i]=t;if("string"!=typeof r)throw new Error("Attribute name must be a string");if("string"!=typeof n)throw new 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=>an(e,2,3,"attributeWithValue","attributeName, expectedValue, optional element")??Qr(e,0,"attributeWithValue","attribute name")??Qr(e,1,"attributeWithValue","expected value")??(e.length>=3&&null!=e[2]&&!(e[2]instanceof Element)?"attributeWithValue element must be an Element":null)},classReference:{name:"classReference",category:"Reference",evaluatesTo:"Array",operators:["."],async evaluate(e,...t){const[r]=t;if("string"!=typeof r)throw new 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=>en(e,"classReference","className")},idReference:{name:"idReference",category:"Reference",evaluatesTo:"Element",operators:["#"],async evaluate(e,...t){const[r]=t;if("string"!=typeof r)throw new Error("ID value must be a string");const n=r.startsWith("#")?r.slice(1):r;return document.getElementById(n)},validate:e=>en(e,"idReference","idValue")}};class ea{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=An(e,"left operand"),i=An(r,"right operand");return{success:!0,value:jn(n+i,"addition"),type:"number"}}catch(e){return{success:!1,errors:[Rn("runtime-error",`Addition failed: ${e instanceof Error?e.message:String(e)}`)],suggestions:["Ensure both operands are numeric"]}}}validate(e){const t=function(e){if(null==e)return In([Rn("missing-argument","Input is null or undefined")],["Provide an object with left and right operands"]);if("object"!=typeof e)return In([Rn("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"),In([Rn("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 Pn(r)?Pn(n)?{isValid:!0,errors:[],suggestions:[]}:{isValid:!1,errors:[Rn("type-mismatch",`Right operand cannot be converted to number: ${String(n)}`)],suggestions:["Provide a numeric value for right operand"]}:{isValid:!1,errors:[Rn("type-mismatch",`Left operand cannot be converted to number: ${String(r)}`)],suggestions:["Provide a numeric value for left operand"]}}}class ta{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=An(e,"left operand"),i=An(r,"right operand");return{success:!0,value:jn(n-i,"subtraction"),type:"number"}}catch(e){return{success:!1,errors:[Rn("runtime-error",`Subtraction failed: ${e instanceof Error?e.message:String(e)}`)],suggestions:["Ensure both operands are numeric"]}}}validate(e){return(new ea).validate(e)}}class ra{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=An(e,"left operand"),i=An(r,"right operand");return{success:!0,value:jn(n*i,"multiplication"),type:"number"}}catch(e){return{success:!1,errors:[Rn("runtime-error",`Multiplication failed: ${e instanceof Error?e.message:String(e)}`)],suggestions:["Ensure both operands are numeric"]}}}validate(e){return(new ea).validate(e)}}class na{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=An(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 new Error("Division by zero")}return e/t}(n,An(r,"right operand"),!0);return{success:!0,value:i,type:"number"}}catch(e){return{success:!1,errors:[Rn("runtime-error",`Division failed: ${e instanceof Error?e.message:String(e)}`)],suggestions:["Ensure both operands are numeric"]}}}validate(e){return(new ea).validate(e)}}class ia{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=An(e,"left operand"),i=function(e,t){if(0===t)throw new Error("Modulo by zero");return e%t}(n,An(r,"right operand"));return{success:!0,value:i,type:"number"}}catch(e){return{success:!1,errors:[Rn("runtime-error",`Modulo failed: ${e instanceof Error?e.message:String(e)}`)],suggestions:["Ensure both operands are numeric and divisor is not zero"]}}}validate(e){return(new ea).validate(e)}}class aa{constructor(){this.name="power",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=An(e,"left operand"),i=An(r,"right operand");return{success:!0,value:jn(Math.pow(n,i),"power"),type:"number"}}catch(e){return{success:!1,errors:[Rn("runtime-error",`Power failed: ${e instanceof Error?e.message:String(e)}`)],suggestions:["Ensure both operands are numeric"]}}}validate(e){return(new ea).validate(e)}}const oa={addition:new ea,subtraction:new ta,multiplication:new ra,division:new na,modulo:new ia,power:new aa};function sa(){return Yr(zn,hi,Mi,Zi,Qi,Ti,oa)}var la=Object.freeze({__proto__:null,conversion:Mi,conversionExpressions:Mi,createCommonRegistry:function(){return Yr(zn,hi,Ti,Mi,Zi)},createCoreRegistry:function(){return Yr(zn,hi,Ti)},createExpressionRegistry:Yr,createFullExpressionRegistry:sa,createFullRegistry:function(){return Yr(zn,hi,Ti,Mi,Zi,Qi)},logical:hi,logicalExpressions:hi,positional:Zi,positionalExpressions:Zi,properties:Qi,propertiesExpressions:Qi,references:zn,referencesExpressions:zn,special:Ti,specialExpressions:Ti});function ca(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 f={};for(var h in n)f[h]="access"===h?{}:n[h];for(var h in n.access)f.access[h]=n.access[h];f.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],f);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 ua(e,t,r){for(var n=arguments.length>2,i=0;i<t.length;i++)r=n?t[i].call(e,r):t[i].call(e);return n?r:void 0}function pa(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 ma=Symbol("command:name"),da=Symbol("command:category"),fa=Symbol("command:metadata");function ha(e){return function(t,r){const n=t;n[ma]=e.name,n[da]=e.category,Object.defineProperty(t.prototype,"name",{value:e.name,writable:!1,enumerable:!0})}}function ya(e){return function(t,r){const n=t,i=n[da];if(!i)throw new 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[fa]=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 ga(e){return()=>new e}function va(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&1===e.nodeType&&"tagName"in e&&"string"==typeof e.tagName&&"classList"in e}function ka(e,t){return e?`[${e}] ${t}`:t}function wa(e,t,r){if(va(e))return e;if(!e){const e=t.me;if(!e)throw new Error(ka(r,"No target element — provide explicit target or ensure context.me is set"));return za(e)}if("string"==typeof e){const n=e.trim();if("me"===n){if(!t.me)throw new Error(ka(r,'Context reference "me" is not available'));return za(t.me)}if("it"===n){if(!va(t.it))throw new Error(ka(r,'Context reference "it" is not an HTMLElement'));return t.it}if("you"===n){if(!t.you)throw new Error(ka(r,'Context reference "you" is not available'));return za(t.you)}const i=t.me?.ownerDocument??("undefined"!=typeof document?document:null);if(!i)throw new Error(ka(r,"DOM not available — cannot resolve element selector"));const a=i.querySelector(n);if(!a)throw new Error(ka(r,`Element not found with selector: ${n}`));if(!va(a))throw new Error(ka(r,`Element found but is not an HTMLElement: ${n}`));return a}throw new Error(ka(r,"Invalid target type: "+typeof e))}function ba(e,t){if(Array.isArray(e))return e.filter(va);if(e instanceof NodeList)return Array.from(e).filter(va);if(va(e))return[e];if(!e){const e=t.me;return e&&va(e)?[e]:[]}if("string"==typeof e){const r=e.trim();if("me"===r)return t.me&&va(t.me)?[t.me]:[];if("it"===r)return va(t.it)?[t.it]:[];if("you"===r)return t.you&&va(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(va)}}return[]}function za(e){if(va(e))return e;throw new Error("Value is not an HTMLElement")}function xa(e,t,r){switch(e.toLowerCase()){case"my":case"me":if(!t.me)throw new Error(ka(r,'No "me" element in context'));if(!va(t.me))throw new Error(ka(r,"context.me is not an HTMLElement"));return t.me;case"its":case"it":if(!t.it)throw new Error(ka(r,'No "it" value in context'));if(!va(t.it))throw new Error(ka(r,"context.it is not an HTMLElement"));return t.it;case"your":case"you":if(!t.you)throw new Error(ka(r,'No "you" element in context'));if(!va(t.you))throw new Error(ka(r,"context.you is not an HTMLElement"));return t.you;default:throw new Error(ka(r,`Unknown possessive: ${e}`))}}const Ea=["on","from","to","in","with","at"];async function Sa(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||!Ea.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 new Error(`${n} command: no target specified and context.me is null`);if(!va(r.me))throw new 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(va(i))s.push(i);else if(i instanceof NodeList){const e=Array.from(i).filter(va);s.push(...e)}else if(Array.isArray(i)){const e=i.filter(va);s.push(...e)}else{if("string"!=typeof i)throw new 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 new Error("DOM not available - cannot resolve element selector");const n=t.querySelectorAll(e),a=Array.from(n).filter(va);s.push(...a)}catch(e){throw new Error(`Invalid CSS selector: "${i}" - ${e instanceof Error?e.message:String(e)}`)}}}if(0===s.length){if(!r.me)throw new Error(`${n} command: no target specified and context.me is null`);if(!va(r.me))throw new Error(`${n} command: context.me must be an HTMLElement`);return[r.me]}return s}class Ta{async parseInput(e,t,r){const{targets:n}=await async function(e,t,r,n){return{targets:await Sa(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=>va(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")}}let Ca=(()=>{let e,t,r=[ya({description:"Hide elements by setting display to none",syntax:"hide [<target>]",examples:["hide me","hide #modal","hide .warnings","hide <button/>"],sideEffects:["dom-mutation"]}),ha({name:"hide",category:"dom"})],n=[],i=Ta;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=>va(e))}},pa(t,"HideCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;ca(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}),ua(t,n)})(),t})();const Aa=ga(Ca);let La=(()=>{let e,t,r=[ya({description:"Show elements by restoring display property",syntax:"show [<target>]",examples:["show me","show #modal","show .hidden","show <button/>"],sideEffects:["dom-mutation"]}),ha({name:"show",category:"dom"})],n=[],i=Ta;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=>va(e))&&"string"==typeof t.defaultDisplay)}},pa(t,"ShowCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;ca(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}),ua(t,n)})(),t})();const ja=ga(La);function Pa(e){const t=e.trim();return!(!t.startsWith("[@")||!t.endsWith("]"))||!!t.startsWith("@")}function Na(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 new Error(`Invalid attribute syntax: ${e}`)}function Oa(e,t){for(const r of e)t(r);return e}function Ia(e,t,r){for(const n of e)for(const e of t)r(n,e);return e}function Ra(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 Ma(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=String(e).trim();return t.startsWith(".")?t.substring(1):t}).filter(e=>e.length>0&&Wa(e));const t=String(e).trim(),r=t.startsWith(".")?t.substring(1):t;return r.length>0&&Wa(r)?[r]:[]}function $a(e){const t=e.trim();return/^\{[^}]+\}$/.test(t)}function Wa(e){if(!e||0===e.trim().length)return!1;const t=e.trim();if($a(t))return!0;return/^[a-zA-Z_-][a-zA-Z0-9_-]*$/.test(t)}function _a(e,t){return e.map(e=>{if($a(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?String(n):""}return e}).filter(e=>e.length>0)}function qa(e){return"string"==typeof e&&e.trim().startsWith("*")}function Va(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}function Da(e,t,r){e.style.setProperty(t,r)}const Ba=["dialog","details","summary","select"];function Ha(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 Fa(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 Ba.includes(t)}(t)}async function Ua(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=Ha(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=Ha(e);return"string"==typeof r&&r.startsWith("*")}(e)?{value:Ha(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=Ha(e);return"string"==typeof t&&t.startsWith("@")}return!1}(e)?{value:(n=e,"attributeAccess"===n.type?`@${n.attributeName}`:Ha(n)),extractedFromNode:!0}:{value:await t.evaluate(e,r),extractedFromNode:!1};var n}class Ka{async resolveTargets(e,t,r,n){return Sa(e,t,r,this.mode,{filterPrepositions:!0,fallbackModifierKey:this.preposition},n)}async evaluateFirst(e,t,r){return Ua(e,t,r)}parseClassNames(e){return Ma(e)}isAttribute(e){return Pa(e.trim())}isCSSProperty(e){return qa(e.trim())}validateTargets(e){return Array.isArray(e)&&function(e){return Array.isArray(e)&&e.length>0&&e.every(e=>va(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 Ga=(()=>{let e,t,r=[ya({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"]}),ha({name:"add",category:"dom"})],n=[],i=Ka;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 new 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=Na(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(e.args.length<2)throw new Error("add *property requires a value argument");const a=await t.evaluate(e.args[1],r);return{type:"styles",styles:{[n]:String(a)},targets:await this.resolveTargets(e.args.slice(2),t,r,e.modifiers)}}}const i=this.parseClassNames(n);if(0===i.length)throw new 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=_a(e.classes,t);r.length>0&&Ia(e.targets,r,(e,t)=>{e.classList.contains(t)||e.classList.add(t)});break}case"attribute":!function(e,t,r){Oa(e,e=>{e.setAttribute(t,r)})}(e.targets,e.name,e.value);break;case"styles":!function(e,t){Ia(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}},pa(t,"AddCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;ca(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}),ua(t,n)})(),t})();const Ja=ga(Ga);function Ya(e){return!!e.parentNode&&(e.remove(),!0)}let Za=(()=>{let e,t,r=[ya({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"]}),ha({name:"remove",category:"dom"})],n=[],i=Ka;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 new Error("remove command requires an argument");const{value:n}=await this.evaluateFirst(e.args[0],t,r);if(va(n))return{type:"element",targets:[n]};if(Array.isArray(n)&&n.length>0&&va(n[0]))return{type:"element",targets:n.filter(e=>va(e))};if("string"==typeof n){const i=n.trim();if(this.isAttribute(i)){return{type:"attribute",name:Na(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 new 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=_a(e.classes,t);r.length>0&&Ia(e.targets,r,(e,t)=>{e.classList.remove(t)});break}case"attribute":!function(e,t){Oa(e,e=>{e.removeAttribute(t)})}(e.targets,e.name);break;case"styles":!function(e,t){Ia(e,t,(e,t)=>{e.style.removeProperty(t)})}(e.targets,e.properties);break;case"element":for(const t of e.targets)Ya(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}},pa(t,"RemoveCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;ca(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}),ua(t,n)})(),t})();const Xa=ga(Za);function Qa(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 eo(e,t=300){if("number"==typeof e)return Math.max(0,Math.floor(e));if("string"==typeof e){const r=Qa(e);return r?r.milliseconds:t}return t}function to(e){if("number"==typeof e){if(e<0)throw new Error("Duration must be >= 0");return Math.floor(e)}if("string"==typeof e){const t=Qa(e);if(!t)throw new Error(`Invalid duration format: "${e}"`);return t.milliseconds}throw new Error("Invalid duration type: "+typeof e)}function ro(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 no(e,t){let r=0;for(let n=0;n<e.length;n++){r=Math.max(r,(e[n]||0)+(t[n]||0))}return r}function io(e){if(0===e.length)return[];return"SUMMARY"===e[0].tagName?e.map(e=>e.closest("details")).filter(e=>null!==e):e}function ao(e){return"DIALOG"===e.tagName}function oo(e){return"DETAILS"===e.tagName}function so(e,t,r){return()=>{"class"===t?e.classList.toggle(r):"attribute"===t&&Ra(e,r)}}function lo(e,t,r,n){const i=so(e,t,r),a=setTimeout(i,n);return()=>{clearTimeout(a)}}function co(e,t,r,n){const i=so(e,t,r),a=()=>{i(),e.removeEventListener(n,a)};return e.addEventListener(n,a,{once:!0}),()=>{e.removeEventListener(n,a)}}function uo(e,t,r){if(t.startsWith("@")){const n=t.substring(1);return void(!1===r?e.removeAttribute(n):e.setAttribute(n,!0===r?"":String(r)))}const n=String(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=Boolean(r)))}if(t.includes(".")){const n=t.split(".");let i=e;for(let e=0;e<n.length-1;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 new Error(`Cannot set property '${t}': ${e instanceof Error?e.message:"Unknown error"}`)}}function po(e){return null==e||""===e}const mo=/^the\s+(.+?)\s+of\s+(.+)$/i,fo=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 ho(e){return"string"==typeof e&&mo.test(e)}function yo(e,t){const r=e.match(mo);if(!r)return null;try{return{element:wa(r[2].trim(),t),property:r[1].trim()}}catch{return null}}async function go(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]),va(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]),va(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]),!va(a))return null;const o=i?.name||i?.value;return o?{element:a,property:o}:null}return null}function vo(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 Ce(t,r)}function ko(e,t){const{element:r,property:n}=e;if(n.startsWith("*")){return void Da(r,n.substring(1),String(t))}uo(r,n,t)}async function wo(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?eo(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 bo(e,t){const r=t?.name,n=Fa(t);if(va(e)||Array.isArray(e)&&e.every(e=>va(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 Ba.some(e=>t.includes(e))}(t)?{type:"element",expression:t}:{type:"class",expression:t}}return{type:"class",expression:""}}let zo=(()=>{let e,t,r=[ya({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"]}),ha({name:"toggle",category:"dom"})],n=[];return t=class{async parseInput(e,t,r){if(!e.args?.length)throw new 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 wo(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;t<e.args.length;t++){const r=e.args[t]?.name;"on"!==r&&"from"!==r&&s.push(e.args[t])}const l={filterPrepositions:!0,fallbackModifierKey:"on"},c=await Sa(s,t,r,"toggle",l,e.modifiers);return{type:"classes-between",classA:String(a).replace(/^\./,""),classB:String(o).replace(/^\./,""),targets:c,duration:n,untilEvent:i}}const a=await go(n,t,r);if(a)return{type:"property",target:a};if("selector"===n.type&&"string"==typeof n.value&&n.value.startsWith("*")){let i=n.value,a=1;if("*"===i&&e.args.length>1&&"identifier"===e.args[1].type&&(i="*"+e.args[1].name,a=2),"*"===i&&e.modifiers?.on){const n=e.modifiers.on?.name;if(n&&["display","visibility","opacity"].includes(n)){i="*"+n;const{duration:a,untilEvent:o}=await wo(e.modifiers,t,r),s=Va(i);if(s){const e=r.me;return{type:"css-property",property:s,targets:e?[e]:[],duration:a,untilEvent:o}}}}const o=Va(i);if(o){const{duration:n,untilEvent:i}=await wo(e.modifiers,t,r),s={filterPrepositions:!0,fallbackModifierKey:"on"};return{type:"css-property",property:o,targets:await Sa(e.args.slice(a),t,r,"toggle",s,e.modifiers),duration:n,untilEvent:i}}}const{duration:o,untilEvent:s}=await wo(e.modifiers,t,r),{value:l}=await Ua(n,t,r);if(ho(l)){const e=yo(l,r);if(e)return{type:"property",target:e}}const{type:c,expression:u}=bo(l,n),p={filterPrepositions:!0,fallbackModifierKey:"on"};switch(c){case"attribute":{const{name:n,value:i}=Na(u);return{type:"attribute",name:n,value:i,targets:await Sa(e.args.slice(1),t,r,"toggle",p,e.modifiers),duration:o,untilEvent:s}}case"css-property":{const n=Va(u);if(!n)throw new Error(`Invalid CSS property: ${u}`);return{type:"css-property",property:n,targets:await Sa(e.args.slice(1),t,r,"toggle",p,e.modifiers)}}case"element":{let i;if(va(l))i=[l];else if(Array.isArray(l)&&l.every(e=>va(e)))i=l;else if(u){const e=document.querySelectorAll(u);i=Array.from(e).filter(e=>va(e))}else i=await Sa([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:io(i)};if("select"===a)return{type:"select",targets:i};return{type:"classes",classes:Ma(u),targets:i,duration:o,untilEvent:s}}default:{const n=Ma(u||l);if(!n.length)throw new Error("toggle command: no valid class names found");return{type:"classes",classes:n,targets:await Sa(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=_a(e.classes,t);if(0===r.length)return[...e.targets];if(Ia(e.targets,r,(e,t)=>{e.classList.toggle(t)}),(e.duration||e.untilEvent)&&r.length)for(const t of e.targets)e.duration&&lo(t,"class",r[0],e.duration),e.untilEvent&&co(t,"class",r[0],e.untilEvent);return[...e.targets]}case"attribute":if(function(e,t,r){Oa(e,e=>{Ra(e,t,r)})}(e.targets,e.name,e.value),e.duration||e.untilEvent)for(const t of e.targets)e.duration&&lo(t,"attribute",e.name,e.duration),e.untilEvent&&co(t,"attribute",e.name,e.untilEvent);return[...e.targets];case"css-property":return Oa(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=vo(e),r=e.property,n=r.startsWith("@")?r.substring(1):r;if("boolean"==typeof t||fo.has(n)||fo.has(n.toLowerCase())){const r=!t;return ko(e,r),r}if("number"==typeof t){const r=0===t?1:0;return ko(e,r),r}if("string"==typeof t){const n=`__ht_${r}`,i=e.element[n];return""===t&&void 0!==i?(ko(e,i),i):(e.element[n]=t,ko(e,""),"")}const i=!t;ko(e,i)}(e.target),[e.target.element];case"dialog":return Oa(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 Oa(e.targets,e=>{var t;(t=e).open=!t.open});case"select":return Oa(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&&lo(t,"class",e.classA,e.duration),e.untilEvent&&co(t,"class",e.classA,e.untilEvent);return[...e.targets]}}},pa(t,"ToggleCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})();const xo=ga(zo);let Eo=(()=>{let e,t,r=[ya({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"]}),ha({name:"put",category:"dom"})],n=[];return t=class{async parseInput(e,t,r){if(!e.args?.length)throw new 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;t<e.args.length;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)s=e.args[0],o=e.args[1]?.value||e.args[1]?.name||null,l=e.args[2];else{if(!(e.args.length>=2))throw new Error("put requires content and position");s=e.args[0],o=e.args[1]?.value||e.args[1]?.name||"into"}else s=e.args.slice(0,a)[0]||null,l=e.args.slice(a+1)[0]||null;if(!s)throw new Error("put requires content");if(!o)throw new 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 go(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;else if("identifier"===e?.type){const i=e.name;if("my"===i||"me"===i||"I"===i){if(r.me&&n?.name)return{value:c,targets:[r.me],position:"replace",memberPath:n.name}}else if("its"===i||"it"===i){const e=await t.evaluate(l,r);"string"==typeof e&&(d=e)}else d=i}if(d&&n?.name)p=n.name;else if(!d&&!p){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&&ho(e)){const t=yo(e,r);if(t)return{value:c,targets:[t.element],position:"replace",memberPath:t.property}}"string"==typeof e&&this.looksLikeCss(e)?d=e:m=String(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 new Error(`Invalid position: ${e}`)}}async resolveTargets(e,t){if(!e||"me"===e){if(!t.me||!va(t.me))throw new Error("put: no target and context.me is null");return[t.me]}const r=Array.from(document.querySelectorAll(e)).filter(e=>va(e));if(!r.length)throw new Error(`No elements: "${e}"`);return r}parseValue(e){return va(e)?e:null==e?"":String(e)}insertContent(e,t,r){if("replace"!==r)if(va(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(va(t))e.innerHTML="",e.appendChild(t);else{t.includes("<")&&t.includes(">")?e.innerHTML=t:e.textContent=t}}resolveEvaluatedAsElements(e){if(va(e))return[e];if(Array.isArray(e)){const t=e.filter(va);return t.length>0?t:null}if("undefined"!=typeof NodeList&&e instanceof NodeList){const t=Array.from(e).filter(va);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;e<n.length-1;e++){if(!i[n[e]])throw new Error(`Property path "${t}" does not exist`);i=i[n[e]]}i[n[n.length-1]]=r}},pa(t,"PutCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})();const So=ga(Eo);function To(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 Co(e,t,r){return"global"===r&&t.globals&&t.globals.has(e)?t.globals.get(e):"global"!==r&&t.locals&&t.locals.has(e)?(me(e,t),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)?(me(e,t),t.locals.get(e)):"undefined"!=typeof window&&e in window?window[e]:"undefined"!=typeof globalThis&&e in globalThis?globalThis[e]:void 0}function Ao(e,t,r,n){if("global"===n)return ye(r,e,t),void("undefined"!=typeof window&&(window[e]=t));if(e.startsWith("$")){return void ye(r,e.slice(1),t)}if(r.locals&&r.locals.has(e))return r.locals.set(e,t),void pe(e,t,r);if(r.globals&&r.globals.has(e))return ye(r,e,t),void("undefined"!=typeof window&&e in window&&(window[e]=t));if(r.variables&&r.variables.has(e))r.variables.set(e,t);else{if("undefined"!=typeof window&&e in window)return window[e]=t,void ye(r,e,t);r.locals.set(e,t),pe(e,t,r)}}function Lo(e,t){return"me"===e?t.me:"it"===e?t.it:"you"===e?t.you:Co(e,t)}function jo(e,t,r,n){if("number"==typeof e)return e;if(va(e)){const r=e;if(t){if(t.startsWith("data-")||["id","class","title","alt","src","href"].includes(t)){return To(r.getAttribute(t))}return To(r[t])}return To(r.value||r.textContent)}if("string"==typeof e){if("global"===r){return To(Co(e,n,"global"))}if(e.includes("."))return function(e,t){const r=e.split("."),n=r[1],i=Lo(r[0],t);return i?To(i[n]):0}(e,n);if("me"===e&&n.me)return To(n.me.value||0);if("it"===e)return To(n.it||0);if("you"===e&&n.you)return To(n.you.value||0);return To(Co(e,n))}return To(e)}function Po(e,t,r,n,i){if(va(e)){const r=e;return void(t?t.startsWith("data-")||["id","class","title","alt","src","href"].includes(t)?r.setAttribute(t,String(n)):r[t]=n:"value"in r&&void 0!==r.value?r.value=String(n):r.textContent=String(n))}if("string"==typeof e){if("global"===r)return void Ao(e,n,i,"global");if(e.includes("."))return void function(e,t,r){const n=e.split("."),i=n[1],a=Lo(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);Ao(e,n,i)}}const No=ga((()=>{let e,t,r=[ya({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"]}),ha({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 new 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:String(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(va(e))return e;const n=String(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 new 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&&Ao(i,a,t),a}},pa(t,"MakeCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());const Oo=ga((()=>{let e,t,r=[ya({description:"Remove all children from an element (sets innerHTML to empty)",syntax:["empty","empty <target>","empty the <target>"],examples:["empty me","empty #list","empty .results"],sideEffects:["dom-mutation"]}),ha({name:"empty",category:"dom"})],n=[];return t=class{async parseInput(e,t,r){return{targets:await Sa(e.args,t,r,"empty",{filterPrepositions:!0,fallbackModifierKey:"on"},e.modifiers)}}async execute(e,t){for(const t of e.targets)t.innerHTML=""}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&t.targets.every(e=>va(e))}},pa(t,"EmptyCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());function Io(e){return e.hasAttribute("popover")}let Ro=(()=>{let e,t,r=[ya({description:"Open a dialog, details element, or popover",syntax:["open [<target>]","open <dialog> as modal","open <dialog> as non-modal"],examples:["open","open #myDialog","open #details","open #popup as non-modal"],sideEffects:["dom-mutation"]}),ha({name:"open",category:"dom"})],n=[];return t=class{async parseInput(e,t,r){const n=(e.args??[]).filter(e=>{const t=e;if("identifier"!==t?.type)return!0;const r=t.name?.toLowerCase();return"as"!==r&&"modal"!==r&&"non-modal"!==r&&"nonmodal"!==r}),i=io(await Sa(n,t,r,"open",{filterPrepositions:!0,fallbackModifierKey:"on"},e.modifiers)),a=await async function(e,t,r,n){if(t?.as){const e=await r.evaluate(t.as,n);if("string"==typeof e){const t=e.toLowerCase().trim();if("non-modal"===t||"nonmodal"===t)return"non-modal";if("modal"===t)return"modal"}}for(let t=0;t<e.length-1;t++){const i=e[t];if("identifier"===i?.type&&"as"===i.name?.toLowerCase()){const i=await r.evaluate(e[t+1],n);if("string"==typeof i){const e=i.toLowerCase().trim();if("non-modal"===e||"nonmodal"===e)return"non-modal";if("modal"===e)return"modal"}}}return"modal"}(e.args??[],e.modifiers??{},t,r);return{targets:i,dialogMode:a}}async execute(e,t){for(const t of e.targets)if(ao(t))t.open||("modal"===e.dialogMode?t.showModal():t.show());else if(oo(t))t.open=!0;else if(Io(t)){const e=t;if("function"==typeof e.showPopover)try{e.showPopover()}catch{}}}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&(!!t.targets.every(e=>va(e))&&("modal"===t.dialogMode||"non-modal"===t.dialogMode))}},pa(t,"OpenCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})();const Mo=ga(Ro);function $o(e){return e.hasAttribute("popover")}const Wo=ga((()=>{let e,t,r=[ya({description:"Close a dialog, details element, or popover",syntax:["close","close <target>"],examples:["close","close #myDialog","close #details","close #popup"],sideEffects:["dom-mutation"]}),ha({name:"close",category:"dom"})],n=[];return t=class{async parseInput(e,t,r){return{targets:io(await Sa(e.args,t,r,"close",{filterPrepositions:!0,fallbackModifierKey:"on"},e.modifiers))}}async execute(e,t){for(const t of e.targets)if(ao(t))t.open&&t.close();else if(oo(t))t.open=!1;else if($o(t)){const e=t;if("function"==typeof e.hidePopover)try{e.hidePopover()}catch{}}}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&t.targets.every(e=>va(e))}},pa(t,"CloseCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());function _o(e){const t=e.tagName;return"INPUT"===t||"TEXTAREA"===t}const qo=ga((()=>{let e,t,r=[ya({description:"Select the contents of a text field, or select the contents of a DOM element",syntax:["select","select <target>"],examples:["select #search","select <textarea/>","select me"],sideEffects:["focus","dom-mutation"]}),ha({name:"select",category:"dom"})],n=[];return t=class{async parseInput(e,t,r){return{targets:await Sa(e.args,t,r,"select",{filterPrepositions:!0,fallbackModifierKey:"on"},e.modifiers)}}async execute(e,t){if(0!==e.targets.length)for(const t of e.targets){if(_o(t)){t.select();continue}const e=t.ownerDocument??("undefined"!=typeof document?document:null),r=e?.defaultView;if(!e||!r)continue;const n=r.getSelection?.();if(n)try{const r=e.createRange();r.selectNodeContents(t),n.removeAllRanges(),n.addRange(r)}catch{}}}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&t.targets.every(e=>va(e))}},pa(t,"SelectCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());function Vo(e){return"FORM"===e.tagName}const Do=ga((()=>{let e,t,r=[ya({description:"Reset a <form> element to its default values (HTMLFormElement.reset())",syntax:["reset","reset <target>"],examples:["reset","reset #myForm","reset <form/>"],sideEffects:["dom-mutation"]}),ha({name:"reset",category:"dom"})],n=[];return t=class{async parseInput(e,t,r){return{targets:await Sa(e.args,t,r,"reset",{filterPrepositions:!0,fallbackModifierKey:"on"},e.modifiers)}}async execute(e,t){for(const t of e.targets)Vo(t)&&t.reset()}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&t.targets.every(e=>va(e))}},pa(t,"ResetCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());var Bo="moveBefore"in Element.prototype,Ho=[0,1,0,0,0,0,0,0,0,1,0,1,0],Fo=0,Uo=1,Ko=2,Go=new Set,Jo=new Set,Yo=new Set,Zo=new Set,Xo=new Set,Qo=new Set;function es(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 ts(e){const t=document.createElement("template");return t.innerHTML=e.trim(),t.content}function rs(e,t,r){if(t!==r){if(t.parentNode===e){if(t.nextSibling===r)return;if(Bo)return void e.moveBefore(t,r)}e.insertBefore(t,r)}}class ns{#e=new WeakMap;#t=new WeakMap;#r;constructor(e={}){this.#r=e}morph(e,t){os(e)&&this.#n(e),t instanceof NodeList?(this.#i(t),this.#a(e,t)):os(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;e<r.length;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.#f(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.#f(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&&is(e)&&e.value!==n&&(this.#r.preserveChanges&&e.value!==e.defaultValue||(e.value=n)),"selected"===r&&as(e)&&!e.selected&&(this.#r.preserveChanges&&e.selected!==e.defaultSelected||(e.selected=!0)),"checked"===r&&is(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&&as(e)&&e.selected&&(this.#r.preserveChanges&&e.selected!==e.defaultSelected||(e.selected=!1)),"checked"===r&&is(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];Go.clear(),Jo.clear(),Yo.clear(),Zo.clear(),Xo.clear(),Qo.clear();const a=[],o=[],s=[],l=[],c=[],u=[];for(let e=0;e<n.length;e++){const t=n[e],r=t.nodeType;l[e]=r,1===r?(u[e]=t.localName,""!==t.id?Yo.add(e):Jo.add(e)):3===r&&""===t.textContent?.trim()?Qo.add(e):Go.add(e)}for(let e=0;e<i.length;e++){const t=i[e],r=t.nodeType;if(s[e]=r,1===r)c[e]=t.localName,Xo.add(e);else{if(3===r&&""===t.textContent?.trim())continue;Zo.add(e)}}for(const e of Xo){const t=c[e],r=i[e];for(const i of Jo){if(t!==u[i])continue;if(n[i].isEqualNode(r)){a[e]=i,o[e]=Fo,Jo.delete(i),Xo.delete(e);break}}}for(const e of Xo){const t=i[e],r=t.id,s=this.#e.get(t);if(""!==r||s)e:for(const t of Yo){const i=n[t];if(c[e]===u[t]){if(""!==r&&r===i.id){a[e]=t,o[e]=Uo,Yo.delete(t),Xo.delete(e);break e}if(s){const r=this.#t.get(i);if(r)for(let n=0;n<s.length;n++){if(r.has(s[n])){a[e]=t,o[e]=Uo,Yo.delete(t),Xo.delete(e);break e}}}}}}for(const e of Xo){const t=i[e],r=t.getAttribute("name"),s=t.getAttribute("href"),l=t.getAttribute("src");for(const t of Jo){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]=Uo,Jo.delete(t),Xo.delete(e);break}}}for(const e of Xo){const t=i[e],r=c[e];for(const i of Jo){if(r===u[i]){if("input"===r&&n[i].type!==t.type)continue;a[e]=i,o[e]=Uo,Jo.delete(i),Xo.delete(e);break}}}for(const e of Zo){const t=i[e];for(const r of Go){if(n[r].isEqualNode(t)){a[e]=r,o[e]=Fo,Go.delete(r),Zo.delete(e);break}}}for(const e of Zo){const t=s[e];for(const r of Go)if(t===l[r]){a[e]=r,o[e]=Ko,Go.delete(r),Zo.delete(e);break}}for(const e of Go)this.#l(n[e]);for(const e of Qo)this.#l(n[e]);for(const e of Jo)this.#l(n[e]);for(const e of Yo)this.#l(n[e]);const p=function(e){const t=e.length;if(0===t)return[];const r=[],n=[],i=new Array(t);for(let a=0;a<t;a++){const t=e[a];if(void 0===t)continue;let o=0,s=r.length;for(;o<s;){const e=Math.floor((o+s)/2);r[e]<t?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=new Array(n.length);for(let e=0;e<p.length;e++)m[a[p[e]]]=!0;let d=r.firstChild;for(let e=0;e<i.length;e++){const t=i[e],s=a[e];if(void 0!==s){const i=n[s],a=o[e];m[s]||rs(r,i,d),a===Fo||(a===Uo?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)}#f(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)os(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 is(e){return"input"===e.localName}function as(e){return"option"===e.localName}function os(e){return!!Ho[e.nodeType]}function ss(e){return{preserveChanges:e?.preserveChanges??!0}}const ls={morph(e,t,r){!function(e,t,r={}){"string"==typeof t&&(t=ts(t).childNodes),!r.preserveChanges&&os(e)&&es(e),new ns(r).morph(e,t)}(e,t,ss(r))},morphInner(e,t,r){let n;if("string"==typeof t){const r=document.createElement(e.tagName);r.innerHTML=t,n=r}else n=t;!function(e,t,r={}){if("string"==typeof t){const e=ts(t);if(!e.firstChild||1!==e.childNodes.length||1!==e.firstChild.nodeType)throw new 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 new Error("[Morphlex] You can only do an inner morph with matching elements.");os(e)&&es(e),new ns(r).visitChildNodes(e,t)}(e,n,ss(r))}};function cs(){if("undefined"!=typeof document)return document.startViewTransition}function us(){return"function"==typeof cs()}const ps=[];let ms=!1;async function ds(e){const t=cs();if(!t)return void await e();const r=t(async()=>{await e()});await r.finished}function fs(e){return new Promise((t,r)=>{ps.push({callback:e,resolve:t,reject:r}),async function(){if(!ms){ms=!0;try{for(;ps.length>0;){const e=ps.shift();try{await ds(e.callback),e.resolve()}catch(t){e.reject(t)}}}finally{ms=!1}}}().catch(r)})}const hs={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 ys(e,t,r,n){const i=null===t||va(t)?"":t,a=va(t)?t:null;switch(r){case"morph":if(null!==t)try{ls.morphInner(e,a||i,n)}catch(t){a?(e.innerHTML="",e.appendChild(a)):e.innerHTML=i}break;case"morphOuter":if(null!==t)try{ls.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 new Error(`[HyperFixi] swap: unknown strategy "${r}"`)}}async function gs(e,t,r,n={}){const{morphOptions:i,useViewTransition:a=!1}=n,o=()=>{for(const n of e)ys(n,t,r,i)};a&&us()?await fs(o):o()}function vs(e){if(null==e)return null;if(va(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 String(e)}async function ks(e,t){const r=ba(e||void 0,t);if(0===r.length){throw new Error(`[HyperFixi] swap: no elements found${e?` matching "${e}"`:""}`)}return r}let ws=(()=>{let e,t,r=[ya({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"]}),ha({name:"swap",category:"dom"})],n=[];return t=class{async parseInput(e,t,r){const n=e.args;if(!n||0===n.length)throw new 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);if(3===n.length&&1===a&&-1===o&&-1===s&&-1===l){const e=n[0],t=n[2],r="identifier"===e?.type&&"string"==typeof e.name,i="identifier"===t?.type&&"string"==typeof t.name,a=new Set(["me","you","it","result","window","document"]);if(r&&i&&!a.has(e.name.toLowerCase())&&!a.has(t.name.toLowerCase())&&!hs[e.name.toLowerCase()])return{variant:"variable",leftName:e.name,rightName:t.name}}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&&hs[e]&&(u=hs[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&&hs[e]?(u=hs[e],p=n[1]||n[a-1]):p=n[a-1]}m=n[a+1]}else{if(!(n.length>=2))throw new Error('[HyperFixi] swap: could not parse arguments. Expected "swap <target> with <content>"');{const e=i[0];e&&hs[e]&&(u=hs[e]),p=n[n.length-2],m=n[n.length-1]}}let d=null,f=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();hs[t]&&(u=hs[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&&(f=await t.evaluate(m,r));let h=null;if("string"==typeof d)h=d;else if(va(d))return{targets:[d],content:vs(f),strategy:u,morphOptions:{preserveChanges:!0},useViewTransition:c};return{targets:await ks(h,r),content:vs(f),strategy:u,morphOptions:{preserveChanges:!0},useViewTransition:c}}async execute(e,t){if("variable"===e.variant){const{leftName:r,rightName:n}=e,i=e=>t.locals?.has(e)?t.locals.get(e):t.globals?.has(e)?t.globals.get(e):void 0,a=(e,r)=>{t.locals?.has(e)?t.locals.set(e,r):t.globals?.has(e)?t.globals.set(e,r):t.locals&&t.locals.set(e,r)},o=i(r);return a(r,i(n)),void a(n,o)}const{targets:r,content:n,strategy:i,morphOptions:a,useViewTransition:o}=e;if(!r||!i)throw new Error("[HyperFixi] swap: DOM swap requires targets and strategy");await gs(r,n??null,i,{morphOptions:a,useViewTransition:o})}},pa(t,"SwapCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})(),bs=(()=>{let e,t,r=[ya({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"]}),ha({name:"morph",category:"dom"})],n=[];return t=class{async parseInput(e,t,r){const n=e.args;if(!n||0===n.length)throw new 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&&o<(-1===a?1/0:a)?(c="morphOuter",u=n[o+1],-1!==a&&(p=n[a+1])):-1!==a?(u=n[a-1],p=n[a+1]):n.length>=2&&(u=n[0],p=n[1]),!u)throw new 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,f=null;if(p&&(f=await t.evaluate(p,r)),!m)throw new Error("[HyperFixi] morph: could not determine target");if("string"==typeof m)d=await ks(m,r);else{if(!va(m))throw new Error("[HyperFixi] morph: target must be a selector or element");d=[m]}return{targets:d,content:vs(f),strategy:c,morphOptions:{preserveChanges:!0},useViewTransition:l}}async execute(e,t){const{targets:r,content:n,strategy:i,morphOptions:a,useViewTransition:o}=e;if(!r||!i)throw new Error("[HyperFixi] morph: requires targets and strategy");await gs(r,n??null,i,{morphOptions:a,useViewTransition:o})}},pa(t,"MorphCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})();const zs=ga(ws),xs=ga(bs);zs(),xs();const Es={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."}},Ss={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."}},Ts={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 Cs={...{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 As(e,t){if("*"===t)return!0;if(t.includes("*")){const r=t.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp("^"+r+"$").test(e)}return e===t}function Ls(e,t=""){const r=function(e){const t={...Cs};if(Cs.targetOverrides)for(const r of Cs.targetOverrides)if(As(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=>As(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(Es)){if(r.ignoredElements?.includes(i))continue;const o=new 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(Ss)){if(r.ignoredElements?.includes(i))continue;const o=new 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 js(n)}(e,t,r);for(const[i,a]of Object.entries(Es)){if(r.ignoredElements?.includes(i))continue;const o=new 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(Ss)){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(Ts)){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 js(n)}function js(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 Ps="color: #dc2626; font-weight: bold;",Ns="color: #ea580c; font-weight: bold;",Os="color: #ca8a04; font-weight: bold;",Is="color: inherit;",Rs={critical:"🚨",structural:"⚠️",warning:"💡"},Ms={critical:"CRITICAL",structural:"STRUCTURAL",warning:"WARNING"};function $s(e){0!==e.totalIssues&&("undefined"!=typeof window&&"undefined"!=typeof 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(Ps,Is));e.bySeverity.structural.length>0&&(t.length>0&&t.push(", "),t.push(`%c${e.bySeverity.structural.length} structural%c`),r.push(Ns,Is));e.bySeverity.warning.length>0&&(t.length>0&&t.push(", "),t.push(`%c${e.bySeverity.warning.length} warning(s)%c`),r.push(Os,Is))}(e),e.bySeverity.critical.length>0)for(const t of e.bySeverity.critical)Ws(t);if(e.bySeverity.structural.length>0)for(const t of e.bySeverity.structural)Ws(t);if(e.bySeverity.warning.length>0)for(const t of e.bySeverity.warning)Ws(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 Ws(e){}function _s(e){return`${Rs[e.severity]} [${Ms[e.severity]}] <${e.element}>${e.count>1?` (${e.count}x)`:""}${e.targetSelector?` [target: ${e.targetSelector}]`:""}: ${e.message}`}function qs(e){return e.issues.map(_s)}function Vs(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 Ds(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 Bs(e,t,r={},n={}){const i=Vs(t,r,n);return e.dispatchEvent(i),i}function Hs(e,t,r={},n={}){return{lokascript:Bs(e,`lokascript:${t}`,r,n),hyperfixi:Bs(e,`hyperfixi:${t}`,r,n)}}const Fs={morph:"morph",morphouter:"morphOuter",innerhtml:"innerHTML",outerhtml:"outerHTML",beforebegin:"beforeBegin",afterbegin:"afterBegin",beforeend:"beforeEnd",afterend:"afterEnd",delete:"delete",none:"none"};function Us(e,t){const{target:r,strategy:n,content:i}=e,a=document.querySelector(r);if(!a||!va(a))return{success:!1,error:`Target "${r}" not found`};try{switch(n){case"morph":ls.morphInner(a,i,t);break;case"morphOuter":ls.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:String(e)}}}function Ks(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:Fs[n]||"morph",content:e.innerHTML})}return t}(e),n={...Cs},i={count:0,targets:[],errors:[],validationWarnings:[],validationDetails:{}};for(const e of r){if(n.enabled){const t=Ls(e.content,e.target);t.totalIssues>0&&(n.showWarnings&&$s(t),i.validationWarnings.push(...qs(t)),i.validationDetails[e.target]=t)}const r=Us(e,t);r.success?(i.count++,i.targets.push(e.target)):r.error&&i.errors.push(`${e.target}: ${r.error}`)}return i}const Gs=ga((()=>{let e,t,r=[ya({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"]}),ha({name:"process",category:"dom"})],n=[];return t=class{async parseInput(e,t,r){const n=e.args;if(!n||0===n.length)throw new 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 new Error('process command expects "partials" keyword: process partials in <content>');const s=a.findIndex(e=>"in"===e);if(-1===s||s<=o)throw new 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(va(l))c=l.outerHTML;else{if(!l||"function"!=typeof l.text)throw new 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=()=>Ks(r,i);let o;return n&&us()?await fs(()=>{o=a()}):o=a(),t.it=o,Hs(window,"partials",o),o}},pa(t,"ProcessPartialsCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());function Js(e,t,r,n){return e?new Promise(r=>{const i=()=>{a({event:null,timedOut:!1,cancelled:!0})},a=Zs(()=>{e.removeEventListener(t,o),n&&n.removeEventListener("abort",i)},r),o=e=>{a({event:e,timedOut:!1,cancelled:!1})};n?.aborted?r({event:null,timedOut:!1,cancelled:!0}):(e.addEventListener(t,o),n&&n.addEventListener("abort",i))}):Promise.reject(new Error("waitForEvent: no target provided"))}function Ys(e){return new Promise(t=>setTimeout(t,e))}function Zs(e,t){let r=!1;return n=>{r||(r=!0,e(),t(n))}}Gs();let Xs=(()=>{let e,t,r=[ya({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"]}),ha({name:"wait",category:"async"})],n=[];return t=class{async parseInput(e,t,r){if(!e.args?.length)throw new 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 Ys(e.milliseconds),{type:"time",result:e.milliseconds,duration:Date.now()-r};if("event"===e.type){const n=e.target??t.me??document,i=(await Js(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:to(await t.evaluate(e,r))}}async parseEventWait(e,t,r,n){const i=await r.evaluate(e,n);if("string"!=typeof i)throw new 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 new 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:to(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(n.length<2)throw new Error("wait: race requires at least 2 conditions");return{type:"race",conditions:n}}async executeRace(e,t){const r=new AbortController,n=r.signal,i=e.map(e=>{if("time"===e.type)return Ys(e.milliseconds).then(()=>({result:e.milliseconds,winningCondition:e}));return Js(e.target??t.me??document,e.eventName,0,n).then(t=>({result:t.event,winningCondition:e}))});try{return await Promise.race(i)}finally{r.abort()}}},pa(t,"WaitCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})();const Qs=ga(Xs),el=new Map;let tl=[/^4\d{2}$/,/^5\d{2}$/];let rl=(()=>{let e,t,r=[ya({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"]}),ha({name:"fetch",category:"async"})],n=[];return t=class{async parseInput(e,t,r){if(!e.args?.length)throw new Error("fetch requires a URL");const n=await this.parseURL(e.args[0],t,r),i=this.parseResponseType(e.modifiers.as);return{url:n,responseType:i,options:await this.parseRequestOptions(e.modifiers.with,t,r),throwOnError:!!!e.modifiers.doNotThrow&&"response"!==i}}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=el.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 a=await fetch(n,l);if(t.me){const e={response:a};this.dispatchEvent(t.me,"fetch:afterResponse",e),a=e.response}if(e.throwOnError&&function(e){const t=String(e);return tl.some(e=>e.test(t))}(a.status)){const e=new Error(`Fetch failed for ${n}: HTTP ${a.status} ${a.statusText}`.trim());throw e.response=a,e.isFetchStatusError=!0,e}const o=await this.handleResponse(a,i,t);t.me&&this.dispatchEvent(t.me,"fetch:afterRequest",{result:o});const s={status:a.status,statusText:a.statusText,headers:a.headers,data:o,url:a.url,duration:Date.now()-r};return Object.assign(t,{it:o}),s}catch(e){if(t.me&&this.dispatchEvent(t.me,"fetch:error",{reason:e instanceof Error?e.message:String(e),error:e}),e instanceof Error&&"AbortError"===e.name)throw new Error(`Fetch aborted for ${n}`);if(e instanceof Error&&!0===e.isFetchStatusError)throw e;throw new Error(`Fetch failed for ${n}: ${e instanceof Error?e.message:String(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 new 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(el.has(t))return t;throw new 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 new Error('fetch: "with" options must be an object');const i={};return"method"in n&&(i.method=String(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,String(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):String(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=el.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&&va(r.firstChild)?r.firstChild:r}dispatchEvent(e,t,r){e.dispatchEvent(new CustomEvent(t,{detail:r,bubbles:!0,cancelable:!0}))}},pa(t,"FetchCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})();const nl=ga(rl);const il=ga((()=>{let e,t,r=[ya({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"]}),ha({name:"set",category:"data"})],n=[];return t=class{async parseInput(e,t,r){if(!e.args?.length)throw new Error("set command requires a target");const n=e.args[0],i=n?.name||n?.value,a=n?.type;if(a){const i=ce(a);if(i){return{type:"node-write",node:n,value:await this.extractValue(e,t,r),writer:i}}}const o=await go(n,t,r);if(o){const n=await this.extractValue(e,t,r);if(o.property.startsWith("*")){const e=o.property.substring(1);return{type:"style",element:o.element,property:e,value:String(n)}}return{type:"property",element:o.element,property:o.property,value:n}}if("memberExpression"===n?.type||"propertyAccess"===n?.type){const i=await this.tryParseMemberExpression(n,e,t,r);if(i)return i}let s;if(s="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(va(e)||e instanceof Node)return!1;const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}(s)){return{type:"object-literal",properties:s,targets:await this.resolveTargets(e.modifiers.on,t,r)}}if(ho(s)){const n=yo(s,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(s,e,t,r)}if("string"==typeof s&&qa(s)){const n=s.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:String(i)}}if("string"==typeof s&&Pa(s)){const n=s.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 s){const n=s.match(/^(my|me|its?|your?)\s+(.+)$/i);if(n){const i=xa(n[1],r),a=await this.extractValue(e,t,r);return{type:"property",element:i,property:n[2],value:a}}}if(va(s)){return{type:"property",element:s,property:"textContent",value:await this.extractValue(e,t,r)}}if(Array.isArray(s)&&s.length>0&&va(s[0])){const n=await this.extractValue(e,t,r);return{type:"property",element:s[0],property:"textContent",value:n}}if("string"!=typeof s){throw new Error(`set command target must be a string or object literal${"memberExpression"===n?.type||"propertyAccess"===n?.type?` (a property chain evaluated to ${null===s?"null":typeof s} — check that all intermediate objects exist)`:""}`)}return{type:"variable",name:s,value:await this.extractValue(e,t,r)}}async execute(e,t){switch(e.type){case"variable":return Ao(e.name,e.value,t),"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,String(e.value)),Object.assign(t,{it:e.value}),{target:`@${e.name}`,value:e.value,targetType:"attribute"};case"property":return uo(e.element,e.property,e.value),Object.assign(t,{it:e.value}),{target:e.element,value:e.value,targetType:"property"};case"style":return Da(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))uo(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"};case"node-write":return await e.writer(e.node,e.value,t),Object.assign(t,{it:e.value}),{target:e.node.name??"",value:e.value,targetType:"variable"};default:throw new 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=xa(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?String(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 new Error('set command requires a value (use "to" keyword)')}async resolveElement(e,t,r){if(!e)return wa(void 0,r);return wa(await t.evaluate(e,r),r)}async resolveTargets(e,t,r){if(!e)return ba(void 0,r);return ba(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 new Error('Invalid "the X of Y" syntax');const[,a,o]=i,s=wa(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&&va(t.element)&&"value"in t;case"property":return"string"==typeof t.property&&va(t.element)&&"value"in t;case"style":return"string"==typeof t.property&&""!==t.property&&va(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}}},pa(t,"SetCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());const al=ga((()=>{let e,t,r=[ya({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"]}),ha({name:"get",category:"data"})],n=[];return t=class{async parseInput(e,t,r){if(!e.args||0===e.args.length)throw new 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}},pa(t,"GetCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());let ol=(()=>{let e,t,r=[ya({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"]}),ha({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 new Error(`${n} command requires a target`);const i=e.args[0];let a,o,s;const l=(c=i)&&"object"==typeof c&&c.type||"unknown";var c;if("identifier"===l)a=i.name,i.scope&&(o=i.scope);else if("literal"===l)a=i.value;else{const e=ce(l);if(e){const n=await t.evaluate(i,r),o="number"==typeof n?n:null==n?0:Number(n)||0;a=o,s={node:i,writer:e,currentValue:o}}else{const e=await t.evaluate(i,r);a=Array.isArray(e)&&e.length>0?e[0]:e}}let u=1,p=o;for(let n=1;n<e.args.length;n++){const i=e.args[n];if(i&&"literal"===i.type){const e=i.value;"global"===e?p="global":"number"==typeof e&&(u=e)}else if(i&&"literal"!==i.type){const e=await t.evaluate(i,r);"number"==typeof e&&(u=e)}}return{target:a,amount:u,...p&&{scope:p},...s&&{customWrite:s}}}(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",customWrite:s}=e;if(s){const e=isFinite(a)?a:1,r="increment"===o?s.currentValue+e:s.currentValue-e;return await s.writer(s.node,r,t),Object.assign(t,{it:r}),r}const l=jo(r,n,i,t);let c;if(isNaN(l))c=NaN;else{const e=isFinite(a)?a:1;c="increment"===o?l+e:l-e}return Po(r,n,i,c,t),Object.assign(t,{it:c}),c}},pa(t,"NumericModifyCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})();const sl=ga(ol),ll=ga(ol);function cl(e){const t=e.tagName;return"INPUT"===t||"TEXTAREA"===t||"SELECT"===t}const ul=ga((()=>{let e,t,r=[ya({description:"Reset a variable to null or clear the value of a form field (<input>, <textarea>, <select>)",syntax:["clear <var>","clear :var","clear <target>"],examples:["clear :count","clear myVar","clear #search","clear <textarea/>"],sideEffects:["state-mutation","dom-mutation"]}),ha({name:"clear",category:"data"})],n=[];return t=class{async parseInput(e,t,r){const n=e.args?.[0],i=n?.type,a=n?.name;if(n&&("variable"===i||"identifier"===i&&"string"==typeof a))try{const e=await t.evaluate(n,r);if(!va(e)&&!Array.isArray(e))return{type:"variable",name:a}}catch{return{type:"variable",name:a}}return{type:"form-fields",targets:await Sa(e.args,t,r,"clear",{filterPrepositions:!0,fallbackModifierKey:"on"},e.modifiers)}}async execute(e,t){if("variable"===e.type)return t.locals.set(e.name,null),void Object.assign(t,{it:null});for(const t of e.targets)cl(t)&&("SELECT"===t.tagName?t.selectedIndex=-1:t.value="")}validate(e){if("object"!=typeof e||null===e)return!1;if("variable"===e.type)return"string"==typeof e.name;if("form-fields"===e.type){const t=e.targets;return Array.isArray(t)&&t.every(e=>va(e))}return!1}},pa(t,"ClearCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());const pl=ga((()=>{let e,t,r=[ya({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"]}),ha({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)}},pa(t,"LogCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());let ml=(()=>{let e,t,r=[ya({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"]}),ha({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 new 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:String(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){if(!r.me)throw new Error(`${i}: no target specified and context.me is null`);c=[r.me]}else{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)}}return{eventName:s,detail:l,targets:c,options:await this.parseEventOptions(e.args,t,r),mode:n}}async execute(e,t){const r=Vs(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(va(e))i.push(e);else if(e instanceof NodeList)i.push(...Array.from(e).filter(va));else if(Array.isArray(e))i.push(...e.filter(va));else{if("string"==typeof e){const t=document.querySelectorAll(e);if(0===t.length)throw new Error(`No elements found: "${e}"`);i.push(...Array.from(t).filter(va));continue}if(!e||"object"!=typeof e||!("addEventListener"in e))throw new Error("Invalid target: "+typeof e);i.push(e)}else i.push(document);else i.push(window)}if(!i.length)throw new 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()]=Ds(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}},pa(t,"EventDispatchCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})();const dl=ga(ml),fl=ga(ml);let hl=(()=>{let e,t,r=[ya({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"]}),ha({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 new 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"}}const n=this.findBareUrl(r);if(null!==n){return{result:await this.navigateToBareUrl(n,r),type:"url"}}return{result:await this.scrollToElement(r,t),type:"scroll"}}isUrlNavigation(e){return-1!==e.findIndex(e=>"url"===e)}isBareUrl(e){return!!e.startsWith("/")||/^[a-z][a-z0-9+.-]*:/i.test(e)}findBareUrl(e){for(const t of e)if("to"!==t&&"the"!==t)return"string"==typeof t&&this.isBareUrl(t)?t:null;return null}async navigateToBareUrl(e,t){if(t.includes("new")&&t.includes("window")){if("undefined"!=typeof window&&window.open){const t=window.open(e,"_blank");t?.focus&&t.focus()}}else e.startsWith("#")?"undefined"!=typeof window&&(window.location.hash=e):"undefined"!=typeof window&&(window.location.assign?.(e)??(window.location.href=e));return e}async goBack(){if("undefined"==typeof window||!window.history)throw new 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 new Error('URL is required after "url" keyword');const i="string"==typeof n?n:String(n),a=e.includes("new")&&e.includes("window");if(!this.isValidUrl(i))throw new 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 new 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&&t+1<e.length){let r=e[t+1];return"the"===r&&t+2<e.length&&(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;t<e.length;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)&&t+1<e.length){const n=e[t+1],i="number"==typeof n?n:parseInt(String(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:String(e);if("body"===r&&"undefined"!=typeof document)return document.body;if("html"===r&&"undefined"!=typeof document)return document.documentElement;if("me"===r&&va(t.me))return t.me;if("it"===r&&va(t.it))return t.it;if("you"===r&&va(t.you))return t.you;const n=Co(r,t);if(va(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)}}},pa(t,"GoCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})();const yl=ga(hl);const gl=["url","with","title"];async function vl(e,t,r,n){if(!e||0===e.length)throw new Error(`${n} command requires a URL argument`);const i=[],a=[];for(let n=0;n<e.length;n++){const o=e[n],s=o,l=s?.type||"unknown",c=s?.name;if("identifier"===l&&c&&gl.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=String(i[o+1]);else{if(!(i.length>=1))throw new Error(`${n} command: URL is required. Debug: ${c}`);u=String(i[0])}-1!==s&&-1!==l&&l>s&&i.length>l+1&&(p=String(i[l+1]));const m=function(e,t,r){const n=r?` Debug: ${r}`:"";if(null==e)throw new Error(`[HyperFixi] ${t}: URL is required.${n}`);if("string"!=typeof e)throw new Error(`[HyperFixi] ${t}: URL must be a string (got ${typeof e}: ${String(e)}).${n}`);if(""===e.trim())throw new Error(`[HyperFixi] ${t}: URL cannot be empty.${n}`);if("undefined"===e)throw new Error(`[HyperFixi] ${t}: URL evaluated to string 'undefined' - check your expression.${n}`);if("null"===e)throw new Error(`[HyperFixi] ${t}: URL evaluated to string 'null' - check your expression.${n}`);return e}(u,n,c);return{url:m,title:p}}let kl=(()=>{let e,t,r=[ya({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"]}),ha({name:"push",category:"navigation"})],n=[];return t=class{async parseInput(e,t,r){const n=e.commandName?.toLowerCase().includes("replace")?"replace":"push";return{...await vl(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 Hs(window,"push"===a?"pushurl":"replaceurl",{url:r,title:n,state:i}),{url:r,title:n,mode:a}}},pa(t,"HistoryCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})();const wl=ga(kl),bl=ga(kl);const zl=ga((()=>{let e,t,r=[ya({description:"Scroll an element into view (upstream _hyperscript 0.9.90)",syntax:["scroll to <target>","scroll to top of <target>","scroll to <target> smoothly"],examples:["scroll to #top","scroll to bottom of #chat","scroll to me smoothly"],sideEffects:["scrolling"]}),ha({name:"scroll",category:"navigation"})],n=[];return t=class{async parseInput(e,t,r){if(!e.args||0===e.args.length)throw new Error("scroll command requires a target");return{args:await Promise.all(e.args.map(e=>t.evaluate(e,r)))}}async execute(e,t){const{args:r}=e,n=this.parsePosition(r),i=!r.includes("instantly"),a=this.resolveTarget(r,t);if(!a)throw new Error("scroll: target element not found");return"function"==typeof a.scrollIntoView&&a.scrollIntoView({block:n,behavior:i?"smooth":"instant"}),{element:a,position:n,smooth:i}}parsePosition(e){for(const t of e){if("top"===t)return"start";if("bottom"===t)return"end";if("middle"===t||"center"===t)return"center";if("nearest"===t)return"nearest"}return"start"}resolveTarget(e,t){const r=new Set(["to","of","the","top","bottom","middle","center","left","right","nearest","smoothly","instantly"]);for(const n of e){if("object"==typeof n&&n&&n.nodeType)return n;if("string"!=typeof n||r.has(n))continue;if("me"===n&&va(t.me))return t.me;if("it"===n&&va(t.it))return t.it;if("you"===n&&va(t.you))return t.you;if("body"===n&&"undefined"!=typeof document)return document.body;if("html"===n&&"undefined"!=typeof document)return document.documentElement;const e=Co(n,t);if(va(e))return e;if("undefined"!=typeof document)try{const e=document.querySelector(n);if(e)return e}catch{try{const e=document.getElementsByTagName(n);if(e.length>0)return e[0]}catch{}}}return null}},pa(t,"ScrollCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());function xl(e,t){if("boolean"==typeof e)return e;if("function"==typeof e)return!0;if(e instanceof Promise)throw new Error("Condition must be awaited - use await in the condition expression");if("string"==typeof e){if("me"===e)return Boolean(t.me);if("it"===e)return Boolean(t.it);if("you"===e)return Boolean(t.you);const r=Co(e,t);return void 0!==r?Boolean(r):Boolean(e)}return Boolean(e)}const El=ga((()=>{let e,t,r=[ya({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"]}),ha({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 new Error(`${n} command requires a condition to evaluate`);let i,a;if("unless"===n){if(e.args.length<2)throw new 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=e.args.length>=3?e.args[2]:void 0):e.modifiers?.then&&(i=e.modifiers.then,a=e.modifiers.else),!i)throw new 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=xl(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 new 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}},pa(t,"ConditionalCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})()),Sl=El,Tl=El;let Cl=(()=>{let e,t,r=[ya({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"]}),ha({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,a=e.modifiers?.block||e.modifiers?.commands;if(!a){const t=[];for(let r=e.args.length-1;r>=0;r--){const n=e.args[r];if("block"===n?.type&&n.commands&&(t.unshift(n),2===t.length))break}2===t.length?(a=t[0],i=t[1]):1===t.length&&(a=t[0])}const o=e.args[0],s="identifier"===o?.type?o.name:null,l=!!e.modifiers?.bottomTested&&await t.evaluate(e.modifiers.bottomTested,r);if("for"===s||e.modifiers?.for){const o=e.args[1],s=o?.value||o?.name,l=e.args[2]?await t.evaluate(e.args[2],r):void 0;if(!s||void 0===l)throw new Error("for loops require variable and collection");return{type:"for",variable:s,collection:Array.isArray(l)?l:[l],indexVariable:n,commands:a,elseCommands:i}}if("times"===s||e.modifiers?.times){const o=e.args[1],s=o?await t.evaluate(o,r):void 0,l="number"==typeof s?s:parseInt(String(s),10);if(isNaN(l))throw new Error("times loops require a count number");return{type:"times",count:l,indexVariable:n,commands:a,elseCommands:i}}if("while"===s||e.modifiers?.while){const t=e.args[1]||e.modifiers?.while;if(!t)throw new Error("while loops require a condition");return{type:"while",condition:t,indexVariable:n,commands:a,elseCommands:i,bottomTested:l}}if("until"===s&&e.modifiers?.from||"until-event"===s){const o=e.args[1],s=o?.value||o?.name;if(!s)throw new Error("until-event loops require an event name");let l=r.me;if(e.args[2]){const n=await t.evaluate(e.args[2],r);n instanceof EventTarget?l=n:"document"===n&&(l=document)}return{type:"until-event",eventName:s,eventTarget:l,indexVariable:n,commands:a,elseCommands:i}}if("until"===s||e.modifiers?.until){const t=e.args[1]||e.modifiers?.until;if(!t)throw new Error("until loops require a condition");return{type:"until",condition:t,indexVariable:n,commands:a,elseCommands:i,bottomTested:l}}if("forever"===s||e.modifiers?.forever)return{type:"forever",indexVariable:n,commands:a,elseCommands:i};throw new 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,elseCommands:c,bottomTested:u,eventName:p,eventTarget:m}=e;let d,f;switch(r){case"for":({config:d,iterCtx:f}=function(e,t,r){return{config:{type:"for",shouldContinue:e=>e.index<(e.collection?.length??0),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:d,iterCtx:f}=function(e,t){return{config:{type:"times",shouldContinue:e=>e.index<(e.count??0),beforeIteration:(e,t)=>{Object.assign(t,{it:e.index+1})}},iterCtx:{index:0,count:e,indexVariable:t}}}(o,s));break;case"while":({config:d,iterCtx:f}=function(e,t,r,n){return{config:{type:"while",shouldContinue:()=>t(e,r)},iterCtx:{index:0,conditionExpr:e,indexVariable:n}}}(a,xl,t,s));break;case"until":({config:d,iterCtx:f}=function(e,t,r,n){return{config:{type:"until",shouldContinue:()=>!t(e,r)},iterCtx:{index:0,conditionExpr:e,indexVariable:n}}}(a,xl,t,s));break;case"until-event":({config:d,iterCtx:f}=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}}(p,m,s));break;case"forever":({config:d,iterCtx:f}=function(e,t=1e4){return{config:{type:"forever",maxIterations:t,shouldContinue:()=>!0},iterCtx:{index:0,indexVariable:e}}}(s));break;default:throw new Error(`Unknown repeat type: ${r}`)}if(u){const e=d.shouldContinue;d.shouldContinue=async t=>0===t.index||await e(t)}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(;s<a&&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}}(d,l,t,f,this.executeCommands.bind(this));if(0===e.iterations&&!e.interrupted&&c){const e=await this.executeCommands(c,t);return Object.assign(t,{it:e}),{type:r,iterations:0,completed:!0,lastResult:e}}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 new 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}},pa(t,"RepeatCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})();const Al=ga(Cl);class Ll{async parseInput(e,t,r){return{signalType:this.signalType}}async execute(e,t){const r=new Error(this.errorMessage);throw r[this.errorFlag]=!0,"exit"===this.signalType&&(r.returnValue=void 0,r.timestamp=Date.now()),r}}let jl=(()=>{let e,t,r=[ya({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"]}),ha({name:"break",category:"control-flow"})],n=[],i=Ll;return t=class extends i{constructor(){super(...arguments),this.signalType="break",this.errorMessage="BREAK_LOOP",this.errorFlag="isBreak"}},pa(t,"BreakCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;ca(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}),ua(t,n)})(),t})();const Pl=ga(jl);let Nl=(()=>{let e,t,r=[ya({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"]}),ha({name:"continue",category:"control-flow"})],n=[],i=Ll;return t=class extends i{constructor(){super(...arguments),this.signalType="continue",this.errorMessage="CONTINUE_LOOP",this.errorFlag="isContinue"}},pa(t,"ContinueCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;ca(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}),ua(t,n)})(),t})();const Ol=ga(Nl);const Il=ga((()=>{let e,t,r=[ya({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"]}),ha({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=new Error("HALT_EXECUTION");throw n.isHalt=!0,n}isEvent(e){return null!==e&&"object"==typeof e&&"preventDefault"in e&&"stopPropagation"in e}},pa(t,"HaltCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());const Rl=ga((()=>{let e,t,r=[ya({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"]}),ha({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=new Error("RETURN_VALUE");throw n.isReturn=!0,n.returnValue=r,n}},pa(t,"ReturnCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());let Ml=(()=>{let e,t,r=[ya({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"]}),ha({name:"exit",category:"control-flow"})],n=[],i=Ll;return t=class extends i{constructor(){super(...arguments),this.signalType="exit",this.errorMessage="EXIT_COMMAND",this.errorFlag="isExit"}},pa(t,"ExitCommand"),(()=>{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(i[Symbol.metadata]??null):void 0;ca(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}),ua(t,n)})(),t})();const $l=ga(Ml);const Wl=ga((()=>{let e,t,r=[ya({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"]}),ha({name:"call",category:"execution"})],n=[];return t=class{parseInput(e,t,r){if(!e.args?.length)throw new 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"),i=n?await n.evaluate(r,t):await gr(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}}},pa(t,"CallCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());const _l=ga((()=>{let e,t,r=[ya({description:"Focus an element (calls HTMLElement.focus())",syntax:["focus","focus <target>","focus on <target>"],examples:["focus","focus #search","focus on <input/>"],sideEffects:["focus"]}),ha({name:"focus",category:"execution"})],n=[];return t=class{async parseInput(e,t,r){return{targets:await Sa(e.args,t,r,"focus",{filterPrepositions:!0,fallbackModifierKey:"on"},e.modifiers)}}async execute(e,t){for(const t of e.targets)t.focus()}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&t.targets.every(e=>va(e))}},pa(t,"FocusCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());const ql=ga((()=>{let e,t,r=[ya({description:"Remove focus from an element (calls HTMLElement.blur())",syntax:["blur","blur <target>","blur on <target>"],examples:["blur","blur #search","blur on <input/>"],sideEffects:["focus"]}),ha({name:"blur",category:"execution"})],n=[];return t=class{async parseInput(e,t,r){return{targets:await Sa(e.args,t,r,"blur",{filterPrepositions:!0,fallbackModifierKey:"on"},e.modifiers)}}async execute(e,t){for(const t of e.targets)t.blur()}validate(e){if("object"!=typeof e||null===e)return!1;const t=e;return!!Array.isArray(t.targets)&&t.targets.every(e=>va(e))}},pa(t,"BlurCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());const Vl=ga((()=>{let e,t,r=[ya({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"]}),ha({name:"append",category:"content"})],n=[];return t=class{async parseInput(e,t,r){if(!e.args?.length)throw new 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=String(r);if(!n)return Object.assign(t,void 0===t.it?{it:i}:{it:String(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(va(e))return e.innerHTML+=i,{result:e,targetType:"element",target:e}}const e=Co(n,t);if(void 0!==e){if(Array.isArray(e))return e.push(r),{result:e,targetType:"array",target:n};const a=(null==e?"":String(e))+i;return Ao(n,a,t),{result:a,targetType:"variable",target:n}}return Ao(n,i,t),{result:i,targetType:"variable",target:n}}if(Array.isArray(n))return n.push(r),{result:n,targetType:"array"};if(va(n))return n.innerHTML+=i,{result:n,targetType:"element",target:n};{const e=String(n)+i;return Object.assign(t,{it:e}),{result:e,targetType:"string"}}}resolveDOMElement(e){if("undefined"==typeof document)throw new Error("DOM not available");const t=document.querySelector(e);if(!t)throw new 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 new Error(`Unknown context ref: ${e}`)}}},pa(t,"AppendCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());const Dl=ga((()=>{let e,t,r=[ya({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"]}),ha({name:"transition",category:"animation"})],n=[];return t=class{async parseInput(e,t,r){if(!e.args?.length)throw new Error("transition requires property and value");let n,i;const a=await t.evaluate(e.args[0],r);if(va(a)||"string"==typeof a&&/^[#.]|^(?:me|it|you)$/.test(a)?(i=a,n=String(await t.evaluate(e.args[1],r))):n=String(a),!n)throw new Error("transition requires a CSS property");if(!e.modifiers?.to)throw new 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=String(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=wa(n,t,"transition"),l=eo(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=String(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 f=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=Zs(()=>{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:f.completed}}},pa(t,"TransitionCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());const Bl=ga((()=>{let e,t,r=[ya({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"]}),ha({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(va(o)&&(n=o,e.args.length>1)){const n=e.args[1];i="identifier"===n.type?n.name:String(await t.evaluate(n,r))}}else i=a.name}else{const o=await t.evaluate(a,r);if(va(o)||"string"==typeof o&&/^[#.]/.test(o)){if(n=o,e.args.length>1){const n=e.args[1];i="identifier"===n.type?n.name:String(await t.evaluate(n,r))}}else"string"==typeof o&&(i=o)}}e.modifiers?.set&&(a=String(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=wa(e.target,t,"measure"),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"}}},pa(t,"MeasureCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());const Hl=ga((()=>{let e,t,r=[ya({description:"Wait for CSS transitions and animations to complete",syntax:"settle [<target>] [for <timeout>]",examples:["settle","settle #animated-element","settle for 3000"],sideEffects:["timing"]}),ha({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);(va(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=wa(r,t,"settle"),a=eo(n,5e3),o=Date.now(),s=getComputedStyle(i),l=ro(s.transitionDuration),c=ro(s.transitionDelay),u=ro(s.animationDuration),p=ro(s.animationDelay),m=no(l,c),d=no(u,p),f=Math.max(m,d),h=await(y=i,g=f,v=a,g<=0?Promise.resolve({completed:!0,type:"timeout"}):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=Zs(()=>{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"})},g+50),a=setTimeout(()=>{n({completed:!1,type:"timeout"})},v)}));var y,g,v;const k=Date.now()-o;return Object.assign(t,{it:i}),{element:i,settled:h.completed,timeout:a,duration:k}}},pa(t,"SettleCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());const Fl=ga((()=>{let e,t,r=[ya({description:"Wrap a block of commands in document.startViewTransition()",syntax:["start view transition [using <type>] <body> end"],examples:["start view transition add .highlight to me end",'start view transition using "slide" then put result into #panel end'],sideEffects:["animation","dom-mutation"]}),ha({name:"start",category:"animation"})],n=[];return t=class{async parseInput(e,t,r){const n=e.args??[];let i;if(e.modifiers?.transitionName){const n=await t.evaluate(e.modifiers.transitionName,r);i="string"==typeof n?n:String(n??"")}return{transitionName:i,body:n}}async execute(e,t){const r=t.locals.get("_runtimeExecute");let n=0;const i=async()=>{for(const i of e.body)r?await r(i,t):i&&"function"==typeof i.execute?await i.execute(t):"function"==typeof i&&await i(t),n++};return us()?(await fs(i),{usedViewTransition:!0,commandsExecuted:n}):(await i(),{usedViewTransition:!1,commandsExecuted:n})}},pa(t,"StartViewTransitionCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());const Ul=ga((()=>{let e,t,r=[ya({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"]}),ha({name:"js",category:"advanced"})],n=[];return t=class{async parseInput(e,t,r){let n,i;if(0===e.args.length)throw new 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 new Error("js command requires JavaScript code");n=String(a.value)}o&&"arrayLiteral"===o.type&&Array.isArray(o.elements)&&(i=o.elements.map(e=>"string"==typeof e.value?e.value:String(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=new 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 new 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},{})}}},pa(t,"JsCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());const Kl=ga((()=>{let e,t,r=[ya({description:"Execute commands asynchronously without blocking",syntax:["async <command> [<command> ...]"],examples:["async command1 command2","async fetchData processData","async animateIn showContent"],sideEffects:["async-execution"]}),ha({name:"async",category:"advanced"})],n=[];return t=class{async parseInput(e,t,r){if(e.args.length<1)throw new 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 new Error(`Async command execution failed: ${e instanceof Error?e.message:"Unknown error"}`)}}async executeCommandsAsync(e,t){const r=[];for(let n=0;n<t.length;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 new 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&&"execute"in e&&"function"==typeof e.execute)return await e.execute(t);throw new 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"}},pa(t,"AsyncCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());const Gl=ga((()=>{let e,t,r=[ya({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"]}),ha({name:"default",category:"data"})],n=[];return t=class{async parseInput(e,t,r){if(e.args.length<1)throw new 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(!(e.args.length>=2))throw new 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(va(r))return this.defaultElementValue(t,r,n);throw new Error("Invalid target type: "+typeof r)}defaultVariable(e,t,r){const n=Co(t,e);return null!=n?{target:t,value:r,wasSet:!1,existingValue:n,targetType:"variable"}:(Ao(t,r,e),Object.assign(e,{it:r}),{target:t,value:r,wasSet:!0,targetType:"variable"})}defaultAttribute(e,t,r){if(!e.me)throw new 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,String(r)),Object.assign(e,{it:r}),{target:`@${t}`,value:r,wasSet:!0,targetType:"attribute"})}defaultElementProperty(e,t,r,n){const i=xa(t,e,"default"),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 po(a)?(uo(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 po(n)?(function(e,t){"value"in e?e.value=String(t):e.textContent=String(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"}}},pa(t,"DefaultCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());class Jl{constructor(){this.name="pseudo-command"}get metadata(){return Jl.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||String(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 new Error("pseudo-command requires method name");if(null==a)throw new Error("pseudo-command requires a target expression");return{methodName:o,methodArgs:s,preposition:i,targetExpression:a}}if(e.args.length<2)throw new Error("pseudo-command requires method name and target expression");const n=String(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&&e.args.length>=3&&(a=await t.evaluate(e.args[2],r)),!a)throw new 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 new Error(`Target expression resolved to ${e}`);const a=this.resolveMethod(e,r);if(!a)throw new Error(`Method "${r}" not found on target object`);if("function"!=typeof a)throw new 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){const t=e instanceof Error?e.message:String(e);throw new Error(`Pseudo-command failed: ${t}`)}}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;e<r.length;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){const t=e instanceof Error?e.message:String(e);throw new Error(`Method execution failed: ${t}`)}}}Jl.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 Yl=ga((()=>{let e,t,r=[ya({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"]}),ha({name:"tell",category:"utility"})],n=[];return t=class{async parseInput(e,t,r){if(e.args.length<2)throw new 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=ba(r,t);if(0===i.length)throw new 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 new 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 new Error("Invalid command: must be a function or object with execute method")}},pa(t,"TellCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());let Zl=(()=>{let e,t,r=[ya({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"]}),ha({name:"copy",category:"utility"})],n=[];return t=class{async parseInput(e,t,r){if(e.args.length<1)throw new 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(va(e))return"html"===t?e.outerHTML:e.textContent||"";if(e===r.me&&va(r.me)){const e=r.me;return"html"===t?e.outerHTML:e.textContent||""}return String(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(va(e.me)){const n=new CustomEvent(t,{detail:r,bubbles:!0,cancelable:!1});e.me.dispatchEvent(n)}}},pa(t,"CopyCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})();const Xl=ga(Zl);let Ql=(()=>{let e,t,r=[ya({description:"Select from a collection (first/last/random/range/regex match)",syntax:["pick first <count> of <expr>","pick last <count> of <expr>","pick random [<count>] of <expr>","pick items <i> to <j> of <expr>","pick match of <regex> from <expr>","pick from <array>","pick <item1>, <item2>, ..."],examples:["pick first 3 of items","pick last 2 of items","pick random 2 of items","pick items 1 to 3 of items",'pick match of "[0-9]+" from text',"pick from colors",'pick "red", "green", "blue"'],sideEffects:["random-selection"]}),ha({name:"pick",category:"utility"})],n=[];return t=class{async parseInput(e,t,r){const n=e.modifiers?.variant,i=n?.value;if("first"===i||"last"===i){const n=await t.evaluate(e.args[0],r),a=await t.evaluate(e.modifiers.count,r);if(!Array.isArray(n))throw new Error(`pick ${i}: source must be an array, got ${typeof n}`);if("number"!=typeof a||!Number.isFinite(a))throw new Error(`pick ${i}: count must be a number, got ${typeof a}`);return{variant:i,array:n,count:a}}if("random"===i){const n=await t.evaluate(e.args[0],r);if(!Array.isArray(n))throw new Error("pick random: source must be an array");let i;if(e.modifiers.count){const n=await t.evaluate(e.modifiers.count,r);if("number"!=typeof n||!Number.isFinite(n))throw new Error("pick random: count must be a number, got "+typeof n);i=n}return{variant:"random",array:n,count:i}}if("range"===i){const n=await t.evaluate(e.args[0],r);if(!Array.isArray(n)&&"string"!=typeof n)throw new Error("pick items: source must be an array or string");const i=e.modifiers.rangeStart,a="start"===i?.value?"start":await t.evaluate(e.modifiers.rangeStart,r),o="start"===a?"start":Number(a);let s;if(e.modifiers.rangeEnd){if("end"===e.modifiers.rangeEnd.value)s="end";else{const n=await t.evaluate(e.modifiers.rangeEnd,r);s=Number(n)}}const l=e.modifiers.rangeMode;return{variant:"range",array:n,rangeStart:o,rangeEnd:s,rangeMode:l?.value??"default"}}if("match"===i||"matches"===i){const n=await t.evaluate(e.args[0],r);if("string"!=typeof n)throw new Error(`pick ${i}: source must be a string, got ${typeof n}`);const a=await t.evaluate(e.modifiers.regex,r),o="string"==typeof a?a:String(a),s=e.modifiers.flags,l=s?.value;return{variant:i,source:n,regex:o,flags:l}}if(e.modifiers?.from){const n=await t.evaluate(e.modifiers.from,r);if(!Array.isArray(n))throw new Error("pick from requires an array");if(0===n.length)throw new Error("Cannot pick from empty array");return{variant:"random",array:n}}if(0===e.args.length)throw new Error("pick command requires items to choose from");return{variant:"random",items:await Promise.all(e.args.map(e=>t.evaluate(e,r)))}}async execute(e,t){const r=e.variant??"random";if("first"===r){const r=e.array??[],n=r.slice(0,e.count??0);return Object.assign(t,{it:n}),{selectedItem:n,sourceLength:r.length,sourceType:"array",variant:"first"}}if("last"===r){const r=e.array??[],n=e.count??0,i=n>0?r.slice(-n):[];return Object.assign(t,{it:i}),{selectedItem:i,sourceLength:r.length,sourceType:"array",variant:"last"}}if("range"===r){const r=e.array??[];let n="start"===e.rangeStart?0:e.rangeStart??0,i=void 0===e.rangeEnd?n+1:"end"===e.rangeEnd?r.length:e.rangeEnd;"inclusive"===e.rangeMode?i++:"exclusive"===e.rangeMode&&n++;const a=r.slice(n,i);return Object.assign(t,{it:a}),{selectedItem:a,sourceLength:r.length,sourceType:"array",variant:"range"}}if("match"===r){const r=e.source??"",n=new RegExp(e.regex??"",e.flags).exec(r);return Object.assign(t,{it:n}),{selectedItem:n,sourceLength:r.length,sourceType:"string",variant:"match"}}if("matches"===r){const r=e.source??"",n=e.flags??"g",i=new RegExp(e.regex??"",n.includes("g")?n:"g"+n),a=Array.from(r.matchAll(i));return Object.assign(t,{it:a}),{selectedItem:a,sourceLength:r.length,sourceType:"string",variant:"matches"}}const n=e.items??e.array??[];if(0===n.length)throw new Error("Cannot pick from empty collection");if(void 0===e.count){const r=Math.floor(Math.random()*n.length),i=n[r];return Object.assign(t,{it:i}),{selectedItem:i,selectedIndex:r,sourceLength:n.length,sourceType:e.items?"items":"array",variant:"random"}}const i=n.slice(),a=[];for(let t=0;t<e.count&&i.length>0;t++){const e=Math.floor(Math.random()*i.length);a.push(i.splice(e,1)[0])}return Object.assign(t,{it:a}),{selectedItem:a,sourceLength:n.length,sourceType:e.items?"items":"array",variant:"random"}}},pa(t,"PickCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})();const ec=ga(Ql);const tc=ga((()=>{let e,t,r=[ya({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"]}),ha({name:"throw",category:"control-flow"})],n=[];return t=class{async parseInput(e,t,r){if(e.args.length<1)throw new 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:"string"==typeof r?new Error(r):new Error(String(r)),n}},pa(t,"ThrowCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());let rc=(()=>{let e,t,r=[ya({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"]}),ha({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":va(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(va(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 String(e)}},pa(t,"BeepCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})();const nc=ga(rc);const ic=ga((()=>{let e,t,r=[ya({description:"Drop into the debugger (emits a debugger; statement)",syntax:["breakpoint"],examples:["breakpoint","on click breakpoint"],sideEffects:["debugging"]}),ha({name:"breakpoint",category:"utility"})],n=[];return t=class{async parseInput(e,t,r){return{}}async execute(e,t){}validate(e){return"object"==typeof e&&null!==e}},pa(t,"BreakpointCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})());class ac{constructor(){this.name="install"}get metadata(){return ac.metadata}async parseInput(e,t,r){if(e.args.length<1)throw new 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:String(await t.evaluate(n,r)),!/^[A-Z][a-zA-Z0-9_]*$/.test(i))throw new 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 new 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 new Error("No target elements found to install behavior on");if(!this.behaviorExists(r,t))throw new 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 new Error(`Failed to install behavior "${r}": ${e instanceof Error?e.message:String(e)}`)}}resolveTarget(e,t){if(null==e){const e=t.me||t.locals.get("me");if(va(e))return[e];throw new Error('No target specified and "me" is not available in context')}if(va(e))return[e];if(Array.isArray(e)){const t=e.filter(e=>va(e));if(0===t.length)throw new 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(va(e))return[e];throw new Error('"me" is not available in context')}if("undefined"!=typeof document){const t=document.querySelectorAll(e),r=Array.from(t).filter(e=>va(e));if(0===r.length)throw new Error(`No elements found matching selector: "${e}"`);return r}throw new Error("document is not available (not in browser environment)")}if(e&&"object"==typeof e&&"length"in e){const t=Array.from(e).filter(e=>va(e));if(0===t.length)throw new Error("Target collection contains no valid HTMLElements");return t}if("object"==typeof e&&"element"in e){const t=e.element;if(va(t))return[t]}throw new Error(`Cannot resolve target to HTMLElement(s): ${String(e)}`)}behaviorExists(e,t){const r=t.locals.get("_behaviors");if(r&&"object"==typeof r){const t=r;if(t.has(e))return!0;if(t.resolve&&t.resolve(e))return!0}if("undefined"!=typeof globalThis){const t=globalThis._hyperscript;if(t?.behaviors){if(t.behaviors.has(e))return!0;if(t.behaviors.resolve&&t.behaviors.resolve(e))return!0}}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 new Error("Behavior system not available in context")}}ac.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 oc=(()=>{let e,t,r=[ya({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"]}),ha({name:"take",category:"animation"})],n=[];return t=class{async parseInput(e,t,r){if(e.args.length<3)throw new Error('take requires property, "from", and source');const n=String(await t.evaluate(e.args[0],r));if("from"!==await t.evaluate(e.args[1],r))throw new Error("take syntax: take <property> from <source>");const i=await t.evaluate(e.args[2],r);let a;if(e.args.length>=8){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))}else e.args.length>3&&(a=await t.evaluate(e.args[3],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=wa(e.source,t,"take"),n=wa(e.target?e.target:void 0,t,"take"),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),String(r));if(n.startsWith("data-"))return void e.setAttribute(n,String(r));if("id"===i)return void(e.id=String(r));if("title"===i)return void(e.title=String(r));if("value"===i&&"value"in e)return void(e.value=String(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]=String(r):n in e.style?e.style[n]=String(r):e.style.setProperty(n,String(r)):e.setAttribute(t,String(r))}},pa(t,"TakeCommand"),(()=>{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;ca(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}),ua(t,n)})(),t})();const sc=ga(oc);class lc{constructor(){this.name="render"}get metadata(){return lc.metadata}async parseInput(e,t,r){if(e.args.length<1)throw new 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 new 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(;a<n.length;){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 new 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 new Error(`Invalid @if syntax: ${i}`);const o=Boolean(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(;i<e.length&&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(;a<e.length&&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(),n=this.evaluateExpression(r,t);return String(n||"")}const n=this.evaluateExpression(e,t);return this.escapeHtml(String(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;e<r.length&&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,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}createDOMElement(e){if("undefined"==typeof document)return null;const t=document.createElement("div");return t.innerHTML=e,1===t.children.length?t.firstElementChild:t}}lc.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 cc extends Jr{constructor(e={}){const t=e.registry||new _r;e.registry||(t.register(Aa()),t.register(ja()),t.register(Ja()),t.register(Xa()),t.register(xo()),t.register(So()),t.register(No()),t.register(Oo()),t.register(Mo()),t.register(Wo()),t.register(qo()),t.register(Do()),t.register(zs()),t.register(xs()),t.register(Gs()),t.register(Qs()),t.register(nl()),t.register(il()),t.register(al()),t.register(sl()),t.register(ll()),t.register(ul()),t.register(pl()),t.register(dl()),t.register(fl()),t.register(yl()),t.register(wl()),t.register(bl()),t.register(zl()),t.register(Sl()),t.register(Al()),t.register(Pl()),t.register(Ol()),t.register(Il()),t.register(Rl()),t.register($l()),t.register(Wl()),t.register(Vl()),t.register(_l()),t.register(ql()),t.register(Dl()),t.register(Bl()),t.register(Hl()),t.register(Fl()),t.register(Ul()),t.register(Kl()),t.register(Tl()),t.register(Gl()),t.register(new Jl),t.register(Yl()),t.register(Xl()),t.register(ec()),t.register(tc()),t.register(nc()),t.register(ic()),t.register(new ac),t.register(sc()),t.register(new lc));const r={registry:t,expressionRegistry:e.expressionRegistry??sa()};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 uc(e,t){return t?{type:"literal",value:e,dataType:t}:{type:"literal",value:e}}function pc(e,t){return t?{type:"selector",value:e,selectorKind:t}:{type:"selector",value:e}}function mc(e){return{type:"reference",value:e}}function dc(e,t){return{type:"property-path",object:e,property:t}}function fc(e){return{type:"expression",raw:e}}function hc(e,t=!0){return{type:"flag",name:e,enabled:t}}function yc(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}function gc(e,t,r,n,i){return{kind:"event-handler",action:e,roles:t instanceof Map?t:new Map(Object.entries(t)),body:r,...i&&{eventModifiers:i},...n&&{metadata:n}}}function vc(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}}}function kc(e,t="sequential",r){const n={kind:"compound",action:"compound",roles:new Map,statements:e,chainType:t};return r?{...n,metadata:r}:n}function wc(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}}}function bc(e,t,r,n){return{kind:"command",action:"try",roles:new Map,body:e,...t&&t.length>0?{catchBranch:t}:{},...r&&r.length>0?{finallyBranch:r}:{},...n?{metadata:n}:{}}}function zc(e,t,r){return{kind:"command",action:e,roles:new Map,asyncVariant:e,asyncBody:t,...r?{metadata:r}:{}}}function xc(e,t,r,n){return{kind:"command",action:"match",roles:e instanceof Map?e:new Map(Object.entries(e)),arms:t,...r&&r.length>0?{defaultArm:r}:{},...n?{metadata:n}:{}}}function Ec(e){return"flag"===e.type?e.name:"raw"in e&&void 0!==e.raw?String(e.raw):"value"in e&&void 0!==e.value?String(e.value):"property-path"===e.type?`${Ec(e.object)}.${e.property}`:""}function Sc(e,t){const r=e.roles.get(t);return r?Ec(r):""}var Tc=new Set(["me","you","it","result","event","target","body"]);function Cc(e,t=Tc){return t.has(e)}var Ac=new Set(["body","then","else","condition","loop-body","variable","catch","finally"]);function Lc(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 jc(e,t={}){const r=e.trim(),n=!0===t.collectDiagnostics,i=[];if(!r.startsWith("[")||!r.endsWith("]"))throw new Error("Explicit syntax must be wrapped in brackets: [command role:value ...]");const a=r.slice(1,-1).trim();if(!a)throw new Error("Empty explicit statement");const o=function(e){const t=[];let r="",n=!1,i="",a=0;for(let o=0;o<e.length;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}(a);if(0===o.length)throw new Error("No command specified in explicit statement");const s=o[0].toLowerCase(),l=new Map,c=t.referenceSet??Tc,u=t.schemaLookup?.getSchema(s),p=u?new Set(u.roles.map(e=>e.role)):null;for(let e=1;e<o.length;e++){const t=o[e];if(t.startsWith("+")||t.startsWith("~")){const e=t.startsWith("+"),r=t.slice(1);if(!r){if(n){i.push({severity:"error",code:"EMPTY_FLAG",message:`Empty flag name: "${t}"`,source:"schema"});continue}throw new Error(`Empty flag name: "${t}"`)}if(p&&!p.has(r)){if(n){i.push({severity:"error",code:"UNKNOWN_FLAG",message:`Unknown flag "${r}" for command "${s}"`,source:"schema",suggestions:[...p].map(e=>`+${e}`)}),l.set(r,hc(r,e));continue}throw new Error(`Unknown flag "${r}" for command "${s}". Valid roles: ${[...p].join(", ")}`)}l.set(r,hc(r,e));continue}const r=t.indexOf(":");if(-1===r){if(n){i.push({severity:"error",code:"INVALID_ROLE_FORMAT",message:`Invalid role format: "${t}". Expected role:value or +flag`,source:"schema"});continue}throw new Error(`Invalid role format: "${t}". Expected role:value or +flag`)}const a=t.slice(0,r);if(p&&!Ac.has(a)&&!p.has(a)){if(!n)throw new Error(`Unknown role "${a}" for command "${s}". Valid roles: ${[...p].join(", ")}`);i.push({severity:"error",code:"UNKNOWN_ROLE",message:`Unknown role "${a}" for command "${s}"`,source:"schema",suggestions:[...p]})}const u=a,m=t.slice(r+1);if(Ac.has(a)&&m.startsWith("[")&&Lc(m)){const e=Wc(t,r+1),n=t.slice(r+1,e+1);l.set(u,{type:"expression",raw:n});continue}const d=$c(m,c);l.set(u,d)}if(u&&"on"!==s)for(const e of u.roles)if(e.required&&!l.has(e.role)&&!e.default){if(!n)throw new Error(`Missing required role "${e.role}" for command "${s}": ${e.description}`);i.push({severity:"error",code:"MISSING_REQUIRED_ROLE",message:`Missing required role "${e.role}" for command "${s}": ${e.description}`,source:"schema"})}const m=e=>0===i.length?e:{...e,diagnostics:i};switch(s){case"on":{if(!l.get("event")){if(n)return i.push({severity:"error",code:"MISSING_EVENT_ROLE",message:"Event handler requires event role: [on event:click ...]",source:"schema"}),m(gc("on",l,[],{sourceLanguage:"explicit"}));throw new Error("Event handler requires event role: [on event:click ...]")}const e=Mc(l,"body",t);return l.delete("body"),m(gc("on",l,e,{sourceLanguage:"explicit"}))}case"if":{const e=Mc(l,"then",t),r=Mc(l,"else",t);return l.delete("then"),l.delete("else"),m(vc(s,l,e,r.length>0?r:void 0,{sourceLanguage:"explicit"}))}case"repeat":{const e=Mc(l,"loop-body",t),r=l.get("loop-variant"),n=l.get("variable"),i=l.get("index-variable");let a;l.delete("loop-body"),l.delete("loop-variant"),l.delete("variable"),l.delete("index-variable"),a=r&&"literal"===r.type&&"string"==typeof r.value?r.value:l.has("quantity")?"times":l.has("source")?"for":l.has("condition")?"while":"forever";return m(wc(s,l,a,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 m(yc(s,l,{sourceLanguage:"explicit"}))}}function Pc(e){const t=e.trim();return t.startsWith("[")&&t.endsWith("]")}var Nc=new Set(["then","and","async","sequential"]);function Oc(e){const t=[];let r=null,n="",i=0,a=!1,o="";for(let s=0;s<e.length;s++){const l=e[s];if(a)n+=l,l===o&&"\\"!==e[s-1]&&(a=!1);else if('"'!==l&&"'"!==l)if("["!==l){if("]"!==l)n+=l;else if(i--,n+=l,0===i){const i=e.slice(s+1),a=i.match(/^\s*\|>\s*/);if(a){t.push(n.trim()),n="",r??(r="pipe"),s+=a[0].length;continue}const o=i.match(/^\s+(then|and|async|sequential)\s+/);if(o&&Nc.has(o[1])){t.push(n.trim()),n="",r??(r=o[1]),s+=o[0].length;continue}}}else i++,n+=l;else a=!0,o=l,n+=l}return n.trim()&&t.push(n.trim()),{segments:t,chainType:r}}function Ic(e,t){const r=e.trim(),{annotations:n,remainder:i}=function(e){const t=[];let r=0;for(;r<e.length;){for(;r<e.length&&(" "===e[r]||"\t"===e[r]);)r++;if(r>=e.length||"@"!==e[r])break;r++;const n=r;for(;r<e.length&&/[A-Za-z0-9\-_]/.test(e[r]);)r++;const i=e.slice(n,r);if(!i)break;let a;if(r<e.length&&"("===e[r]){r++;const t=r;if(r<e.length&&('"'===e[r]||"'"===e[r])){const n=e[r];for(r++;r<e.length&&e[r]!==n;)"\\"===e[r]&&r++,r++;r++,a=e.slice(t+1,r-1)}else{for(;r<e.length&&")"!==e[r];)r++;a=e.slice(t,r)}r<e.length&&")"===e[r]&&r++}t.push(void 0!==a?{name:i,value:a}:{name:i})}return{annotations:t,remainder:e.slice(r).trim()}}(r),{segments:a,chainType:o}=Oc(i);let s;if(a.length<=1)s=jc(a[0]||i,t);else{s=kc(a.map(e=>jc(e,t)),o??"sequential")}return n.length>0?{...s,annotations:n}:s}var Rc=/^#!lse\s+(\d+\.\d+(?:\.\d+)?)\s*$/;function Mc(e,t,r){const n=e.get(t);return n&&"expression"===n.type?[jc(n.raw,r)]:[]}function $c(e,t){if(e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("@")||e.startsWith("*"))return pc(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 uc(e.slice(1,-1),"string");if("true"===e)return uc(!0,"boolean");if("false"===e)return uc(!1,"boolean");const r=e.toLowerCase();if(Cc(r,t))return mc(r);const n=e.match(/^(-?\d+(?:\.\d+)?)(ms|s|m|h)?$/);if(n){const t=parseFloat(n[1]);return n[2]?uc(e,"duration"):uc(t,"number")}return uc(e)}function Wc(e,t){let r=0;for(let n=t;n<e.length;n++)if("["===e[n])r++;else if("]"===e[n]&&(r--,0===r))return n;return e.length-1}function _c(e){let t;if("compound"===e.kind){const r=e;t=r.statements.map(e=>_c(e)).join(` ${r.chainType} `)}else t=function(e){const t=[e.action];for(const[r,n]of e.roles)t.push("flag"===n.type?n.enabled?`+${n.name}`:`~${n.name}`:`${r}:${qc(n)}`);if("event-handler"===e.kind){e.body&&e.body.length>0&&t.push(`body:${e.body.map(e=>_c(e)).join(" ")}`)}if("conditional"===e.kind){const r=e;r.thenBranch&&r.thenBranch.length>0&&t.push(`then:${r.thenBranch.map(e=>_c(e)).join(" ")}`),r.elseBranch&&r.elseBranch.length>0&&t.push(`else:${r.elseBranch.map(e=>_c(e)).join(" ")}`)}if("loop"===e.kind){const r=e;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&&t.push(`loop-body:${r.body.map(e=>_c(e)).join(" ")}`)}if("command"===e.kind){const r=e;r.body&&r.body.length>0&&t.push(`body:${r.body.map(e=>_c(e)).join(" ")}`),r.catchBranch&&r.catchBranch.length>0&&t.push(`catch:${r.catchBranch.map(e=>_c(e)).join(" ")}`),r.finallyBranch&&r.finallyBranch.length>0&&t.push(`finally:${r.finallyBranch.map(e=>_c(e)).join(" ")}`),r.asyncVariant&&t.push(`async-variant:${r.asyncVariant}`),r.asyncBody&&r.asyncBody.length>0&&t.push(`async-body:${r.asyncBody.map(e=>_c(e)).join(" ")}`)}return`[${t.join(" ")}]`}(e);if(e.annotations&&e.annotations.length>0){return e.annotations.map(e=>void 0!==e.value?`@${e.name}(${e.value})`:`@${e.name}`).join(" ")+" "+t}return t}function qc(e){switch(e.type){case"literal":return"string"==typeof e.value?"string"===e.dataType||/\s/.test(e.value)?`"${e.value}"`:e.value:String(e.value);case"selector":case"reference":return e.value;case"property-path":return`${qc(e.object)}'s ${e.property}`;case"expression":return e.raw;case"flag":return e.name}}function Vc(e){const t=Dc(e.roles);let r;switch(e.kind){case"command":{const n=e;r={kind:"command",action:e.action,roles:t},n.body&&n.body.length>0&&(r.body=n.body.map(Vc)),n.catchBranch&&n.catchBranch.length>0&&(r.catchBranch=n.catchBranch.map(Vc)),n.finallyBranch&&n.finallyBranch.length>0&&(r.finallyBranch=n.finallyBranch.map(Vc)),n.asyncVariant&&(r.asyncVariant=n.asyncVariant),n.asyncBody&&n.asyncBody.length>0&&(r.asyncBody=n.asyncBody.map(Vc)),n.arms&&n.arms.length>0&&(r.arms=n.arms.map(e=>({pattern:Bc(e.pattern),body:e.body.map(Vc)}))),n.defaultArm&&n.defaultArm.length>0&&(r.defaultArm=n.defaultArm.map(Vc));break}case"event-handler":{const n=e;if(function(e){if(!e.body||1!==e.body.length)return!1;const t=e.body[0];if("command"!==t.kind)return!1;const r=t;if(r.body&&r.body.length>0)return!1;if(r.catchBranch&&r.catchBranch.length>0)return!1;if(r.finallyBranch&&r.finallyBranch.length>0)return!1;if(r.asyncVariant)return!1;if(r.asyncBody&&r.asyncBody.length>0)return!1;if(r.arms&&r.arms.length>0)return!1;if(r.defaultArm&&r.defaultArm.length>0)return!1;const n=e.roles.get("event");return!(!n||"literal"!==n.type)&&("string"==typeof n.value&&(!r.roles.has("event")&&(!(e.additionalEvents&&e.additionalEvents.length>0)&&(!(e.parameterNames&&e.parameterNames.length>0)&&(!(e.annotations&&e.annotations.length>0)&&(!(e.diagnostics&&e.diagnostics.length>0)&&(!(r.annotations&&r.annotations.length>0)&&!(r.diagnostics&&r.diagnostics.length>0))))))))}(n)){const e=n.body[0],t={event:n.roles.get("event").value},i=function(e){if(!e)return;const t={};e.once&&(t.once=!0);"number"==typeof e.debounce&&(t.debounce=e.debounce);"number"==typeof e.throttle&&(t.throttle=e.throttle);e.queue&&(t.queue=e.queue);return Object.keys(t).length>0?t:void 0}(n.eventModifiers);i&&(t.modifiers=i),r={action:e.action,roles:Dc(e.roles),trigger:t};break}r={kind:"event-handler",action:e.action,roles:t,body:n.body.map(Vc)};break}case"compound":{const t=e;r={kind:"compound",action:"compound",statements:t.statements.map(Vc),chainType:t.chainType};break}case"conditional":{const n=e;r={kind:"command",action:e.action,roles:t},r.thenBranch=n.thenBranch.map(Vc),n.elseBranch&&n.elseBranch.length>0&&(r.elseBranch=n.elseBranch.map(Vc));break}case"loop":{const n=e;r={kind:"command",action:e.action,roles:t},r.loopVariant=n.loopVariant,r.loopBody=n.body.map(Vc),n.loopVariable&&(r.loopVariable=n.loopVariable),n.indexVariable&&(r.indexVariable=n.indexVariable);break}}return e.annotations&&e.annotations.length>0&&(r.annotations=e.annotations.map(e=>void 0!==e.value?{name:e.name,value:e.value}:{name:e.name})),e.diagnostics&&e.diagnostics.length>0&&(r.diagnostics=e.diagnostics.map(e=>{const t={level:e.severity,message:e.message};return e.code&&(t.code=e.code),e.source&&(t.source=e.source),e.suggestions&&e.suggestions.length>0&&(t.suggestions=[...e.suggestions]),t})),r}function Dc(e){const t={};for(const[r,n]of e)t[r]=Bc(n);return t}function Bc(e){switch(e.type){case"selector":{const t="selectorKind"in e?e.selectorKind:void 0,r={type:"selector",value:e.value};return t&&new Set(["id","class","attribute","element","complex"]).has(t)&&(r.selectorKind=t),r}case"literal":return e.dataType?{type:"literal",value:e.value,dataType:e.dataType}:{type:"literal",value:e.value};case"reference":return{type:"reference",value:e.value};case"expression":return{type:"expression",raw:e.raw};case"property-path":return{type:"expression",raw:Ec(e)};case"flag":return{type:"flag",name:e.name,enabled:e.enabled}}}function Hc(e){const t=new Map(Object.entries(e.roles??{}).map(([e,t])=>[e,Uc(t)])),r=e.annotations?.map(e=>void 0!==e.value?{name:e.name,value:e.value}:{name:e.name}),n=e.diagnostics?.map(e=>({severity:e.level,message:e.message,...e.code?{code:e.code}:{},...e.source?{source:e.source}:{},...e.suggestions&&e.suggestions.length>0?{suggestions:e.suggestions}:{}}));if(e.trigger){t.set("event",uc(e.trigger.event,"string"));const i=new Map(t);i.delete("event");return Fc(gc("on",t,[yc(e.action,i)],{sourceLanguage:"json"},e.trigger.modifiers??{}),r,n)}const i=e.kind??"command";if("event-handler"===i){const i=(e.body??[]).map(Hc);return Fc(gc(e.action,t,i),r,n)}if("compound"===i){return Fc(kc((e.statements??[]).map(Hc),e.chainType??"sequential"),r,n)}if(e.thenBranch&&e.thenBranch.length>0){const i=e.thenBranch.map(Hc),a=e.elseBranch?e.elseBranch.map(Hc):void 0;return Fc(vc(e.action,t,i,a),r,n)}if(e.loopVariant){const i=(e.loopBody??[]).map(Hc);return Fc(wc(e.action,t,e.loopVariant,i,e.loopVariable,e.indexVariable),r,n)}if(e.catchBranch||e.finallyBranch){return Fc(bc((e.body??[]).map(Hc),e.catchBranch?e.catchBranch.map(Hc):void 0,e.finallyBranch?e.finallyBranch.map(Hc):void 0),r,n)}if(e.asyncVariant){const t=(e.asyncBody??[]).map(Hc);return Fc(zc(e.asyncVariant,t),r,n)}if(e.arms&&e.arms.length>0){return Fc(xc(t,e.arms.map(e=>({pattern:Uc(e.pattern),body:e.body.map(Hc)})),e.defaultArm?e.defaultArm.map(Hc):void 0),r,n)}return Fc(e.body&&e.body.length>0&&"command"===i?bc(e.body.map(Hc)):yc(e.action,t),r,n)}function Fc(e,t,r){return t&&0!==t.length||r&&0!==r.length?{...e,...t&&t.length>0?{annotations:t}:{},...r&&r.length>0?{diagnostics:r}:{}}:e}function Uc(e){switch(e.type){case"selector":return pc(String(e.value??""),e.selectorKind);case"literal":return uc(void 0!==e.value?e.value:"",e.dataType);case"reference":return mc(String(e.value??""));case"expression":return fc(e.raw??String(e.value??""));case"flag":return hc(e.name??String(e.value??""),e.enabled??("boolean"!=typeof e.value||e.value));case"property-path":return fc(String(e.value??e.raw??""))}}var Kc=new Set(["command","event-handler","compound"]),Gc=new Set(["selector","literal","reference","expression","property-path","flag"]),Jc=new Set(["then","and","async","sequential","pipe"]),Yc=new Set(["all","race"]),Zc=new Set(["error","warning","info"]);var Xc=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 Qc(e,t){return!t||0===t.length||(!!t.includes(e)||(!!t.includes("expression")||"property-path"===e&&t.some(e=>["selector","reference","expression"].includes(e))))}function eu(e,t){return e?.possessive?.keywords?.[t]}var tu=class e{constructor(){this.logger=new Xc("pattern-matcher"),this.stemMatchCount=0,this.totalKeywordMatches=0}safeToLowerCase(e){return"string"==typeof e?e.toLowerCase():null==e?"":String(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;r<10;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;i<t.length;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=i+1<t.length?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&&!Qc(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&&!Qc(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&&!Qc(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&&!Qc(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&&!Qc(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&&!Qc(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=eu(this.currentProfile,r);if(!n)return null;const i=e.mark();e.advance();const a=e.peek();if(!a)return e.reset(i),null;if("identifier"===a.kind||"keyword"===a.kind&&!this.isStructuralKeyword(a.value)||"selector"===a.kind&&a.value.startsWith("*")||"selector"===a.kind&&a.value.startsWith("@")||"selector"===a.kind&&a.value.startsWith(".")&&/^\.[a-zA-Z_]\w*/.test(a.value)){e.advance();let t=a.value;"selector"===a.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()),dc(mc(n),r)}return e.reset(i),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()&&s.length<e.MAX_METHOD_ARGS;){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()&&s<e.MAX_PROPERTY_DEPTH;){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()&&r.length<e.MAX_METHOD_ARGS;){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(),dc(pc(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 dc(pc(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;l<=e.MAX_MARKER_SCAN;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;e<l;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&&e.stemConfidence>=.7?"stem":"keyword"===e.kind&&this.safeToLowerCase(e.value)===t.toLowerCase()?"case-insensitive":"none"}collectStopMarkers(e,t){const r=new Set;for(let n=t;n<e.length;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 pc(e.value);case"literal":return this.parseLiteralValue(e.value);case"keyword":return this.safeToLowerCase(e.normalized||e.value),uc(e.normalized||e.value);case"identifier":return"string"==typeof e.value&&e.value.startsWith(":")?mc(e.value):(this.safeToLowerCase(e.value),{type:"expression",raw:e.value});case"url":return uc(e.value,"string");default:return null}}parseLiteralValue(e){if(e.startsWith('"')||e.startsWith("'")||e.startsWith("`")||e.startsWith("「")){return uc(e.slice(1,-1),"string")}if("true"===e)return uc(!0,"boolean");if("false"===e)return uc(!1,"boolean");const t=e.match(/^(\d+(?:\.\d+)?)(ms|s|m|h)?$/);if(t){const r=parseFloat(t[1]);return t[2]?uc(e,"duration"):uc(r,"number")}const r=parseFloat(e);return isNaN(r)?uc(e,"string"):uc(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}};tu.MAX_MARKER_SCAN=3,tu.MAX_PROPERTY_DEPTH=10,tu.MAX_METHOD_ARGS=20,tu.ENGLISH_NOISE_WORDS=new Set(["the","a","an"]);var ru=tu,nu=new ru;var iu={basePriority:100,includeOptionalVariants:!0};function au(e,t,r=iu){const n=`${e.action}-${t.code}-generated`,i=r.basePriority??100,a=t.keywords[e.action];if(!a)throw new Error(`No keyword translation for '${e.action}' in ${t.code}`);const o=function(e,t,r,n){const i=[],a={type:"literal",value:r,...n?.length&&{alternatives:n}},o=function(e,t){const r=[...e];"SVO"===t?r.sort((e,t)=>(t.svoPosition??0)-(e.svoPosition??0)):"SOV"===t&&r.sort((e,t)=>(t.sovPosition??0)-(e.sovPosition??0));return r}(e.roles,t.wordOrder);if("SVO"===t.wordOrder){i.push(a);for(const e of o)ou(i,e,t)}else if("SOV"===t.wordOrder){for(const e of o)ou(i,e,t);i.push(a)}else if("VSO"===t.wordOrder){i.push(a);for(const e of o)ou(i,e,t)}else{i.push(a);for(const e of o)ou(i,e,t)}return i}(e,t,a.primary,a.alternatives),s=function(e,t){const r={};for(const n of e.roles){const e=su(n,t),i={...void 0!==n.default&&{default:n.default},...e&&{marker:e}};r[n.role]=i}return r}(e,t),l=function(e,t,r){const n=[];"SVO"!==t.wordOrder&&"VSO"!==t.wordOrder||n.push(r);for(const r of e.roles){const e=su(r,t),i=`{${r.role}}`;if(e){const a=t.roleMarkers?.[r.role];n.push("after"===a?.position?`${i} ${e}`:`${e} ${i}`)}else n.push(i)}"SOV"===t.wordOrder&&n.push(r);return n.join(" ")}(e,t,a.primary);return{id:n,language:t.code,command:e.action,priority:i,template:{format:l,tokens:o},extraction:s}}function ou(e,t,r){const n=su(t,r),i=!t.required,a={type:"role",role:t.role,optional:i,expectedTypes:t.expectedTypes,...t.greedy&&{greedy:!0}};if(n){const o=r.roleMarkers?.[t.role],s="SOV"===r.wordOrder?"after":"before",l=t.markerPosition??o?.position??s;i?e.push("before"===l?{type:"group",optional:!0,tokens:[{type:"literal",value:n},a]}:{type:"group",optional:!0,tokens:[a,{type:"literal",value:n}]}):"before"===l?(e.push({type:"literal",value:n}),e.push(a)):(e.push(a),e.push({type:"literal",value:n}))}else e.push(a)}function su(e,t){return e.markerOverride?.[t.code]?e.markerOverride[t.code]:t.roleMarkers?.[e.role]?.primary}function lu(e,t){const r=[],n=new Set;for(const i of t){const t=e.get(i);t&&(r.push(t),n.add(i))}for(const[t,i]of e)n.has(t)||r.push(i);return r}function cu(e,t,r){const n=[];for(const i of e){const e=t.find(e=>e.role===i.role);e?"preposition"===r?(e.form&&n.push(e.form),n.push(i.translated||i.value)):"postposition"===r?(n.push(i.translated||i.value),e.form&&n.push(e.form)):n.push(i.translated||i.value):n.push(i.translated||i.value)}return n}function uu(e){if(0===e.length)return"";let t="";for(let r=0;r<e.length;r++){const n=e[r],i=e[r+1],a=n.endsWith("-"),o=n.startsWith("-");let s=n;if(a&&(s=n.slice(0,-1)),o&&(s=n.substring(1)),t+=s,i){const e=i.startsWith("-");a||e||(t+=" ")}}return t}var pu=class{constructor(e){this.dictionary=e.dictionary,this.profileProvider=e.profileProvider}transform(e,t,r){const n=this.profileProvider.getProfile(t),i=this.profileProvider.getProfile(r);if(!n)throw new Error(`No profile found for language: ${t}`);if(!i)throw new Error(`No profile found for language: ${r}`);const a=this.parseStatement(e,t,n);return uu(cu(lu(this.translateRoles(a,t,r),i.canonicalOrder),i.markers,i.adpositionType))}parseStatement(e,t,r){const n=new Map,i=e.split(/\s+/);let a=0;for(;a<i.length;){const e=i[a],o=r.markers.find(t=>t.form===e);if(o)a+1<i.length?(n.set(o.role,i[a+1]),a+=2):a++;else{const r=this.dictionary.lookup(e,t);r?n.set("action",r):(e.startsWith("#")||e.startsWith("."),n.set("patient",e)),a++}}return n}translateRoles(e,t,r){const n=new Map;for(const[t,i]of e){const e=this.dictionary.translate(i,r);n.set(t,{role:t,value:i,translated:e??i})}return n}},mu=class{constructor(e){this.translations=e}lookup(e,t){const r=this.translations[t];if(!r)return;const n=e.toLowerCase();for(const[e,t]of Object.entries(r))if(t.toLowerCase()===n)return e}translate(e,t){return this.translations[t]?.[e]}getAllTranslations(e,t){const r=this.lookup(e,t);if(!r)return{};const n={};for(const[e,t]of Object.entries(this.translations)){const i=t[r];i&&(n[e]=i)}return n}},du=class{constructor(e){this.profiles=e}getProfile(e){return this.profiles[e]}getSupportedLanguages(){return Object.keys(this.profiles)}hasLanguage(e){return e in this.profiles}},fu=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(;t+r<e.length;){if("”"===e[t+r])return r++,{value:e.substring(t,t+r),length:r};r++}return null}if("‘"===r){let r=1;for(;t+r<e.length;){if("’"===e[t+r])return r++,{value:e.substring(t,t+r),length:r};r++}return null}let n=1,i=!1;for(;t+n<e.length;){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}},hu=class{constructor(){this.name="number"}canExtract(e,t){return/\d/.test(e[t])}extract(e,t){let r=0,n=!1;for(;t+r<e.length;){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(a<e.length){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}}},yu=class{constructor(){this.name="identifier"}canExtract(e,t){return/[a-zA-Z_]/.test(e[t])}extract(e,t){let r=0;for(;t+r<e.length;){if(!/[a-zA-Z0-9_]/.test(e[t+r]))break;r++}return r>0?{value:e.substring(t,t+r),length:r}:null}},gu=class{constructor(){this.name="unicode-identifier"}canExtract(e,t){return!(e.charCodeAt(t)<128)&&/\p{L}/u.test(e[t])}extract(e,t){let r=0;for(;t+r<e.length;){if(!/[\p{L}\p{N}\p{M}]/u.test(e[t+r]))break;r++}return r>0?{value:e.substring(t,t+r),length:r}:null}};function vu(e){return"setContext"in e&&"function"==typeof e.setContext}function ku(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 wu=new Set(["selector","literal","reference","expression","property-path","flag"]);function bu(e){switch(e.type){case"selector":return pc(String(e.value),(t=String(e.value)).startsWith("#")?"id":t.startsWith(".")?"class":t.startsWith("[")?"attribute":"complex");case"literal":return uc(e.value,"number"==typeof e.value?"number":"boolean"==typeof e.value?"boolean":"string");case"reference":return mc(String(e.value));case"expression":case"property-path":return fc(String(e.value));case"flag":return hc(String(e.value),!0);default:return uc(String(e.value),"string")}var t}function zu(e){switch(e.type){case"selector":return{type:"selector",value:e.value};case"literal":return{type:"literal",value:e.value};case"reference":return{type:"reference",value:e.value};case"expression":return{type:"expression",value:e.raw};case"property-path":return{type:"property-path",value:`${zu(e.object).value}.${e.property}`};case"flag":return{type:"flag",value:e.enabled}}}function xu(e){if(!e||"object"!=typeof e)return yc("unknown",{});switch(e.type){case"event":return function(e){const t=String(e.event??"click"),r=Array.isArray(e.body)?e.body:[],n=r.map(xu),i={event:uc(t)};e.target&&"object"==typeof e.target&&(i.source=Su(e.target));const a=e.modifiers;let o;a&&(o=function(e){const t=!0===e.once||void 0,r="number"==typeof e.debounce?e.debounce:void 0,n="number"==typeof e.throttle?e.throttle:void 0,i="string"==typeof e.from?function(e){if(Tc.has(e))return mc(e);const t=Pu(e);return t?pc(e,t):uc(e)}(e.from):void 0;if(void 0===t&&void 0===r&&void 0===n&&void 0===i)return;return{...void 0!==t?{once:t}:{},...void 0!==r?{debounce:r}:{},...void 0!==n?{throttle:n}:{},...void 0!==i?{from:i}:{}}}(a),a.prevent&&(i.prevent=uc(!0)),a.stop&&(i.stop=uc(!0)),a.passive&&(i.passive=uc(!0)),a.capture&&(i.capture=uc(!0)));return gc("on",i,n,void 0,o)}(e);case"command":return function(e){const t=String(e.name??"unknown"),r=Array.isArray(e.args)?e.args:[],n=e.target&&"object"==typeof e.target?e.target:void 0,i=e.roles,a=e.modifiers;let o;if(i&&"object"==typeof i&&Object.keys(i).length>0){o={};for(const[e,t]of Object.entries(i))t&&"object"==typeof t&&"type"in t&&(o[e]=Su(t))}else o=function(e,t,r,n){const i={};switch(e){case"set":{t[0]&&(i.destination=Su(t[0]));const e=r?.to;e&&"object"==typeof e&&"type"in e?i.patient=Su(e):t[1]&&(i.patient=Su(t[1]));break}case"put":if(t[0]&&(i.patient=Su(t[0])),r)for(const e of["into","before","after"]){const t=r[e];if(t&&"object"==typeof t&&"type"in t){i.destination=Su(t),i.method=uc(e);break}}!i.destination&&n&&(i.destination=Su(n));break;case"increment":case"decrement":{t[0]&&(i.destination=Su(t[0]));const e=r?.by;e&&"object"==typeof e&&"type"in e?i.quantity=Su(e):t[1]&&(i.quantity=Su(t[1]));break}case"fetch":{t[0]&&(i.source=Su(t[0]));const e=r?.as;e&&"object"==typeof e&&"type"in e?i.responseType=Su(e):"string"==typeof e&&(i.responseType=uc(e));break}case"wait":case"settle":t[0]&&(i.duration=Su(t[0]));break;case"toggle":case"add":case"show":case"hide":case"send":case"trigger":default:t[0]&&(i.patient=Su(t[0])),n&&(i.destination=Su(n));break;case"remove":t[0]&&(i.patient=Su(t[0])),n&&(i.source=Su(n));break;case"log":t[0]&&(i.patient=Su(t[0]));break;case"scroll":{const e=ju(t,Cu);e&&(i.destination=Su(e));break}case"push":case"replace":{const e=ju(t,Au);e&&(i.patient=Su(e));break}case"process":{const e=ju(t,Lu);e&&(i.patient=Su(e));break}}return i}(t,r,a,n);return yc(t,o)}(e);case"if":return function(e){const t=e.condition&&"object"==typeof e.condition?Su(e.condition):fc("true"),r=Array.isArray(e.thenBranch)?e.thenBranch:[],n=r.map(xu);let i;const a=e.elseIfBranches;a&&a.length>0?i=[Eu(a,e.elseBranch)]:Array.isArray(e.elseBranch)&&e.elseBranch.length>0&&(i=e.elseBranch.map(xu));return vc("if",{condition:t},n,i)}(e);case"repeat":return function(e){const t=Array.isArray(e.body)?e.body:[],r=t.map(xu),n={};let i;null!=e.count?(i="times","number"==typeof e.count?n.quantity=uc(e.count,"number"):"object"==typeof e.count&&(n.quantity=Su(e.count))):e.whileCondition&&"object"==typeof e.whileCondition?(i="while",n.condition=Su(e.whileCondition)):"string"==typeof e.untilEvent?(i="until",n.condition=uc(e.untilEvent)):i="forever";return wc("repeat",n,i,r)}(e);case"foreach":return function(e){const t=Array.isArray(e.body)?e.body:[],r=t.map(xu),n={};e.collection&&"object"==typeof e.collection&&(n.source=Su(e.collection));const i="string"==typeof e.itemName?e.itemName:void 0,a="string"==typeof e.indexName?e.indexName:void 0;return wc("repeat",n,"for",r,i,a)}(e);case"while":return function(e){const t=Array.isArray(e.body)?e.body:[],r=t.map(xu),n={};e.condition&&"object"==typeof e.condition&&(n.condition=Su(e.condition));return wc("repeat",n,"while",r)}(e);default:return yc("get",{patient:Su(e)})}}function Eu(e,t){const[r,...n]=e,i=Su(r.condition),a=r.body.map(xu);let o;return n.length>0?o=[Eu(n,t)]:t&&t.length>0&&(o=t.map(xu)),vc("if",{condition:i},a,o)}function Su(e){switch(e.type){case"literal":return function(e){const t=e.value;if(null==t)return uc("null");return uc(t,"number"==typeof t?"number":"boolean"==typeof t?"boolean":void 0)}(e);case"selector":return pc(String(e.value??""),Pu(String(e.value??"")));case"identifier":return function(e){const t=String(e.value??"");if(Tc.has(t))return mc(t);return uc(t)}(e);case"variable":return function(e){const t=String(e.name??"");switch(String(e.scope??"local")){case"element":return fc(`:${t}`);case"global":return fc(`$${t}`);default:return fc(t)}}(e);case"possessive":return dc(e.object&&"object"==typeof e.object?Su(e.object):mc("me"),String(e.property??""));case"binary":case"unary":case"member":case"call":case"positional":return fc(Tu(e));default:return"value"in e?uc(String(e.value??"")):fc(Tu(e))}}function Tu(e){if(!e||"object"!=typeof e)return"";switch(e.type){case"literal":{const t=e.value;return null==t?"null":"string"==typeof t?/\s/.test(t)?`"${t}"`:t:String(t)}case"identifier":case"selector":return String(e.value??"");case"variable":{const t=String(e.name??""),r=String(e.scope??"local");return"element"===r?`:${t}`:"global"===r?`$${t}`:t}case"binary":{const t=e.left&&"object"==typeof e.left?Tu(e.left):"",r=e.right&&"object"==typeof e.right?Tu(e.right):"";return`${t} ${e.operator??""} ${r}`}case"unary":{const t=e.operand&&"object"==typeof e.operand?Tu(e.operand):"";return`${e.operator??""} ${t}`}case"member":{const t=e.object&&"object"==typeof e.object?Tu(e.object):"";if(e.computed&&e.property&&"object"==typeof e.property)return`${t}[${Tu(e.property)}]`;return`${t}.${"string"==typeof e.property?e.property:e.property&&"object"==typeof e.property?Tu(e.property):""}`}case"possessive":return`${e.object&&"object"==typeof e.object?Tu(e.object):""}'s ${e.property??""}`;case"call":return`${e.callee&&"object"==typeof e.callee?Tu(e.callee):""}(${Array.isArray(e.args)?e.args.map(e=>Tu(e)).join(", "):""})`;case"positional":{const t=e.target&&"object"==typeof e.target?Tu(e.target):"";return t?`${e.position??""} ${t}`:String(e.position??"")}default:return"value"in e?String(e.value??""):""}}var Cu=new Set(["to","of","the","top","bottom","middle","center","nearest","left","right","smoothly","instantly"]),Au=new Set(["url"]),Lu=new Set(["partials","in"]);function ju(e,t){for(const r of e){if("identifier"===r.type){const e="string"==typeof r.name?r.name:r.value;if("string"==typeof e&&t.has(e))continue}return r}}function Pu(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}function Nu(e){switch(e.kind){case"event-handler":return function(e){const t=e.roles.get("event"),r=t&&"value"in t?String(t.value):"click",n={};e.eventModifiers&&(e.eventModifiers.once&&(n.once=!0),e.eventModifiers.debounce&&(n.debounce=e.eventModifiers.debounce),e.eventModifiers.throttle&&(n.throttle=e.eventModifiers.throttle),e.eventModifiers.queue&&(n.queue=e.eventModifiers.queue));return{type:"event",event:r,modifiers:n,body:(e.body??[]).map(Nu)}}(e);case"conditional":return function(e){const t=e.roles.get("condition");return{type:"command",name:"if",args:t?[Ou(t)]:[],condition:t?Ou(t):void 0,thenBranch:(e.thenBranch??[]).map(Nu),elseBranch:(e.elseBranch??[]).map(Nu)}}(e);case"loop":return function(e){const t=e.roles.get("patient")||e.roles.get("count");return{type:"command",name:"repeat",args:t?[Ou(t)]:[],loopVariant:e.loopVariant??"forever",body:(e.body??[]).map(Nu),loopVariable:e.loopVariable,indexVariable:e.indexVariable}}(e);case"compound":return{type:"CommandSequence",commands:(e.statements??[]).map(Nu)};default:return function(e){const t={},r=[];for(const[n,i]of e.roles){const e=Ou(i);t[n]=e,r.push(e)}return{type:"command",name:e.action,args:r,roles:t}}(e)}}function Ou(e){switch(e.type){case"selector":return{type:"selector",value:e.value};case"reference":return{type:"identifier",value:e.value};case"literal":{const t=e;if("duration"===t.dataType){const e=String(t.value),r=/^(\d+(?:\.\d+)?)(ms|s)$/.exec(e);if(r){return{type:"literal",value:"s"===r[2]?1e3*parseFloat(r[1]):parseFloat(r[1])}}}return{type:"literal",value:t.value}}case"property-path":{const t=e;return{type:"member",object:Ou(t.object),property:t.property}}case"expression":return{type:"expression",value:e.raw};case"flag":return{type:"literal",value:e.enabled};default:return{type:"literal",value:String(e.value??"")}}}var Iu=class{constructor(e){this.patterns=new Map,this.tokenizers=new Map,this.schemas=e.schemas;for(const t of e.languages)this.registerLanguage(t)}registerLanguage(e){this.tokenizers.set(e.code,e.tokenizer);const t=[];for(const r of this.schemas){const n=au(r,e.patternProfile);t.push(n)}this.patterns.set(e.code,t)}getPatterns(e){return this.patterns.get(e)||[]}getTokenizer(e){return this.tokenizers.get(e)}getSupportedLanguages(){return Array.from(this.patterns.keys())}},Ru=class{constructor(e,t,r){this.registry=t,this.matcher=new ru,this.transformer=r,e.codeGenerator&&(this.codeGenerator=e.codeGenerator);const n=new Map(e.schemas.map(e=>[e.action,e]));this.schemaLookup={getSchema:e=>n.get(e)}}parse(e,t){return this.parseWithConfidence(e,t).node}parseWithConfidence(e,t){if(Pc(e)){const t=jc(e,{schemaLookup:this.schemaLookup});if(!this.schemaLookup.getSchema(t.action))throw new Error(`No schema for action "${t.action}" in this DSL`);return{node:t,confidence:1}}const r=this.registry.getTokenizer(t);if(!r)throw new Error(`No tokenizer registered for language: ${t}`);const n=r.tokenize(e),i=this.registry.getPatterns(t),a={code:t};for(const r of i){const i=this.matcher.matchPattern(n,r,a);if(i){return{node:{kind:"command",action:r.command,roles:i.captured,metadata:{sourceLanguage:t,sourceText:e,patternId:r.id,confidence:i.confidence}},confidence:i.confidence}}}throw new Error(`No pattern matched for input: ${e}`)}validate(e,t){try{return{valid:!0,node:this.parseWithConfidence(e,t).node}}catch(e){return{valid:!1,errors:[e instanceof Error?e.message:String(e)]}}}translate(e,t,r){return Pc(e)?e:this.transformer.transform(e,t,r)}compile(e,t){if(!this.codeGenerator)return{ok:!1,errors:["No code generator configured for this DSL"]};try{const r=this.parseWithConfidence(e,t);return{ok:!0,code:this.codeGenerator.generate(r.node),node:r.node,metadata:{parser:"semantic",confidence:r.confidence}}}catch(e){return{ok:!1,errors:[e instanceof Error?e.message:String(e)]}}}getSupportedLanguages(){return this.registry.getSupportedLanguages()}};function Mu(e){const t=e.outputFormat??"both",r=e.examplesPerCommand??2,n=[Wu(),_u(),qu(e.schemas,t,r),Vu(t),Du()];let i=n;e.maxTokens&&e.maxTokens>0&&(i=function(e,t){const r=[];let n=t;for(const t of e){if(!(t.approximateTokens<=n)){const e=Math.max(4*n,40),i=t.content.slice(0,e)+"\n\n*(truncated)*";r.push({...t,content:i,approximateTokens:Gu(i)});break}r.push(t),n-=t.approximateTokens}return r}(n,e.maxTokens));const a=i.map(e=>`## ${e.title}\n\n${e.content}`).join("\n\n---\n\n"),o=e.schemas.reduce((e,t)=>e+t.roles.length,0),s=Gu(a);return{text:a,sections:i,metadata:{domain:e.domain,commandCount:e.schemas.length,roleCount:o,approximateTokens:s}}}function $u(e,t=2){const r=function(e){const t=e.roles.filter(e=>e.required),r=e.roles.filter(e=>!e.required),n=[];t.length>0&&n.push(t);for(const e of r)n.push([...t,e]);r.length>=2&&n.push([...t,...r]);0===n.length&&n.push(e.roles.slice());return n}(e),n=[];for(let i=0;i<Math.min(t,r.length);i++){const t=r[i],a=new Map;for(const e of t){const t=Fu(e);a.set(e.role,t)}const o=new Map;for(const[e,t]of a)o.set(e,Uu(t));const s=_c(yc(e.action,o)),l={};for(const[e,t]of a)l[e]=t;n.push({explicit:s,json:{action:e.action,roles:l}})}return n}function Wu(){const e='LokaScript Explicit Syntax (LSE) is a bracket-based format for imperative commands.\n\n### Syntax\n\n```\n[command role1:value1 role2:value2 +flag1 ~flag2]\n```\n\n- **Command**: The first token inside brackets (lowercased)\n- **Role pair**: `name:value` — a named semantic role with a typed value (no space around colon)\n- **Enabled flag**: `+name` — boolean attribute present\n- **Disabled flag**: `~name` — boolean attribute negated\n- **Nested body**: `body:[command ...]` — a bracket command inside a role value\n\n### Rules\n\n1. Commands are always lowercased\n2. Role names preserve their original case\n3. No spaces around the colon in role:value pairs\n4. Strings with spaces must be quoted: `patient:"hello world"`\n5. Selectors start with `#`, `.`, `[`, `@`, or `*`\n6. Output must be valid bracket syntax: `[action role:value ...]`';return{id:"protocol",title:"LSE Protocol",content:e,approximateTokens:Gu(e)}}function _u(){const e="Values in LSE are classified by their syntactic form (first match wins):\n\n| Type | Syntax | Example |\n|------|--------|---------|\n| Selector | Starts with `#` `.` `[` `@` `*` | `#button`, `.active`, `[data-id]` |\n| String | Quoted with `\"` or `'` | `\"hello world\"`, `'json'` |\n| Boolean | Exact: `true` / `false` | `visible:true` |\n| Reference | Built-in name | `me`, `you`, `it`, `result`, `event`, `target`, `body` |\n| Duration | Number + suffix | `500ms`, `2s`, `1m`, `1h` |\n| Number | Digits with optional decimal | `5`, `3.14`, `-1` |\n| Plain | Fallback (any non-whitespace) | `/api/users`, `json`, `production` |\n\n**Important**: Classification is by prefix, not by intent. `#true` is a selector (not boolean). `event` as a value is a reference (not plain text).";return{id:"value-types",title:"Value Types",content:e,approximateTokens:Gu(e)}}function qu(e,t,r){const n=[];for(const i of e)n.push(Bu(i,t,r));const i=n.join("\n\n");return{id:"commands",title:"Available Commands",content:i,approximateTokens:Gu(i)}}function Vu(e){let t;return t="explicit"===e?"Output valid LSE bracket syntax. Each command must be wrapped in brackets:\n\n```\n[command role:value ...]\n```\n\nDo NOT output JSON. Only use bracket syntax.":"json"===e?'Output valid JSON in the LLM-simplified format:\n\n```json\n{\n "action": "command-name",\n "roles": {\n "roleName": { "type": "valueType", "value": "theValue" }\n }\n}\n```\n\nValid value types: `selector`, `literal`, `reference`, `expression`.\nDo NOT output bracket syntax. Only use JSON.':'You may output EITHER format:\n\n**Bracket syntax** (preferred for single commands):\n```\n[command role:value ...]\n```\n\n**JSON format** (preferred when structured data is needed):\n```json\n{\n "action": "command-name",\n "roles": {\n "roleName": { "type": "valueType", "value": "theValue" }\n }\n}\n```\n\nBoth formats are equally valid. Use whichever is more natural for the context.',{id:"output-format",title:"Output Format",content:t,approximateTokens:Gu(t)}}function Du(){const e="If you're unsure about a command or role:\n\n1. **Unknown command**: Use the closest matching command from the Available Commands section. Do not invent commands.\n2. **Unknown role**: Use only the roles listed for each command. Do not add roles not in the schema.\n3. **Ambiguous value type**: When in doubt, use `expression` type (it's the most permissive).\n4. **Missing required role**: Always include all required roles. Check the Required/Optional labels.\n5. **Selector vs plain value**: If a value starts with `#`, `.`, `[`, `@`, or `*`, it's a selector. URLs like `/api/data` are plain values.\n\nWhen generating LSE, prefer explicit role labeling over positional guessing. Every value should have a role name.";return{id:"error-recovery",title:"Error Recovery",content:e,approximateTokens:Gu(e)}}function Bu(e,t,r){const n=[];n.push(`### \`${e.action}\` — ${e.description}`),n.push("");const i=e.roles.filter(e=>e.required),a=e.roles.filter(e=>!e.required);if(i.length>0){n.push("**Required roles:**");for(const e of i)n.push(`- \`${e.role}\`: ${e.description} (type: ${Hu(e)})`)}if(a.length>0){n.push("**Optional roles:**");for(const e of a)n.push(`- \`${e.role}\`: ${e.description} (type: ${Hu(e)})`)}const o=$u(e,r);if(o.length>0){if(n.push(""),"explicit"===t||"both"===t){n.push("**Bracket syntax:**");for(const e of o)n.push(`\`\`\`\n${e.explicit}\n\`\`\``)}if("json"===t||"both"===t){n.push("**JSON format:**");for(const e of o)n.push(`\`\`\`json\n${JSON.stringify(e.json,null,2)}\n\`\`\``)}}return n.join("\n")}function Hu(e){return e.expectedTypes.join(" | ")}function Fu(e){switch(e.expectedTypes[0]||"expression"){case"selector":return{type:"selector",value:{patient:".active",destination:"#output",source:"#input",target:"#target"}[t=e.role]||`#${t}`};case"literal":return function(e){return{type:"literal",value:{duration:"30s",interval:"5s",delay:"500ms",timeout:"10s",quantity:5,limit:10,style:"json",manner:"rolling",format:"html"}[e]||e}}(e.role);case"reference":return{type:"reference",value:"me"};case"expression":return function(e){return{type:"expression",value:{source:"/api/data",destination:"#output",patient:".active",instrument:"toUpperCase",condition:"age > 18",style:"json",duration:"5s",url:"/api/users"}[e]||`/api/${e}`}}(e.role);case"flag":return{type:"flag",value:!0};default:return{type:"literal",value:"example"}}var t}function Uu(e){switch(e.type){case"selector":return{type:"selector",value:String(e.value),selectorKind:Ku(String(e.value))};case"literal":return{type:"literal",value:e.value,dataType:"number"==typeof e.value?"number":"boolean"==typeof e.value?"boolean":"string"};case"reference":return{type:"reference",value:String(e.value)};case"expression":return{type:"expression",value:String(e.value),raw:String(e.value)};case"flag":return{type:"flag",value:e.value};default:return{type:"literal",value:String(e.value),dataType:"string"}}}function Ku(e){return e.startsWith("#")?"id":e.startsWith(".")?"class":e.startsWith("[")?"attribute":"complex"}function Gu(e){return Math.ceil(e.length/4)}function Ju(e,t){const r=t.maxPairsPerCommand??5,n=t.minQuality??.5,i=t.shuffleRoles??!0,a=t.languages??["en"],o=[];let s=0;for(const l of e){const e=Yu(l);for(const c of a){let a=0;for(const u of e){if(a>=r)break;const e=Zu(l,u,c,t.domain,`${t.domain}-synth-${s++}`);if(e.quality>=n&&(o.push(e),a++),i&&u.length>=2&&a<r){const e=Zu(l,[...u].reverse(),c,t.domain,`${t.domain}-synth-${s++}`);e.quality>=n&&(o.push(e),a++)}}}}return{pairs:o,metadata:{domain:t.domain,commandCount:e.length,pairCount:o.length,bySource:{synthetic:o.length},languages:a}}}function Yu(e){const t=e.roles.filter(e=>e.required),r=e.roles.filter(e=>!e.required),n=[];t.length>0&&n.push(t);for(const e of r)n.push([...t,e]);return r.length>=2&&n.push([...t,...r]),0===n.length&&n.push(e.roles.slice()),n}function Zu(e,t,r,n,i){const a=new Map;for(const e of t)a.set(e.role,Xu(e));const o=new Map;for(const[e,t]of a)o.set(e,Qu(t));const s=_c(yc(e.action,o)),l={};for(const[e,t]of a)l[e]=t;const c={action:e.action,roles:l},u=function(e,t,r){const n=[e.action];for(const i of e.roles){const e=t.get(i.role);if(!e)continue;const a=i.markerOverride?.[r];a&&n.push(a),n.push(String(e.value))}return n.join(" ")}(e,a,r),p=e.roles.filter(e=>e.required).length,m=t.filter(e=>e.required).length;return{id:i,natural:u,language:r,explicit:s,json:c,domain:n,action:e.action,source:"synthetic",quality:p>0?m/p:.8}}function Xu(e){switch(e.expectedTypes[0]||"expression"){case"selector":return{type:"selector",value:{patient:".active",destination:"#output",source:"#input",target:"#target"}[t=e.role]||`#${t}`};case"literal":return function(e){return{type:"literal",value:{duration:"30s",interval:"5s",delay:"500ms",timeout:"10s",quantity:5,limit:10,style:"json",manner:"rolling",format:"html"}[e]||e}}(e.role);case"reference":return{type:"reference",value:"me"};case"expression":return function(e){return{type:"expression",value:{source:"/api/data",destination:"#output",patient:".active",instrument:"toUpperCase",condition:"age > 18",style:"json",duration:"5s",url:"/api/users"}[e]||`/api/${e}`}}(e.role);case"flag":return{type:"flag",value:!0};default:return{type:"literal",value:"example"}}var t}function Qu(e){switch(e.type){case"selector":return{type:"selector",value:String(e.value),selectorKind:ep(String(e.value))};case"literal":return{type:"literal",value:e.value,dataType:"number"==typeof e.value?"number":"boolean"==typeof e.value?"boolean":"string"};case"reference":return{type:"reference",value:String(e.value)};case"expression":return{type:"expression",value:String(e.value),raw:String(e.value)};case"flag":return{type:"flag",value:e.value};default:return{type:"literal",value:String(e.value),dataType:"string"}}}function ep(e){return e.startsWith("#")?"id":e.startsWith(".")?"class":e.startsWith("[")?"attribute":"complex"}function tp(e,t,r,n,i){const a=r.some(e=>"error"===e.severity),o=r.map(e=>function(e){const t=function(e){const t=(e.code||"").toLowerCase(),r=e.message.toLowerCase();if(t.includes("missing-role")||t.includes("missing_role")||r.includes("required role")||r.includes("missing role"))return"missing_role";if(t.includes("invalid-type")||t.includes("invalid_type")||t.includes("type-mismatch")||r.includes("invalid type")||r.includes("expected type"))return"invalid_type";if(t.includes("unknown-command")||t.includes("unknown_command")||r.includes("unknown command")||r.includes("not recognized")&&r.includes("command"))return"unknown_command";if(t.includes("unknown-role")||t.includes("unknown_role")||r.includes("unknown role")||r.includes("not recognized")&&r.includes("role"))return"unknown_role";if(t.includes("parse")||t.includes("syntax")||r.includes("syntax error")||r.includes("parse error")||r.includes("unexpected"))return"syntax_error";return}(e);return{severity:e.severity,code:e.code||"unknown",message:e.message,...e.suggestions?.[0]&&{suggestion:e.suggestions[0]},...t&&{fixType:t}}}(e)),s=function(e,t,r){const n=[],i=r&&t?t.getSchema(r):void 0;for(const t of e)if("error"===t.severity)switch(t.fixType){case"missing_role":if(i){const e=i.roles.filter(e=>e.required).map(e=>`'${e.role}' (${e.description}, type: ${e.expectedTypes.join("|")})`).join(", ");n.push(`Required roles for '${r}': ${e}`)}else n.push("Check that all required roles are present.");break;case"unknown_command":n.push("Command not recognized. Ensure you're using a valid command from the domain schema.");break;case"unknown_role":if(i){const e=i.roles.map(e=>`'${e.role}'`).join(", ");n.push(`Valid roles for '${r}': ${e}`)}else n.push("Use only roles defined in the command schema.");break;case"invalid_type":n.push("Check value types: selectors start with #.[@*, strings use quotes, numbers are plain digits.");break;case"syntax_error":n.push("Ensure bracket syntax: [command role:value ...]. No spaces around the colon.");break;default:t.suggestion&&n.push(t.suggestion)}return[...new Set(n)]}(o,n,i);let l,c;if(i&&n){const e=n.getSchema(i);e&&(l=function(e){const t=[],r=[],n={};for(const i of e.roles)i.required?t.push(i.role):r.push(i.role),n[i.role]=i.description;return{action:e.action,requiredRoles:t,optionalRoles:r,roleDescriptions:n}}(e),a&&(c=function(e){const t=new Map,r={};for(const n of e.roles){if(!n.required)continue;const e=rp(n.role,n.expectedTypes[0]||"expression");t.set(n.role,np(e)),r[n.role]=e}const n=yc(e.action,t),i=_c(n),a={action:e.action,roles:r};return{explicit:i,json:a}}(e)))}return{accepted:!a,input:{format:t,text:e},diagnostics:o,hints:s,...l&&{schema:l},...c&&{correctedExample:c}}}function rp(e,t){switch(t){case"selector":return{type:"selector",value:`#${e}`};case"expression":default:return{type:"expression",value:`<${e}-value>`};case"literal":return{type:"literal",value:`<${e}-value>`};case"reference":return{type:"reference",value:"me"}}}function np(e){switch(e.type){case"selector":return{type:"selector",value:e.value,selectorKind:"id"};case"expression":return{type:"expression",value:e.value,raw:e.value};case"literal":default:return{type:"literal",value:e.value,dataType:"string"};case"reference":return{type:"reference",value:e.value}}}function ip(e){const t=[],r=e.tools??["parse","compile","validate","translate"],n=e.languages.join(", ");for(const i of r)switch(i){case"parse":t.push({name:`parse_${e.name}`,description:`Parse a ${e.description} input into a semantic representation (action, roles, confidence). Supports: ${n}.`,inputSchema:{type:"object",properties:{[e.inputLabel]:{type:"string",description:e.inputDescription},language:{type:"string",description:`Language code: ${n}`,default:"en"}},required:[e.inputLabel]}});break;case"compile":t.push({name:`compile_${e.name}`,description:`Compile a ${e.description} input to ${e.outputDescription??"target code"}. Supports: ${n}.`,inputSchema:{type:"object",properties:{[e.inputLabel]:{type:"string",description:e.inputDescription},language:{type:"string",description:`Language code: ${n}`,default:"en"}},required:[e.inputLabel]}});break;case"validate":t.push({name:`validate_${e.name}`,description:`Check ${e.description} syntax for errors. Returns {valid, errors[]}. Supports: ${n}.`,inputSchema:{type:"object",properties:{[e.inputLabel]:{type:"string",description:`${e.inputDescription} to validate`},language:{type:"string",description:`Language code: ${n}`,default:"en"}},required:[e.inputLabel]}});break;case"translate":t.push({name:`translate_${e.name}`,description:`Translate ${e.description} input between natural languages (requires 'from' and 'to' codes). Supports: ${n}.`,inputSchema:{type:"object",properties:{[e.inputLabel]:{type:"string",description:`${e.inputDescription} to translate`},from:{type:"string",description:`Source language code: ${n}`},to:{type:"string",description:`Target language code: ${n}`}},required:[e.inputLabel,"from","to"]}})}return t}function ap(e){const t=e.match(/^(parse|compile|validate|translate)_(.+)$/);return t?{operation:t[1],domain:t[2]}:null}function op(e,t,r=""){const n=e[t];return"string"==typeof n?n:r}function sp(e,t){return{content:[{type:"text",text:JSON.stringify(e,null,2)}],...t&&{isError:!0}}}function lp(e){return sp({error:`Missing required parameter: ${e}`},!0)}var cp=/^\s*(\/\/|--|#)/;function up(e){const t=e.trim();return""===t||cp.test(t)}function pp(e){const t=[];for(const r of e){const e=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");t.push(new RegExp(`${e}\\s*=\\s*"([^"]+)"`,"g")),t.push(new RegExp(`${e}\\s*=\\s*'([^']+)'`,"g")),t.push(new RegExp(`${e}\\s*=\\s*\`([^\`]+)\``,"g"))}return t}function mp(e){return e.map(e=>{const t=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`<script[^>]*type=["']?${t}["']?[^>]*>([\\s\\S]*?)<\\/script>`,"gi")})}function dp(e,t){let r=1;for(let n=0;n<t&&n<e.length;n++)"\n"===e[n]&&r++;return r}function fp(e,t){const r=e.lastIndexOf("<",t);if(-1===r)return;const n=e.slice(r,t+200).match(/\bid=["']([^"']+)["']/);return n?.[1]}function hp(e,t){const r=e.lastIndexOf("<",t);if(-1===r)return;const n=e.slice(r,t+200).match(/\blang=["']([^"']+)["']/);return n?.[1]}var yp=class{constructor(e){this.configs=e}extract(e,t){const r=[];for(const n of this.configs){const i=n.defaultLanguage??"en",a=pp(n.attributes);for(const o of a){let a;for(o.lastIndex=0;a=o.exec(e);){const o=a[1].trim();if(!o)continue;const s=dp(e,a.index),l=fp(e,a.index),c=hp(e,a.index);r.push({domain:n.domain,code:o,language:c??i,file:t,line:s,column:1,...null!=l&&{elementId:l}})}}if(n.scriptTypes){const a=mp(n.scriptTypes);for(const o of a){let a;for(o.lastIndex=0;a=o.exec(e);){const o=a[1].trim();if(!o)continue;const s=dp(e,a.index);r.push({domain:n.domain,code:o,language:i,file:t,line:s,column:1})}}}}return r}async extractFromFiles(e,t){const r=[];for(const n of e)try{const e=await t(n),i=this.extract(e,n);r.push(...i)}catch{}return r}};function gp(e,t,r){return e[t]?.[r]??t}function vp(...e){return e.filter(Boolean).join(" ")}function kp(e,t){const r={},n={};for(const e of t)for(const[t,n]of Object.entries(e.keywords))r[t]||(r[t]={}),r[t][e.code]=n.primary;for(const t of e)for(const e of t.roles)if(e.markerOverride){const t=e.role;n[t]||(n[t]={});for(const[r,i]of Object.entries(e.markerOverride))n[t][r]=i}for(const e of t)if(e.roleMarkers)for(const[t,r]of Object.entries(e.roleMarkers))n[t]||(n[t]={}),n[t][e.code]=r.primary;return{keywords:r,markers:n}}function wp(e){const t=new Set,r=new Set;for(const n of e)"SOV"===n.wordOrder&&t.add(n.code),"VSO"===n.wordOrder&&r.add(n.code);return{sovLanguages:t,vsoLanguages:r}}var bp=class{constructor(e,t){this.pos=0,this.tokens=e,this.language=t}peek(e=0){const t=this.pos+e;return t<0||t>=this.tokens.length?null:this.tokens[t]}advance(){if(this.isAtEnd())throw new 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 zp(e,t){return{start:e,end:t}}function xp(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 new 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 Ep(e){return/\s/.test(e)}function Sp(e){return"#"===e||"."===e||"["===e||"@"===e||"*"===e||"<"===e}function Tp(e){return'"'===e||"'"===e||"`"===e||"「"===e||"」"===e}function Cp(e){return/\d/.test(e)}function Ap(e){return/[a-zA-Z]/.test(e)}function Lp(e){return/[a-zA-Z0-9_-]/.test(e)}function jp(e,t){if(t>=e.length)return null;const r=e[t];if(!Sp(r))return null;let n=t,i="";if("#"===r||"."===r){for(i+=e[n++];n<e.length&&Lp(e[n]);)i+=e[n++];if(i.length<=1)return null;if(n<e.length&&"."===e[n]&&"#"===r){let t=n+1;for(;t<e.length&&Lp(e[t]);)t++;if(t<e.length&&"("===e[t])return i}}else if("["===r){let t=1,r=!1,a=null,o=!1;for(i+=e[n++];n<e.length&&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++];n<e.length&&Lp(e[n]);)i+=e[n++];if(i.length<=1)return null}else if("*"===r){for(i+=e[n++];n<e.length&&Lp(e[n]);)i+=e[n++];if(i.length<=1)return null}else if("<"===r){if(i+=e[n++],n>=e.length||!Ap(e[n]))return null;for(;n<e.length&&Lp(e[n]);)i+=e[n++];for(;n<e.length;){const t=e[n];if("."===t){if(i+=e[n++],n>=e.length||!Lp(e[n]))return null;for(;n<e.length&&Lp(e[n]);)i+=e[n++]}else if("#"===t){if(i+=e[n++],n>=e.length||!Lp(e[n]))return null;for(;n<e.length&&Lp(e[n]);)i+=e[n++]}else{if("["!==t)break;{let t=1,r=!1,a=null,o=!1;for(i+=e[n++];n<e.length&&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(;n<e.length&&Ep(e[n]);)i+=e[n++];if(n<e.length&&"/"===e[n])for(i+=e[n++];n<e.length&&Ep(e[n]);)i+=e[n++];if(n>=e.length||">"!==e[n])return null;i+=e[n++]}return i||null}function Pp(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 Ep(r)||"*"===r||!Lp(r)}function Np(e,t){if(t>=e.length)return null;const r=e[t];if(!Tp(r))return null;if("'"===r&&Pp(e,t))return null;const n={'"':'"',"'":"'","`":"`","「":"」"}[r];if(!n)return null;let i=t+1,a=r,o=!1;for(;i<e.length;){const t=e[i];if(a+=t,o)o=!1;else if("\\"===t)o=!0;else if(t===n)return a;i++}return a}function Op(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://"))}function Ip(e,t){if(!Op(e,t))return null;let r=t,n="";const i=/[a-zA-Z0-9/:._\-?&=%@+~!$'()*,;[\]]/;for(;r<e.length;){const t=e[r];if("#"===t){if(n.length>0&&/[a-zA-Z0-9/.]$/.test(n))for(n+=t,r++;r<e.length&&/[a-zA-Z0-9_-]/.test(e[r]);)n+=e[r++];break}if(!i.test(t))break;n+=t,r++}return n.length<2?null:n}function Rp(e,t){if(t>=e.length)return null;const r=e[t];if(!Cp(r)&&"-"!==r&&"+"!==r)return null;let n=t,i="";if("-"!==e[n]&&"+"!==e[n]||(i+=e[n++]),n>=e.length||!Cp(e[n]))return null;for(;n<e.length&&Cp(e[n]);)i+=e[n++];if(n<e.length&&"."===e[n])for(i+=e[n++];n<e.length&&Cp(e[n]);)i+=e[n++];if(n<e.length){"ms"===e.slice(n,n+2)?i+="ms":"s"!==e[n]&&"m"!==e[n]&&"h"!==e[n]||(i+=e[n])}return i}var Mp=["===","!==","->","==","!=","<=",">=","&&","||","**","+=","-=","*=","/=","+","-","*","/","=",">","<","!","&","|","%","^","~"],$p=class{constructor(e=Mp){this.operators=e,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}},Wp="()[]{},:;",_p=class{constructor(e=Wp){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}};function qp(){return[new fu,new hu,new $p,new _p,new yu,new gu]}function Vp(e){return t=>{const r=t.charCodeAt(0);return e.some(([e,t])=>r>=e&&r<=t)}}var Dp=new Set(Mp),Bp=class e{constructor(){this.profileKeywords=[],this.profileKeywordMap=new Map,this.extractors=[]}tokenize(e){if(this.isUsingExtractors())return this.tokenizeWithExtractors(e);throw new Error(`${this.constructor.name}: tokenize() not implemented and no extractors registered. Either register extractors or override tokenize() method.`)}registerExtractor(e){vu(e)&&e.setContext(ku(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(;r<e.length;){for(;r<e.length&&Ep(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(xp(a.value,this.classifyToken(a.value),zp(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(xp(n,i,zp(r,r+1))),r++}}return new bp(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&&n.position.end<t)&&("identifier"===n.kind||"keyword"===n.kind||"selector"===n.kind))return r.push(xp(".","operator",zp(t,t+1))),!0;let i=t+1;for(;i<e.length&&Lp(e[i]);)i++;return i<e.length&&"("===e[i]&&(r.push(xp(".","operator",zp(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 xp(r.native,"keyword",zp(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&&t.confidence>=.7?t:null}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 xp(e,"keyword",zp(t,r),a)}trySelector(e,t){const r=jp(e,t);return r?xp(r,"selector",zp(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{...xp(n,"event-modifier",zp(t,t+n.length)),metadata:{modifierName:i,value:a?"queue"===i?a:parseInt(a,10):void 0}}}tryString(e,t){const r=Np(e,t);return r?xp(r,"literal",zp(t,t+r.length)):null}tryNumber(e,t){const r=Rp(e,t);return r?xp(r,"literal",zp(t,t+r.length)):null}tryMatchTimeUnit(e,t,r,n=!1){let i=t;if(n)for(;i<e.length&&Ep(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(Lp(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||!Cp(e[n]))return null;for(;n<e.length&&Cp(e[n]);)i+=e[n++];if(n<e.length&&"."===e[n])for(i+=e[n++];n<e.length&&Cp(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),xp(l,"literal",zp(r,c))}tryUrl(e,t){const r=Ip(e,t);return r?xp(r,"url",zp(t,t+r.length)):null}tryVariableRef(e,t){if(":"!==e[t])return null;if(t+1>=e.length)return null;if(!Lp(e[t+1]))return null;let r=t+1;for(;r<e.length&&Lp(e[r]);)r++;return xp(e.slice(t,r),"identifier",zp(t,r))}tryOperator(e,t){const r=e.slice(t,t+2);if(["==","!=","<=",">=","&&","||","->"].includes(r))return xp(r,"operator",zp(t,t+2));const n=e[t];return["<",">","!","+","-","*","/","="].includes(n)?xp(n,"operator",zp(t,t+1)):["(",")","{","}",",",";",":"].includes(n)?xp(n,"punctuation",zp(t,t+1)):null}tryMultiCharParticle(e,t,r){for(const n of r)if(e.slice(t,t+n.length)===n)return xp(n,"particle",zp(t,t+n.length));return null}};Bp.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 Hp=Bp;function Fp(e){return{stem:e,confidence:1}}function Up(e,t,r){return r?{stem:e,confidence:t,metadata:r}:{stem:e,confidence:t}}var Kp=class{constructor(e){this.language=e.language,this.config={minWordLength:3,minStemLength:2,...e}}normalize(e){const t=e.toLowerCase();if(this.isAlreadyNormalized(t))return Fp(e);if(this.config.reflexiveSuffixes){const e=this.tryReflexiveNormalization(t);if(e)return e}if(this.config.endings){const e=this.tryConjugationEndings(t);if(e)return e}if(this.config.suffixRules){const e=this.trySuffixRules(t);if(e)return e}if(this.config.prefixRules){const e=this.tryPrefixRules(t);if(e)return e}return Fp(e)}isAlreadyNormalized(e){return!!this.config.infinitiveEndings&&this.config.infinitiveEndings.some(t=>e.endsWith(t))}tryReflexiveNormalization(e){const t=this.config.reflexiveSuffixes;if(!t)return null;for(const r of t){if(!e.endsWith(r))continue;const t=e.slice(0,-r.length);if(this.isAlreadyNormalized(t))return Up(t,.88,{removedSuffixes:[r],conjugationType:"reflexive"});const n=this.tryConjugationEndings(t)||this.trySuffixRules(t);if(n&&n.stem!==t)return Up(n.stem,.95*n.confidence,{removedSuffixes:[r,...n.metadata?.removedSuffixes||[]],conjugationType:"reflexive"})}return null}tryConjugationEndings(e){const t=this.config.endings;if(!t)return null;const r=this.config.minStemLength??2;for(const n of t){if(!e.endsWith(n.ending))continue;const t=e.slice(0,-n.ending.length);if(t.length<r)continue;return Up(t+n.stem,n.confidence,{removedSuffixes:[n.ending],conjugationType:n.type})}return null}trySuffixRules(e){const t=this.config.suffixRules;if(!t)return null;const r=this.config.minStemLength??2;for(const n of t){if(!e.endsWith(n.pattern))continue;const t=e.slice(0,-n.pattern.length);if(t.length<(n.minStemLength??r))continue;return Up(t+(n.replacement||""),n.confidence,{removedSuffixes:[n.pattern],...n.conjugationType&&{conjugationType:n.conjugationType}})}return null}tryPrefixRules(e){const t=this.config.prefixRules;if(!t)return null;for(const r of t){if(!e.startsWith(r.pattern))continue;const t=e.slice(r.pattern.length);if(!(t.length<(r.minRemaining??this.config.minStemLength??2)))return Up(t,1-r.confidencePenalty,{removedPrefixes:[r.pattern]})}return null}};function Gp(e){return{id:e.id,prompt:e.natural,completion:e.explicit,metadata:{domain:e.domain,action:e.action,language:e.language,source:e.source,quality:e.quality,...void 0!==e.confidence&&{confidence:e.confidence}}}}var Jp=class{constructor(e,t){this.dsl=e,this.config=t}parse(e,t){const r=this.splitStatements(e,t),n=[],i=[];let a;for(const e of r){const r=this.classifyLine(e.text,t);let o=e.text;if(this.config.continuation){const r=this.resolveContinuation(e.text,t,a?.category);null!==r&&(o=r)}if(this.config.preprocessor){const n=this.config.preprocessor(o,r,t,{...null!=a&&{previous:a},lineNumber:e.line,indent:e.indent});if(null===n)continue;o=n}try{const i={node:this.dsl.parse(o,t),source:e.text,line:e.line,...null!=r&&{category:r},indent:e.indent};n.push(i),a=i}catch(t){i.push({message:t instanceof Error?t.message:String(t),line:e.line,source:e.text,code:"parse-error"})}}return{statements:n,errors:i}}splitStatements(e,t){const{mode:r,trim:n=!0,commentPrefixes:i=["--","//"]}=this.config.split;if("delimiter"===r)return this.splitByDelimiter(e,t,n,i);const a=e.split("\n"),o=[];for(let e=0;e<a.length;e++){const t=a[e],r=t.length-t.trimStart().length,s=n?t.trim():t;s&&(i.some(e=>s.startsWith(e))||o.push({text:s,line:e+1,indent:r}))}return o}splitByDelimiter(e,t,r,n){const i=e.split(this.config.split.delimiters?.[t]??this.config.split.defaultDelimiter??/,\s*|\n\s*/),a=[];for(let e=0;e<i.length;e++){const t=i[e],o=r?t.trim():t;o&&(n.some(e=>o.startsWith(e))||a.push({text:o,line:e+1,indent:0}))}return a}classifyLine(e,t){if(!this.config.keywords)return;const r=e.toLowerCase(),n=this.config.keywords.wordOrders?.[t]??"SVO";for(const[e,i]of Object.entries(this.config.keywords.categories)){const a=i[t]??i.en??[];for(const t of a){const i=t.toLowerCase();if("SOV"===n){if(r.endsWith(i)||r.startsWith(i))return e}else if(r.startsWith(i))return e}}}resolveContinuation(e,t,r){if(!this.config.continuation||!r)return null;const n=this.config.continuation.keywords[t]??this.config.continuation.keywords.en??[],i=e.toLowerCase();for(const a of n){const n=a.toLowerCase();if(i.startsWith(n)){const n=e.slice(a.length).trim();if(!n)return null;if(this.config.continuation.resolve)return this.config.continuation.resolve(n,r,t,this.config.keywords?.categories??{});const i=this.config.keywords?.categories[r]?.[t]??this.config.keywords?.categories[r]?.en;return i?.[0]?i[0]+" "+n:null}}return null}};var Yp,Zp,Xp,Qp,em,tm=Object.freeze({__proto__:null,AOTOrchestrator:class{constructor(e){this.backends=new Map,this.options={confidenceThreshold:e?.confidenceThreshold??.7,continueOnError:e?.continueOnError??!0,debug:e?.debug??!1}}registerBackend(e){if(this.backends.has(e.domain))throw new Error(`Backend already registered for domain: ${e.domain}`);this.backends.set(e.domain,e)}async compileFiles(e,t){const r=Array.from(this.backends.values()).map(e=>e.scanConfig),n=new yp(r),i=await n.extractFromFiles(e,t),a=[],o=[],s={};for(const e of i){s[e.domain]=(s[e.domain]??0)+1;const t=this.compileSnippet(e);if("error"in t){if(o.push({domain:e.domain,source:e.code,file:e.file,line:e.line,message:t.error}),!this.options.continueOnError)break}else a.push(t)}return{compiled:a,errors:o,stats:{totalSnippets:i.length,compiledCount:a.length,errorCount:o.length,domainBreakdown:s}}}compileSnippet(e){const t=this.backends.get(e.domain);if(!t)return{error:`No backend registered for domain: ${e.domain}`};try{const r=t.dsl.compile(e.code,e.language);return r.ok&&r.code?{domain:e.domain,source:e.code,compiled:r.code,language:e.language,file:e.file,line:e.line}:{error:r.errors?.join("; ")??"Compilation failed"}}catch(e){return{error:e instanceof Error?e.message:String(e)}}}generateOutput(e,t){const r=t?.format??"esm",n=t?.includeComments??!0,i=t?.groupByDomain??!0,a=[];if(n&&(a.push("// Generated by @lokascript/framework AOT compiler"),a.push(`// ${e.stats.compiledCount} snippets compiled, ${e.stats.errorCount} errors`),a.push("")),i){const t=new Map;for(const r of e.compiled){const e=t.get(r.domain)??[];e.push(r),t.set(r.domain,e)}for(const[e,r]of t){n&&(a.push(`// === Domain: ${e} ===`),a.push(""));for(const e of r)n&&(a.push(`// Source: ${e.file}:${e.line}`),a.push(`// Language: ${e.language}`)),a.push(e.compiled),a.push("")}}else for(const t of e.compiled)n&&a.push(`// [${t.domain}] ${t.file}:${t.line}`),a.push(t.compiled),a.push("");const o=a.join("\n").trimEnd();switch(r){case"cjs":return`'use strict';\n\n${o}\n`;case"iife":return`(function() {\n${o}\n})();\n`;default:return`${o}\n`}}},BaseMorphologicalNormalizer:Kp,BaseTokenizer:Hp,CrossDomainDispatcher:class{constructor(e,t){this.registry=e,this.minConfidence=t?.minConfidence??.5,this.priority=t?.priority??[]}async detect(e,t="en"){const r=this.registry.getDomainNames();if(0===r.length)return null;const n=[];for(const i of r)try{const r=await this.registry.getDSLForDomain(i);if(!r)continue;const{node:a,confidence:o}=r.parseWithConfidence(e,t);o>=this.minConfidence&&n.push({domain:i,node:a,confidence:o,dsl:r})}catch{}return 0===n.length?null:(n.sort(this.priority.length>0?(e,t)=>{const r=this.getPriorityIndex(e.domain),n=this.getPriorityIndex(t.domain);return r!==n?r-n:t.confidence-e.confidence}:(e,t)=>t.confidence-e.confidence),n[0])}async parseComposite(e,t="en"){const r=e.split("\n"),n=[],i=[];for(let e=0;e<r.length;e++){const a=r[e];if(up(a))continue;const o=a.trim(),s=await this.detect(o,t);s?n.push({line:e+1,input:o,domain:s.domain,node:s.node,confidence:s.confidence}):i.push({line:e+1,input:o,message:"No domain matched this input"})}return{statements:n,errors:i}}async compile(e,t="en"){const r=await this.detect(e,t);if(!r)return null;return{...r.dsl.compile(e,t),domain:r.domain}}async compileComposite(e,t="en"){const r=e.split("\n"),n=[],i=[];for(let e=0;e<r.length;e++){const a=r[e];if(up(a))continue;const o=a.trim(),s=await this.detect(o,t);if(s){const r=s.dsl.compile(o,t);n.push({line:e+1,input:o,domain:s.domain,ok:r.ok,code:r.code,errors:r.errors})}else i.push({line:e+1,input:o,message:"No domain matched this input"})}return{statements:n,errors:i}}async validate(e,t="en"){const r=await this.detect(e,t);if(!r)return{valid:!1,errors:["No domain matched this input"]};return{...r.dsl.validate(e,t),domain:r.domain}}getPriorityIndex(e){const t=this.priority.indexOf(e);return-1===t?this.priority.length:t}},DEFAULT_OPERATORS:Mp,DEFAULT_PUNCTUATION:Wp,DEFAULT_REFERENCES:Tc,DomainAwareScanner:yp,DomainRegistry:class{constructor(){this.descriptors=new Map,this.dslCache=new Map,this.rendererCache=new Map}register(e){if(this.descriptors.has(e.name))throw new Error(`Domain already registered: ${e.name}`);this.descriptors.set(e.name,e)}setSchemas(e,t){const r=this.descriptors.get(e);if(!r)throw new Error(`Domain not registered: ${e}`);this.descriptors.set(e,{...r,schemas:t})}getDomainNames(){return Array.from(this.descriptors.keys())}getDescriptor(e){return this.descriptors.get(e)}getToolDefinitions(){const e=[];for(const t of this.descriptors.values())e.push(...ip(t));return e}canHandle(e){const t=ap(e);return!!t&&this.descriptors.has(t.domain)}async handleToolCall(e,t){const r=ap(e);if(!r)return null;const n=this.descriptors.get(r.domain);if(!n)return null;try{const e=await this.getDSL(n);switch(r.operation){case"parse":return await this.handleParse(n,e,t);case"compile":return await this.handleCompile(n,e,t);case"validate":return await this.handleValidate(n,e,t);case"translate":return await this.handleTranslate(n,e,t);default:return sp({error:`Unknown operation: ${r.operation}`},!0)}}catch(e){const t=e instanceof Error?e.message:String(e);return sp({error:`${n.name} tool error: ${t}`},!0)}}async getDSLForDomain(e){const t=this.descriptors.get(e);return t?this.getDSL(t):null}generatePrompt(e,t){const r=this.descriptors.get(e);return r?.schemas&&0!==r.schemas.length?Mu({domain:e,description:r.description,schemas:r.schemas,...t}):null}generateTrainingData(e,t){const r=this.descriptors.get(e);return r?.schemas&&0!==r.schemas.length?Ju(r.schemas,{domain:e,...t}):null}buildFeedback(e,t,r,n){const i=this.descriptors.get(e);if(!i?.schemas||0===i.schemas.length)return null;const a=this.createSchemaLookup(i.schemas);let o;try{if("explicit"===r){o=jc(t,{schemaLookup:a}).action}}catch{}return tp(t,r,n,a,o)}getSchemas(e){const t=this.descriptors.get(e);return t?.schemas?t.schemas:null}createSchemaLookup(e){const t=new Map;for(const r of e)t.set(r.action,r);return{getSchema:e=>t.get(e)}}async getDSL(e){const t=this.dslCache.get(e.name);if(t)return t;const r=await e.getDSL();return this.dslCache.set(e.name,r),r}async getRenderer(e){if(!e.getRenderer)return null;const t=this.rendererCache.get(e.name);if(t)return t;const r=await e.getRenderer();return this.rendererCache.set(e.name,r),r}async handleParse(e,t,r){const n=op(r,e.inputLabel);if(!n)return lp(e.inputLabel);const i=op(r,"language","en"),a=t.parse(n,i),o={};for(const[e,t]of a.roles)o[e]=t;return sp({action:a.action,roles:o,language:i,[e.inputLabel]:n})}async handleCompile(e,t,r){const n=op(r,e.inputLabel);if(!n)return lp(e.inputLabel);const i=op(r,"language","en"),a=t.compile(n,i);return sp({ok:a.ok,code:a.code,errors:a.errors,language:i,input:n})}async handleValidate(e,t,r){const n=op(r,e.inputLabel);if(!n)return lp(e.inputLabel);const i=op(r,"language","en"),a=t.validate(n,i);return sp({valid:a.valid,errors:a.errors,language:i,[e.inputLabel]:n})}async handleTranslate(e,t,r){const n=op(r,e.inputLabel);if(!n)return lp(e.inputLabel);const i=op(r,"from");if(!i)return lp("from");const a=op(r,"to");if(!a)return lp("to");const o=t.parse(n,i),s=t.compile(n,i);let l=null;const c=await this.getRenderer(e);if(c)try{l="function"==typeof c?c(o,a):c.render(o,a)}catch{}const u={};for(const[e,t]of o.roles)u[e]=t;return sp({input:{[e.inputLabel]:n,language:i},...null!=l&&{rendered:{text:l,language:a}},semantic:{action:o.action,roles:u},...s.ok&&null!=s.code&&{compiled:s.code}})}},GrammarTransformer:pu,IdentifierExtractor:yu,InMemoryDictionary:mu,InMemoryProfileProvider:du,LatinExtendedIdentifierExtractor:class{constructor(){this.name="latin-extended-identifier"}canExtract(e,t){return/\p{L}/u.test(e[t])}extract(e,t){let r=t;for(;r<e.length&&/[\p{L}\p{N}_-]/u.test(e[r]);)r++;return r===t?null:{value:e.slice(t,r),length:r-t}}},NullDictionary:class{lookup(e,t){return e}translate(e,t){return e}getAllTranslations(e,t){return{en:e}}},NullProfileProvider:class{getProfile(e){}getSupportedLanguages(){return[]}hasLanguage(e){return!1}},NumberExtractor:hu,OperatorExtractor:$p,PatternMatcher:ru,PatternTracker:class{constructor(e=1e3){this.events=[],this.maxEvents=e}record(e){this.events.push(e),this.events.length>this.maxEvents&&(this.events=this.events.slice(this.events.length-this.maxEvents))}getHitRateByCommand(){return this.computeHitRate(e=>e.action)}getHitRateByLanguage(){return this.computeHitRate(e=>e.language)}getTopFailures(e=10){const t=new Map;for(const e of this.events)if("rejected"===e.outcome&&e.diagnosticCodes)for(const r of e.diagnosticCodes){const n=t.get(r)||{count:0,actions:new Set};n.count++,n.actions.add(e.action),t.set(r,n)}return Array.from(t.entries()).map(([e,{count:t,actions:r}])=>({code:e,count:t,actions:Array.from(r)})).sort((e,t)=>t.count-e.count).slice(0,e)}getSummary(){const e={};for(const t of this.events)e[t.outcome]=(e[t.outcome]||0)+1;return{totalEvents:this.events.length,byOutcome:e,byCommand:this.getHitRateByCommand(),byLanguage:this.getHitRateByLanguage(),topFailures:this.getTopFailures()}}exportJSONL(){return this.events.map(e=>JSON.stringify(e)).join("\n")}get size(){return this.events.length}clear(){this.events=[]}computeHitRate(e){const t=new Map;for(const r of this.events){const n=e(r),i=t.get(n)||{attempts:0,successes:0};i.attempts++,"accepted"===r.outcome&&i.successes++,t.set(n,i)}const r={};for(const[e,{attempts:n,successes:i}]of t)r[e]={attempts:n,successes:i,rate:n>0?i/n:0};return r}},PunctuationExtractor:_p,StringLiteralExtractor:fu,TokenStreamImpl:bp,UnicodeIdentifierExtractor:gu,WhitespaceExtractor:class{constructor(){this.name="whitespace"}canExtract(e,t){return/\s/.test(e[t])}extract(e,t){let r=0;for(;t+r<e.length&&/\s/.test(e[t+r]);)r++;return r>0?{value:e.substring(t,t+r),length:r}:null}},accumulateBlocks:function(e,t){return"flat"===t.nesting?function(e,t){const r=[],n=[];let i=null;const a=()=>{i&&(r.push({type:i.type,...null!=i.name&&{name:i.name},statements:i.stmts,children:[],line:i.line,indent:i.indent}),i=null)};for(const r of e)if(r.category&&t.blockTypes.includes(r.category)){a();const e=t.extractName?.(r.source,r.category);i={type:r.category,...null!=e&&{name:e},stmts:[r],line:r.line,indent:r.indent}}else i?i.stmts.push(r):n.push(r);return a(),{blocks:r,orphans:n}}(e,t):function(e,t){const r=[],n=[],i=[],a=e=>{for(;i.length>0;){const t=i[i.length-1];if(!(t.indent>=e))break;{i.pop();const e={type:t.type,...null!=t.name&&{name:t.name},statements:t.stmts,children:t.children,line:t.line,indent:t.indent};i.length>0?i[i.length-1].children.push(e):r.push(e)}}};for(const r of e)if(r.category&&t.blockTypes.includes(r.category)){a(r.indent);const e=t.extractName?.(r.source,r.category);i.push({type:r.category,...null!=e&&{name:e},stmts:[r],children:[],line:r.line,indent:r.indent})}else i.length>0?i[i.length-1].stmts.push(r):n.push(r);return a(-1),{blocks:r,orphans:n}}(e,t)},buildDisambiguation:function(e,t){const r=[...t].sort((e,t)=>t.confidence-e.confidence),n=r.map((e,t)=>({action:e.action,confidence:e.confidence,explicit:_c(e.node),description:e.description||`${e.action} (option ${String.fromCharCode(97+t)})`})),i=n.map((e,t)=>` (${String.fromCharCode(97+t)}) ${e.explicit} — ${e.description} (conf: ${e.confidence.toFixed(2)})`);return{input:e,candidates:n,question:[`Your input parsed with confidence ${r[0]?.confidence.toFixed(2)??"?"}.`,...i,"Which did you mean?"].join("\n")}},buildFeedback:tp,buildPhrase:vp,buildTablesFromProfiles:kp,combineClassifiers:function(...e){return t=>e.some(e=>e(t))},convertValue:Su,createAsyncNode:zc,createCommandNode:yc,createCompoundNode:kc,createConditionalNode:vc,createDiagnosticCollector:function(){const e=[];function t(t,r,n){const i={message:r,severity:t,...null!=n?.code&&{code:n.code},...null!=n?.line&&{line:n.line},...null!=n?.column&&{column:n.column},...null!=n?.source&&{source:n.source},...null!=n?.suggestions&&n.suggestions.length>0&&{suggestions:n.suggestions}};e.push(i)}return{error(e,r,n){"string"==typeof r?t("error",r,{...n,code:e}):t("error",e,r)},warning(e,r){t("warning",e,r)},info(e,r){t("info",e,r)},add(t){e.push(t)},hasErrors:()=>e.some(e=>"error"===e.severity),getDiagnostics:()=>e,toResult(){let t=0,r=0,n=0;for(const i of e)"error"===i.severity?t++:"warning"===i.severity?r++:n++;return{ok:0===t,diagnostics:e,summary:{errors:t,warnings:r,infos:n}}}}},createEventHandlerNode:gc,createExpression:fc,createFlag:hc,createLatinCharClassifiers:function(e){const t=t=>e.test(t);return{isLetter:t,isIdentifierChar:e=>t(e)||/[0-9_-]/.test(e)}},createLiteral:uc,createLoopNode:wc,createMatchNode:xc,createMultiStatementParser:function(e,t){return new Jp(e,t)},createMultilingualDSL:function(e){const t=e.dictionary??function(e){const t={};for(const r of e.languages){const e={};for(const[t,n]of Object.entries(r.patternProfile.keywords))e[t]=n.primary;t[r.code]=e}return new mu(t)}(e),r=e.profileProvider??function(e){const t={};for(const r of e.languages)r.grammarProfile&&(t[r.code]=r.grammarProfile);return new du(t)}(e),n=new pu({dictionary:t,profileProvider:r}),i=new Iu(e);return new Ru(e,i,n)},createPosition:zp,createPropertyPath:dc,createReference:mc,createSchemaRenderer:function(e,t){const{keywords:r,markers:n}=kp(e,t),{sovLanguages:i}=wp(t),a=new Map;for(const t of e)a.set(t.action,t);return{render(e,t){const o=a.get(e.action);if(!o)return e.action;const s=gp(r,e.action,t),l=i.has(t),c=[];for(const r of o.roles){const i=Sc(e,r.role);if(!i&&!r.required)continue;const a=r.markerOverride?.[t]??n[r.role]?.[t]??void 0;c.push({...null!=a&&{marker:a},value:i||"",role:r})}const u=[];if(l){for(const e of c)e.value&&u.push(e.value),e.marker&&u.push(e.marker);u.push(s)}else{u.push(s);for(const e of c)e.marker&&u.push(e.marker),e.value&&u.push(e.value)}return vp(...u)}}},createSelector:pc,createSimpleTokenizer:function(e){const{language:t,direction:r="ltr",keywords:n,keywordExtras:i,keywordProfile:a,includeOperators:o=!1,caseInsensitive:s=!0,customExtractors:l}=e,c=new Set(s?n.map(e=>e.toLowerCase()):n);return new class extends Hp{constructor(){super(),this.language=t,this.direction=r,l&&this.registerExtractors(l),this.registerExtractors(qp()),a&&this.initializeKeywordsFromProfile(a,i)}classifyToken(e){const t=s?e.toLowerCase():e;return c.has(t)||this.isKeyword(e)?"keyword":/^\d/.test(e)||/^['"]/.test(e)?"literal":o&&Dp.has(e)?"operator":"identifier"}}},createToken:xp,createTokenizerContext:ku,createTryNode:bc,createUnicodeRangeClassifier:Vp,defineCommand:function(e){return{description:e.description||`${e.action} command`,category:e.category||"general",primaryRole:e.primaryRole||e.roles[0]?.role||"patient",...e,action:e.action,roles:e.roles}},defineRole:function(e){return{description:e.description||`${e.role} role`,...e,role:e.role,required:e.required,expectedTypes:e.expectedTypes}},detectWordOrders:wp,extractCssSelector:jp,extractNumber:Rp,extractRoleValue:Sc,extractStringLiteral:Np,extractUrl:Ip,extractValue:Ec,filterBySeverity:function(e,t){return e.filter(e=>e.severity===t)},fromEnvelopeJSON:function(e){return{lseVersion:e.lseVersion,...e.features&&e.features.length>0?{features:e.features}:{},nodes:e.nodes.map(Hc)}},fromError:function(e,t){return{message:e instanceof Error?e.message:String(e),severity:"error",...null!=t?.code&&{code:t.code},...null!=t?.line&&{line:t.line},...null!=t?.column&&{column:t.column},...null!=t?.source&&{source:t.source},...null!=t?.suggestions&&t.suggestions.length>0&&{suggestions:t.suggestions}}},fromInterchangeNode:xu,fromProtocolJSON:Hc,generateExamples:$u,generatePattern:au,generatePatternVariants:function(e,t,r=iu){const n=[];return n.push(au(e,t,r)),n},generatePrompt:Mu,generateProtocolReference:function(){const e=Wu(),t=_u();return`# LokaScript Explicit Syntax (LSE) Quick Reference\n\n${e.content}\n\n${t.content}`},getAllPossessiveKeywords:function(e){return e?.possessive?.keywords??{}},getDefaultExtractors:qp,getPossessiveReference:eu,getRoleSpec:function(e,t){return e.roles.find(e=>e.role===t)},getRoleValue:function(e,t){return e.roles.get(t)},insertMarkers:cu,isAsciiIdentifierChar:Lp,isAsciiLetter:Ap,isBuiltInReference:function(e){return new Set(["me","you","it","result","event","target","body"]).has(e.toLowerCase())},isCSSPropertyRef:function(e){return e.startsWith("*")},isCSSSelector:function(e){return e.startsWith(".")||e.startsWith("#")||e.startsWith("<")},isClassName:function(e){return e.startsWith(".")},isCompoundSyntax:function(e){const{segments:t}=Oc(e.trim());return t.length>1},isContextAwareExtractor:vu,isDigit:Cp,isDocumentSyntax:function(e){const t=e.trim();return!!t.includes("\n")||(!!Rc.test(t)||!!(t.startsWith("//")||t.startsWith("#")&&!t.startsWith("#!")))},isEnvelope:function(e){return"object"==typeof e&&null!==e&&"lseVersion"in e&&"nodes"in e&&Array.isArray(e.nodes)},isExplicitSyntax:Pc,isIdSelector:function(e){return e.startsWith("#")},isNumericValue:function(e){if(e.match(/^(\d+(?:\.\d+)?)(ms|s|m|h)?$/))return!0;const t=parseFloat(e);return!isNaN(t)&&isFinite(t)},isPossessiveKeyword:function(e,t){return void 0!==e?.possessive?.keywords?.[t]},isPossessiveMarker:Pp,isPropertyName:function(e){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)},isQuote:Tp,isSelectorStart:Sp,isTypeCompatible:Qc,isUrlStart:Op,isValidReference:Cc,isVariableRef:function(e){return e.startsWith(":")},isWhitespace:Ep,joinTokens:uu,jsonToSemanticNode:function(e){const t=new Map;if(e.roles)for(const[r,n]of Object.entries(e.roles))t.set(r,bu(n));if(e.trigger){t.set("event",uc(e.trigger.event,"string"));const r=new Map(t);r.delete("event");return gc("on",t,[yc(e.action,r)],{sourceLanguage:"json"},e.trigger.modifiers??{})}return yc(e.action,t,{sourceLanguage:"json"})},lookupKeyword:gp,lookupMarker:function(e,t,r){return e[t]?.[r]??t},matchBest:function(e,t){return nu.matchBest(e,t)},matchPattern:function(e,t){return nu.matchPattern(e,t)},needsDisambiguation:function(e,t=.5,r=.7){return e>=t&&e<r},noChange:Fp,normalized:Up,parseCompound:Ic,parseDocument:function(e,t){const r=e.split("\n");let n="1.0";const i=[];let a=0;for(let e=0;e<r.length;e++){const t=r[e].trim();if(!t)continue;const i=t.match(Rc);i&&(n=i[1],a=e+1);break}for(let e=a;e<r.length;e++){const n=r[e].trim();n&&(n.startsWith("//")||n.startsWith("#")&&!n.startsWith("#!")||i.push(Ic(n,t)))}return{lseVersion:n,nodes:i}},parseExplicit:jc,parseJSONL:function(e){return e.split("\n").filter(e=>e.trim().length>0).map(e=>JSON.parse(e))},patternMatcher:nu,registryToAOTBackends:async function(e){const t=[];for(const r of e.getDomainNames()){const n=e.getDescriptor(r);if(!n?.scanConfig)continue;const i=await e.getDSLForDomain(r);if(!i)continue;const a={domain:r,attributes:[...n.scanConfig.attributes],...n.scanConfig.scriptTypes?{scriptTypes:[...n.scanConfig.scriptTypes]}:{},defaultLanguage:n.scanConfig.defaultLanguage??"en"};t.push({domain:r,dsl:i,codeGenerator:{generate:e=>JSON.stringify({action:e.action,roles:Object.fromEntries(e.roles)})},scanConfig:a})}return t},renderDocument:function(e){const t=[];e.lseVersion&&"1.0"!==e.lseVersion&&t.push(`#!lse ${e.lseVersion}`);for(const r of e.nodes)t.push(_c(r));return t.join("\n")},renderExplicit:_c,renderExpr:Tu,reorderRoles:lu,semanticNodeToJSON:function e(t){if("compound"===t.kind){return t.statements.length>0?e(t.statements[0]):{action:"compound",roles:{}}}if("event-handler"===t.kind){const e=t,r=e.body?.[0]?.action??t.action,n={};if(e.body?.[0])for(const[t,r]of e.body[0].roles)n[t]=zu(r);const i=t.roles.get("event"),a=i?"value"in i?String(i.value):"raw"in i?i.raw:"unknown":"unknown",o={action:"on"===r?e.body?.[0]?.action??"on":r,roles:n,trigger:{event:a}};return e.eventModifiers&&Object.keys(e.eventModifiers).length>0&&(o.trigger.modifiers=e.eventModifiers),o}const r={};for(const[e,n]of t.roles)r[e]=zu(n);return{action:t.action,roles:r}},semanticNodeToRuntimeAST:Nu,semanticValueToAST:Ou,synthesizeFromSchemas:Ju,toEnvelopeJSON:function(e){const t={lseVersion:e.lseVersion,nodes:e.nodes.map(Vc)};return e.features&&e.features.length>0&&(t.features=[...e.features]),t},toJSONL:function(e){return e.map(e=>JSON.stringify(Gp(e))).join("\n")},toJSONLRow:Gp,toProtocolJSON:Vc,validateProtocolJSON:function(e){const t=[];if("object"!=typeof e||null===e)return[{severity:"error",code:"INVALID_ROOT",message:"Root must be a JSON object"}];const r=e,n="kind"in r?String(r.kind):"command";if("kind"in r&&!Kc.has(n)&&t.push({severity:"error",code:"INVALID_KIND",message:`Invalid kind "${r.kind}". Must be one of: command, event-handler, compound`}),"action"in r?"string"==typeof r.action&&0!==r.action.length||t.push({severity:"error",code:"INVALID_ACTION",message:"action must be a non-empty string"}):t.push({severity:"error",code:"MISSING_ACTION",message:"Missing required field: action"}),"roles"in r||"compound"===n){if("roles"in r&&("object"!=typeof r.roles||null===r.roles||Array.isArray(r.roles)))t.push({severity:"error",code:"INVALID_ROLES",message:"roles must be a plain object"});else if("roles"in r&&r.roles)for(const[e,n]of Object.entries(r.roles)){if("object"!=typeof n||null===n){t.push({severity:"error",code:"INVALID_ROLE_VALUE",message:`Role "${e}" value must be an object`});continue}const r=n;"type"in r&&Gc.has(String(r.type))||t.push({severity:"error",code:"INVALID_VALUE_TYPE",message:`Role "${e}" has invalid type "${r.type}"`}),"flag"===r.type&&("string"==typeof r.name||"value"in r||t.push({severity:"error",code:"MISSING_FLAG_NAME",message:`Flag role "${e}" missing required field: name (or value)`}),"boolean"==typeof r.enabled||"value"in r||t.push({severity:"error",code:"MISSING_FLAG_ENABLED",message:`Flag role "${e}" missing required field: enabled (or value)`})),"expression"!==r.type||"string"==typeof r.raw||"value"in r||t.push({severity:"error",code:"MISSING_EXPRESSION_RAW",message:`Expression role "${e}" missing required field: raw (or value)`})}}else t.push({severity:"error",code:"MISSING_ROLES",message:"Missing required field: roles"});if("trigger"in r&&r.trigger){const e=r.trigger;"object"!=typeof e||null===e?t.push({severity:"error",code:"INVALID_TRIGGER",message:"trigger must be an object"}):e.event&&"string"==typeof e.event||t.push({severity:"error",code:"INVALID_TRIGGER",message:"trigger.event is required and must be a non-empty string"})}if("event-handler"!==n||"trigger"in r||"body"in r&&Array.isArray(r.body)||t.push({severity:"error",code:"MISSING_BODY",message:"event-handler node requires a body array"}),"compound"===n&&("statements"in r&&Array.isArray(r.statements)||t.push({severity:"error",code:"MISSING_STATEMENTS",message:"compound node requires a statements array"}),"chainType"in r&&!Jc.has(String(r.chainType))&&t.push({severity:"error",code:"INVALID_CHAIN_TYPE",message:`Invalid chainType "${r.chainType}"`})),"diagnostics"in r&&!Array.isArray(r.diagnostics)&&t.push({severity:"error",code:"INVALID_DIAGNOSTICS",message:"diagnostics must be an array"}),"annotations"in r)if(Array.isArray(r.annotations))for(let e=0;e<r.annotations.length;e++){const n=r.annotations[e];n&&"object"==typeof n?"string"==typeof n.name&&0!==n.name.length||t.push({severity:"error",code:"MISSING_ANNOTATION_NAME",message:`annotations[${e}] missing required field: name`}):t.push({severity:"error",code:"INVALID_ANNOTATION_ENTRY",message:`annotations[${e}] must be an object`})}else t.push({severity:"error",code:"INVALID_ANNOTATIONS",message:"annotations must be an array"});if("asyncVariant"in r&&!Yc.has(String(r.asyncVariant))&&t.push({severity:"error",code:"INVALID_ASYNC_VARIANT",message:`Invalid asyncVariant "${r.asyncVariant}". Must be "all" or "race"`}),"arms"in r)if(Array.isArray(r.arms))for(let e=0;e<r.arms.length;e++){const n=r.arms[e];n&&"object"==typeof n?(n.pattern&&"object"==typeof n.pattern||t.push({severity:"error",code:"MISSING_ARM_PATTERN",message:`arms[${e}] missing required field: pattern`}),Array.isArray(n.body)||t.push({severity:"error",code:"MISSING_ARM_BODY",message:`arms[${e}] missing required field: body (array)`})):t.push({severity:"error",code:"INVALID_ARM_ENTRY",message:`arms[${e}] must be an object`})}else t.push({severity:"error",code:"INVALID_ARMS",message:"arms must be an array"});if("diagnostics"in r&&Array.isArray(r.diagnostics))for(let e=0;e<r.diagnostics.length;e++){const n=r.diagnostics[e];n&&"object"==typeof n?(Zc.has(String(n.level))||t.push({severity:"error",code:"INVALID_DIAGNOSTIC_LEVEL",message:`diagnostics[${e}].level must be "error", "warning", or "info"`}),"string"!=typeof n.message&&t.push({severity:"error",code:"MISSING_DIAGNOSTIC_MESSAGE",message:`diagnostics[${e}] missing required field: message`})):t.push({severity:"error",code:"INVALID_DIAGNOSTIC_ENTRY",message:`diagnostics[${e}] must be an object`})}return t},validateSemanticJSON:function(e){const t=[];if(!e.action||"string"!=typeof e.action)return t.push({severity:"error",code:"INVALID_ACTION",message:'Field "action" is required and must be a string.',suggestion:'Provide a command name like "toggle", "add", "set", etc.'}),t;if(e.roles&&"object"==typeof e.roles)for(const[r,n]of Object.entries(e.roles)){if(!n||"object"!=typeof n){t.push({severity:"error",code:"INVALID_ROLE_VALUE",message:`Role "${r}" must be an object with "type" and "value" fields.`,suggestion:'Use: { "type": "selector", "value": ".active" }'});continue}const e=n;wu.has(e.type)||t.push({severity:"error",code:"INVALID_VALUE_TYPE",message:`Role "${r}" has invalid type "${e.type}".`,suggestion:"Valid types: selector, literal, reference, expression, property-path."}),null==e.value&&t.push({severity:"error",code:"MISSING_VALUE",message:`Role "${r}" is missing the "value" field.`})}return e.trigger&&(e.trigger.event&&"string"==typeof e.trigger.event||t.push({severity:"error",code:"INVALID_TRIGGER",message:'Trigger "event" is required and must be a string.',suggestion:'Use an event name like "click", "mouseover", "keydown".'})),t},validateValueType:function(e,t){return!t||0===t.length||Qc(e.type,t)},withDefaultExtractors:function(e){return e.registerExtractors(qp()),e}}),rm=Object.defineProperty,nm=Object.getOwnPropertyNames,im=(e,t)=>function(){return e&&(t=(0,e[nm(e)[0]])(e=0)),t},am=(e,t)=>{for(var r in t)rm(e,r,{get:t[r],enumerable:!0})};function om(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:om(a,i))}return r}function sm(e,t){return om(e,t)}function lm(e){if(!e.extends)return e;const t=Zp.get(e.extends);if(!t)return e;return sm(lm(t),e)}function cm(e,t,r){Yp.set(e,t),Zp.set(e,r),Xp.delete(e)}function um(e,t){em.set(e,t),Xp.delete(e)}function pm(e){return e.split("-")[0]}function mm(e){return e.includes("-")}function dm(e){let t=Zp.get(e);return!t&&mm(e)&&(t=Zp.get(pm(e))),t?lm(t):void 0}function fm(){return Array.from(Yp.keys())}function hm(e){if(Yp.has(e)&&Zp.has(e))return!0;if(mm(e)){const t=pm(e);return Yp.has(t)&&Zp.has(t)}return!1}function ym(e,t){return function(e){let t=Yp.get(e);if(!t&&mm(e)){const r=pm(e);t=Yp.get(r)}if(!t){const t=Array.from(Yp.keys()).join(", ");throw new 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 gm(e){let t=Xp.get(e);if(!t&&mm(e)&&(t=Xp.get(pm(e))),t)return t;let r=em.get(e);if(!r&&mm(e)&&(r=em.get(pm(e))),r)return Xp.set(e,r),r;if(!Qp)throw new Error(`No patterns registered for language '${e}'. Either import the language module or set a pattern generator.`);const n=function(e){let t=Zp.get(e);if(!t&&mm(e)){const r=pm(e);t=Zp.get(r)}if(!t){const t=Array.from(Zp.keys()).join(", ");throw new Error(`Language profile '${e}' is not registered. Registered languages: ${t||"none"}. Import the language module first: import '@lokascript/semantic/languages/${e}';`)}return lm(t)}(e),i=Qp(n);return Xp.set(e,i),i}var vm,km=im({"src/registry.ts"(){Yp=new Map,Zp=new Map,Xp=new Map,Qp=null,em=new Map}}),wm={};am(wm,{arabicProfile:()=>vm});var bm,zm=im({"src/generators/profiles/arabic.ts"(){vm={code:"ar",name:"Arabic",nativeName:"العربية",regions:["priority"],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"},empty:{primary:"إفراغ",normalized:"empty"},open:{primary:"افتح",normalized:"open"},close:{primary:"أغلق",normalized:"close"},select:{primary:"ظلل",normalized:"select"},clear:{primary:"نظّف",normalized:"clear"},reset:{primary:"إعادة-ضبط",alternatives:["أعد-تعيين"],normalized:"reset"},breakpoint:{primary:"نقطة-توقف",normalized:"breakpoint"},go:{primary:"اذهب",normalized:"go"},scroll:{primary:"مرر",alternatives:["تمرير"],normalized:"scroll"},push:{primary:"ادفع",alternatives:["دفع"],normalized:"push"},replace:{primary:"استبدل_عنوان",alternatives:["أعد_تعيين_عنوان"],normalized:"replace"},process:{primary:"عالج",alternatives:["معالجة"],normalized:"process"},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"},connect:{primary:"اتصل",alternatives:["اتصال"],normalized:"connect"},stream:{primary:"تدفق",alternatives:["بث"],normalized:"stream"},live:{primary:"مباشر",alternatives:["حي"],normalized:"live"},socket:{primary:"مقبس",alternatives:["websocket"],normalized:"socket"}},tokenization:{prefixes:["ال","و","ف","ب","ك","ل"]},eventHandler:{eventMarker:{primary:"عند",alternatives:["في","لدى","عندما","حين","حينما","لمّا","لما"],position:"before"},temporalMarkers:["عندما","حين","لمّا"],negationMarker:{primary:"عدم",alternatives:["عدم"],position:"before"}}}}}),xm={};am(xm,{bengaliProfile:()=>bm});var Em,Sm=im({"src/generators/profiles/bengali.ts"(){bm={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"},empty:{primary:"খালি-করুন",normalized:"empty"},open:{primary:"খুলুন",normalized:"open"},close:{primary:"বন্ধ",normalized:"close"},select:{primary:"নির্বাচন",normalized:"select"},clear:{primary:"পরিষ্কার",normalized:"clear"},reset:{primary:"রিসেট",normalized:"reset"},breakpoint:{primary:"ব্রেকপয়েন্ট",normalized:"breakpoint"},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"},scroll:{primary:"স্ক্রোল",normalized:"scroll"},push:{primary:"পুশ",alternatives:["ঠেলুন"],normalized:"push"},replace:{primary:"প্রতিস্থাপন",normalized:"replace"},process:{primary:"প্রসেস",alternatives:["প্রক্রিয়া"],normalized:"process"},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"},connect:{primary:"কানেক্ট",alternatives:["সংযোগ","যুক্ত"],normalized:"connect"},stream:{primary:"স্ট্রিম",alternatives:["স্রোত","প্রবাহ"],normalized:"stream"},live:{primary:"লাইভ",alternatives:["সরাসরি","প্রত্যক্ষ"],normalized:"live"},socket:{primary:"সকেট",alternatives:["ওয়েবসকেট"],normalized:"socket"}},tokenization:{particles:["কে","তে","থেকে","র","এর","দিয়ে","জন্য","পর্যন্ত"],boundaryStrategy:"space"},eventHandler:{keyword:{primary:"তে",alternatives:["এ","যখন"],normalized:"on"},sourceMarker:{primary:"থেকে",position:"after"},eventMarker:{primary:"তে",alternatives:["এ"],position:"after"},temporalMarkers:["যখন","যখনই"]}}}}),Tm={};am(Tm,{germanProfile:()=>Em});var Cm,Am=im({"src/generators/profiles/german.ts"(){Em={code:"de",name:"German",nativeName:"Deutsch",regions:["western","priority"],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"},empty:{primary:"leeren",normalized:"empty"},open:{primary:"öffnen",alternatives:["oeffnen"],normalized:"open"},close:{primary:"schließen",alternatives:["schliessen"],normalized:"close"},select:{primary:"markieren",normalized:"select"},clear:{primary:"bereinigen",normalized:"clear"},reset:{primary:"zurücksetzen",alternatives:["zuruecksetzen"],normalized:"reset"},breakpoint:{primary:"haltepunkt",normalized:"breakpoint"},go:{primary:"gehen",alternatives:["navigieren"],normalized:"go"},scroll:{primary:"scrollen",normalized:"scroll"},push:{primary:"drücken",alternatives:["push"],normalized:"push"},replace:{primary:"ersetzen",normalized:"replace"},process:{primary:"verarbeiten",normalized:"process"},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"},connect:{primary:"verbinden",alternatives:["Verbindung"],normalized:"connect"},stream:{primary:"stream",alternatives:["Strom"],normalized:"stream"},live:{primary:"direkt",alternatives:["live","echtzeit"],normalized:"live"},socket:{primary:"socket",alternatives:["websocket"],normalized:"socket"}},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"]}}}}),Lm={};am(Lm,{englishProfile:()=>Cm});var jm,Pm=im({"src/generators/profiles/english.ts"(){Cm={code:"en",name:"English",nativeName:"English",regions:["western","priority"],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"},empty:{primary:"empty",normalized:"empty"},open:{primary:"open",normalized:"open"},close:{primary:"close",normalized:"close"},select:{primary:"select",normalized:"select"},clear:{primary:"clear",normalized:"clear"},reset:{primary:"reset",normalized:"reset"},breakpoint:{primary:"breakpoint",normalized:"breakpoint"},go:{primary:"go"},scroll:{primary:"scroll",normalized:"scroll"},push:{primary:"push",normalized:"push"},replace:{primary:"replace",normalized:"replace"},process:{primary:"process",normalized:"process"},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"},connect:{primary:"connect",normalized:"connect"},stream:{primary:"stream",normalized:"stream"},live:{primary:"live",normalized:"live"},socket:{primary:"socket",alternatives:["websocket"],normalized:"socket"}}}}}),Nm={};am(Nm,{spanishProfile:()=>jm});var Om,Im=im({"src/generators/profiles/spanish.ts"(){jm={code:"es",name:"Spanish",nativeName:"Español",regions:["western","priority"],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"},open:{primary:"abrir",normalized:"open"},close:{primary:"cerrar",normalized:"close"},select:{primary:"seleccionar",normalized:"select"},clear:{primary:"limpiar",normalized:"clear"},reset:{primary:"reiniciar",alternatives:["restablecer"],normalized:"reset"},breakpoint:{primary:"punto-interrupción",alternatives:["punto-interrupcion"],normalized:"breakpoint"},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:"desplazar",alternatives:["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"},push:{primary:"empujar",alternatives:["push"],normalized:"push"},replace:{primary:"reemplazar",alternatives:["sustituir"],normalized:"replace"},process:{primary:"procesar",normalized:"process"},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"},connect:{primary:"conectar",alternatives:["conectarse"],normalized:"connect"},stream:{primary:"transmitir",alternatives:["flujo"],normalized:"stream"},live:{primary:"en-vivo",alternatives:["vivo","directo"],normalized:"live"},socket:{primary:"socket",alternatives:["websocket"],normalized:"socket"}},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"]}}}}),Rm={};am(Rm,{frenchProfile:()=>Om});var Mm,$m=im({"src/generators/profiles/french.ts"(){Om={code:"fr",name:"French",nativeName:"Français",regions:["western","priority"],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"},empty:{primary:"vider",normalized:"empty"},open:{primary:"ouvrir",normalized:"open"},close:{primary:"fermer",normalized:"close"},select:{primary:"sélectionner",alternatives:["selectionner"],normalized:"select"},clear:{primary:"effacer",normalized:"clear"},reset:{primary:"réinitialiser",alternatives:["reinitialiser"],normalized:"reset"},breakpoint:{primary:"point-arrêt",alternatives:["point-arret"],normalized:"breakpoint"},go:{primary:"aller",alternatives:["naviguer"],normalized:"go"},scroll:{primary:"défiler",alternatives:["faire-défiler"],normalized:"scroll"},push:{primary:"pousser",normalized:"push"},replace:{primary:"remplacer",normalized:"replace"},process:{primary:"traiter",normalized:"process"},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"},connect:{primary:"connecter",alternatives:["connexion"],normalized:"connect"},stream:{primary:"flux",alternatives:["streaming"],normalized:"stream"},live:{primary:"en-direct",alternatives:["direct"],normalized:"live"},socket:{primary:"socket",alternatives:["websocket"],normalized:"socket"}},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"]}}}}),Wm={};am(Wm,{hebrewProfile:()=>Mm});var _m,qm=im({"src/generators/profiles/he.ts"(){Mm={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"},empty:{primary:"רוקן",normalized:"empty"},open:{primary:"פתח",normalized:"open"},close:{primary:"סגור",normalized:"close"},select:{primary:"סמן",normalized:"select"},clear:{primary:"נקה",normalized:"clear"},reset:{primary:"אפס",normalized:"reset"},breakpoint:{primary:"נקודת-עצירה",normalized:"breakpoint"},go:{primary:"לך",alternatives:["נווט"],normalized:"go"},scroll:{primary:"גלול",normalized:"scroll"},push:{primary:"דחוף",alternatives:["הוסף-להיסטוריה"],normalized:"push"},replace:{primary:"החלף_כתובת",alternatives:["שנה_כתובת"],normalized:"replace"},process:{primary:"עבד",alternatives:["עיבוד"],normalized:"process"},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"},connect:{primary:"התחבר",alternatives:["חבר","התחברות"],normalized:"connect"},stream:{primary:"הזרם",alternatives:["סטרים","שידור"],normalized:"stream"},live:{primary:"חי",alternatives:["בזמן-אמת","לייב"],normalized:"live"},socket:{primary:"שקע",alternatives:["סוקט","ווב-סוקט"],normalized:"socket"}},tokenization:{prefixes:["ה","ו","ב","כ","ל","מ","ש"]},eventHandler:{keyword:{primary:"ב",alternatives:["עם"],normalized:"on"},sourceMarker:{primary:"מ",alternatives:["מאת"],position:"before"},conditionalKeyword:{primary:"כאשר",alternatives:["כש","אם"]},eventMarker:{primary:"ב",alternatives:["כש","עם"],position:"before"},temporalMarkers:["כאשר","כש","עם"]}}}}),Vm={};am(Vm,{hindiProfile:()=>_m});var Dm,Bm=im({"src/generators/profiles/hindi.ts"(){_m={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"},empty:{primary:"खाली-करें",normalized:"empty"},open:{primary:"खोलें",normalized:"open"},close:{primary:"बंद-करें",normalized:"close"},select:{primary:"चिह्नित-करें",normalized:"select"},clear:{primary:"साफ़-करें",alternatives:["साफ-करें"],normalized:"clear"},reset:{primary:"रीसेट",normalized:"reset"},breakpoint:{primary:"ब्रेकप्वाइंट",normalized:"breakpoint"},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"},scroll:{primary:"स्क्रॉल",normalized:"scroll"},push:{primary:"धकेलें",alternatives:["पुश"],normalized:"push"},replace:{primary:"बदलें_यूआरएल",alternatives:["प्रतिस्थापित"],normalized:"replace"},process:{primary:"संसाधित",alternatives:["प्रसंस्कृत"],normalized:"process"},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"},connect:{primary:"कनेक्ट",alternatives:["संयोजित"],normalized:"connect"},stream:{primary:"स्ट्रीम",alternatives:["धारा","प्रवाह"],normalized:"stream"},live:{primary:"लाइव",alternatives:["सजीव","प्रत्यक्ष"],normalized:"live"},socket:{primary:"सॉकेट",alternatives:["वेबसॉकेट"],normalized:"socket"}},tokenization:{particles:["को","में","पर","से","का","की","के","तक","ने"],boundaryStrategy:"space"},eventHandler:{keyword:{primary:"पर",alternatives:[],normalized:"on"},sourceMarker:{primary:"से",position:"after"},eventMarker:{primary:"पर",alternatives:["में"],position:"after"},temporalMarkers:["जब","जब भी"]}}}}),Hm={};am(Hm,{indonesianProfile:()=>Dm});var Fm,Um=im({"src/generators/profiles/indonesian.ts"(){Dm={code:"id",name:"Indonesian",nativeName:"Bahasa Indonesia",regions:["priority"],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"},empty:{primary:"kosongkan",normalized:"empty"},open:{primary:"buka",normalized:"open"},close:{primary:"tutupkan",normalized:"close"},select:{primary:"tandai",normalized:"select"},clear:{primary:"bersihkan",normalized:"clear"},reset:{primary:"setel-ulang",alternatives:["reset"],normalized:"reset"},breakpoint:{primary:"titik-henti",normalized:"breakpoint"},go:{primary:"pergi",alternatives:["pindah","navigasi"],normalized:"go"},scroll:{primary:"gulir",alternatives:["gulung"],normalized:"scroll"},push:{primary:"dorong",alternatives:["push"],normalized:"push"},replace:{primary:"ganti_url",alternatives:["gantikan_url"],normalized:"replace"},process:{primary:"proses",normalized:"process"},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"},connect:{primary:"sambungkan",alternatives:["hubungkan","koneksi"],normalized:"connect"},stream:{primary:"alirkan",alternatives:["streaming"],normalized:"stream"},live:{primary:"langsung",alternatives:["live"],normalized:"live"},socket:{primary:"soket",alternatives:["socket","websocket"],normalized:"socket"}},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"]}}}}),Km={};am(Km,{italianProfile:()=>Fm});var Gm,Jm=im({"src/generators/profiles/italian.ts"(){Fm={code:"it",name:"Italian",nativeName:"Italiano",regions:["western"],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"},empty:{primary:"svuotare",normalized:"empty"},open:{primary:"aprire",normalized:"open"},close:{primary:"chiudere",normalized:"close"},select:{primary:"selezionare",normalized:"select"},clear:{primary:"cancellare",normalized:"clear"},reset:{primary:"reimpostare",normalized:"reset"},breakpoint:{primary:"punto-interruzione",normalized:"breakpoint"},go:{primary:"andare",alternatives:["navigare","vai"],normalized:"go"},scroll:{primary:"scorrere",alternatives:["scroll"],normalized:"scroll"},push:{primary:"spingere",alternatives:["push"],normalized:"push"},replace:{primary:"sostituire",normalized:"replace"},process:{primary:"elaborare",alternatives:["processare"],normalized:"process"},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"},connect:{primary:"connettere",alternatives:["connettersi","collegare"],normalized:"connect"},stream:{primary:"trasmettere",alternatives:["flusso","streaming"],normalized:"stream"},live:{primary:"in-diretta",alternatives:["diretta","dal-vivo"],normalized:"live"},socket:{primary:"socket",alternatives:["presa","websocket"],normalized:"socket"}},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"]}}}}),Ym={};am(Ym,{japaneseProfile:()=>Gm});var Zm,Xm=im({"src/generators/profiles/japanese.ts"(){Gm={code:"ja",name:"Japanese",nativeName:"日本語",regions:["east-asian","priority"],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"},empty:{primary:"空に",alternatives:["空にする"],normalized:"empty"},open:{primary:"開く",alternatives:["オープン"],normalized:"open"},close:{primary:"閉じる",alternatives:["クローズ"],normalized:"close"},select:{primary:"選ぶ",alternatives:["セレクト"],normalized:"select"},clear:{primary:"クリア",alternatives:["消去"],normalized:"clear"},reset:{primary:"リセット",alternatives:["再設定"],normalized:"reset"},breakpoint:{primary:"ブレークポイント",normalized:"breakpoint"},go:{primary:"移動",alternatives:["行く","ナビゲート"],normalized:"go"},scroll:{primary:"スクロール",normalized:"scroll"},push:{primary:"プッシュ",normalized:"push"},replace:{primary:"置換",alternatives:["置き換え"],normalized:"replace"},process:{primary:"処理",normalized:"process"},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"},connect:{primary:"接続",alternatives:["接続する"],normalized:"connect"},stream:{primary:"ストリーム",alternatives:["配信"],normalized:"stream"},live:{primary:"ライブ",alternatives:["実時間"],normalized:"live"},socket:{primary:"ソケット",alternatives:["websocket"],normalized:"socket"}},tokenization:{particles:["を","に","で","から","の","が","は","も","へ","と"],boundaryStrategy:"particle"},eventHandler:{eventMarker:{primary:"で",position:"after"},temporalMarkers:["時","とき"]}}}}),Qm={};am(Qm,{koreanProfile:()=>Zm});var ed,td=im({"src/generators/profiles/korean.ts"(){Zm={code:"ko",name:"Korean",nativeName:"한국어",regions:["east-asian","priority"],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"},empty:{primary:"비우기",normalized:"empty"},open:{primary:"열기",normalized:"open"},close:{primary:"닫기",normalized:"close"},select:{primary:"고르기",normalized:"select"},clear:{primary:"지우기",normalized:"clear"},reset:{primary:"재설정",normalized:"reset"},breakpoint:{primary:"중단점",normalized:"breakpoint"},click:{primary:"클릭",normalized:"click"},hover:{primary:"호버",normalized:"hover"},submit:{primary:"제출",normalized:"submit"},input:{primary:"입력",normalized:"input"},change:{primary:"변경",normalized:"change"},go:{primary:"이동",normalized:"go"},scroll:{primary:"스크롤",normalized:"scroll"},push:{primary:"푸시",normalized:"push"},replace:{primary:"교체",alternatives:["바꾸기"],normalized:"replace"},process:{primary:"처리",normalized:"process"},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"},connect:{primary:"연결",alternatives:["접속"],normalized:"connect"},stream:{primary:"스트림",alternatives:["스트리밍"],normalized:"stream"},live:{primary:"실시간",alternatives:["라이브"],normalized:"live"},socket:{primary:"소켓",alternatives:["websocket"],normalized:"socket"}},tokenization:{particles:["을","를","이","가","은","는","에","에서","으로","로","와","과","도"],boundaryStrategy:"space"},eventHandler:{eventMarker:{primary:"할 때",alternatives:["할때","때","에"],position:"after"},temporalMarkers:["할 때","할때","때"]}}}}),rd={};am(rd,{malayProfile:()=>ed});var nd,id=im({"src/generators/profiles/ms.ts"(){ed={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"},empty:{primary:"kosongkan",normalized:"empty"},open:{primary:"buka",normalized:"open"},close:{primary:"tutup",normalized:"close"},select:{primary:"tandai",normalized:"select"},clear:{primary:"bersihkan",normalized:"clear"},reset:{primary:"set-semula",alternatives:["reset"],normalized:"reset"},breakpoint:{primary:"titik-henti",normalized:"breakpoint"},go:{primary:"pergi",alternatives:["pindah"],normalized:"go"},scroll:{primary:"tatal",alternatives:["skrol"],normalized:"scroll"},push:{primary:"tolak",alternatives:["push"],normalized:"push"},replace:{primary:"ganti_url",alternatives:["gantikan_url"],normalized:"replace"},process:{primary:"proses",normalized:"process"},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"},connect:{primary:"sambung",alternatives:["hubungkan"],normalized:"connect"},stream:{primary:"strim",alternatives:["penstriman","aliran"],normalized:"stream"},live:{primary:"langsung",alternatives:["siaran-langsung"],normalized:"live"},socket:{primary:"soket",alternatives:["websocket"],normalized:"socket"}},eventHandler:{keyword:{primary:"apabila",alternatives:["ketika"],normalized:"on"},sourceMarker:{primary:"dari",position:"before"}}}}}),ad={};am(ad,{polishProfile:()=>nd});var od,sd=im({"src/generators/profiles/polish.ts"(){nd={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"},empty:{primary:"opróżnij",alternatives:["oproznij"],normalized:"empty"},open:{primary:"otwórz",alternatives:["otworz"],normalized:"open"},close:{primary:"zamknij",normalized:"close"},select:{primary:"zaznacz",normalized:"select"},clear:{primary:"zeruj",normalized:"clear"},reset:{primary:"zresetuj",normalized:"reset"},breakpoint:{primary:"punkt-przerwania",normalized:"breakpoint"},go:{primary:"idź",alternatives:["idz","przejdź","przejdz","nawiguj"],normalized:"go",form:"imperative"},scroll:{primary:"przewiń",alternatives:["przewin"],normalized:"scroll",form:"imperative"},push:{primary:"wepchnij",alternatives:["push"],normalized:"push",form:"imperative"},replace:{primary:"nadpisz",alternatives:["zamień_url","zamien_url"],normalized:"replace",form:"imperative"},process:{primary:"przetwórz",alternatives:["przetworz"],normalized:"process",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"},connect:{primary:"połącz",alternatives:["podłącz"],normalized:"connect"},stream:{primary:"transmituj",alternatives:["strumień","streamuj"],normalized:"stream"},live:{primary:"na-żywo",alternatives:["na-bieżąco","live"],normalized:"live"},socket:{primary:"gniazdo",alternatives:["socket","websocket"],normalized:"socket"}},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"]}}}}),ld={};am(ld,{portugueseProfile:()=>od});var cd,ud=im({"src/generators/profiles/portuguese.ts"(){od={code:"pt",name:"Portuguese",nativeName:"Português",regions:["western","priority"],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"},empty:{primary:"esvaziar",normalized:"empty"},open:{primary:"abrir",normalized:"open"},close:{primary:"fechar",normalized:"close"},select:{primary:"selecionar",normalized:"select"},clear:{primary:"limpar",normalized:"clear"},reset:{primary:"redefinir",alternatives:["resetar"],normalized:"reset"},breakpoint:{primary:"ponto-interrupção",alternatives:["ponto-interrupcao"],normalized:"breakpoint"},go:{primary:"ir",alternatives:["navegar"],normalized:"go"},scroll:{primary:"rolar",alternatives:["scroll"],normalized:"scroll"},push:{primary:"empurrar",alternatives:["push"],normalized:"push"},replace:{primary:"repor",alternatives:["recolocar"],normalized:"replace"},process:{primary:"processar",normalized:"process"},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"},connect:{primary:"conectar",alternatives:["conexão"],normalized:"connect"},stream:{primary:"transmitir",alternatives:["fluxo"],normalized:"stream"},live:{primary:"ao-vivo",alternatives:["vivo","direto"],normalized:"live"},socket:{primary:"soquete",alternatives:["websocket"],normalized:"socket"}},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"]}}}}),pd={};am(pd,{quechuaProfile:()=>cd});var md,dd=im({"src/generators/profiles/quechua.ts"(){cd={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"},empty:{primary:"ch'usaq",normalized:"empty"},open:{primary:"paskay",normalized:"open"},close:{primary:"wichqay",normalized:"close"},select:{primary:"marcay",normalized:"select"},clear:{primary:"pichay",normalized:"clear"},reset:{primary:"musuqchay",normalized:"reset"},breakpoint:{primary:"sayachinay",normalized:"breakpoint"},go:{primary:"riy",alternatives:["puriy"],normalized:"go"},scroll:{primary:"kunray",alternatives:[],normalized:"scroll"},push:{primary:"tanqay",normalized:"push"},replace:{primary:"tikray_url",alternatives:[],normalized:"replace"},process:{primary:"rurariy",normalized:"process"},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"},connect:{primary:"tinkiy",alternatives:["watay","hukllachay"],normalized:"connect"},stream:{primary:"phawachiy",alternatives:["sururichiy","ch'uquchiy"],normalized:"stream"},live:{primary:"kawsachkaq",alternatives:["kunan-pacha","kawsay"],normalized:"live"},socket:{primary:"tinkina",alternatives:["t'oqo","tinkiy-tinkina"],normalized:"socket"}},eventHandler:{keyword:{primary:"pi",alternatives:["kaqtin"]},sourceMarker:{primary:"manta",position:"after"},eventMarker:{primary:"pi",alternatives:["kaqtin","kaqpi"],position:"after"}}}}}),fd={};am(fd,{russianProfile:()=>md});var hd,yd=im({"src/generators/profiles/russian.ts"(){md={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"},empty:{primary:"опустошить",normalized:"empty"},open:{primary:"открыть",normalized:"open"},close:{primary:"закрыть",normalized:"close"},select:{primary:"выделить",normalized:"select"},clear:{primary:"очистить",normalized:"clear"},reset:{primary:"сбросить",normalized:"reset"},breakpoint:{primary:"точка-останова",normalized:"breakpoint"},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"},scroll:{primary:"прокрутить",alternatives:["прокрути"],normalized:"scroll",form:"infinitive"},push:{primary:"втолкнуть",alternatives:["толкнуть"],normalized:"push",form:"infinitive"},replace:{primary:"заменить",alternatives:["замени"],normalized:"replace",form:"infinitive"},process:{primary:"обработать",alternatives:["обработай"],normalized:"process",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"},connect:{primary:"подключить",alternatives:["соединить","подключиться"],normalized:"connect"},stream:{primary:"транслировать",alternatives:["поток","стрим"],normalized:"stream"},live:{primary:"в-прямом-эфире",alternatives:["прямой-эфир","вживую"],normalized:"live"},socket:{primary:"сокет",alternatives:["гнездо","websocket"],normalized:"socket"}},eventHandler:{keyword:{primary:"при",normalized:"on"},sourceMarker:{primary:"на",alternatives:["в","при"],position:"before"},eventMarker:{primary:"при",position:"before"},temporalMarkers:["когда","если"]}}}}),gd={};am(gd,{swahiliProfile:()=>hd});var vd,kd=im({"src/generators/profiles/swahili.ts"(){hd={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"},empty:{primary:"toa-kila-kitu",alternatives:["mwaga"],normalized:"empty"},open:{primary:"fungua",normalized:"open"},close:{primary:"funga",normalized:"close"},select:{primary:"alama",normalized:"select"},clear:{primary:"safisha",normalized:"clear"},reset:{primary:"anzisha-upya",normalized:"reset"},breakpoint:{primary:"nukta-simama",normalized:"breakpoint"},go:{primary:"nenda",alternatives:["enda","elekea"],normalized:"go"},scroll:{primary:"sogeza",alternatives:["skroli"],normalized:"scroll"},push:{primary:"sukuma",alternatives:["push"],normalized:"push"},replace:{primary:"badilisha_url",alternatives:["badili_url"],normalized:"replace"},process:{primary:"shughulikia",alternatives:["changanua"],normalized:"process"},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"},connect:{primary:"unganisha",alternatives:["unga","ungana"],normalized:"connect"},stream:{primary:"tiririsha",alternatives:["mtiririko","strimu"],normalized:"stream"},live:{primary:"moja-kwa-moja",alternatives:["mubashara","hai"],normalized:"live"},socket:{primary:"soketi",alternatives:["tundu","soketi-wavuti"],normalized:"socket"}},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"}}}}}),wd={};am(wd,{thaiProfile:()=>vd});var bd,zd=im({"src/generators/profiles/thai.ts"(){vd={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"},empty:{primary:"ล้าง",alternatives:["ทำให้ว่าง"],normalized:"empty"},open:{primary:"เปิด",normalized:"open"},close:{primary:"ปิด",normalized:"close"},select:{primary:"ทำเครื่องหมาย",normalized:"select"},clear:{primary:"เคลียร์",normalized:"clear"},reset:{primary:"รีเซ็ต",normalized:"reset"},breakpoint:{primary:"จุดพัก",normalized:"breakpoint"},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"},scroll:{primary:"เลื่อน",normalized:"scroll"},push:{primary:"ดัน",alternatives:["ผลัก"],normalized:"push"},replace:{primary:"แทนที่",alternatives:["เปลี่ยน-url"],normalized:"replace"},process:{primary:"ประมวลผล",alternatives:["จัดการ"],normalized:"process"},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"},connect:{primary:"เชื่อมต่อ",alternatives:["เชื่อม"],normalized:"connect"},stream:{primary:"สตรีม",alternatives:["สตรีมมิ่ง","กระแส"],normalized:"stream"},live:{primary:"ไลฟ์",alternatives:["สด","ถ่ายทอดสด"],normalized:"live"},socket:{primary:"ซ็อกเก็ต",alternatives:["websocket","เว็บซ็อกเก็ต"],normalized:"socket"}},tokenization:{boundaryStrategy:"character"},eventHandler:{keyword:{primary:"เมื่อ",alternatives:["ตอน"],normalized:"on"},sourceMarker:{primary:"จาก",position:"before"},eventMarker:{primary:"เมื่อ",alternatives:["ตอน"],position:"before"},temporalMarkers:["เมื่อ","ตอน"]}}}}),xd={};am(xd,{tagalogProfile:()=>bd});var Ed,Sd=im({"src/generators/profiles/tl.ts"(){bd={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"},empty:{primary:"walang-laman",alternatives:["alisin-laman"],normalized:"empty"},open:{primary:"buksan",normalized:"open"},close:{primary:"isara",normalized:"close"},select:{primary:"piliin",normalized:"select"},clear:{primary:"burahin",normalized:"clear"},reset:{primary:"i-reset",normalized:"reset"},breakpoint:{primary:"breakpoint",normalized:"breakpoint"},go:{primary:"pumunta",alternatives:["punta"],normalized:"go"},scroll:{primary:"iscroll",alternatives:["mag_scroll"],normalized:"scroll"},push:{primary:"itulak",alternatives:["ipush"],normalized:"push"},replace:{primary:"palitan_url",alternatives:["ireplace"],normalized:"replace"},process:{primary:"iproseso",alternatives:["proseso"],normalized:"process"},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"},connect:{primary:"ikonekta",alternatives:["kumonekta","connect"],normalized:"connect"},stream:{primary:"i-stream",alternatives:["stream","agos"],normalized:"stream"},live:{primary:"live",alternatives:["tuwiran","direkta"],normalized:"live"},socket:{primary:"socket",alternatives:["websocket"],normalized:"socket"}},eventHandler:{keyword:{primary:"kapag",normalized:"on"},sourceMarker:{primary:"mula_sa",alternatives:["galing_sa"],position:"before"},eventMarker:{primary:"kapag",position:"before"}}}}}),Td={};am(Td,{turkishProfile:()=>Ed});var Cd,Ad=im({"src/generators/profiles/turkish.ts"(){Ed={code:"tr",name:"Turkish",nativeName:"Türkçe",regions:["priority"],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"},empty:{primary:"boşalt",alternatives:["bosalt"],normalized:"empty"},open:{primary:"aç",alternatives:["ac"],normalized:"open"},close:{primary:"kapat",normalized:"close"},select:{primary:"vurgula",normalized:"select"},clear:{primary:"temizle",normalized:"clear"},reset:{primary:"sıfırla",alternatives:["sifirla"],normalized:"reset"},breakpoint:{primary:"kesme-noktası",alternatives:["kesme-noktasi"],normalized:"breakpoint"},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"},scroll:{primary:"kaydır",alternatives:["kaydir"],normalized:"scroll"},push:{primary:"itele",alternatives:["push"],normalized:"push"},replace:{primary:"değiştir_url",alternatives:["degistir_url"],normalized:"replace"},process:{primary:"işle",alternatives:["isle"],normalized:"process"},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"},connect:{primary:"bağlan",alternatives:["bağla","bağlantı"],normalized:"connect"},stream:{primary:"yayınla",alternatives:["akıt","akış"],normalized:"stream"},live:{primary:"canlı",alternatives:["gerçek-zamanlı"],normalized:"live"},socket:{primary:"soket",alternatives:["websocket"],normalized:"socket"}},eventHandler:{eventMarker:{primary:"da",alternatives:["de","ta","te"],position:"after"},temporalMarkers:["dığında","diğinde"]}}}}),Ld={};am(Ld,{ukrainianProfile:()=>Cd});var jd,Pd=im({"src/generators/profiles/ukrainian.ts"(){Cd={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"},empty:{primary:"спорожнити",normalized:"empty"},open:{primary:"відкрити",normalized:"open"},close:{primary:"закрити",normalized:"close"},select:{primary:"виділити",normalized:"select"},clear:{primary:"очистити",normalized:"clear"},reset:{primary:"скинути",normalized:"reset"},breakpoint:{primary:"точка-зупинки",normalized:"breakpoint"},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"},scroll:{primary:"прокрутити",alternatives:["прокрути"],normalized:"scroll",form:"infinitive"},push:{primary:"штовхнути",alternatives:["заштовхнути"],normalized:"push",form:"infinitive"},replace:{primary:"замінити",alternatives:["заміни"],normalized:"replace",form:"infinitive"},process:{primary:"обробити",alternatives:["обробляти"],normalized:"process",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"},connect:{primary:"підключити",alternatives:["зʼєднати","підключитися"],normalized:"connect"},stream:{primary:"транслювати",alternatives:["потік","стрім"],normalized:"stream"},live:{primary:"наживо",alternatives:["у-прямому-ефірі","в-режимі-реального-часу"],normalized:"live"},socket:{primary:"сокет",alternatives:["гніздо","websocket"],normalized:"socket"}},eventHandler:{keyword:{primary:"при",normalized:"on"},sourceMarker:{primary:"на",alternatives:["в","при"],position:"before"},eventMarker:{primary:"при",position:"before"},temporalMarkers:["коли","якщо"]}}}}),Nd={};am(Nd,{vietnameseProfile:()=>jd});var Od,Id=im({"src/generators/profiles/vietnamese.ts"(){jd={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"},empty:{primary:"làm-rỗng",normalized:"empty"},open:{primary:"mở",normalized:"open"},close:{primary:"đóng",normalized:"close"},select:{primary:"đánh-dấu",normalized:"select"},clear:{primary:"tẩy",normalized:"clear"},reset:{primary:"đặt-lại",normalized:"reset"},breakpoint:{primary:"điểm-dừng",normalized:"breakpoint"},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"},scroll:{primary:"cuộn",normalized:"scroll"},push:{primary:"đẩy",alternatives:["push"],normalized:"push"},replace:{primary:"thay_thế",alternatives:["thay_the"],normalized:"replace"},process:{primary:"xử_lý",alternatives:["xu_ly"],normalized:"process"},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"},connect:{primary:"kết-nối",alternatives:["kết-nối-tới"],normalized:"connect"},stream:{primary:"truyền-phát",alternatives:["phát","luồng"],normalized:"stream"},live:{primary:"trực-tiếp",alternatives:["phát-trực-tiếp"],normalized:"live"},socket:{primary:"socket",alternatives:["ổ-cắm","websocket"],normalized:"socket"}},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"]}}}}),Rd={};am(Rd,{chineseProfile:()=>Od});var Md,$d,Wd,_d=im({"src/generators/profiles/chinese.ts"(){Od={code:"zh",name:"Chinese",nativeName:"中文",regions:["east-asian","priority"],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"},empty:{primary:"清空",normalized:"empty"},open:{primary:"打开",normalized:"open"},close:{primary:"关闭",normalized:"close"},select:{primary:"选择",normalized:"select"},clear:{primary:"清除",normalized:"clear"},reset:{primary:"重置",normalized:"reset"},breakpoint:{primary:"断点",normalized:"breakpoint"},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"},scroll:{primary:"滚动",normalized:"scroll"},push:{primary:"推送",normalized:"push"},replace:{primary:"替换",normalized:"replace"},process:{primary:"处理",normalized:"process"},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"},connect:{primary:"连接",alternatives:["连接器"],normalized:"connect"},stream:{primary:"流",alternatives:["流式传输"],normalized:"stream"},live:{primary:"实时",alternatives:["直播"],normalized:"live"},socket:{primary:"套接字",alternatives:["websocket"],normalized:"socket"}},tokenization:{boundaryStrategy:"character"},eventHandler:{keyword:{primary:"当",alternatives:["在...时"],normalized:"on"},sourceMarker:{primary:"从",position:"before"},eventMarker:{primary:"当",alternatives:["在"],position:"before"},temporalMarkers:["当","在...时"]}}}}),qd=im({"src/tokenizers/token-utils.ts"(){}}),Vd=im({"src/tokenizers/char-classifiers.ts"(){}}),Dd=im({"src/tokenizers/base-tokenizer.ts"(){}}),Bd=im({"src/tokenizers/base.ts"(){qd(),Vd(),Dd()}});var Hd,Fd=im({"src/tokenizers/generic-extractors.ts"(){Md=["===","!==","->","==","!=","<=",">=","&&","||","**","+=","-=","*=","/=","+","-","*","/","=",">","<","!","&","|","%","^","~"],$d=class{constructor(e=Md){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}},Wd=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 Ud,Kd,Gd=im({"src/tokenizers/extractors/css-selector.ts"(){Hd=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(;n<e.length;){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}}}}),Jd=im({"src/tokenizers/extractors/event-modifier.ts"(){Ud=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 Yd,Zd,Xd=im({"src/tokenizers/extractors/url.ts"(){Kd=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}}}}),Qd=im({"src/tokenizers/extractors/variable-ref.ts"(){Yd=class{constructor(){this.name="variable-ref"}canExtract(e,t){return":"===e[t]&&t+1<e.length&&/[a-zA-Z_]/.test(e[t+1])}extract(e,t){if(!this.canExtract(e,t))return null;let r=1;for(;t+r<e.length&&/[a-zA-Z0-9_]/.test(e[t+r]);)r++;return{value:e.substring(t,t+r),length:r,metadata:{type:"variable-reference"}}}}}});function ef(e){return function(e){const t=e.charCodeAt(0);return t>=12352&&t<=12447}(e)||function(e){const t=e.charCodeAt(0);return t>=12448&&t<=12543}(e)||function(e){const t=e.charCodeAt(0);return t>=19968&&t<=40879||t>=13312&&t<=19903}(e)}var tf,rf,nf,af,of,sf=im({"src/tokenizers/extractors/japanese-keyword.ts"(){Zd=class{constructor(){this.name="japanese-keyword"}setContext(e){this.context=e}canExtract(e,t){return ef(e[t])}extract(e,t){if(!this.context)throw new Error("JapaneseKeywordExtractor: context not set");const r=t;this.context.isKeywordStart(e,t);let n="",i=t;for(;i<e.length&&ef(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}}}}}}),lf=im({"src/tokenizers/extractors/japanese-particle.ts"(){tf=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}]]),rf=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}]]),nf=class{constructor(){this.name="japanese-particle"}setContext(e){this._context=e}canExtract(e,t){if(tf.has(e[t]))return!0;for(const[r]of rf)if(e.startsWith(r,t))return!0;return!1}extract(e,t){for(const[r,n]of rf)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=tf.get(r);return n?{value:r,length:1,metadata:{role:n.role,confidence:n.confidence,variant:r}}:null}}}});function cf(e){return function(e){const t=e.charCodeAt(0);return t>=44032&&t<=55203}(e)||function(e){const t=e.charCodeAt(0);return t>=4352&&t<=4607||t>=12592&&t<=12687}(e)}var uf,pf,mf,df,ff=im({"src/tokenizers/extractors/korean-keyword.ts"(){af=["할때","하면","하니까","할 때"],of=class{constructor(){this.name="korean-keyword"}setContext(e){this.context=e}canExtract(e,t){return cf(e[t])}extract(e,t){if(!this.context)throw new 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;e<n.length;e++)if(!cf(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(;i<e.length&&cf(e[i])&&!(n.length>0&&this.context.isKeywordStart(e,i));)n+=e[i],i++;if(!n)return null;for(const e of af)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}}}}}}),hf=im({"src/tokenizers/extractors/korean-particle.ts"(){uf=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"}]]),pf=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"}]]),mf=class{constructor(){this.name="korean-particle"}setContext(e){this._context=e}canExtract(e,t){if(uf.has(e[t]))return!0;for(const[r]of pf)if(e.startsWith(r,t))return!0;return!1}extract(e,t){for(const[r,n]of pf)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=uf.get(r);return n?{value:r,length:1,metadata:{particleRole:n.role,particleConfidence:n.confidence,particleVariant:n.variant}}:null}}}});function yf(e){const t=e.charCodeAt(0);return t>=19968&&t<=40959||t>=13312&&t<=19903||t>=63744&&t<=64255||t>=131072&&t<=173791||t>=173824&&t<=177983||t>=177984&&t<=178207||t>=178208&&t<=183983||t>=183984&&t<=191471||t>=194560&&t<=195103}var gf,vf,kf,wf,bf,zf,xf,Ef=im({"src/tokenizers/extractors/chinese-keyword.ts"(){df=class{constructor(){this.name="chinese-keyword"}setContext(e){this.context=e}canExtract(e,t){return yf(e[t])}extract(e,t){if(!this.context)throw new 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=>yf(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(;a<e.length&&yf(e[a])&&(i+=e[a],a++,!(a<e.length&&this.context.isKeywordStart(e,a))););return i?{value:i,length:a-r,metadata:{}}:null}}}}),Sf=im({"src/tokenizers/extractors/chinese-particle.ts"(){gf=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"}]]),vf=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"}]]),kf=class{constructor(){this.name="chinese-particle"}setContext(e){this._context=e}canExtract(e,t){if(gf.has(e[t]))return!0;for(const[r]of vf)if(e.startsWith(r,t))return!0;return!1}extract(e,t){for(const[r,n]of vf)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=gf.get(r);return n?{value:r,length:1,metadata:{particleRole:n.role,particleConfidence:n.confidence,particleDescription:n.description}}:null}}}});var Tf,Cf,Af,Lf,jf,Pf,Nf,Of,If,Rf,Mf,$f,Wf=im({"src/tokenizers/extractors/vietnamese-keyword.ts"(){var e;({isLetter:wf,isIdentifierChar:bf}=(e=/[a-zA-ZàáảãạăằắẳẵặâầấẩẫậèéẻẽẹêềếểễệìíỉĩịòóỏõọôồốổỗộơờớởỡợùúủũụưừứửữựỳýỷỹỵđÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÈÉẺẼẸÊỀẾỂỄỆÌÍỈĨỊÒÓỎÕỌÔỒỐỔỖỘƠỜỚỞỠỢÙÚỦŨỤƯỪỨỬỮỰỲÝỶỸỴĐ]/,{isLetter:t=>e.test(t),isIdentifierChar:t=>/[0-9]/.test(t)||e.test(t)})),zf=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"]),xf=class{constructor(){this.name="vietnamese-keyword"}setContext(e){this.context=e}canExtract(e,t){return wf(e[t])}extract(e,t){if(!this.context)throw new Error("VietnameseKeywordExtractor: context not set");const r=this.tryMultiWordPhrase(e,t);if(r)return r;let n=t,i="";for(;n<e.length&&bf(e[n]);)i+=e[n++];if(!i)return null;const a=i.toLowerCase(),o=zf.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}}}}),_f=im({"src/tokenizers/extractors/arabic-keyword.ts"(){Bd(),Tf=Vp([[1536,1791],[1872,1919],[2208,2303],[64336,65023],[65136,65279]]),Cf=new Set(["في","على","من","إلى","الى","مع","عن","قبل","بعد","بين"]),Af=class{constructor(){this.name="arabic-keyword"}setContext(e){this.context=e}canExtract(e,t){return Tf(e[t])}extract(e,t){if(!this.context)throw new Error("ArabicKeywordExtractor: context not set");const r=t;this.context.isKeywordStart(e,t);let n="",i=t;for(;i<e.length&&(Tf(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(Cf.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}}}}}}),qf=im({"src/tokenizers/extractors/arabic-proclitic.ts"(){Bd(),Lf=Vp([[1536,1791],[1872,1919],[2208,2303],[64336,65023],[65136,65279]]),jf=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"}]]),Pf=class{constructor(){this.name="arabic-proclitic"}setContext(e){this.context=e}canExtract(e,t){return jf.has(e[t])||t+1<e.length&&jf.has(e.slice(t,t+2))}extract(e,t){if(!this.context)throw new Error("ArabicProcliticExtractor: context not set");let r=t;for(;r<e.length&&(Lf(e[r])||"ـ"===e[r]);)r++;const n=e.slice(t,r);if(this.context.isKeyword(n))return null;if(t+2<=e.length){const n=e.slice(t,t+2),i=jf.get(n);if(i){const a=t+2;if(a<e.length&&Lf(e[a])){let o=0,s=a;for(;s<e.length&&Lf(e[s]);)o++,s++;if(o>=2){if(!jf.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=jf.get(i);if(!a)return null;const o=t+1;if(o>=e.length||!Lf(e[o]))return null;let s=0,l=o;for(;l<e.length&&Lf(e[l]);)s++,l++;return s<2?null:{value:i,length:1,metadata:{procliticType:a.type,normalized:a.normalized}}}}}}),Vf=im({"src/tokenizers/extractors/arabic-temporal.ts"(){Bd(),Nf=Vp([[1536,1791],[1872,1919],[2208,2303],[64336,65023],[65136,65279]]),Of=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)"}]]),If=class{constructor(){this.name="arabic-temporal"}setContext(e){this._context=e}canExtract(e,t){for(const[r]of Of)if(e.startsWith(r,t))return!0;return!1}extract(e,t){const r=Array.from(Of.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])||!Nf(e[r]))return{value:n,length:n.length,metadata:{temporalFormality:i.formality,temporalConfidence:i.confidence,normalized:i.normalized,description:i.description}}}return null}}}});var Df,Bf=im({"src/tokenizers/extractors/cyrillic-keyword.ts"(){Rf=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 new Error(`${this.name}: context not set`);let r=t,n="";for(;r<e.length&&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}}}},Mf=new Set(["в","во","на","с","со","к","ко","о","об","обо","у","от","до","из","за","по","под","над","перед","передо","между","через","без","для","при","про","после","вокруг","против","вместо","кроме","среди"]),$f=new Set(["в","у","на","з","із","зі","до","від","о","об","при","для","під","над","перед","між","через","без","по","за","про","після","навколо","проти","замість","крім","серед","к"])}});function Hf(e){const t=e.charCodeAt(0);return t>=2304&&t<=2431||t>=43232&&t<=43263}var Ff,Uf,Kf,Gf,Jf=im({"src/tokenizers/extractors/hindi-keyword.ts"(){Df=class{constructor(){this.name="hindi-keyword"}setContext(e){this.context=e}canExtract(e,t){return Hf(e[t])}extract(e,t){if(!this.context)throw new Error("HindiKeywordExtractor: context not set");const r=t;let n="",i=t;for(;i<e.length&&(Hf(e[i])||" "===e[i]);){if(" "===e[i]){if(i+1<e.length&&Hf(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}}}}}}),Yf=im({"src/tokenizers/extractors/hindi-particle.ts"(){Ff=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}]]),Uf=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}]]),Kf=class{constructor(){this.name="hindi-particle"}setContext(e){this._context=e}canExtract(e,t){for(const[r]of Uf)if(e.startsWith(r,t))return!0;let r="",n=t;for(;n<e.length&&this.isDevanagari(e[n]);)r+=e[n],n++;return Ff.has(r)}extract(e,t){for(const[r,n]of Uf)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(;n<e.length&&this.isDevanagari(e[n]);)r+=e[n],n++;const i=Ff.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&&t<=2431||t>=43232&&t<=43263}}}});function Zf(e){const t=e.charCodeAt(0);return t>=2432&&t<=2559}var Xf,Qf,eh,th=im({"src/tokenizers/extractors/bengali-keyword.ts"(){Gf=class{constructor(){this.name="bengali-keyword"}setContext(e){this.context=e}canExtract(e,t){return Zf(e[t])}extract(e,t){if(!this.context)throw new Error("BengaliKeywordExtractor: context not set");const r=t;let n="",i=t;for(;i<e.length&&Zf(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}}}}}}),rh=im({"src/tokenizers/extractors/bengali-particle.ts"(){Xf=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}]]),Qf=class{constructor(){this.name="bengali-particle"}setContext(e){this._context=e}canExtract(e,t){let r="",n=t;for(;n<e.length&&this.isBengali(e[n]);)r+=e[n],n++;return Xf.has(r)}extract(e,t){let r="",n=t;for(;n<e.length&&this.isBengali(e[n]);)r+=e[n],n++;const i=Xf.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&&t<=2559}}}});function nh(e){const t=e.charCodeAt(0);return t>=3584&&t<=3711}function ih(e){return/[a-zA-Z0-9_]/.test(e)}var ah,oh=im({"src/tokenizers/extractors/thai-keyword.ts"(){eh=class{constructor(){this.name="thai-keyword"}setContext(e){this.context=e}canExtract(e,t){return nh(e[t])||ih(e[t])}extract(e,t){if(!this.context)throw new Error("ThaiKeywordExtractor: context not set");const r=e[t];return nh(r)?this.extractThaiWord(e,t):ih(r)?this.extractAsciiWord(e,t):null}extractThaiWord(e,t){if(!this.context)return null;let r=null,n=t,i="";for(;n<e.length&&nh(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(;a<e.length&&nh(e[a])&&!(o.length>0&&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(;r<e.length&&ih(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(;r<e.length&&nh(e[r]);){if(n+=e[r],r++,this.context.lookupKeyword(n))return!0;if(n.length>10)break}return!1}}}});function sh(e){return/[a-zA-Z0-9_]/.test(e)}var lh,ch,uh=im({"src/tokenizers/extractors/malay-keyword.ts"(){ah=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 new Error("MalayKeywordExtractor: context not set");let r=t,n="";for(;r<e.length&&sh(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 ph(e){return/[a-zA-Z0-9_]/.test(e)}var mh,dh,fh,hh,yh=im({"src/tokenizers/extractors/tagalog-keyword.ts"(){lh=new Set(["sa","ng","para","mula","hanggang","gaya","tulad","kasama","para sa"]),ch=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 new Error("TagalogKeywordExtractor: context not set");let r=t,n="";for(;r<e.length&&ph(e[r]);)n+=e[r++];if(!n)return null;const i=n.toLowerCase(),a=lh.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 gh,vh,kh,wh,bh=im({"src/tokenizers/extractors/polish-keyword.ts"(){mh=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:dh,isIdentifierChar:fh}=function(){const e=/[a-zA-ZąęćńóśźżłĄĘĆŃÓŚŹŻŁ]/;return{isLetter:t=>e.test(t),isIdentifierChar:t=>/[0-9]/.test(t)||e.test(t)}}()),hh=class{constructor(){this.name="polish-keyword"}setContext(e){this.context=e}canExtract(e,t){return dh(e[t])}extract(e,t){if(!this.context)throw new Error("PolishKeywordExtractor: context not set");let r=t,n="";for(;r<e.length&&fh(e[r]);)n+=e[r++];if(!n)return null;const i=n.toLowerCase(),a=mh.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 zh,xh,Eh,Sh,Th=im({"src/tokenizers/extractors/indonesian-keyword.ts"(){gh=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:vh,isIdentifierChar:kh}=function(){const e=/[a-zA-Z]/;return{isLetter:t=>e.test(t),isIdentifierChar:t=>/[0-9]/.test(t)||e.test(t)}}()),wh=class{constructor(){this.name="indonesian-keyword"}setContext(e){this.context=e}canExtract(e,t){return vh(e[t])}extract(e,t){if(!this.context)throw new Error("IndonesianKeywordExtractor: context not set");let r=t,n="";for(;r<e.length&&kh(e[r]);)n+=e[r++];if(!n)return null;const i=n.toLowerCase(),a=gh.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 Ch,Ah,Lh,jh=im({"src/tokenizers/extractors/swahili-keyword.ts"(){zh=new Set(["kwa","na","katika","kwenye","kutoka","hadi","mpaka","kabla","baada","wakati","bila","kuhusu","karibu","mbele","nyuma","ndani","nje","juu","chini","kati"]),({isLetter:xh,isIdentifierChar:Eh}=function(){const e=/[a-zA-Z]/;return{isLetter:t=>e.test(t),isIdentifierChar:t=>/[0-9]/.test(t)||e.test(t)}}()),Sh=class{constructor(){this.name="swahili-keyword"}setContext(e){this.context=e}canExtract(e,t){return xh(e[t])}extract(e,t){if(!this.context)throw new Error("SwahiliKeywordExtractor: context not set");let r=t,n="";for(;r<e.length&&Eh(e[r]);)n+=e[r++];if(!n)return null;const i=n.toLowerCase(),a=zh.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 Ph(e){const t=e.charCodeAt(0);if(t>=65&&t<=90||t>=97&&t<=122)return!0;return"çÇğĞıİöÖşŞüÜ".includes(e)}var Nh,Oh,Ih,Rh=im({"src/tokenizers/extractors/turkish-keyword.ts"(){Ch=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"]),Ah=new Set(["de","da","te","ta","den","dan","ten","tan","e","a","ye","ya","i","ı","u","ü","in","ın","un","ün","le","la","yle","yla"]),Lh=class{constructor(){this.name="turkish-keyword"}setContext(e){this.context=e}canExtract(e,t){return Ph(e[t])}extract(e,t){if(!this.context)throw new 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;e<n.length;e++)if(!Ph(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(;i<e.length&&Ph(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(Ch.has(n.toLowerCase()))return{value:n,length:i-r,metadata:{postpositionValue:n.toLowerCase()}};if(Ah.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 Mh(e){const t=e.charCodeAt(0);return t>=65&&t<=90||t>=97&&t<=122||("ñ"===e||"Ñ"===e||"'"===e||"’"===e)}var $h,Wh,_h,qh,Vh=im({"src/tokenizers/extractors/quechua-keyword.ts"(){Nh=new Set(["-ta","-man","-manta","-pi","-wan","-paq","-kama","-rayku","-hina","ta","man","manta","pi","wan","paq","kama","hina","pa"]),Oh=new Set(["kama","hina","rayku","paq"]),Ih=class{constructor(){this.name="quechua-keyword"}setContext(e){this.context=e}canExtract(e,t){return Mh(e[t])}extract(e,t){if(!this.context)throw new 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;e<n.length;e++)if(!Mh(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(;i<e.length&&Mh(e[i])&&!(n.length>0&&this.context.isKeywordStart(e,i));)n+=e[i],i++;if(!n)return null;if(Nh.has(n.toLowerCase()))return{value:n,length:i-r,metadata:{suffixValue:n.toLowerCase()}};if(Oh.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 Dh,Bh,Hh,Fh,Uh,Kh=im({"src/tokenizers/extractors/hebrew-keyword.ts"(){Bd(),$h=Vp([[1424,1535],[64285,64335]]),Wh=new Set(["על","את","אל","מן","עם","בתוך","מתוך","ליד","אחרי","לפני","בין","עד","של"]),_h=new Set(["ו"]),qh=class{constructor(){this.name="hebrew-keyword"}setContext(e){this.context=e}canExtract(e,t){return $h(e[t])}extract(e,t){if(!this.context)throw new Error("HebrewKeywordExtractor: context not set");const r=t;this.context.isKeywordStart(e,t);let n="",i=t;for(;i<e.length&&$h(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(Wh.has(n))return{value:n,length:i-r,metadata:{prepositionValue:n,normalized:o}};if(_h.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 Gh,Jh=im({"src/tokenizers/extractors/hebrew-proclitic.ts"(){Bd(),Dh=Vp([[1424,1535],[64285,64335]]),Bh=new Map([["ב","on"],["ל","to"],["מ","from"],["כ","as"],["ה","the"],["ו","and"],["ש","that"]]),Hh=new Set(["ב","כ"]),Fh=new Set(["לחיצה","קליק","שליחה","הגשה","ריחוף","מעבר","שינוי","עדכון","קלט","הזנה","מיקוד","טשטוש","טעינה","גלילה"]),Uh=class{constructor(){this.name="hebrew-proclitic"}setContext(e){this.context=e}canExtract(e,t){return Bh.has(e[t])&&t+1<e.length&&Dh(e[t+1])}extract(e,t){if(!this.context)throw new Error("HebrewProcliticExtractor: context not set");const r=e[t],n=Bh.get(r);if(!n)return null;let i=t;for(;i<e.length&&Dh(e[i]);)i++;const a=e.slice(t,i),o=this.context?.lookupKeyword(a);if(o)return null;if(t+1<e.length&&Bh.has(e[t+1])){const r=e.slice(t+1,i),n=this.context?.lookupKeyword(r),a=Fh.has(r);if(!(n||a||r.length>=3))return null}const s=e.slice(t+1,i),l=this.context?.lookupKeyword(s),c=Hh.has(r),u=Fh.has(s);if(c&&u)return{value:r,length:1,metadata:{normalized:n,procliticType:n,isEventMarker:!0}};if(1===s.length&&Bh.has(s))return null;if(!l&&!u&&s.length<2)return null;return{value:r,length:1,metadata:{normalized:n,procliticType:n,isEventMarker:c&&l}}}}}});function Yh(e){const t=e.charCodeAt(0);return t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122||95===t||36===t}var Zh=im({"src/tokenizers/extractors/ascii-identifier.ts"(){Gh=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&&t<=90||t>=97&&t<=122||95===t||36===t}(e[t])}extract(e,t){if(!this.context)throw new Error("AsciiIdentifierExtractor: context not set");const r=t;let n="",i=t;for(;i<e.length&&Yh(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}}}}}}),Xh=im({"src/tokenizers/extractors/index.ts"(){Gd(),Jd(),Xd(),Qd()}});function Qh(){return[new Kd,new Ud,new Yd,new Hd]}var ey,ty=im({"src/tokenizers/extractor-helpers.ts"(){Xh()}});function ry(e){return/[a-zA-Z0-9_]/.test(e)}var ny,iy,ay,oy=im({"src/tokenizers/extractors/english-keyword.ts"(){ey=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 new Error("EnglishKeywordExtractor: context not set");let r=t,n="";for(;r<e.length&&ry(e[r]);)n+=e[r++];if(!n)return null;if(r<e.length&&":"===e[r]){const t=r;r++;let i="";for(;r<e.length&&ry(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(;n<e.length&&/\s/.test(e[n]);)n++;if("class"===e.slice(n,n+5).toLowerCase()){const t=n+5;if(t>=e.length||!ry(e[t]))return"."+r}return null}}}}),sy={};am(sy,{EnglishTokenizer:()=>iy,englishTokenizer:()=>ay});var ly,cy,uy,py=im({"src/tokenizers/english.ts"(){Bd(),Pm(),Fd(),ty(),oy(),ny=[{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"}],ay=new(iy=class extends Hp{constructor(){super(),this.language="en",this.direction="ltr",this.initializeKeywordsFromProfile(Cm,ny),this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractors([new ey]),this.registerExtractor(new $d),this.registerExtractor(new Wd)}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"}})}}),my=im({"src/tokenizers/morphology/types.ts"(){}});function dy(e){const t=e.charCodeAt(0);return t>=12352&&t<=12447}function fy(e){const t=e.charCodeAt(0);return t>=12448&&t<=12543}function hy(e){const t=e.charCodeAt(0);return t>=19968&&t<=40959||t>=13312&&t<=19903}var yy,gy,vy,ky,wy=im({"src/tokenizers/morphology/japanese-normalizer.ts"(){my(),ly=[{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}],cy=[{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(uy=class{constructor(){this.language="ja"}isNormalizable(e){if(!function(e){for(const t of e)if(dy(t)||fy(t)||hy(t))return!0;return!1}(e))return!1;if(e.length<2)return!1;return dy(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 ly)if(e.endsWith(t.pattern)){const r=e.slice(0,-t.pattern.length);if(r.length<(t.minStemLength??2))continue;const n={removedSuffixes:[t.pattern]};return t.conjugationType&&(n.conjugationType=t.conjugationType),Up(r,t.confidence,n)}return Fp(e)}trySuruNormalization(e){for(const t of cy)if(e.endsWith(t.pattern)){const r=e.slice(0,-t.pattern.length);if(r.length<1)continue;return Up(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(t.length<a)continue;return Up(t,i,{removedSuffixes:n,conjugationType:"compound"})}return null}})}}),by={};am(by,{JapaneseTokenizer:()=>vy,japaneseTokenizer:()=>ky});var zy,xy,Ey,Sy=im({"src/tokenizers/japanese.ts"(){Bd(),wy(),Xm(),Fd(),ty(),sf(),lf(),Zh(),yy=new Set(["を","に","で","から","まで","へ","と","の","が","は","も","より"]),gy=[{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"}],ky=new(vy=class extends Hp{constructor(){super(),this.language="ja",this.direction="ltr",this.initializeKeywordsFromProfile(Gm,gy),this.normalizer=new uy,this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractor(new Gh),this.registerExtractor(new nf),this.registerExtractor(new Zd),this.registerExtractor(new $d),this.registerExtractor(new Wd)}classifyToken(e){return yy.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 Ty(e){const t=e.charCodeAt(0);return t>=44032&&t<=55203}var Cy,Ay,Ly,jy,Py=im({"src/tokenizers/morphology/korean-normalizer.ts"(){my(),zy=[{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}],xy=[{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(Ey=class{constructor(){this.language="ko"}isNormalizable(e){return!!function(e){for(const t of e)if(Ty(t))return!0;return!1}(e)&&!(e.length<2)}normalize(e){const t=this.normalizeCompound(e);if(t)return t;const r=this.tryHadaNormalization(e);if(r)return r;for(const t of zy)if(e.endsWith(t.pattern)){const r=e.slice(0,-t.pattern.length);if(r.length<(t.minStemLength??2))continue;const n={removedSuffixes:[t.pattern]};return t.conjugationType&&(n.conjugationType=t.conjugationType),Up(r,t.confidence,n)}return Fp(e)}tryHadaNormalization(e){for(const t of xy)if(e.endsWith(t.pattern)){const r=e.slice(0,-t.pattern.length);if(r.length<1)continue;return Up(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(t.length<o)continue;return Up(t,i,{removedSuffixes:n,conjugationType:a})}return null}})}}),Ny={};am(Ny,{KoreanTokenizer:()=>Ly,koreanTokenizer:()=>jy});var Oy,Iy,Ry,My,$y,Wy=im({"src/tokenizers/korean.ts"(){Bd(),Py(),td(),Fd(),ty(),ff(),hf(),Zh(),Cy=new Set(["이","가","을","를","은","는","에","에서","로","으로","와","과","의","도","만","부터","까지","처럼","보다"]),Ay=[{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"}],jy=new(Ly=class extends Hp{constructor(){super(),this.language="ko",this.direction="ltr",this.initializeKeywordsFromProfile(Zm,Ay),this.normalizer=new Ey,this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractor(new Gh),this.registerExtractor(new mf),this.registerExtractor(new of),this.registerExtractor(new $d),this.registerExtractor(new Wd)}classifyToken(e){return Cy.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 _y(e){const t=e.charCodeAt(0);return t>=1536&&t<=1791||t>=1872&&t<=1919||t>=2208&&t<=2303||t>=64336&&t<=65023||t>=65136&&t<=65279}var qy,Vy,Dy,By,Hy,Fy=im({"src/tokenizers/morphology/arabic-normalizer.ts"(){my(),Oy=[{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"}],Iy=[{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}],Ry=[{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}],My=[{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($y=class{constructor(){this.language="ar"}isNormalizable(e){return!!function(e){for(const t of e)if(_y(t))return!0;return!1}(e)&&!(e.length<2)}normalize(e){let t=function(e){return e.replace(/[\u064B-\u0652\u0670]/g,"")}(e),r=1;const n=[],i=[];for(const e of Oy)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 Iy)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 Ry)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 My)if(t.endsWith(e.pattern)){const n=t.slice(0,-e.pattern.length);n.length>=2&&(t=n,r-=e.confidencePenalty,i.push(e.pattern))}return r=Math.max(.5,r),0===n.length&&0===i.length?Fp(e):Up(t,r,{removedPrefixes:n,removedSuffixes:i})}})}}),Uy={};am(Uy,{ArabicTokenizer:()=>By,arabicTokenizer:()=>Hy});var Ky,Gy,Jy,Yy,Zy,Xy=im({"src/tokenizers/arabic.ts"(){Bd(),Fy(),zm(),Fd(),ty(),_f(),Zh(),qf(),Vf(),qy=new Set(["ول","وب","وك","فل","فب","فك"]),Vy=new Set(["في","على","من","إلى","الى","مع","عن","قبل","بعد","بين","ب","ل","ك"]),Dy=[{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"}],Hy=new(By=class extends Hp{constructor(){super(),this.language="ar",this.direction="rtl",this.initializeKeywordsFromProfile(vm,Dy),this.normalizer=new $y,this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractor(new Gh),this.registerExtractor(new If),this.registerExtractor(new Pf),this.registerExtractor(new Af),this.registerExtractor(new $d),this.registerExtractor(new Wd)}tokenizeWithExtractors(e){const t=[];let r=0;for(;r<e.length;){for(;r<e.length&&Ep(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(xp(a.value,l,zp(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(xp(n,i,zp(r,r+1))),r++}}return new bp(t,this.language)}classifyToken(e){return qy.has(e)?"conjunction":Vy.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 Qy(e){return/[áéíóúüñÁÉÍÓÚÜÑ]/.test(e)}var eg,tg,rg,ng,ig=im({"src/tokenizers/morphology/spanish-normalizer.ts"(){my(),Ky=[{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"}],Gy=[{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"}],Jy=[{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"}],Yy=[...Ky,...Gy,...Jy].sort((e,t)=>t.ending.length-e.ending.length),new(Zy=class extends Kp{constructor(){super({language:"es",minWordLength:3,minStemLength:2,endings:Yy,reflexiveSuffixes:["se","me","te","nos","os"],infinitiveEndings:["ar","er","ir"]})}isNormalizable(e){if(e.length<3)return!1;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(Qy(t))return!0;return!1}})}});var ag,og,sg,lg,cg=im({"src/tokenizers/extractors/spanish-keyword.ts"(){var e;Bd(),({isLetter:eg,isIdentifierChar:tg}=(e=/[a-zA-ZáéíóúüñÁÉÍÓÚÜÑ]/,{isLetter:t=>e.test(t),isIdentifierChar:t=>/[0-9]/.test(t)||e.test(t)})),rg=new Set(["en","a","de","desde","hasta","con","sin","por","para","sobre","entre","antes","después","despues","dentro","fuera","al","del"]),ng=class{constructor(){this.name="spanish-keyword"}setContext(e){this.context=e}canExtract(e,t){return eg(e[t])}extract(e,t){if(!this.context)throw new 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||Ep(e[r])||!eg(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(;r<e.length&&tg(e[r]);)n+=e[r++];if(!n)return null;const i=n.toLowerCase(),a=rg.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}}}}}}),ug={};am(ug,{SpanishTokenizer:()=>sg,spanishTokenizer:()=>lg});var pg,mg,dg=im({"src/tokenizers/spanish.ts"(){Bd(),ig(),Im(),Fd(),ty(),cg(),ag=new Set(["en","a","de","desde","hasta","con","sin","por","para","sobre","entre","antes","después","despues","dentro","fuera","al","del"]),og=[{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"}],lg=new(sg=class extends Hp{constructor(){super(),this.language="es",this.direction="ltr",this.initializeKeywordsFromProfile(jm,og),this.setNormalizer(new Zy),this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractors([new ng]),this.registerExtractor(new $d),this.registerExtractor(new Wd)}classifyToken(e){const t=e.toLowerCase();return ag.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 fg(e){const t=e.charCodeAt(0);if(t>=65&&t<=90||t>=97&&t<=122)return!0;return"çÇğĞıİöÖşŞüÜ".includes(e)}function hg(e){return"aıouAIOU".includes(e)}function yg(e){return"eiöüEİÖÜ".includes(e)}function gg(e){return hg(e)||yg(e)}function vg(e,t){const r=function(e){for(let t=e.length-1;t>=0;t--)if(gg(e[t]))return e[t];return null}(e);if(!r)return!0;const n=t.split("").find(e=>gg(e));return!n||(hg(r)?hg(n):yg(n))}var kg,wg,bg,zg,xg,Eg=im({"src/tokenizers/morphology/turkish-normalizer.ts"(){my(),pg=[{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(mg=class{constructor(){this.language="tr"}isNormalizable(e){return!!function(e){for(const t of e)if(fg(t))return!0;return!1}(e)&&!(e.length<3)}normalize(e){const t=e.toLowerCase();for(const e of pg)if(t.endsWith(e.pattern)){const r=t.slice(0,-e.pattern.length);if(r.length<(e.minStemLength??2))continue;if(!vg(r,e.pattern)){const t=.9*e.confidence,n={removedSuffixes:[e.pattern]};return e.conjugationType&&(n.conjugationType=e.conjugationType),Up(r,t,n)}const n={removedSuffixes:[e.pattern]};return e.conjugationType&&(n.conjugationType=e.conjugationType),Up(r,e.confidence,n)}return Fp(e)}})}}),Sg={};am(Sg,{TurkishTokenizer:()=>zg,turkishTokenizer:()=>xg});var Tg,Cg,Ag,Lg,jg=im({"src/tokenizers/turkish.ts"(){Bd(),Eg(),Ad(),Fd(),ty(),Rh(),kg=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"]),wg=new Set(["de","da","te","ta","den","dan","ten","tan","e","a","ye","ya","i","ı","u","ü","in","ın","un","ün","le","la","yle","yla"]),bg=[{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"}],xg=new(zg=class extends Hp{constructor(){super(),this.language="tr",this.direction="ltr",this.initializeKeywordsFromProfile(Ed,bg),this.setNormalizer(new mg),this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractor(new Lh),this.registerExtractor(new $d),this.registerExtractor(new Wd)}classifyToken(e){const t=e.toLowerCase();return kg.has(t)||wg.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"}})}}),Pg={};am(Pg,{ChineseTokenizer:()=>Ag,chineseTokenizer:()=>Lg});var Ng,Og,Ig,Rg,Mg,$g,Wg=im({"src/tokenizers/chinese.ts"(){Bd(),_d(),Fd(),ty(),Ef(),Sf(),Zh(),Tg=new Set(["把","在","从","到","向","给","对","用","被","让","的","地","得","了","着","过","吗","呢","吧"]),Cg=[{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"}],Lg=new(Ag=class extends Hp{constructor(){super(),this.language="zh",this.direction="ltr",this.initializeKeywordsFromProfile(Od,Cg),this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractor(new Gh),this.registerExtractor(new kf),this.registerExtractor(new df),this.registerExtractor(new $d),this.registerExtractor(new Wd)}classifyToken(e){return Tg.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 _g(e){return/[áàâãéêíóôõúüçÁÀÂÃÉÊÍÓÔÕÚÜÇ]/.test(e)}var qg,Vg,Dg,Bg,Hg=im({"src/tokenizers/morphology/portuguese-normalizer.ts"(){my(),Ng=["-se","-me","-te","-nos","-vos"],Og=[{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"}],Ig=[{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"}],Rg=[{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"}],Mg=[...Og,...Ig,...Rg].sort((e,t)=>t.ending.length-e.ending.length),new($g=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(_g(t))return!0;return!1}(e)}normalize(e){const t=e.toLowerCase();if((t.endsWith("ar")||t.endsWith("er")||t.endsWith("ir"))&&!Ng.some(e=>t.endsWith(e)))return Fp(e);const r=this.tryReflexiveNormalization(t);if(r)return r;const n=this.tryConjugationNormalization(t);return n||Fp(e)}tryReflexiveNormalization(e){for(const t of Ng)if(e.endsWith(t)){const r=e.slice(0,-t.length);if(r.endsWith("ar")||r.endsWith("er")||r.endsWith("ir"))return Up(r,.88,{removedSuffixes:[t],conjugationType:"reflexive"});const n=this.tryConjugationNormalization(r);if(n&&n.stem!==r)return Up(n.stem,.95*n.confidence,{removedSuffixes:[t,...n.metadata?.removedSuffixes||[]],conjugationType:"reflexive"})}return null}tryConjugationNormalization(e){for(const t of Mg)if(e.endsWith(t.ending)){const r=e.slice(0,-t.ending.length);if(r.length<2)continue;return Up(r+t.stem,t.confidence,{removedSuffixes:[t.ending],conjugationType:t.type})}return null}})}});var Fg,Ug,Kg,Gg,Jg=im({"src/tokenizers/extractors/portuguese-keyword.ts"(){var e;({isLetter:qg,isIdentifierChar:Vg}=(e=/[a-zA-ZáâãéêíóôõúçÁÂÃÉÊÍÓÔÕÚÇ]/,{isLetter:t=>e.test(t),isIdentifierChar:t=>/[0-9]/.test(t)||e.test(t)})),Dg=new Set(["em","a","de","para","com","sem","por","sobre","entre","antes","depois","dentro","fora","ao","do","da","no","na"]),Bg=class{constructor(){this.name="portuguese-keyword"}setContext(e){this.context=e}canExtract(e,t){return qg(e[t])}extract(e,t){if(!this.context)throw new Error("PortugueseKeywordExtractor: context not set");let r=t,n="";for(;r<e.length&&Vg(e[r]);)n+=e[r++];if(!n)return null;const i=n.toLowerCase(),a=Dg.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}}}}}}),Yg={};am(Yg,{PortugueseTokenizer:()=>Kg,portugueseTokenizer:()=>Gg});var Zg,Xg,Qg,ev,tv,rv,nv=im({"src/tokenizers/portuguese.ts"(){Bd(),ud(),Hg(),Fd(),ty(),Jg(),Fg=new Set(["em","a","de","desde","até","ate","com","sem","por","para","sobre","entre","antes","depois","dentro","fora","ao","do","no","na"]),Ug=[{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"}],Gg=new(Kg=class extends Hp{constructor(){super(),this.language="pt",this.direction="ltr",this.initializeKeywordsFromProfile(od,Ug),this.setNormalizer(new $g),this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractors([new Bg]),this.registerExtractor(new $d),this.registerExtractor(new Wd)}classifyToken(e){const t=e.toLowerCase();return Fg.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"}})}});var iv,av,ov,sv,lv=im({"src/tokenizers/morphology/french-normalizer.ts"(){my(),Zg=["toi","vous","nous"],Xg=[{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"}],Qg=[{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"}],ev=[{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"}],tv=[...Xg,...Qg,...ev].sort((e,t)=>t.ending.length-e.ending.length),new(rv=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 Fp(e);const r=this.tryReflexiveNormalization(t);if(r)return r;const n=this.tryConjugationNormalization(t);return n||Fp(e)}tryReflexiveNormalization(e){for(const t of Zg){const r="-"+t;if(e.endsWith(r)){const t=e.slice(0,-r.length),n=this.tryConjugationNormalization(t);if(n&&n.stem!==t)return Up(n.stem,.95*n.confidence,{removedSuffixes:[r,...n.metadata?.removedSuffixes||[]],conjugationType:"reflexive"})}}return null}tryConjugationNormalization(e){for(const t of tv)if(e.endsWith(t.ending)){const r=e.slice(0,-t.ending.length);if(r.length<2)continue;return Up(r+t.stem,t.confidence,{removedSuffixes:[t.ending],conjugationType:t.type})}return null}})}});var cv,uv,pv,mv=im({"src/tokenizers/extractors/french-keyword.ts"(){var e;({isLetter:iv,isIdentifierChar:av}=(e=/[a-zA-ZàâæçéèêëïîôùûüÿœÀÂÆÇÉÈÊËÏÎÔÙÛÜŸŒ]/,{isLetter:t=>e.test(t),isIdentifierChar:t=>/[0-9]/.test(t)||e.test(t)})),ov=new Set(["à","a","de","du","des","dans","sur","sous","avec","sans","par","pour","entre","avant","après","apres","depuis","vers","chez","contre","au","aux"]),sv=class{constructor(){this.name="french-keyword"}setContext(e){this.context=e}canExtract(e,t){return iv(e[t])}extract(e,t){if(!this.context)throw new Error("FrenchKeywordExtractor: context not set");let r=t,n="";for(;r<e.length&&av(e[r]);)n+=e[r++];if(!n)return null;const i=n.toLowerCase(),a=ov.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}}}}}}),dv={};am(dv,{FrenchTokenizer:()=>uv,frenchTokenizer:()=>pv});var fv,hv,yv,gv,vv,kv=im({"src/tokenizers/french.ts"(){Bd(),$m(),lv(),Fd(),ty(),mv(),cv=[{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"}],pv=new(uv=class extends Hp{constructor(){super(),this.language="fr",this.direction="ltr",this.initializeKeywordsFromProfile(Om,cv),this.normalizer=new rv,this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractors([new sv]),this.registerExtractor(new $d),this.registerExtractor(new Wd)}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"}})}});var wv,bv,zv,xv,Ev=im({"src/tokenizers/morphology/german-normalizer.ts"(){my(),fv=["an","auf","aus","ein","mit","vor","zu","ab","bei","nach","weg","um","her","hin"],hv=[{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"}],yv=[{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"}],gv=[...hv,...yv].sort((e,t)=>t.ending.length-e.ending.length),vv=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 Fp(e);if((t.endsWith("eln")||t.endsWith("ern"))&&t.length>=5)return Fp(e);const r=this.tryParticipleNormalization(t);if(r)return r;const n=this.tryConjugationNormalization(t);return n||Fp(e)}tryParticipleNormalization(e){for(const t of fv)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),Up(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 Up(t.slice(0,-1)+"en",.85,{removedPrefixes:["ge"],removedSuffixes:["t"],conjugationType:"participle"})}return t.endsWith("en")&&t.length>=4?Up(t,.82,{removedPrefixes:["ge"],conjugationType:"participle"}):null}tryConjugationNormalization(e){for(const t of gv)if(e.endsWith(t.ending)){const r=e.slice(0,-t.ending.length);if(r.length<2)continue;return Up(r+t.stem,t.confidence,{removedSuffixes:[t.ending],conjugationType:t.type})}return null}},new vv}});var Sv,Tv,Cv,Av=im({"src/tokenizers/extractors/german-keyword.ts"(){var e;({isLetter:wv,isIdentifierChar:bv}=(e=/[a-zA-ZäöüÄÖÜß]/,{isLetter:t=>e.test(t),isIdentifierChar:t=>/[0-9]/.test(t)||e.test(t)})),zv=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"]),xv=class{constructor(){this.name="german-keyword"}setContext(e){this.context=e}canExtract(e,t){return wv(e[t])}extract(e,t){if(!this.context)throw new Error("GermanKeywordExtractor: context not set");return this.extractGermanWord(e,t)}extractGermanWord(e,t){if(!this.context)return null;let r=t,n="";for(;r<e.length&&bv(e[r]);)n+=e[r++];if(!n)return null;const i=n.toLowerCase(),a=zv.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}}}}}}),Lv={};am(Lv,{GermanTokenizer:()=>Tv,germanTokenizer:()=>Cv});var jv,Pv,Nv,Ov,Iv=im({"src/tokenizers/german.ts"(){Bd(),Am(),Ev(),Fd(),ty(),Av(),Sv=[{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"}],Cv=new(Tv=class extends Hp{constructor(){super(),this.language="de",this.direction="ltr",this.initializeKeywordsFromProfile(Em,Sv),this.normalizer=new vv,this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractors([new xv]),this.registerExtractor(new $d),this.registerExtractor(new Wd)}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"}})}}),Rv={};am(Rv,{IndonesianTokenizer:()=>Nv,indonesianTokenizer:()=>Ov});var Mv,$v,Wv=im({"src/tokenizers/indonesian.ts"(){Bd(),Um(),Fd(),ty(),Th(),jv=new Set(["di","ke","dari","pada","dengan","tanpa","untuk","oleh","antara","sebelum","sesudah","setelah","selama","sampai","hingga","sejak","menuju","tentang","terhadap","melalui","dalam","luar"]),Pv=[{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"}],Ov=new(Nv=class extends Hp{constructor(){super(),this.language="id",this.direction="ltr",this.initializeKeywordsFromProfile(Dm,Pv),this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractors([new wh]),this.registerExtractor(new $d),this.registerExtractor(new Wd)}classifyToken(e){const t=e.toLowerCase();return jv.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 _v(e){const t=e.charCodeAt(0);return t>=65&&t<=90||t>=97&&t<=122||("ñ"===e||"Ñ"===e||"'"===e||"'"===e)}var qv,Vv,Dv,Bv,Hv,Fv=im({"src/tokenizers/morphology/quechua-normalizer.ts"(){my(),Mv=[{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}],$v=new class{constructor(){this.language="qu"}isNormalizable(e){if(!function(e){for(const t of e)if(_v(t))return!0;return!1}(e))return!1;if(e.length<3)return!1;return!!/[aiu]/.test(e.toLowerCase())}normalize(e){const t=e.toLowerCase();for(const e of Mv)if(t.endsWith(e.pattern)){let r=t.slice(0,-e.pattern.length);e.replacement&&!r.endsWith(e.replacement)&&(r+=e.replacement);if(r.length<(e.minStemLength??2))continue;if(!this.isValidStem(r))continue;const n={removedSuffixes:[e.pattern]};return e.conjugationType&&(n.conjugationType=e.conjugationType),Up(r,e.confidence,n)}return Fp(e)}isValidStem(e){if(e.length<2)return!1;if(!/[aeiou]/.test(e))return!1;return!new Set(["ta","man","pi","wan","pa","kama","hina"]).has(e)}}}}),Uv={};am(Uv,{QuechuaTokenizer:()=>Bv,quechuaTokenizer:()=>Hv});var Kv,Gv,Jv,Yv,Zv=im({"src/tokenizers/quechua.ts"(){Bd(),dd(),Fv(),Fd(),ty(),Vh(),qv=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(;i<e.length;){const t=e[i];if(t===r)return n+=t,{value:n,length:n.length};"\\"===t&&i+1<e.length?(n+=t+e[i+1],i+=2):(n+=t,i++)}return null}},Vv=new Set(["-ta","-man","-manta","-pi","-wan","-paq","-kama","-rayku","-hina","ta","man","manta","pi","wan","paq","kama","hina","pa"]),Dv=[{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"}],Hv=new(Bv=class extends Hp{constructor(){super(),this.language="qu",this.direction="ltr",this.initializeKeywordsFromProfile(cd,Dv),this.setNormalizer($v),this.registerExtractors(Qh()),this.registerExtractor(new qv),this.registerExtractor(new hu),this.registerExtractor(new Ih),this.registerExtractor(new $d),this.registerExtractor(new Wd)}classifyToken(e){const t=e.toLowerCase();return Vv.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"}})}}),Xv={};am(Xv,{SwahiliTokenizer:()=>Jv,swahiliTokenizer:()=>Yv});var Qv,ek,tk,rk,nk,ik,ak=im({"src/tokenizers/swahili.ts"(){Bd(),kd(),Fd(),ty(),jh(),Kv=new Set(["kwa","na","katika","kwenye","kutoka","hadi","mpaka","kabla","baada","wakati","bila","kuhusu","karibu","mbele","nyuma","ndani","nje","juu","chini","kati"]),Gv=[{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"}],Yv=new(Jv=class extends Hp{constructor(){super(),this.language="sw",this.direction="ltr",this.initializeKeywordsFromProfile(hd,Gv),this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractors([new Sh]),this.registerExtractor(new $d),this.registerExtractor(new Wd)}classifyToken(e){const t=e.toLowerCase();return Kv.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 ok(e){return/[àèéìíîòóùúÀÈÉÌÍÎÒÓÙÚ]/.test(e)}var sk,lk,ck=im({"src/tokenizers/morphology/italian-normalizer.ts"(){my(),Qv=["si","mi","ti","ci","vi"],ek=[{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"}],tk=[{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"}],rk=[{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"}],nk=[...ek,...tk,...rk].sort((e,t)=>t.ending.length-e.ending.length),new(ik=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(ok(t))return!0;return!1}(e)}normalize(e){const t=e.toLowerCase();if((t.endsWith("are")||t.endsWith("ere")||t.endsWith("ire"))&&!Qv.some(e=>t.endsWith(e+"are")||t.endsWith(e+"ere")||t.endsWith(e+"ire")))return Fp(e);const r=this.tryReflexiveNormalization(t);if(r)return r;const n=this.tryConjugationNormalization(t);return n||Fp(e)}tryReflexiveNormalization(e){for(const t of Qv)if(e.endsWith(t)){const r=e.slice(0,-t.length);if(r.endsWith("ar")||r.endsWith("er")||r.endsWith("ir")){return Up(r+"e",.88,{removedSuffixes:[t],conjugationType:"reflexive"})}if(r.endsWith("are")||r.endsWith("ere")||r.endsWith("ire"))return Up(r,.88,{removedSuffixes:[t],conjugationType:"reflexive"});const n=this.tryConjugationNormalization(r);if(n&&n.stem!==r)return Up(n.stem,.95*n.confidence,{removedSuffixes:[t,...n.metadata?.removedSuffixes||[]],conjugationType:"reflexive"})}return null}tryConjugationNormalization(e){for(const t of nk)if(e.endsWith(t.ending)){const r=e.slice(0,-t.ending.length);if(r.length<2)continue;return Up(r+t.stem,t.confidence,{removedSuffixes:[t.ending],conjugationType:t.type})}return null}})}});var uk,pk,mk,dk,fk=im({"src/tokenizers/extractors/romance-language-keyword.ts"(){sk=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 new Error(`${this.name}: context not set`);let r=t,n="";for(;r<e.length&&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}}}},lk=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"])}}),hk={};am(hk,{ItalianTokenizer:()=>mk,italianTokenizer:()=>dk});var yk,gk,vk,kk=im({"src/tokenizers/italian.ts"(){Bd(),ck(),Jm(),Fd(),ty(),fk(),uk=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"]),pk=[{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"}],dk=new(mk=class extends Hp{constructor(){super(),this.language="it",this.direction="ltr",this.initializeKeywordsFromProfile(Fm,pk),this.setNormalizer(new ik),this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractors([new sk("italian-keyword",/[a-zA-ZàèéìíîòóùúÀÈÉÌÍÎÒÓÙÚ]/,lk)]),this.registerExtractor(new $d),this.registerExtractor(new Wd)}classifyToken(e){const t=e.toLowerCase();return uk.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"}})}}),wk={};am(wk,{VietnameseTokenizer:()=>gk,vietnameseTokenizer:()=>vk});var bk,zk,xk,Ek,Sk,Tk,Ck=im({"src/tokenizers/vietnamese.ts"(){Bd(),Id(),Wf(),Fd(),ty(),yk=[{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"}],vk=new(gk=class extends Hp{constructor(){super(),this.language="vi",this.direction="ltr",this.initializeKeywordsFromProfile(jd,yk),this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractors([new xf]),this.registerExtractor(new $d),this.registerExtractor(new Wd)}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"}})}}),Ak=im({"src/tokenizers/morphology/polish-normalizer.ts"(){my(),bk=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(zk=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 Fp(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||Fp(t)}isInfinitive(e){return["ać","eć","ić","yć","ąć","ować","iwać","ywać"].some(t=>e.endsWith(t))}tryImperativeNormalization(e){return bk.has(e)?Up(bk.get(e),.95,{removedSuffixes:["imperative"],conjugationType:"imperative"}):e.endsWith("aj")?Up(e.slice(0,-2)+"ać",.8,{removedSuffixes:["aj"],conjugationType:"imperative"}):e.endsWith("uj")?Up(e.slice(0,-2)+"ować",.8,{removedSuffixes:["uj"],conjugationType:"imperative"}):e.endsWith("ij")?Up(e.slice(0,-2)+"ić",.75,{removedSuffixes:["ij"],conjugationType:"imperative"}):null}tryPresentTenseNormalization(e){return e.endsWith("uję")||e.endsWith("uje")?Up(e.slice(0,-3)+"ować",.85,{removedSuffixes:["uję"],conjugationType:"present"}):e.endsWith("am")&&e.length>3?Up(e.slice(0,-2)+"ać",.8,{removedSuffixes:["am"],conjugationType:"present"}):e.endsWith("em")&&e.length>3?Up(e.slice(0,-2)+"eć",.75,{removedSuffixes:["em"],conjugationType:"present"}):e.endsWith("ę")&&e.length>2?Up(e.slice(0,-1)+"ać",.7,{removedSuffixes:["ę"],conjugationType:"present"}):null}tryPastTenseNormalization(e){if(e.endsWith("ałem")||e.endsWith("ałam"))return Up(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 Up(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 Up(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 Up(e.slice(0,-t)+"ić",.8,{removedSuffixes:[e.slice(-t)],conjugationType:"past"})}return null}})}}),Lk={};am(Lk,{PolishTokenizer:()=>Sk,polishTokenizer:()=>Tk});var jk,Pk,Nk=im({"src/tokenizers/polish.ts"(){Bd(),sd(),Ak(),Fd(),ty(),bh(),xk=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"]),Ek=[{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"}],Tk=new(Sk=class extends Hp{constructor(){super(),this.language="pl",this.direction="ltr",this.initializeKeywordsFromProfile(nd,Ek),this.setNormalizer(new zk),this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractors([new hh]),this.registerExtractor(new $d),this.registerExtractor(new Wd)}classifyToken(e){const t=e.toLowerCase();return xk.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 Ok(e){return/[а-яА-ЯёЁ]/.test(e)}var Ik,Rk,Mk,$k,Wk=im({"src/tokenizers/morphology/russian-normalizer.ts"(){my(),jk=new Map([["переключи","переключить"],["добавь","добавить"],["удали","удалить"],["убери","убрать"],["положи","положить"],["помести","поместить"],["вставь","вставить"],["возьми","взять"],["создай","создать"],["клонируй","клонировать"],["поменяй","поменять"],["трансформируй","трансформировать"],["установи","установить"],["задай","задать"],["получи","получить"],["увеличь","увеличить"],["уменьши","уменьшить"],["запиши","записать"],["покажи","показать"],["скрой","скрыть"],["спрячь","спрятать"],["анимируй","анимировать"],["вызови","вызвать"],["отправь","отправить"],["сфокусируй","сфокусировать"],["размой","размыть"],["перейди","перейти"],["иди","идти"],["жди","ждать"],["подожди","подождать"],["загрузи","загрузить"],["повтори","повторить"],["продолжи","продолжить"],["брось","бросить"],["верни","вернуть"],["скажи","сказать"],["инициализируй","инициализировать"],["измерь","измерить"]]),new(Pk=class{constructor(){this.language="ru"}isNormalizable(e){return!(e.length<3)&&function(e){for(const t of e)if(Ok(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 Fp(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||Fp(e)}tryReflexiveNormalization(e){e.endsWith("ся");const t=e.slice(0,-2);if(e.endsWith("ться")||e.endsWith("тись")||e.endsWith("чься"))return Fp(e);const r=this.normalizeNonReflexive(t);if(r.confidence<1){return Up(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 Fp(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||Fp(e)}tryImperativeLookup(e){return jk.has(e)?Up(jk.get(e),.95,{removedSuffixes:["imperative"],conjugationType:"imperative"}):null}tryGenericImperativeNormalization(e){return e.endsWith("йте")&&e.length>5?Up(e.slice(0,-3)+"ть",.8,{removedSuffixes:["йте"],conjugationType:"imperative"}):e.endsWith("ите")&&e.length>5?Up(e.slice(0,-3)+"ить",.8,{removedSuffixes:["ите"],conjugationType:"imperative"}):e.endsWith("й")&&e.length>3?Up(e.slice(0,-1)+"ть",.75,{removedSuffixes:["й"],conjugationType:"imperative"}):e.endsWith("и")&&e.length>3?Up(e+"ть",.7,{removedSuffixes:["и→ить"],conjugationType:"imperative"}):null}tryPastTenseNormalization(e){return e.endsWith("ала")&&e.length>4?Up(e.slice(0,-3)+"ать",.85,{removedSuffixes:["ала"],conjugationType:"past"}):e.endsWith("ила")&&e.length>4?Up(e.slice(0,-3)+"ить",.85,{removedSuffixes:["ила"],conjugationType:"past"}):e.endsWith("ело")&&e.length>4?Up(e.slice(0,-3)+"еть",.82,{removedSuffixes:["ело"],conjugationType:"past"}):e.endsWith("або")&&e.length>4?Up(e.slice(0,-3)+"ать",.82,{removedSuffixes:["або"],conjugationType:"past"}):e.endsWith("али")&&e.length>4?Up(e.slice(0,-3)+"ать",.85,{removedSuffixes:["али"],conjugationType:"past"}):e.endsWith("или")&&e.length>4?Up(e.slice(0,-3)+"ить",.85,{removedSuffixes:["или"],conjugationType:"past"}):e.endsWith("ал")&&e.length>3?Up(e.slice(0,-2)+"ать",.82,{removedSuffixes:["ал"],conjugationType:"past"}):e.endsWith("ил")&&e.length>3?Up(e.slice(0,-2)+"ить",.82,{removedSuffixes:["ил"],conjugationType:"past"}):null}tryPresentTenseNormalization(e){return e.endsWith("ишь")&&e.length>4?Up(e.slice(0,-3)+"ить",.8,{removedSuffixes:["ишь"],conjugationType:"present"}):e.endsWith("ит")&&e.length>3?Up(e.slice(0,-2)+"ить",.78,{removedSuffixes:["ит"],conjugationType:"present"}):e.endsWith("им")&&e.length>3?Up(e.slice(0,-2)+"ить",.78,{removedSuffixes:["им"],conjugationType:"present"}):e.endsWith("ят")&&e.length>3?Up(e.slice(0,-2)+"ить",.78,{removedSuffixes:["ят"],conjugationType:"present"}):e.endsWith("ешь")&&e.length>4?Up(e.slice(0,-3)+"ать",.75,{removedSuffixes:["ешь"],conjugationType:"present"}):e.endsWith("ет")&&e.length>3?Up(e.slice(0,-2)+"ать",.72,{removedSuffixes:["ет"],conjugationType:"present"}):e.endsWith("ем")&&e.length>3?Up(e.slice(0,-2)+"ать",.72,{removedSuffixes:["ем"],conjugationType:"present"}):e.endsWith("ют")&&e.length>3?Up(e.slice(0,-2)+"ать",.75,{removedSuffixes:["ют"],conjugationType:"present"}):e.endsWith("ут")&&e.length>3?Up(e.slice(0,-2)+"ать",.72,{removedSuffixes:["ут"],conjugationType:"present"}):null}})}}),_k={};am(_k,{RussianTokenizer:()=>Mk,russianTokenizer:()=>$k});var qk,Vk,Dk=im({"src/tokenizers/russian.ts"(){Bd(),Wk(),yd(),Fd(),ty(),Bf(),Zh(),Ik=new Set(["в","во","на","с","со","к","ко","о","об","обо","у","от","до","из","за","по","под","над","перед","передо","между","через","без","для","при","про","после","вокруг","против","вместо","кроме","среди"]),Rk=[{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"}],$k=new(Mk=class extends Hp{constructor(){super(),this.language="ru",this.direction="ltr",this.initializeKeywordsFromProfile(md,Rk),this.setNormalizer(new Pk),this.registerExtractors([...Qh(),new Rf("russian-keyword",/[a-zA-Zа-яА-ЯёЁ]/,Mf),new fu,new hu,new Gh,new $d,new Wd])}classifyToken(e){const t=e.toLowerCase();return Ik.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"}})}});var Bk,Hk,Fk,Uk,Kk=im({"src/tokenizers/morphology/ukrainian-normalizer.ts"(){my(),qk=new Map([["перемкни","перемкнути"],["додай","додати"],["видали","видалити"],["прибери","прибрати"],["поклади","покласти"],["помісти","помістити"],["встав","вставити"],["візьми","взяти"],["створи","створити"],["клонуй","клонувати"],["поміняй","поміняти"],["трансформуй","трансформувати"],["встанови","встановити"],["задай","задати"],["отримай","отримати"],["збільш","збільшити"],["зменш","зменшити"],["запиши","записати"],["покажи","показати"],["сховай","сховати"],["приховай","приховати"],["анімуй","анімувати"],["виклич","викликати"],["надішли","надіслати"],["сфокусуй","сфокусувати"],["розфокусуй","розфокусувати"],["перейди","перейти"],["йди","йти"],["чекай","чекати"],["зачекай","зачекати"],["завантаж","завантажити"],["повтори","повторити"],["продовжуй","продовжити"],["кинь","кинути"],["поверни","повернути"],["скажи","сказати"],["ініціалізуй","ініціалізувати"],["виміряй","виміряти"]]),new(Vk=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 Fp(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||Fp(e)}tryReflexiveNormalization(e){const t=e.slice(0,-2);if(e.endsWith("тися")||e.endsWith("чися"))return Fp(e);const r=this.normalizeNonReflexive(t);if(r.confidence<1){return Up(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 Fp(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||Fp(e)}tryImperativeLookup(e){return qk.has(e)?Up(qk.get(e),.95,{removedSuffixes:["imperative"],conjugationType:"imperative"}):null}tryGenericImperativeNormalization(e){return e.endsWith("йте")&&e.length>5?Up(e.slice(0,-3)+"ти",.8,{removedSuffixes:["йте"],conjugationType:"imperative"}):e.endsWith("іть")&&e.length>5?Up(e.slice(0,-3)+"ити",.8,{removedSuffixes:["іть"],conjugationType:"imperative"}):e.endsWith("й")&&e.length>3?Up(e.slice(0,-1)+"ти",.75,{removedSuffixes:["й"],conjugationType:"imperative"}):e.endsWith("и")&&e.length>3?Up(e+"ти",.7,{removedSuffixes:["и→ити"],conjugationType:"imperative"}):null}tryPastTenseNormalization(e){return e.endsWith("ала")&&e.length>4?Up(e.slice(0,-3)+"ати",.85,{removedSuffixes:["ала"],conjugationType:"past"}):e.endsWith("ила")&&e.length>4?Up(e.slice(0,-3)+"ити",.85,{removedSuffixes:["ила"],conjugationType:"past"}):e.endsWith("али")&&e.length>4?Up(e.slice(0,-3)+"ати",.85,{removedSuffixes:["али"],conjugationType:"past"}):e.endsWith("или")&&e.length>4?Up(e.slice(0,-3)+"ити",.85,{removedSuffixes:["или"],conjugationType:"past"}):e.endsWith("ав")&&e.length>3?Up(e.slice(0,-2)+"ати",.82,{removedSuffixes:["ав"],conjugationType:"past"}):e.endsWith("ив")&&e.length>3?Up(e.slice(0,-2)+"ити",.82,{removedSuffixes:["ив"],conjugationType:"past"}):null}tryPresentTenseNormalization(e){return e.endsWith("иш")&&e.length>3?Up(e.slice(0,-2)+"ити",.8,{removedSuffixes:["иш"],conjugationType:"present"}):e.endsWith("ить")&&e.length>4?Up(e.slice(0,-3)+"ити",.78,{removedSuffixes:["ить"],conjugationType:"present"}):e.endsWith("имо")&&e.length>4?Up(e.slice(0,-3)+"ити",.8,{removedSuffixes:["имо"],conjugationType:"present"}):e.endsWith("ять")&&e.length>4?Up(e.slice(0,-3)+"ити",.78,{removedSuffixes:["ять"],conjugationType:"present"}):e.endsWith("єш")&&e.length>3?Up(e.slice(0,-2)+"ати",.78,{removedSuffixes:["єш"],conjugationType:"present"}):e.endsWith("еш")&&e.length>3?Up(e.slice(0,-2)+"ати",.75,{removedSuffixes:["еш"],conjugationType:"present"}):e.endsWith("є")&&e.length>2?Up(e.slice(0,-1)+"ати",.72,{removedSuffixes:["є"],conjugationType:"present"}):e.endsWith("ємо")&&e.length>4?Up(e.slice(0,-3)+"ати",.8,{removedSuffixes:["ємо"],conjugationType:"present"}):e.endsWith("ють")&&e.length>4?Up(e.slice(0,-3)+"ати",.78,{removedSuffixes:["ють"],conjugationType:"present"}):e.endsWith("уть")&&e.length>4?Up(e.slice(0,-3)+"ати",.75,{removedSuffixes:["уть"],conjugationType:"present"}):null}})}}),Gk={};am(Gk,{UkrainianTokenizer:()=>Fk,ukrainianTokenizer:()=>Uk});var Jk,Yk,Zk,Xk,Qk=im({"src/tokenizers/ukrainian.ts"(){Bd(),Kk(),Pd(),Fd(),ty(),Bf(),Zh(),Bk=new Set(["в","у","на","з","із","зі","до","від","о","об","при","для","під","над","перед","між","через","без","по","за","про","після","навколо","проти","замість","крім","серед","к"]),Hk=[{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"}],Uk=new(Fk=class extends Hp{constructor(){super(),this.language="uk",this.direction="ltr",this.initializeKeywordsFromProfile(Cd,Hk),this.setNormalizer(new Vk),this.registerExtractors([...Qh(),new Rf("ukrainian-keyword",/[a-zA-Zа-яА-ЯіІїЇєЄґҐьЬ']/,$f),new fu,new hu,new Gh,new $d,new Wd])}classifyToken(e){const t=e.toLowerCase();return Bk.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"}})}}),ew={};am(ew,{HebrewTokenizer:()=>Zk,hebrewTokenizer:()=>Xk});var tw,rw,nw=im({"src/tokenizers/he.ts"(){Bd(),qm(),Fd(),ty(),Kh(),Jh(),Zh(),Jk=new Set(["על","את","אל","מן","עם","בתוך","מתוך","ליד","אחרי","לפני","בין","עד","של"]),Yk=[{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"}],Xk=new(Zk=class extends Hp{constructor(){super(),this.language="he",this.direction="rtl",this.initializeKeywordsFromProfile(Mm,Yk),this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractor(new Gh),this.registerExtractor(new Uh),this.registerExtractors([new qh]),this.registerExtractor(new $d),this.registerExtractor(new Wd)}classifyToken(e){return Jk.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 iw(e){return/[\u0900-\u097F\u0A8E-\u0A8F]/u.test(e)}var aw,ow,sw,lw,cw=im({"src/tokenizers/morphology/hindi-normalizer.ts"(){my(),tw=[{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(rw=class{constructor(){this.language="hi"}isNormalizable(e){return!(e.length<2)&&iw(e)}normalize(e){const t=this.tryConjugationNormalization(e);return t||Fp(e)}tryConjugationNormalization(e){for(const t of tw)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(i.length<(t.minStemLength??1))continue;if(a.length>0&&!iw(a))continue;return Up(a,t.confidence,{removedSuffixes:[t.suffix],conjugationType:t.type})}return null}})}}),uw={};am(uw,{HindiTokenizer:()=>sw,hindiTokenizer:()=>lw});var pw,mw,dw=im({"src/tokenizers/hindi.ts"(){Bd(),cw(),Bm(),Fd(),ty(),Jf(),Yf(),Zh(),aw=new Set(["को","में","पर","से","का","की","के","तक","ने"]),ow=[{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"}],lw=new(sw=class extends Hp{constructor(){super(),this.language="hi",this.direction="ltr",this.initializeKeywordsFromProfile(_m,ow),this.normalizer=new rw,this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractor(new Kf),this.registerExtractor(new Df),this.registerExtractor(new Gh),this.registerExtractor(new $d),this.registerExtractor(new Wd)}classifyToken(e){return aw.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")}})}});function fw(e){return/[\u0980-\u09FF]/u.test(e)}var hw,yw,gw,vw,kw=im({"src/tokenizers/morphology/bengali-normalizer.ts"(){my(),pw=[{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}],mw=new class{constructor(){this.language="bn"}isNormalizable(e){return!(e.length<2)&&fw(e)}normalize(e){const t=this.tryConjugationNormalization(e);return t||Fp(e)}tryConjugationNormalization(e){for(const t of pw)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(i.length<(t.minStemLength??1))continue;if(a.length>0&&!fw(a))continue;return Up(a,t.confidence,{removedSuffixes:[t.suffix],conjugationType:t.type})}return null}}}}),ww={};am(ww,{BengaliTokenizer:()=>gw,bengaliTokenizer:()=>vw});var bw,zw,xw,Ew=im({"src/tokenizers/bengali.ts"(){Bd(),kw(),Sm(),Fd(),ty(),th(),rh(),Zh(),hw=new Set(["কে","তে","থেকে","র","এর","দিয়ে","জন্য","পর্যন্ত","এ","মধ্যে"]),yw=[{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"}],vw=new(gw=class extends Hp{constructor(){super(),this.language="bn",this.direction="ltr",this.initializeKeywordsFromProfile(bm,yw),this.setNormalizer(mw),this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractor(new Qf),this.registerExtractor(new Gf),this.registerExtractor(new Gh),this.registerExtractor(new $d),this.registerExtractor(new Wd)}classifyToken(e){return hw.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")}})}}),Sw={};am(Sw,{ThaiTokenizer:()=>zw,thaiTokenizer:()=>xw});var Tw,Cw,Aw,Lw=im({"src/tokenizers/thai.ts"(){Bd(),zd(),Fd(),ty(),oh(),bw=[{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"}],xw=new(zw=class extends Hp{constructor(){super(),this.language="th",this.direction="ltr",this.initializeKeywordsFromProfile(vd,bw),this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractors([new eh]),this.registerExtractor(new $d),this.registerExtractor(new Wd)}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"}})}}),jw={};am(jw,{MalayTokenizer:()=>Cw,malayTokenizer:()=>Aw});var Pw,Nw,Ow,Iw,Rw,Mw=im({"src/tokenizers/ms.ts"(){Bd(),id(),Fd(),ty(),uh(),Tw=[{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"}],Aw=new(Cw=class extends Hp{constructor(){super(),this.language="ms",this.direction="ltr",this.initializeKeywordsFromProfile(ed,Tw),this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractors([new ah]),this.registerExtractor(new $d),this.registerExtractor(new Wd)}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 $w(e){const t=e.charCodeAt(0);return t>=65&&t<=90||t>=97&&t<=122||("ñ"===e||"Ñ"===e)}var Ww,_w,qw,Vw=im({"src/tokenizers/morphology/tagalog-normalizer.ts"(){my(),Pw=[{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}],Nw=[{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}],Ow=["um","in"],Iw=[{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"}],Rw=new class{constructor(){this.language="tl"}isNormalizable(e){return!!function(e){for(const t of e)if($w(t))return!0;return!1}(e)&&!(e.length<2)}normalize(e){let t=e.toLowerCase(),r=1;const n=[],i=[],a=[];for(const e of Pw)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 Nw)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(t.length<4)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(t.length<5)return null;let r=0;for(let e=0;e<t.length&&!"aeiou".includes(t[e]);e++)r=e+1;if(0===r)return null;for(const e of Ow){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 Iw)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?Fp(e):Up(t,r,{removedPrefixes:n,removedSuffixes:i,appliedRules:a})}}}}),Dw={};am(Dw,{TagalogTokenizer:()=>_w,tagalogTokenizer:()=>qw});var Bw,Hw=im({"src/tokenizers/tl.ts"(){Bd(),Sd(),Vw(),Fd(),ty(),yh(),Ww=[{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"}],qw=new(_w=class extends Hp{constructor(){super(),this.language="tl",this.direction="ltr",this.initializeKeywordsFromProfile(bd,Ww),this.setNormalizer(Rw),this.registerExtractors(Qh()),this.registerExtractor(new fu),this.registerExtractor(new hu),this.registerExtractors([new ch]),this.registerExtractor(new $d),this.registerExtractor(new Wd)}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 Fw(e){switch(e){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}}}];default:return[]}}var Uw,Kw,Gw,Jw=im({"src/patterns/event-handler.ts"(){Bw={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 Yw(e,t){return e.replace(/\{(\w+)\}/g,(e,r)=>String(t[r]??`{${r}}`))}function Zw(e,t,r={},n){const i=Yw(Kw[e],r),a=Gw[e],o=a?Yw(a,r):void 0;return{code:e,message:i,severity:t,...n&&{role:n},...o&&{suggestion:o}}}var Xw,Qw,eb=im({"src/generators/schema-error-codes.ts"(){Uw={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"},Kw={[Uw.AMBIGUOUS_TYPE_LITERAL_SELECTOR]:"Role '{role}' accepts both 'literal' and 'selector'. This may cause ambiguous type inference for values starting with special characters (* . # etc.).",[Uw.TOO_MANY_EXPECTED_TYPES]:"Role '{role}' accepts {count} different types. This may make type inference unreliable.",[Uw.MULTI_TYPE_PATIENT_EXPECTED]:"Role '{role}' accepts multiple types (expected for {command} command).",[Uw.NO_REQUIRED_ROLES]:"Command has no required roles. Is this intentional?",[Uw.NO_REQUIRED_ROLES_EXPECTED]:"Command has no required roles (expected for {command}).",[Uw.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.",[Uw.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.",[Uw.EVENT_HANDLER_MISSING_EVENT]:"Event handler command should have an 'event' role to specify which event to listen for.",[Uw.EVENT_HANDLER_EVENT_NOT_REQUIRED]:"Event role should be required - every event handler needs an event to listen for.",[Uw.CONDITIONAL_MISSING_CONDITION]:"Conditional command should have a 'condition' role for the boolean expression.",[Uw.CONDITIONAL_CONDITION_NOT_REQUIRED]:"Condition role should be required - conditionals need a condition to evaluate.",[Uw.FOR_LOOP_MISSING_SOURCE]:"For-loop should have a 'source' role for the collection to iterate over.",[Uw.WHILE_LOOP_MISSING_CONDITION]:"While-loop should have a 'condition' role for the loop condition.",[Uw.VALUE_TYPE_MISMATCH]:"Role '{role}' of command '{command}' expects type [{expectedTypes}], got '{actualType}'.",[Uw.SELECTOR_KIND_MISMATCH]:"Role '{role}' of command '{command}' expects selector kind [{selectorKinds}], got '{actualKind}'.",[Uw.SELECTOR_KINDS_WITHOUT_SELECTOR_TYPE]:"Role '{role}' has selectorKinds but expectedTypes does not include 'selector'.",[Uw.KEYWORD_COLLISION]:"Keyword '{keyword}' is used by multiple commands: {commands}. Only the first-registered command will be reachable."},Gw={[Uw.AMBIGUOUS_TYPE_LITERAL_SELECTOR]:"Consider being more specific about which type is expected, or use explicit type markers.",[Uw.TOO_MANY_EXPECTED_TYPES]:"Consider narrowing the accepted types to improve type inference reliability.",[Uw.TRANSITION_PATIENT_ACCEPTS_SELECTOR]:"Remove 'selector' from expectedTypes and only accept 'literal'.",[Uw.TRANSITION_MISSING_GOAL]:"Add a 'goal' role with expectedTypes ['literal', 'variable'].",[Uw.EVENT_HANDLER_MISSING_EVENT]:"Add an 'event' role with expectedTypes ['literal'].",[Uw.EVENT_HANDLER_EVENT_NOT_REQUIRED]:"Set required: true on the 'event' role.",[Uw.CONDITIONAL_MISSING_CONDITION]:"Add a 'condition' role with expectedTypes ['expression'].",[Uw.CONDITIONAL_CONDITION_NOT_REQUIRED]:"Set required: true on the 'condition' role.",[Uw.FOR_LOOP_MISSING_SOURCE]:"Add a 'source' role for the collection to iterate over.",[Uw.WHILE_LOOP_MISSING_CONDITION]:"Add a 'condition' role for the loop continuation condition.",[Uw.VALUE_TYPE_MISMATCH]:"Ensure the value matches one of the expected types: [{expectedTypes}].",[Uw.SELECTOR_KIND_MISMATCH]:"Use a selector of the correct kind: [{selectorKinds}].",[Uw.SELECTOR_KINDS_WITHOUT_SELECTOR_TYPE]:"Either add 'selector' to expectedTypes or remove selectorKinds.",[Uw.KEYWORD_COLLISION]:"Give each command a unique keyword. Move the shared keyword to alternatives on one command, or use a more specific translation."}}}),tb={};function rb(e){const t=[];for(const r of e.roles)r.expectedTypes.includes("literal")&&r.expectedTypes.includes("selector")&&("patient"===r.role&&Xw.has(e.action)?t.push(Zw(Uw.MULTI_TYPE_PATIENT_EXPECTED,"note",{role:r.role,command:e.action},r.role)):t.push(Zw(Uw.AMBIGUOUS_TYPE_LITERAL_SELECTOR,"warning",{role:r.role},r.role))),r.expectedTypes.length>3&&!Xw.has(e.action)&&t.push(Zw(Uw.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(Zw(Uw.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(Zw(Uw.TRANSITION_PATIENT_ACCEPTS_SELECTOR,"warning",{},"patient"));r&&!n&&t.push(Zw(Uw.TRANSITION_MISSING_GOAL,"error",{}))}(e,t);break;case"on":!function(e,t){const r=e.roles.find(e=>"event"===e.role);r||t.push(Zw(Uw.EVENT_HANDLER_MISSING_EVENT,"warning",{}));r&&!r.required&&t.push(Zw(Uw.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(Zw(Uw.CONDITIONAL_MISSING_CONDITION,"warning",{}));r&&!r.required&&t.push(Zw(Uw.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(Zw(Uw.FOR_LOOP_MISSING_SOURCE,"warning",{}))}else if("while"===e.action){e.roles.find(e=>"condition"===e.role)||t.push(Zw(Uw.WHILE_LOOP_MISSING_CONDITION,"warning",{}))}}(e,t)}return 0===e.roles.filter(e=>e.required).length&&(Qw.has(e.action)?t.push(Zw(Uw.NO_REQUIRED_ROLES_EXPECTED,"note",{command:e.action})):t.push(Zw(Uw.NO_REQUIRED_ROLES,"warning",{}))),function(e,t){return{action:e,items:t}}(e.action,t)}function nb(e,t={}){const r=new Map,{includeNotes:n=!1}=t;for(const[t,i]of Object.entries(e)){const e=rb(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 ib(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 ab(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 ob(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:Uw.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:Uw.SELECTOR_KIND_MISMATCH})))}return r}function sb(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(r.length<=1)continue;const i=n.filter(e=>e.isPrimary).length;let a;a=i>=2?"primary-primary":1===i?"primary-alternative":"alternative-alternative",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 lb(e){const t=[];for(const[,r]of Object.entries(e)){const e=sb(r);e.collisions.length>0&&t.push(e)}return t.sort((e,t)=>e.language.localeCompare(t.language))}am(tb,{SchemaErrorCodes:()=>Uw,formatValidationResults:()=>ib,getValidationStats:()=>ab,validateAllKeywordCollisions:()=>lb,validateAllSchemas:()=>nb,validateCommandSchema:()=>rb,validateKeywordCollisions:()=>sb,validateRoleValues:()=>ob});var cb,ub,pb,mb,db,fb,hb,yb,gb,vb,kb,wb,bb,zb,xb,Eb,Sb,Tb=im({"src/generators/schema-validator.ts"(){eb(),Xw=new Set(["put","append","prepend","log","throw","make","measure","return","swap","morph","beep","copy"]),Qw=new Set(["compound","else","halt","continue","async","init","settle","focus","blur","return","js","measure","break","exit","beep","empty","open","close","select","clear","reset","breakpoint"])}});function Cb(e){return Sb[e]}function Ab(){return Object.values(Sb).filter(e=>e.roles.length>0)}var Lb=im({"src/generators/command-schemas.ts"(){Sb={toggle:cb={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:ub={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:pb={action:"remove",description:"Remove a class or attribute from an element",category:"dom-class",primaryRole:"patient",targetRole:"source",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:mb={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"},markerVariants:{en:["before","after"]},methodCarrier:"method"}],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:db={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:fb={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:hb={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:yb={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:gb={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:vb={action:"wait",description:"Wait for a duration or event",category:"async",primaryRole:"duration",roles:[{role:"duration",description:"Duration or event to wait for",required:!0,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:1}]},fetch:kb={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,markerOverride:{en:"as"}},{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:wb={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:bb={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:zb={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:xb={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:""}}]},scroll:{action:"scroll",description:"Scroll the viewport to a target element",category:"navigation",primaryRole:"destination",argSkipTokens:["of","the","top","bottom","middle","center","nearest","left","right","smoothly","instantly"],roles:[{role:"destination",description:"The element to scroll to",required:!0,expectedTypes:["selector","reference"],svoPosition:1,sovPosition:1,markerOverride:{en:"to"}}]},push:{action:"push",description:"Push a URL onto the browser history",category:"navigation",primaryRole:"patient",roles:[{role:"patient",description:"The URL to push (after the `url` keyword)",required:!0,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:1,markerOverride:Eb={en:"url",es:"url",pt:"url",fr:"url",de:"url",it:"url",ja:"url",ko:"url",zh:"url",ar:"url",he:"url",hi:"url",bn:"url",tr:"url",ru:"url",uk:"url",pl:"url",id:"url",vi:"url",th:"url",ms:"url",tl:"url",sw:"url",qu:"url"}}]},replace:{action:"replace",description:"Replace the current browser history entry with a URL",category:"navigation",primaryRole:"patient",roles:[{role:"patient",description:"The URL to replace with (after the `url` keyword)",required:!0,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:1,markerOverride:Eb}]},process:{action:"process",description:"Process hx-partial markup in HTML content",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The HTML content (string, element, or response) to process",required:!0,expectedTypes:["literal","reference","expression"],svoPosition:1,sovPosition:1,markerOverride:{en:"partials in",es:"partials in",pt:"partials in",fr:"partials in",de:"partials in",it:"partials in",ja:"partials in",ko:"partials in",zh:"partials in",ar:"partials in",he:"partials in",hi:"partials in",bn:"partials in",tr:"partials in",ru:"partials in",uk:"partials in",pl:"partials in",id:"partials in",vi:"partials in",th:"partials in",ms:"partials in",tl:"partials in",sw:"partials in",qu:"partials in"}}]},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}]},empty:{action:"empty",description:"Remove all children from an element (sets innerHTML to empty)",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The element to empty (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:1,sovPosition:1}]},open:{action:"open",description:"Open a dialog, details element, or popover",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The element to open (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:2,sovPosition:2},{role:"style",description:"Open-mode variant (modal / non-modal) for <dialog>",required:!1,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:1,markerOverride:{en:"as"}}]},close:{action:"close",description:"Close a dialog, details element, or popover",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The element to close (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:1,sovPosition:1}]},select:{action:"select",description:"Select the contents of a text field or DOM element",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The element whose contents to select (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:1,sovPosition:1}]},clear:{action:"clear",description:"Clear a variable, local, or input element",category:"variable",primaryRole:"patient",roles:[{role:"patient",description:"The variable or element to clear (defaults to me)",required:!1,expectedTypes:["selector","reference","expression"],default:{type:"reference",value:"me"},svoPosition:1,sovPosition:1}]},reset:{action:"reset",description:"Reset a <form> element to its default values",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The form element to reset (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:1,sovPosition:1}]},breakpoint:{action:"breakpoint",description:"Drop into the debugger",category:"control-flow",primaryRole:"patient",roles:[]},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(()=>(Tb(),tb)).then(({validateAllSchemas:e})=>{e(Sb)}).catch(e=>{})}});function jb(e,t){const r="SOV"===t?"sovPosition":"svoPosition";return[...e].sort((e,t)=>(e[r]??99)-(t[r]??99))}var Pb=im({"src/parser/utils/role-positioning.ts"(){}});var Nb=im({"src/parser/utils/marker-resolution.ts"(){}});var Ob=im({"src/generators/event-handlers-sov.ts"(){}});function Ib(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 Rb(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 Mb,$b=im({"src/generators/event-handlers-vso.ts"(){}});function Wb(){return fm().map(e=>dm(e)).filter(e=>void 0!==e)}function _b(e,t,r=Mb){const n=`${e.action}-${t.code}-generated`,i=r.basePriority??100,a=t.keywords[e.action];if(!a)throw new 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=jb(e.roles,t.wordOrder);for(const e of n){const n=Hb(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=Fb(e,t),l=function(e,t,r){const n=[],i=jb(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 qb(e,t,r=Mb){if(0===e.roles.filter(e=>!e.required).length)return null;const n=e.roles.filter(e=>e.required);return{..._b({...e,roles:n},t,r),id:`${e.action}-${t.code}-generated-simple`,priority:(r.basePriority??100)-5,extraction:Fb(e,t)}}function Vb(e,t,r=Mb){const n=[];if(n.push(_b(e,t,r)),r.generateSimpleVariants){const i=qb(e,t,r);i&&n.push(i)}return n}function Db(e,t=Mb){const r=[],n=Ab();for(const i of n){if(!e.keywords[i.action])continue;const n=Vb(i,e,t);if(r.push(...n),e.eventHandler?.eventMarker){const n=Bb(i,e,t);r.push(...n)}}return r}function Bb(e,t,r=Mb){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(Rb(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(Ib(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?Rb(e,t,a,i,r):Ib(e,t,a,i,r));return n}function Hb(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){const e=n?n.split(/\s+/).filter(Boolean):[];if("before"===(i?.position??"before")){for(const t of e)r.push({type:"literal",value:t});r.push(a)}else{r.push(a);for(const t of e)r.push({type:"literal",value:t})}}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 Fb(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 Ub=im({"src/generators/pattern-generator.ts"(){Lb(),Pb(),Nb(),Ob(),$b(),km(),Mb={basePriority:100,generateSimpleVariants:!0,generateAlternatives:!0}}});function Kb(e){switch(e){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:"把"}}}];default:return[]}}var Gb=im({"src/patterns/toggle.ts"(){}});function Jb(e){switch(e){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}}}];default:return[]}}var Yb,Zb,Xb,Qb,ez,tz,rz,nz,iz,az,oz,sz=im({"src/patterns/put.ts"(){}}),lz={};function cz(){const e=[];e.push(...Kb("en")),e.push(...Jb("en")),e.push(...Fw("en")),e.push(Yb,Zb,Xb,Qb,ez,tz,rz,nz,iz,az,oz);const t=Db(Cm);return e.push(...t),e}am(lz,{buildEnglishPatterns:()=>cz});var uz=im({"src/patterns/en.ts"(){Pm(),Ub(),Gb(),sz(),Jw(),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"}}},Zb={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}}},Xb={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}}},Qb={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"}}}},ez={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"}}}},tz={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"}}},rz={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"}}}},nz={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}}},iz={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}}},az={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}}},oz={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}}}}}),pz=.5,mz=new Set(["me","my","myself","you","your","yourself","it","its","result","event","target","body","detail","window","document"]),dz=new Set(["and","or","not","no"]),fz=new Set(["true","false","null","undefined"]),hz=new Set(["ms","s","seconds","second","milliseconds","millisecond","minutes","minute","hours","hour"]);var yz=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(;r<e.length&&/\s/.test(e[r]);)s()}function c(t){let n="";for(;r<e.length&&t(e[r]);)n+=s();return n}function u(t){let n=t;for(s();r<e.length&&e[r]!==t;)"\\"===e[r]&&r+1<e.length?(n+=s(),n+=s()):n+=s();return r<e.length&&(n+=s()),n}function p(){let t="`";for(s();r<e.length&&"`"!==e[r];)"\\"===e[r]&&r+1<e.length?(t+=s(),t+=s()):t+=s();return r<e.length&&(t+=s()),t}function m(){let t="<";for(s();r<e.length&&(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(;r<e.length&&(l(),!(r>=e.length));){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();r<e.length&&"]"!==e[r];)i+='"'===e[r]||"'"===e[r]?u(e[r]):s();r<e.length&&(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));hz.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();mz.has(r)?t.push(d("CONTEXT_VAR",e,n)):dz.has(r)?t.push(d("LOGICAL",e,n)):fz.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 new 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 new Error("Expected ) after expression");return e}if(this.match("LBRACKET"))return this.parseArrayLiteral();if(this.match("LBRACE"))return this.parseObjectLiteral();throw new 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 new 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 new 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 new Error("Expected property name");t=this.advance().value}if(!this.match("COLON"))throw new Error("Expected : after property name");const r=this.parseExpression();e.push({key:t,value:r})}while(this.match("COMMA"));if(!this.match("RBRACE"))throw new 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 new 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 gz(e,t){switch(e.type){case"literal":return vz(e);case"selector":return kz(e,t);case"reference":return wz(e);case"property-path":return bz(e,t);case"expression":return zz(e);case"flag":return{type:"literal",value:e.enabled};default:throw new Error(`Unknown semantic value type: ${e.type}`)}}function vz(e){const t={type:"literal",value:e.value};return e.dataType?{...t,dataType:e.dataType}:t}function kz(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 wz(e){return{type:"contextReference",contextType:e.value,name:e.value}}function bz(e,t){return{type:"propertyAccess",object:gz(e.object,t),property:e.property}}function zz(e){const t=(r=e.raw,(new yz).parse(r));var r;if(!t.success||!t.node){return{type:"identifier",name:e.raw}}return t.node}function xz(e,t){return e.roles.get(t)}function Ez(e,t,r){const n=xz(e,t);return n?gz(n,r):void 0}function Sz(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 Tz={action:"toggle",toAST(e,t){const r=Ez(e,"patient"),n=Ez(e,"destination"),i=Ez(e,"duration"),a=r?[r]:[],o={};return n&&(o.on=n),i&&(o.for=i),Sz("toggle",a,o)}},Cz={action:"add",toAST(e,t){const r=Ez(e,"patient"),n=Ez(e,"destination"),i=r?[r]:[],a={};return n&&(a.to=n),Sz("add",i,a)}},Az={action:"remove",toAST(e,t){const r=Ez(e,"patient"),n=Ez(e,"source"),i=r?[r]:[],a={};return n&&(a.from=n),Sz("remove",i,a)}},Lz={action:"set",toAST(e,t){const r=Ez(e,"destination"),n=Ez(e,"patient"),i=[],a={};return r&&i.push(r),n&&(a.to=n),Sz("set",i,a)}},jz={action:"show",toAST(e,t){const r=Ez(e,"destination"),n=Ez(e,"patient"),i=Ez(e,"duration"),a=[],o={},s=r??n;return s&&a.push(s),i&&(o.with=i),Sz("show",a,o)}},Pz={action:"hide",toAST(e,t){const r=Ez(e,"destination"),n=Ez(e,"patient"),i=Ez(e,"duration"),a=[],o={},s=r??n;return s&&a.push(s),i&&(o.with=i),Sz("hide",a,o)}},Nz={action:"increment",toAST(e,t){const r=Ez(e,"destination"),n=Ez(e,"patient"),i=Ez(e,"quantity"),a=[],o={},s=r??n;return s&&a.push(s),i&&(o.by=i),Sz("increment",a,o)}},Oz={action:"decrement",toAST(e,t){const r=Ez(e,"destination"),n=Ez(e,"patient"),i=Ez(e,"quantity"),a=[],o={},s=r??n;return s&&a.push(s),i&&(o.by=i),Sz("decrement",a,o)}},Iz={action:"wait",toAST(e,t){const r=Ez(e,"duration");return Sz("wait",r?[r]:[],void 0,{isBlocking:!0})}},Rz={action:"log",toAST(e,t){const r=Ez(e,"patient"),n=[];return r&&n.push(r),Sz("log",n)}},Mz={action:"put",toAST(e,t){const r=Ez(e,"patient"),n=Ez(e,"destination"),i=xz(e,"method"),a=r?[r]:[],o={};if(n){o["literal"===i?.type?String(i.value):"into"]=n}return Sz("put",a,o)}},$z={action:"fetch",toAST(e,t){const r=Ez(e,"source"),n=Ez(e,"method"),i=Ez(e,"responseType"),a=Ez(e,"patient"),o=r?[r]:[],s={};return n&&(s.with=n),i&&(s.as=i),a&&(s.body=a),Sz("fetch",o,s,{isBlocking:!0})}},Wz={action:"append",toAST(e,t){const r=Ez(e,"patient"),n=Ez(e,"destination"),i=r?[r]:[],a={};return n&&(a.to=n),Sz("append",i,a)}},_z={action:"prepend",toAST(e,t){const r=Ez(e,"patient"),n=Ez(e,"destination"),i=r?[r]:[],a={};return n&&(a.to=n),Sz("prepend",i,a)}},qz={action:"trigger",toAST(e,t){const r=Ez(e,"event"),n=Ez(e,"destination"),i=r?[r]:[],a={};return n&&(a.on=n),Sz("trigger",i,a)}},Vz={action:"send",toAST(e,t){const r=Ez(e,"event"),n=Ez(e,"destination"),i=Ez(e,"patient"),a=r?[r]:[],o={};return n&&(o.to=n),i&&(o.detail=i),Sz("send",a,o)}},Dz={action:"go",toAST(e,t){const r=Ez(e,"source"),n=Ez(e,"destination"),i=[],a={};return r&&i.push(r),n&&(a.to=n),Sz("go",i,a)}},Bz={action:"transition",toAST(e,t){const r=Ez(e,"patient"),n=Ez(e,"goal"),i=Ez(e,"duration"),a=Ez(e,"destination"),o=r?[r]:[],s={};return n&&(s.to=n),i&&(s.over=i),a&&(s.on=a),Sz("transition",o,s)}},Hz={action:"focus",toAST(e,t){const r=Ez(e,"destination"),n=Ez(e,"patient"),i=[],a=r??n;return a&&i.push(a),Sz("focus",i,{})}},Fz={action:"blur",toAST(e,t){const r=Ez(e,"destination"),n=Ez(e,"patient"),i=[],a=r??n;return a&&i.push(a),Sz("blur",i)}},Uz={action:"get",toAST(e,t){const r=Ez(e,"source"),n=Ez(e,"patient"),i=[],a=r??n;return a&&i.push(a),Sz("get",i)}},Kz={action:"take",toAST(e,t){const r=Ez(e,"patient"),n=Ez(e,"source"),i=r?[r]:[],a={};return n&&(a.from=n),Sz("take",i,a)}},Gz={action:"call",toAST(e,t){const r=Ez(e,"patient");return Sz("call",r?[r]:[])}},Jz={action:"return",toAST(e,t){const r=Ez(e,"patient");return Sz("return",r?[r]:[])}},Yz={action:"halt",toAST:(e,t)=>Sz("halt",[])},Zz={action:"throw",toAST(e,t){const r=Ez(e,"patient");return Sz("throw",r?[r]:[])}},Xz={action:"settle",toAST(e,t){const r=Ez(e,"destination"),n=Ez(e,"patient"),i=[],a=r??n;return a&&i.push(a),Sz("settle",i,void 0,{isBlocking:!0})}},Qz={action:"swap",toAST(e,t){const r=Ez(e,"patient"),n=Ez(e,"source"),i=Ez(e,"destination"),a=Ez(e,"style"),o=[],s={};return r&&o.push(r),n&&o.push(n),i&&(s.on=i),a&&(s.with=a),Sz("swap",o,s)}},ex={action:"morph",toAST(e,t){const r=Ez(e,"source"),n=Ez(e,"destination"),i=Ez(e,"patient"),a=[],o={},s=r??i;return s&&a.push(s),n&&(o.on=n),Sz("morph",a,o)}},tx={action:"clone",toAST(e,t){const r=Ez(e,"source"),n=Ez(e,"destination"),i=Ez(e,"patient"),a=[],o={},s=r??i;return s&&a.push(s),n&&(o.into=n),Sz("clone",a,o)}},rx={action:"make",toAST(e,t){const r=Ez(e,"patient");return Sz("make",r?[r]:[])}},nx={action:"measure",toAST(e,t){const r=Ez(e,"patient"),n=Ez(e,"destination"),i=Ez(e,"source"),a=[],o={};r&&a.push(r);const s=n??i;return s&&(o.of=s),Sz("measure",a,o)}},ix={action:"tell",toAST(e,t){const r=Ez(e,"destination"),n=Ez(e,"patient"),i=[],a=r??n;return a&&i.push(a),Sz("tell",i)}},ax={action:"js",toAST(e,t){const r=Ez(e,"patient");return Sz("js",r?[r]:[])}},ox={action:"async",toAST:(e,t)=>Sz("async",[])},sx={action:"if",toAST(e,t){const r=Ez(e,"condition");return Sz("if",r?[r]:[])}},lx={action:"unless",toAST(e,t){const r=Ez(e,"condition");return Sz("unless",r?[r]:[])}},cx={action:"repeat",toAST(e,t){const r=Ez(e,"quantity"),n=Ez(e,"patient"),i=[],a=r??n;return a&&i.push(a),Sz("repeat",i)}},ux={action:"for",toAST(e,t){const r=Ez(e,"patient"),n=Ez(e,"source"),i=r?[r]:[],a={};return n&&(a.in=n),Sz("for",i,a)}},px={action:"while",toAST(e,t){const r=Ez(e,"condition");return Sz("while",r?[r]:[])}},mx={action:"continue",toAST:(e,t)=>Sz("continue",[])},dx={action:"default",toAST(e,t){const r=Ez(e,"patient"),n=Ez(e,"source"),i=r?[r]:[],a={};return n&&(a.to=n),Sz("default",i,a)}},fx={action:"init",toAST:(e,t)=>Sz("init",[])},hx={action:"behavior",toAST(e,t){const r=Ez(e,"patient");return Sz("behavior",r?[r]:[])}},yx={action:"install",toAST(e,t){const r=Ez(e,"patient"),n=Ez(e,"destination"),i=r?[r]:[],a={};return n&&(a.on=n),Sz("install",i,a)}},gx=new Map([["toggle",Tz],["add",Cz],["remove",Az],["set",Lz],["show",jz],["hide",Pz],["increment",Nz],["decrement",Oz],["wait",Iz],["log",Rz],["put",Mz],["fetch",$z],["append",Wz],["prepend",_z],["get",Uz],["take",Kz],["trigger",qz],["send",Vz],["on",{action:"on",toAST(e,t){const r=Ez(e,"event"),n=Ez(e,"source"),i=r?[r]:[],a={};return n&&(a.from=n),Sz("on",i,a)}}],["go",Dz],["transition",Bz],["focus",Hz],["blur",Fz],["call",Gz],["return",Jz],["halt",Yz],["throw",Zz],["settle",Xz],["swap",Qz],["morph",ex],["clone",tx],["measure",nx],["make",rx],["tell",ix],["default",dx],["js",ax],["async",ox],["if",sx],["unless",lx],["repeat",cx],["for",ux],["while",px],["continue",mx],["init",fx],["behavior",hx],["install",yx]]);function vx(e){return gx.get(e)}var kx=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 new Error(`Unknown semantic node kind: ${e.kind}`)}}buildCommand(e){const t=vx(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]=gz(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(gz(n))}for(const t of i){const n=e.roles.get(t);if(n){r[this.roleToModifierKey(t)]=gz(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=String(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=String(a.value));const l=e.roles.get("condition"),c=l?gz(l):void 0,u=e.roles.get("destination"),p=u?gz(u):void 0,m=e.eventModifiers;let d=o;if(m?.from){const e=m.from;"selector"!==e.type||o||(d=e.value)}const f=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}:{},...f&&f.length>0?{args:f,params:f}:{}}}buildConditional(e){const t=e.roles.get("condition");if(!t)throw new Error("Conditional node missing condition");const r=gz(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(gz(t));break}case"for":{e.loopVariable&&r.push({type:"string",value:e.loopVariable});const t=e.roles.get("source");t&&r.push(gz(t));break}case"while":case"until":{const t=e.roles.get("condition");t&&r.push(gz(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))}}};km(),zm(),Sm(),Am(),Pm(),Im(),$m(),qm(),Bm(),Um(),Jm(),Xm(),td(),id(),sd(),ud(),dd(),yd(),kd(),zd(),Sd(),Ad(),Pd(),Id(),_d();var wx=Object.freeze({ar:vm,bn:bm,de:Em,en:Cm,es:jm,fr:Om,he:Mm,hi:_m,id:Dm,it:Fm,ja:Gm,ko:Zm,ms:ed,pl:nd,pt:od,qu:cd,ru:md,sw:hd,th:vd,tl:bd,tr:Ed,uk:Cd,vi:jd,zh:Od});function bx(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 zx(e,t){return void 0!==t?{type:"literal",value:e,dataType:t}:{type:"literal",value:e}}function xx(e){return Cc(e)}function Ex(e){return{type:"reference",value:e}}function Sx(e,t){return{type:"property-path",object:e,property:t}}function Tx(e,t,r){const n={kind:"command",action:e,roles:new Map(Object.entries(t))};return void 0!==r?{...n,metadata:r}:n}function Cx(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 Ax(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}function Lx(e,t){return!t||0===t.length||(!!t.includes(e)||(!!t.includes("expression")||"property-path"===e&&t.some(e=>["selector","reference","expression"].includes(e))))}km();var jx=new Set(["بدل","غير","أضف","أزل","ضع","اجعل","عين","زد","انقص","سجل","أظهر","أخف","شغل","أرسل","ركز","شوش","توقف","انسخ","احذف","اصنع","انتظر","انتقال","أو"]),Px={patient:["على"],destination:["إلى","الى"],source:["من"],agent:["من"],manner:["ب"],style:["ب"],goal:["إلى","الى"],method:["ب"]},Nx=new class{calculate(e){return this.calculateWithBreakdown(e).final}calculateWithBreakdown(e){const t=this.scoreRoleCoverage(e),r=this.scoreStemPenalty(e),n=this.scoreLanguageBoost(e),i=this.scoreLanguageAdjustment(e);let a=t;return a=Math.max(.5,a+r),a=Math.min(1,a+n),a=Math.max(0,Math.min(1,a+i)),{roleCoverage:t,stemPenalty:r,languageBoost:n,languageAdjustment:i,final:a}}scoreRoleCoverage(e){const{pattern:t,captured:r}=e;let n=0,i=0;const a=e=>void 0!==t.extraction?.[e]?.default;for(const e of t.template.tokens)if("role"===e.type)i+=1,r.has(e.role)&&(n+=1);else if("group"===e.type)for(const t of e.tokens)"role"===t.type&&(i+=.8,r.has(t.role)?n+=.8:a(t.role)&&(n+=.48));return i>0?n/i:1}scoreStemPenalty(e){const{stemMatchCount:t,totalKeywordMatches:r}=e;return t<=0||r<=0?0:-t/r*.15}scoreLanguageBoost(e){const{pattern:t}=e;if("ar"!==t.language)return 0;const r=t.template.tokens[0];return r&&"literal"===r.type&&(jx.has(r.value)||r.alternatives?.some(e=>jx.has(e)))?.15:0}scoreLanguageAdjustment(e){const{pattern:t,captured:r}=e;if("ar"!==t.language)return 0;let n=0;for(const[e,t]of r.entries()){const r=Px[e];if(!r||0===r.length)continue;const i="metadata"in t?t.metadata:void 0;i&&"string"==typeof i.prepositionValue&&(r.includes(i.prepositionValue)?n+=.1:n-=.1)}return Math.max(-.1,Math.min(.1,n))}},Ox=class e{constructor(e){this.matchCache=new Map,this.stemMatchCount=0,this.totalKeywordMatches=0,this.confidenceModel=e??Nx}matchPattern(e,t){const r=e.mark(),n=new Map;this.currentProfile=dm(t.language),this.stemMatchCount=0,this.totalKeywordMatches=0;if(!this.matchTokenSequence(e,t.template.tokens,n))return e.reset(r),null;const i=this.confidenceModel.calculate({pattern:t,captured:n,stemMatchCount:this.stemMatchCount,totalKeywordMatches:this.totalKeywordMatches});return this.applyExtractionRules(t,n),{pattern:t,captured:n,consumedTokens:e.position()-r.position,confidence:i}}matchBest(e,t){this.matchCache.clear();const r=[],n=e.position();for(const i of t){const t=e.mark(),a=`${n}:${i.id}`;let o;this.matchCache.has(a)?o=this.matchCache.get(a):(o=this.matchPattern(e,i),this.matchCache.set(a,o)),o&&r.push(o),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 i=r[0];return this.matchPattern(e,i.pattern),i}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&&!Lx(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&&!Lx(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()),Sx(Ex(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()&&s.length<e.MAX_METHOD_ARGS;){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()&&s<e.MAX_PROPERTY_DEPTH;){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()&&r.length<e.MAX_METHOD_ARGS;){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(),Sx(bx(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 Sx(bx(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&&e.stemConfidence>=.7?"stem":"keyword"===e.kind&&e.value.toLowerCase()===t.toLowerCase()?"case-insensitive":"none"}tokenToSemanticValue(e){switch(e.kind){case"selector":return bx(e.value);case"literal":return this.parseLiteralValue(e.value);case"keyword":const t=(e.normalized||e.value).toLowerCase();return xx(t)?Ex(t):zx(e.normalized||e.value);case"identifier":if(e.value.startsWith(":"))return Ex(e.value);const r=e.value.toLowerCase();return xx(r)?Ex(r):{type:"expression",raw:e.value};case"url":return zx(e.value,"string");default:return null}}parseLiteralValue(e){if(e.startsWith('"')||e.startsWith("'")||e.startsWith("`")||e.startsWith("「")){return zx(e.slice(1,-1),"string")}if("true"===e)return zx(!0,"boolean");if("false"===e)return zx(!1,"boolean");const t=e.match(/^(\d+(?:\.\d+)?)(ms|s|m|h)?$/);if(t){const r=parseFloat(t[1]);return t[2]?zx(e,"duration"):zx(r,"number")}const r=parseFloat(e);return isNaN(r)?zx(e,"string"):zx(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}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}};Ox.MAX_PROPERTY_DEPTH=10,Ox.MAX_METHOD_ARGS=20,Ox.ENGLISH_NOISE_WORDS=new Set(["the","a","an"]);var Ix=Ox,Rx=new Ix;function Mx(e,t){return ym(e,t)}function $x(){return fm()}km(),py(),Sy(),Wy(),Xy(),dg(),jg(),Wg(),Bd(),km(),Jw(),km();var Wx=class{render(e,t){if("compound"===e.kind)return this.renderCompound(e,t);const r=function(e,t){return gm(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=dm(t);if(!r?.keywords)return e;const n=r.keywords[e];return n?.primary??e}renderExplicit(e){return _c(e)}supportedLanguages(){return $x()}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}"`:String(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=dm(t);return r?.references?r.references[e.value]??e.value:e.value}renderPropertyPath(e,t){const r=dm(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}`}},_x=new Wx;function qx(e,t){return _x.render(e,t)}function Vx(e){return _x.renderExplicit(e)}Lb();var Dx={getSchema:Cb};function Bx(e){return jc(e,{schemaLookup:Dx})}var Hx=class extends Error{constructor(e,t,r,n){super(e),this.name="SemanticParseError",this.language=t,this.input=r,this.diagnostics=n}};function Fx(e,t,r){return{message:e,severity:t,source:"semantic-parser",...r&&{code:r}}}function Ux(e,t){return 0===t.length?e:{...e,diagnostics:t}}var Kx=class e{parse(e,t){const{modifiers:r,remainingInput:n}=this.extractStandaloneModifiers(e,t),i=n||e,a=[],o=Mx(i,t),s=gm(t);if(0===s.length)throw new Hx(`No patterns available for language: ${t}`,t,i,[Fx(`No patterns registered for language '${t}'`,"error","no-patterns")]);const l=[...s].sort((e,t)=>t.priority-e.priority),c=l.filter(e=>"on"===e.command),u=Rx.matchBest(o,c);if(u){a.push(Fx(`event pattern matched: ${u.pattern.id} (confidence: ${u.confidence.toFixed(2)})`,"info","pattern-match"));const e=this.buildEventHandler(u,o,t);return Ux(r?this.applyModifiers(e,r):e,a)}a.push(Fx(`event patterns: ${c.length} tried, no match`,"info","stage-event"));const p=l.filter(e=>"on"!==e.command),m=Rx.matchBest(o,p);if(m)return a.push(Fx(`command pattern matched: ${m.pattern.id} (confidence: ${m.confidence.toFixed(2)})`,"info","pattern-match")),Ux(this.buildCommand(m,t),a);a.push(Fx(`command patterns: ${p.length} tried, no match`,"info","stage-command"));const d=this.trySOVEventExtraction(i,t,l);if(d){a.push(Fx("SOV event extraction succeeded","info","stage-sov"));return Ux(r?this.applyModifiers(d,r):d,a)}a.push(Fx("SOV event extraction: no event keyword found","info","stage-sov"));const f=this.tryCompoundCommandParsing(o,p,t);if(f)return a.push(Fx("compound command parsing succeeded","info","stage-compound")),Ux(f,a);throw a.push(Fx("compound parsing: no then-keywords or no command matches","info","stage-compound")),a.push(Fx(`all parse stages exhausted for "${i}"`,"error","parse-failed")),new Hx(`Could not parse input in ${t}: ${i}`,t,i,a)}canParse(e,t){try{return this.parse(e,t),!0}catch{return!1}}supportedLanguages(){return $x()}buildCommand(e,t){if(!e)throw new Error("No match to build command from");const r={};for(const[t,n]of e.captured)r[t]=n;return Tx(e.pattern.command,r,{sourceLanguage:t,patternId:e.pattern.id,confidence:e.confidence})}buildEventHandler(e,t,r){if(!e)throw new Error("No match to build event handler from");const n=e.captured.get("event");if(!n)throw new Error("Event handler pattern matched but no event captured");const i=Rx.extractEventModifiers(t),a=this.extractOrConjunctionEvents(t,r);let o,s=n;if(a.length>0&&"literal"===n.type){s={type:"literal",value:[String(n.value),...a.map(e=>String("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=Tx(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=gm(r).filter(e=>"on"!==e.command).sort((e,t)=>t.priority-e.priority),n=gm(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=gm(r).filter(e=>"on"!==e.command).sort((e,t)=>t.priority-e.priority);o=this.parseBodyWithClauses(t,e,r)}return Cx(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?[Ax(n,"then",{sourceLanguage:r})]:n}parseClause(e,t,r){if(0===e.length)return[];const n=new bp(e,r),i=[];for(;!n.isAtEnd();){const e=Rx.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=dm(r);if(!n||"SOV"!==n.wordOrder)return[];const i=e.buildVerbLookup(n),a=e.buildMarkerToRoleLookup(n),o=[];let s=0;for(;s<t.length;){let e=-1,n="";for(let r=s;r<t.length;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;n<t.length;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(Tx(n,p,{sourceLanguage:r,confidence:.7})),s=c,s<t.length){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("*")?bx(r):"literal"===n.kind||n.value.startsWith('"')||n.value.startsWith("'")?zx(r):"reference"===n.kind?Ex(r):zx(r)}tokenToSemanticValue(e){const t=e.value;if("selector"===e.kind||t.startsWith("#")||t.startsWith(".")||t.startsWith("@")||t.startsWith("*"))return bx(t);if(t.startsWith('"')||t.startsWith("'"))return zx(t);if(/^-?\d+(\.\d+)?$/.test(t))return zx(parseFloat(t));if("true"===t||"真"===t||"참"===t||"doğru"===t)return zx(!0);if("false"===t||"偽"===t||"거짓"===t||"yanlış"===t)return zx(!1);const r=e.normalized?.toLowerCase();return"me"===r||"it"===r||"you"===r||"result"===r||"body"===r?Ex(r):"reference"===e.kind?Ex(e.normalized||"me"):zx(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=Rx.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=Tx(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=Rx.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 bp(n,r),a=this.parseBodyWithClauses(i,t,r);return 0===a.length?null:1===a.length?a[0]:Ax(a,"then",{sourceLanguage:r,confidence:.65})}trySOVEventExtraction(t,r,n){const i=e.SOV_EVENT_MARKERS[r];if(!i)return null;const a=Mx(t,r).tokens,o=Bw[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;t<a.length;t++){const r=a[t],n=r.value.toLowerCase();let l=n,d="";const f=n.indexOf("[");f>0&&(l=n.slice(0,f),d=r.value.slice(f));const h=r.normalized?.toLowerCase(),y=h&&e.KNOWN_EVENTS.has(h),g=s.has(n)||s.has(l),v=e.KNOWN_EVENTS.has(l);if(y||g||v){let e;if(e=y?h:g?o?.[n]??o?.[l]??l:l,!(i.size>0)){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;e<c+m;e++)d.add(e);if(l){const e=c+m;if(e<a.length){const t=a[e];"particle"!==t.kind&&"keyword"!==t.kind||!l.markers.has(t.value)||d.add(e)}for(let e=0;e<c;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 f=a.filter((e,t)=>!d.has(t));if(0===f.length)return null;const h=n.filter(e=>"on"!==e.command),y=new bp(f,r),g=this.parseBodyWithClauses(y,h,r);if(0===g.length)return null;const v={sourceLanguage:r,confidence:.75};return p&&(v.keyFilter=p),Cx({type:"literal",value:u},g,void 0,v)}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=Mx(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(e<n.length){const t=n[e];"keyword"!==t.kind&&"particle"!==t.kind||(e++,s++)}if(e<n.length){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}};Kx.KNOWN_EVENTS=new Set(["click","dblclick","input","change","submit","keydown","keyup","keypress","mouseover","mouseout","mousedown","mouseup","focus","blur","load","scroll","resize","contextmenu"]),Kx.SOV_EVENT_MARKERS={ja:new Set(["で"]),ko:new Set,tr:new Set(["de","da","te","ta"]),bn:new Set(["এ"]),qu:new Set(["pi"])},Kx.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"])}},Kx.STANDALONE_MODIFIERS={once:"once",debounced:"debounce",debounce:"debounce",throttled:"throttle",throttle:"throttle"},Kx.OR_KEYWORDS=new Set(["or","أو","o","ou","oder","atau","atau","或","または","또는","veya","অথবা","utaq","au","або","или","hoặc","lub","או","หรือ","o"]);var Gx=Kx,Jx=new Gx;function Yx(e,t){return Jx.parse(e,t)}function Zx(e,t){try{const r=Mx(e,t),n=gm(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=Rx.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=Rx.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:String(e)}}}function Xx(e,t){try{const r=Yx(e,t);if(r)return{node:r,confidence:r.metadata?.confidence??.8,error:void 0,tokensConsumed:Mx(e,t).tokens.length}}catch{}const r=Zx(e,t);return r.parseSuccess?{node:null,confidence:r.confidence,error:void 0,tokensConsumed:r.tokensConsumed}:{node:null,confidence:0,error:r.error}}function Qx(e,t){if(Pc(e))return e;return Vx(Yx(e,t))}function eE(e,t){return qx(Bx(e),t)}function tE(e,t,r){if(Pc(e))return eE(e,r);return qx(Yx(e,t),r)}function rE(e,t){return Pc(e)?Bx(e):Yx(e,t)}function nE(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 nE(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}}km();var iE=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(null!==r&&"object"==typeof r&&"confidence"in r&&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}}},aE=new iE;Xy(),zm(),cm("ar",Hy,vm),Ew(),Sm(),cm("bn",vw,bm),Iv(),Am(),cm("de",Cv,Em),py(),Pm(),uz(),cm("en",ay,Cm),um("en",cz()),dg(),Im(),cm("es",lg,jm),kv(),$m(),cm("fr",pv,Om),nw(),qm(),cm("he",Xk,Mm),dw(),Bm(),cm("hi",lw,_m),Wv(),Um(),cm("id",Ov,Dm),kk(),Jm(),cm("it",dk,Fm),Sy(),Xm(),cm("ja",ky,Gm),Wy(),td(),cm("ko",jy,Zm),Mw(),id(),cm("ms",Aw,ed),Nk(),sd(),cm("pl",Tk,nd),nv(),ud(),cm("pt",Gg,od),Zv(),dd(),cm("qu",Hv,cd),Dk(),yd(),cm("ru",$k,md),ak(),kd(),cm("sw",Yv,hd),Lw(),zd(),cm("th",xw,vd),Hw(),Sd(),cm("tl",qw,bd),jg(),Ad(),cm("tr",xg,Ed),Qk(),Pd(),cm("uk",Uk,Cd),Ck(),Id(),cm("vi",vk,jd),Wg(),_d(),cm("zh",Lg,Od),km();var oE={en:async()=>{const{englishTokenizer:e}=await Promise.resolve().then(()=>(py(),sy)),{englishProfile:t}=await Promise.resolve().then(()=>(Pm(),Lm)),{buildEnglishPatterns:r}=await Promise.resolve().then(()=>(uz(),lz));return{tokenizer:e,profile:t,buildPatterns:r}},es:async()=>{const{spanishTokenizer:e}=await Promise.resolve().then(()=>(dg(),ug)),{spanishProfile:t}=await Promise.resolve().then(()=>(Im(),Nm));return{tokenizer:e,profile:t}},ja:async()=>{const{japaneseTokenizer:e}=await Promise.resolve().then(()=>(Sy(),by)),{japaneseProfile:t}=await Promise.resolve().then(()=>(Xm(),Ym));return{tokenizer:e,profile:t}},ar:async()=>{const{arabicTokenizer:e}=await Promise.resolve().then(()=>(Xy(),Uy)),{arabicProfile:t}=await Promise.resolve().then(()=>(zm(),wm));return{tokenizer:e,profile:t}},ko:async()=>{const{koreanTokenizer:e}=await Promise.resolve().then(()=>(Wy(),Ny)),{koreanProfile:t}=await Promise.resolve().then(()=>(td(),Qm));return{tokenizer:e,profile:t}},zh:async()=>{const{chineseTokenizer:e}=await Promise.resolve().then(()=>(Wg(),Pg)),{chineseProfile:t}=await Promise.resolve().then(()=>(_d(),Rd));return{tokenizer:e,profile:t}},tr:async()=>{const{turkishTokenizer:e}=await Promise.resolve().then(()=>(jg(),Sg)),{turkishProfile:t}=await Promise.resolve().then(()=>(Ad(),Td));return{tokenizer:e,profile:t}},pt:async()=>{const{portugueseTokenizer:e}=await Promise.resolve().then(()=>(nv(),Yg)),{portugueseProfile:t}=await Promise.resolve().then(()=>(ud(),ld));return{tokenizer:e,profile:t}},fr:async()=>{const{frenchTokenizer:e}=await Promise.resolve().then(()=>(kv(),dv)),{frenchProfile:t}=await Promise.resolve().then(()=>($m(),Rm));return{tokenizer:e,profile:t}},de:async()=>{const{germanTokenizer:e}=await Promise.resolve().then(()=>(Iv(),Lv)),{germanProfile:t}=await Promise.resolve().then(()=>(Am(),Tm));return{tokenizer:e,profile:t}},id:async()=>{const{indonesianTokenizer:e}=await Promise.resolve().then(()=>(Wv(),Rv)),{indonesianProfile:t}=await Promise.resolve().then(()=>(Um(),Hm));return{tokenizer:e,profile:t}},qu:async()=>{const{quechuaTokenizer:e}=await Promise.resolve().then(()=>(Zv(),Uv)),{quechuaProfile:t}=await Promise.resolve().then(()=>(dd(),pd));return{tokenizer:e,profile:t}},sw:async()=>{const{swahiliTokenizer:e}=await Promise.resolve().then(()=>(ak(),Xv)),{swahiliProfile:t}=await Promise.resolve().then(()=>(kd(),gd));return{tokenizer:e,profile:t}},bn:async()=>{const{bengaliTokenizer:e}=await Promise.resolve().then(()=>(Ew(),ww)),{bengaliProfile:t}=await Promise.resolve().then(()=>(Sm(),xm));return{tokenizer:e,profile:t}},hi:async()=>{const{hindiTokenizer:e}=await Promise.resolve().then(()=>(dw(),uw)),{hindiProfile:t}=await Promise.resolve().then(()=>(Bm(),Vm));return{tokenizer:e,profile:t}},it:async()=>{const{italianTokenizer:e}=await Promise.resolve().then(()=>(kk(),hk)),{italianProfile:t}=await Promise.resolve().then(()=>(Jm(),Km));return{tokenizer:e,profile:t}},ms:async()=>{const{malayTokenizer:e}=await Promise.resolve().then(()=>(Mw(),jw)),{malayProfile:t}=await Promise.resolve().then(()=>(id(),rd));return{tokenizer:e,profile:t}},pl:async()=>{const{polishTokenizer:e}=await Promise.resolve().then(()=>(Nk(),Lk)),{polishProfile:t}=await Promise.resolve().then(()=>(sd(),ad));return{tokenizer:e,profile:t}},ru:async()=>{const{russianTokenizer:e}=await Promise.resolve().then(()=>(Dk(),_k)),{russianProfile:t}=await Promise.resolve().then(()=>(yd(),fd));return{tokenizer:e,profile:t}},th:async()=>{const{thaiTokenizer:e}=await Promise.resolve().then(()=>(Lw(),Sw)),{thaiProfile:t}=await Promise.resolve().then(()=>(zd(),wd));return{tokenizer:e,profile:t}},tl:async()=>{const{tagalogTokenizer:e}=await Promise.resolve().then(()=>(Hw(),Dw)),{tagalogProfile:t}=await Promise.resolve().then(()=>(Sd(),xd));return{tokenizer:e,profile:t}},uk:async()=>{const{ukrainianTokenizer:e}=await Promise.resolve().then(()=>(Qk(),Gk)),{ukrainianProfile:t}=await Promise.resolve().then(()=>(Pd(),Ld));return{tokenizer:e,profile:t}},vi:async()=>{const{vietnameseTokenizer:e}=await Promise.resolve().then(()=>(Ck(),wk)),{vietnameseProfile:t}=await Promise.resolve().then(()=>(Id(),Nd));return{tokenizer:e,profile:t}},he:async()=>{const{hebrewTokenizer:e}=await Promise.resolve().then(()=>(nw(),ew)),{hebrewProfile:t}=await Promise.resolve().then(()=>(qm(),Wm));return{tokenizer:e,profile:t}}},sE=Object.keys(oE);async function lE(e,t={}){const{url:r,module:n,skipIfRegistered:i=!0}=t;if(i&&hm(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 new 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 new Error("Invalid language module: missing tokenizer or profile");return e}finally{URL.revokeObjectURL(i)}}catch(r){throw new Error(`Failed to load language '${e}' from ${t}: ${r instanceof Error?r.message:String(r)}`)}}(e,r);else{const r=oE[e];if(!r)throw new Error(`Unknown language: ${e}. Supported: ${sE.join(", ")}`);t=await r()}return function(e,t){cm(e,t.tokenizer,t.profile),t.patterns?um(e,t.patterns):t.buildPatterns&&um(e,t.buildPatterns())}(e,t),{code:e,loaded:!0}}catch(t){return{code:e,loaded:!1,error:t instanceof Error?t.message:String(t)}}}Gb(),sz(),Jw();var cE=[...[{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}}}]];Ub(),km();var uE=[Kb,function(e){return[]},Jb,Fw,function(e){switch(e){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:["加到","增加到"]}}}];default:return[]}},function(e){switch(e){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}}}];default:return[]}},function(e){switch(e){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}}}];default:return[]}},function(e){switch(e){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}}}];default:return[]}},function(e){switch(e){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}}}];default:return[]}},function(e){switch(e){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}}}];default:return[]}},function(e){switch(e){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}}}];default:return[]}},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"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}}}];default:return[]}},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[]}],pE=new Map;function mE(e){const t=uE.flatMap(t=>t(e));return"en"===e&&t.push(...cE),t.push(...function(e){const t=pE.get(e);if(t)return t;const r=dm(e);if(!r)return[];const n=Db(r);return pE.set(e,n),n}(e)),t}var dE=["en","ja","ar","es","ko","zh","tr","pt","fr","de","id","qu","sw","it","vi","pl","ru","uk","hi","bn","th","ms","tl","he"];var fE=new Map,hE=null;function yE(){if(null===hE){const e=[];for(const t of dE)e.push(...mE(t));hE=e}return hE}function gE(e){if(fE.has(e))return fE.get(e);const t=mE(e);return fE.set(e,t),t}Gb(),sz(),Jw(),Jw(),km(),Qp=function(e){return mE(e.code)},Xh(),ty(),Fd(),km(),zm(),Sm(),_d(),Pm(),$m(),Am(),qm(),Bm(),Um(),Jm(),Xm(),td(),id(),sd(),ud(),dd(),yd(),Im(),kd(),zd(),Sd(),Ad(),Pd(),Id(),Lb(),Ub(),Tb(),Lb();var vE=new Map(Object.entries(Sb));function kE(e){return vE.get(e)}function wE(e){return"literal"===e.type&&"string"==typeof e.value||"selector"===e.type||"reference"===e.type?e.value:void 0}function bE(e,t){if(null==e)return!1;for(const r of t)switch(r){case"selector":if("selector"===e.type)return!0;const t=wE(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=wE(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 zE(e){const t=[],r=[],n=[];let i=0;const a=kE(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&&!bE(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 xE(e){switch(e){case"preposition":return"preposition";case"postposition":case"particle":case"case-suffix":return"postposition";default:return"none"}}function EE(e,t,r){const n={form:t.primary,role:e,position:xE(r),required:t.required??!1};return t.alternatives&&(n.alternatives=t.alternatives),n}var SE={accessibility:!0,performance:!0,schema:!0,strict:!1},TE=new Set(["scroll","mousemove","touchmove","resize","input","keydown","keyup","keypress"]),CE=new Set(["scroll","mousemove","touchmove","resize"]);function AE(e,t){const r=[];if("event-handler"===e.kind){const n=e.roles.get("event");if(n&&"literal"===n.type){const e=String(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 LE(e,t){const r=[];if("event-handler"===e.kind){const n=e.roles.get("event");if(n&&"literal"===n.type){const e=String(n.value).toLowerCase();if(TE.has(e)){const n=CE.has(e)?"warning":"info";r.push({code:"HIGH_FREQUENCY_TRIGGER",severity:n,message:`High-frequency event '${e}' may cause performance issues.`,suggestion:CE.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 jE(e,t){const r=[];if("command"!==e.kind)return r;const n=kE(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 PE(e){if("event-handler"===e.kind){return e.body??[]}return[]}function NE(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=PE(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 OE(e,t="en",r={}){const n={...SE,...r},i=[];let a=null;try{a=Yx(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(...AE(a,e)),n.performance&&i.push(...LE(a,e)),n.schema&&i.push(...jE(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 IE=!1,RE={};function ME(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 $E(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=>$E(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,...ME(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]?$E(t[0]):{type:"literal",value:!0};const n=WE(t[1]),i=t[2]?WE(t[2]):void 0;"unless"===e.name&&(r={type:"unary",operator:"not",operand:r});return{type:"if",condition:r,thenBranch:n,...i?{elseBranch:i}:{},...ME(e)}}(e);if("repeat"===t)return function(e){const t=e.args??[];if(0===t.length)return{type:"repeat",body:[],...ME(e)};const r=t[0],n=t[t.length-1];switch(r?.name??r?.value??"forever"){case"times":return{type:"repeat",count:t[1]?$E(t[1]):void 0,body:WE(n),...ME(e)};case"for":return{type:"foreach",itemName:t[1]?.value??"item",collection:t[2]?$E(t[2]):{type:"identifier",value:"[]"},body:WE(n),...ME(e)};case"while":return{type:"while",condition:t[1]?$E(t[1]):{type:"literal",value:!0},body:WE(n),...ME(e)};case"until":return{type:"while",condition:{type:"unary",operator:"not",operand:t[1]?$E(t[1]):{type:"literal",value:!1}},body:WE(n),...ME(e)};default:return{type:"repeat",body:WE(n),...ME(e)}}}(e);const r=(e.args??[]).map(e=>$E(e)),n=e.target?$E(e.target):void 0,i=e.modifiers?function(e){const t={};for(const[r,n]of Object.entries(e))t[r]=$E(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]=$E(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}:{},...ME(e)}}(e);case"CommandSequence":return function(e){const t=e.commands??[];return 1===t.length?$E(t[0]):{type:"event",event:"click",body:t.map(e=>$E(e)),...ME(e)}}(e);case"block":return function(e){const t=e.commands??[];return 1===t.length?$E(t[0]):{type:"event",event:"click",body:t.map(e=>$E(e)),...ME(e)}}(e);case"if":return function(e){const t=e.condition?$E(e.condition):{type:"literal",value:!0},r=(e.thenBranch??[]).map(e=>$E(e)),n=e.elseBranch?e.elseBranch.map(e=>$E(e)):void 0;return{type:"if",condition:t,thenBranch:r,...n?{elseBranch:n}:{},...ME(e)}}(e);case"literal":case"string":case"timeExpression":return{type:"literal",value:e.value,...ME(e)};case"selector":case"htmlSelector":return{type:"selector",value:e.value??e.selector??"",...ME(e)};case"contextReference":return{type:"identifier",value:e.name??e.contextType??"",...ME(e)};case"identifier":return{type:"identifier",value:e.name??e.value??"",name:e.name??"",...ME(e)};case"propertyAccess":return function(e){const t=e.object?$E(e.object):{type:"identifier",value:"me"};return{type:"possessive",object:t,property:e.property??"",...ME(e)}}(e);case"possessiveExpression":return function(e){const t=e.object?$E(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,...ME(e)}}(e);case"memberExpression":return function(e){const t=e.object?$E(e.object):{type:"identifier",value:"me"},r="string"==typeof e.property?e.property:e.property?$E(e.property):{type:"literal",value:""};return{type:"member",object:t,property:r,computed:e.computed??!1,...ME(e)}}(e);case"binaryExpression":return function(e){return{type:"binary",operator:e.operator??"",left:$E(e.left),right:$E(e.right),...ME(e)}}(e);case"callExpression":return function(e){const t="string"==typeof e.callee?{type:"identifier",value:e.callee,name:e.callee}:$E(e.callee),r=(e.arguments??e.args??[]).map(e=>$E(e));return{type:"call",callee:t,args:r,...ME(e)}}(e);case"unaryExpression":return{type:"unary",operator:e.operator,operand:$E(e.operand),...ME(e)};case"templateLiteral":return{type:"literal",value:e.raw??"",...ME(e)};case"variable":return{type:"variable",name:e.name??"",scope:e.scope??"local",...ME(e)};case"positional":return{type:"positional",position:e.position,...e.target?{target:$E(e.target)}:{},...ME(e)};case"positionalExpression":return{type:"positional",position:e.operator,...e.argument?{target:$E(e.argument)}:{},...ME(e)};default:return{type:"literal",value:e.value??null,...ME(e)}}}function WE(e){return e?"block"===e.type?(e.commands??[]).map(e=>$E(e)):[$E(e)]:[]}function _E(e,t){return Xx(e,t)}var qE=Object.freeze({__proto__:null,ASTBuilder:kx,get CssSelectorExtractor(){return Hd},DEFAULT_CONFIDENCE_THRESHOLD:pz,get EventModifierExtractor(){return Ud},HIGH_CONFIDENCE_THRESHOLD:.8,IdentifierExtractor:yu,KNOWN_PROFILES:wx,LAZY_LOAD_LANGUAGES:sE,NumberExtractor:hu,get OperatorExtractor(){return $d},PatternMatcher:Ix,get PunctuationExtractor(){return Wd},SUPPORTED_LANGUAGES:sE,get SchemaErrorCodes(){return Uw},SemanticCache:iE,SemanticParserImpl:Gx,SemanticRendererImpl:Wx,StringLiteralExtractor:fu,TokenStreamImpl:bp,get UrlExtractor(){return Kd},VERSION:"0.1.0",get VariableRefExtractor(){return Yd},get addSchema(){return ub},analyze:OE,analyzeAll:function(e,t="en",r={}){const n=[],i=[];for(const a of e){const e=OE(a,t,r);n.push(...e.warnings),e.node&&i.push(e.node)}n.push(...NE(i,r));const a=n.some(e=>"error"===e.severity),o={...SE,...r},s=n.some(e=>"warning"===e.severity);return{valid:o.strict?!a&&!s:!a,warnings:n,node:i[0]??null}},analyzeMultiple:NE,get appendSchema(){return zb},get arabicProfile(){return vm},get arabicTokenizer(){return Hy},get bengaliProfile(){return bm},buildAST:function(e){const t=new kx;return{ast:t.build(e),warnings:t.warnings}},calculateTranslationConfidence:Zx,canLoadLanguage:function(e){return e in oE},canParse:function(e,t){return Jx.canParse(e,t)},checkAccessibility:AE,checkPerformance:LE,checkSchema:jE,get chineseProfile(){return Od},get chineseTokenizer(){return Lg},get commandSchemas(){return Sb},convertExpression:zz,convertLiteral:vz,convertPropertyPath:bz,convertReference:wz,convertSelector:kz,convertValue:gz,createCommandNode:Tx,createCompoundNode:Ax,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:Cx,createLiteral:zx,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:Sx,createReference:Ex,createSelector:bx,createSemanticCache:function(e){return new iE(e)},createTokenizerContext:ku,get decrementSchema(){return bb},devModeAnalyze:function(e,t,r){if(!IE)return;if(!r)return;const n=OE(e,t,RE);for(const e of n.warnings){}},disableDevMode:function(){IE=!1},enableDevMode:function(e={}){IE=!0,RE=e},get englishProfile(){return Cm},get englishTokenizer(){return ay},get eventNameTranslations(){return Bw},get fetchSchema(){return kb},formatValidationResults:ib,get frenchProfile(){return Om},fromExplicit:eE,fromSemanticAST:$E,generateAllPatterns:function(e,t=Mb){const r=[],n=e??Wb();for(const e of n){const n=Db(e,t);r.push(...n)}return r},generatePattern:_b,generatePatternVariants:Vb,generatePatternsForCommand:function(e,t,r=Mb){const n=[],i=t??Wb();for(const t of i){if(!t.keywords[e.action])continue;const i=Vb(e,t,r);n.push(...i)}return n},generatePatternsForLanguage:Db,generateSimplePattern:qb,get germanProfile(){return Em},getAllTranslations:function(e,t,r=["en","ja","ar","es","ko","zh","tr","pt","fr","de","id","qu","sw"]){const n={},i=rE(e,t);for(const e of r)n[e]=qx(i,e);return n.explicit=Vx(i),n},getCommandMapper:vx,getCommandType:function(e,t){try{return Jx.parse(e,t).action}catch{return null}},getDefaultExtractors:function(){return[new fu,new hu,new $d,new Wd,new yu]},getDefinedSchemas:Ab,getDevModeConfig:function(){return{...RE}},getEventHandlerPatternsForLanguage:Fw,getGeneratorSummary:function(){const e=fm(),t=Ab().map(e=>e.action);let r=0;for(const t of e){const e=dm(t);if(e)for(const t of Ab())e.keywords[t.action]&&(r+=2)}return{languages:e,commands:t,totalPatterns:r}},getHyperscriptExtractors:Qh,getLoadedLanguages:function(){return sE.filter(hm)},getPatternById:function(e){return yE().find(t=>t.id===e)},getPatternStats:function(){const e={},t={},r=yE();for(const n of r)e[n.language]=(e[n.language]||0)+1,t[n.command]=(t[n.command]||0)+1;return{totalPatterns:r.length,byLanguage:e,byCommand:t}},getPatternsForLanguage:gE,getPatternsForLanguageAndCommand:function(e,t){return gE(e).filter(e=>e.command===t).sort((e,t)=>t.priority-e.priority)},getPutPatternsForLanguage:Jb,getRegisteredLanguages:fm,getRegisteredMappers:function(){return new Map(gx)},getSchema:Cb,getSchemasByCategory:function(e){return Object.values(Sb).filter(t=>t.category===e)},getSupportedCommands:function(){const e=new Set(yE().map(e=>e.command));return Array.from(e)},getSupportedLanguages:function(){return[...sE]},getSupportedPatternLanguages:function(){const e=new Set(yE().map(e=>e.language));return Array.from(e)},getSupportedTokenizerLanguages:$x,getTogglePatternsForLanguage:Kb,getTokenizer:function(e){return function(e){let t=Yp.get(e);return!t&&mm(e)&&(t=Yp.get(pm(e))),t}(e)},getUnloadedLanguages:function(){return sE.filter(e=>!hm(e))},getValidationStats:ab,getValidatorSchema:kE,get hebrewProfile(){return Mm},get hideSchema(){return hb},get hindiProfile(){return _m},get incrementSchema(){return wb},get indonesianProfile(){return Dm},isContextAwareExtractor:vu,isDevModeEnabled:function(){return IE},isExplicitSyntax:Pc,isLanguageRegistered:hm,isLanguageSupported:function(e){return hm(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 italianProfile(){return Fm},get japaneseProfile(){return Gm},get japaneseTokenizer(){return ky},get koreanProfile(){return Zm},get koreanTokenizer(){return jy},loadLanguage:lE,loadLanguages:async function(e,t={}){return Promise.all(e.map(e=>lE(e,t)))},get malayProfile(){return ed},markingStrategyToAdpositionType:xE,matchBest:function(e,t){return Rx.matchBest(e,t)},matchPattern:function(e,t){return Rx.matchPattern(e,t)},normalizeEventName:function(e,t){const r=Bw[t];return r&&r[e]?r[e]:e.toLowerCase()},get onSchema(){return yb},parse:Yx,parseAny:rE,parseExplicit:Bx,parseSemantic:_E,parseWithConfidence:Xx,patternMatcher:Rx,get polishProfile(){return nd},get portugueseProfile(){return od},get prependSchema(){return xb},get putSchema(){return mb},get quechuaProfile(){return cd},registerCommandMapper:function(e){gx.set(e.action,e)},registerSchema:function(e,t){vE.set(e,t)},registerTokenizer:function(e){!function(e){Yp.set(e.language,e)}(e)},get removeSchema(){return pb},render:qx,renderExplicit:Vx,roundTrip:function(e,t,r){const n=rE(e,t),i=r??t,a=Pc(e)?Vx(n):qx(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}},get russianProfile(){return md},schemaRegistry:vE,semanticCache:aE,semanticParser:Jx,semanticRenderer:_x,get setSchema(){return db},get showSchema(){return fb},get spanishProfile(){return jm},get spanishTokenizer(){return lg},get swahiliProfile(){return hd},get tagalogProfile(){return bd},get thaiProfile(){return vd},toExplicit:Qx,toGrammaticalMarker:EE,toI18nProfile:function(e){const t=[];for(const[r,n]of Object.entries(e.roleMarkers))n&&t.push(EE(r,n,e.markingStrategy));return{code:e.code,name:e.nativeName,wordOrder:e.wordOrder,adpositionType:xE(e.markingStrategy),morphology:e.morphology,direction:e.direction,markers:t,canonicalOrder:e.canonicalOrder}},get toggleSchema(){return cb},tokenize:Mx,translate:tE,get triggerSchema(){return gb},tryGetProfile:dm,get turkishProfile(){return Ed},get turkishTokenizer(){return xg},get ukrainianProfile(){return Cd},validateAllSchemas:nb,validateAndAdjustConfidence:function(e){const t=zE(e);return{...e,confidence:Math.max(0,Math.min(1,e.confidence+t.confidenceAdjustment)),validation:t}},validateCommandSchema:rb,validateLanguageKeywords:function(e,t=Ab()){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:zE,validateTranslation:function(e,t,r,n){try{const i=rE(e,r),a=rE(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(!nE(t,r))return!1}return!0}catch{return!1}},get vietnameseProfile(){return jd},get waitSchema(){return vb},withCache:function(e,t=aE){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 VE=null;function DE(){return VE||(VE=lt({parse:_E,isRegistered:hm,registered:fm})),VE}function BE(e){if(e&&"object"==typeof e.locals&&e.locals instanceof Map)return e;const t=e?.globals,r=t instanceof Map?t:Or(),n={me:e?.me||null,you:e?.you||null,it:e?.it||e?.result,result:e?.result,locals:new Map,globals:r,halted:!1,returned:!1,broke:!1,continued:!1,async:!1};if(!e)return n;if(e.locals&&"object"==typeof e.locals)for(const[t,r]of Object.entries(e.locals))n.locals.set(t,r);if(e.globals&&"object"==typeof e.globals&&!(e.globals instanceof Map))for(const[t,r]of Object.entries(e.globals))ye(n,t,r);const i=new Set(["me","you","it","result","locals","globals","language"]);for(const[t,r]of Object.entries(e))i.has(t)||void 0===r||n.locals.set(t,r);return n}async function HE(e,t){if(!e||""===e.trim())throw new Error("Cannot evaluate empty script");try{const r=BE(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&&N.has(r))return!0;return!1}(e))return await async function(e,t,r="en"){const n=Ne(e),i=new dr(n,{semanticAnalyzer:DE(),language:r,semanticConfidenceThreshold:pz}),a=i.parse();if(!a.success||!a.node)throw new Error(`Parse error: ${a.error?.message||"Unknown parse error"}`);const o=new cc,s=await o.execute(a.node,t);return s}(e,r,n);return await vr(e,r)}catch(e){if(e instanceof Error)throw new Error(`HyperScript evaluation error: ${e.message}`);throw e}}async function FE(e,t){if(!e||""===e.trim())throw new Error("Cannot evaluate empty expression");try{const r=BE(t);return await vr(e,r)}catch(e){if(e instanceof Error)throw new Error(`HyperScript evaluation error: ${e.message}`);throw e}}async function UE(e,t){if(function(e){const t=e.toLowerCase();return["fetch","wait","settle","async","promise"].some(e=>t.includes(e))}(e))return FE(e,t);try{return HE(e,t)}catch(r){if(r instanceof Error&&r.message.includes("Async expressions not yet supported"))return FE(e,t);throw r}}function KE(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 va(e)?e:null}return va(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 new Error(`HTTP ${e.status}: ${e.statusText}`);const a=await e.text();await gs([c],a,r,{useViewTransition:n}),c.classList.remove("hx-swapping"),s&&await s(u,a),Hs(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 GE={name:"HistorySwap",init:(e,t={})=>KE({target:t.target||e,strategy:t.strategy||"morph",useViewTransition:Boolean(t.useViewTransition)}),destroy(e){e.destroy()}};function JE(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 YE(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 va(e)?e:null}return va(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 new Error(`HTTP ${d.status}: ${d.statusText}`);const f=await d.text();await gs([a],f,o,{useViewTransition:l}),a.classList.remove("hx-swapping"),t.classList.remove("hx-boosting"),s&&"GET"===n&&window.history.pushState(null,"",e),p&&await p(e,f),Hs(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}},f=async e=>{const t=e.target.closest(n);t&&function(e){return!(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)&&0===e.button}(e)&&JE(t)&&(e.preventDefault(),e.stopPropagation(),await d(t.href))},h=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,String(t))}),o=`${t.action||window.location.pathname}?${e.toString()}`}else o=t.action||window.location.pathname,s=n;await d(o,r,s)};return t.addEventListener("click",f),a&&t.addEventListener("submit",h),{destroy:()=>{t.removeEventListener("click",f),t.removeEventListener("submit",h)},config:e,boost:d}}const ZE={name:"Boosted",init:(e,t={})=>YE({container:e,target:t.target,linkSelector:t.linkSelector||"a[href]",formSelector:t.formSelector||"form",boostForms:Boolean(t.boostForms),strategy:t.strategy||"morph",pushUrl:!1!==t.pushUrl,useViewTransition:Boolean(t.useViewTransition)}),destroy(e){e.destroy()}};const XE="click";let QE,eS,tS,rS=null;function nS(e,t,r){r.errors?.length&&r.errors.forEach((e,t)=>{}),t.split("\n")}async function iS(e,t){try{return await tS().execute(e,t)}catch(e){throw e}}function aS(e,t,r){try{const n=function(e){try{if(function(e){return"eventHandler"===e.type}(e)){return{eventType:e.event||XE,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||XE,body:e.body||e}}return"CommandSequence"===e.type||"Block"===e.type?{eventType:XE,body:e}:null}catch(e){return null}}(t);if(!n)return;const i=async e=>{try{r.locals.set("event",e),r.locals.set("target",e.target),await iS(n.body,r)}catch(e){Error}};e.addEventListener(n.eventType,i);try{const t=tS?.();t?.trackListener?.(e,e,n.eventType,i)}catch{}}catch(e){}}function oS(e){return Nr(e)}function sS(e,t,r,n){const i=new CustomEvent(t,{bubbles:!0,cancelable:r,detail:n});return e.dispatchEvent(i)}function lS(e,t){if(!sS(e,"hyperscript:before:init",!0,{code:t}))return;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=QE(t);if(!r.ok)return void nS(0,t,r);if(!r.ast)return;const n=oS(e);if(t.trim().startsWith("on "))try{aS(e,r.ast,n)}catch(e){throw Error,e}else iS(r.ast,n)}catch(e){}}(e,t),cS(e),sS(e,"hyperscript:after:init",!1,{code:t})):async function(e,t,r){try{const n=await eS(t,{language:r});if(!n.ok)return void nS(0,t,n);if(!n.ast)return;const i=oS(e);t.trim().startsWith("on ")||"eventHandler"===n.ast.type?aS(e,n.ast,i):iS(n.ast,i)}catch(e){}}(e,t,r).then(()=>{cS(e),sS(e,"hyperscript:after:init",!1,{code:t})})}function cS(e){e.hasAttribute("data-hyperscript-powered")||e.setAttribute("data-hyperscript-powered","")}class uS{constructor(e){this.capacity=e,this.head=0,this.count=0,this.items=new Array(e)}push(e){this.items[this.head]=e,this.head=(this.head+1)%this.capacity,this.count<this.capacity&&this.count++}toArray(){return this.count<this.capacity?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 pS{constructor(){this.state={enabled:!1,paused:!1,stepMode:"continue",callDepth:0,pauseDepth:0,currentSnapshot:null},this.history=new uS(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=mS(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.callDepth<=this.state.pauseDepth;case"out":return this.state.callDepth<this.state.pauseDepth;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!!new Function(...i,`return (${e});`)(...a)}catch{return!1}}captureSnapshot(e){const t=e.executionContext,r={};if(r.it=mS(t.it),r.result=mS(t.result),t.me&&(r.me=dS(t.me)),t.you&&(r.you=dS(t.you)),e.event&&(r["event.type"]=e.event.type,e.event.target&&(r["event.target"]=dS(e.event.target))),t.locals)for(const[e,n]of t.locals)e.startsWith("__")||(r[`:${e}`]=mS(n));return{commandName:e.commandName,element:e.element,variables:r,timestamp:Date.now(),depth:this.state.callDepth,index:this.snapshotIndex++}}}function mS(e){if(null==e)return e;if("string"==typeof e||"number"==typeof e||"boolean"==typeof e)return e;if(e instanceof Element)return dS(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.join(", ")}}`:`{${t.slice(0,3).join(", ")}, ...${t.length-3} more}`}return String(e)}function dS(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 fS="en";const hS=new class{constructor(e=500){this.cache=new Map,this.hits=0,this.misses=0,this.maxSize=e}makeKey(e,t){return`${t?.language||fS}\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 yS=null,gS=null;const vS={semantic:!0,language:"en",confidenceThreshold:pz,logAll:!1};async function kS(){if(!gS){const{SemanticGrammarBridge:e}=await Promise.resolve().then(function(){return MS});gS=new e,await gS.initialize()}return gS}let wS=null,bS=null;function zS(){if(!wS&&(wS=new cc({lazyLoad:!1}),(e=wS.behaviorRegistry)instanceof Map||e&&"function"==typeof e.set?e.set("HistorySwap",GE):e&&"object"==typeof e&&(e.HistorySwap=GE),function(e){e instanceof Map||e&&"function"==typeof e.set?e.set("Boosted",ZE):e&&"object"==typeof e&&(e.Boosted=ZE)}(wS.behaviorRegistry),"undefined"!=typeof globalThis)){const e=globalThis;e._hyperscript=e._hyperscript||{},e._hyperscript.runtime=wS,e._hyperscript.behaviors=wS.behaviorAPI}var e;return wS}async function xS(e,t){if(!e)throw new Error("AST is required for execution");const r=t||Nr();return await zS().execute(e,r)}function ES(e,t){if("string"!=typeof e)throw new TypeError("Code must be a string");const r=hS.get(e,t);if(r)return r;const n=performance.now(),i=t?.language||fS;try{const r=t?.traditional??!1,o=r?{}:vS.semantic?{semanticAnalyzer:(yS||(yS=lt({parse:_E,isRegistered:hm,registered:fm})),yS),language:vS.language,semanticConfidenceThreshold:vS.confidenceThreshold}:{},s=!r,l=fr(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 hS.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 SS(e,t){if("string"!=typeof e)throw new TypeError("Code must be a string");const r=t?.language||fS;if(r===fS||t?.traditional)return ES(e,t);const n=hS.get(e,t);if(n)return n;const i=performance.now();try{const n=await kS(),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 hS.set(e,t,o),o}const o=ES(a.fallbackText||e,{...t,language:fS}),s={...o,meta:{...o.meta,language:r,confidence:a.confidence,directPath:!1}};return hS.set(e,t,s),s}catch{return ES(e,{...t,language:"en"})}}!function(e,t,r){QE=e,eS=t,tS=r}(ES,SS,zS),rS=vS;const TS={compile:SS,compileSync:ES,execute:xS,eval:async function(e,t,r){if("string"!=typeof e||0===e.trim().length)throw new Error("Code must be a non-empty string");let n;if(t)if(t instanceof Element)n=Nr(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)?Nr(e.me):Nr()}else n=Nr();var i;const a=await SS(e.trim(),r);if(!a.ok){throw new Error(`Compilation failed: ${a.errors?.[0]?.message||"Unknown compilation error"}`)}return xS(a.ast,n)},validate:async function(e,t){const r=await SS(e,t);return{valid:r.ok,errors:r.errors}},process:function(e){try{const t=e.getAttribute("_");t&&lS(e,t);e.querySelectorAll("[_]").forEach(e=>{const t=e.getAttribute("_");t&&lS(e,t)})}catch(e){}},cleanup:e=>{e.dispatchEvent(new CustomEvent("hyperscript:before:cleanup",{bubbles:!0,cancelable:!1}));const t=zS().cleanupTree(e);return e.hasAttribute?.("data-hyperscript-powered")&&e.removeAttribute("data-hyperscript-powered"),e.dispatchEvent(new CustomEvent("hyperscript:after:cleanup",{bubbles:!0,cancelable:!1,detail:{count:t}})),t},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):Nr(e)},config:vS,version:"2.0.0",createRuntime:function(e){return new cc(e)},getDefaultRuntime:()=>zS(),registerHooks:(e,t)=>{zS().registerHooks(e,t)},unregisterHooks:e=>zS().unregisterHooks(e),getRegisteredHooks:()=>zS().getRegisteredHooks(),evalLSE:async function(e,t){if("string"!=typeof e||0===e.trim().length)throw new Error("LSE code must be a non-empty string");const{parseExplicit:r,semanticNodeToRuntimeAST:n}=await Promise.resolve().then(function(){return _S}),i=await r(e),a=await n(i),o=t?Nr(t):Nr();return await zS().execute(a,o)},evalLSENode:async function(e,t){const{semanticNodeToRuntimeAST:r}=await Promise.resolve().then(function(){return _S}),n=await r(e),i=t?Nr(t):Nr();return await zS().execute(n,i)},compileLSE:async function(e){const t=performance.now();if("string"!=typeof e||0===e.trim().length)return{ok:!1,errors:[{message:"LSE code must be a non-empty string",line:0,column:0}],meta:{parser:"lse",language:"explicit",timeMs:performance.now()-t}};try{const{parseExplicit:r,semanticNodeToRuntimeAST:n}=await Promise.resolve().then(function(){return _S}),i=await r(e,{collectDiagnostics:!0}),a=await n(i),o=i.diagnostics?.filter(e=>"error"===e.severity),s=o&&o.length>0;return{ok:!s,ast:s?void 0:a,lse:i,...s?{errors:o.map(e=>({message:e.message,line:0,column:0}))}:{},meta:{parser:"lse",language:"explicit",timeMs:performance.now()-t}}}catch(e){return{ok:!1,errors:[{message:e.message,line:0,column:0}],meta:{parser:"lse",language:"explicit",timeMs:performance.now()-t}}}},toLSE:async function(e,t){const r=t||fS,{parseSemantic:n}=await Promise.resolve().then(function(){return qE}),{renderExplicit:i}=await Promise.resolve().then(function(){return _S}),a=n(e,r);if(!a||!a.node)throw new Error(`Failed to parse "${e}" as ${r} hyperscript`);return await i(a.node)},fromLSE:async function(e,t){const{render:r}=await Promise.resolve().then(function(){return qE}),{parseExplicit:n}=await Promise.resolve().then(function(){return _S});return r(await n(e),t)},clearCache:()=>hS.clear(),getCacheStats:()=>hS.getStats(),get debug(){return bS||(bS=new pS,zS().registerHooks("__debugger",bS.hooks)),bS}},CS=/^on\s+(\w+)/,AS=new Set(["load","mutation","intersection","appear","every"]);function LS(){return"undefined"!=typeof globalThis&&"scheduler"in globalThis&&"function"==typeof globalThis.scheduler?.yield?globalThis.scheduler.yield():new Promise(e=>setTimeout(e,0))}const jS=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=TS.compileSync(r);if(!e.ok)return;for(const t of n)if(t instanceof HTMLElement){const r=Nr(t);await TS.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=Nr(null),r=TS.compileSync(t);if(!r.ok)return;await TS.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){this.processedElements.add(e),this.processedCount++;try{const r=Nr(e),n=TS.compileSync(t);if(!n.ok)return;await TS.execute(n.ast,r),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;e<r.length;e+=t){const n=r.slice(e,e+t).map(e=>this.processElementAsync(e));await Promise.all(n),e+t<r.length&&await LS()}}processElementLazy(e){const t=e.getAttribute(this.options.attributeName);if(!t)return null;const r=t.match(CS);if(!r||AS.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=TS.compileSync(t);if(!n.ok||!n.ast)return;const i=Nr(e);TS.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=Nr(e);t.locals.set("event",r),t.locals.set("target",r.target),t.event=r;for(const e of a.commands){const r=Ur(await TS.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()}};class PS{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;t<r;t++)this.pool.push(e());this.metrics.allocations=r,this.metrics.peakPoolSize=r}get(){let e;return this.index<this.pool.length?(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 NS=new class{constructor(){this.pending=new Map,this.rafId=null,this.stylePool=new PS(()=>({}),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()}};const OS={evalHyperScript:HE,evalHyperScriptAsync:FE,evalHyperScriptSmart:UE,evaluate:HE,compile:(e,t)=>{const r=TS.compileSync(e,t);if(!r.ok){throw new Error(r.errors&&r.errors.length>0?r.errors[0].message:"Compilation failed")}return r},compileSync:(e,t)=>TS.compileSync(e,t),compileMultilingual:async(e,t)=>TS.compile(e,{language:t}),execute:TS.execute,run:async(e,t)=>TS.eval(e,t),createContext:TS.createContext,createRuntime:TS.createRuntime,Parser:dr,Runtime:cc,tokenize:Ne,installPlugin:function(e,t){const r={commandRegistry:e.getRegistry(),parserExtensions:he(),runtime:e};t.install(r)},getParserExtensionRegistry:he,processNode:async e=>{e===document?await jS.scanAndProcessAll():e instanceof HTMLElement&&await jS.processElementAsync(e)},process:e=>OS.processNode(e),attributeProcessor:jS,styleBatcher:NS,ObjectPool:PS,debug:Qe,debugControl:et,semantic:{parseSemantic:_E,parse:Yx,translate:tE,render:qx,toExplicit:Qx,fromExplicit:eE,supportedLanguages:["ar","bn","de","en","es","fr","hi","id","it","ja","ko","ms","pl","pt","qu","ru","sw","th","tl","tr","uk","vi","zh"]},semanticDebug:{enable:function(e){tt=!0,rt=e??("undefined"!=typeof window?window:null)},disable:function(){tt=!1},isEnabled:nt,getStats:function(){return{...it}},resetStats:function(){it={totalParses:0,semanticSuccesses:0,semanticFallbacks:0,traditionalParses:0,averageConfidence:0,confidenceHistory:[]},ot=[]},getEventHistory:function(){return[...ot]},replayEvents:function(e){for(const t of ot)e(t)}},config:vS,registerHooks:TS.registerHooks,unregisterHooks:TS.unregisterHooks,getRegisteredHooks:TS.getRegisteredHooks,getDefaultRuntime:TS.getDefaultRuntime,registry:Dr(),registerFetchResponseType:function(e,t){el.set(e.toLowerCase(),t)},evalLSENode:TS.evalLSENode.bind(TS),version:"2.0.0-full"};if("undefined"!=typeof window){if(window.hyperfixi=OS,void 0===window.lokascript){let e=!1;Object.defineProperty(window,"lokascript",{get:()=>(e||(e=!0),window.hyperfixi),set(e){window.hyperfixi=e},enumerable:!0,configurable:!0})}window.evalHyperScript=HE,window.evalHyperScriptAsync=FE,window.evalHyperScriptSmart=UE,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{jS.init()}):jS.init()}let IS=null;async function RS(){return IS||(IS=await Promise.resolve().then(function(){return qE})),IS}var MS=Object.freeze({__proto__:null,SemanticGrammarBridge:class{constructor(e={}){this._initialized=!1,this.config={confidenceThreshold:e.confidenceThreshold??pz,fallbackOnLowConfidence:e.fallbackOnLowConfidence??!0}}async initialize(){await RS(),this._initialized=!0}isInitialized(){return this._initialized}async transform(e,t,r){if(this.isInitialized()||await this.initialize(),t===r)return{output:e,usedSemantic:!1,confidence:1,sourceLang:t,targetLang:r};const n=await RS();try{const i=n.translate(e,t,r);if(i!==e)return{output:i,usedSemantic:!0,confidence:.9,sourceLang:t,targetLang:r}}catch{}return{output:e,usedSemantic:!1,confidence:0,sourceLang:t,targetLang:r}}async parse(e,t){this.isInitialized()||await this.initialize();return(await RS()).parseSemantic(e,t).node??null}async render(e,t){return(await RS()).render(e,t)}async parseToAST(e,t){this.isInitialized()||await this.initialize();const r=await RS(),n=r.parseSemantic(e,t);if(n.confidence>=this.config.confidenceThreshold&&n.node)try{return r.buildAST(n.node).ast}catch(e){}return null}async parseToASTWithDetails(e,t){this.isInitialized()||await this.initialize();const r=await RS(),n=r.parseSemantic(e,t);if(n.confidence>=this.config.confidenceThreshold&&n.node)try{const e=r.buildAST(n.node);return{ast:e.ast,usedDirectPath:!0,confidence:n.confidence,lang:t,fallbackText:null,warnings:e.warnings}}catch{}if(n.node&&this.config.fallbackOnLowConfidence){const e=r.render(n.node,"en");return{ast:null,usedDirectPath:!1,confidence:n.confidence,lang:t,fallbackText:e}}return{ast:null,usedDirectPath:!1,confidence:n.confidence,lang:t,fallbackText:null}}async getAllTranslations(e,t){const r=(await RS()).getSupportedLanguages(),n={};for(const i of r)n[i]=await this.transform(e,t,i);return n}}});let $S=null;async function WS(){if(!$S)try{$S=await Promise.resolve().then(function(){return tm})}catch{throw new Error("@lokascript/framework is required for LSE support. Install it: npm install @lokascript/framework")}return $S}var _S=Object.freeze({__proto__:null,fromEnvelopeJSON:async function(e){return(await WS()).fromEnvelopeJSON(e)},fromInterchangeNode:async function(e){return(await WS()).fromInterchangeNode(e)},fromProtocolJSON:async function(e){return(await WS()).fromProtocolJSON(e)},isEnvelope:async function(e){return(await WS()).isEnvelope(e)},isExplicitSyntax:async function(e){return(await WS()).isExplicitSyntax(e)},isLSEAvailable:function(){if($S)return!0;try{return require.resolve("@lokascript/framework"),!0}catch{return!1}},parseExplicit:async function(e,t){return(await WS()).parseExplicit(e,t)},renderExplicit:async function(e){return(await WS()).renderExplicit(e)},semanticNodeToRuntimeAST:async function(e){return(await WS()).semanticNodeToRuntimeAST(e)},toEnvelopeJSON:async function(e){return(await WS()).toEnvelopeJSON(e)},toProtocolJSON:async function(e){return(await WS()).toProtocolJSON(e)},validateProtocolJSON:async function(e){return(await WS()).validateProtocolJSON(e)}});return OS}();
|
|
2
|
+
//# sourceMappingURL=hyperfixi.js.map
|