@lokascript/semantic 1.2.1 → 2.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/dist/__test-utils__/index.d.ts +6 -0
- package/dist/__test-utils__/index.d.ts.map +1 -0
- package/dist/__test-utils__/test-helpers.d.ts +7 -0
- package/dist/__test-utils__/test-helpers.d.ts.map +1 -0
- package/dist/__types__/test-helpers.d.ts +67 -0
- package/dist/__types__/test-helpers.d.ts.map +1 -0
- package/dist/analysis/index.d.ts +106 -0
- package/dist/analysis/index.d.ts.map +1 -0
- package/dist/ast-builder/command-mappers.d.ts +50 -0
- package/dist/ast-builder/command-mappers.d.ts.map +1 -0
- package/dist/ast-builder/expression-parser/index.d.ts +14 -0
- package/dist/ast-builder/expression-parser/index.d.ts.map +1 -0
- package/dist/ast-builder/expression-parser/parser.d.ts +50 -0
- package/dist/ast-builder/expression-parser/parser.d.ts.map +1 -0
- package/dist/ast-builder/expression-parser/tokenizer.d.ts +44 -0
- package/dist/ast-builder/expression-parser/tokenizer.d.ts.map +1 -0
- package/dist/ast-builder/expression-parser/types.d.ts +111 -0
- package/dist/ast-builder/expression-parser/types.d.ts.map +1 -0
- package/dist/ast-builder/index.d.ts +183 -0
- package/dist/ast-builder/index.d.ts.map +1 -0
- package/dist/ast-builder/value-converters.d.ts +51 -0
- package/dist/ast-builder/value-converters.d.ts.map +1 -0
- package/dist/browser-ar.ar.global.js +2 -2
- package/dist/browser-ar.d.ts +47 -0
- package/dist/browser-ar.d.ts.map +1 -0
- package/dist/browser-bn.bn.global.js +2 -0
- package/dist/browser-bn.d.ts +47 -0
- package/dist/browser-bn.d.ts.map +1 -0
- package/dist/browser-core.core.global.js +2 -2
- package/dist/browser-core.d.ts +83 -0
- package/dist/browser-core.d.ts.map +1 -0
- package/dist/browser-de.d.ts +47 -0
- package/dist/browser-de.d.ts.map +1 -0
- package/dist/browser-de.de.global.js +2 -2
- package/dist/browser-east-asian.d.ts +59 -0
- package/dist/browser-east-asian.d.ts.map +1 -0
- package/dist/browser-east-asian.east-asian.global.js +2 -2
- package/dist/browser-en-tr.d.ts +50 -0
- package/dist/browser-en-tr.d.ts.map +1 -0
- package/dist/browser-en-tr.en-tr.global.js +2 -2
- package/dist/browser-en.d.ts +48 -0
- package/dist/browser-en.d.ts.map +1 -0
- package/dist/browser-en.en.global.js +2 -2
- package/dist/browser-es-en.d.ts +62 -0
- package/dist/browser-es-en.d.ts.map +1 -0
- package/dist/browser-es-en.es-en.global.js +2 -2
- package/dist/browser-es.d.ts +51 -0
- package/dist/browser-es.d.ts.map +1 -0
- package/dist/browser-es.es.global.js +2 -2
- package/dist/browser-fr.d.ts +47 -0
- package/dist/browser-fr.d.ts.map +1 -0
- package/dist/browser-fr.fr.global.js +2 -2
- package/dist/browser-hi.d.ts +47 -0
- package/dist/browser-hi.d.ts.map +1 -0
- package/dist/browser-hi.hi.global.js +2 -0
- package/dist/browser-id.d.ts +47 -0
- package/dist/browser-id.d.ts.map +1 -0
- package/dist/browser-id.id.global.js +2 -2
- package/dist/browser-it.d.ts +47 -0
- package/dist/browser-it.d.ts.map +1 -0
- package/dist/browser-it.it.global.js +2 -0
- package/dist/browser-ja.d.ts +47 -0
- package/dist/browser-ja.d.ts.map +1 -0
- package/dist/browser-ja.ja.global.js +2 -2
- package/dist/browser-ko.d.ts +47 -0
- package/dist/browser-ko.d.ts.map +1 -0
- package/dist/browser-ko.ko.global.js +2 -2
- package/dist/browser-lazy.d.ts +52 -0
- package/dist/browser-lazy.d.ts.map +1 -0
- package/dist/browser-lazy.lazy.global.js +2 -2
- package/dist/browser-ms.d.ts +47 -0
- package/dist/browser-ms.d.ts.map +1 -0
- package/dist/browser-ms.ms.global.js +2 -0
- package/dist/browser-pl.d.ts +47 -0
- package/dist/browser-pl.d.ts.map +1 -0
- package/dist/browser-pl.pl.global.js +2 -0
- package/dist/browser-priority.d.ts +83 -0
- package/dist/browser-priority.d.ts.map +1 -0
- package/dist/browser-priority.priority.global.js +2 -2
- package/dist/browser-pt.d.ts +47 -0
- package/dist/browser-pt.d.ts.map +1 -0
- package/dist/browser-pt.pt.global.js +2 -2
- package/dist/browser-qu.d.ts +47 -0
- package/dist/browser-qu.d.ts.map +1 -0
- package/dist/browser-qu.qu.global.js +2 -2
- package/dist/browser-ru.d.ts +47 -0
- package/dist/browser-ru.d.ts.map +1 -0
- package/dist/browser-ru.ru.global.js +2 -0
- package/dist/browser-sw.d.ts +47 -0
- package/dist/browser-sw.d.ts.map +1 -0
- package/dist/browser-sw.sw.global.js +2 -2
- package/dist/browser-th.d.ts +47 -0
- package/dist/browser-th.d.ts.map +1 -0
- package/dist/browser-th.th.global.js +2 -0
- package/dist/browser-tl.d.ts +47 -0
- package/dist/browser-tl.d.ts.map +1 -0
- package/dist/browser-tl.tl.global.js +2 -0
- package/dist/browser-tr.d.ts +47 -0
- package/dist/browser-tr.d.ts.map +1 -0
- package/dist/browser-tr.tr.global.js +2 -2
- package/dist/browser-uk.d.ts +47 -0
- package/dist/browser-uk.d.ts.map +1 -0
- package/dist/browser-uk.uk.global.js +2 -0
- package/dist/browser-vi.d.ts +47 -0
- package/dist/browser-vi.d.ts.map +1 -0
- package/dist/browser-vi.vi.global.js +2 -0
- package/dist/browser-western.d.ts +67 -0
- package/dist/browser-western.d.ts.map +1 -0
- package/dist/browser-western.western.global.js +2 -2
- package/dist/browser-zh.d.ts +47 -0
- package/dist/browser-zh.d.ts.map +1 -0
- package/dist/browser-zh.zh.global.js +2 -2
- package/dist/browser.d.ts +69 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.global.js +2 -2
- package/dist/browser.global.js.map +1 -1
- package/dist/cache/index.d.ts +7 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/semantic-cache.d.ts +138 -0
- package/dist/cache/semantic-cache.d.ts.map +1 -0
- package/dist/core-bridge.d.ts +154 -0
- package/dist/core-bridge.d.ts.map +1 -0
- package/dist/core.d.ts +24 -1235
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +6433 -1731
- package/dist/core.js.map +1 -1
- package/dist/explicit/converter.d.ts +98 -0
- package/dist/explicit/converter.d.ts.map +1 -0
- package/dist/explicit/index.d.ts +10 -0
- package/dist/explicit/index.d.ts.map +1 -0
- package/dist/explicit/parser.d.ts +25 -0
- package/dist/explicit/parser.d.ts.map +1 -0
- package/dist/explicit/renderer.d.ts +82 -0
- package/dist/explicit/renderer.d.ts.map +1 -0
- package/dist/generators/command-schemas.d.ts +358 -0
- package/dist/generators/command-schemas.d.ts.map +1 -0
- package/dist/generators/event-handlers-sov.d.ts +91 -0
- package/dist/generators/event-handlers-sov.d.ts.map +1 -0
- package/dist/generators/event-handlers-vso.d.ts +69 -0
- package/dist/generators/event-handlers-vso.d.ts.map +1 -0
- package/dist/generators/index.d.ts +12 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/language-profiles.d.ts +65 -0
- package/dist/generators/language-profiles.d.ts.map +1 -0
- package/dist/generators/pattern-generator.d.ts +81 -0
- package/dist/generators/pattern-generator.d.ts.map +1 -0
- package/dist/generators/profiles/arabic.d.ts +9 -0
- package/dist/generators/profiles/arabic.d.ts.map +1 -0
- package/dist/generators/profiles/bengali.d.ts +9 -0
- package/dist/generators/profiles/bengali.d.ts.map +1 -0
- package/dist/generators/profiles/chinese.d.ts +9 -0
- package/dist/generators/profiles/chinese.d.ts.map +1 -0
- package/dist/generators/profiles/english.d.ts +8 -0
- package/dist/generators/profiles/english.d.ts.map +1 -0
- package/dist/generators/profiles/french.d.ts +9 -0
- package/dist/generators/profiles/french.d.ts.map +1 -0
- package/dist/generators/profiles/german.d.ts +9 -0
- package/dist/generators/profiles/german.d.ts.map +1 -0
- package/dist/generators/profiles/hebrew.d.ts +10 -0
- package/dist/generators/profiles/hebrew.d.ts.map +1 -0
- package/dist/generators/profiles/hindi.d.ts +9 -0
- package/dist/generators/profiles/hindi.d.ts.map +1 -0
- package/dist/generators/profiles/index.d.ts +36 -0
- package/dist/generators/profiles/index.d.ts.map +1 -0
- package/dist/generators/profiles/indonesian.d.ts +9 -0
- package/dist/generators/profiles/indonesian.d.ts.map +1 -0
- package/dist/generators/profiles/italian.d.ts +10 -0
- package/dist/generators/profiles/italian.d.ts.map +1 -0
- package/dist/generators/profiles/japanese.d.ts +9 -0
- package/dist/generators/profiles/japanese.d.ts.map +1 -0
- package/dist/generators/profiles/korean.d.ts +9 -0
- package/dist/generators/profiles/korean.d.ts.map +1 -0
- package/dist/generators/profiles/marker-templates.d.ts +119 -0
- package/dist/generators/profiles/marker-templates.d.ts.map +1 -0
- package/dist/generators/profiles/ms.d.ts +8 -0
- package/dist/generators/profiles/ms.d.ts.map +1 -0
- package/dist/generators/profiles/polish.d.ts +10 -0
- package/dist/generators/profiles/polish.d.ts.map +1 -0
- package/dist/generators/profiles/portuguese.d.ts +9 -0
- package/dist/generators/profiles/portuguese.d.ts.map +1 -0
- package/dist/generators/profiles/quechua.d.ts +9 -0
- package/dist/generators/profiles/quechua.d.ts.map +1 -0
- package/dist/generators/profiles/russian.d.ts +10 -0
- package/dist/generators/profiles/russian.d.ts.map +1 -0
- package/dist/generators/profiles/spanish.d.ts +9 -0
- package/dist/generators/profiles/spanish.d.ts.map +1 -0
- package/dist/generators/profiles/spanishMexico.d.ts +19 -0
- package/dist/generators/profiles/spanishMexico.d.ts.map +1 -0
- package/dist/generators/profiles/swahili.d.ts +9 -0
- package/dist/generators/profiles/swahili.d.ts.map +1 -0
- package/dist/generators/profiles/thai.d.ts +9 -0
- package/dist/generators/profiles/thai.d.ts.map +1 -0
- package/dist/generators/profiles/tl.d.ts +8 -0
- package/dist/generators/profiles/tl.d.ts.map +1 -0
- package/dist/generators/profiles/turkish.d.ts +9 -0
- package/dist/generators/profiles/turkish.d.ts.map +1 -0
- package/dist/generators/profiles/types.d.ts +170 -0
- package/dist/generators/profiles/types.d.ts.map +1 -0
- package/dist/generators/profiles/ukrainian.d.ts +10 -0
- package/dist/generators/profiles/ukrainian.d.ts.map +1 -0
- package/dist/generators/profiles/vietnamese.d.ts +10 -0
- package/dist/generators/profiles/vietnamese.d.ts.map +1 -0
- package/dist/generators/schema-error-codes.d.ts +60 -0
- package/dist/generators/schema-error-codes.d.ts.map +1 -0
- package/dist/generators/schema-validator.d.ts +77 -0
- package/dist/generators/schema-validator.d.ts.map +1 -0
- package/dist/index.cjs +5451 -2522
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +50 -3436
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5448 -2526
- package/dist/index.js.map +1 -1
- package/dist/interchange/from-semantic.d.ts +23 -0
- package/dist/interchange/from-semantic.d.ts.map +1 -0
- package/dist/interchange/index.d.ts +7 -0
- package/dist/interchange/index.d.ts.map +1 -0
- package/dist/interchange/types.d.ts +132 -0
- package/dist/interchange/types.d.ts.map +1 -0
- package/dist/language-building-schema.d.ts +163 -0
- package/dist/language-building-schema.d.ts.map +1 -0
- package/dist/language-loader.d.ts +126 -0
- package/dist/language-loader.d.ts.map +1 -0
- package/dist/languages/_all.d.ts +66 -0
- package/dist/languages/_all.d.ts.map +1 -0
- package/dist/languages/ar.d.ts +6 -75
- package/dist/languages/ar.d.ts.map +1 -0
- package/dist/languages/ar.js +65 -14
- package/dist/languages/ar.js.map +1 -1
- package/dist/languages/bn.d.ts +10 -0
- package/dist/languages/bn.d.ts.map +1 -0
- package/dist/languages/bn.js +1163 -0
- package/dist/languages/bn.js.map +1 -0
- package/dist/languages/de.d.ts +6 -35
- package/dist/languages/de.d.ts.map +1 -0
- package/dist/languages/de.js +260 -22
- package/dist/languages/de.js.map +1 -1
- package/dist/languages/en.d.ts +13 -40
- package/dist/languages/en.d.ts.map +1 -0
- package/dist/languages/en.js +788 -241
- package/dist/languages/en.js.map +1 -1
- package/dist/languages/es-MX.d.ts +24 -0
- package/dist/languages/es-MX.d.ts.map +1 -0
- package/dist/languages/es-MX.js +1729 -0
- package/dist/languages/es-MX.js.map +1 -0
- package/dist/languages/es.d.ts +6 -49
- package/dist/languages/es.d.ts.map +1 -0
- package/dist/languages/es.js +60 -13
- package/dist/languages/es.js.map +1 -1
- package/dist/languages/fr.d.ts +6 -34
- package/dist/languages/fr.d.ts.map +1 -0
- package/dist/languages/fr.js +309 -22
- package/dist/languages/fr.js.map +1 -1
- package/dist/languages/he.d.ts +9 -0
- package/dist/languages/he.d.ts.map +1 -0
- package/dist/languages/he.js +1378 -0
- package/dist/languages/he.js.map +1 -0
- package/dist/languages/hi.d.ts +18 -0
- package/dist/languages/hi.d.ts.map +1 -0
- package/dist/languages/hi.js +1209 -0
- package/dist/languages/hi.js.map +1 -0
- package/dist/languages/id.d.ts +6 -32
- package/dist/languages/id.d.ts.map +1 -0
- package/dist/languages/id.js +60 -13
- package/dist/languages/id.js.map +1 -1
- package/dist/languages/index.d.ts +18 -0
- package/dist/languages/index.d.ts.map +1 -0
- package/dist/languages/it.d.ts +9 -0
- package/dist/languages/it.d.ts.map +1 -0
- package/dist/languages/it.js +1647 -0
- package/dist/languages/it.js.map +1 -0
- package/dist/languages/ja.d.ts +6 -50
- package/dist/languages/ja.d.ts.map +1 -0
- package/dist/languages/ja.js +60 -13
- package/dist/languages/ja.js.map +1 -1
- package/dist/languages/ko.d.ts +6 -55
- package/dist/languages/ko.d.ts.map +1 -0
- package/dist/languages/ko.js +64 -13
- package/dist/languages/ko.js.map +1 -1
- package/dist/languages/ms.d.ts +10 -0
- package/dist/languages/ms.d.ts.map +1 -0
- package/dist/languages/ms.js +1088 -0
- package/dist/languages/ms.js.map +1 -0
- package/dist/languages/pl.d.ts +12 -0
- package/dist/languages/pl.d.ts.map +1 -0
- package/dist/languages/pl.js +1586 -0
- package/dist/languages/pl.js.map +1 -0
- package/dist/languages/pt.d.ts +6 -34
- package/dist/languages/pt.d.ts.map +1 -0
- package/dist/languages/pt.js +344 -22
- package/dist/languages/pt.js.map +1 -1
- package/dist/languages/qu.d.ts +6 -44
- package/dist/languages/qu.d.ts.map +1 -0
- package/dist/languages/qu.js +105 -28
- package/dist/languages/qu.js.map +1 -1
- package/dist/languages/ru.d.ts +18 -0
- package/dist/languages/ru.d.ts.map +1 -0
- package/dist/languages/ru.js +1705 -0
- package/dist/languages/ru.js.map +1 -0
- package/dist/languages/sw.d.ts +6 -32
- package/dist/languages/sw.d.ts.map +1 -0
- package/dist/languages/sw.js +69 -17
- package/dist/languages/sw.js.map +1 -1
- package/dist/languages/th.d.ts +10 -0
- package/dist/languages/th.d.ts.map +1 -0
- package/dist/languages/th.js +1123 -0
- package/dist/languages/th.js.map +1 -0
- package/dist/languages/tl.d.ts +10 -0
- package/dist/languages/tl.d.ts.map +1 -0
- package/dist/languages/tl.js +1086 -0
- package/dist/languages/tl.js.map +1 -0
- package/dist/languages/tr.d.ts +6 -50
- package/dist/languages/tr.d.ts.map +1 -0
- package/dist/languages/tr.js +67 -16
- package/dist/languages/tr.js.map +1 -1
- package/dist/languages/uk.d.ts +18 -0
- package/dist/languages/uk.d.ts.map +1 -0
- package/dist/languages/uk.js +1691 -0
- package/dist/languages/uk.js.map +1 -0
- package/dist/languages/vi.d.ts +10 -0
- package/dist/languages/vi.d.ts.map +1 -0
- package/dist/languages/vi.js +1266 -0
- package/dist/languages/vi.js.map +1 -0
- package/dist/languages/zh.d.ts +6 -55
- package/dist/languages/zh.d.ts.map +1 -0
- package/dist/languages/zh.js +59 -13
- package/dist/languages/zh.js.map +1 -1
- package/dist/parser/index.d.ts +8 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/pattern-matcher.d.ts +188 -0
- package/dist/parser/pattern-matcher.d.ts.map +1 -0
- package/dist/parser/semantic-parser.d.ts +238 -0
- package/dist/parser/semantic-parser.d.ts.map +1 -0
- package/dist/parser/utils/index.d.ts +9 -0
- package/dist/parser/utils/index.d.ts.map +1 -0
- package/dist/parser/utils/marker-resolution.d.ts +57 -0
- package/dist/parser/utils/marker-resolution.d.ts.map +1 -0
- package/dist/parser/utils/possessive-keywords.d.ts +31 -0
- package/dist/parser/utils/possessive-keywords.d.ts.map +1 -0
- package/dist/parser/utils/role-positioning.d.ts +42 -0
- package/dist/parser/utils/role-positioning.d.ts.map +1 -0
- package/dist/parser/utils/type-validation.d.ts +63 -0
- package/dist/parser/utils/type-validation.d.ts.map +1 -0
- package/dist/patterns/add/ar.d.ts +12 -0
- package/dist/patterns/add/ar.d.ts.map +1 -0
- package/dist/patterns/add/bn.d.ts +8 -0
- package/dist/patterns/add/bn.d.ts.map +1 -0
- package/dist/patterns/add/hi.d.ts +8 -0
- package/dist/patterns/add/hi.d.ts.map +1 -0
- package/dist/patterns/add/index.d.ts +31 -0
- package/dist/patterns/add/index.d.ts.map +1 -0
- package/dist/patterns/add/it.d.ts +11 -0
- package/dist/patterns/add/it.d.ts.map +1 -0
- package/dist/patterns/add/ja.d.ts +12 -0
- package/dist/patterns/add/ja.d.ts.map +1 -0
- package/dist/patterns/add/ko.d.ts +12 -0
- package/dist/patterns/add/ko.d.ts.map +1 -0
- package/dist/patterns/add/pl.d.ts +12 -0
- package/dist/patterns/add/pl.d.ts.map +1 -0
- package/dist/patterns/add/qu.d.ts +9 -0
- package/dist/patterns/add/qu.d.ts.map +1 -0
- package/dist/patterns/add/ru.d.ts +12 -0
- package/dist/patterns/add/ru.d.ts.map +1 -0
- package/dist/patterns/add/th.d.ts +8 -0
- package/dist/patterns/add/th.d.ts.map +1 -0
- package/dist/patterns/add/tr.d.ts +12 -0
- package/dist/patterns/add/tr.d.ts.map +1 -0
- package/dist/patterns/add/uk.d.ts +12 -0
- package/dist/patterns/add/uk.d.ts.map +1 -0
- package/dist/patterns/add/vi.d.ts +11 -0
- package/dist/patterns/add/vi.d.ts.map +1 -0
- package/dist/patterns/add/zh.d.ts +12 -0
- package/dist/patterns/add/zh.d.ts.map +1 -0
- package/dist/patterns/builders.d.ts +52 -0
- package/dist/patterns/builders.d.ts.map +1 -0
- package/dist/patterns/decrement/bn.d.ts +8 -0
- package/dist/patterns/decrement/bn.d.ts.map +1 -0
- package/dist/patterns/decrement/de.d.ts +12 -0
- package/dist/patterns/decrement/de.d.ts.map +1 -0
- package/dist/patterns/decrement/hi.d.ts +8 -0
- package/dist/patterns/decrement/hi.d.ts.map +1 -0
- package/dist/patterns/decrement/index.d.ts +28 -0
- package/dist/patterns/decrement/index.d.ts.map +1 -0
- package/dist/patterns/decrement/it.d.ts +11 -0
- package/dist/patterns/decrement/it.d.ts.map +1 -0
- package/dist/patterns/decrement/pl.d.ts +12 -0
- package/dist/patterns/decrement/pl.d.ts.map +1 -0
- package/dist/patterns/decrement/ru.d.ts +12 -0
- package/dist/patterns/decrement/ru.d.ts.map +1 -0
- package/dist/patterns/decrement/th.d.ts +8 -0
- package/dist/patterns/decrement/th.d.ts.map +1 -0
- package/dist/patterns/decrement/tr.d.ts +12 -0
- package/dist/patterns/decrement/tr.d.ts.map +1 -0
- package/dist/patterns/decrement/uk.d.ts +12 -0
- package/dist/patterns/decrement/uk.d.ts.map +1 -0
- package/dist/patterns/decrement/vi.d.ts +11 -0
- package/dist/patterns/decrement/vi.d.ts.map +1 -0
- package/dist/patterns/decrement/zh.d.ts +12 -0
- package/dist/patterns/decrement/zh.d.ts.map +1 -0
- package/dist/patterns/en.d.ts +13 -0
- package/dist/patterns/en.d.ts.map +1 -0
- package/dist/patterns/event-handler/ar.d.ts +12 -0
- package/dist/patterns/event-handler/ar.d.ts.map +1 -0
- package/dist/patterns/event-handler/bn.d.ts +8 -0
- package/dist/patterns/event-handler/bn.d.ts.map +1 -0
- package/dist/patterns/event-handler/de.d.ts +11 -0
- package/dist/patterns/event-handler/de.d.ts.map +1 -0
- package/dist/patterns/event-handler/en.d.ts +11 -0
- package/dist/patterns/event-handler/en.d.ts.map +1 -0
- package/dist/patterns/event-handler/es.d.ts +11 -0
- package/dist/patterns/event-handler/es.d.ts.map +1 -0
- package/dist/patterns/event-handler/fr.d.ts +11 -0
- package/dist/patterns/event-handler/fr.d.ts.map +1 -0
- package/dist/patterns/event-handler/he.d.ts +12 -0
- package/dist/patterns/event-handler/he.d.ts.map +1 -0
- package/dist/patterns/event-handler/hi.d.ts +9 -0
- package/dist/patterns/event-handler/hi.d.ts.map +1 -0
- package/dist/patterns/event-handler/id.d.ts +11 -0
- package/dist/patterns/event-handler/id.d.ts.map +1 -0
- package/dist/patterns/event-handler/index.d.ts +41 -0
- package/dist/patterns/event-handler/index.d.ts.map +1 -0
- package/dist/patterns/event-handler/it.d.ts +11 -0
- package/dist/patterns/event-handler/it.d.ts.map +1 -0
- package/dist/patterns/event-handler/ja.d.ts +12 -0
- package/dist/patterns/event-handler/ja.d.ts.map +1 -0
- package/dist/patterns/event-handler/ko.d.ts +12 -0
- package/dist/patterns/event-handler/ko.d.ts.map +1 -0
- package/dist/patterns/event-handler/ms.d.ts +14 -0
- package/dist/patterns/event-handler/ms.d.ts.map +1 -0
- package/dist/patterns/event-handler/pl.d.ts +12 -0
- package/dist/patterns/event-handler/pl.d.ts.map +1 -0
- package/dist/patterns/event-handler/pt.d.ts +11 -0
- package/dist/patterns/event-handler/pt.d.ts.map +1 -0
- package/dist/patterns/event-handler/qu.d.ts +11 -0
- package/dist/patterns/event-handler/qu.d.ts.map +1 -0
- package/dist/patterns/event-handler/ru.d.ts +12 -0
- package/dist/patterns/event-handler/ru.d.ts.map +1 -0
- package/dist/patterns/event-handler/shared.d.ts +15 -0
- package/dist/patterns/event-handler/shared.d.ts.map +1 -0
- package/dist/patterns/event-handler/sw.d.ts +11 -0
- package/dist/patterns/event-handler/sw.d.ts.map +1 -0
- package/dist/patterns/event-handler/th.d.ts +8 -0
- package/dist/patterns/event-handler/th.d.ts.map +1 -0
- package/dist/patterns/event-handler/tl.d.ts +9 -0
- package/dist/patterns/event-handler/tl.d.ts.map +1 -0
- package/dist/patterns/event-handler/tr.d.ts +12 -0
- package/dist/patterns/event-handler/tr.d.ts.map +1 -0
- package/dist/patterns/event-handler/uk.d.ts +12 -0
- package/dist/patterns/event-handler/uk.d.ts.map +1 -0
- package/dist/patterns/event-handler/vi.d.ts +11 -0
- package/dist/patterns/event-handler/vi.d.ts.map +1 -0
- package/dist/patterns/event-handler/zh.d.ts +11 -0
- package/dist/patterns/event-handler/zh.d.ts.map +1 -0
- package/dist/patterns/get/ar.d.ts +12 -0
- package/dist/patterns/get/ar.d.ts.map +1 -0
- package/dist/patterns/get/bn.d.ts +8 -0
- package/dist/patterns/get/bn.d.ts.map +1 -0
- package/dist/patterns/get/de.d.ts +12 -0
- package/dist/patterns/get/de.d.ts.map +1 -0
- package/dist/patterns/get/hi.d.ts +8 -0
- package/dist/patterns/get/hi.d.ts.map +1 -0
- package/dist/patterns/get/index.d.ts +29 -0
- package/dist/patterns/get/index.d.ts.map +1 -0
- package/dist/patterns/get/it.d.ts +11 -0
- package/dist/patterns/get/it.d.ts.map +1 -0
- package/dist/patterns/get/ja.d.ts +12 -0
- package/dist/patterns/get/ja.d.ts.map +1 -0
- package/dist/patterns/get/ko.d.ts +12 -0
- package/dist/patterns/get/ko.d.ts.map +1 -0
- package/dist/patterns/get/pl.d.ts +12 -0
- package/dist/patterns/get/pl.d.ts.map +1 -0
- package/dist/patterns/get/ru.d.ts +12 -0
- package/dist/patterns/get/ru.d.ts.map +1 -0
- package/dist/patterns/get/th.d.ts +8 -0
- package/dist/patterns/get/th.d.ts.map +1 -0
- package/dist/patterns/get/uk.d.ts +12 -0
- package/dist/patterns/get/uk.d.ts.map +1 -0
- package/dist/patterns/get/vi.d.ts +11 -0
- package/dist/patterns/get/vi.d.ts.map +1 -0
- package/dist/patterns/grammar-transformed/index.d.ts +20 -0
- package/dist/patterns/grammar-transformed/index.d.ts.map +1 -0
- package/dist/patterns/grammar-transformed/ja.d.ts +12 -0
- package/dist/patterns/grammar-transformed/ja.d.ts.map +1 -0
- package/dist/patterns/grammar-transformed/ko.d.ts +12 -0
- package/dist/patterns/grammar-transformed/ko.d.ts.map +1 -0
- package/dist/patterns/grammar-transformed/tr.d.ts +12 -0
- package/dist/patterns/grammar-transformed/tr.d.ts.map +1 -0
- package/dist/patterns/hide/ar.d.ts +12 -0
- package/dist/patterns/hide/ar.d.ts.map +1 -0
- package/dist/patterns/hide/bn.d.ts +8 -0
- package/dist/patterns/hide/bn.d.ts.map +1 -0
- package/dist/patterns/hide/de.d.ts +12 -0
- package/dist/patterns/hide/de.d.ts.map +1 -0
- package/dist/patterns/hide/hi.d.ts +8 -0
- package/dist/patterns/hide/hi.d.ts.map +1 -0
- package/dist/patterns/hide/index.d.ts +31 -0
- package/dist/patterns/hide/index.d.ts.map +1 -0
- package/dist/patterns/hide/it.d.ts +11 -0
- package/dist/patterns/hide/it.d.ts.map +1 -0
- package/dist/patterns/hide/ja.d.ts +12 -0
- package/dist/patterns/hide/ja.d.ts.map +1 -0
- package/dist/patterns/hide/ko.d.ts +12 -0
- package/dist/patterns/hide/ko.d.ts.map +1 -0
- package/dist/patterns/hide/pl.d.ts +12 -0
- package/dist/patterns/hide/pl.d.ts.map +1 -0
- package/dist/patterns/hide/ru.d.ts +12 -0
- package/dist/patterns/hide/ru.d.ts.map +1 -0
- package/dist/patterns/hide/th.d.ts +8 -0
- package/dist/patterns/hide/th.d.ts.map +1 -0
- package/dist/patterns/hide/tr.d.ts +12 -0
- package/dist/patterns/hide/tr.d.ts.map +1 -0
- package/dist/patterns/hide/uk.d.ts +12 -0
- package/dist/patterns/hide/uk.d.ts.map +1 -0
- package/dist/patterns/hide/vi.d.ts +11 -0
- package/dist/patterns/hide/vi.d.ts.map +1 -0
- package/dist/patterns/hide/zh.d.ts +12 -0
- package/dist/patterns/hide/zh.d.ts.map +1 -0
- package/dist/patterns/increment/bn.d.ts +8 -0
- package/dist/patterns/increment/bn.d.ts.map +1 -0
- package/dist/patterns/increment/de.d.ts +12 -0
- package/dist/patterns/increment/de.d.ts.map +1 -0
- package/dist/patterns/increment/hi.d.ts +8 -0
- package/dist/patterns/increment/hi.d.ts.map +1 -0
- package/dist/patterns/increment/index.d.ts +28 -0
- package/dist/patterns/increment/index.d.ts.map +1 -0
- package/dist/patterns/increment/it.d.ts +11 -0
- package/dist/patterns/increment/it.d.ts.map +1 -0
- package/dist/patterns/increment/pl.d.ts +12 -0
- package/dist/patterns/increment/pl.d.ts.map +1 -0
- package/dist/patterns/increment/ru.d.ts +12 -0
- package/dist/patterns/increment/ru.d.ts.map +1 -0
- package/dist/patterns/increment/th.d.ts +8 -0
- package/dist/patterns/increment/th.d.ts.map +1 -0
- package/dist/patterns/increment/tr.d.ts +12 -0
- package/dist/patterns/increment/tr.d.ts.map +1 -0
- package/dist/patterns/increment/uk.d.ts +12 -0
- package/dist/patterns/increment/uk.d.ts.map +1 -0
- package/dist/patterns/increment/vi.d.ts +11 -0
- package/dist/patterns/increment/vi.d.ts.map +1 -0
- package/dist/patterns/increment/zh.d.ts +12 -0
- package/dist/patterns/increment/zh.d.ts.map +1 -0
- package/dist/patterns/index.d.ts +21 -0
- package/dist/patterns/index.d.ts.map +1 -0
- package/dist/patterns/languages/en/control-flow.d.ts +40 -0
- package/dist/patterns/languages/en/control-flow.d.ts.map +1 -0
- package/dist/patterns/languages/en/fetch.d.ts +22 -0
- package/dist/patterns/languages/en/fetch.d.ts.map +1 -0
- package/dist/patterns/languages/en/index.d.ts +22 -0
- package/dist/patterns/languages/en/index.d.ts.map +1 -0
- package/dist/patterns/languages/en/repeat.d.ts +22 -0
- package/dist/patterns/languages/en/repeat.d.ts.map +1 -0
- package/dist/patterns/languages/en/set.d.ts +23 -0
- package/dist/patterns/languages/en/set.d.ts.map +1 -0
- package/dist/patterns/languages/en/swap.d.ts +19 -0
- package/dist/patterns/languages/en/swap.d.ts.map +1 -0
- package/dist/patterns/languages/en/temporal.d.ts +24 -0
- package/dist/patterns/languages/en/temporal.d.ts.map +1 -0
- package/dist/patterns/put/ar.d.ts +12 -0
- package/dist/patterns/put/ar.d.ts.map +1 -0
- package/dist/patterns/put/bn.d.ts +8 -0
- package/dist/patterns/put/bn.d.ts.map +1 -0
- package/dist/patterns/put/en.d.ts +11 -0
- package/dist/patterns/put/en.d.ts.map +1 -0
- package/dist/patterns/put/es.d.ts +11 -0
- package/dist/patterns/put/es.d.ts.map +1 -0
- package/dist/patterns/put/hi.d.ts +8 -0
- package/dist/patterns/put/hi.d.ts.map +1 -0
- package/dist/patterns/put/id.d.ts +15 -0
- package/dist/patterns/put/id.d.ts.map +1 -0
- package/dist/patterns/put/index.d.ts +33 -0
- package/dist/patterns/put/index.d.ts.map +1 -0
- package/dist/patterns/put/it.d.ts +11 -0
- package/dist/patterns/put/it.d.ts.map +1 -0
- package/dist/patterns/put/ja.d.ts +12 -0
- package/dist/patterns/put/ja.d.ts.map +1 -0
- package/dist/patterns/put/ko.d.ts +12 -0
- package/dist/patterns/put/ko.d.ts.map +1 -0
- package/dist/patterns/put/pl.d.ts +12 -0
- package/dist/patterns/put/pl.d.ts.map +1 -0
- package/dist/patterns/put/ru.d.ts +12 -0
- package/dist/patterns/put/ru.d.ts.map +1 -0
- package/dist/patterns/put/th.d.ts +8 -0
- package/dist/patterns/put/th.d.ts.map +1 -0
- package/dist/patterns/put/tr.d.ts +12 -0
- package/dist/patterns/put/tr.d.ts.map +1 -0
- package/dist/patterns/put/uk.d.ts +12 -0
- package/dist/patterns/put/uk.d.ts.map +1 -0
- package/dist/patterns/put/vi.d.ts +11 -0
- package/dist/patterns/put/vi.d.ts.map +1 -0
- package/dist/patterns/put/zh.d.ts +12 -0
- package/dist/patterns/put/zh.d.ts.map +1 -0
- package/dist/patterns/registry.d.ts +53 -0
- package/dist/patterns/registry.d.ts.map +1 -0
- package/dist/patterns/remove/ar.d.ts +12 -0
- package/dist/patterns/remove/ar.d.ts.map +1 -0
- package/dist/patterns/remove/bn.d.ts +8 -0
- package/dist/patterns/remove/bn.d.ts.map +1 -0
- package/dist/patterns/remove/hi.d.ts +8 -0
- package/dist/patterns/remove/hi.d.ts.map +1 -0
- package/dist/patterns/remove/index.d.ts +31 -0
- package/dist/patterns/remove/index.d.ts.map +1 -0
- package/dist/patterns/remove/it.d.ts +11 -0
- package/dist/patterns/remove/it.d.ts.map +1 -0
- package/dist/patterns/remove/ja.d.ts +12 -0
- package/dist/patterns/remove/ja.d.ts.map +1 -0
- package/dist/patterns/remove/ko.d.ts +12 -0
- package/dist/patterns/remove/ko.d.ts.map +1 -0
- package/dist/patterns/remove/pl.d.ts +12 -0
- package/dist/patterns/remove/pl.d.ts.map +1 -0
- package/dist/patterns/remove/qu.d.ts +9 -0
- package/dist/patterns/remove/qu.d.ts.map +1 -0
- package/dist/patterns/remove/ru.d.ts +12 -0
- package/dist/patterns/remove/ru.d.ts.map +1 -0
- package/dist/patterns/remove/th.d.ts +8 -0
- package/dist/patterns/remove/th.d.ts.map +1 -0
- package/dist/patterns/remove/tr.d.ts +12 -0
- package/dist/patterns/remove/tr.d.ts.map +1 -0
- package/dist/patterns/remove/uk.d.ts +12 -0
- package/dist/patterns/remove/uk.d.ts.map +1 -0
- package/dist/patterns/remove/vi.d.ts +11 -0
- package/dist/patterns/remove/vi.d.ts.map +1 -0
- package/dist/patterns/remove/zh.d.ts +12 -0
- package/dist/patterns/remove/zh.d.ts.map +1 -0
- package/dist/patterns/set/ar.d.ts +12 -0
- package/dist/patterns/set/ar.d.ts.map +1 -0
- package/dist/patterns/set/bn.d.ts +8 -0
- package/dist/patterns/set/bn.d.ts.map +1 -0
- package/dist/patterns/set/de.d.ts +12 -0
- package/dist/patterns/set/de.d.ts.map +1 -0
- package/dist/patterns/set/es.d.ts +12 -0
- package/dist/patterns/set/es.d.ts.map +1 -0
- package/dist/patterns/set/fr.d.ts +12 -0
- package/dist/patterns/set/fr.d.ts.map +1 -0
- package/dist/patterns/set/hi.d.ts +8 -0
- package/dist/patterns/set/hi.d.ts.map +1 -0
- package/dist/patterns/set/id.d.ts +12 -0
- package/dist/patterns/set/id.d.ts.map +1 -0
- package/dist/patterns/set/index.d.ts +35 -0
- package/dist/patterns/set/index.d.ts.map +1 -0
- package/dist/patterns/set/it.d.ts +11 -0
- package/dist/patterns/set/it.d.ts.map +1 -0
- package/dist/patterns/set/ja.d.ts +12 -0
- package/dist/patterns/set/ja.d.ts.map +1 -0
- package/dist/patterns/set/ko.d.ts +12 -0
- package/dist/patterns/set/ko.d.ts.map +1 -0
- package/dist/patterns/set/pl.d.ts +12 -0
- package/dist/patterns/set/pl.d.ts.map +1 -0
- package/dist/patterns/set/pt.d.ts +12 -0
- package/dist/patterns/set/pt.d.ts.map +1 -0
- package/dist/patterns/set/ru.d.ts +12 -0
- package/dist/patterns/set/ru.d.ts.map +1 -0
- package/dist/patterns/set/th.d.ts +8 -0
- package/dist/patterns/set/th.d.ts.map +1 -0
- package/dist/patterns/set/tr.d.ts +12 -0
- package/dist/patterns/set/tr.d.ts.map +1 -0
- package/dist/patterns/set/uk.d.ts +12 -0
- package/dist/patterns/set/uk.d.ts.map +1 -0
- package/dist/patterns/set/vi.d.ts +11 -0
- package/dist/patterns/set/vi.d.ts.map +1 -0
- package/dist/patterns/set/zh.d.ts +12 -0
- package/dist/patterns/set/zh.d.ts.map +1 -0
- package/dist/patterns/show/ar.d.ts +12 -0
- package/dist/patterns/show/ar.d.ts.map +1 -0
- package/dist/patterns/show/bn.d.ts +8 -0
- package/dist/patterns/show/bn.d.ts.map +1 -0
- package/dist/patterns/show/de.d.ts +12 -0
- package/dist/patterns/show/de.d.ts.map +1 -0
- package/dist/patterns/show/fr.d.ts +12 -0
- package/dist/patterns/show/fr.d.ts.map +1 -0
- package/dist/patterns/show/hi.d.ts +8 -0
- package/dist/patterns/show/hi.d.ts.map +1 -0
- package/dist/patterns/show/index.d.ts +32 -0
- package/dist/patterns/show/index.d.ts.map +1 -0
- package/dist/patterns/show/it.d.ts +11 -0
- package/dist/patterns/show/it.d.ts.map +1 -0
- package/dist/patterns/show/ja.d.ts +12 -0
- package/dist/patterns/show/ja.d.ts.map +1 -0
- package/dist/patterns/show/ko.d.ts +12 -0
- package/dist/patterns/show/ko.d.ts.map +1 -0
- package/dist/patterns/show/pl.d.ts +12 -0
- package/dist/patterns/show/pl.d.ts.map +1 -0
- package/dist/patterns/show/ru.d.ts +12 -0
- package/dist/patterns/show/ru.d.ts.map +1 -0
- package/dist/patterns/show/th.d.ts +8 -0
- package/dist/patterns/show/th.d.ts.map +1 -0
- package/dist/patterns/show/tr.d.ts +12 -0
- package/dist/patterns/show/tr.d.ts.map +1 -0
- package/dist/patterns/show/uk.d.ts +12 -0
- package/dist/patterns/show/uk.d.ts.map +1 -0
- package/dist/patterns/show/vi.d.ts +11 -0
- package/dist/patterns/show/vi.d.ts.map +1 -0
- package/dist/patterns/show/zh.d.ts +12 -0
- package/dist/patterns/show/zh.d.ts.map +1 -0
- package/dist/patterns/take/ar.d.ts +12 -0
- package/dist/patterns/take/ar.d.ts.map +1 -0
- package/dist/patterns/take/index.d.ts +18 -0
- package/dist/patterns/take/index.d.ts.map +1 -0
- package/dist/patterns/toggle/ar.d.ts +12 -0
- package/dist/patterns/toggle/ar.d.ts.map +1 -0
- package/dist/patterns/toggle/bn.d.ts +8 -0
- package/dist/patterns/toggle/bn.d.ts.map +1 -0
- package/dist/patterns/toggle/en.d.ts +11 -0
- package/dist/patterns/toggle/en.d.ts.map +1 -0
- package/dist/patterns/toggle/es.d.ts +11 -0
- package/dist/patterns/toggle/es.d.ts.map +1 -0
- package/dist/patterns/toggle/hi.d.ts +9 -0
- package/dist/patterns/toggle/hi.d.ts.map +1 -0
- package/dist/patterns/toggle/index.d.ts +33 -0
- package/dist/patterns/toggle/index.d.ts.map +1 -0
- package/dist/patterns/toggle/it.d.ts +11 -0
- package/dist/patterns/toggle/it.d.ts.map +1 -0
- package/dist/patterns/toggle/ja.d.ts +12 -0
- package/dist/patterns/toggle/ja.d.ts.map +1 -0
- package/dist/patterns/toggle/ko.d.ts +12 -0
- package/dist/patterns/toggle/ko.d.ts.map +1 -0
- package/dist/patterns/toggle/pl.d.ts +12 -0
- package/dist/patterns/toggle/pl.d.ts.map +1 -0
- package/dist/patterns/toggle/qu.d.ts +9 -0
- package/dist/patterns/toggle/qu.d.ts.map +1 -0
- package/dist/patterns/toggle/ru.d.ts +12 -0
- package/dist/patterns/toggle/ru.d.ts.map +1 -0
- package/dist/patterns/toggle/th.d.ts +9 -0
- package/dist/patterns/toggle/th.d.ts.map +1 -0
- package/dist/patterns/toggle/tr.d.ts +12 -0
- package/dist/patterns/toggle/tr.d.ts.map +1 -0
- package/dist/patterns/toggle/uk.d.ts +12 -0
- package/dist/patterns/toggle/uk.d.ts.map +1 -0
- package/dist/patterns/toggle/vi.d.ts +11 -0
- package/dist/patterns/toggle/vi.d.ts.map +1 -0
- package/dist/patterns/toggle/zh.d.ts +11 -0
- package/dist/patterns/toggle/zh.d.ts.map +1 -0
- package/dist/public-api.d.ts +190 -0
- package/dist/public-api.d.ts.map +1 -0
- package/dist/registry.d.ts +225 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/tokenizers/arabic.d.ts +67 -0
- package/dist/tokenizers/arabic.d.ts.map +1 -0
- package/dist/tokenizers/base-tokenizer.d.ts +240 -0
- package/dist/tokenizers/base-tokenizer.d.ts.map +1 -0
- package/dist/tokenizers/base.d.ts +14 -0
- package/dist/tokenizers/base.d.ts.map +1 -0
- package/dist/tokenizers/bengali.d.ts +22 -0
- package/dist/tokenizers/bengali.d.ts.map +1 -0
- package/dist/tokenizers/char-classifiers.d.ts +56 -0
- package/dist/tokenizers/char-classifiers.d.ts.map +1 -0
- package/dist/tokenizers/chinese.d.ts +47 -0
- package/dist/tokenizers/chinese.d.ts.map +1 -0
- package/dist/tokenizers/english.d.ts +34 -0
- package/dist/tokenizers/english.d.ts.map +1 -0
- package/dist/tokenizers/extractors.d.ts +61 -0
- package/dist/tokenizers/extractors.d.ts.map +1 -0
- package/dist/tokenizers/french.d.ts +26 -0
- package/dist/tokenizers/french.d.ts.map +1 -0
- package/dist/tokenizers/german.d.ts +27 -0
- package/dist/tokenizers/german.d.ts.map +1 -0
- package/dist/tokenizers/he.d.ts +58 -0
- package/dist/tokenizers/he.d.ts.map +1 -0
- package/dist/tokenizers/hindi.d.ts +25 -0
- package/dist/tokenizers/hindi.d.ts.map +1 -0
- package/dist/tokenizers/index.d.ts +64 -0
- package/dist/tokenizers/index.d.ts.map +1 -0
- package/dist/tokenizers/indonesian.d.ts +24 -0
- package/dist/tokenizers/indonesian.d.ts.map +1 -0
- package/dist/tokenizers/italian.d.ts +41 -0
- package/dist/tokenizers/italian.d.ts.map +1 -0
- package/dist/tokenizers/japanese.d.ts +42 -0
- package/dist/tokenizers/japanese.d.ts.map +1 -0
- package/dist/tokenizers/korean.d.ts +47 -0
- package/dist/tokenizers/korean.d.ts.map +1 -0
- package/dist/tokenizers/morphology/arabic-normalizer.d.ts +37 -0
- package/dist/tokenizers/morphology/arabic-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/french-normalizer.d.ts +46 -0
- package/dist/tokenizers/morphology/french-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/german-normalizer.d.ts +55 -0
- package/dist/tokenizers/morphology/german-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/index.d.ts +20 -0
- package/dist/tokenizers/morphology/index.d.ts.map +1 -0
- package/dist/tokenizers/morphology/italian-normalizer.d.ts +52 -0
- package/dist/tokenizers/morphology/italian-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/japanese-normalizer.d.ts +43 -0
- package/dist/tokenizers/morphology/japanese-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/korean-normalizer.d.ts +45 -0
- package/dist/tokenizers/morphology/korean-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/polish-normalizer.d.ts +61 -0
- package/dist/tokenizers/morphology/polish-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/portuguese-normalizer.d.ts +51 -0
- package/dist/tokenizers/morphology/portuguese-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/russian-normalizer.d.ts +72 -0
- package/dist/tokenizers/morphology/russian-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/spanish-normalizer.d.ts +49 -0
- package/dist/tokenizers/morphology/spanish-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/turkish-normalizer.d.ts +52 -0
- package/dist/tokenizers/morphology/turkish-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/types.d.ts +110 -0
- package/dist/tokenizers/morphology/types.d.ts.map +1 -0
- package/dist/tokenizers/morphology/ukrainian-normalizer.d.ts +76 -0
- package/dist/tokenizers/morphology/ukrainian-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/ms.d.ts +22 -0
- package/dist/tokenizers/ms.d.ts.map +1 -0
- package/dist/tokenizers/polish.d.ts +25 -0
- package/dist/tokenizers/polish.d.ts.map +1 -0
- package/dist/tokenizers/portuguese.d.ts +26 -0
- package/dist/tokenizers/portuguese.d.ts.map +1 -0
- package/dist/tokenizers/quechua.d.ts +36 -0
- package/dist/tokenizers/quechua.d.ts.map +1 -0
- package/dist/tokenizers/russian.d.ts +25 -0
- package/dist/tokenizers/russian.d.ts.map +1 -0
- package/dist/tokenizers/spanish.d.ts +41 -0
- package/dist/tokenizers/spanish.d.ts.map +1 -0
- package/dist/tokenizers/swahili.d.ts +24 -0
- package/dist/tokenizers/swahili.d.ts.map +1 -0
- package/dist/tokenizers/thai.d.ts +24 -0
- package/dist/tokenizers/thai.d.ts.map +1 -0
- package/dist/tokenizers/tl.d.ts +22 -0
- package/dist/tokenizers/tl.d.ts.map +1 -0
- package/dist/tokenizers/token-utils.d.ts +97 -0
- package/dist/tokenizers/token-utils.d.ts.map +1 -0
- package/dist/tokenizers/turkish.d.ts +42 -0
- package/dist/tokenizers/turkish.d.ts.map +1 -0
- package/dist/tokenizers/ukrainian.d.ts +25 -0
- package/dist/tokenizers/ukrainian.d.ts.map +1 -0
- package/dist/tokenizers/vietnamese.d.ts +47 -0
- package/dist/tokenizers/vietnamese.d.ts.map +1 -0
- package/dist/types/grammar-types.d.ts +224 -0
- package/dist/types/grammar-types.d.ts.map +1 -0
- package/dist/types/unified-profile.d.ts +167 -0
- package/dist/types/unified-profile.d.ts.map +1 -0
- package/dist/types.d.ts +401 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/confidence-calculator.d.ts +43 -0
- package/dist/utils/confidence-calculator.d.ts.map +1 -0
- package/dist/validators/command-validator.d.ts +83 -0
- package/dist/validators/command-validator.d.ts.map +1 -0
- package/dist/validators/index.d.ts +7 -0
- package/dist/validators/index.d.ts.map +1 -0
- package/package.json +86 -6
- package/src/ast-builder/command-mappers.ts +9 -1
- package/src/ast-builder/expression-parser/parser.ts +13 -2
- package/src/ast-builder/index.ts +20 -6
- package/src/browser-bn.ts +162 -0
- package/src/browser-east-asian.ts +1 -1
- package/src/browser-hi.ts +162 -0
- package/src/browser-it.ts +162 -0
- package/src/browser-ms.ts +162 -0
- package/src/browser-pl.ts +162 -0
- package/src/browser-priority.ts +1 -1
- package/src/browser-ru.ts +162 -0
- package/src/browser-th.ts +162 -0
- package/src/browser-tl.ts +162 -0
- package/src/browser-uk.ts +162 -0
- package/src/browser-vi.ts +162 -0
- package/src/browser-western.ts +1 -1
- package/src/core-bridge.ts +43 -16
- package/src/core.ts +13 -0
- package/src/explicit/parser.ts +4 -2
- package/src/explicit/renderer.ts +1 -1
- package/src/generators/command-schemas.ts +214 -2
- package/src/generators/event-handlers-sov.ts +686 -0
- package/src/generators/event-handlers-vso.ts +489 -0
- package/src/generators/pattern-generator.ts +93 -736
- package/src/generators/profiles/arabic.ts +11 -1
- package/src/generators/profiles/bengali.ts +6 -0
- package/src/generators/profiles/chinese.ts +6 -0
- package/src/generators/profiles/english.ts +6 -0
- package/src/generators/profiles/french.ts +6 -0
- package/src/generators/profiles/german.ts +6 -0
- package/src/generators/profiles/hebrew.ts +6 -0
- package/src/generators/profiles/hindi.ts +6 -0
- package/src/generators/profiles/indonesian.ts +6 -0
- package/src/generators/profiles/italian.ts +6 -0
- package/src/generators/profiles/japanese.ts +6 -0
- package/src/generators/profiles/korean.ts +6 -0
- package/src/generators/profiles/ms.ts +6 -0
- package/src/generators/profiles/polish.ts +6 -0
- package/src/generators/profiles/portuguese.ts +6 -0
- package/src/generators/profiles/quechua.ts +35 -13
- package/src/generators/profiles/russian.ts +6 -0
- package/src/generators/profiles/spanish.ts +6 -0
- package/src/generators/profiles/spanishMexico.ts +6 -0
- package/src/generators/profiles/swahili.ts +14 -3
- package/src/generators/profiles/thai.ts +6 -0
- package/src/generators/profiles/tl.ts +22 -9
- package/src/generators/profiles/turkish.ts +7 -1
- package/src/generators/profiles/ukrainian.ts +6 -0
- package/src/generators/profiles/vietnamese.ts +6 -0
- package/src/generators/schema-validator.ts +8 -3
- package/src/index.ts +54 -0
- package/src/interchange/from-semantic.ts +440 -0
- package/src/interchange/index.ts +26 -0
- package/src/interchange/types.ts +186 -0
- package/src/parser/pattern-matcher.ts +65 -15
- package/src/parser/semantic-parser.ts +850 -8
- package/src/patterns/add/index.ts +1 -9
- package/src/patterns/builders.ts +2 -2
- package/src/patterns/decrement/index.ts +1 -9
- package/src/patterns/event-handler/shared.ts +30 -0
- package/src/patterns/event-handler/tl.ts +39 -19
- package/src/patterns/get/index.ts +1 -9
- package/src/patterns/hide/index.ts +1 -9
- package/src/patterns/increment/index.ts +1 -9
- package/src/patterns/put/index.ts +1 -9
- package/src/patterns/registry.ts +2 -2
- package/src/patterns/remove/index.ts +1 -9
- package/src/patterns/set/index.ts +1 -9
- package/src/patterns/show/index.ts +1 -9
- package/src/patterns/toggle/index.ts +1 -9
- package/src/tokenizers/arabic.ts +14 -1
- package/src/tokenizers/base-tokenizer.ts +644 -0
- package/src/tokenizers/base.ts +39 -1297
- package/src/tokenizers/bengali.ts +37 -10
- package/src/tokenizers/char-classifiers.ts +79 -0
- package/src/tokenizers/chinese.ts +7 -0
- package/src/tokenizers/english.ts +8 -1
- package/src/tokenizers/extractors.ts +452 -0
- package/src/tokenizers/french.ts +16 -1
- package/src/tokenizers/german.ts +16 -1
- package/src/tokenizers/he.ts +14 -1
- package/src/tokenizers/hindi.ts +14 -1
- package/src/tokenizers/indonesian.ts +14 -1
- package/src/tokenizers/italian.ts +14 -1
- package/src/tokenizers/japanese.ts +14 -1
- package/src/tokenizers/korean.ts +19 -1
- package/src/tokenizers/morphology/index.ts +17 -0
- package/src/tokenizers/morphology/polish-normalizer.ts +147 -131
- package/src/tokenizers/morphology/russian-normalizer.ts +397 -0
- package/src/tokenizers/morphology/ukrainian-normalizer.ts +366 -0
- package/src/tokenizers/ms.ts +14 -1
- package/src/tokenizers/polish.ts +16 -1
- package/src/tokenizers/portuguese.ts +16 -1
- package/src/tokenizers/quechua.ts +30 -1
- package/src/tokenizers/russian.ts +16 -1
- package/src/tokenizers/spanish.ts +14 -1
- package/src/tokenizers/swahili.ts +14 -1
- package/src/tokenizers/thai.ts +14 -1
- package/src/tokenizers/tl.ts +14 -1
- package/src/tokenizers/token-utils.ts +205 -0
- package/src/tokenizers/turkish.ts +21 -2
- package/src/tokenizers/ukrainian.ts +16 -1
- package/src/tokenizers/vietnamese.ts +7 -0
- package/src/types.ts +41 -2
- package/src/validators/command-validator.ts +17 -40
- package/dist/index.d.cts +0 -3470
- package/dist/types-BY3Id07j.d.ts +0 -615
- package/src/bridge.ts +0 -275
- package/src/generators/event-handler-generator.ts +0 -115
- package/src/patterns/add/ms.ts +0 -30
- package/src/patterns/add/tl.ts +0 -30
- package/src/patterns/decrement/ms.ts +0 -30
- package/src/patterns/decrement/tl.ts +0 -30
- package/src/patterns/get/ms.ts +0 -30
- package/src/patterns/get/tl.ts +0 -30
- package/src/patterns/hide/ms.ts +0 -30
- package/src/patterns/hide/tl.ts +0 -30
- package/src/patterns/increment/ms.ts +0 -30
- package/src/patterns/increment/tl.ts +0 -30
- package/src/patterns/put/ms.ts +0 -30
- package/src/patterns/put/tl.ts +0 -30
- package/src/patterns/remove/ms.ts +0 -30
- package/src/patterns/remove/tl.ts +0 -30
- package/src/patterns/set/ms.ts +0 -30
- package/src/patterns/set/tl.ts +0 -30
- package/src/patterns/show/ms.ts +0 -30
- package/src/patterns/show/tl.ts +0 -30
- package/src/patterns/toggle/ms.ts +0 -30
- package/src/patterns/toggle/tl.ts +0 -30
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var LokaScriptSemanticCore=(()=>{var ue=Object.defineProperty;var Ye=Object.getOwnPropertyDescriptor;var Je=Object.getOwnPropertyNames;var et=Object.prototype.hasOwnProperty;var tt=(n,e)=>{for(var t in e)ue(n,t,{get:e[t],enumerable:!0})},rt=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Je(e))!et.call(n,o)&&o!==t&&ue(n,o,{get:()=>e[o],enumerable:!(r=Ye(e,o))||r.enumerable});return n};var nt=n=>rt(ue({},"__esModule",{value:!0}),n);var fr={};tt(fr,{ASTBuilder:()=>J,DEFAULT_CONFIDENCE_THRESHOLD:()=>we,HIGH_CONFIDENCE_THRESHOLD:()=>Ze,SemanticAnalyzerImpl:()=>ee,VERSION:()=>ur,buildAST:()=>Ge,canParse:()=>Ee,createCommandNode:()=>O,createEventHandler:()=>U,createLiteral:()=>S,createPropertyPath:()=>W,createReference:()=>R,createSelector:()=>z,createSemanticAnalyzer:()=>Xe,fromExplicit:()=>ve,getCommandMapper:()=>Y,getPatternsForLanguage:()=>C,getProfile:()=>ge,getRegisteredLanguages:()=>K,getTokenizer:()=>fe,isExplicitSyntax:()=>D,isLanguageRegistered:()=>j,isLanguageSupported:()=>Me,loadLanguageFromUrl:()=>pr,parse:()=>F,parseAny:()=>be,parseExplicit:()=>_,registerCommandMapper:()=>ke,registerLanguage:()=>re,registerLanguageModule:()=>mr,registerPatterns:()=>q,render:()=>Z,renderExplicit:()=>Q,setPatternGenerator:()=>Le,shouldUseSemanticResult:()=>Qe,toExplicit:()=>Te,tokenize:()=>dr,tryGetProfile:()=>A});var k=new Map,w=new Map,$=new Map;var de=null;function Re(n,e){let t={...n};for(let r of Object.keys(e)){let o=e[r],i=n[r];o!==void 0&&(typeof o=="object"&&o!==null&&!Array.isArray(o)&&typeof i=="object"&&i!==null&&!Array.isArray(i)?t[r]=Re(i,o):t[r]=o)}return t}function ot(n,e){return Re(n,e)}function me(n){if(!n.extends)return n;let e=w.get(n.extends);if(!e)return console.warn(`[Registry] Profile '${n.code}' extends '${n.extends}' but base is not registered. Make sure to import the base language before the variant.`),n;let t=me(e);return ot(t,n)}function re(n,e,t){k.set(n,e),w.set(n,t),$.delete(n)}function Le(n){de=n}var pe=new Map;function q(n,e){pe.set(n,e),$.delete(n)}function P(n){return n.split("-")[0]}function M(n){return n.includes("-")}function fe(n){let e=k.get(n);if(!e&&M(n)){let t=P(n);e=k.get(t)}if(!e){let t=Array.from(k.keys()).join(", ");throw new Error(`Language '${n}' is not registered. Registered languages: ${t||"none"}. Import the language module first: import '@lokascript/semantic/languages/${n}';`)}return e}function ge(n){let e=w.get(n);if(!e&&M(n)){let t=P(n);e=w.get(t)}if(!e){let t=Array.from(w.keys()).join(", ");throw new Error(`Language profile '${n}' is not registered. Registered languages: ${t||"none"}. Import the language module first: import '@lokascript/semantic/languages/${n}';`)}return me(e)}function Pe(n){let e=k.get(n);return!e&&M(n)&&(e=k.get(P(n))),e}function A(n){let e=w.get(n);return!e&&M(n)&&(e=w.get(P(n))),e?me(e):void 0}function K(){return Array.from(k.keys())}function j(n){if(k.has(n)&&w.has(n))return!0;if(M(n)){let e=P(n);return k.has(e)&&w.has(e)}return!1}function Me(n){return k.has(n)?!0:M(n)?k.has(P(n)):!1}function Ae(n,e){return fe(e).tokenize(n)}function C(n){let e=$.get(n);if(!e&&M(n)&&(e=$.get(P(n))),e)return e;let t=pe.get(n);if(!t&&M(n)&&(t=pe.get(P(n))),t)return $.set(n,t),t;if(!de)throw new Error(`No patterns registered for language '${n}'. Either import the language module or set a pattern generator.`);let r=ge(n),o=de(r);return $.set(n,o),o}function Ve(n,e){return C(n).filter(t=>t.command===e).sort((t,r)=>r.priority-t.priority)}var H=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 T(n,e){return{start:n,end:e}}function v(n,e,t,r){if(typeof r=="string")return{value:n,kind:e,position:t,normalized:r};if(r){let{normalized:o,stem:i,stemConfidence:a}=r,s={value:n,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:n,kind:e,position:t}}function G(n){return/\s/.test(n)}function ze(n){return n==="#"||n==="."||n==="["||n==="@"||n==="*"||n==="<"}function Oe(n){return n==='"'||n==="'"||n==="`"||n==="\u300C"||n==="\u300D"}function V(n){return/\d/.test(n)}function Ie(n){return/[a-zA-Z]/.test(n)}function b(n){return/[a-zA-Z0-9_-]/.test(n)}function _e(n,e){if(e>=n.length)return null;let t=n[e];if(!ze(t))return null;let r=e,o="";if(t==="#"||t==="."){for(o+=n[r++];r<n.length&&b(n[r]);)o+=n[r++];if(o.length<=1)return null;if(r<n.length&&n[r]==="."&&t==="#"){let a=r+1;for(;a<n.length&&b(n[a]);)a++;if(a<n.length&&n[a]==="(")return o}}else if(t==="["){let i=1,a=!1,s=null,u=!1;for(o+=n[r++];r<n.length&&i>0;){let c=n[r];o+=c,u?u=!1:c==="\\"?u=!0:a?c===s&&(a=!1,s=null):c==='"'||c==="'"||c==="`"?(a=!0,s=c):c==="["?i++:c==="]"&&i--,r++}if(i!==0)return null}else if(t==="@"){for(o+=n[r++];r<n.length&&b(n[r]);)o+=n[r++];if(o.length<=1)return null}else if(t==="*"){for(o+=n[r++];r<n.length&&b(n[r]);)o+=n[r++];if(o.length<=1)return null}else if(t==="<"){if(o+=n[r++],r>=n.length||!Ie(n[r]))return null;for(;r<n.length&&b(n[r]);)o+=n[r++];for(;r<n.length;){let i=n[r];if(i==="."){if(o+=n[r++],r>=n.length||!b(n[r]))return null;for(;r<n.length&&b(n[r]);)o+=n[r++]}else if(i==="#"){if(o+=n[r++],r>=n.length||!b(n[r]))return null;for(;r<n.length&&b(n[r]);)o+=n[r++]}else if(i==="["){let a=1,s=!1,u=null,c=!1;for(o+=n[r++];r<n.length&&a>0;){let m=n[r];o+=m,c?c=!1:m==="\\"?c=!0:s?m===u&&(s=!1,u=null):m==='"'||m==="'"||m==="`"?(s=!0,u=m):m==="["?a++:m==="]"&&a--,r++}if(a!==0)return null}else break}for(;r<n.length&&G(n[r]);)o+=n[r++];if(r<n.length&&n[r]==="/")for(o+=n[r++];r<n.length&&G(n[r]);)o+=n[r++];if(r>=n.length||n[r]!==">")return null;o+=n[r++]}return o||null}function it(n,e){if(e>=n.length||n[e]!=="'"||e+1>=n.length||n[e+1].toLowerCase()!=="s")return!1;if(e+2>=n.length)return!0;let r=n[e+2];return G(r)||r==="*"||!b(r)}function Be(n,e){if(e>=n.length)return null;let t=n[e];if(!Oe(t)||t==="'"&&it(n,e))return null;let o={'"':'"',"'":"'","`":"`","\u300C":"\u300D"}[t];if(!o)return null;let i=e+1,a=t,s=!1;for(;i<n.length;){let u=n[i];if(a+=u,s)s=!1;else if(u==="\\")s=!0;else if(u===o)return a;i++}return a}function $e(n,e){if(e>=n.length)return!1;let t=n[e],r=n[e+1]||"",o=n[e+2]||"";if(t==="/"&&r!=="/"&&/[a-zA-Z0-9._-]/.test(r)||t==="/"&&r==="/"&&/[a-zA-Z]/.test(o)||t==="."&&(r==="/"||r==="."&&o==="/"))return!0;let i=n.slice(e,e+8).toLowerCase();return!!(i.startsWith("http://")||i.startsWith("https://"))}function Ke(n,e){if(!$e(n,e))return null;let t=e,r="",o=/[a-zA-Z0-9/:._\-?&=%@+~!$'()*,;[\]]/;for(;t<n.length;){let i=n[t];if(i==="#"){if(r.length>0&&/[a-zA-Z0-9/.]$/.test(r))for(r+=i,t++;t<n.length&&/[a-zA-Z0-9_-]/.test(n[t]);)r+=n[t++];break}if(o.test(i))r+=i,t++;else break}return r.length<2?null:r}function je(n,e){if(e>=n.length)return null;let t=n[e];if(!V(t)&&t!=="-"&&t!=="+")return null;let r=e,o="";if((n[r]==="-"||n[r]==="+")&&(o+=n[r++]),r>=n.length||!V(n[r]))return null;for(;r<n.length&&V(n[r]);)o+=n[r++];if(r<n.length&&n[r]===".")for(o+=n[r++];r<n.length&&V(n[r]);)o+=n[r++];return r<n.length&&(n.slice(r,r+2)==="ms"?o+="ms":(n[r]==="s"||n[r]==="m"||n[r]==="h")&&(o+=n[r])),o}var ne=class ne{constructor(){this.profileKeywords=[];this.profileKeywordMap=new Map}initializeKeywordsFromProfile(e,t=[]){let r=new Map;if(e.keywords){for(let[o,i]of Object.entries(e.keywords))if(r.set(i.primary,{native:i.primary,normalized:i.normalized||o}),i.alternatives)for(let a of i.alternatives)r.set(a,{native:a,normalized:i.normalized||o})}if(e.references)for(let[o,i]of Object.entries(e.references))r.set(i,{native:i,normalized:o});if(e.roleMarkers){for(let[o,i]of Object.entries(e.roleMarkers))if(i.primary&&r.set(i.primary,{native:i.primary,normalized:o}),i.alternatives)for(let a of i.alternatives)r.set(a,{native:a,normalized:o})}for(let o of t)r.set(o.native,o);this.profileKeywords=Array.from(r.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 r of this.profileKeywords)if(e.slice(t).startsWith(r.native))return v(r.native,"keyword",T(t,t+r.native.length),r.normalized);return null}isKeywordStart(e,t){let r=e.slice(t);return this.profileKeywords.some(o=>r.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,r){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 v(e,"keyword",T(t,r),a)}trySelector(e,t){let r=_e(e,t);return r?v(r,"selector",T(t,t+r.length)):null}tryEventModifier(e,t){if(e[t]!==".")return null;let r=e.slice(t).match(/^\.(?:once|debounce|throttle|queue)(?:\(([^)]+)\))?(?:\s|$|\.)/);if(!r)return null;let o=r[0].replace(/(\s|\.)$/,""),i=o.slice(1).split("(")[0],a=r[1];return{...v(o,"event-modifier",T(t,t+o.length)),metadata:{modifierName:i,value:a?i==="queue"?a:parseInt(a,10):void 0}}}tryString(e,t){let r=Be(e,t);return r?v(r,"literal",T(t,t+r.length)):null}tryNumber(e,t){let r=je(e,t);return r?v(r,"literal",T(t,t+r.length)):null}tryMatchTimeUnit(e,t,r,o=!1){let i=t;if(o)for(;i<e.length&&G(e[i]);)i++;let a=e.slice(i);for(let s of r){let u=a.slice(0,s.length);if(s.caseInsensitive?u.toLowerCase()===s.pattern.toLowerCase():u===s.pattern){if(s.notFollowedBy&&(a[s.length]||"")===s.notFollowedBy)continue;if(s.checkBoundary){let m=a[s.length]||"";if(b(m))continue}return{suffix:s.suffix,endPos:i+s.length}}}return null}parseBaseNumber(e,t,r=!0){let o=t,i="";if(r&&(e[o]==="-"||e[o]==="+")&&(i+=e[o++]),o>=e.length||!V(e[o]))return null;for(;o<e.length&&V(e[o]);)i+=e[o++];if(o<e.length&&e[o]===".")for(i+=e[o++];o<e.length&&V(e[o]);)i+=e[o++];return!i||i==="-"||i==="+"?null:{number:i,endPos:o}}tryNumberWithTimeUnits(e,t,r,o={}){let{allowSign:i=!0,skipWhitespace:a=!1}=o,s=this.parseBaseNumber(e,t,i);if(!s)return null;let{number:u,endPos:c}=s,m=[...r,...ne.STANDARD_TIME_UNITS],x=this.tryMatchTimeUnit(e,c,m,a);return x&&(u+=x.suffix,c=x.endPos),v(u,"literal",T(t,c))}tryUrl(e,t){let r=Ke(e,t);return r?v(r,"url",T(t,t+r.length)):null}tryVariableRef(e,t){if(e[t]!==":"||t+1>=e.length||!b(e[t+1]))return null;let r=t+1;for(;r<e.length&&b(e[r]);)r++;let o=e.slice(t,r);return v(o,"identifier",T(t,r))}tryOperator(e,t){let r=e.slice(t,t+2);if(["==","!=","<=",">=","&&","||","->"].includes(r))return v(r,"operator",T(t,t+2));let o=e[t];return["<",">","!","+","-","*","/","="].includes(o)?v(o,"operator",T(t,t+1)):["(",")","{","}",",",";",":"].includes(o)?v(o,"punctuation",T(t,t+1)):null}tryMultiCharParticle(e,t,r){for(let o of r)if(e.slice(t,t+o.length)===o)return v(o,"particle",T(t,t+o.length));return null}};ne.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 he=ne;function We(n){return Pe(n)}function oe(n,e){return Ae(n,e)}function ie(){return K()}function z(n){let e="complex";return n.startsWith("#")&&!n.includes(" ")?e="id":n.startsWith(".")&&!n.includes(" ")?e="class":n.startsWith("[")&&n.endsWith("]")?e="attribute":/^[a-z][a-z0-9]*$/i.test(n)&&(e="element"),{type:"selector",value:n,selectorKind:e}}function S(n,e){let t={type:"literal",value:n};return e!==void 0?{type:"literal",value:n,dataType:e}:t}function R(n){return{type:"reference",value:n}}function W(n,e){return{type:"property-path",object:n,property:e}}function O(n,e,t){let r={kind:"command",action:n,roles:new Map(Object.entries(e))};return t!==void 0?{...r,metadata:t}:r}function U(n,e,t,r,o){let i=new Map;i.set("event",n);let a={kind:"event-handler",action:"on",roles:i,body:e};return t!==void 0&&(a.eventModifiers=t),r!==void 0&&(a.metadata=r),o!==void 0&&o.length>0&&(a.parameterNames=o),a}function Ue(n,e="then",t){let r={kind:"compound",action:"compound",roles:new Map,statements:n,chainType:e};return t!==void 0&&(r.metadata=t),r}function ye(n,e){return!e||e.length===0||e.includes(n)||e.includes("expression")?!0:n==="property-path"?e.some(t=>["selector","reference","expression"].includes(t)):!1}function De(n,e){return n.possessive?.keywords?.[e]}var L=class L{constructor(){this.stemMatchCount=0;this.totalKeywordMatches=0}matchPattern(e,t){let r=e.mark(),o=new Map;if(this.currentProfile=A(t.language),this.stemMatchCount=0,this.totalKeywordMatches=0,!this.matchTokenSequence(e,t.template.tokens,o))return e.reset(r),null;let a=this.calculateConfidence(t,o);return this.applyExtractionRules(t,o),{pattern:t,captured:o,consumedTokens:e.position()-r.position,confidence:a}}matchBest(e,t){let r=[];for(let i of t){let a=e.mark(),s=this.matchPattern(e,i);s&&r.push(s),e.reset(a)}if(r.length===0)return null;r.sort((i,a)=>{let s=a.pattern.priority-i.pattern.priority;return s!==0?s:a.confidence-i.confidence});let o=r[0];return this.matchPattern(e,o.pattern),o}matchTokenSequence(e,t,r){let o=t[0],i=o?.type==="literal"&&(o.value==="and"||o.value==="then"||o.alternatives?.includes("and")||o.alternatives?.includes("then"));if(this.currentProfile?.code==="ar"&&!i)for(;e.peek()?.kind==="conjunction";)e.advance();for(let a of t)if(!this.matchPatternToken(e,a,r)){if(this.isOptional(a))continue;return!1}return!0}matchPatternToken(e,t,r){switch(t.type){case"literal":return this.matchLiteralToken(e,t);case"role":return this.matchRoleToken(e,t,r);case"group":return this.matchGroupToken(e,t,r);default:return!1}}matchLiteralToken(e,t){let r=e.peek();if(!r)return!1;let o=this.getMatchType(r,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(r,i);if(a!=="none")return this.totalKeywordMatches++,a==="stem"&&this.stemMatchCount++,e.advance(),!0}return!1}matchRoleToken(e,t,r){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:(r.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:(r.set(t.role,a),!0);let s=this.tryMatchPossessiveSelectorExpression(e);if(s)return t.expectedTypes&&t.expectedTypes.length>0&&!ye(s.type,t.expectedTypes)?t.optional||!1:(r.set(t.role,s),!0);let u=this.tryMatchPropertyAccessExpression(e);if(u)return t.expectedTypes&&t.expectedTypes.length>0&&!t.expectedTypes.includes(u.type)&&!t.expectedTypes.includes("expression")?t.optional||!1:(r.set(t.role,u),!0);let c=this.tryMatchSelectorPropertyExpression(e);if(c)return t.expectedTypes&&t.expectedTypes.length>0&&!ye(c.type,t.expectedTypes)?t.optional||!1:(r.set(t.role,c),!0);let m=this.tokenToSemanticValue(o);return!m||t.expectedTypes&&t.expectedTypes.length>0&&!t.expectedTypes.includes(m.type)?t.optional||!1:(r.set(t.role,m),e.advance(),!0)}tryMatchPossessiveExpression(e){let t=e.peek();if(!t||!this.currentProfile)return null;let r=(t.normalized||t.value).toLowerCase(),o=De(this.currentProfile,r);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(),W(R(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 r=e.mark();e.advance();let o=e.peek();if(!o||o.kind!=="operator"||o.value!==".")return e.reset(r),null;e.advance();let i=e.peek();if(!i||i.kind!=="identifier")return e.reset(r),null;e.advance();let a=e.peek();if(!a||a.kind!=="punctuation"||a.value!=="(")return e.reset(r),null;e.advance();let s=[];for(;!e.isAtEnd()&&s.length<L.MAX_METHOD_ARGS;){let c=e.peek();if(!c)break;if(c.kind==="punctuation"&&c.value===")"){e.advance();break}if(c.kind==="punctuation"&&c.value===","){e.advance();continue}s.push(c.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 r=e.mark();e.advance();let o=e.peek();if(!o||o.kind!=="operator"||o.value!==".")return e.reset(r),null;e.advance();let i=e.peek();if(!i||i.kind!=="identifier")return e.reset(r),null;e.advance();let a=`${t.value}.${i.value}`,s=1;for(;!e.isAtEnd()&&s<L.MAX_PROPERTY_DEPTH;){let c=e.peek();if(!c||c.kind!=="operator"||c.value!==".")break;e.advance();let m=e.peek();if(!m||m.kind!=="identifier")break;e.advance(),a+=`.${m.value}`,s++}let u=e.peek();if(u&&u.kind==="punctuation"&&u.value==="("){e.advance();let c=[],m=0;for(;!e.isAtEnd()&&c.length<L.MAX_METHOD_ARGS;){let y=e.peek();if(!y)break;if(y.kind==="punctuation"&&y.value===")"){if(m===0){e.advance();break}m--}if(y.kind==="punctuation"&&y.value==="("&&m++,y.kind==="punctuation"&&y.value===","){e.advance();continue}c.push(y.value),e.advance()}return{type:"expression",raw:`${a}(${c.join(", ")})`}}return{type:"expression",raw:a}}tryMatchPossessiveSelectorExpression(e){let t=e.peek();if(!t||t.kind!=="selector")return null;let r=e.mark();e.advance();let o=e.peek();if(!o||o.kind!=="punctuation"||o.value!=="'s")return e.reset(r),null;e.advance();let i=e.peek();return!i||i.kind!=="selector"&&i.kind!=="identifier"?(e.reset(r),null):(e.advance(),W(z(t.value),i.value))}tryMatchSelectorPropertyExpression(e){let t=e.peek();if(!t||t.kind!=="selector"||!t.value.startsWith("#"))return null;let r=e.mark();e.advance();let o=e.peek();if(!o||o.kind!=="selector"||!o.value.startsWith("."))return e.reset(r),null;let i=e.peek(1);i&&i.kind,e.advance();let a=o.value.slice(1);return W(z(t.value),a)}matchGroupToken(e,t,r){let o=e.mark(),i=new Set(r.keys());if(!this.matchTokenSequence(e,t.tokens,r)){e.reset(o);for(let s of r.keys())i.has(s)||r.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 z(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)?R(t):S(e.normalized||e.value);case"identifier":if(e.value.startsWith(":"))return R(e.value);let r=e.value.toLowerCase();return["me","you","it","result","event","target","body"].includes(r)?R(r):{type:"expression",raw:e.value};case"url":return S(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 S(o,"string")}if(e==="true")return S(!0,"boolean");if(e==="false")return S(!1,"boolean");let t=e.match(/^(\d+(?:\.\d+)?)(ms|s|m|h)?$/);if(t){let o=parseFloat(t[1]);return t[2]?S(e,"duration"):S(o,"number")}let r=parseFloat(e);return isNaN(r)?S(e,"string"):S(r,"number")}applyExtractionRules(e,t){for(let[r,o]of Object.entries(e.extraction))!t.has(r)&&o.default&&t.set(r,o.default)}isOptional(e){return e.optional===!0}calculateConfidence(e,t){let r=0,o=0,i=c=>e.extraction?.[c]?.default!==void 0;for(let c of e.template.tokens)if(c.type==="role")o+=1,t.has(c.role)&&(r+=1);else if(c.type==="group"){for(let m of c.tokens)if(m.type==="role"){let x=i(m.role),y=.8;o+=y,t.has(m.role)?r+=y:x&&(r+=y*.6)}}let a=o>0?r/o:1;if(this.stemMatchCount>0&&this.totalKeywordMatches>0){let c=this.stemMatchCount/this.totalKeywordMatches*.15;a=Math.max(.5,a-c)}let s=this.calculateVSOConfidenceBoost(e);a=Math.min(1,a+s);let u=this.arabicPrepositionDisambiguation(e,t);return a=Math.max(0,Math.min(1,a+u)),a}calculateVSOConfidenceBoost(e){if(e.language!=="ar")return 0;let t=e.template.tokens[0];if(!t||t.type!=="literal")return 0;let r=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(r.has(t.value))return .15;if(t.alternatives){for(let o of t.alternatives)if(r.has(o))return .15}return 0}arabicPrepositionDisambiguation(e,t){if(e.language!=="ar")return 0;let r=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 u=a.metadata;if(u&&typeof u.prepositionValue=="string"){let c=u.prepositionValue;s.includes(c)?r+=.1:r-=.1}}return Math.max(-.1,Math.min(.1,r))}skipNoiseWords(e){let t=e.peek();if(!t)return;let r=t.value.toLowerCase();if(L.ENGLISH_NOISE_WORDS.has(r)){let o=e.mark();e.advance();let i=e.peek();if(i&&i.kind==="selector")return;e.reset(o)}r==="class"&&e.advance()}extractEventModifiers(e){let t={},r=!1;for(;!e.isAtEnd();){let o=e.peek();if(!o||o.kind!=="event-modifier")break;let i=o.metadata;if(!i)break;switch(r=!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 r?t:void 0}};L.MAX_PROPERTY_DEPTH=10,L.MAX_METHOD_ARGS=20,L.ENGLISH_NOISE_WORDS=new Set(["the","a","an"]);var X=L,I=new X;var ae=class{render(e,t){if(e.kind==="compound")return this.renderCompound(e,t);let r=Ve(t,e.action);if(r.length===0)return this.renderExplicit(e);let o=this.findBestPattern(e,r);return o?this.renderWithPattern(e,o):this.renderExplicit(e)}renderCompound(e,t){let r=e.statements.map(i=>this.render(i,t)),o=this.getChainWord(e.chainType,t);return r.join(` ${o} `)}getChainWord(e,t){let r=A(t);return r?.keywords?r.keywords[e]?.primary??e:e}renderExplicit(e){if(e.kind==="compound"){let r=e;return r.statements.map(i=>this.renderExplicit(i)).join(` ${r.chainType} `)}let t=[e.action];for(let[r,o]of e.roles)t.push(`${r}:${this.valueToString(o)}`);if(e.kind==="event-handler"){let r=e;if(r.body&&r.body.length>0){let o=r.body.map(i=>this.renderExplicit(i));t.push(`body:${o.join(" ")}`)}}return`[${t.join(" ")}]`}supportedLanguages(){return ie()}findBestPattern(e,t){let r=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 r.sort((o,i)=>i.score-o.score),r.length>0?r[0].pattern:null}renderWithPattern(e,t){let r=[],o=t.language;for(let i of t.template.tokens){let a=this.renderPatternToken(i,e,o);a!==null&&r.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));r.push(a.join(" "))}}return r.join(" ")}renderPatternToken(e,t,r){switch(e.type){case"literal":return e.value;case"role":{let o=t.roles.get(e.role);return o?this.valueToNaturalString(o,r):(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,r);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 r=A(t);return r?.references?r.references[e.value]??e.value:e.value}renderPropertyPath(e,t){let r=A(t),o=e.property,i=e.object.type==="reference"?e.object.value:null;if(r?.possessive?.specialForms&&i){let s=r.possessive.specialForms[i];if(s){let{markerPosition:u,usePossessiveAdjectives:c}=r.possessive;return c&&u==="after-object"?`${o} ${s}`:`${s} ${o}`}}let a=this.valueToNaturalString(e.object,t);if(r?.possessive){let{marker:s,markerPosition:u,usePossessiveAdjectives:c}=r.possessive;if(c&&i&&u==="after-object")return`${o} ${a}`;if(s)switch(u){case"between":return r.usesSpaces?`${a}${s} ${o}`:`${a}${s}${o}`;case"after-object":return`${a}${s} ${o}`;case"before-property":return`${a} ${s} ${o}`}}return t==="en"||!r?.possessive?a==="me"?`my ${o}`:a==="it"?`its ${o}`:`${a}'s ${o}`:`${a} ${o}`}},xe=new ae;function Z(n,e){return xe.render(n,e)}function Q(n){return xe.renderExplicit(n)}function _(n){let e=n.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 r=at(t);if(r.length===0)throw new Error("No command specified in explicit statement");let o=r[0].toLowerCase(),i=new Map;for(let s=1;s<r.length;s++){let u=r[s],c=u.indexOf(":");if(c===-1)throw new Error(`Invalid role format: "${u}". Expected role:value`);let m=u.slice(0,c),x=u.slice(c+1);if(m==="body"&&x.startsWith("[")){let h=ct(u,c+1),d=u.slice(c+1,h+1);i.set(m,{type:"expression",raw:d});continue}let y=st(x);i.set(m,y)}if(o==="on"){let s=i.get("event");if(!s)throw new Error("Event handler requires event role: [on event:click ...]");let u=i.get("body"),c=[];return u&&u.type==="expression"&&c.push(_(u.raw)),i.delete("body"),U(s,c,void 0,{sourceLanguage:"explicit"})}let a={};for(let[s,u]of i)a[s]=u;return O(o,a,{sourceLanguage:"explicit"})}function at(n){let e=[],t="",r=!1,o="",i=0;for(let a=0;a<n.length;a++){let s=n[a];if(r){t+=s,s===o&&n[a-1]!=="\\"&&(r=!1);continue}if(s==='"'||s==="'"){r=!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 st(n){if(n.startsWith("#")||n.startsWith(".")||n.startsWith("[")||n.startsWith("@")||n.startsWith("*"))return z(n);if(n.startsWith('"')||n.startsWith("'")){let t=n.slice(1,-1);return S(t,"string")}if(n==="true")return S(!0,"boolean");if(n==="false")return S(!1,"boolean");if(["me","you","it","result","event","target","body"].includes(n.toLowerCase()))return R(n.toLowerCase());let e=n.match(/^(-?\d+(?:\.\d+)?)(ms|s|m|h)?$/);if(e){let t=parseFloat(e[1]);return e[2]?S(n,"duration"):S(t,"number")}return S(n,"string")}function ct(n,e){let t=0;for(let r=e;r<n.length;r++)if(n[r]==="[")t++;else if(n[r]==="]"&&(t--,t===0))return r;return n.length-1}function D(n){let e=n.trim();return e.startsWith("[")&&e.endsWith("]")}var se=class{parse(e,t){let r=oe(e,t),o=C(t);if(o.length===0)throw new Error(`No patterns available for language: ${t}`);let i=[...o].sort((m,x)=>x.priority-m.priority),a=i.filter(m=>m.command==="on"),s=I.matchBest(r,a);if(s)return this.buildEventHandler(s,r,t);let u=i.filter(m=>m.command!=="on"),c=I.matchBest(r,u);if(c)return this.buildCommand(c,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 ie()}buildCommand(e,t){if(!e)throw new Error("No match to build command from");let r={};for(let[o,i]of e.captured)r[o]=i;return O(e.pattern.command,r,{sourceLanguage:t,patternId:e.pattern.id,confidence:e.confidence})}buildEventHandler(e,t,r){if(!e)throw new Error("No match to build event handler from");let o=e.captured.get("event");if(!o)throw new Error("Event handler pattern matched but no event captured");let i=I.extractEventModifiers(t),a,s=e.captured.get("action");if(s&&s.type==="literal"){let u=s.value,c={};for(let[y,h]of e.captured)y!=="event"&&y!=="action"&&y!=="continues"&&(c[y]=h);let m=O(u,c,{sourceLanguage:r,patternId:e.pattern.id,confidence:e.confidence}),x=e.captured.get("continues");if(x&&x.type==="literal"&&x.value==="then"){let y=C(r).filter(p=>p.command!=="on").sort((p,g)=>g.priority-p.priority),h=C(r).filter(p=>p.id.startsWith("grammar-")&&p.id.includes("-continuation")).sort((p,g)=>g.priority-p.priority),d=this.parseBodyWithGrammarPatterns(t,y,h,r);d.length>0?a=[m,...d]:a=[m]}else a=[m]}else{let u=C(r).filter(c=>c.command!=="on").sort((c,m)=>m.priority-c.priority);a=this.parseBodyWithClauses(t,u,r)}return U(o,a,i,{sourceLanguage:r,patternId:e.pattern.id,confidence:e.confidence})}parseBodyWithClauses(e,t,r){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,r),u=a.kind==="keyword"&&this.isEndKeyword(a.value,r);if(s){if(i.length>0){let c=this.parseClause(i,t,r);o.push(...c),i.length=0}e.advance();continue}if(u){if(i.length>0){let c=this.parseClause(i,t,r);o.push(...c)}e.advance();break}i.push(a),e.advance()}if(i.length>0){let a=this.parseClause(i,t,r);o.push(...a)}return o.length>1?[Ue(o,"then",{sourceLanguage:r})]:o}parseClause(e,t,r){if(e.length===0)return[];let o=new H(e,r),i=[];for(;!o.isAtEnd();){let a=I.matchBest(o,t);a?i.push(this.buildCommand(a,r)):o.advance()}return i}parseBodyWithGrammarPatterns(e,t,r,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(r.length>0){let u=I.matchBest(e,r);if(u){let c=u.pattern.command,m={};for(let[h,d]of u.captured)h!=="event"&&h!=="action"&&h!=="continues"&&(m[h]=d);let x=O(c,m,{sourceLanguage:o,patternId:u.pattern.id});i.push(x),s=!0;let y=u.captured.get("continues");if(y&&y.type==="literal"&&y.value==="then")continue}}if(!s){let u=I.matchBest(e,t);u&&(i.push(this.buildCommand(u,o)),s=!0)}s||e.advance()}return i}isThenKeyword(e,t){let r={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(r[t]||r.en).has(e.toLowerCase())}isEndKeyword(e,t){let r={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(r[t]||r.en).has(e.toLowerCase())}},Se=new se;function F(n,e){return Se.parse(n,e)}function Ee(n,e){return Se.canParse(n,e)}function Te(n,e){if(D(n))return n;let t=F(n,e);return Q(t)}function ve(n,e){let t=_(n);return Z(t,e)}function be(n,e){return D(n)?_(n):F(n,e)}var lt=new Set(["me","my","myself","you","your","yourself","it","its","result","event","target","body","detail","window","document"]),ut=new Set(["and","or","not","no"]),dt=new Set(["true","false","null","undefined"]),pt=new Set(["ms","s","seconds","second","milliseconds","millisecond","minutes","minute","hours","hour"]);function Fe(n){let e=[],t=0,r=1,o=1;function i(){if(e.length===0)return!0;let d=e[e.length-1];return["OPERATOR","COMPARISON","LOGICAL","LPAREN","LBRACKET","LBRACE","COMMA","COLON"].includes(d.type)}function a(d=0){return n[t+d]??""}function s(){let d=n[t];return t++,d===`
|
|
2
|
-
`?(r++,o=1):o++,d}function u(){for(;t<n.length&&/\s/.test(n[t]);)s()}function c(d){let p="";for(;t<n.length&&d(n[t]);)p+=s();return p}function m(d){let p=d;for(s();t<n.length&&n[t]!==d;)n[t]==="\\"&&t+1<n.length&&(p+=s()),p+=s();return t<n.length&&(p+=s()),p}function x(){let d="`";for(s();t<n.length&&n[t]!=="`";)n[t]==="\\"&&t+1<n.length&&(d+=s()),d+=s();return t<n.length&&(d+=s()),d}function y(){let d="<";for(s();t<n.length&&(d+=s(),!d.endsWith("/>")););return d}function h(d,p,g){return{type:d,value:p,start:g,end:t,line:r,column:o-p.length}}for(;t<n.length&&(u(),!(t>=n.length));){let d=t,p=a();if(p==="'"&&a(1)==="s"&&!/\w/.test(a(2))){s(),s(),e.push(h("POSSESSIVE","'s",d));continue}if(p==='"'||p==="'"){let g=m(p);e.push(h("STRING",g,d));continue}if(p==="`"){let g=x();e.push(h("TEMPLATE_LITERAL",g,d));continue}if(p==="<"&&/[a-zA-Z.#\[]/.test(a(1))){let g=y();e.push(h("QUERY_SELECTOR",g,d));continue}if(p==="#"&&i()){s();let g=c(E=>/[\w-]/.test(E));e.push(h("ID_SELECTOR","#"+g,d));continue}if(p==="."&&/[a-zA-Z_-]/.test(a(1))&&i()){s();let g=c(E=>/[\w-]/.test(E));e.push(h("CLASS_SELECTOR","."+g,d));continue}if(p==="["&&i()){let g=a(1);if(g==="@"||/[a-zA-Z]/.test(g)){let E="";for(E+=s();t<n.length&&n[t]!=="]";)n[t]==='"'||n[t]==="'"?E+=m(n[t]):E+=s();t<n.length&&(E+=s()),e.push(h("ATTRIBUTE_SELECTOR",E,d));continue}}if(p==="["){s(),e.push(h("LBRACKET","[",d));continue}if(p==="]"){s(),e.push(h("RBRACKET","]",d));continue}if(/\d/.test(p)){let g=c(le=>/[\d.]/.test(le)),E=t,te=c(le=>/[a-zA-Z]/.test(le));pt.has(te)?e.push(h("TIME_EXPRESSION",g+te,d)):(t=E,e.push(h("NUMBER",g,d)));continue}if(p==="("){s(),e.push(h("LPAREN","(",d));continue}if(p===")"){s(),e.push(h("RPAREN",")",d));continue}if(p==="{"){s(),e.push(h("LBRACE","{",d));continue}if(p==="}"){s(),e.push(h("RBRACE","}",d));continue}if(p===","){s(),e.push(h("COMMA",",",d));continue}if(p===":"){s(),e.push(h("COLON",":",d));continue}if(p==="."){s(),e.push(h("DOT",".",d));continue}if(p==="+"||p==="-"||p==="*"||p==="/"||p==="%"){s(),e.push(h("OPERATOR",p,d));continue}if(p==="="||p==="!"||p==="<"||p===">"){let g=s();a()==="="&&(g+=s()),e.push(h("COMPARISON",g,d));continue}if(/[a-zA-Z_$]/.test(p)){let g=c(te=>/[\w$]/.test(te)),E=g.toLowerCase();lt.has(E)?e.push(h("CONTEXT_VAR",g,d)):ut.has(E)?e.push(h("LOGICAL",g,d)):dt.has(E)?e.push(h("BOOLEAN",g,d)):e.push(h("IDENTIFIER",g,d));continue}s()}return e.push(h("EOF","",t)),e}var ce=class{constructor(){this.tokens=[];this.current=0}parse(e){try{return this.tokens=Fe(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,r=this.parseAnd();e=this.createBinaryExpression(t,e,r)}return e}parseAnd(){let e=this.parseEquality();for(;this.checkValue("and");){let t=this.advance().value,r=this.parseEquality();e=this.createBinaryExpression(t,e,r)}return e}parseEquality(){let e=this.parseComparison();for(;this.match("COMPARISON")||this.checkValue("is")||this.checkValue("matches")||this.checkValue("contains")||this.checkValue("in");){let t=this.previous().value,r=this.parseComparison();e=this.createBinaryExpression(t,e,r)}return e}parseComparison(){let e=this.parseAddition();for(;this.check("COMPARISON");){let t=this.advance().value,r=this.parseAddition();e=this.createBinaryExpression(t,e,r)}return e}parseAddition(){let e=this.parseMultiplication();for(;this.peek().value==="+"||this.peek().value==="-";){let t=this.advance().value,r=this.parseMultiplication();e=this.createBinaryExpression(t,e,r)}return e}parseMultiplication(){let e=this.parseUnary();for(;this.peek().value==="*"||this.peek().value==="/"||this.peek().value==="%";){let t=this.advance().value,r=this.parseUnary();e=this.createBinaryExpression(t,e,r)}return e}parseUnary(){if(this.checkValue("not")||this.checkValue("no")||this.peek().value==="-"){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 r;if(this.check("STRING"))r=this.advance().value.slice(1,-1);else if(this.check("IDENTIFIER"))r=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:r,value:o})}while(this.match("COMMA"));if(!this.match("RBRACE"))throw new Error("Expected } after object properties");return{type:"objectLiteral",properties:e.map(r=>({type:"objectProperty",key:r.key,value:r.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 r=parseFloat(t[1]),o=t[2].toLowerCase();return{type:"timeExpression",value:r,unit:o,raw:e.value,start:e.start,end:e.end,line:e.line,column:e.column}}createLiteral(e,t,r){return{type:"literal",value:e,dataType:t,raw:r.value,start:r.start,end:r.end,line:r.line,column:r.column}}createSelector(e,t,r){return{type:"selector",value:e,selector:e,selectorType:t,start:r.start,end:r.end,line:r.line,column:r.column}}createContextReference(e,t){return{type:"contextReference",contextType:e,name:t.value,start:t.start,end:t.end,line:t.line,column:t.column}}createIdentifier(e,t){return{type:"identifier",name:e,start:t.start,end:t.end,line:t.line,column:t.column}}createPropertyAccess(e,t){return{type:"propertyAccess",object:e,property: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,r){return{type:"binaryExpression",operator:e,left:t,right:r,start:t.start,end:r.end}}createUnaryExpression(e,t){return{type:"unaryExpression",operator:e,operand:t,prefix:!0,start:this.previous().start,end:t.end}}createCallExpression(e,t){return{type:"callExpression",callee:e,arguments:t,start:e.start,end:this.previous().end}}};function Ne(n){return new ce().parse(n)}function N(n,e){switch(n.type){case"literal":return mt(n);case"selector":return ft(n,e);case"reference":return gt(n);case"property-path":return ht(n,e);case"expression":return yt(n);default:let t=n;throw new Error(`Unknown semantic value type: ${t.type}`)}}function mt(n){let e={type:"literal",value:n.value};return n.dataType?{...e,dataType:n.dataType}:e}function ft(n,e){return e&&n.value.startsWith("*")&&/^[a-zA-Z-]/.test(n.value.slice(1))&&e.push(`Converted '${n.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:n.value,selector:n.value,selectorType:n.selectorKind}}function gt(n){return{type:"contextReference",contextType:n.value,name:n.value}}function ht(n,e){return{type:"propertyAccess",object:N(n.object,e),property:n.property}}function yt(n){let e=Ne(n.raw);return!e.success||!e.node?{type:"identifier",name:n.raw}:e.node}function qe(n,e){return n.roles.get(e)}function l(n,e,t){let r=qe(n,e);return r?N(r,t):void 0}function f(n,e=[],t,r={}){let o={type:"command",name:n,args:e};return t&&Object.keys(t).length>0&&(o.modifiers=t),r.isBlocking&&(o.isBlocking=r.isBlocking),r.implicitTarget&&(o.implicitTarget=r.implicitTarget),o}var xt={action:"toggle",toAST(n,e){let t=l(n,"patient"),r=l(n,"destination"),o=l(n,"duration"),i=t?[t]:[],a={};return r&&(a.on=r),o&&(a.for=o),f("toggle",i,a)}},St={action:"add",toAST(n,e){let t=l(n,"patient"),r=l(n,"destination"),o=t?[t]:[],i={};return r&&(i.to=r),f("add",o,i)}},Et={action:"remove",toAST(n,e){let t=l(n,"patient"),r=l(n,"source"),o=t?[t]:[],i={};return r&&(i.from=r),f("remove",o,i)}},Tt={action:"set",toAST(n,e){let t=l(n,"destination"),r=l(n,"patient"),o=[],i={};return t&&o.push(t),r&&(i.to=r),f("set",o,i)}},vt={action:"show",toAST(n,e){let t=l(n,"destination"),r=l(n,"patient"),o=l(n,"duration"),i=[],a={},s=t??r;return s&&i.push(s),o&&(a.with=o),f("show",i,a)}},bt={action:"hide",toAST(n,e){let t=l(n,"destination"),r=l(n,"patient"),o=l(n,"duration"),i=[],a={},s=t??r;return s&&i.push(s),o&&(a.with=o),f("hide",i,a)}},Nt={action:"increment",toAST(n,e){let t=l(n,"destination"),r=l(n,"patient"),o=l(n,"quantity"),i=[],a={},s=t??r;return s&&i.push(s),o&&(a.by=o),f("increment",i,a)}},kt={action:"decrement",toAST(n,e){let t=l(n,"destination"),r=l(n,"patient"),o=l(n,"quantity"),i=[],a={},s=t??r;return s&&i.push(s),o&&(a.by=o),f("decrement",i,a)}},Ct={action:"wait",toAST(n,e){let t=l(n,"duration");return f("wait",t?[t]:[],void 0,{isBlocking:!0})}},wt={action:"log",toAST(n,e){let t=l(n,"patient"),r=[];return t&&r.push(t),f("log",r)}},Rt={action:"put",toAST(n,e){let t=l(n,"patient"),r=l(n,"destination"),o=qe(n,"method"),i=t?[t]:[],a={};if(r){let s=o?.type==="literal"?String(o.value):"into";a[s]=r}return f("put",i,a)}},Lt={action:"fetch",toAST(n,e){let t=l(n,"source"),r=l(n,"method"),o=l(n,"responseType"),i=l(n,"patient"),a=t?[t]:[],s={};return r&&(s.with=r),o&&(s.as=o),i&&(s.body=i),f("fetch",a,s,{isBlocking:!0})}},Pt={action:"append",toAST(n,e){let t=l(n,"patient"),r=l(n,"destination"),o=t?[t]:[],i={};return r&&(i.to=r),f("append",o,i)}},Mt={action:"prepend",toAST(n,e){let t=l(n,"patient"),r=l(n,"destination"),o=t?[t]:[],i={};return r&&(i.to=r),f("prepend",o,i)}},At={action:"trigger",toAST(n,e){let t=l(n,"event"),r=l(n,"destination"),o=t?[t]:[],i={};return r&&(i.on=r),f("trigger",o,i)}},Vt={action:"send",toAST(n,e){let t=l(n,"event"),r=l(n,"destination"),o=l(n,"patient"),i=t?[t]:[],a={};return r&&(a.to=r),o&&(a.detail=o),f("send",i,a)}},zt={action:"go",toAST(n,e){let t=l(n,"source"),r=l(n,"destination"),o=[],i={};return t&&o.push(t),r&&(i.to=r),f("go",o,i)}},Ot={action:"transition",toAST(n,e){let t=l(n,"patient"),r=l(n,"goal"),o=l(n,"duration"),i=l(n,"destination"),a=t?[t]:[],s={};return r&&(s.to=r),o&&(s.over=o),i&&(s.on=i),f("transition",a,s)}},It={action:"focus",toAST(n,e){let t=l(n,"destination"),r=l(n,"patient"),o=[],i={},a=t??r;return a&&o.push(a),f("focus",o,i)}},_t={action:"blur",toAST(n,e){let t=l(n,"destination"),r=l(n,"patient"),o=[],i=t??r;return i&&o.push(i),f("blur",o)}},Bt={action:"get",toAST(n,e){let t=l(n,"source"),r=l(n,"patient"),o=[],i=t??r;return i&&o.push(i),f("get",o)}},$t={action:"take",toAST(n,e){let t=l(n,"patient"),r=l(n,"source"),o=t?[t]:[],i={};return r&&(i.from=r),f("take",o,i)}},Kt={action:"call",toAST(n,e){let t=l(n,"patient");return f("call",t?[t]:[])}},jt={action:"return",toAST(n,e){let t=l(n,"patient");return f("return",t?[t]:[])}},Wt={action:"halt",toAST(n,e){return f("halt",[])}},Ut={action:"throw",toAST(n,e){let t=l(n,"patient");return f("throw",t?[t]:[])}},Dt={action:"settle",toAST(n,e){let t=l(n,"destination"),r=l(n,"patient"),o=[],i=t??r;return i&&o.push(i),f("settle",o,void 0,{isBlocking:!0})}},Ft={action:"swap",toAST(n,e){let t=l(n,"patient"),r=l(n,"source"),o=l(n,"destination"),i=l(n,"style"),a=[],s={};return t&&a.push(t),r&&a.push(r),o&&(s.on=o),i&&(s.with=i),f("swap",a,s)}},qt={action:"morph",toAST(n,e){let t=l(n,"source"),r=l(n,"destination"),o=l(n,"patient"),i=[],a={},s=t??o;return s&&i.push(s),r&&(a.on=r),f("morph",i,a)}},Ht={action:"clone",toAST(n,e){let t=l(n,"source"),r=l(n,"destination"),o=l(n,"patient"),i=[],a={},s=t??o;return s&&i.push(s),r&&(a.into=r),f("clone",i,a)}},Gt={action:"make",toAST(n,e){let t=l(n,"patient");return f("make",t?[t]:[])}},Xt={action:"measure",toAST(n,e){let t=l(n,"patient"),r=l(n,"destination"),o=l(n,"source"),i=[],a={};t&&i.push(t);let s=r??o;return s&&(a.of=s),f("measure",i,a)}},Zt={action:"tell",toAST(n,e){let t=l(n,"destination"),r=l(n,"patient"),o=[],i=t??r;return i&&o.push(i),f("tell",o)}},Qt={action:"js",toAST(n,e){let t=l(n,"patient");return f("js",t?[t]:[])}},Yt={action:"async",toAST(n,e){return f("async",[])}},Jt={action:"if",toAST(n,e){let t=l(n,"condition");return f("if",t?[t]:[])}},er={action:"unless",toAST(n,e){let t=l(n,"condition");return f("unless",t?[t]:[])}},tr={action:"repeat",toAST(n,e){let t=l(n,"quantity"),r=l(n,"patient"),o=[],i=t??r;return i&&o.push(i),f("repeat",o)}},rr={action:"for",toAST(n,e){let t=l(n,"patient"),r=l(n,"source"),o=t?[t]:[],i={};return r&&(i.in=r),f("for",o,i)}},nr={action:"while",toAST(n,e){let t=l(n,"condition");return f("while",t?[t]:[])}},or={action:"continue",toAST(n,e){return f("continue",[])}},ir={action:"default",toAST(n,e){let t=l(n,"patient"),r=l(n,"source"),o=t?[t]:[],i={};return r&&(i.to=r),f("default",o,i)}},ar={action:"init",toAST(n,e){return f("init",[])}},sr={action:"behavior",toAST(n,e){let t=l(n,"patient");return f("behavior",t?[t]:[])}},cr={action:"install",toAST(n,e){let t=l(n,"patient"),r=l(n,"destination"),o=t?[t]:[],i={};return r&&(i.on=r),f("install",o,i)}},lr={action:"on",toAST(n,e){let t=l(n,"event"),r=l(n,"source"),o=t?[t]:[],i={};return r&&(i.from=r),f("on",o,i)}},He=new Map([["toggle",xt],["add",St],["remove",Et],["set",Tt],["show",vt],["hide",bt],["increment",Nt],["decrement",kt],["wait",Ct],["log",wt],["put",Rt],["fetch",Lt],["append",Pt],["prepend",Mt],["get",Bt],["take",$t],["trigger",At],["send",Vt],["on",lr],["go",zt],["transition",Ot],["focus",It],["blur",_t],["call",Kt],["return",jt],["halt",Wt],["throw",Ut],["settle",Dt],["swap",Ft],["morph",qt],["clone",Ht],["measure",Xt],["make",Gt],["tell",Zt],["default",ir],["js",Qt],["async",Yt],["if",Jt],["unless",er],["repeat",tr],["for",rr],["while",nr],["continue",or],["init",ar],["behavior",sr],["install",cr]]);function Y(n){return He.get(n)}function ke(n){He.set(n.action,n)}var J=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=Y(e.action);if(t){let r=t.toAST(e,this);if("ast"in r&&"warnings"in r){let o=r;return this.warnings.push(...o.warnings),o.ast}else return r}return this.buildGenericCommand(e)}buildGenericCommand(e){let t=[],r={},o=["patient","source","quantity"],i=["destination","duration","method","style"];for(let s of o){let u=e.roles.get(s);u&&t.push(N(u))}for(let s of i){let u=e.roles.get(s);if(u){let c=this.roleToModifierKey(s);r[c]=N(u)}}let a={type:"command",name:e.action,args:t};return Object.keys(r).length>0?{...a,modifiers:r}:a}roleToModifierKey(e){return{destination:"on",duration:"for",source:"from",condition:"if",method:"via",style:"with"}[e]??e}buildEventHandler(e){let t=e.roles.get("event"),r,o;if(t?.type==="literal"){let g=String(t.value);g.includes("|")||g.includes(" or ")?(o=g.split(/\s+or\s+|\|/).map(E=>E.trim()),r=o[0]):r=g}else t?.type==="reference"?r=t.value:r="click";let i=e.body.map(g=>this.build(g)),a=e.roles.get("source"),s,u;a?.type==="selector"?(s=a.value,u=a.value):a?.type==="reference"?u=a.value:a?.type==="literal"&&(u=String(a.value));let c=e.roles.get("condition"),m=c?N(c):void 0,x=e.roles.get("destination"),y=x?N(x):void 0,h=e.eventModifiers,d=s;if(h?.from){let g=h.from;g.type==="selector"&&!s&&(d=g.value)}let p=e.parameterNames?[...e.parameterNames]:void 0;return{type:"eventHandler",event:r,commands:i,...o&&o.length>1?{events:o}:{},...d?{selector:d}:{},...u?{target:u}:{},...m?{condition:m}:{},...y?{watchTarget:y}:{},...p&&p.length>0?{args:p,params:p}:{}}}buildConditional(e){let t=e.roles.get("condition");if(!t)throw new Error("Conditional node missing condition");let r=N(t),o=e.thenBranch.map(s=>this.build(s)),i=e.elseBranch?.map(s=>this.build(s)),a=[r,{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)),r=[{type:"identifier",name:e.loopVariant}];switch(e.loopVariant){case"times":{let o=e.roles.get("quantity");o&&r.push(N(o));break}case"for":{e.loopVariable&&r.push({type:"string",value:e.loopVariable});let o=e.roles.get("source");o&&r.push(N(o));break}case"while":case"until":{let o=e.roles.get("condition");o&&r.push(N(o));break}case"forever":break}return r.push({type:"block",commands:t}),{type:"command",name:"repeat",args:r}}buildBlock(e){return{type:"block",commands:e.map(r=>this.build(r))}}};function Ge(n){let e=new J;return{ast:e.build(n),warnings:e.warnings}}var B=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 r=this.makeKey(e,t),o=this.cache.get(r);if(!o){this.stats.misses++;return}if(this.isExpired(o)){this.cache.delete(r),this.stats.expirations++,this.stats.misses++;return}return this.cache.delete(r),o.lastAccessed=Date.now(),this.cache.set(r,o),this.stats.hits++,o.result}set(e,t,r){if(!this.config.enabled||r.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:r,createdAt:i,lastAccessed:i})}has(e,t){if(!this.config.enabled)return!1;let r=this.makeKey(e,t),o=this.cache.get(r);return o?this.isExpired(o)?(this.cache.delete(r),this.stats.expirations++,!1):!0:!1}delete(e,t){let r=this.makeKey(e,t);return this.cache.delete(r)}clear(){this.cache.clear()}resetStats(){this.stats={hits:0,misses:0,evictions:0,expirations:0}}getStats(){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}}},Ce=new B;var ee=class{constructor(e={}){this.patternMatcher=new X,this.languages=new Set(K()),e.cache===!1?this.cache=new B({enabled:!1}):this.cache=e.cache?new B(e.cache):Ce}analyze(e,t){if(!this.supportsLanguage(t))return{confidence:0,errors:[`Language '${t}' is not supported for semantic parsing`]};let r=this.cache.get(e,t);if(r)return r;let o=this.analyzeUncached(e,t);return this.cache.set(e,t,o),o}analyzeUncached(e,t){try{let r=We(t);if(!r)return{confidence:0,errors:[`No tokenizer available for language '${t}'`]};let o=r.tokenize(e),i=C(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(r){return{confidence:0,errors:[r instanceof Error?r.message:String(r)]}}}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 Xe(n){return new ee(n)}var we=.5,Ze=.8;function Qe(n,e=we){return n.confidence>=e&&n.command!==void 0}var ur="1.0.0-core";function dr(n,e){if(!j(e))throw new Error(`Language '${e}' is not loaded. Load it via script tag or loadLanguageFromUrl().`);return[...oe(n,e).tokens]}async function pr(n,e){try{let t=await fetch(e);if(!t.ok)throw new Error(`HTTP ${t.status}: ${t.statusText}`);let r=await t.text(),o=document.createElement("script");return o.textContent=r,document.head.appendChild(o),document.head.removeChild(o),j(n)?{loaded:!0}:{loaded:!1,error:`Script loaded but language '${n}' was not registered`}}catch(t){return{loaded:!1,error:t instanceof Error?t.message:String(t)}}}function mr(n,e){re(n,e.tokenizer,e.profile),e.patterns?q(n,e.patterns):e.buildPatterns&&q(n,e.buildPatterns())}return nt(fr);})();
|
|
1
|
+
"use strict";var LokaScriptSemanticCore=(()=>{var ye=Object.defineProperty;var et=Object.getOwnPropertyDescriptor;var tt=Object.getOwnPropertyNames;var nt=Object.prototype.hasOwnProperty;var rt=(r,e)=>{for(var t in e)ye(r,t,{get:e[t],enumerable:!0})},ot=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of tt(e))!nt.call(r,o)&&o!==t&&ye(r,o,{get:()=>e[o],enumerable:!(n=et(e,o))||n.enumerable});return r};var it=r=>ot(ye({},"__esModule",{value:!0}),r);var Nn={};rt(Nn,{ASTBuilder:()=>ie,DEFAULT_CONFIDENCE_THRESHOLD:()=>ze,HIGH_CONFIDENCE_THRESHOLD:()=>Qe,SemanticAnalyzerImpl:()=>ae,VERSION:()=>vn,buildAST:()=>Xe,canParse:()=>Re,createCommandNode:()=>A,createEventHandler:()=>$,createLiteral:()=>k,createPropertyPath:()=>Z,createReference:()=>N,createSelector:()=>C,createSemanticAnalyzer:()=>Ze,fromExplicit:()=>Le,getCommandMapper:()=>oe,getPatternsForLanguage:()=>P,getProfile:()=>Ee,getRegisteredLanguages:()=>H,getTokenizer:()=>ve,isExplicitSyntax:()=>Q,isLanguageRegistered:()=>G,isLanguageSupported:()=>$e,loadLanguageFromUrl:()=>bn,parse:()=>W,parseAny:()=>Pe,parseExplicit:()=>K,registerCommandMapper:()=>Ae,registerLanguage:()=>le,registerLanguageModule:()=>Tn,registerPatterns:()=>J,render:()=>ne,renderExplicit:()=>re,setPatternGenerator:()=>Be,shouldUseSemanticResult:()=>Ye,toExplicit:()=>Ce,tokenize:()=>En,tryGetProfile:()=>L});var R=new Map,M=new Map,U=new Map;var Se=null;function _e(r,e){let t={...r};for(let n of Object.keys(e)){let o=e[n],i=r[n];o!==void 0&&(typeof o=="object"&&o!==null&&!Array.isArray(o)&&typeof i=="object"&&i!==null&&!Array.isArray(i)?t[n]=_e(i,o):t[n]=o)}return t}function at(r,e){return _e(r,e)}function ke(r){if(!r.extends)return r;let e=M.get(r.extends);if(!e)return console.warn(`[Registry] Profile '${r.code}' extends '${r.extends}' but base is not registered. Make sure to import the base language before the variant.`),r;let t=ke(e);return at(t,r)}function le(r,e,t){R.set(r,e),M.set(r,t),U.delete(r)}function Be(r){Se=r}var xe=new Map;function J(r,e){xe.set(r,e),U.delete(r)}function I(r){return r.split("-")[0]}function _(r){return r.includes("-")}function ve(r){let e=R.get(r);if(!e&&_(r)){let t=I(r);e=R.get(t)}if(!e){let t=Array.from(R.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 Ee(r){let e=M.get(r);if(!e&&_(r)){let t=I(r);e=M.get(t)}if(!e){let t=Array.from(M.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 ke(e)}function We(r){let e=R.get(r);return!e&&_(r)&&(e=R.get(I(r))),e}function L(r){let e=M.get(r);return!e&&_(r)&&(e=M.get(I(r))),e?ke(e):void 0}function H(){return Array.from(R.keys())}function G(r){if(R.has(r)&&M.has(r))return!0;if(_(r)){let e=I(r);return R.has(e)&&M.has(e)}return!1}function $e(r){return R.has(r)?!0:_(r)?R.has(I(r)):!1}function je(r,e){return ve(e).tokenize(r)}function P(r){let e=U.get(r);if(!e&&_(r)&&(e=U.get(I(r))),e)return e;let t=xe.get(r);if(!t&&_(r)&&(t=xe.get(I(r))),t)return U.set(r,t),t;if(!Se)throw new Error(`No patterns registered for language '${r}'. Either import the language module or set a pattern generator.`);let n=Ee(r),o=Se(n);return U.set(r,o),o}function Ke(r,e){return P(r).filter(t=>t.command===e).sort((t,n)=>n.priority-t.priority)}var B=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 Fe(r){return We(r)}function X(r,e){return je(r,e)}function ue(){return H()}function C(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}var gt=new Set(["me","you","it","result","event","target","body"]);function ee(r){return gt.has(r)}function N(r){return{type:"reference",value:r}}function Z(r,e){return{type:"property-path",object:r,property:e}}function A(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,i){let a=new Map;a.set("event",r);let s={kind:"event-handler",action:"on",roles:a,body:e};return t!==void 0&&(s.eventModifiers=t),n!==void 0&&(s.metadata=n),o!==void 0&&o.length>0&&(s.parameterNames=o),i!==void 0&&i.length>0&&(s.additionalEvents=i),s}function be(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 Te(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 qe(r,e){return r.possessive?.keywords?.[e]}var V=class V{constructor(){this.stemMatchCount=0;this.totalKeywordMatches=0}matchPattern(e,t){let n=e.mark(),o=new Map;if(this.currentProfile=L(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){let o=t[0],i=o?.type==="literal"&&(o.value==="and"||o.value==="then"||o.alternatives?.includes("and")||o.alternatives?.includes("then"));if(this.currentProfile?.code==="ar"&&!i)for(;e.peek()?.kind==="conjunction";)e.advance();for(let a of t)if(!this.matchPatternToken(e,a,n)){if(this.isOptional(a))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&&!Te(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 u=this.tryMatchSelectorPropertyExpression(e);if(u)return t.expectedTypes&&t.expectedTypes.length>0&&!Te(u.type,t.expectedTypes)?t.optional||!1:(n.set(t.role,u),!0);let f=this.tokenToSemanticValue(o);return!f||t.expectedTypes&&t.expectedTypes.length>0&&!t.expectedTypes.includes(f.type)?t.optional||!1:(n.set(t.role,f),e.advance(),!0)}tryMatchPossessiveExpression(e){let t=e.peek();if(!t||!this.currentProfile)return null;let n=(t.normalized||t.value).toLowerCase(),o=qe(this.currentProfile,n);if(!o)return null;let i=e.mark();e.advance();let a=e.peek();if(!a)return e.reset(i),null;if(a.kind==="identifier"||a.kind==="keyword"&&!this.isStructuralKeyword(a.value)||a.kind==="selector"&&a.value.startsWith("*")||a.kind==="selector"&&a.value.startsWith("@")||a.kind==="selector"&&a.value.startsWith(".")&&/^\.[a-zA-Z_]\w*/.test(a.value)){e.advance();let s=a.value;a.kind==="selector"&&s.startsWith(".")&&/^\.[a-zA-Z_]\w*/.test(s)&&(s=s.substring(1));let c=s;for(;e.peek()?.kind==="selector"&&e.peek().value.startsWith(".")&&/^\.[a-zA-Z_]\w*/.test(e.peek().value);)c+=e.peek().value,e.advance();let u=e.peek();return u?.kind==="literal"&&u.value.startsWith("(")&&(c+=u.value,e.advance()),Z(N(o),c)}return e.reset(i),null}isStructuralKeyword(e){return new Set(["into","in","to","from","at","by","with","without","before","after","of","as","on","then","end","else","if","repeat","while","for","toggle","add","remove","put","set","show","hide","increment","decrement","send","trigger","call"]).has(e.toLowerCase())}tryMatchMethodCallExpression(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<V.MAX_METHOD_ARGS;){let u=e.peek();if(!u)break;if(u.kind==="punctuation"&&u.value===")"){e.advance();break}if(u.kind==="punctuation"&&u.value===","){e.advance();continue}s.push(u.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<V.MAX_PROPERTY_DEPTH;){let u=e.peek();if(!u||u.kind!=="operator"||u.value!==".")break;e.advance();let f=e.peek();if(!f||f.kind!=="identifier")break;e.advance(),a+=`.${f.value}`,s++}let c=e.peek();if(c&&c.kind==="punctuation"&&c.value==="("){e.advance();let u=[],f=0;for(;!e.isAtEnd()&&u.length<V.MAX_METHOD_ARGS;){let y=e.peek();if(!y)break;if(y.kind==="punctuation"&&y.value===")"){if(f===0){e.advance();break}f--}if(y.kind==="punctuation"&&y.value==="("&&f++,y.kind==="punctuation"&&y.value===","){e.advance();continue}u.push(y.value),e.advance()}return{type:"expression",raw:`${a}(${u.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(),Z(C(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 Z(C(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 C(e.value);case"literal":return this.parseLiteralValue(e.value);case"keyword":let t=(e.normalized||e.value).toLowerCase();return ee(t)?N(t):k(e.normalized||e.value);case"identifier":if(e.value.startsWith(":"))return N(e.value);let n=e.value.toLowerCase();return ee(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.value!==void 0?t.set(n,{type:"literal",value:o.value}):o.default&&t.set(n,o.default))}isOptional(e){return e.type!=="literal"&&e.optional===!0}calculateConfidence(e,t){let n=0,o=0,i=u=>e.extraction?.[u]?.default!==void 0;for(let u of e.template.tokens)if(u.type==="role")o+=1,t.has(u.role)&&(n+=1);else if(u.type==="group"){for(let f of u.tokens)if(f.type==="role"){let S=i(f.role),y=.8;o+=y,t.has(f.role)?n+=y:S&&(n+=y*.6)}}let a=o>0?n/o:1;if(this.stemMatchCount>0&&this.totalKeywordMatches>0){let u=this.stemMatchCount/this.totalKeywordMatches*.15;a=Math.max(.5,a-u)}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="metadata"in a?a.metadata:void 0;if(c&&typeof c.prepositionValue=="string"){let u=c.prepositionValue;s.includes(u)?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(V.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}};V.MAX_PROPERTY_DEPTH=10,V.MAX_METHOD_ARGS=20,V.ENGLISH_NOISE_WORDS=new Set(["the","a","an"]);var te=V,j=new te;var De={ko:{\uD074\uB9AD:"click",\uC785\uB825:"input",\uBCC0\uACBD:"change",\uC81C\uCD9C:"submit",\uD0A4\uB2E4\uC6B4:"keydown",\uD0A4\uC5C5:"keyup",\uB9C8\uC6B0\uC2A4\uC624\uBC84:"mouseover",\uB9C8\uC6B0\uC2A4\uC544\uC6C3:"mouseout",\uB9C8\uC6B0\uC2A4\uB2E4\uC6B4:"mousedown",\uB9C8\uC6B0\uC2A4\uC5C5:"mouseup",\uD3EC\uCEE4\uC2A4:"focus",\uBE14\uB7EC:"blur",\uB85C\uB4DC:"load",\uB9AC\uC0AC\uC774\uC988:"resize",\uC2A4\uD06C\uB864:"scroll"},ja:{\u30AF\u30EA\u30C3\u30AF:"click",\u5165\u529B:"input",\u5909\u66F4:"change",\u9001\u4FE1:"submit",\u30AD\u30FC\u30C0\u30A6\u30F3:"keydown",\u30AD\u30FC\u30A2\u30C3\u30D7:"keyup",\u30AD\u30FC\u30D7\u30EC\u30B9:"keypress",\u30DE\u30A6\u30B9\u30AA\u30FC\u30D0\u30FC:"mouseover",\u30DE\u30A6\u30B9\u30A2\u30A6\u30C8:"mouseout",\u30DE\u30A6\u30B9\u62BC\u4E0B:"mousedown",\u30DE\u30A6\u30B9\u89E3\u653E:"mouseup",\u30D5\u30A9\u30FC\u30AB\u30B9:"focus",\u30D6\u30E9\u30FC:"blur",\u30ED\u30FC\u30C9:"load",\u8AAD\u307F\u8FBC\u307F:"load",\u30B5\u30A4\u30BA\u5909\u66F4:"resize",\u30B9\u30AF\u30ED\u30FC\u30EB:"scroll"},ar:{\u0627\u0644\u0646\u0642\u0631:"click",\u0646\u0642\u0631:"click",\u0627\u0644\u0625\u062F\u062E\u0627\u0644:"input",\u0625\u062F\u062E\u0627\u0644:"input",\u0627\u0644\u062A\u063A\u064A\u064A\u0631:"change",\u062A\u063A\u064A\u064A\u0631:"change",\u0627\u0644\u0625\u0631\u0633\u0627\u0644:"submit",\u0625\u0631\u0633\u0627\u0644:"submit","\u0636\u063A\u0637 \u0627\u0644\u0645\u0641\u062A\u0627\u062D":"keydown","\u0631\u0641\u0639 \u0627\u0644\u0645\u0641\u062A\u0627\u062D":"keyup","\u062A\u0645\u0631\u064A\u0631 \u0627\u0644\u0645\u0627\u0648\u0633":"mouseover",\u0627\u0644\u062A\u0631\u0643\u064A\u0632:"focus",\u062A\u062D\u0645\u064A\u0644:"load",\u062A\u0645\u0631\u064A\u0631:"scroll"},es:{clic:"click",click:"click",entrada:"input",cambio:"change",env\u00EDo:"submit",enviar:"submit","tecla abajo":"keydown","tecla arriba":"keyup","rat\xF3n encima":"mouseover","rat\xF3n fuera":"mouseout",enfoque:"focus",desenfoque:"blur",carga:"load",desplazamiento:"scroll"},tr:{t\u0131klama:"click",t\u0131kla:"click",t\u0131k:"click",giri\u015F:"input",girdi:"input",de\u011Fi\u015Fiklik:"change",de\u011Fi\u015Fim:"change",g\u00F6nderme:"submit",g\u00F6nder:"submit",tu\u015Fbasma:"keydown",tu\u015Fb\u0131rakma:"keyup",fare_bas:"mousedown",fare_b\u0131rak:"mouseup",farei\u00E7inde:"mouseover",fared\u0131\u015F\u0131nda:"mouseout",odaklanma:"focus",odak:"focus",bulan\u0131kl\u0131k:"blur",y\u00FCkleme:"load",y\u00FCkle:"load",boyut_de\u011Fi\u015Ftir:"resize",kayd\u0131rma:"scroll"},pt:{clique:"click",clicar:"click",click:"click",entrada:"input",inserir:"input",mudan\u00E7a:"change",mudanca:"change",alterar:"change",envio:"submit",enviar:"submit","tecla baixo":"keydown","tecla cima":"keyup","pressionar tecla":"keydown","soltar tecla":"keyup","mouse sobre":"mouseover","mouse fora":"mouseout",foco:"focus",focar:"focus",desfoque:"blur",desfocar:"blur",carregar:"load",carregamento:"load",rolagem:"scroll",rolar:"scroll"},zh:{\u70B9\u51FB:"click",\u5355\u51FB:"click",\u53CC\u51FB:"dblclick",\u8F93\u5165:"input",\u6539\u53D8:"change",\u53D8\u5316:"change",\u53D8\u66F4:"change",\u63D0\u4EA4:"submit",\u53D1\u9001:"submit",\u6309\u952E:"keydown",\u952E\u5165:"keydown",\u677E\u952E:"keyup",\u9F20\u6807\u8FDB\u5165:"mouseover",\u9F20\u6807\u79FB\u5165:"mouseover",\u9F20\u6807\u79BB\u5F00:"mouseout",\u9F20\u6807\u79FB\u51FA:"mouseout",\u7126\u70B9:"focus",\u805A\u7126:"focus",\u5931\u7126:"blur",\u6A21\u7CCA:"blur",\u52A0\u8F7D:"load",\u8F7D\u5165:"load",\u6EDA\u52A8:"scroll"},fr:{clic:"click",cliquer:"click",click:"click",saisie:"input",entr\u00E9e:"input",changement:"change",changer:"change",soumettre:"submit",soumission:"submit",envoi:"submit","touche bas":"keydown","touche haut":"keyup","souris dessus":"mouseover","souris dehors":"mouseout",focus:"focus",focaliser:"focus",d\u00E9focus:"blur",d\u00E9focaliser:"blur",chargement:"load",charger:"load",d\u00E9filement:"scroll",d\u00E9filer:"scroll"},de:{klick:"click",klicken:"click",click:"click",eingabe:"input",eingeben:"input",\u00E4nderung:"change",\u00E4ndern:"change",absenden:"submit",einreichen:"submit","taste runter":"keydown","taste hoch":"keyup","maus \xFCber":"mouseover","maus raus":"mouseout",fokus:"focus",fokussieren:"focus",defokussieren:"blur",unsch\u00E4rfe:"blur",laden:"load",ladung:"load",scrollen:"scroll",bl\u00E4ttern:"scroll"},id:{klik:"click",click:"click",masukan:"input",input:"input",ubah:"change",perubahan:"change",kirim:"submit","tekan tombol":"keydown","lepas tombol":"keyup","mouse masuk":"mouseover","mouse keluar":"mouseout",fokus:"focus",blur:"blur",muat:"load",memuat:"load",gulir:"scroll",menggulir:"scroll"},bn:{\u0995\u09CD\u09B2\u09BF\u0995:"click",\u0987\u09A8\u09AA\u09C1\u099F:"input",\u099C\u09AE\u09BE:"submit",\u09B2\u09CB\u09A1:"load",\u09B8\u09CD\u0995\u09CD\u09B0\u09CB\u09B2:"scroll",\u09B0\u09BF\u09B8\u09BE\u0987\u099C:"resize",\u099D\u09BE\u09AA\u09B8\u09BE:"blur",\u09AB\u09CB\u0995\u09BE\u09B8:"focus",\u09AA\u09B0\u09BF\u09AC\u09B0\u09CD\u09A4\u09A8:"change"},qu:{click:"click","\xF1it'iy":"click",\u00F1itiy:"click",yaykuchiy:"input",yaykuy:"input",tikray:"change","t'ikray":"change",apachiy:"submit",kachay:"submit","llave uray":"keydown","llave hawa":"keyup","q'away":"focus",qhaway:"focus",paqariy:"blur","mana q'away":"blur",cargay:"load",apakuy:"load",apamuy:"load",kunray:"scroll",muyuy:"scroll",hatun_kay:"resize"},sw:{bofya:"click",click:"click",kubofya:"click",ingiza:"input",kubadilisha:"change",mabadiliko:"change",tuma:"submit",kutuma:"submit","bonyeza chini":"keydown","bonyeza juu":"keyup","panya juu":"mouseover","panya nje":"mouseout",lenga:"focus",kulenga:"focus",blur:"blur",pakia:"load",kupakia:"load",sogeza:"scroll",kusogeza:"scroll"}};var de=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=L(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 ue()}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=L(t);return n?.references?n.references[e.value]??e.value:e.value}renderPropertyPath(e,t){let n=L(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:u}=n.possessive;return u&&c==="after-object"?`${o} ${s}`:`${s} ${o}`}}let a=this.valueToNaturalString(e.object,t);if(n?.possessive){let{marker:s,markerPosition:c,usePossessiveAdjectives:u}=n.possessive;if(u&&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}`}},Ne=new de;function ne(r,e){return Ne.render(r,e)}function re(r){return Ne.renderExplicit(r)}function K(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=ht(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],u=c.indexOf(":");if(u===-1)throw new Error(`Invalid role format: "${c}". Expected role:value`);let f=c.slice(0,u),S=c.slice(u+1);if(f==="body"&&S.startsWith("[")){let m=St(c,u+1),l=c.slice(u+1,m+1);i.set(f,{type:"expression",raw:l});continue}let y=yt(S);i.set(f,y)}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"),u=[];return c&&c.type==="expression"&&u.push(K(c.raw)),i.delete("body"),$(s,u,void 0,{sourceLanguage:"explicit"})}let a={};for(let[s,c]of i)a[s]=c;return A(o,a,{sourceLanguage:"explicit"})}function ht(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 yt(r){if(r.startsWith("#")||r.startsWith(".")||r.startsWith("[")||r.startsWith("@")||r.startsWith("*"))return C(r);if(r.startsWith('"')||r.startsWith("'")){let n=r.slice(1,-1);return k(n,"string")}if(r==="true")return k(!0,"boolean");if(r==="false")return k(!1,"boolean");let e=r.toLowerCase();if(ee(e))return N(e);let t=r.match(/^(-?\d+(?:\.\d+)?)(ms|s|m|h)?$/);if(t){let n=parseFloat(t[1]);return t[2]?k(r,"duration"):k(n,"number")}return k(r,"string")}function St(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 Q(r){let e=r.trim();return e.startsWith("[")&&e.endsWith("]")}var E=class E{parse(e,t){let{modifiers:n,remainingInput:o}=this.extractStandaloneModifiers(e,t),i=o||e,a=X(i,t),s=P(t);if(s.length===0)throw new Error(`No patterns available for language: ${t}`);let c=[...s].sort((p,g)=>g.priority-p.priority),u=c.filter(p=>p.command==="on"),f=j.matchBest(a,u);if(f){let p=this.buildEventHandler(f,a,t);return n?this.applyModifiers(p,n):p}let S=c.filter(p=>p.command!=="on"),y=j.matchBest(a,S);if(y)return this.buildCommand(y,t);let m=this.trySOVEventExtraction(i,t,c);if(m)return n?this.applyModifiers(m,n):m;let l=this.tryCompoundCommandParsing(a,S,t);if(l)return l;throw new Error(`Could not parse input in ${t}: ${i}`)}canParse(e,t){try{return this.parse(e,t),!0}catch{return!1}}supportedLanguages(){return ue()}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 A(e.pattern.command,n,{sourceLanguage:t,patternId:e.pattern.id,confidence:e.confidence})}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=j.extractEventModifiers(t),a=this.extractOrConjunctionEvents(t,n),s=o;a.length>0&&o.type==="literal"&&(s={type:"literal",value:[String(o.value),...a.map(S=>String("value"in S?S.value:""))].join(" or ")});let c,u=e.captured.get("action");if(u&&u.type==="literal"){let f=u.value,S={};for(let[l,p]of e.captured)l!=="event"&&l!=="action"&&l!=="continues"&&(S[l]=p);let y=A(f,S,{sourceLanguage:n,patternId:e.pattern.id,confidence:e.confidence}),m=e.captured.get("continues");if(m&&m.type==="literal"&&m.value==="then"){let l=P(n).filter(x=>x.command!=="on").sort((x,b)=>b.priority-x.priority),p=P(n).filter(x=>x.id.startsWith("grammar-")&&x.id.includes("-continuation")).sort((x,b)=>b.priority-x.priority),g=this.parseBodyWithGrammarPatterns(t,l,p,n);g.length>0?c=[y,...g]:c=[y]}else c=[y]}else{let f=P(n).filter(S=>S.command!=="on").sort((S,y)=>y.priority-S.priority);c=this.parseBodyWithClauses(t,f,n)}return $(s,c,i,{sourceLanguage:n,patternId:e.pattern.id,confidence:e.confidence})}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 u=this.parseClause(i,t,n);o.push(...u),i.length=0}e.advance();continue}if(c){if(i.length>0){let u=this.parseClause(i,t,n);o.push(...u)}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?[be(o,"then",{sourceLanguage:n})]:o}parseClause(e,t,n){if(e.length===0)return[];let o=new B(e,n),i=[];for(;!o.isAtEnd();){let a=j.matchBest(o,t);a?i.push(this.buildCommand(a,n)):o.advance()}if(i.length===0){let a=this.parseSOVClauseByVerbAnchoring(e,n);if(a.length>0)return a}return i}static buildVerbLookup(e){let t=new Map;for(let[n,o]of Object.entries(e.keywords))if(!["on","if","else","when","where","while","for","end","then","and"].includes(n)&&(t.set(o.primary.toLowerCase(),n),o.alternatives))for(let i of o.alternatives)t.set(i.toLowerCase(),n);return t}static buildMarkerToRoleLookup(e){let t=new Map;for(let[n,o]of Object.entries(e.roleMarkers))if(o&&(t.set(o.primary,n),o.alternatives))for(let i of o.alternatives)t.has(i)||t.set(i,n);return t}parseSOVClauseByVerbAnchoring(e,t){let n=L(t);if(!n||n.wordOrder!=="SOV")return[];let o=E.buildVerbLookup(n),i=E.buildMarkerToRoleLookup(n),a=[],s=0;for(;s<e.length;){let c=-1,u="";for(let l=s;l<e.length;l++){let p=e[l],g=o.get(p.value.toLowerCase()),x=p.normalized?o.get(p.normalized.toLowerCase()):void 0,b=g||x;if(b){c=l,u=b;break}}if(c===-1)break;let f=e.slice(s,c),S=e.length;for(let l=c+1;l<e.length;l++){let p=e[l];if(p.kind==="conjunction"||this.isThenKeyword(p.value,t)){S=l;break}if(l>c+1&&(o.get(p.value.toLowerCase())||(p.normalized?o.get(p.normalized.toLowerCase()):void 0))){S=l;break}}let y=e.slice(c+1,S),m=this.extractRolesFromMarkedTokens(f,y,i,u,t);if(a.push(A(u,m,{sourceLanguage:t,confidence:.7})),s=S,s<e.length){let l=e[s];(l.kind==="conjunction"||this.isThenKeyword(l.value,t))&&s++}}return a}extractRolesFromMarkedTokens(e,t,n,o,i){let a={},s=c=>{let u=[];for(let f of c){let S=n.get(f.value);if(S&&f.kind==="particle"&&u.length>0){let y=this.tokensToSemanticValue(u);if(y){let m=this.mapRoleForCommand(S,o,a);m&&(a[m]=y)}u=[]}else u.push(f)}if(u.length>0){let f=this.tokensToSemanticValue(u);f&&(a.patient?a.destination||(a.destination=f):a.patient=f)}};return s(e),s(t),a}mapRoleForCommand(e,t,n){return n[e]?e==="patient"&&!n.destination?"destination":e==="destination"&&!n.patient?"patient":e==="source"&&!n.source?"source":null:e}tokensToSemanticValue(e){if(e.length===0)return null;let t=e.filter(i=>i.kind!=="whitespace");if(t.length===0)return null;if(t.length===1)return this.tokenToSemanticValue(t[0]);let n=t.map(i=>i.value).join(""),o=t[0];return o.kind==="selector"||o.value.startsWith("#")||o.value.startsWith(".")||o.value.startsWith("@")||o.value.startsWith("*")?C(n):o.kind==="literal"||o.value.startsWith('"')||o.value.startsWith("'")?k(n):o.kind==="reference"?N(n):k(n)}tokenToSemanticValue(e){let t=e.value;if(e.kind==="selector"||t.startsWith("#")||t.startsWith(".")||t.startsWith("@")||t.startsWith("*"))return C(t);if(t.startsWith('"')||t.startsWith("'"))return k(t);if(/^-?\d+(\.\d+)?$/.test(t))return k(parseFloat(t));if(t==="true"||t==="\u771F"||t==="\uCC38"||t==="do\u011Fru")return k(!0);if(t==="false"||t==="\u507D"||t==="\uAC70\uC9D3"||t==="yanl\u0131\u015F")return k(!1);let n=e.normalized?.toLowerCase();return n==="me"||n==="it"||n==="you"||n==="result"||n==="body"?N(n):e.kind==="reference"?N(e.normalized||"me"):k(t)}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=j.matchBest(e,n);if(c){let u=c.pattern.command,f={};for(let[m,l]of c.captured)m!=="event"&&m!=="action"&&m!=="continues"&&(f[m]=l);let S=A(u,f,{sourceLanguage:o,patternId:c.pattern.id});i.push(S),s=!0;let y=c.captured.get("continues");if(y&&y.type==="literal"&&y.value==="then")continue}}if(!s){let c=j.matchBest(e,t);c&&(i.push(this.buildCommand(c,o)),s=!0)}s||e.advance()}return i}tryCompoundCommandParsing(e,t,n){let o=e.tokens;if(!o.some(c=>c.kind==="conjunction"||c.kind==="keyword"&&this.isThenKeyword(c.value,n)))return null;let a=new B(o,n),s=this.parseBodyWithClauses(a,t,n);return s.length===0?null:s.length===1?s[0]:be(s,"then",{sourceLanguage:n,confidence:.65})}trySOVEventExtraction(e,t,n){let o=E.SOV_EVENT_MARKERS[t];if(!o)return null;let a=X(e,t).tokens,s=De[t],c=new Set;if(s)for(let v of Object.keys(s))c.add(v.toLowerCase());let u=E.SOV_SOURCE_MARKERS[t],f=-1,S="",y="",m=1;for(let v=0;v<a.length;v++){let T=a[v],z=T.value.toLowerCase(),O=z,D="",fe=z.indexOf("[");fe>0&&(O=z.slice(0,fe),D=T.value.slice(fe));let ge=T.normalized?.toLowerCase(),Oe=ge&&E.KNOWN_EVENTS.has(ge),Ie=c.has(z)||c.has(O),Je=E.KNOWN_EVENTS.has(O);if(Oe||Ie||Je){let Y;if(Oe?Y=ge:Ie?Y=s?.[z]??s?.[O]??O:Y=O,o.size>0){let se=1,he=a[v+1];he&&he.kind==="selector"&&he.value.startsWith("[")&&(se=2);let ce=a[v+se];if(ce&&(ce.kind==="particle"||ce.kind==="keyword")&&o.has(ce.value)){f=v,S=Y,y=D||(se===2?a[v+1].value:""),m=se+1;break}}else{f=v,S=Y,y=D,m=1;break}}}if(f===-1)return null;let l=new Set;for(let v=f;v<f+m;v++)l.add(v);if(u){let v=f+m;if(v<a.length){let T=a[v];(T.kind==="particle"||T.kind==="keyword")&&u.markers.has(T.value)&&l.add(v)}for(let T=0;T<f;T++){let z=a[T],O=z.value.toLowerCase(),D=z.normalized?.toLowerCase();if(u.windowTokens.has(O)||D&&u.windowTokens.has(D)){l.add(T);break}}}let p=a.filter((v,T)=>!l.has(T));if(p.length===0)return null;let g=n.filter(v=>v.command!=="on"),x=new B(p,t),b=this.parseBodyWithClauses(x,g,t);if(b.length===0)return null;let q={sourceLanguage:t,confidence:.75};return y&&(q.keyFilter=y),$({type:"literal",value:S},b,void 0,q)}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","\uADF8\uB7EC\uBA74"]),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"]),tl:new Set(["pagkatapos","tapos"]),bn:new Set(["\u09A4\u09BE\u09B0\u09AA\u09B0","\u09AA\u09B0\u09C7"]),qu:new Set(["chaymantataq","hinaspa","chaymanta","chayqa"]),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"]),tl:new Set(["wakas","tapos"]),bn:new Set(["\u09B8\u09AE\u09BE\u09AA\u09CD\u09A4"]),qu:new Set(["tukukuy","tukuy","puchukay"]),sw:new Set(["mwisho","maliza","tamati"])};return(n[t]||n.en).has(e.toLowerCase())}extractStandaloneModifiers(e,t){let o=X(e,t).tokens;if(o.length===0)return{modifiers:null,remainingInput:null};let a=o[0].value.toLowerCase(),s=E.STANDALONE_MODIFIERS[a];if(!s)return{modifiers:null,remainingInput:null};let c={},u=1;if(s==="once")c.once=!0;else{let m=1;if(m<o.length){let l=o[m];(l.kind==="keyword"||l.kind==="particle")&&(m++,u++)}if(m<o.length){let l=o[m];if(l.kind==="literal"){let p=l.value.match(/^(\d+)(ms|s|m)?$/);if(p){let g=parseInt(p[1],10),x=p[2]||"ms";x==="s"?g*=1e3:x==="m"&&(g*=6e4),c[s]=g,u=m+1}}}c[s]||(c[s]=s==="debounce"?300:100)}let f=o.slice(u);if(f.length===0)return{modifiers:null,remainingInput:null};let S=f[0].position.start,y=e.slice(S);return{modifiers:c,remainingInput:y}}applyModifiers(e,t){return{...e,eventModifiers:{...e.eventModifiers,...t}}}extractOrConjunctionEvents(e,t){let n=[];for(;;){let o=e.mark(),i=e.peek();if(!i)break;let a=(i.normalized||i.value).toLowerCase();if(!E.OR_KEYWORDS.has(a)){e.reset(o);break}e.advance();let s=e.peek();if(!s){e.reset(o);break}let c=(s.normalized||s.value).toLowerCase();e.advance(),n.push({type:"literal",value:c})}return n}};E.KNOWN_EVENTS=new Set(["click","dblclick","input","change","submit","keydown","keyup","keypress","mouseover","mouseout","mousedown","mouseup","focus","blur","load","scroll","resize","contextmenu"]),E.SOV_EVENT_MARKERS={ja:new Set(["\u3067"]),ko:new Set,tr:new Set(["de","da","te","ta"]),bn:new Set(["\u098F"]),qu:new Set(["pi"])},E.SOV_SOURCE_MARKERS={ja:{markers:new Set(["\u304B\u3089"]),windowTokens:new Set(["\u30A6\u30A3\u30F3\u30C9\u30A6","\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8","window","document"])},ko:{markers:new Set(["\uC5D0\uC11C"]),windowTokens:new Set(["\uCC3D","\uC708\uB3C4\uC6B0","\uBB38\uC11C","window","document"])},tr:{markers:new Set(["den","dan","ten","tan"]),windowTokens:new Set(["pencere","belge","window","document"])},bn:{markers:new Set(["\u09A5\u09C7\u0995\u09C7","\u09AE\u09A7\u09CD\u09AF\u09C7"]),windowTokens:new Set(["\u0989\u0987\u09A8\u09CD\u09A1\u09CB","\u09A1\u0995\u09C1\u09AE\u09C7\u09A8\u09CD\u099F","window","document"])},qu:{markers:new Set(["manta"]),windowTokens:new Set(["k_iri","ventana","window","document"])}},E.STANDALONE_MODIFIERS={once:"once",debounced:"debounce",debounce:"debounce",throttled:"throttle",throttle:"throttle"},E.OR_KEYWORDS=new Set(["or","\u0623\u0648","o","ou","oder","atau","atau","\u6216","\u307E\u305F\u306F","\uB610\uB294","veya","\u0985\u09A5\u09AC\u09BE","utaq","au","\u0430\u0431\u043E","\u0438\u043B\u0438","ho\u1EB7c","lub","\u05D0\u05D5","\u0E2B\u0E23\u0E37\u0E2D","o"]);var pe=E,we=new pe;function W(r,e){return we.parse(r,e)}function Re(r,e){return we.canParse(r,e)}function Ce(r,e){if(Q(r))return r;let t=W(r,e);return re(t)}function Le(r,e){let t=K(r);return ne(t,e)}function Pe(r,e){return Q(r)?K(r):W(r,e)}var xt=new Set(["me","my","myself","you","your","yourself","it","its","result","event","target","body","detail","window","document"]),kt=new Set(["and","or","not","no"]),vt=new Set(["true","false","null","undefined"]),Et=new Set(["ms","s","seconds","second","milliseconds","millisecond","minutes","minute","hours","hour"]);function Ue(r){let e=[],t=0,n=1,o=1;function i(){if(e.length===0)return!0;let l=e[e.length-1];return["OPERATOR","COMPARISON","LOGICAL","LPAREN","LBRACKET","LBRACE","COMMA","COLON"].includes(l.type)}function a(l=0){return r[t+l]??""}function s(){let l=r[t];return t++,l===`
|
|
2
|
+
`?(n++,o=1):o++,l}function c(){for(;t<r.length&&/\s/.test(r[t]);)s()}function u(l){let p="";for(;t<r.length&&l(r[t]);)p+=s();return p}function f(l){let p=l;for(s();t<r.length&&r[t]!==l;)r[t]==="\\"&&t+1<r.length&&(p+=s()),p+=s();return t<r.length&&(p+=s()),p}function S(){let l="`";for(s();t<r.length&&r[t]!=="`";)r[t]==="\\"&&t+1<r.length&&(l+=s()),l+=s();return t<r.length&&(l+=s()),l}function y(){let l="<";for(s();t<r.length&&(l+=s(),!l.endsWith("/>")););return l}function m(l,p,g){return{type:l,value:p,start:g,end:t,line:n,column:o-p.length}}for(;t<r.length&&(c(),!(t>=r.length));){let l=t,p=a();if(p==="'"&&a(1)==="s"&&!/\w/.test(a(2))){s(),s(),e.push(m("POSSESSIVE","'s",l));continue}if(p==='"'||p==="'"){let g=f(p);e.push(m("STRING",g,l));continue}if(p==="`"){let g=S();e.push(m("TEMPLATE_LITERAL",g,l));continue}if(p==="<"&&/[a-zA-Z.#\[]/.test(a(1))){let g=y();e.push(m("QUERY_SELECTOR",g,l));continue}if(p==="#"&&i()){s();let g=u(x=>/[\w-]/.test(x));e.push(m("ID_SELECTOR","#"+g,l));continue}if(p==="."&&/[a-zA-Z_-]/.test(a(1))&&i()){s();let g=u(x=>/[\w-]/.test(x));e.push(m("CLASS_SELECTOR","."+g,l));continue}if(p==="["&&i()){let g=a(1);if(g==="@"||/[a-zA-Z]/.test(g)){let x="";for(x+=s();t<r.length&&r[t]!=="]";)r[t]==='"'||r[t]==="'"?x+=f(r[t]):x+=s();t<r.length&&(x+=s()),e.push(m("ATTRIBUTE_SELECTOR",x,l));continue}}if(p==="["){s(),e.push(m("LBRACKET","[",l));continue}if(p==="]"){s(),e.push(m("RBRACKET","]",l));continue}if(/\d/.test(p)){let g=u(q=>/[\d.]/.test(q)),x=t,b=u(q=>/[a-zA-Z]/.test(q));Et.has(b)?e.push(m("TIME_EXPRESSION",g+b,l)):(t=x,e.push(m("NUMBER",g,l)));continue}if(p==="("){s(),e.push(m("LPAREN","(",l));continue}if(p===")"){s(),e.push(m("RPAREN",")",l));continue}if(p==="{"){s(),e.push(m("LBRACE","{",l));continue}if(p==="}"){s(),e.push(m("RBRACE","}",l));continue}if(p===","){s(),e.push(m("COMMA",",",l));continue}if(p===":"){s(),e.push(m("COLON",":",l));continue}if(p==="."){s(),e.push(m("DOT",".",l));continue}if(p==="+"||p==="-"||p==="*"||p==="/"||p==="%"){s(),e.push(m("OPERATOR",p,l));continue}if(p==="="||p==="!"||p==="<"||p===">"){let g=s();a()==="="&&(g+=s()),e.push(m("COMPARISON",g,l));continue}if(/[a-zA-Z_$]/.test(p)){let g=u(b=>/[\w$]/.test(b)),x=g.toLowerCase();xt.has(x)?e.push(m("CONTEXT_VAR",g,l)):kt.has(x)?e.push(m("LOGICAL",g,l)):vt.has(x)?e.push(m("BOOLEAN",g,l)):e.push(m("IDENTIFIER",g,l));continue}s()}return e.push(m("EOF","",t)),e}var me=class{constructor(){this.tokens=[];this.current=0}parse(e){try{return this.tokens=Ue(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,n={true:"boolean",false:"boolean",null:"null",undefined:"undefined"};return this.createLiteral(t,n[e.value]??"string",e)}if(this.match("TEMPLATE_LITERAL"))return{type:"templateLiteral",value:e.value,start:e.start,end:e.end,line:e.line,column:e.column};if(this.match("TIME_EXPRESSION"))return this.parseTimeExpression(e);if(this.match("ID_SELECTOR"))return this.createSelector(e.value,"id",e);if(this.match("CLASS_SELECTOR"))return this.createSelector(e.value,"class",e);if(this.match("ATTRIBUTE_SELECTOR"))return this.createSelector(e.value,"attribute",e);if(this.match("QUERY_SELECTOR")){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.type==="identifier"?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 Me(r){return new me().parse(r)}function w(r,e){switch(r.type){case"literal":return bt(r);case"selector":return Tt(r,e);case"reference":return Nt(r);case"property-path":return wt(r,e);case"expression":return Rt(r);default:let t=r;throw new Error(`Unknown semantic value type: ${t.type}`)}}function bt(r){let e={type:"literal",value:r.value};return r.dataType?{...e,dataType:r.dataType}:e}function Tt(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 Nt(r){return{type:"contextReference",contextType:r.value,name:r.value}}function wt(r,e){return{type:"propertyAccess",object:w(r.object,e),property:r.property}}function Rt(r){let e=Me(r.raw);return!e.success||!e.node?{type:"identifier",name:r.raw}:e.node}function He(r,e){return r.roles.get(e)}function d(r,e,t){let n=He(r,e);return n?w(n,t):void 0}function h(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),n.semanticRoles&&Object.keys(n.semanticRoles).length>0&&(o.semanticRoles=n.semanticRoles),o}var Ct={action:"toggle",toAST(r,e){let t=d(r,"patient"),n=d(r,"destination"),o=d(r,"duration"),i=t?[t]:[],a={};return n&&(a.on=n),o&&(a.for=o),h("toggle",i,a)}},Lt={action:"add",toAST(r,e){let t=d(r,"patient"),n=d(r,"destination"),o=t?[t]:[],i={};return n&&(i.to=n),h("add",o,i)}},Pt={action:"remove",toAST(r,e){let t=d(r,"patient"),n=d(r,"source"),o=t?[t]:[],i={};return n&&(i.from=n),h("remove",o,i)}},Mt={action:"set",toAST(r,e){let t=d(r,"destination"),n=d(r,"patient"),o=[],i={};return t&&o.push(t),n&&(i.to=n),h("set",o,i)}},At={action:"show",toAST(r,e){let t=d(r,"destination"),n=d(r,"patient"),o=d(r,"duration"),i=[],a={},s=t??n;return s&&i.push(s),o&&(a.with=o),h("show",i,a)}},Vt={action:"hide",toAST(r,e){let t=d(r,"destination"),n=d(r,"patient"),o=d(r,"duration"),i=[],a={},s=t??n;return s&&i.push(s),o&&(a.with=o),h("hide",i,a)}},zt={action:"increment",toAST(r,e){let t=d(r,"destination"),n=d(r,"patient"),o=d(r,"quantity"),i=[],a={},s=t??n;return s&&i.push(s),o&&(a.by=o),h("increment",i,a)}},Ot={action:"decrement",toAST(r,e){let t=d(r,"destination"),n=d(r,"patient"),o=d(r,"quantity"),i=[],a={},s=t??n;return s&&i.push(s),o&&(a.by=o),h("decrement",i,a)}},It={action:"wait",toAST(r,e){let t=d(r,"duration");return h("wait",t?[t]:[],void 0,{isBlocking:!0})}},_t={action:"log",toAST(r,e){let t=d(r,"patient"),n=[];return t&&n.push(t),h("log",n)}},Bt={action:"put",toAST(r,e){let t=d(r,"patient"),n=d(r,"destination"),o=He(r,"method"),i=t?[t]:[],a={};if(n){let s=o?.type==="literal"?String(o.value):"into";a[s]=n}return h("put",i,a)}},Wt={action:"fetch",toAST(r,e){let t=d(r,"source"),n=d(r,"method"),o=d(r,"responseType"),i=d(r,"patient"),a=t?[t]:[],s={};return n&&(s.with=n),o&&(s.as=o),i&&(s.body=i),h("fetch",a,s,{isBlocking:!0})}},$t={action:"append",toAST(r,e){let t=d(r,"patient"),n=d(r,"destination"),o=t?[t]:[],i={};return n&&(i.to=n),h("append",o,i)}},jt={action:"prepend",toAST(r,e){let t=d(r,"patient"),n=d(r,"destination"),o=t?[t]:[],i={};return n&&(i.to=n),h("prepend",o,i)}},Kt={action:"trigger",toAST(r,e){let t=d(r,"event"),n=d(r,"destination"),o=t?[t]:[],i={};return n&&(i.on=n),h("trigger",o,i)}},Ft={action:"send",toAST(r,e){let t=d(r,"event"),n=d(r,"destination"),o=d(r,"patient"),i=t?[t]:[],a={};return n&&(a.to=n),o&&(a.detail=o),h("send",i,a)}},qt={action:"go",toAST(r,e){let t=d(r,"source"),n=d(r,"destination"),o=[],i={};return t&&o.push(t),n&&(i.to=n),h("go",o,i)}},Dt={action:"transition",toAST(r,e){let t=d(r,"patient"),n=d(r,"goal"),o=d(r,"duration"),i=d(r,"destination"),a=t?[t]:[],s={};return n&&(s.to=n),o&&(s.over=o),i&&(s.on=i),h("transition",a,s)}},Ut={action:"focus",toAST(r,e){let t=d(r,"destination"),n=d(r,"patient"),o=[],i={},a=t??n;return a&&o.push(a),h("focus",o,i)}},Ht={action:"blur",toAST(r,e){let t=d(r,"destination"),n=d(r,"patient"),o=[],i=t??n;return i&&o.push(i),h("blur",o)}},Gt={action:"get",toAST(r,e){let t=d(r,"source"),n=d(r,"patient"),o=[],i=t??n;return i&&o.push(i),h("get",o)}},Xt={action:"take",toAST(r,e){let t=d(r,"patient"),n=d(r,"source"),o=t?[t]:[],i={};return n&&(i.from=n),h("take",o,i)}},Zt={action:"call",toAST(r,e){let t=d(r,"patient");return h("call",t?[t]:[])}},Qt={action:"return",toAST(r,e){let t=d(r,"patient");return h("return",t?[t]:[])}},Yt={action:"halt",toAST(r,e){return h("halt",[])}},Jt={action:"throw",toAST(r,e){let t=d(r,"patient");return h("throw",t?[t]:[])}},en={action:"settle",toAST(r,e){let t=d(r,"destination"),n=d(r,"patient"),o=[],i=t??n;return i&&o.push(i),h("settle",o,void 0,{isBlocking:!0})}},tn={action:"swap",toAST(r,e){let t=d(r,"patient"),n=d(r,"source"),o=d(r,"destination"),i=d(r,"style"),a=[],s={};return t&&a.push(t),n&&a.push(n),o&&(s.on=o),i&&(s.with=i),h("swap",a,s)}},nn={action:"morph",toAST(r,e){let t=d(r,"source"),n=d(r,"destination"),o=d(r,"patient"),i=[],a={},s=t??o;return s&&i.push(s),n&&(a.on=n),h("morph",i,a)}},rn={action:"clone",toAST(r,e){let t=d(r,"source"),n=d(r,"destination"),o=d(r,"patient"),i=[],a={},s=t??o;return s&&i.push(s),n&&(a.into=n),h("clone",i,a)}},on={action:"make",toAST(r,e){let t=d(r,"patient");return h("make",t?[t]:[])}},an={action:"measure",toAST(r,e){let t=d(r,"patient"),n=d(r,"destination"),o=d(r,"source"),i=[],a={};t&&i.push(t);let s=n??o;return s&&(a.of=s),h("measure",i,a)}},sn={action:"tell",toAST(r,e){let t=d(r,"destination"),n=d(r,"patient"),o=[],i=t??n;return i&&o.push(i),h("tell",o)}},cn={action:"js",toAST(r,e){let t=d(r,"patient");return h("js",t?[t]:[])}},ln={action:"async",toAST(r,e){return h("async",[])}},un={action:"if",toAST(r,e){let t=d(r,"condition");return h("if",t?[t]:[])}},dn={action:"unless",toAST(r,e){let t=d(r,"condition");return h("unless",t?[t]:[])}},pn={action:"repeat",toAST(r,e){let t=d(r,"quantity"),n=d(r,"patient"),o=[],i=t??n;return i&&o.push(i),h("repeat",o)}},mn={action:"for",toAST(r,e){let t=d(r,"patient"),n=d(r,"source"),o=t?[t]:[],i={};return n&&(i.in=n),h("for",o,i)}},fn={action:"while",toAST(r,e){let t=d(r,"condition");return h("while",t?[t]:[])}},gn={action:"continue",toAST(r,e){return h("continue",[])}},hn={action:"default",toAST(r,e){let t=d(r,"patient"),n=d(r,"source"),o=t?[t]:[],i={};return n&&(i.to=n),h("default",o,i)}},yn={action:"init",toAST(r,e){return h("init",[])}},Sn={action:"behavior",toAST(r,e){let t=d(r,"patient");return h("behavior",t?[t]:[])}},xn={action:"install",toAST(r,e){let t=d(r,"patient"),n=d(r,"destination"),o=t?[t]:[],i={};return n&&(i.on=n),h("install",o,i)}},kn={action:"on",toAST(r,e){let t=d(r,"event"),n=d(r,"source"),o=t?[t]:[],i={};return n&&(i.from=n),h("on",o,i)}},Ge=new Map([["toggle",Ct],["add",Lt],["remove",Pt],["set",Mt],["show",At],["hide",Vt],["increment",zt],["decrement",Ot],["wait",It],["log",_t],["put",Bt],["fetch",Wt],["append",$t],["prepend",jt],["get",Gt],["take",Xt],["trigger",Kt],["send",Ft],["on",kn],["go",qt],["transition",Dt],["focus",Ut],["blur",Ht],["call",Zt],["return",Qt],["halt",Yt],["throw",Jt],["settle",en],["swap",tn],["morph",nn],["clone",rn],["measure",an],["make",on],["tell",sn],["default",hn],["js",cn],["async",ln],["if",un],["unless",dn],["repeat",pn],["for",mn],["while",fn],["continue",gn],["init",yn],["behavior",Sn],["install",xn]]);function oe(r){return Ge.get(r)}function Ae(r){Ge.set(r.action,r)}var ie=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=oe(e.action),n;if(t){let o=t.toAST(e,this);if("ast"in o&&"warnings"in o){let i=o;this.warnings.push(...i.warnings),n=i.ast}else n=o}else n=this.buildGenericCommand(e);if(e.roles&&e.roles.size>0){let o={};for(let[i,a]of e.roles)o[i]=w(a);Object.keys(o).length>0&&(n.semanticRoles=o)}return n}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(w(c))}for(let s of i){let c=e.roles.get(s);if(c){let u=this.roleToModifierKey(s);n[u]=w(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 g=String(t.value);g.includes("|")||g.includes(" or ")?(o=g.split(/\s+or\s+|\|/).map(x=>x.trim()),n=o[0]):n=g}else t?.type==="reference"?n=t.value:n="click";let i=e.body.map(g=>this.build(g)),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 u=e.roles.get("condition"),f=u?w(u):void 0,S=e.roles.get("destination"),y=S?w(S):void 0,m=e.eventModifiers,l=s;if(m?.from){let g=m.from;g.type==="selector"&&!s&&(l=g.value)}let p=e.parameterNames?[...e.parameterNames]:void 0;return{type:"eventHandler",event:n,commands:i,...o&&o.length>1?{events:o}:{},...l?{selector:l}:{},...c?{target:c}:{},...f?{condition:f}:{},...y?{watchTarget:y}:{},...p&&p.length>0?{args:p,params:p}:{}}}buildConditional(e){let t=e.roles.get("condition");if(!t)throw new Error("Conditional node missing condition");let n=w(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(w(o));break}case"for":{e.loopVariable&&n.push({type:"string",value:e.loopVariable});let o=e.roles.get("source");o&&n.push(w(o));break}case"while":case"until":{let o=e.roles.get("condition");o&&n.push(w(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 Xe(r){let e=new ie;return{ast:e.build(r),warnings:e.warnings}}var F=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 F;var ae=class{constructor(e={}){this.patternMatcher=new te,this.languages=new Set(H()),e.cache===!1?this.cache=new F({enabled:!1}):this.cache=e.cache?new F(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{try{let s=W(e,t),c={confidence:s.metadata?.confidence??.8,node:s};return s.kind==="command"?{...c,command:{name:s.action,roles:s.roles}}:c}catch{}let n=Fe(t);if(!n)return{confidence:0,errors:[`No tokenizer available for language '${t}'`]};let o=n.tokenize(e),i=P(t);if(i.length===0)return{confidence:0,errors:[`No patterns available for language '${t}'`]};let a=this.patternMatcher.matchBest(o,i);if(a){let s=this.buildSemanticNode(a);return{confidence:a.confidence,command:{name:a.pattern.command,roles:a.captured},node:s,tokensConsumed:a.consumedTokens}}return{confidence:0,errors:["No pattern matched the input"]}}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 Ze(r){return new ae(r)}var ze=.5,Qe=.8;function Ye(r,e=ze){return r.confidence>=e&&r.command!==void 0}var vn="1.0.0-core";function En(r,e){if(!G(e))throw new Error(`Language '${e}' is not loaded. Load it via script tag or loadLanguageFromUrl().`);return[...X(r,e).tokens]}async function bn(r,e){try{let t=await fetch(e);if(!t.ok)throw new Error(`HTTP ${t.status}: ${t.statusText}`);let n=await t.text(),o=document.createElement("script");return o.textContent=n,document.head.appendChild(o),document.head.removeChild(o),G(r)?{loaded:!0}:{loaded:!1,error:`Script loaded but language '${r}' was not registered`}}catch(t){return{loaded:!1,error:t instanceof Error?t.message:String(t)}}}function Tn(r,e){le(r,e.tokenizer,e.profile),e.patterns?J(r,e.patterns):e.buildPatterns&&J(r,e.buildPatterns())}return it(Nn);})();
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Browser Bundle Entry Point (No Languages)
|
|
3
|
+
*
|
|
4
|
+
* A minimal browser bundle that includes only the parsing infrastructure.
|
|
5
|
+
* Languages must be loaded via URL or pre-loaded modules.
|
|
6
|
+
*
|
|
7
|
+
* This is ideal for:
|
|
8
|
+
* - CDN-based language loading
|
|
9
|
+
* - Applications that load languages dynamically from external sources
|
|
10
|
+
* - Minimizing initial bundle size
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```html
|
|
14
|
+
* <script src="hyperfixi-semantic-core.global.js"></script>
|
|
15
|
+
* <script src="lang/en.global.js"></script> <!-- Self-registering -->
|
|
16
|
+
* <script>
|
|
17
|
+
* const ast = LokaScriptSemanticCore.parse('toggle .active', 'en');
|
|
18
|
+
* </script>
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```html
|
|
23
|
+
* <script src="hyperfixi-semantic-core.global.js"></script>
|
|
24
|
+
* <script>
|
|
25
|
+
* // Load from URL
|
|
26
|
+
* await LokaScriptSemanticCore.loadLanguageFromUrl('ja', '/lang/ja.global.js');
|
|
27
|
+
* const ast = LokaScriptSemanticCore.parse('トグル .active', 'ja');
|
|
28
|
+
* </script>
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare const VERSION = "1.0.0-core";
|
|
32
|
+
export { registerLanguage, registerPatterns, getTokenizer, isLanguageSupported, isLanguageRegistered, getRegisteredLanguages, getProfile, tryGetProfile, getPatternsForLanguage, setPatternGenerator, } from './registry';
|
|
33
|
+
import type { LanguageToken } from './types';
|
|
34
|
+
/**
|
|
35
|
+
* Tokenize input and return array of tokens.
|
|
36
|
+
* @throws Error if language is not loaded
|
|
37
|
+
*/
|
|
38
|
+
export declare function tokenize(input: string, language: string): LanguageToken[];
|
|
39
|
+
export { parse, canParse } from './parser';
|
|
40
|
+
export { parseAny, parseExplicit, isExplicitSyntax } from './explicit';
|
|
41
|
+
export { render, renderExplicit, toExplicit, fromExplicit } from './explicit';
|
|
42
|
+
export { buildAST, ASTBuilder, getCommandMapper, registerCommandMapper } from './ast-builder';
|
|
43
|
+
export { createSemanticAnalyzer, SemanticAnalyzerImpl, shouldUseSemanticResult, DEFAULT_CONFIDENCE_THRESHOLD, HIGH_CONFIDENCE_THRESHOLD, } from './core-bridge';
|
|
44
|
+
export type { SemanticAnalyzer, SemanticAnalysisResult } from './core-bridge';
|
|
45
|
+
import { type LanguageProfile } from './registry';
|
|
46
|
+
import type { LanguageTokenizer, LanguagePattern } from './types';
|
|
47
|
+
export type { LanguagePattern };
|
|
48
|
+
/**
|
|
49
|
+
* A language module that can be registered.
|
|
50
|
+
*/
|
|
51
|
+
export interface LanguageModule {
|
|
52
|
+
tokenizer: LanguageTokenizer;
|
|
53
|
+
profile: LanguageProfile;
|
|
54
|
+
patterns?: LanguagePattern[];
|
|
55
|
+
buildPatterns?: () => LanguagePattern[];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Load a language from a URL.
|
|
59
|
+
*
|
|
60
|
+
* The URL should point to a JavaScript file that:
|
|
61
|
+
* - Either self-registers the language (recommended for IIFE bundles)
|
|
62
|
+
* - Or exports a LanguageModule object
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```typescript
|
|
66
|
+
* // Load self-registering bundle
|
|
67
|
+
* await loadLanguageFromUrl('ja', '/lang/ja.global.js');
|
|
68
|
+
*
|
|
69
|
+
* // Load from CDN
|
|
70
|
+
* await loadLanguageFromUrl('ko', 'https://cdn.example.com/semantic/lang/ko.js');
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export declare function loadLanguageFromUrl(code: string, url: string): Promise<{
|
|
74
|
+
loaded: boolean;
|
|
75
|
+
error?: string;
|
|
76
|
+
}>;
|
|
77
|
+
/**
|
|
78
|
+
* Register a pre-loaded language module.
|
|
79
|
+
*/
|
|
80
|
+
export declare function registerLanguageModule(code: string, module: LanguageModule): void;
|
|
81
|
+
export { createSelector, createLiteral, createReference, createPropertyPath, createCommandNode, createEventHandler, } from './types';
|
|
82
|
+
export type { ActionType, SemanticRole, SemanticValue, SemanticNode, LanguageToken, TokenStream, } from './types';
|
|
83
|
+
//# sourceMappingURL=browser-core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-core.d.ts","sourceRoot":"","sources":["../src/browser-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAMH,eAAO,MAAM,OAAO,eAAe,CAAC;AAMpC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,UAAU,EACV,aAAa,EACb,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAMpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7C;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CAQzE;AAMD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMvE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM9E,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAM9F,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAM9E,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAGlE,YAAY,EAAE,eAAe,EAAE,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,eAAe,EAAE,CAAC;CACzC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA+B9C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAQjF;AAMD,OAAO,EACL,cAAc,EACd,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,SAAS,CAAC;AAMjB,YAAY,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* German Browser Bundle Entry Point
|
|
3
|
+
*
|
|
4
|
+
* Minimal single-language bundle.
|
|
5
|
+
* Estimated size: ~69 KB (~24 KB gzip)
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```html
|
|
9
|
+
* <script src="hyperfixi-semantic.de.global.js"></script>
|
|
10
|
+
* <script>
|
|
11
|
+
* const ast = LokaScriptSemanticDe.parse('toggle .active', 'de');
|
|
12
|
+
* </script>
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
import './languages/de';
|
|
16
|
+
export declare const VERSION = "1.0.0-de";
|
|
17
|
+
/**
|
|
18
|
+
* Get all supported languages in this bundle.
|
|
19
|
+
*/
|
|
20
|
+
export declare function getSupportedLanguages(): string[];
|
|
21
|
+
export { getTokenizer, isLanguageSupported } from './registry';
|
|
22
|
+
import type { LanguageToken } from './types';
|
|
23
|
+
/**
|
|
24
|
+
* Tokenize input and return array of tokens (browser-friendly wrapper).
|
|
25
|
+
*/
|
|
26
|
+
export declare function tokenize(input: string, language: string): LanguageToken[];
|
|
27
|
+
export { germanTokenizer } from './tokenizers/german';
|
|
28
|
+
import type { LanguagePattern, ActionType } from './types';
|
|
29
|
+
/**
|
|
30
|
+
* Get all patterns for a language.
|
|
31
|
+
*/
|
|
32
|
+
export declare function getPatternsForLanguage(language: string): LanguagePattern[];
|
|
33
|
+
/**
|
|
34
|
+
* Get patterns for a language and specific command.
|
|
35
|
+
*/
|
|
36
|
+
export declare function getPatternsForLanguageAndCommand(language: string, command: ActionType): LanguagePattern[];
|
|
37
|
+
export { getProfile, tryGetProfile } from './registry';
|
|
38
|
+
export { germanProfile } from './generators/language-profiles';
|
|
39
|
+
export { parse, canParse } from './parser';
|
|
40
|
+
export { parseAny, parseExplicit, isExplicitSyntax } from './explicit';
|
|
41
|
+
export { render, renderExplicit, toExplicit, fromExplicit } from './explicit';
|
|
42
|
+
export { buildAST, ASTBuilder, getCommandMapper, registerCommandMapper } from './ast-builder';
|
|
43
|
+
export { createSemanticAnalyzer, SemanticAnalyzerImpl, shouldUseSemanticResult, DEFAULT_CONFIDENCE_THRESHOLD, HIGH_CONFIDENCE_THRESHOLD, } from './core-bridge';
|
|
44
|
+
export type { SemanticAnalyzer, SemanticAnalysisResult } from './core-bridge';
|
|
45
|
+
export { createSelector, createLiteral, createReference, createPropertyPath, createCommandNode, createEventHandler, } from './types';
|
|
46
|
+
export type { ActionType, SemanticRole, SemanticValue, SemanticNode, LanguageToken, TokenStream, } from './types';
|
|
47
|
+
//# sourceMappingURL=browser-de.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-de.d.ts","sourceRoot":"","sources":["../src/browser-de.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,gBAAgB,CAAC;AAMxB,eAAO,MAAM,OAAO,aAAa,CAAC;AAQlC;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAeD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7C;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CAIzE;AAGD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAOtD,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE3D;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE,CAG1E;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,UAAU,GAClB,eAAe,EAAE,CAInB;AAMD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAM/D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMvE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM9E,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAM9F,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAM9E,OAAO,EACL,cAAc,EACd,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,SAAS,CAAC;AAMjB,YAAY,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,MAAM,SAAS,CAAC"}
|