@lokascript/semantic 1.0.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/LICENSE +21 -0
- package/README.md +686 -0
- package/dist/browser-ar.ar.global.js +2 -0
- package/dist/browser-core.core.global.js +2 -0
- package/dist/browser-de.de.global.js +2 -0
- package/dist/browser-east-asian.east-asian.global.js +2 -0
- package/dist/browser-en-tr.en-tr.global.js +2 -0
- package/dist/browser-en.en.global.js +2 -0
- package/dist/browser-es-en.es-en.global.js +2 -0
- package/dist/browser-es.es.global.js +2 -0
- package/dist/browser-fr.fr.global.js +2 -0
- package/dist/browser-id.id.global.js +2 -0
- package/dist/browser-ja.ja.global.js +2 -0
- package/dist/browser-ko.ko.global.js +2 -0
- package/dist/browser-lazy.lazy.global.js +2 -0
- package/dist/browser-priority.priority.global.js +2 -0
- package/dist/browser-pt.pt.global.js +2 -0
- package/dist/browser-qu.qu.global.js +2 -0
- package/dist/browser-sw.sw.global.js +2 -0
- package/dist/browser-tr.tr.global.js +2 -0
- package/dist/browser-western.western.global.js +2 -0
- package/dist/browser-zh.zh.global.js +2 -0
- package/dist/browser.global.js +3 -0
- package/dist/browser.global.js.map +1 -0
- package/dist/index.cjs +35051 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +3426 -0
- package/dist/index.d.ts +3426 -0
- package/dist/index.js +34890 -0
- package/dist/index.js.map +1 -0
- package/dist/languages/ar.d.ts +78 -0
- package/dist/languages/ar.js +1622 -0
- package/dist/languages/ar.js.map +1 -0
- package/dist/languages/de.d.ts +38 -0
- package/dist/languages/de.js +1168 -0
- package/dist/languages/de.js.map +1 -0
- package/dist/languages/en.d.ts +44 -0
- package/dist/languages/en.js +3491 -0
- package/dist/languages/en.js.map +1 -0
- package/dist/languages/es.d.ts +52 -0
- package/dist/languages/es.js +1493 -0
- package/dist/languages/es.js.map +1 -0
- package/dist/languages/fr.d.ts +37 -0
- package/dist/languages/fr.js +1159 -0
- package/dist/languages/fr.js.map +1 -0
- package/dist/languages/id.d.ts +35 -0
- package/dist/languages/id.js +1152 -0
- package/dist/languages/id.js.map +1 -0
- package/dist/languages/ja.d.ts +53 -0
- package/dist/languages/ja.js +1430 -0
- package/dist/languages/ja.js.map +1 -0
- package/dist/languages/ko.d.ts +51 -0
- package/dist/languages/ko.js +1729 -0
- package/dist/languages/ko.js.map +1 -0
- package/dist/languages/pt.d.ts +37 -0
- package/dist/languages/pt.js +1127 -0
- package/dist/languages/pt.js.map +1 -0
- package/dist/languages/qu.d.ts +36 -0
- package/dist/languages/qu.js +1143 -0
- package/dist/languages/qu.js.map +1 -0
- package/dist/languages/sw.d.ts +35 -0
- package/dist/languages/sw.js +1147 -0
- package/dist/languages/sw.js.map +1 -0
- package/dist/languages/tr.d.ts +45 -0
- package/dist/languages/tr.js +1529 -0
- package/dist/languages/tr.js.map +1 -0
- package/dist/languages/zh.d.ts +58 -0
- package/dist/languages/zh.js +1257 -0
- package/dist/languages/zh.js.map +1 -0
- package/dist/types-C4dcj53L.d.ts +600 -0
- package/package.json +202 -0
- package/src/__test-utils__/index.ts +7 -0
- package/src/__test-utils__/test-helpers.ts +8 -0
- package/src/__types__/test-helpers.ts +122 -0
- package/src/analysis/index.ts +479 -0
- package/src/ast-builder/command-mappers.ts +1133 -0
- package/src/ast-builder/expression-parser/index.ts +41 -0
- package/src/ast-builder/expression-parser/parser.ts +563 -0
- package/src/ast-builder/expression-parser/tokenizer.ts +394 -0
- package/src/ast-builder/expression-parser/types.ts +208 -0
- package/src/ast-builder/index.ts +536 -0
- package/src/ast-builder/value-converters.ts +172 -0
- package/src/bridge.ts +275 -0
- package/src/browser-ar.ts +162 -0
- package/src/browser-core.ts +231 -0
- package/src/browser-de.ts +162 -0
- package/src/browser-east-asian.ts +173 -0
- package/src/browser-en-tr.ts +165 -0
- package/src/browser-en.ts +157 -0
- package/src/browser-es-en.ts +200 -0
- package/src/browser-es.ts +170 -0
- package/src/browser-fr.ts +162 -0
- package/src/browser-id.ts +162 -0
- package/src/browser-ja.ts +162 -0
- package/src/browser-ko.ts +162 -0
- package/src/browser-lazy.ts +189 -0
- package/src/browser-priority.ts +214 -0
- package/src/browser-pt.ts +162 -0
- package/src/browser-qu.ts +162 -0
- package/src/browser-sw.ts +162 -0
- package/src/browser-tr.ts +162 -0
- package/src/browser-western.ts +181 -0
- package/src/browser-zh.ts +162 -0
- package/src/browser.ts +268 -0
- package/src/cache/index.ts +14 -0
- package/src/cache/semantic-cache.ts +344 -0
- package/src/core-bridge.ts +372 -0
- package/src/explicit/converter.ts +258 -0
- package/src/explicit/index.ts +18 -0
- package/src/explicit/parser.ts +236 -0
- package/src/explicit/renderer.ts +424 -0
- package/src/generators/command-schemas.ts +1636 -0
- package/src/generators/event-handler-generator.ts +109 -0
- package/src/generators/index.ts +117 -0
- package/src/generators/language-profiles.ts +139 -0
- package/src/generators/pattern-generator.ts +537 -0
- package/src/generators/profiles/arabic.ts +131 -0
- package/src/generators/profiles/bengali.ts +132 -0
- package/src/generators/profiles/chinese.ts +124 -0
- package/src/generators/profiles/english.ts +113 -0
- package/src/generators/profiles/french.ts +125 -0
- package/src/generators/profiles/german.ts +126 -0
- package/src/generators/profiles/hindi.ts +146 -0
- package/src/generators/profiles/index.ts +46 -0
- package/src/generators/profiles/indonesian.ts +125 -0
- package/src/generators/profiles/italian.ts +139 -0
- package/src/generators/profiles/japanese.ts +149 -0
- package/src/generators/profiles/korean.ts +127 -0
- package/src/generators/profiles/marker-templates.ts +288 -0
- package/src/generators/profiles/ms.ts +130 -0
- package/src/generators/profiles/polish.ts +249 -0
- package/src/generators/profiles/portuguese.ts +115 -0
- package/src/generators/profiles/quechua.ts +113 -0
- package/src/generators/profiles/russian.ts +260 -0
- package/src/generators/profiles/spanish.ts +130 -0
- package/src/generators/profiles/swahili.ts +129 -0
- package/src/generators/profiles/thai.ts +132 -0
- package/src/generators/profiles/tl.ts +128 -0
- package/src/generators/profiles/turkish.ts +124 -0
- package/src/generators/profiles/types.ts +165 -0
- package/src/generators/profiles/ukrainian.ts +270 -0
- package/src/generators/profiles/vietnamese.ts +133 -0
- package/src/generators/schema-error-codes.ts +160 -0
- package/src/generators/schema-validator.ts +391 -0
- package/src/index.ts +429 -0
- package/src/language-building-schema.ts +3170 -0
- package/src/language-loader.ts +394 -0
- package/src/languages/_all.ts +65 -0
- package/src/languages/ar.ts +15 -0
- package/src/languages/bn.ts +16 -0
- package/src/languages/de.ts +15 -0
- package/src/languages/en.ts +29 -0
- package/src/languages/es.ts +15 -0
- package/src/languages/fr.ts +15 -0
- package/src/languages/hi.ts +26 -0
- package/src/languages/id.ts +15 -0
- package/src/languages/index.ts +18 -0
- package/src/languages/it.ts +15 -0
- package/src/languages/ja.ts +15 -0
- package/src/languages/ko.ts +15 -0
- package/src/languages/ms.ts +16 -0
- package/src/languages/pl.ts +18 -0
- package/src/languages/pt.ts +15 -0
- package/src/languages/qu.ts +15 -0
- package/src/languages/ru.ts +26 -0
- package/src/languages/sw.ts +15 -0
- package/src/languages/th.ts +16 -0
- package/src/languages/tl.ts +16 -0
- package/src/languages/tr.ts +15 -0
- package/src/languages/uk.ts +26 -0
- package/src/languages/vi.ts +16 -0
- package/src/languages/zh.ts +15 -0
- package/src/parser/index.ts +15 -0
- package/src/parser/pattern-matcher.ts +1181 -0
- package/src/parser/semantic-parser.ts +573 -0
- package/src/parser/utils/index.ts +35 -0
- package/src/parser/utils/marker-resolution.ts +111 -0
- package/src/parser/utils/possessive-keywords.ts +43 -0
- package/src/parser/utils/role-positioning.ts +70 -0
- package/src/parser/utils/type-validation.ts +134 -0
- package/src/patterns/add/ar.ts +71 -0
- package/src/patterns/add/bn.ts +70 -0
- package/src/patterns/add/hi.ts +69 -0
- package/src/patterns/add/index.ts +87 -0
- package/src/patterns/add/it.ts +61 -0
- package/src/patterns/add/ja.ts +93 -0
- package/src/patterns/add/ko.ts +74 -0
- package/src/patterns/add/ms.ts +30 -0
- package/src/patterns/add/pl.ts +62 -0
- package/src/patterns/add/ru.ts +62 -0
- package/src/patterns/add/th.ts +49 -0
- package/src/patterns/add/tl.ts +30 -0
- package/src/patterns/add/tr.ts +71 -0
- package/src/patterns/add/uk.ts +62 -0
- package/src/patterns/add/vi.ts +61 -0
- package/src/patterns/add/zh.ts +71 -0
- package/src/patterns/builders.ts +207 -0
- package/src/patterns/decrement/bn.ts +70 -0
- package/src/patterns/decrement/de.ts +42 -0
- package/src/patterns/decrement/hi.ts +68 -0
- package/src/patterns/decrement/index.ts +79 -0
- package/src/patterns/decrement/it.ts +69 -0
- package/src/patterns/decrement/ms.ts +30 -0
- package/src/patterns/decrement/pl.ts +58 -0
- package/src/patterns/decrement/ru.ts +58 -0
- package/src/patterns/decrement/th.ts +49 -0
- package/src/patterns/decrement/tl.ts +30 -0
- package/src/patterns/decrement/tr.ts +48 -0
- package/src/patterns/decrement/uk.ts +58 -0
- package/src/patterns/decrement/vi.ts +61 -0
- package/src/patterns/decrement/zh.ts +32 -0
- package/src/patterns/en.ts +302 -0
- package/src/patterns/event-handler/ar.ts +151 -0
- package/src/patterns/event-handler/bn.ts +72 -0
- package/src/patterns/event-handler/de.ts +117 -0
- package/src/patterns/event-handler/en.ts +117 -0
- package/src/patterns/event-handler/es.ts +136 -0
- package/src/patterns/event-handler/fr.ts +117 -0
- package/src/patterns/event-handler/hi.ts +64 -0
- package/src/patterns/event-handler/id.ts +117 -0
- package/src/patterns/event-handler/index.ts +119 -0
- package/src/patterns/event-handler/it.ts +54 -0
- package/src/patterns/event-handler/ja.ts +118 -0
- package/src/patterns/event-handler/ko.ts +133 -0
- package/src/patterns/event-handler/ms.ts +30 -0
- package/src/patterns/event-handler/pl.ts +62 -0
- package/src/patterns/event-handler/pt.ts +117 -0
- package/src/patterns/event-handler/qu.ts +66 -0
- package/src/patterns/event-handler/ru.ts +62 -0
- package/src/patterns/event-handler/shared.ts +270 -0
- package/src/patterns/event-handler/sw.ts +117 -0
- package/src/patterns/event-handler/th.ts +53 -0
- package/src/patterns/event-handler/tl.ts +30 -0
- package/src/patterns/event-handler/tr.ts +170 -0
- package/src/patterns/event-handler/uk.ts +62 -0
- package/src/patterns/event-handler/vi.ts +61 -0
- package/src/patterns/event-handler/zh.ts +150 -0
- package/src/patterns/get/ar.ts +49 -0
- package/src/patterns/get/bn.ts +47 -0
- package/src/patterns/get/de.ts +32 -0
- package/src/patterns/get/hi.ts +52 -0
- package/src/patterns/get/index.ts +83 -0
- package/src/patterns/get/it.ts +56 -0
- package/src/patterns/get/ja.ts +53 -0
- package/src/patterns/get/ko.ts +53 -0
- package/src/patterns/get/ms.ts +30 -0
- package/src/patterns/get/pl.ts +57 -0
- package/src/patterns/get/ru.ts +57 -0
- package/src/patterns/get/th.ts +29 -0
- package/src/patterns/get/tl.ts +30 -0
- package/src/patterns/get/uk.ts +57 -0
- package/src/patterns/get/vi.ts +48 -0
- package/src/patterns/grammar-transformed/index.ts +39 -0
- package/src/patterns/grammar-transformed/ja.ts +1713 -0
- package/src/patterns/grammar-transformed/ko.ts +1311 -0
- package/src/patterns/grammar-transformed/tr.ts +1067 -0
- package/src/patterns/hide/ar.ts +67 -0
- package/src/patterns/hide/bn.ts +47 -0
- package/src/patterns/hide/de.ts +36 -0
- package/src/patterns/hide/hi.ts +61 -0
- package/src/patterns/hide/index.ts +91 -0
- package/src/patterns/hide/it.ts +56 -0
- package/src/patterns/hide/ja.ts +69 -0
- package/src/patterns/hide/ko.ts +69 -0
- package/src/patterns/hide/ms.ts +30 -0
- package/src/patterns/hide/pl.ts +57 -0
- package/src/patterns/hide/ru.ts +57 -0
- package/src/patterns/hide/th.ts +29 -0
- package/src/patterns/hide/tl.ts +30 -0
- package/src/patterns/hide/tr.ts +65 -0
- package/src/patterns/hide/uk.ts +57 -0
- package/src/patterns/hide/vi.ts +56 -0
- package/src/patterns/hide/zh.ts +68 -0
- package/src/patterns/increment/bn.ts +70 -0
- package/src/patterns/increment/de.ts +36 -0
- package/src/patterns/increment/hi.ts +68 -0
- package/src/patterns/increment/index.ts +79 -0
- package/src/patterns/increment/it.ts +69 -0
- package/src/patterns/increment/ms.ts +30 -0
- package/src/patterns/increment/pl.ts +58 -0
- package/src/patterns/increment/ru.ts +58 -0
- package/src/patterns/increment/th.ts +49 -0
- package/src/patterns/increment/tl.ts +30 -0
- package/src/patterns/increment/tr.ts +52 -0
- package/src/patterns/increment/uk.ts +58 -0
- package/src/patterns/increment/vi.ts +61 -0
- package/src/patterns/increment/zh.ts +32 -0
- package/src/patterns/index.ts +84 -0
- package/src/patterns/languages/en/control-flow.ts +93 -0
- package/src/patterns/languages/en/fetch.ts +62 -0
- package/src/patterns/languages/en/index.ts +42 -0
- package/src/patterns/languages/en/repeat.ts +67 -0
- package/src/patterns/languages/en/set.ts +48 -0
- package/src/patterns/languages/en/swap.ts +38 -0
- package/src/patterns/languages/en/temporal.ts +57 -0
- package/src/patterns/put/ar.ts +74 -0
- package/src/patterns/put/bn.ts +53 -0
- package/src/patterns/put/en.ts +74 -0
- package/src/patterns/put/es.ts +74 -0
- package/src/patterns/put/hi.ts +69 -0
- package/src/patterns/put/id.ts +96 -0
- package/src/patterns/put/index.ts +99 -0
- package/src/patterns/put/it.ts +56 -0
- package/src/patterns/put/ja.ts +75 -0
- package/src/patterns/put/ko.ts +67 -0
- package/src/patterns/put/ms.ts +30 -0
- package/src/patterns/put/pl.ts +81 -0
- package/src/patterns/put/ru.ts +85 -0
- package/src/patterns/put/th.ts +32 -0
- package/src/patterns/put/tl.ts +30 -0
- package/src/patterns/put/tr.ts +67 -0
- package/src/patterns/put/uk.ts +85 -0
- package/src/patterns/put/vi.ts +72 -0
- package/src/patterns/put/zh.ts +62 -0
- package/src/patterns/registry.ts +163 -0
- package/src/patterns/remove/ar.ts +71 -0
- package/src/patterns/remove/bn.ts +68 -0
- package/src/patterns/remove/hi.ts +69 -0
- package/src/patterns/remove/index.ts +87 -0
- package/src/patterns/remove/it.ts +69 -0
- package/src/patterns/remove/ja.ts +74 -0
- package/src/patterns/remove/ko.ts +78 -0
- package/src/patterns/remove/ms.ts +30 -0
- package/src/patterns/remove/pl.ts +62 -0
- package/src/patterns/remove/ru.ts +62 -0
- package/src/patterns/remove/th.ts +49 -0
- package/src/patterns/remove/tl.ts +30 -0
- package/src/patterns/remove/tr.ts +78 -0
- package/src/patterns/remove/uk.ts +62 -0
- package/src/patterns/remove/vi.ts +61 -0
- package/src/patterns/remove/zh.ts +72 -0
- package/src/patterns/set/ar.ts +84 -0
- package/src/patterns/set/bn.ts +53 -0
- package/src/patterns/set/de.ts +84 -0
- package/src/patterns/set/es.ts +92 -0
- package/src/patterns/set/fr.ts +88 -0
- package/src/patterns/set/hi.ts +56 -0
- package/src/patterns/set/id.ts +84 -0
- package/src/patterns/set/index.ts +107 -0
- package/src/patterns/set/it.ts +56 -0
- package/src/patterns/set/ja.ts +86 -0
- package/src/patterns/set/ko.ts +85 -0
- package/src/patterns/set/ms.ts +30 -0
- package/src/patterns/set/pl.ts +57 -0
- package/src/patterns/set/pt.ts +84 -0
- package/src/patterns/set/ru.ts +57 -0
- package/src/patterns/set/th.ts +31 -0
- package/src/patterns/set/tl.ts +30 -0
- package/src/patterns/set/tr.ts +107 -0
- package/src/patterns/set/uk.ts +57 -0
- package/src/patterns/set/vi.ts +53 -0
- package/src/patterns/set/zh.ts +84 -0
- package/src/patterns/show/ar.ts +67 -0
- package/src/patterns/show/bn.ts +47 -0
- package/src/patterns/show/de.ts +32 -0
- package/src/patterns/show/fr.ts +32 -0
- package/src/patterns/show/hi.ts +61 -0
- package/src/patterns/show/index.ts +95 -0
- package/src/patterns/show/it.ts +56 -0
- package/src/patterns/show/ja.ts +69 -0
- package/src/patterns/show/ko.ts +73 -0
- package/src/patterns/show/ms.ts +30 -0
- package/src/patterns/show/pl.ts +57 -0
- package/src/patterns/show/ru.ts +57 -0
- package/src/patterns/show/th.ts +29 -0
- package/src/patterns/show/tl.ts +30 -0
- package/src/patterns/show/tr.ts +65 -0
- package/src/patterns/show/uk.ts +57 -0
- package/src/patterns/show/vi.ts +56 -0
- package/src/patterns/show/zh.ts +68 -0
- package/src/patterns/take/ar.ts +51 -0
- package/src/patterns/take/index.ts +31 -0
- package/src/patterns/toggle/ar.ts +61 -0
- package/src/patterns/toggle/bn.ts +70 -0
- package/src/patterns/toggle/en.ts +61 -0
- package/src/patterns/toggle/es.ts +61 -0
- package/src/patterns/toggle/hi.ts +80 -0
- package/src/patterns/toggle/index.ts +95 -0
- package/src/patterns/toggle/it.ts +69 -0
- package/src/patterns/toggle/ja.ts +156 -0
- package/src/patterns/toggle/ko.ts +113 -0
- package/src/patterns/toggle/ms.ts +30 -0
- package/src/patterns/toggle/pl.ts +62 -0
- package/src/patterns/toggle/ru.ts +62 -0
- package/src/patterns/toggle/th.ts +50 -0
- package/src/patterns/toggle/tl.ts +30 -0
- package/src/patterns/toggle/tr.ts +88 -0
- package/src/patterns/toggle/uk.ts +62 -0
- package/src/patterns/toggle/vi.ts +61 -0
- package/src/patterns/toggle/zh.ts +99 -0
- package/src/public-api.ts +286 -0
- package/src/registry.ts +441 -0
- package/src/tokenizers/arabic.ts +723 -0
- package/src/tokenizers/base.ts +1300 -0
- package/src/tokenizers/bengali.ts +289 -0
- package/src/tokenizers/chinese.ts +481 -0
- package/src/tokenizers/english.ts +416 -0
- package/src/tokenizers/french.ts +326 -0
- package/src/tokenizers/german.ts +324 -0
- package/src/tokenizers/hindi.ts +319 -0
- package/src/tokenizers/index.ts +127 -0
- package/src/tokenizers/indonesian.ts +306 -0
- package/src/tokenizers/italian.ts +458 -0
- package/src/tokenizers/japanese.ts +447 -0
- package/src/tokenizers/korean.ts +642 -0
- package/src/tokenizers/morphology/arabic-normalizer.ts +242 -0
- package/src/tokenizers/morphology/french-normalizer.ts +268 -0
- package/src/tokenizers/morphology/german-normalizer.ts +256 -0
- package/src/tokenizers/morphology/index.ts +46 -0
- package/src/tokenizers/morphology/italian-normalizer.ts +329 -0
- package/src/tokenizers/morphology/japanese-normalizer.ts +288 -0
- package/src/tokenizers/morphology/korean-normalizer.ts +428 -0
- package/src/tokenizers/morphology/polish-normalizer.ts +264 -0
- package/src/tokenizers/morphology/portuguese-normalizer.ts +310 -0
- package/src/tokenizers/morphology/spanish-normalizer.ts +327 -0
- package/src/tokenizers/morphology/turkish-normalizer.ts +412 -0
- package/src/tokenizers/morphology/types.ts +211 -0
- package/src/tokenizers/ms.ts +198 -0
- package/src/tokenizers/polish.ts +354 -0
- package/src/tokenizers/portuguese.ts +304 -0
- package/src/tokenizers/quechua.ts +339 -0
- package/src/tokenizers/russian.ts +375 -0
- package/src/tokenizers/spanish.ts +403 -0
- package/src/tokenizers/swahili.ts +303 -0
- package/src/tokenizers/thai.ts +236 -0
- package/src/tokenizers/tl.ts +198 -0
- package/src/tokenizers/turkish.ts +411 -0
- package/src/tokenizers/ukrainian.ts +369 -0
- package/src/tokenizers/vietnamese.ts +410 -0
- package/src/types/grammar-types.ts +617 -0
- package/src/types/unified-profile.ts +267 -0
- package/src/types.ts +709 -0
- package/src/utils/confidence-calculator.ts +147 -0
- package/src/validators/command-validator.ts +380 -0
- package/src/validators/index.ts +15 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var LokaScriptSemanticEnTr=(()=>{var ye=Object.defineProperty;var kt=Object.getOwnPropertyDescriptor;var bt=Object.getOwnPropertyNames;var Pt=Object.prototype.hasOwnProperty;var Et=(r,e)=>{for(var t in e)ye(r,t,{get:e[t],enumerable:!0})},Lt=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of bt(e))!Pt.call(r,o)&&o!==t&&ye(r,o,{get:()=>e[o],enumerable:!(n=kt(e,o))||n.enumerable});return r};var wt=r=>Lt(ye({},"__esModule",{value:!0}),r);var oo={};Et(oo,{ASTBuilder:()=>ee,DEFAULT_CONFIDENCE_THRESHOLD:()=>Ie,HIGH_CONFIDENCE_THRESHOLD:()=>ht,SemanticAnalyzerImpl:()=>te,VERSION:()=>eo,buildAST:()=>gt,canParse:()=>Re,createCommandNode:()=>j,createEventHandler:()=>$,createLiteral:()=>k,createPropertyPath:()=>G,createReference:()=>N,createSelector:()=>A,createSemanticAnalyzer:()=>yt,englishProfile:()=>R,englishTokenizer:()=>se,fromExplicit:()=>ze,getCommandMapper:()=>J,getPatternsForLanguage:()=>xt,getPatternsForLanguageAndCommand:()=>ro,getProfile:()=>ve,getSupportedLanguages:()=>to,getTokenizer:()=>he,isExplicitSyntax:()=>D,isLanguageSupported:()=>We,parse:()=>F,parseAny:()=>Me,parseExplicit:()=>_,registerCommandMapper:()=>je,render:()=>Z,renderExplicit:()=>Y,shouldUseSemanticResult:()=>vt,toExplicit:()=>Ne,tokenize:()=>no,tryGetProfile:()=>M,turkishProfile:()=>I,turkishTokenizer:()=>le});var B=new Map,re=new Map,H=new Map;var Oe=null;function oe(r,e,t){B.set(r,e),re.set(r,t),H.delete(r)}var _e=new Map;function qe(r,e){_e.set(r,e),H.delete(r)}function he(r){let e=B.get(r);if(!e){let t=Array.from(B.keys()).join(", ");throw new Error(`Language '${r}' is not registered. Registered languages: ${t||"none"}. Import the language module first: import '@lokascript/semantic/languages/${r}';`)}return e}function ve(r){let e=re.get(r);if(!e){let t=Array.from(re.keys()).join(", ");throw new Error(`Language profile '${r}' is not registered. Registered languages: ${t||"none"}. Import the language module first: import '@lokascript/semantic/languages/${r}';`)}return e}function Be(r){return B.get(r)}function M(r){return re.get(r)}function ie(){return Array.from(B.keys())}function We(r){return B.has(r)}function Ue(r,e){return he(e).tokenize(r)}function L(r){let e=H.get(r);if(e)return e;let t=_e.get(r);if(t)return H.set(r,t),t;if(!Oe)throw new Error(`No patterns registered for language '${r}'. Either import the language module or set a pattern generator.`);let n=ve(r),o=Oe(n);return H.set(r,o),o}function Ke(r,e){return L(r).filter(t=>t.command===e).sort((t,n)=>n.priority-t.priority)}var w=class{constructor(e,t){this.pos=0;this.tokens=e,this.language=t}peek(e=0){let 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){let t=[];for(;!this.isAtEnd()&&e(this.peek());)t.push(this.advance());return t}skipWhile(e){for(;!this.isAtEnd()&&e(this.peek());)this.advance()}};function v(r,e){return{start:r,end:e}}function S(r,e,t,n){if(typeof n=="string")return{value:r,kind:e,position:t,normalized:n};if(n){let{normalized:o,stem:i,stemConfidence:a}=n,s={value:r,kind:e,position:t};return o!==void 0&&(s.normalized=o),i!==void 0&&(s.stem=i,a!==void 0&&(s.stemConfidence=a)),s}return{value:r,kind:e,position:t}}function C(r){return/\s/.test(r)}function W(r){return r==="#"||r==="."||r==="["||r==="@"||r==="*"||r==="<"}function U(r){return r==='"'||r==="'"||r==="`"||r==="\u300C"||r==="\u300D"}function P(r){return/\d/.test(r)}function Ge(r){return/[a-zA-Z]/.test(r)}function x(r){return/[a-zA-Z0-9_-]/.test(r)}function Se(r){let e=n=>r.test(n);return{isLetter:e,isIdentifierChar:n=>e(n)||/[0-9_-]/.test(n)}}function $e(r,e){if(e>=r.length)return null;let t=r[e];if(!W(t))return null;let n=e,o="";if(t==="#"||t==="."){for(o+=r[n++];n<r.length&&x(r[n]);)o+=r[n++];if(o.length<=1)return null;if(n<r.length&&r[n]==="."&&t==="#"){let a=n+1;for(;a<r.length&&x(r[a]);)a++;if(a<r.length&&r[a]==="(")return o}}else if(t==="["){let i=1,a=!1,s=null,c=!1;for(o+=r[n++];n<r.length&&i>0;){let l=r[n];o+=l,c?c=!1:l==="\\"?c=!0:a?l===s&&(a=!1,s=null):l==='"'||l==="'"||l==="`"?(a=!0,s=l):l==="["?i++:l==="]"&&i--,n++}if(i!==0)return null}else if(t==="@"){for(o+=r[n++];n<r.length&&x(r[n]);)o+=r[n++];if(o.length<=1)return null}else if(t==="*"){for(o+=r[n++];n<r.length&&x(r[n]);)o+=r[n++];if(o.length<=1)return null}else if(t==="<"){if(o+=r[n++],n>=r.length||!Ge(r[n]))return null;for(;n<r.length&&x(r[n]);)o+=r[n++];for(;n<r.length;){let i=r[n];if(i==="."){if(o+=r[n++],n>=r.length||!x(r[n]))return null;for(;n<r.length&&x(r[n]);)o+=r[n++]}else if(i==="#"){if(o+=r[n++],n>=r.length||!x(r[n]))return null;for(;n<r.length&&x(r[n]);)o+=r[n++]}else if(i==="["){let a=1,s=!1,c=null,l=!1;for(o+=r[n++];n<r.length&&a>0;){let d=r[n];o+=d,l?l=!1:d==="\\"?l=!0:s?d===c&&(s=!1,c=null):d==='"'||d==="'"||d==="`"?(s=!0,c=d):d==="["?a++:d==="]"&&a--,n++}if(a!==0)return null}else break}for(;n<r.length&&C(r[n]);)o+=r[n++];if(n<r.length&&r[n]==="/")for(o+=r[n++];n<r.length&&C(r[n]);)o+=r[n++];if(n>=r.length||r[n]!==">")return null;o+=r[n++]}return o||null}function Te(r,e){if(e>=r.length||r[e]!=="'"||e+1>=r.length||r[e+1].toLowerCase()!=="s")return!1;if(e+2>=r.length)return!0;let n=r[e+2];return C(n)||n==="*"||!x(n)}function De(r,e){if(e>=r.length)return null;let t=r[e];if(!U(t)||t==="'"&&Te(r,e))return null;let o={'"':'"',"'":"'","`":"`","\u300C":"\u300D"}[t];if(!o)return null;let i=e+1,a=t,s=!1;for(;i<r.length;){let c=r[i];if(a+=c,s)s=!1;else if(c==="\\")s=!0;else if(c===o)return a;i++}return a}function K(r,e){if(e>=r.length)return!1;let t=r[e],n=r[e+1]||"",o=r[e+2]||"";if(t==="/"&&n!=="/"&&/[a-zA-Z0-9._-]/.test(n)||t==="/"&&n==="/"&&/[a-zA-Z]/.test(o)||t==="."&&(n==="/"||n==="."&&o==="/"))return!0;let i=r.slice(e,e+8).toLowerCase();return!!(i.startsWith("http://")||i.startsWith("https://"))}function Fe(r,e){if(!K(r,e))return null;let t=e,n="",o=/[a-zA-Z0-9/:._\-?&=%@+~!$'()*,;[\]]/;for(;t<r.length;){let i=r[t];if(i==="#"){if(n.length>0&&/[a-zA-Z0-9/.]$/.test(n))for(n+=i,t++;t<r.length&&/[a-zA-Z0-9_-]/.test(r[t]);)n+=r[t++];break}if(o.test(i))n+=i,t++;else break}return n.length<2?null:n}function He(r,e){if(e>=r.length)return null;let t=r[e];if(!P(t)&&t!=="-"&&t!=="+")return null;let n=e,o="";if((r[n]==="-"||r[n]==="+")&&(o+=r[n++]),n>=r.length||!P(r[n]))return null;for(;n<r.length&&P(r[n]);)o+=r[n++];if(n<r.length&&r[n]===".")for(o+=r[n++];n<r.length&&P(r[n]);)o+=r[n++];return n<r.length&&(r.slice(n,n+2)==="ms"?o+="ms":(r[n]==="s"||r[n]==="m"||r[n]==="h")&&(o+=r[n])),o}var ae=class ae{constructor(){this.profileKeywords=[];this.profileKeywordMap=new Map}initializeKeywordsFromProfile(e,t=[]){let n=new Map;if(e.keywords){for(let[o,i]of Object.entries(e.keywords))if(n.set(i.primary,{native:i.primary,normalized:i.normalized||o}),i.alternatives)for(let a of i.alternatives)n.set(a,{native:a,normalized:i.normalized||o})}if(e.references)for(let[o,i]of Object.entries(e.references))n.set(i,{native:i,normalized:o});if(e.roleMarkers){for(let[o,i]of Object.entries(e.roleMarkers))if(i.primary&&n.set(i.primary,{native:i.primary,normalized:o}),i.alternatives)for(let a of i.alternatives)n.set(a,{native:a,normalized:o})}for(let o of t)n.set(o.native,o);this.profileKeywords=Array.from(n.values()).sort((o,i)=>i.native.length-o.native.length),this.profileKeywordMap=new Map;for(let o of this.profileKeywords){this.profileKeywordMap.set(o.native.toLowerCase(),o);let i=this.removeDiacritics(o.native);i!==o.native&&!this.profileKeywordMap.has(i.toLowerCase())&&this.profileKeywordMap.set(i.toLowerCase(),o)}}removeDiacritics(e){return e.replace(/[\u064B-\u0652\u0670]/g,"")}tryProfileKeyword(e,t){for(let n of this.profileKeywords)if(e.slice(t).startsWith(n.native))return S(n.native,"keyword",v(t,t+n.native.length),n.normalized);return null}isKeywordStart(e,t){let n=e.slice(t);return this.profileKeywords.some(o=>n.startsWith(o.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;let t=this.normalizer.normalize(e);return t.stem!==e&&t.confidence>=.7?t:null}tryMorphKeywordMatch(e,t,n){let o=this.tryNormalize(e);if(!o)return null;let i=this.lookupKeyword(o.stem);if(!i)return null;let a={normalized:i.normalized,stem:o.stem,stemConfidence:o.confidence};return S(e,"keyword",v(t,n),a)}trySelector(e,t){let n=$e(e,t);return n?S(n,"selector",v(t,t+n.length)):null}tryEventModifier(e,t){if(e[t]!==".")return null;let n=e.slice(t).match(/^\.(?:once|debounce|throttle|queue)(?:\(([^)]+)\))?(?:\s|$|\.)/);if(!n)return null;let o=n[0].replace(/(\s|\.)$/,""),i=o.slice(1).split("(")[0],a=n[1];return{...S(o,"event-modifier",v(t,t+o.length)),metadata:{modifierName:i,value:a?i==="queue"?a:parseInt(a,10):void 0}}}tryString(e,t){let n=De(e,t);return n?S(n,"literal",v(t,t+n.length)):null}tryNumber(e,t){let n=He(e,t);return n?S(n,"literal",v(t,t+n.length)):null}tryMatchTimeUnit(e,t,n,o=!1){let i=t;if(o)for(;i<e.length&&C(e[i]);)i++;let a=e.slice(i);for(let s of n){let c=a.slice(0,s.length);if(s.caseInsensitive?c.toLowerCase()===s.pattern.toLowerCase():c===s.pattern){if(s.notFollowedBy&&(a[s.length]||"")===s.notFollowedBy)continue;if(s.checkBoundary){let d=a[s.length]||"";if(x(d))continue}return{suffix:s.suffix,endPos:i+s.length}}}return null}parseBaseNumber(e,t,n=!0){let o=t,i="";if(n&&(e[o]==="-"||e[o]==="+")&&(i+=e[o++]),o>=e.length||!P(e[o]))return null;for(;o<e.length&&P(e[o]);)i+=e[o++];if(o<e.length&&e[o]===".")for(i+=e[o++];o<e.length&&P(e[o]);)i+=e[o++];return!i||i==="-"||i==="+"?null:{number:i,endPos:o}}tryNumberWithTimeUnits(e,t,n,o={}){let{allowSign:i=!0,skipWhitespace:a=!1}=o,s=this.parseBaseNumber(e,t,i);if(!s)return null;let{number:c,endPos:l}=s,d=[...n,...ae.STANDARD_TIME_UNITS],T=this.tryMatchTimeUnit(e,l,d,a);return T&&(c+=T.suffix,l=T.endPos),S(c,"literal",v(t,l))}tryUrl(e,t){let n=Fe(e,t);return n?S(n,"url",v(t,t+n.length)):null}tryVariableRef(e,t){if(e[t]!==":"||t+1>=e.length||!x(e[t+1]))return null;let n=t+1;for(;n<e.length&&x(e[n]);)n++;let o=e.slice(t,n);return S(o,"identifier",v(t,n))}tryOperator(e,t){let n=e.slice(t,t+2);if(["==","!=","<=",">=","&&","||","->"].includes(n))return S(n,"operator",v(t,t+2));let o=e[t];return["<",">","!","+","-","*","/","="].includes(o)?S(o,"operator",v(t,t+1)):["(",")","{","}",",",";",":"].includes(o)?S(o,"punctuation",v(t,t+1)):null}tryMultiCharParticle(e,t,n){for(let o of n)if(e.slice(t,t+o.length)===o)return S(o,"particle",v(t,t+o.length));return null}};ae.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 V=ae;var R={code:"en",name:"English",nativeName:"English",direction:"ltr",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,defaultVerbForm:"base",verb:{position:"start",subjectDrop:!1},references:{me:"me",it:"it",you:"you",result:"result",event:"event",target:"target",body:"body"},possessive:{marker:"'s",markerPosition:"after-object",specialForms:{me:"my",it:"its",you:"your"},keywords:{my:"me",your:"you",its:"it"}},roleMarkers:{destination:{primary:"on",alternatives:["to","from"],position:"before"},source:{primary:"from",position:"before"},patient:{primary:"",position:"before"},style:{primary:"with",alternatives:["by","using"],position:"before"},responseType:{primary:"as",position:"before"},method:{primary:"via",alternatives:["using"],position:"before"}},keywords:{toggle:{primary:"toggle"},add:{primary:"add"},remove:{primary:"remove"},put:{primary:"put"},append:{primary:"append"},prepend:{primary:"prepend"},take:{primary:"take"},make:{primary:"make"},clone:{primary:"clone"},swap:{primary:"swap"},morph:{primary:"morph"},set:{primary:"set"},get:{primary:"get"},increment:{primary:"increment"},decrement:{primary:"decrement"},log:{primary:"log"},show:{primary:"show"},hide:{primary:"hide"},transition:{primary:"transition"},on:{primary:"on"},trigger:{primary:"trigger"},send:{primary:"send"},focus:{primary:"focus"},blur:{primary:"blur"},go:{primary:"go"},wait:{primary:"wait"},fetch:{primary:"fetch"},settle:{primary:"settle"},if:{primary:"if"},when:{primary:"when",normalized:"when"},where:{primary:"where",normalized:"where"},else:{primary:"else"},repeat:{primary:"repeat"},for:{primary:"for"},while:{primary:"while"},continue:{primary:"continue"},halt:{primary:"halt"},throw:{primary:"throw"},call:{primary:"call"},return:{primary:"return"},then:{primary:"then"},and:{primary:"and"},end:{primary:"end"},js:{primary:"js"},async:{primary:"async"},tell:{primary:"tell"},default:{primary:"default"},init:{primary:"init"},behavior:{primary:"behavior"},install:{primary:"install"},measure:{primary:"measure"},into:{primary:"into"},before:{primary:"before"},after:{primary:"after"},until:{primary:"until"},event:{primary:"event"},from:{primary:"from"}}};var Ct=[{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"}],xe=class extends V{constructor(){super();this.language="en";this.direction="ltr";this.initializeKeywordsFromProfile(R,Ct)}tokenize(t){let n=[],o=0;for(;o<t.length;){if(C(t[o])){o++;continue}if(W(t[o])){let s=this.tryEventModifier(t,o);if(s){n.push(s),o=s.position.end;continue}if(t[o]==="."){let l=n[n.length-1],d=l&&l.position.end<o;if(l&&!d&&(l.kind==="identifier"||l.kind==="keyword"||l.kind==="selector")){n.push(S(".","operator",v(o,o+1))),o++;continue}let g=o+1;for(;g<t.length&&x(t[g]);)g++;if(g<t.length&&t[g]==="("){n.push(S(".","operator",v(o,o+1))),o++;continue}}let c=this.trySelector(t,o);if(c){n.push(c),o=c.position.end;continue}}if(U(t[o])){if(t[o]==="'"&&Te(t,o)){n.push(S("'s","punctuation",v(o,o+2))),o+=2;continue}let s=this.tryString(t,o);if(s){n.push(s),o=s.position.end;continue}}if(K(t,o)){let s=this.tryUrl(t,o);if(s){n.push(s),o=s.position.end;continue}}if(P(t[o])||t[o]==="-"&&o+1<t.length&&P(t[o+1])){let s=this.tryNumber(t,o);if(s){n.push(s),o=s.position.end;continue}}let i=this.tryVariableRef(t,o);if(i){n.push(i),o=i.position.end;continue}if(x(t[o])){let s=this.extractWord(t,o);if(s){n.push(s),o=s.position.end;continue}}let a=this.tryOperator(t,o);if(a){n.push(a),o=a.position.end;continue}o++}return new w(n,"en")}classifyToken(t){return this.isKeyword(t)?"keyword":t.startsWith("#")||t.startsWith(".")||t.startsWith("[")?"selector":t.startsWith('"')||t.startsWith("'")||/^\d/.test(t)?"literal":["==","!=","<=",">=","<",">","&&","||","!"].includes(t)?"operator":t.startsWith("/")||t.startsWith("./")||t.startsWith("http")?"url":"identifier"}extractWord(t,n){let o=n,i="";for(;o<t.length&&x(t[o]);)i+=t[o++];if(!i)return null;if(o<t.length&&t[o]===":"){let l=o;o++;let d="";for(;o<t.length&&x(t[o]);)d+=t[o++];d?i=i+":"+d:o=l}let a=this.classifyToken(i),s=this.lookupKeyword(i),c=s&&s.normalized!==s.native?s.normalized:void 0;if(a==="identifier"){let l=this.tryConvertToClassSelector(t,o,i);if(l)return l.token}return S(i,a,v(n,o),c)}tryConvertToClassSelector(t,n,o){let i=n;for(;i<t.length&&/\s/.test(t[i]);)i++;if(t.slice(i,i+5).toLowerCase()==="class"){let a=i+5;if(a>=t.length||!x(t[a])){let s="."+o;return{token:S(s,"selector",v(n-o.length,n)),endPos:n}}}return null}},se=new xe;var Rt={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"],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)"}},Nt={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}],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"}},zt={action:"remove",description:"Remove a class or attribute from an element",category:"dom-class",primaryRole:"patient",roles:[{role:"patient",description:"The class or attribute to remove",required:!0,expectedTypes:["selector"],svoPosition:1,sovPosition:2},{role:"source",description:"The element to remove from (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:2,sovPosition:1}],errorCodes:["MISSING_ARGUMENT","NO_VALID_CLASS_NAMES"],preconditions:[{condition:"Command has at least one argument",errorCode:"MISSING_ARGUMENT",message:"remove command requires an argument"}],recoveryHints:{MISSING_ARGUMENT:"Add a class selector (.classname) or attribute to remove",NO_VALID_CLASS_NAMES:"Ensure class names start with a dot (.) and are valid CSS identifiers"}},Mt={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:2},{role:"destination",description:"Where to put the content",required:!0,expectedTypes:["selector","reference"],svoPosition:2,sovPosition:1}],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"}},At={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"],svoPosition:1,sovPosition:1,markerOverride:{en:""}},{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:"\xE0",de:"auf",id:"ke"}}],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>"}},jt={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}]},Vt={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}]},It={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}]},Ot={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}]},_t={action:"wait",description:"Wait for a duration or event",category:"async",primaryRole:"patient",roles:[{role:"patient",description:"Duration or event to wait for",required:!0,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:1}]},qt={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},{role:"responseType",description:"Response format (json, text, html, blob, etc.)",required:!1,expectedTypes:["literal","expression"],svoPosition:2,sovPosition:2},{role:"method",description:"HTTP method (GET, POST, etc.)",required:!1,expectedTypes:["literal"],svoPosition:3,sovPosition:3},{role:"destination",description:"Where to store the result",required:!1,expectedTypes:["selector","reference"],svoPosition:4,sovPosition:4}]},Bt={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}]},Wt={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}]},Ut={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}]},Kt={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}]},Gt={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}]},$t={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:"",id:""}},{role:"destination",description:"Where to store the result (optional)",required:!1,expectedTypes:["reference"],svoPosition:2,sovPosition:1}]},Dt={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}]},Ft={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}]},Ht={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}]},Xt={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}]},Qt={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}]},Zt={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:"\u306B",ar:"\u0625\u0644\u0649",es:"a",ko:"\uC5D0\uAC8C",zh:"\u5230",tr:"-e",pt:"para",fr:"\xE0",de:"an",id:"ke",qu:"-man",sw:"kwa"}}]},Yt={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}]},Jt={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}]},en={action:"else",description:"Else branch of conditional",category:"control-flow",primaryRole:"patient",hasBody:!0,roles:[]},tn={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"'},nn={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}]},rn={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}]},on={action:"continue",description:"Continue to next loop iteration",category:"control-flow",primaryRole:"patient",roles:[]},an={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}]},sn={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},{role:"goal",description:"The target value to transition to",required:!0,expectedTypes:["literal","expression"],svoPosition:2,sovPosition:3},{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},{role:"style",description:"Easing function (ease-in, linear, etc.)",required:!1,expectedTypes:["literal"],svoPosition:5,sovPosition:5}]},cn={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}]},ln={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}]},pn={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}]},dn={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}]},un={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}]},mn={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}]},fn={action:"async",description:"Execute commands asynchronously",category:"async",primaryRole:"patient",hasBody:!0,roles:[]},gn={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}]},yn={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},{role:"patient",description:"The default value",required:!0,expectedTypes:["literal","expression"],svoPosition:2,sovPosition:2}]},hn={action:"init",description:"Initialization block that runs once",category:"control-flow",primaryRole:"patient",hasBody:!0,roles:[]},vn={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}]},Sn={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}]},Tn={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}]},xn={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},{role:"destination",description:"The element to swap content in/for",required:!0,expectedTypes:["selector","reference"],svoPosition:2,sovPosition:1},{role:"patient",description:"The content to swap in (optional for delete)",required:!1,expectedTypes:["literal","expression","selector"],svoPosition:3,sovPosition:2}]},kn={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},{role:"patient",description:"The target content/element to morph into",required:!0,expectedTypes:["literal","expression","selector"],svoPosition:2,sovPosition:2}]},bn={toggle:Rt,add:Nt,remove:zt,put:Mt,set:At,show:jt,hide:Vt,on:It,trigger:Ot,wait:_t,fetch:qt,increment:Bt,decrement:Wt,append:Ut,prepend:Kt,log:Gt,get:$t,take:Dt,make:Ft,halt:Ht,settle:Xt,throw:Qt,send:Zt,if:Yt,unless:Jt,else:en,repeat:tn,for:nn,while:rn,continue:on,go:an,transition:sn,clone:cn,focus:ln,blur:pn,call:dn,return:un,js:mn,async:fn,tell:gn,default:yn,init:hn,behavior:vn,install:Sn,measure:Tn,swap:xn,morph:kn,compound:{action:"compound",description:"A compound node representing chained statements",primaryRole:"patient",category:"control-flow",hasBody:!0,roles:[]}};function Xe(){return Object.values(bn).filter(r=>r.roles.length>0)}function ke(r,e){let t=e==="SOV"?"sovPosition":"svoPosition";return[...r].sort((n,o)=>{let i=n[t]??99,a=o[t]??99;return i-a})}function Qe(r,e){let t=r.markerOverride?.[e.code],n=e.roleMarkers[r.role];if(t!==void 0)return{primary:t,position:n?.position??"before",isOverride:!0};if(n&&n.primary){let o={primary:n.primary,position:n.position,isOverride:!1};return n.alternatives&&(o.alternatives=n.alternatives),o}return null}var ce={basePriority:100,generateSimpleVariants:!0,generateAlternatives:!0};function Ze(r,e,t=ce){let n=`${r.action}-${e.code}-generated`,o=t.basePriority??100,i=e.keywords[r.action];if(!i)throw new Error(`No keyword translation for '${r.action}' in ${e.code}`);let a=Ln(r,e,i),s=Je(r,e),c=Nn(r,e,i);return{id:n,language:e.code,command:r.action,priority:o,template:{format:c,tokens:a},extraction:s}}function Pn(r,e,t=ce){if(r.roles.filter(s=>!s.required).length===0)return null;let o=r.roles.filter(s=>s.required),i={...r,roles:o};return{...Ze(i,e,t),id:`${r.action}-${e.code}-simple`,priority:(t.basePriority??100)-5,extraction:Je(r,e)}}function En(r,e,t=ce){let n=[];if(n.push(Ze(r,e,t)),t.generateSimpleVariants){let o=Pn(r,e,t);o&&n.push(o)}return n}function Ye(r,e=ce){let t=[],n=Xe();for(let o of n){if(!r.keywords[o.action])continue;let i=En(o,r,e);t.push(...i)}return t}function Ln(r,e,t){let n=[],o=t.alternatives?{type:"literal",value:t.primary,alternatives:t.alternatives}:{type:"literal",value:t.primary},i=wn(r,e);switch(e.wordOrder){case"SVO":n.push(o),n.push(...i);break;case"SOV":n.push(...i),n.push(o);break;case"VSO":n.push(o),n.push(...i);break;default:n.push(o),n.push(...i)}return n}function wn(r,e){let t=[],n=ke(r.roles,e.wordOrder);for(let o of n){let i=Cn(o,e);o.required?t.push(...i):t.push({type:"group",optional:!0,tokens:i})}return t}function Cn(r,e){let t=[],n=r.markerOverride?.[e.code],o=e.roleMarkers[r.role],i={type:"role",role:r.role,optional:!r.required,expectedTypes:r.expectedTypes};if(n!==void 0)(o?.position??"before")==="before"?(n&&t.push({type:"literal",value:n}),t.push(i)):(t.push(i),n&&t.push({type:"literal",value:n}));else if(o)if(o.position==="before"){if(o.primary){let a=o.alternatives?{type:"literal",value:o.primary,alternatives:o.alternatives}:{type:"literal",value:o.primary};t.push(a)}t.push(i)}else{t.push(i);let a=o.alternatives?{type:"literal",value:o.primary,alternatives:o.alternatives}:{type:"literal",value:o.primary};t.push(a)}else t.push(i);return t}function Rn(r,e){let t={};for(let n of r.roles){let o=n.markerOverride?.[e.code],i=e.roleMarkers[n.role];o!==void 0?t[n.role]=o?{marker:o}:{}:i&&i.primary?t[n.role]=i.alternatives?{marker:i.primary,markerAlternatives:i.alternatives}:{marker:i.primary}:t[n.role]={}}return t}function Je(r,e){let t=Rn(r,e),n={};for(let o of r.roles){let i=t[o.role]||{};!o.required&&o.default?n[o.role]={...i,default:o.default}:n[o.role]=i}return n}function Nn(r,e,t){let n=[],i=ke(r.roles,e.wordOrder).map(a=>{let s=Qe(a,e),c="";return s&&s.primary?s.position==="before"?c=`${s.primary} {${a.role}}`:c=`{${a.role}} ${s.primary}`:c=`{${a.role}}`,a.required?c:`[${c}]`});switch(e.wordOrder){case"SVO":case"VSO":n.push(t.primary,...i);break;case"SOV":n.push(...i,t.primary);break;default:n.push(t.primary,...i)}return n.join(" ")}function et(){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"}}}}]}function tt(){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"}}}}]}function nt(){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}}}]}var zn={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"}}},Mn={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}}},An={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}}},jn={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"}}}},Vn={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"}}}},In={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"}}},On={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"}}}},_n={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}}},qn={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}}},Bn={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}}},Wn={id:"temporal-en-after",language:"en",command:"wait",priority:95,template:{format:"after {duration}",tokens:[{type:"literal",value:"after"},{type:"role",role:"duration",expectedTypes:["literal","expression"]}]},extraction:{duration:{position:1}}};function rt(){let r=[];r.push(...et()),r.push(...tt()),r.push(...nt()),r.push(zn,Mn,An,jn,Vn,In,On,_n,qn,Bn,Wn);let e=Ye(R);return r.push(...e),r}oe("en",se,R);qe("en",rt());function ot(r){return{stem:r,confidence:1}}function be(r,e,t){return t?{stem:r,confidence:e,metadata:t}:{stem:r,confidence:e}}function Un(r){let e=r.charCodeAt(0);return e>=65&&e<=90||e>=97&&e<=122?!0:"\xE7\xC7\u011F\u011E\u0131\u0130\xF6\xD6\u015F\u015E\xFC\xDC".includes(r)}function Kn(r){for(let e of r)if(Un(e))return!0;return!1}function Pe(r){return"a\u0131ouAIOU".includes(r)}function it(r){return"ei\xF6\xFCE\u0130\xD6\xDC".includes(r)}function at(r){return Pe(r)||it(r)}function Gn(r){for(let e=r.length-1;e>=0;e--)if(at(r[e]))return r[e];return null}function $n(r,e){let t=Gn(r);if(!t)return!0;let n=e.split("").find(o=>at(o));return n?Pe(t)?Pe(n):it(n):!0}var Dn=[{pattern:"iyorsunuz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"\u0131yorsunuz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"\xFCyorsunuz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"uyorsunuz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"iyorsun",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"\u0131yorsun",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"\xFCyorsun",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"uyorsun",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"iyoruz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"\u0131yoruz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"\xFCyoruz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"uyoruz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"iyorum",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"\u0131yorum",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"\xFCyorum",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"uyorum",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"iyorlar",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"\u0131yorlar",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"\xFCyorlar",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"uyorlar",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"eceksiniz",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"acaks\u0131n\u0131z",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"eceksin",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"acaks\u0131n",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"ece\u011Fiz",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"aca\u011F\u0131z",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"ece\u011Fim",confidence:.85,conjugationType:"future",minStemLength:2},{pattern:"aca\u011F\u0131m",confidence:.85,conjugationType:"future",minStemLength:2},{pattern:"ecekler",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"acaklar",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"mi\u015Fsiniz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"m\u0131\u015Fs\u0131n\u0131z",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"m\xFC\u015Fs\xFCn\xFCz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mu\u015Fsunuz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mi\u015Fsin",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"m\u0131\u015Fs\u0131n",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"m\xFC\u015Fs\xFCn",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mu\u015Fsun",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mi\u015Fiz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"m\u0131\u015F\u0131z",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"m\xFC\u015F\xFCz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mu\u015Fuz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mi\u015Fim",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"m\u0131\u015F\u0131m",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"m\xFC\u015F\xFCm",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"mu\u015Fum",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"mi\u015Fler",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"m\u0131\u015Flar",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"m\xFC\u015Fler",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mu\u015Flar",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"diniz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"d\u0131n\u0131z",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"d\xFCn\xFCz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dunuz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tiniz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"t\u0131n\u0131z",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"t\xFCn\xFCz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tunuz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"diler",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"d\u0131lar",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"d\xFCler",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dular",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tiler",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"t\u0131lar",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"t\xFCler",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tular",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"din",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"d\u0131n",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"d\xFCn",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dun",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tin",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"t\u0131n",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"t\xFCn",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tun",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dik",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"d\u0131k",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"d\xFCk",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"duk",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tik",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"t\u0131k",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"t\xFCk",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tuk",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dim",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"d\u0131m",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"d\xFCm",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"dum",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"tim",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"t\u0131m",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"t\xFCm",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"tum",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"iyor",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"\u0131yor",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"\xFCyor",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\u015F",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"m\u0131\u015F",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"m\xFC\u015F",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"mu\u015F",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"di",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"d\u0131",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"d\xFC",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"du",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"ti",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"t\u0131",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"t\xFC",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\u0131m",confidence:.82,conjugationType:"optative",minStemLength:2},{pattern:"eyim",confidence:.82,conjugationType:"optative",minStemLength:2},{pattern:"ay\u0131m",confidence:.82,conjugationType:"optative",minStemLength:2},{pattern:"elim",confidence:.82,conjugationType:"optative",minStemLength:2},{pattern:"al\u0131m",confidence:.82,conjugationType:"optative",minStemLength:2},{pattern:"melisiniz",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"mal\u0131s\u0131n\u0131z",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"melisin",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"mal\u0131s\u0131n",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"meliyiz",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"mal\u0131y\u0131z",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"meliyim",confidence:.85,conjugationType:"necessitative",minStemLength:2},{pattern:"mal\u0131y\u0131m",confidence:.85,conjugationType:"necessitative",minStemLength:2},{pattern:"meliler",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"mal\u0131lar",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"meli",confidence:.85,conjugationType:"necessitative",minStemLength:2},{pattern:"mal\u0131",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:"\u0131n\u0131z",confidence:.82,conjugationType:"imperative",minStemLength:2},{pattern:"\xFCn\xFCz",confidence:.82,conjugationType:"imperative",minStemLength:2},{pattern:"unuz",confidence:.82,conjugationType:"imperative",minStemLength:2},{pattern:"in",confidence:.8,conjugationType:"imperative",minStemLength:2},{pattern:"\u0131n",confidence:.8,conjugationType:"imperative",minStemLength:2},{pattern:"\xFCn",confidence:.8,conjugationType:"imperative",minStemLength:2},{pattern:"un",confidence:.8,conjugationType:"imperative",minStemLength:2},{pattern:"ildi",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"\u0131ld\u0131",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"\xFCld\xFC",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"uldu",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"ilir",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"\u0131l\u0131r",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"\xFCl\xFCr",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"ulur",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"tirmek",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"t\u0131rmak",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"t\xFCrmek",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"turmak",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"dirmek",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"d\u0131rmak",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"d\xFCrmek",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"durmak",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"miyorsunuz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"m\u0131yorsunuz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"m\xFCyorsunuz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"muyorsunuz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"miyorsun",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"m\u0131yorsun",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"m\xFCyorsun",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"muyorsun",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"miyoruz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"m\u0131yoruz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"m\xFCyoruz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"muyoruz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"miyorum",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"m\u0131yorum",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"m\xFCyorum",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"muyorum",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"miyor",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"m\u0131yor",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"m\xFCyor",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"muyor",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"medi",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"mad\u0131",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"me",confidence:.75,conjugationType:"negative",minStemLength:3},{pattern:"ma",confidence:.75,conjugationType:"negative",minStemLength:3}],X=class{constructor(){this.language="tr"}isNormalizable(e){return!(!Kn(e)||e.length<3)}normalize(e){let t=e.toLowerCase();for(let n of Dn)if(t.endsWith(n.pattern)){let o=t.slice(0,-n.pattern.length),i=n.minStemLength??2;if(o.length<i)continue;if(!$n(o,n.pattern)){let s=n.confidence*.9,c={removedSuffixes:[n.pattern]};return n.conjugationType&&(c.conjugationType=n.conjugationType),be(o,s,c)}let a={removedSuffixes:[n.pattern]};return n.conjugationType&&(a.conjugationType=n.conjugationType),be(o,n.confidence,a)}return ot(e)}},Io=new X;var I={code:"tr",name:"Turkish",nativeName:"T\xFCrk\xE7e",direction:"ltr",wordOrder:"SOV",markingStrategy:"case-suffix",usesSpaces:!0,verb:{position:"end",suffixes:["mek","mak","yor","di","mi\u015F"],subjectDrop:!0},references:{me:"ben",it:"o",you:"sen",result:"sonu\xE7",event:"olay",target:"hedef",body:"g\xF6vde"},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:["\u0131","u","\xFC"],position:"after"},destination:{primary:"e",alternatives:["a","de","da","te","ta"],position:"after"},source:{primary:"den",alternatives:["dan","ten","tan"],position:"after"},style:{primary:"le",alternatives:["la","yle","yla"],position:"after"},event:{primary:"i",alternatives:["\u0131","u","\xFC"],position:"after"}},keywords:{toggle:{primary:"de\u011Fi\u015Ftir",alternatives:["a\xE7/kapat"],normalized:"toggle"},add:{primary:"ekle",normalized:"add"},remove:{primary:"kald\u0131r",alternatives:["sil"],normalized:"remove"},put:{primary:"koy",normalized:"put"},append:{primary:"ekle",normalized:"append"},take:{primary:"al",normalized:"take"},make:{primary:"yap",normalized:"make"},clone:{primary:"kopyala",normalized:"clone"},swap:{primary:"de\u011Fi\u015Ftir",alternatives:["takas"],normalized:"swap"},morph:{primary:"d\xF6n\xFC\u015Ft\xFCr",alternatives:["\u015Fekil de\u011Fi\u015Ftir"],normalized:"morph"},set:{primary:"ayarla",alternatives:["yap","belirle"],normalized:"set"},get:{primary:"al",normalized:"get"},increment:{primary:"art\u0131r",normalized:"increment"},decrement:{primary:"azalt",normalized:"decrement"},log:{primary:"kaydet",normalized:"log"},show:{primary:"g\xF6ster",normalized:"show"},hide:{primary:"gizle",normalized:"hide"},transition:{primary:"ge\xE7i\u015F",normalized:"transition"},on:{primary:"\xFCzerinde",alternatives:["oldu\u011Funda","zaman"],normalized:"on"},trigger:{primary:"tetikle",normalized:"trigger"},send:{primary:"g\xF6nder",normalized:"send"},focus:{primary:"odak",normalized:"focus"},blur:{primary:"bulan\u0131k",normalized:"blur"},go:{primary:"git",normalized:"go"},wait:{primary:"bekle",normalized:"wait"},fetch:{primary:"getir",normalized:"fetch"},settle:{primary:"sabitlen",normalized:"settle"},if:{primary:"e\u011Fer",normalized:"if"},when:{primary:"iken",alternatives:["durumunda","oldu\u011Funda"],normalized:"when"},where:{primary:"nerede",normalized:"where"},else:{primary:"yoksa",normalized:"else"},repeat:{primary:"tekrarla",normalized:"repeat"},for:{primary:"i\xE7in",normalized:"for"},while:{primary:"iken",normalized:"while"},continue:{primary:"devam",normalized:"continue"},halt:{primary:"durdur",normalized:"halt"},throw:{primary:"f\u0131rlat",normalized:"throw"},call:{primary:"\xE7a\u011F\u0131r",normalized:"call"},return:{primary:"d\xF6n",normalized:"return"},then:{primary:"sonra",alternatives:["ard\u0131ndan","daha sonra"],normalized:"then"},and:{primary:"ve",alternatives:["ayr\u0131ca","hem de"],normalized:"and"},end:{primary:"son",alternatives:["biti\u015F","bitti"],normalized:"end"},js:{primary:"js",normalized:"js"},async:{primary:"asenkron",normalized:"async"},tell:{primary:"s\xF6yle",normalized:"tell"},default:{primary:"varsay\u0131lan",normalized:"default"},init:{primary:"ba\u015Flat",normalized:"init"},behavior:{primary:"davran\u0131\u015F",normalized:"behavior"},install:{primary:"y\xFCkle",normalized:"install"},measure:{primary:"\xF6l\xE7",normalized:"measure"},into:{primary:"i\xE7ine",normalized:"into"},before:{primary:"\xF6nce",normalized:"before"},after:{primary:"sonra",normalized:"after"},until:{primary:"kadar",normalized:"until"},event:{primary:"olay",normalized:"event"},from:{primary:"-den",alternatives:["-dan"],normalized:"from"}}};var{isLetter:st}=Se(/[a-zA-ZçÇğĞıİöÖşŞüÜ]/),ct=new Set(["ile","i\xE7in","kadar","gibi","sonra","\xF6nce","\xFCzerinde","alt\u0131nda","i\xE7inde","d\u0131\u015F\u0131nda","aras\u0131nda","kar\u015F\u0131","g\xF6re","ra\u011Fmen","do\u011Fru","boyunca"]),Fn=new Set(["de","da","te","ta","den","dan","ten","tan","e","a","ye","ya","i","\u0131","u","\xFC","in","\u0131n","un","\xFCn","le","la","yle","yla"]),Hn=[{native:"do\u011Fru",normalized:"true"},{native:"dogru",normalized:"true"},{native:"yanl\u0131\u015F",normalized:"false"},{native:"yanlis",normalized:"false"},{native:"null",normalized:"null"},{native:"bo\u015F",normalized:"null"},{native:"bos",normalized:"null"},{native:"tan\u0131ms\u0131z",normalized:"undefined"},{native:"tanimsiz",normalized:"undefined"},{native:"ilk",normalized:"first"},{native:"son",normalized:"last"},{native:"sonraki",normalized:"next"},{native:"\xF6nceki",normalized:"previous"},{native:"onceki",normalized:"previous"},{native:"en_yak\u0131n",normalized:"closest"},{native:"en_yakin",normalized:"closest"},{native:"ebeveyn",normalized:"parent"},{native:"t\u0131klama",normalized:"click"},{native:"tiklama",normalized:"click"},{native:"t\u0131k",normalized:"click"},{native:"tik",normalized:"click"},{native:"giri\u015F",normalized:"input"},{native:"giris",normalized:"input"},{native:"de\u011Fi\u015Fim",normalized:"change"},{native:"degisim",normalized:"change"},{native:"odak",normalized:"focus"},{native:"bulan\u0131k",normalized:"blur"},{native:"bulanik",normalized:"blur"},{native:"fare \xFCzerinde",normalized:"mouseover"},{native:"fare uzerinde",normalized:"mouseover"},{native:"fare d\u0131\u015F\u0131nda",normalized:"mouseout"},{native:"fare disinda",normalized:"mouseout"},{native:"kayd\u0131r",normalized:"scroll"},{native:"kaydir",normalized:"scroll"},{native:"tu\u015F_bas",normalized:"keydown"},{native:"tus_bas",normalized:"keydown"},{native:"tu\u015F_b\u0131rak",normalized:"keyup"},{native:"tus_birak",normalized:"keyup"},{native:"ben",normalized:"me"},{native:"benim",normalized:"my"},{native:"o",normalized:"it"},{native:"onun",normalized:"its"},{native:"sonu\xE7",normalized:"result"},{native:"sonuc",normalized:"result"},{native:"olay",normalized:"event"},{native:"hedef",normalized:"target"},{native:"saniye",normalized:"s"},{native:"milisaniye",normalized:"ms"},{native:"dakika",normalized:"m"},{native:"saat",normalized:"h"},{native:"ve",normalized:"and"},{native:"veya",normalized:"or"},{native:"de\u011Fil",normalized:"not"},{native:"degil",normalized:"not"},{native:"\xFCzerinde",normalized:"on"},{native:"uzerinde",normalized:"on"},{native:"oldu\u011Funda",normalized:"on"},{native:"oldugunda",normalized:"on"},{native:"ekle",normalized:"add"},{native:"de\u011Fi\u015Ftir",normalized:"toggle"},{native:"de\u011Fistir",normalized:"toggle"},{native:"kaldir",normalized:"remove"},{native:"yerlestir",normalized:"put"},{native:"olustur",normalized:"make"},{native:"artir",normalized:"increment"},{native:"yazdir",normalized:"log"},{native:"goster",normalized:"show"},{native:"gecis",normalized:"transition"},{native:"atesle",normalized:"trigger"},{native:"gonder",normalized:"send"},{native:"bulaniklastir",normalized:"blur"},{native:"odak_kaldir",normalized:"blur"},{native:"yonlendir",normalized:"go"},{native:"cek",normalized:"fetch"},{native:"yerles",normalized:"settle"},{native:"eger",normalized:"if"},{native:"degilse",normalized:"else"},{native:"firlat",normalized:"throw"},{native:"cagir",normalized:"call"},{native:"don",normalized:"return"},{native:"dondur",normalized:"return"},{native:"eszamansiz",normalized:"async"},{native:"soyle",normalized:"tell"},{native:"varsayilan",normalized:"default"},{native:"baslat",normalized:"init"},{native:"basla",normalized:"init"},{native:"davranis",normalized:"behavior"},{native:"yukle",normalized:"install"},{native:"olc",normalized:"measure"},{native:"icine",normalized:"into"},{native:"once",normalized:"before"},{native:"icin",normalized:"for"},{native:"al",normalized:"get"},{native:"yap",normalized:"set"},{native:"o_zaman",normalized:"then"},{native:"bitir",normalized:"end"},{native:"-den",normalized:"from"},{native:"-dan",normalized:"from"}],Xn=[{pattern:"milisaniye",suffix:"ms",length:10,caseInsensitive:!0},{pattern:"dakika",suffix:"m",length:6,caseInsensitive:!0},{pattern:"saniye",suffix:"s",length:6,caseInsensitive:!0},{pattern:"saat",suffix:"h",length:4,caseInsensitive:!0},{pattern:"dk",suffix:"m",length:2,checkBoundary:!0},{pattern:"sa",suffix:"h",length:2,checkBoundary:!0}],Ee=class extends V{constructor(){super();this.language="tr";this.direction="ltr";this.initializeKeywordsFromProfile(I,Hn),this.normalizer=new X}tokenize(t){let n=[],o=0;for(;o<t.length;){if(C(t[o])){o++;continue}if(W(t[o])){let a=this.tryEventModifier(t,o);if(a){n.push(a),o=a.position.end;continue}let s=this.trySelector(t,o);if(s){n.push(s),o=s.position.end;continue}}if(U(t[o])){let a=this.tryString(t,o);if(a){n.push(a),o=a.position.end;continue}}if(K(t,o)){let a=this.tryUrl(t,o);if(a){n.push(a),o=a.position.end;continue}}if(P(t[o])){let a=this.extractTurkishNumber(t,o);if(a){n.push(a),o=a.position.end;continue}}let i=this.tryVariableRef(t,o);if(i){n.push(i),o=i.position.end;continue}if(st(t[o])){let a=this.extractTurkishWord(t,o);if(a){n.push(a),o=a.position.end;continue}}o++}return new w(n,"tr")}classifyToken(t){let n=t.toLowerCase();return ct.has(n)||Fn.has(n)?"particle":this.isKeyword(n)?"keyword":t.startsWith("#")||t.startsWith(".")||t.startsWith("[")?"selector":t.startsWith('"')||t.startsWith("'")||/^\d/.test(t)?"literal":"identifier"}extractTurkishWord(t,n){let o=n,i="";for(;o<t.length&&(st(t[o])||t[o]==="_");)i+=t[o++];if(!i)return null;let a=i.toLowerCase(),s=this.lookupKeyword(a);if(s)return S(i,"keyword",v(n,o),s.normalized);if(ct.has(a))return S(i,"particle",v(n,o));let c=this.tryMorphKeywordMatch(a,n,o);return c||S(i,"identifier",v(n,o))}extractTurkishNumber(t,n){return this.tryNumberWithTimeUnits(t,n,Xn,{allowSign:!1,skipWhitespace:!0})}},le=new Ee;oe("tr",le,I);function lt(r){return Be(r)}function pe(r,e){return Ue(r,e)}function de(){return ie()}function A(r){let e="complex";return r.startsWith("#")&&!r.includes(" ")?e="id":r.startsWith(".")&&!r.includes(" ")?e="class":r.startsWith("[")&&r.endsWith("]")?e="attribute":/^[a-z][a-z0-9]*$/i.test(r)&&(e="element"),{type:"selector",value:r,selectorKind:e}}function k(r,e){let t={type:"literal",value:r};return e!==void 0?{type:"literal",value:r,dataType:e}:t}function N(r){return{type:"reference",value:r}}function G(r,e){return{type:"property-path",object:r,property:e}}function j(r,e,t){let n={kind:"command",action:r,roles:new Map(Object.entries(e))};return t!==void 0?{...n,metadata:t}:n}function $(r,e,t,n,o){let i=new Map;i.set("event",r);let a={kind:"event-handler",action:"on",roles:i,body:e};return t!==void 0&&(a.eventModifiers=t),n!==void 0&&(a.metadata=n),o!==void 0&&o.length>0&&(a.parameterNames=o),a}function pt(r,e="then",t){let n={kind:"compound",action:"compound",roles:new Map,statements:r,chainType:e};return t!==void 0&&(n.metadata=t),n}function Le(r,e){return!e||e.length===0||e.includes(r)||e.includes("expression")?!0:r==="property-path"?e.some(t=>["selector","reference","expression"].includes(t)):!1}function dt(r,e){return r.possessive?.keywords?.[e]}var z=class z{constructor(){this.stemMatchCount=0;this.totalKeywordMatches=0}matchPattern(e,t){let n=e.mark(),o=new Map;if(this.currentProfile=M(t.language),this.stemMatchCount=0,this.totalKeywordMatches=0,!this.matchTokenSequence(e,t.template.tokens,o))return e.reset(n),null;let a=this.calculateConfidence(t,o);return this.applyExtractionRules(t,o),{pattern:t,captured:o,consumedTokens:e.position()-n.position,confidence:a}}matchBest(e,t){let n=[];for(let i of t){let a=e.mark(),s=this.matchPattern(e,i);s&&n.push(s),e.reset(a)}if(n.length===0)return null;n.sort((i,a)=>{let s=a.pattern.priority-i.pattern.priority;return s!==0?s:a.confidence-i.confidence});let o=n[0];return this.matchPattern(e,o.pattern),o}matchTokenSequence(e,t,n){if(this.currentProfile?.code==="ar")for(;e.peek()?.kind==="conjunction";)e.advance();for(let o of t)if(!this.matchPatternToken(e,o,n)){if(this.isOptional(o))continue;return!1}return!0}matchPatternToken(e,t,n){switch(t.type){case"literal":return this.matchLiteralToken(e,t);case"role":return this.matchRoleToken(e,t,n);case"group":return this.matchGroupToken(e,t,n);default:return!1}}matchLiteralToken(e,t){let n=e.peek();if(!n)return!1;let o=this.getMatchType(n,t.value);if(o!=="none")return this.totalKeywordMatches++,o==="stem"&&this.stemMatchCount++,e.advance(),!0;if(t.alternatives)for(let i of t.alternatives){let a=this.getMatchType(n,i);if(a!=="none")return this.totalKeywordMatches++,a==="stem"&&this.stemMatchCount++,e.advance(),!0}return!1}matchRoleToken(e,t,n){this.skipNoiseWords(e);let o=e.peek();if(!o)return t.optional||!1;let 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:(n.set(t.role,i),!0);let 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:(n.set(t.role,a),!0);let s=this.tryMatchPossessiveSelectorExpression(e);if(s)return t.expectedTypes&&t.expectedTypes.length>0&&!Le(s.type,t.expectedTypes)?t.optional||!1:(n.set(t.role,s),!0);let c=this.tryMatchPropertyAccessExpression(e);if(c)return t.expectedTypes&&t.expectedTypes.length>0&&!t.expectedTypes.includes(c.type)&&!t.expectedTypes.includes("expression")?t.optional||!1:(n.set(t.role,c),!0);let l=this.tryMatchSelectorPropertyExpression(e);if(l)return t.expectedTypes&&t.expectedTypes.length>0&&!Le(l.type,t.expectedTypes)?t.optional||!1:(n.set(t.role,l),!0);let d=this.tokenToSemanticValue(o);return!d||t.expectedTypes&&t.expectedTypes.length>0&&!t.expectedTypes.includes(d.type)?t.optional||!1:(n.set(t.role,d),e.advance(),!0)}tryMatchPossessiveExpression(e){let t=e.peek();if(!t||!this.currentProfile)return null;let n=(t.normalized||t.value).toLowerCase(),o=dt(this.currentProfile,n);if(!o)return null;let i=e.mark();e.advance();let a=e.peek();return a&&(a.kind==="identifier"||a.kind==="keyword"&&!this.isStructuralKeyword(a.value)||a.kind==="selector"&&a.value.startsWith("*"))?(e.advance(),G(N(o),a.value)):(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(e){let t=e.peek();if(!t||t.kind!=="selector")return null;let n=e.mark();e.advance();let o=e.peek();if(!o||o.kind!=="operator"||o.value!==".")return e.reset(n),null;e.advance();let i=e.peek();if(!i||i.kind!=="identifier")return e.reset(n),null;e.advance();let a=e.peek();if(!a||a.kind!=="punctuation"||a.value!=="(")return e.reset(n),null;e.advance();let s=[];for(;!e.isAtEnd()&&s.length<z.MAX_METHOD_ARGS;){let l=e.peek();if(!l)break;if(l.kind==="punctuation"&&l.value===")"){e.advance();break}if(l.kind==="punctuation"&&l.value===","){e.advance();continue}s.push(l.value),e.advance()}return{type:"expression",raw:`${t.value}.${i.value}(${s.join(", ")})`}}tryMatchPropertyAccessExpression(e){let t=e.peek();if(!t||t.kind!=="identifier"&&t.kind!=="keyword")return null;let n=e.mark();e.advance();let o=e.peek();if(!o||o.kind!=="operator"||o.value!==".")return e.reset(n),null;e.advance();let i=e.peek();if(!i||i.kind!=="identifier")return e.reset(n),null;e.advance();let a=`${t.value}.${i.value}`,s=1;for(;!e.isAtEnd()&&s<z.MAX_PROPERTY_DEPTH;){let l=e.peek();if(!l||l.kind!=="operator"||l.value!==".")break;e.advance();let d=e.peek();if(!d||d.kind!=="identifier")break;e.advance(),a+=`.${d.value}`,s++}let c=e.peek();if(c&&c.kind==="punctuation"&&c.value==="("){e.advance();let l=[],d=0;for(;!e.isAtEnd()&&l.length<z.MAX_METHOD_ARGS;){let h=e.peek();if(!h)break;if(h.kind==="punctuation"&&h.value===")"){if(d===0){e.advance();break}d--}if(h.kind==="punctuation"&&h.value==="("&&d++,h.kind==="punctuation"&&h.value===","){e.advance();continue}l.push(h.value),e.advance()}return{type:"expression",raw:`${a}(${l.join(", ")})`}}return{type:"expression",raw:a}}tryMatchPossessiveSelectorExpression(e){let t=e.peek();if(!t||t.kind!=="selector")return null;let n=e.mark();e.advance();let o=e.peek();if(!o||o.kind!=="punctuation"||o.value!=="'s")return e.reset(n),null;e.advance();let i=e.peek();return!i||i.kind!=="selector"&&i.kind!=="identifier"?(e.reset(n),null):(e.advance(),G(A(t.value),i.value))}tryMatchSelectorPropertyExpression(e){let t=e.peek();if(!t||t.kind!=="selector"||!t.value.startsWith("#"))return null;let n=e.mark();e.advance();let o=e.peek();if(!o||o.kind!=="selector"||!o.value.startsWith("."))return e.reset(n),null;let i=e.peek(1);i&&i.kind,e.advance();let a=o.value.slice(1);return G(A(t.value),a)}matchGroupToken(e,t,n){let o=e.mark(),i=new Set(n.keys());if(!this.matchTokenSequence(e,t.tokens,n)){e.reset(o);for(let s of n.keys())i.has(s)||n.delete(s);return t.optional||!1}return!0}getMatchType(e,t){return e.value===t?"exact":e.normalized===t?"normalized":e.stem===t&&e.stemConfidence!==void 0&&e.stemConfidence>=.7?"stem":e.kind==="keyword"&&e.value.toLowerCase()===t.toLowerCase()?"case-insensitive":"none"}tokenToSemanticValue(e){switch(e.kind){case"selector":return A(e.value);case"literal":return this.parseLiteralValue(e.value);case"keyword":let t=(e.normalized||e.value).toLowerCase();return["me","you","it","result","event","target","body"].includes(t)?N(t):k(e.normalized||e.value);case"identifier":if(e.value.startsWith(":"))return N(e.value);let n=e.value.toLowerCase();return["me","you","it","result","event","target","body"].includes(n)?N(n):{type:"expression",raw:e.value};case"url":return k(e.value,"string");default:return null}}parseLiteralValue(e){if(e.startsWith('"')||e.startsWith("'")||e.startsWith("`")||e.startsWith("\u300C")){let o=e.slice(1,-1);return k(o,"string")}if(e==="true")return k(!0,"boolean");if(e==="false")return k(!1,"boolean");let t=e.match(/^(\d+(?:\.\d+)?)(ms|s|m|h)?$/);if(t){let o=parseFloat(t[1]);return t[2]?k(e,"duration"):k(o,"number")}let n=parseFloat(e);return isNaN(n)?k(e,"string"):k(n,"number")}applyExtractionRules(e,t){for(let[n,o]of Object.entries(e.extraction))!t.has(n)&&o.default&&t.set(n,o.default)}isOptional(e){return e.optional===!0}calculateConfidence(e,t){let n=0,o=0,i=l=>e.extraction?.[l]?.default!==void 0;for(let l of e.template.tokens)if(l.type==="role")o+=1,t.has(l.role)&&(n+=1);else if(l.type==="group"){for(let d of l.tokens)if(d.type==="role"){let T=i(d.role),h=.8;o+=h,t.has(d.role)?n+=h:T&&(n+=h*.6)}}let a=o>0?n/o:1;if(this.stemMatchCount>0&&this.totalKeywordMatches>0){let l=this.stemMatchCount/this.totalKeywordMatches*.15;a=Math.max(.5,a-l)}let s=this.calculateVSOConfidenceBoost(e);a=Math.min(1,a+s);let c=this.arabicPrepositionDisambiguation(e,t);return a=Math.max(0,Math.min(1,a+c)),a}calculateVSOConfidenceBoost(e){if(e.language!=="ar")return 0;let t=e.template.tokens[0];if(!t||t.type!=="literal")return 0;let n=new Set(["\u0628\u062F\u0644","\u063A\u064A\u0631","\u0623\u0636\u0641","\u0623\u0632\u0644","\u0636\u0639","\u0627\u062C\u0639\u0644","\u0639\u064A\u0646","\u0632\u062F","\u0627\u0646\u0642\u0635","\u0633\u062C\u0644","\u0623\u0638\u0647\u0631","\u0623\u062E\u0641","\u0634\u063A\u0644","\u0623\u0631\u0633\u0644","\u0631\u0643\u0632","\u0634\u0648\u0634","\u062A\u0648\u0642\u0641","\u0627\u0646\u0633\u062E","\u0627\u062D\u0630\u0641","\u0627\u0635\u0646\u0639","\u0627\u0646\u062A\u0638\u0631","\u0627\u0646\u062A\u0642\u0627\u0644","\u0623\u0648"]);if(n.has(t.value))return .15;if(t.alternatives){for(let o of t.alternatives)if(n.has(o))return .15}return 0}arabicPrepositionDisambiguation(e,t){if(e.language!=="ar")return 0;let n=0,o={patient:["\u0639\u0644\u0649"],destination:["\u0625\u0644\u0649","\u0627\u0644\u0649"],source:["\u0645\u0646"],agent:["\u0645\u0646"],manner:["\u0628"],style:["\u0628"],goal:["\u0625\u0644\u0649","\u0627\u0644\u0649"],method:["\u0628"]};for(let[i,a]of t.entries()){let s=o[i];if(!s||s.length===0)continue;let c=a.metadata;if(c&&typeof c.prepositionValue=="string"){let l=c.prepositionValue;s.includes(l)?n+=.1:n-=.1}}return Math.max(-.1,Math.min(.1,n))}skipNoiseWords(e){let t=e.peek();if(!t)return;let n=t.value.toLowerCase();if(z.ENGLISH_NOISE_WORDS.has(n)){let o=e.mark();e.advance();let i=e.peek();if(i&&i.kind==="selector")return;e.reset(o)}n==="class"&&e.advance()}extractEventModifiers(e){let t={},n=!1;for(;!e.isAtEnd();){let o=e.peek();if(!o||o.kind!=="event-modifier")break;let i=o.metadata;if(!i)break;switch(n=!0,i.modifierName){case"once":t.once=!0;break;case"debounce":typeof i.value=="number"&&(t.debounce=i.value);break;case"throttle":typeof i.value=="number"&&(t.throttle=i.value);break;case"queue":(i.value==="first"||i.value==="last"||i.value==="all"||i.value==="none")&&(t.queue=i.value);break}e.advance()}return n?t:void 0}};z.MAX_PROPERTY_DEPTH=10,z.MAX_METHOD_ARGS=20,z.ENGLISH_NOISE_WORDS=new Set(["the","a","an"]);var Q=z,O=new Q;var ue=class{render(e,t){if(e.kind==="compound")return this.renderCompound(e,t);let n=Ke(t,e.action);if(n.length===0)return this.renderExplicit(e);let o=this.findBestPattern(e,n);return o?this.renderWithPattern(e,o):this.renderExplicit(e)}renderCompound(e,t){let n=e.statements.map(i=>this.render(i,t)),o=this.getChainWord(e.chainType,t);return n.join(` ${o} `)}getChainWord(e,t){let n=M(t);return n?.keywords?n.keywords[e]?.primary??e:e}renderExplicit(e){if(e.kind==="compound"){let n=e;return n.statements.map(i=>this.renderExplicit(i)).join(` ${n.chainType} `)}let t=[e.action];for(let[n,o]of e.roles)t.push(`${n}:${this.valueToString(o)}`);if(e.kind==="event-handler"){let n=e;if(n.body&&n.body.length>0){let o=n.body.map(i=>this.renderExplicit(i));t.push(`body:${o.join(" ")}`)}}return`[${t.join(" ")}]`}supportedLanguages(){return de()}findBestPattern(e,t){let n=t.map(o=>{let i=o.priority;for(let a of o.template.tokens)a.type==="role"&&(e.roles.has(a.role)?i+=10:a.optional||(i-=50));return o.language==="en"&&((o.id.includes("standard")||o.id.includes("en-source"))&&(i+=20),(o.id.includes("-when")||o.id.includes("-if")||o.id.includes("-upon"))&&(i-=15)),{pattern:o,score:i}});return n.sort((o,i)=>i.score-o.score),n.length>0?n[0].pattern:null}renderWithPattern(e,t){let n=[],o=t.language;for(let i of t.template.tokens){let a=this.renderPatternToken(i,e,o);a!==null&&n.push(a)}if(e.kind==="event-handler"){let i=e;if(i.body&&i.body.length>0){let a=i.body.map(s=>this.render(s,o));n.push(a.join(" "))}}return n.join(" ")}renderPatternToken(e,t,n){switch(e.type){case"literal":return e.value;case"role":{let o=t.roles.get(e.role);return o?this.valueToNaturalString(o,n):(e.optional,null)}case"group":{if(!e.tokens.filter(a=>a.type==="role"&&!a.optional).every(a=>t.roles.has(a.role))&&e.optional)return null;if(e.optional&&e.tokens.find(s=>s.type==="role"&&s.role==="destination")){let s=t.roles.get("destination");if(s?.type==="reference"&&s.value==="me")return null}let i=[];for(let a of e.tokens){let s=this.renderPatternToken(a,t,n);s!==null&&i.push(s)}return i.length>0?i.join(" "):null}default:return null}}valueToString(e){switch(e.type){case"literal":return typeof e.value=="string"?e.dataType==="string"||/\s/.test(e.value)?`"${e.value}"`:e.value:String(e.value);case"selector":return e.value;case"reference":return e.value;case"property-path":return`${this.valueToString(e.object)}'s ${e.property}`;case"expression":return e.raw}}valueToNaturalString(e,t="en"){switch(e.type){case"literal":return typeof e.value=="string"&&e.dataType==="string"?`"${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}}renderReference(e,t){let n=M(t);return n?.references?n.references[e.value]??e.value:e.value}renderPropertyPath(e,t){let n=M(t),o=e.property,i=e.object.type==="reference"?e.object.value:null;if(n?.possessive?.specialForms&&i){let s=n.possessive.specialForms[i];if(s){let{markerPosition:c,usePossessiveAdjectives:l}=n.possessive;return l&&c==="after-object"?`${o} ${s}`:`${s} ${o}`}}let a=this.valueToNaturalString(e.object,t);if(n?.possessive){let{marker:s,markerPosition:c,usePossessiveAdjectives:l}=n.possessive;if(l&&i&&c==="after-object")return`${o} ${a}`;if(s)switch(c){case"between":return n.usesSpaces?`${a}${s} ${o}`:`${a}${s}${o}`;case"after-object":return`${a}${s} ${o}`;case"before-property":return`${a} ${s} ${o}`}}return t==="en"||!n?.possessive?a==="me"?`my ${o}`:a==="it"?`its ${o}`:`${a}'s ${o}`:`${a} ${o}`}},we=new ue;function Z(r,e){return we.render(r,e)}function Y(r){return we.renderExplicit(r)}function _(r){let e=r.trim();if(!e.startsWith("[")||!e.endsWith("]"))throw new Error("Explicit syntax must be wrapped in brackets: [command role:value ...]");let t=e.slice(1,-1).trim();if(!t)throw new Error("Empty explicit statement");let n=Qn(t);if(n.length===0)throw new Error("No command specified in explicit statement");let o=n[0].toLowerCase(),i=new Map;for(let s=1;s<n.length;s++){let c=n[s],l=c.indexOf(":");if(l===-1)throw new Error(`Invalid role format: "${c}". Expected role:value`);let d=c.slice(0,l),T=c.slice(l+1);if(d==="body"&&T.startsWith("[")){let g=Yn(c,l+1),u=c.slice(l+1,g+1);i.set(d,{type:"expression",raw:u});continue}let h=Zn(T);i.set(d,h)}if(o==="on"){let s=i.get("event");if(!s)throw new Error("Event handler requires event role: [on event:click ...]");let c=i.get("body"),l=[];return c&&c.type==="expression"&&l.push(_(c.raw)),i.delete("body"),$(s,l,void 0,{sourceLanguage:"explicit"})}let a={};for(let[s,c]of i)a[s]=c;return j(o,a,{sourceLanguage:"explicit"})}function Qn(r){let e=[],t="",n=!1,o="",i=0;for(let a=0;a<r.length;a++){let s=r[a];if(n){t+=s,s===o&&r[a-1]!=="\\"&&(n=!1);continue}if(s==='"'||s==="'"){n=!0,o=s,t+=s;continue}if(s==="["){i++,t+=s;continue}if(s==="]"){i--,t+=s;continue}if(s===" "&&i===0){t&&(e.push(t),t="");continue}t+=s}return t&&e.push(t),e}function Zn(r){if(r.startsWith("#")||r.startsWith(".")||r.startsWith("[")||r.startsWith("@")||r.startsWith("*"))return A(r);if(r.startsWith('"')||r.startsWith("'")){let t=r.slice(1,-1);return k(t,"string")}if(r==="true")return k(!0,"boolean");if(r==="false")return k(!1,"boolean");if(["me","you","it","result","event","target","body"].includes(r.toLowerCase()))return N(r.toLowerCase());let e=r.match(/^(-?\d+(?:\.\d+)?)(ms|s|m|h)?$/);if(e){let t=parseFloat(e[1]);return e[2]?k(r,"duration"):k(t,"number")}return k(r,"string")}function Yn(r,e){let t=0;for(let n=e;n<r.length;n++)if(r[n]==="[")t++;else if(r[n]==="]"&&(t--,t===0))return n;return r.length-1}function D(r){let e=r.trim();return e.startsWith("[")&&e.endsWith("]")}var me=class{parse(e,t){let n=pe(e,t),o=L(t);if(o.length===0)throw new Error(`No patterns available for language: ${t}`);let i=[...o].sort((d,T)=>T.priority-d.priority),a=i.filter(d=>d.command==="on"),s=O.matchBest(n,a);if(s)return this.buildEventHandler(s,n,t);let c=i.filter(d=>d.command!=="on"),l=O.matchBest(n,c);if(l)return this.buildCommand(l,t);throw new Error(`Could not parse input in ${t}: ${e}`)}canParse(e,t){try{return this.parse(e,t),!0}catch{return!1}}supportedLanguages(){return de()}buildCommand(e,t){if(!e)throw new Error("No match to build command from");let n={};for(let[o,i]of e.captured)n[o]=i;return j(e.pattern.command,n,{sourceLanguage:t,patternId:e.pattern.id})}buildEventHandler(e,t,n){if(!e)throw new Error("No match to build event handler from");let o=e.captured.get("event");if(!o)throw new Error("Event handler pattern matched but no event captured");let i=O.extractEventModifiers(t),a,s=e.captured.get("action");if(s&&s.type==="literal"){let c=s.value,l={};for(let[h,g]of e.captured)h!=="event"&&h!=="action"&&h!=="continues"&&(l[h]=g);let d=j(c,l,{sourceLanguage:n,patternId:e.pattern.id}),T=e.captured.get("continues");if(T&&T.type==="literal"&&T.value==="then"){let h=L(n).filter(m=>m.command!=="on").sort((m,y)=>y.priority-m.priority),g=L(n).filter(m=>m.id.startsWith("grammar-")&&m.id.includes("-continuation")).sort((m,y)=>y.priority-m.priority),u=this.parseBodyWithGrammarPatterns(t,h,g,n);u.length>0?a=[d,...u]:a=[d]}else a=[d]}else{let c=L(n).filter(l=>l.command!=="on").sort((l,d)=>d.priority-l.priority);a=this.parseBodyWithClauses(t,c,n)}return $(o,a,i,{sourceLanguage:n,patternId:e.pattern.id})}parseBodyWithClauses(e,t,n){let o=[],i=[];for(;!e.isAtEnd();){let a=e.peek();if(!a)break;let s=a.kind==="conjunction"||a.kind==="keyword"&&this.isThenKeyword(a.value,n),c=a.kind==="keyword"&&this.isEndKeyword(a.value,n);if(s){if(i.length>0){let l=this.parseClause(i,t,n);o.push(...l),i.length=0}e.advance();continue}if(c){if(i.length>0){let l=this.parseClause(i,t,n);o.push(...l)}e.advance();break}i.push(a),e.advance()}if(i.length>0){let a=this.parseClause(i,t,n);o.push(...a)}return o.length>1?[pt(o,"then",{sourceLanguage:n})]:o}parseClause(e,t,n){if(e.length===0)return[];let o=new w(e,n),i=[];for(;!o.isAtEnd();){let a=O.matchBest(o,t);a?i.push(this.buildCommand(a,n)):o.advance()}return i}parseBodyWithGrammarPatterns(e,t,n,o){let i=[];for(;!e.isAtEnd();){let a=e.peek();if(a&&this.isThenKeyword(a.value,o)){e.advance();continue}if(a&&this.isEndKeyword(a.value,o)){e.advance();break}let s=!1;if(n.length>0){let c=O.matchBest(e,n);if(c){let l=c.pattern.command,d={};for(let[g,u]of c.captured)g!=="event"&&g!=="action"&&g!=="continues"&&(d[g]=u);let T=j(l,d,{sourceLanguage:o,patternId:c.pattern.id});i.push(T),s=!0;let h=c.captured.get("continues");if(h&&h.type==="literal"&&h.value==="then")continue}}if(!s){let c=O.matchBest(e,t);c&&(i.push(this.buildCommand(c,o)),s=!0)}s||e.advance()}return i}isThenKeyword(e,t){let n={en:new Set(["then"]),ja:new Set(["\u305D\u308C\u304B\u3089","\u6B21\u306B","\u305D\u3057\u3066"]),ar:new Set(["\u062B\u0645","\u0628\u0639\u062F\u0647\u0627","\u062B\u0645\u0651"]),es:new Set(["entonces","luego","despu\xE9s"]),ko:new Set(["\uADF8\uB2E4\uC74C","\uADF8\uB9AC\uACE0","\uADF8\uB7F0\uD6C4"]),zh:new Set(["\u7136\u540E","\u63A5\u7740","\u4E4B\u540E"]),tr:new Set(["sonra","ard\u0131ndan","daha sonra"]),pt:new Set(["ent\xE3o","depois","logo"]),fr:new Set(["puis","ensuite","alors"]),de:new Set(["dann","danach","anschlie\xDFend"]),id:new Set(["lalu","kemudian","setelah itu"]),qu:new Set(["chaymantataq","hinaspa","chaymanta"]),sw:new Set(["kisha","halafu","baadaye"])};return(n[t]||n.en).has(e.toLowerCase())}isEndKeyword(e,t){let n={en:new Set(["end"]),ja:new Set(["\u7D42\u308F\u308A","\u7D42\u4E86","\u304A\u308F\u308A"]),ar:new Set(["\u0646\u0647\u0627\u064A\u0629","\u0627\u0646\u062A\u0647\u0649","\u0622\u062E\u0631"]),es:new Set(["fin","final","terminar"]),ko:new Set(["\uB05D","\uC885\uB8CC","\uB9C8\uCE68"]),zh:new Set(["\u7ED3\u675F","\u7EC8\u6B62","\u5B8C"]),tr:new Set(["son","biti\u015F","bitti"]),pt:new Set(["fim","final","t\xE9rmino"]),fr:new Set(["fin","terminer","finir"]),de:new Set(["ende","beenden","fertig"]),id:new Set(["selesai","akhir","tamat"]),qu:new Set(["tukukuy","tukuy","puchukay"]),sw:new Set(["mwisho","maliza","tamati"])};return(n[t]||n.en).has(e.toLowerCase())}},Ce=new me;function F(r,e){return Ce.parse(r,e)}function Re(r,e){return Ce.canParse(r,e)}function Ne(r,e){if(D(r))return r;let t=F(r,e);return Y(t)}function ze(r,e){let t=_(r);return Z(t,e)}function Me(r,e){return D(r)?_(r):F(r,e)}var Jn=new Set(["me","my","myself","you","your","yourself","it","its","result","event","target","body","detail","window","document"]),er=new Set(["and","or","not","no"]),tr=new Set(["true","false","null","undefined"]),nr=new Set(["ms","s","seconds","second","milliseconds","millisecond","minutes","minute","hours","hour"]);function ut(r){let e=[],t=0,n=1,o=1;function i(){if(e.length===0)return!0;let u=e[e.length-1];return["OPERATOR","COMPARISON","LOGICAL","LPAREN","LBRACKET","LBRACE","COMMA","COLON"].includes(u.type)}function a(u=0){return r[t+u]??""}function s(){let u=r[t];return t++,u===`
|
|
2
|
+
`?(n++,o=1):o++,u}function c(){for(;t<r.length&&/\s/.test(r[t]);)s()}function l(u){let m="";for(;t<r.length&&u(r[t]);)m+=s();return m}function d(u){let m=u;for(s();t<r.length&&r[t]!==u;)r[t]==="\\"&&t+1<r.length&&(m+=s()),m+=s();return t<r.length&&(m+=s()),m}function T(){let u="`";for(s();t<r.length&&r[t]!=="`";)r[t]==="\\"&&t+1<r.length&&(u+=s()),u+=s();return t<r.length&&(u+=s()),u}function h(){let u="<";for(s();t<r.length&&(u+=s(),!u.endsWith("/>")););return u}function g(u,m,y){return{type:u,value:m,start:y,end:t,line:n,column:o-m.length}}for(;t<r.length&&(c(),!(t>=r.length));){let u=t,m=a();if(m==="'"&&a(1)==="s"&&!/\w/.test(a(2))){s(),s(),e.push(g("POSSESSIVE","'s",u));continue}if(m==='"'||m==="'"){let y=d(m);e.push(g("STRING",y,u));continue}if(m==="`"){let y=T();e.push(g("TEMPLATE_LITERAL",y,u));continue}if(m==="<"&&/[a-zA-Z.#\[]/.test(a(1))){let y=h();e.push(g("QUERY_SELECTOR",y,u));continue}if(m==="#"&&i()){s();let y=l(b=>/[\w-]/.test(b));e.push(g("ID_SELECTOR","#"+y,u));continue}if(m==="."&&/[a-zA-Z_-]/.test(a(1))&&i()){s();let y=l(b=>/[\w-]/.test(b));e.push(g("CLASS_SELECTOR","."+y,u));continue}if(m==="["&&i()){let y=a(1);if(y==="@"||/[a-zA-Z]/.test(y)){let b="";for(b+=s();t<r.length&&r[t]!=="]";)r[t]==='"'||r[t]==="'"?b+=d(r[t]):b+=s();t<r.length&&(b+=s()),e.push(g("ATTRIBUTE_SELECTOR",b,u));continue}}if(m==="["){s(),e.push(g("LBRACKET","[",u));continue}if(m==="]"){s(),e.push(g("RBRACKET","]",u));continue}if(/\d/.test(m)){let y=l(ge=>/[\d.]/.test(ge)),b=t,ne=l(ge=>/[a-zA-Z]/.test(ge));nr.has(ne)?e.push(g("TIME_EXPRESSION",y+ne,u)):(t=b,e.push(g("NUMBER",y,u)));continue}if(m==="("){s(),e.push(g("LPAREN","(",u));continue}if(m===")"){s(),e.push(g("RPAREN",")",u));continue}if(m==="{"){s(),e.push(g("LBRACE","{",u));continue}if(m==="}"){s(),e.push(g("RBRACE","}",u));continue}if(m===","){s(),e.push(g("COMMA",",",u));continue}if(m===":"){s(),e.push(g("COLON",":",u));continue}if(m==="."){s(),e.push(g("DOT",".",u));continue}if(m==="+"||m==="-"||m==="*"||m==="/"||m==="%"){s(),e.push(g("OPERATOR",m,u));continue}if(m==="="||m==="!"||m==="<"||m===">"){let y=s();a()==="="&&(y+=s()),e.push(g("COMPARISON",y,u));continue}if(/[a-zA-Z_$]/.test(m)){let y=l(ne=>/[\w$]/.test(ne)),b=y.toLowerCase();Jn.has(b)?e.push(g("CONTEXT_VAR",y,u)):er.has(b)?e.push(g("LOGICAL",y,u)):tr.has(b)?e.push(g("BOOLEAN",y,u)):e.push(g("IDENTIFIER",y,u));continue}s()}return e.push(g("EOF","",t)),e}var fe=class{constructor(){this.tokens=[];this.current=0}parse(e){try{return this.tokens=ut(e),this.current=0,this.isAtEnd()?{success:!1,error:"Empty expression"}:{success:!0,node:this.parseExpression(),consumed:this.current}}catch(t){return{success:!1,error:t instanceof Error?t.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 this.peek().type==="EOF"}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(let 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");){let t=this.advance().value,n=this.parseAnd();e=this.createBinaryExpression(t,e,n)}return e}parseAnd(){let e=this.parseEquality();for(;this.checkValue("and");){let t=this.advance().value,n=this.parseEquality();e=this.createBinaryExpression(t,e,n)}return e}parseEquality(){let e=this.parseComparison();for(;this.match("COMPARISON")||this.checkValue("is")||this.checkValue("matches")||this.checkValue("contains")||this.checkValue("in");){let t=this.previous().value,n=this.parseComparison();e=this.createBinaryExpression(t,e,n)}return e}parseComparison(){let e=this.parseAddition();for(;this.check("COMPARISON");){let t=this.advance().value,n=this.parseAddition();e=this.createBinaryExpression(t,e,n)}return e}parseAddition(){let e=this.parseMultiplication();for(;this.peek().value==="+"||this.peek().value==="-";){let t=this.advance().value,n=this.parseMultiplication();e=this.createBinaryExpression(t,e,n)}return e}parseMultiplication(){let e=this.parseUnary();for(;this.peek().value==="*"||this.peek().value==="/"||this.peek().value==="%";){let t=this.advance().value,n=this.parseUnary();e=this.createBinaryExpression(t,e,n)}return e}parseUnary(){if(this.checkValue("not")||this.checkValue("no")||this.peek().value==="-"){let 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")){let t=this.advance().value;e=this.createPropertyAccess(e,t)}else break;else if(this.match("POSSESSIVE"))if(this.check("IDENTIFIER")||this.check("CONTEXT_VAR")){let t=this.advance().value;e=this.createPossessiveExpression(e,t)}else break;else if(this.match("LPAREN")){let t=this.parseArguments();e=this.createCallExpression(e,t)}else if(this.match("LBRACKET")){let t=this.parseExpression();if(!this.match("RBRACKET"))throw new Error("Expected ] after index");e=this.createPropertyAccess(e,t)}else break;return e}parsePrimary(){let e=this.peek();if(this.match("NUMBER"))return this.createLiteral(parseFloat(e.value),"number",e);if(this.match("STRING")){let t=e.value.slice(1,-1);return this.createLiteral(t,"string",e)}if(this.match("BOOLEAN")){let t=e.value==="true"?!0:e.value==="false"?!1:e.value==="null"?null:void 0;return this.createLiteral(t,e.value,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")){let 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")){let t=this.parseExpression();if(!this.match("RPAREN"))throw new Error("Expected ) after expression");return t}if(this.match("LBRACKET"))return this.parseArrayLiteral();if(this.match("LBRACE"))return this.parseObjectLiteral();throw new Error(`Unexpected token: ${e.value}`)}parseArguments(){let 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(){let 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(){let e=[],t=this.previous().start;if(!this.check("RBRACE"))do{let n;if(this.check("STRING"))n=this.advance().value.slice(1,-1);else if(this.check("IDENTIFIER"))n=this.advance().value;else throw new Error("Expected property name");if(!this.match("COLON"))throw new Error("Expected : after property name");let o=this.parseExpression();e.push({key:n,value:o})}while(this.match("COMMA"));if(!this.match("RBRACE"))throw new Error("Expected } after object properties");return{type:"objectLiteral",properties:e.map(n=>({type:"objectProperty",key:n.key,value:n.value})),start:t,end:this.previous().end}}parseTimeExpression(e){let t=e.value.match(/^(\d+(?:\.\d+)?)(ms|s|seconds?|milliseconds?|minutes?|hours?)$/i);if(!t)throw new Error(`Invalid time expression: ${e.value}`);let n=parseFloat(t[1]),o=t[2].toLowerCase();return{type:"timeExpression",value:n,unit:o,raw:e.value,start:e.start,end:e.end,line:e.line,column:e.column}}createLiteral(e,t,n){return{type:"literal",value:e,dataType:t,raw:n.value,start:n.start,end:n.end,line:n.line,column:n.column}}createSelector(e,t,n){return{type:"selector",value:e,selector:e,selectorType:t,start:n.start,end:n.end,line:n.line,column:n.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:typeof t=="string"?t: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,n){return{type:"binaryExpression",operator:e,left:t,right:n,start:t.start,end:n.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 Ae(r){return new fe().parse(r)}function E(r,e){switch(r.type){case"literal":return rr(r);case"selector":return or(r,e);case"reference":return ir(r);case"property-path":return ar(r,e);case"expression":return sr(r);default:let t=r;throw new Error(`Unknown semantic value type: ${t.type}`)}}function rr(r){let e={type:"literal",value:r.value};return r.dataType?{...e,dataType:r.dataType}:e}function or(r,e){return e&&r.value.startsWith("*")&&/^[a-zA-Z-]/.test(r.value.slice(1))&&e.push(`Converted '${r.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:r.value,selector:r.value,selectorType:r.selectorKind}}function ir(r){return{type:"contextReference",contextType:r.value,name:r.value}}function ar(r,e){return{type:"propertyAccess",object:E(r.object,e),property:r.property}}function sr(r){let e=Ae(r.raw);return!e.success||!e.node?{type:"identifier",name:r.raw}:e.node}function mt(r,e){return r.roles.get(e)}function p(r,e,t){let n=mt(r,e);return n?E(n,t):void 0}function f(r,e=[],t,n={}){let o={type:"command",name:r,args:e};return t&&Object.keys(t).length>0&&(o.modifiers=t),n.isBlocking&&(o.isBlocking=n.isBlocking),n.implicitTarget&&(o.implicitTarget=n.implicitTarget),o}var cr={action:"toggle",toAST(r,e){let t=p(r,"patient"),n=p(r,"destination"),o=p(r,"duration"),i=t?[t]:[],a={};return n&&(a.on=n),o&&(a.for=o),f("toggle",i,a)}},lr={action:"add",toAST(r,e){let t=p(r,"patient"),n=p(r,"destination"),o=t?[t]:[],i={};return n&&(i.to=n),f("add",o,i)}},pr={action:"remove",toAST(r,e){let t=p(r,"patient"),n=p(r,"source"),o=t?[t]:[],i={};return n&&(i.from=n),f("remove",o,i)}},dr={action:"set",toAST(r,e){let t=p(r,"destination"),n=p(r,"patient"),o=[],i={};return t&&o.push(t),n&&(i.to=n),f("set",o,i)}},ur={action:"show",toAST(r,e){let t=p(r,"destination"),n=p(r,"patient"),o=p(r,"duration"),i=[],a={},s=t??n;return s&&i.push(s),o&&(a.with=o),f("show",i,a)}},mr={action:"hide",toAST(r,e){let t=p(r,"destination"),n=p(r,"patient"),o=p(r,"duration"),i=[],a={},s=t??n;return s&&i.push(s),o&&(a.with=o),f("hide",i,a)}},fr={action:"increment",toAST(r,e){let t=p(r,"destination"),n=p(r,"patient"),o=p(r,"quantity"),i=[],a={},s=t??n;return s&&i.push(s),o&&(a.by=o),f("increment",i,a)}},gr={action:"decrement",toAST(r,e){let t=p(r,"destination"),n=p(r,"patient"),o=p(r,"quantity"),i=[],a={},s=t??n;return s&&i.push(s),o&&(a.by=o),f("decrement",i,a)}},yr={action:"wait",toAST(r,e){let t=p(r,"duration");return f("wait",t?[t]:[],void 0,{isBlocking:!0})}},hr={action:"log",toAST(r,e){let t=p(r,"patient"),n=[];return t&&n.push(t),f("log",n)}},vr={action:"put",toAST(r,e){let t=p(r,"patient"),n=p(r,"destination"),o=mt(r,"method"),i=t?[t]:[],a={};if(n){let s=o?.type==="literal"?String(o.value):"into";a[s]=n}return f("put",i,a)}},Sr={action:"fetch",toAST(r,e){let t=p(r,"source"),n=p(r,"method"),o=p(r,"responseType"),i=p(r,"patient"),a=t?[t]:[],s={};return n&&(s.with=n),o&&(s.as=o),i&&(s.body=i),f("fetch",a,s,{isBlocking:!0})}},Tr={action:"append",toAST(r,e){let t=p(r,"patient"),n=p(r,"destination"),o=t?[t]:[],i={};return n&&(i.to=n),f("append",o,i)}},xr={action:"prepend",toAST(r,e){let t=p(r,"patient"),n=p(r,"destination"),o=t?[t]:[],i={};return n&&(i.to=n),f("prepend",o,i)}},kr={action:"trigger",toAST(r,e){let t=p(r,"event"),n=p(r,"destination"),o=t?[t]:[],i={};return n&&(i.on=n),f("trigger",o,i)}},br={action:"send",toAST(r,e){let t=p(r,"event"),n=p(r,"destination"),o=p(r,"patient"),i=t?[t]:[],a={};return n&&(a.to=n),o&&(a.detail=o),f("send",i,a)}},Pr={action:"go",toAST(r,e){let t=p(r,"source"),n=p(r,"destination"),o=[],i={};return t&&o.push(t),n&&(i.to=n),f("go",o,i)}},Er={action:"transition",toAST(r,e){let t=p(r,"patient"),n=p(r,"goal"),o=p(r,"duration"),i=p(r,"destination"),a=t?[t]:[],s={};return n&&(s.to=n),o&&(s.over=o),i&&(s.on=i),f("transition",a,s)}},Lr={action:"focus",toAST(r,e){let t=p(r,"destination"),n=p(r,"patient"),o=[],i={},a=t??n;return a&&o.push(a),f("focus",o,i)}},wr={action:"blur",toAST(r,e){let t=p(r,"destination"),n=p(r,"patient"),o=[],i=t??n;return i&&o.push(i),f("blur",o)}},Cr={action:"get",toAST(r,e){let t=p(r,"source"),n=p(r,"patient"),o=[],i=t??n;return i&&o.push(i),f("get",o)}},Rr={action:"take",toAST(r,e){let t=p(r,"patient"),n=p(r,"source"),o=t?[t]:[],i={};return n&&(i.from=n),f("take",o,i)}},Nr={action:"call",toAST(r,e){let t=p(r,"patient");return f("call",t?[t]:[])}},zr={action:"return",toAST(r,e){let t=p(r,"patient");return f("return",t?[t]:[])}},Mr={action:"halt",toAST(r,e){return f("halt",[])}},Ar={action:"throw",toAST(r,e){let t=p(r,"patient");return f("throw",t?[t]:[])}},jr={action:"settle",toAST(r,e){let t=p(r,"destination"),n=p(r,"patient"),o=[],i=t??n;return i&&o.push(i),f("settle",o,void 0,{isBlocking:!0})}},Vr={action:"swap",toAST(r,e){let t=p(r,"patient"),n=p(r,"source"),o=p(r,"destination"),i=p(r,"style"),a=[],s={};return t&&a.push(t),n&&a.push(n),o&&(s.on=o),i&&(s.with=i),f("swap",a,s)}},Ir={action:"morph",toAST(r,e){let t=p(r,"source"),n=p(r,"destination"),o=p(r,"patient"),i=[],a={},s=t??o;return s&&i.push(s),n&&(a.on=n),f("morph",i,a)}},Or={action:"clone",toAST(r,e){let t=p(r,"source"),n=p(r,"destination"),o=p(r,"patient"),i=[],a={},s=t??o;return s&&i.push(s),n&&(a.into=n),f("clone",i,a)}},_r={action:"make",toAST(r,e){let t=p(r,"patient");return f("make",t?[t]:[])}},qr={action:"measure",toAST(r,e){let t=p(r,"patient"),n=p(r,"destination"),o=p(r,"source"),i=[],a={};t&&i.push(t);let s=n??o;return s&&(a.of=s),f("measure",i,a)}},Br={action:"tell",toAST(r,e){let t=p(r,"destination"),n=p(r,"patient"),o=[],i=t??n;return i&&o.push(i),f("tell",o)}},Wr={action:"js",toAST(r,e){let t=p(r,"patient");return f("js",t?[t]:[])}},Ur={action:"async",toAST(r,e){return f("async",[])}},Kr={action:"if",toAST(r,e){let t=p(r,"condition");return f("if",t?[t]:[])}},Gr={action:"unless",toAST(r,e){let t=p(r,"condition");return f("unless",t?[t]:[])}},$r={action:"repeat",toAST(r,e){let t=p(r,"quantity"),n=p(r,"patient"),o=[],i=t??n;return i&&o.push(i),f("repeat",o)}},Dr={action:"for",toAST(r,e){let t=p(r,"patient"),n=p(r,"source"),o=t?[t]:[],i={};return n&&(i.in=n),f("for",o,i)}},Fr={action:"while",toAST(r,e){let t=p(r,"condition");return f("while",t?[t]:[])}},Hr={action:"continue",toAST(r,e){return f("continue",[])}},Xr={action:"default",toAST(r,e){let t=p(r,"patient"),n=p(r,"source"),o=t?[t]:[],i={};return n&&(i.to=n),f("default",o,i)}},Qr={action:"init",toAST(r,e){return f("init",[])}},Zr={action:"behavior",toAST(r,e){let t=p(r,"patient");return f("behavior",t?[t]:[])}},Yr={action:"install",toAST(r,e){let t=p(r,"patient"),n=p(r,"destination"),o=t?[t]:[],i={};return n&&(i.on=n),f("install",o,i)}},Jr={action:"on",toAST(r,e){let t=p(r,"event"),n=p(r,"source"),o=t?[t]:[],i={};return n&&(i.from=n),f("on",o,i)}},ft=new Map([["toggle",cr],["add",lr],["remove",pr],["set",dr],["show",ur],["hide",mr],["increment",fr],["decrement",gr],["wait",yr],["log",hr],["put",vr],["fetch",Sr],["append",Tr],["prepend",xr],["get",Cr],["take",Rr],["trigger",kr],["send",br],["on",Jr],["go",Pr],["transition",Er],["focus",Lr],["blur",wr],["call",Nr],["return",zr],["halt",Mr],["throw",Ar],["settle",jr],["swap",Vr],["morph",Ir],["clone",Or],["measure",qr],["make",_r],["tell",Br],["default",Xr],["js",Wr],["async",Ur],["if",Kr],["unless",Gr],["repeat",$r],["for",Dr],["while",Fr],["continue",Hr],["init",Qr],["behavior",Zr],["install",Yr]]);function J(r){return ft.get(r)}function je(r){ft.set(r.action,r)}var ee=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){let t=J(e.action);if(t){let n=t.toAST(e,this);if("ast"in n&&"warnings"in n){let o=n;return this.warnings.push(...o.warnings),o.ast}else return n}return this.buildGenericCommand(e)}buildGenericCommand(e){let t=[],n={},o=["patient","source","quantity"],i=["destination","duration","method","style"];for(let s of o){let c=e.roles.get(s);c&&t.push(E(c))}for(let s of i){let c=e.roles.get(s);if(c){let l=this.roleToModifierKey(s);n[l]=E(c)}}let a={type:"command",name:e.action,args:t};return Object.keys(n).length>0?{...a,modifiers:n}:a}roleToModifierKey(e){return{destination:"on",duration:"for",source:"from",condition:"if",method:"via",style:"with"}[e]??e}buildEventHandler(e){let t=e.roles.get("event"),n,o;if(t?.type==="literal"){let y=String(t.value);y.includes("|")||y.includes(" or ")?(o=y.split(/\s+or\s+|\|/).map(b=>b.trim()),n=o[0]):n=y}else t?.type==="reference"?n=t.value:n="click";let i=e.body.map(y=>this.build(y)),a=e.roles.get("source"),s,c;a?.type==="selector"?(s=a.value,c=a.value):a?.type==="reference"?c=a.value:a?.type==="literal"&&(c=String(a.value));let l=e.roles.get("condition"),d=l?E(l):void 0,T=e.roles.get("destination"),h=T?E(T):void 0,g=e.eventModifiers,u=s;if(g?.from){let y=g.from;y.type==="selector"&&!s&&(u=y.value)}let m=e.parameterNames?[...e.parameterNames]:void 0;return{type:"eventHandler",event:n,commands:i,...o&&o.length>1?{events:o}:{},...u?{selector:u}:{},...c?{target:c}:{},...d?{condition:d}:{},...h?{watchTarget:h}:{},...m&&m.length>0?{args:m,params:m}:{}}}buildConditional(e){let t=e.roles.get("condition");if(!t)throw new Error("Conditional node missing condition");let n=E(t),o=e.thenBranch.map(s=>this.build(s)),i=e.elseBranch?.map(s=>this.build(s)),a=[n,{type:"block",commands:o}];return i&&i.length>0&&a.push({type:"block",commands:i}),{type:"command",name:"if",args:a}}buildCompound(e){let t=e.statements.map(o=>this.build(o));return t.length===1?t[0]:t.length===0?{type:"block",commands:[]}:{type:"CommandSequence",commands:t}}buildLoop(e){let t=e.body.map(o=>this.build(o)),n=[{type:"identifier",name:e.loopVariant}];switch(e.loopVariant){case"times":{let o=e.roles.get("quantity");o&&n.push(E(o));break}case"for":{e.loopVariable&&n.push({type:"string",value:e.loopVariable});let o=e.roles.get("source");o&&n.push(E(o));break}case"while":case"until":{let o=e.roles.get("condition");o&&n.push(E(o));break}case"forever":break}return n.push({type:"block",commands:t}),{type:"command",name:"repeat",args:n}}buildBlock(e){return{type:"block",commands:e.map(n=>this.build(n))}}};function gt(r){let e=new ee;return{ast:e.build(r),warnings:e.warnings}}var q=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 this.config.ttlMs===0?!1:Date.now()-e.createdAt>this.config.ttlMs}evictLRU(){let e=this.cache.keys().next().value;e!==void 0&&(this.cache.delete(e),this.stats.evictions++)}get(e,t){if(!this.config.enabled){this.stats.misses++;return}let n=this.makeKey(e,t),o=this.cache.get(n);if(!o){this.stats.misses++;return}if(this.isExpired(o)){this.cache.delete(n),this.stats.expirations++,this.stats.misses++;return}return this.cache.delete(n),o.lastAccessed=Date.now(),this.cache.set(n,o),this.stats.hits++,o.result}set(e,t,n){if(!this.config.enabled||n.confidence===0)return;let o=this.makeKey(e,t),i=Date.now();for(;this.cache.size>=this.config.maxSize;)this.evictLRU();this.cache.set(o,{result:n,createdAt:i,lastAccessed:i})}has(e,t){if(!this.config.enabled)return!1;let n=this.makeKey(e,t),o=this.cache.get(n);return o?this.isExpired(o)?(this.cache.delete(n),this.stats.expirations++,!1):!0:!1}delete(e,t){let n=this.makeKey(e,t);return this.cache.delete(n)}clear(){this.cache.clear()}resetStats(){this.stats={hits:0,misses:0,evictions:0,expirations:0}}getStats(){let 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(e.maxSize!==void 0)for(this.config.maxSize=e.maxSize;this.cache.size>this.config.maxSize;)this.evictLRU();e.ttlMs!==void 0&&(this.config.ttlMs=e.ttlMs),e.enabled!==void 0&&(this.config.enabled=e.enabled)}enable(){this.config.enabled=!0}disable(){this.config.enabled=!1}getConfig(){return{...this.config}}},Ve=new q;var te=class{constructor(e={}){this.patternMatcher=new Q,this.languages=new Set(ie()),e.cache===!1?this.cache=new q({enabled:!1}):this.cache=e.cache?new q(e.cache):Ve}analyze(e,t){if(!this.supportsLanguage(t))return{confidence:0,errors:[`Language '${t}' is not supported for semantic parsing`]};let n=this.cache.get(e,t);if(n)return n;let o=this.analyzeUncached(e,t);return this.cache.set(e,t,o),o}analyzeUncached(e,t){try{let n=lt(t);if(!n)return{confidence:0,errors:[`No tokenizer available for language '${t}'`]};let o=n.tokenize(e),i=L(t);if(i.length===0)return{confidence:0,errors:[`No patterns available for language '${t}'`]};let a=this.patternMatcher.matchBest(o,i);if(!a)return{confidence:0,errors:["No pattern matched the input"]};let s=this.buildSemanticNode(a);return{confidence:a.confidence,command:{name:a.pattern.command,roles:a.captured},node:s,tokensConsumed:a.consumedTokens}}catch(n){return{confidence:0,errors:[n instanceof Error?n.message:String(n)]}}}supportsLanguage(e){return this.languages.has(e)}supportedLanguages(){return Array.from(this.languages)}getCacheStats(){return this.cache.getStats()}clearCache(){this.cache.clear()}configureCache(e){this.cache.configure(e)}buildSemanticNode(e){return{kind:"command",action:e.pattern.command,roles:e.captured,metadata:{patternId:e.pattern.id}}}};function yt(r){return new te(r)}var Ie=.5,ht=.8;function vt(r,e=Ie){return r.confidence>=e&&r.command!==void 0}var eo="1.0.0-en-tr",St=["en","tr"];function to(){return[...St]}function Tt(r){if(!St.includes(r))throw new Error(`Language not supported in this bundle: ${r}. Supported: en, tr`)}function no(r,e){return Tt(e),[...pe(r,e).tokens]}function xt(r){return Tt(r),L(r)}function ro(r,e){return xt(r).filter(t=>t.command===e).sort((t,n)=>n.priority-t.priority)}return wt(oo);})();
|