@lokascript/semantic 1.3.0 → 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 +7 -30
- package/dist/languages/bn.d.ts.map +1 -0
- package/dist/languages/bn.js +83 -21
- package/dist/languages/bn.js.map +1 -1
- 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 +18 -17
- package/dist/languages/es-MX.d.ts.map +1 -0
- package/dist/languages/es-MX.js +66 -13
- package/dist/languages/es-MX.js.map +1 -1
- package/dist/languages/es.d.ts +6 -10
- 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 +6 -67
- package/dist/languages/he.d.ts.map +1 -0
- package/dist/languages/he.js +60 -13
- package/dist/languages/he.js.map +1 -1
- package/dist/languages/hi.d.ts +14 -32
- package/dist/languages/hi.d.ts.map +1 -0
- package/dist/languages/hi.js +60 -13
- package/dist/languages/hi.js.map +1 -1
- 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 +6 -50
- package/dist/languages/it.d.ts.map +1 -0
- package/dist/languages/it.js +60 -13
- package/dist/languages/it.js.map +1 -1
- 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 +7 -29
- package/dist/languages/ms.d.ts.map +1 -0
- package/dist/languages/ms.js +58 -13
- package/dist/languages/ms.js.map +1 -1
- package/dist/languages/pl.d.ts +8 -33
- package/dist/languages/pl.d.ts.map +1 -0
- package/dist/languages/pl.js +277 -22
- package/dist/languages/pl.js.map +1 -1
- 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 +14 -33
- package/dist/languages/ru.d.ts.map +1 -0
- package/dist/languages/ru.js +371 -22
- package/dist/languages/ru.js.map +1 -1
- 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 +7 -32
- package/dist/languages/th.d.ts.map +1 -0
- package/dist/languages/th.js +60 -13
- package/dist/languages/th.js.map +1 -1
- package/dist/languages/tl.d.ts +7 -29
- package/dist/languages/tl.d.ts.map +1 -0
- package/dist/languages/tl.js +75 -23
- package/dist/languages/tl.js.map +1 -1
- 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 +14 -33
- package/dist/languages/uk.d.ts.map +1 -0
- package/dist/languages/uk.js +357 -22
- package/dist/languages/uk.js.map +1 -1
- package/dist/languages/vi.d.ts +7 -56
- package/dist/languages/vi.d.ts.map +1 -0
- package/dist/languages/vi.js +59 -13
- package/dist/languages/vi.js.map +1 -1
- 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/{spanish-BedpM-NU.d.ts → tokenizers/spanish.d.ts} +5 -7
- 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 +38 -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
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import type { LanguagePattern, PatternToken, ExtractionRule } from '../types';
|
|
10
|
-
import type { LanguageProfile
|
|
10
|
+
import type { LanguageProfile } from './language-profiles';
|
|
11
11
|
import type { CommandSchema, RoleSpec } from './command-schemas';
|
|
12
12
|
import { getDefinedSchemas } from './command-schemas';
|
|
13
13
|
|
|
@@ -15,6 +15,26 @@ import { getDefinedSchemas } from './command-schemas';
|
|
|
15
15
|
import { sortRolesByWordOrder } from '../parser/utils/role-positioning';
|
|
16
16
|
import { resolveMarkerForRole } from '../parser/utils/marker-resolution';
|
|
17
17
|
|
|
18
|
+
// Import word-order-specific event handler generators
|
|
19
|
+
import {
|
|
20
|
+
generateSOVEventHandlerPattern,
|
|
21
|
+
generateSOVPatientFirstEventHandlerPattern,
|
|
22
|
+
generateSOVPatientFirstWithDestEventHandlerPattern,
|
|
23
|
+
generateSOVCompactEventHandlerPattern,
|
|
24
|
+
generateSOVSimpleEventHandlerPattern,
|
|
25
|
+
generateSOVTemporalEventHandlerPattern,
|
|
26
|
+
generateSOVTwoRoleEventHandlerPattern,
|
|
27
|
+
generateSOVTwoRoleDestFirstEventHandlerPattern,
|
|
28
|
+
} from './event-handlers-sov';
|
|
29
|
+
import {
|
|
30
|
+
generateVSOEventHandlerPattern,
|
|
31
|
+
generateVSOVerbFirstEventHandlerPattern,
|
|
32
|
+
generateVSOVerbFirstTwoRoleEventHandlerPattern,
|
|
33
|
+
generateVSOTwoRoleEventHandlerPattern,
|
|
34
|
+
generateVSONegatedEventHandlerPattern,
|
|
35
|
+
generateVSOProcliticEventHandlerPattern,
|
|
36
|
+
} from './event-handlers-vso';
|
|
37
|
+
|
|
18
38
|
// Note: languageProfiles is no longer imported here.
|
|
19
39
|
// Pattern generation for specific languages uses the registry instead.
|
|
20
40
|
|
|
@@ -271,12 +291,25 @@ export function generateEventHandlerPatterns(
|
|
|
271
291
|
// Generate pattern based on word order
|
|
272
292
|
if (profile.wordOrder === 'SOV') {
|
|
273
293
|
if (hasTwoRequiredRoles) {
|
|
274
|
-
// Two-role SOV pattern for put/set commands
|
|
294
|
+
// Two-role SOV pattern for put/set commands (event-first)
|
|
275
295
|
// Japanese put: 入力 で "test" を #output に 入れる
|
|
276
296
|
// Korean set: 변경 할 때 x 를 10 으로 설정
|
|
277
297
|
patterns.push(
|
|
278
298
|
generateSOVTwoRoleEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config)
|
|
279
299
|
);
|
|
300
|
+
|
|
301
|
+
// Two-role SOV pattern (destination-first variant)
|
|
302
|
+
// Bengali set: @disabled কে ক্লিক এ সেট সত্য তে
|
|
303
|
+
// Quechua set: x ta ñitiy pi 10 man churay
|
|
304
|
+
patterns.push(
|
|
305
|
+
generateSOVTwoRoleDestFirstEventHandlerPattern(
|
|
306
|
+
commandSchema,
|
|
307
|
+
profile,
|
|
308
|
+
keyword,
|
|
309
|
+
eventMarker,
|
|
310
|
+
config
|
|
311
|
+
)
|
|
312
|
+
);
|
|
280
313
|
} else {
|
|
281
314
|
// SOV: [event] [eventMarker] [destination? destMarker?] [patient] [patientMarker] [verb]
|
|
282
315
|
// Japanese: クリック で #button の .active を 切り替え
|
|
@@ -286,6 +319,37 @@ export function generateEventHandlerPatterns(
|
|
|
286
319
|
generateSOVEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config)
|
|
287
320
|
);
|
|
288
321
|
|
|
322
|
+
// Patient-first SOV variants: patient before event (common in Bengali, Quechua)
|
|
323
|
+
// Bengali: .active কে ক্লিক এ টগল (patient + event + verb)
|
|
324
|
+
// Quechua: .highlight ta noqa man ñitiy pi yapay (patient + dest + event + verb)
|
|
325
|
+
// Both orders are valid in SOV languages depending on topic/focus.
|
|
326
|
+
|
|
327
|
+
// Variant 1: Simple (no destination) — higher priority
|
|
328
|
+
patterns.push(
|
|
329
|
+
generateSOVPatientFirstEventHandlerPattern(
|
|
330
|
+
commandSchema,
|
|
331
|
+
profile,
|
|
332
|
+
keyword,
|
|
333
|
+
eventMarker,
|
|
334
|
+
config
|
|
335
|
+
)
|
|
336
|
+
);
|
|
337
|
+
|
|
338
|
+
// Variant 2: With destination (required, not optional) — lower priority
|
|
339
|
+
// Only add if destination marker differs from event marker to avoid collision
|
|
340
|
+
const destMarkerCheck = profile.roleMarkers.destination;
|
|
341
|
+
if (destMarkerCheck && destMarkerCheck.primary !== eventMarker.primary) {
|
|
342
|
+
patterns.push(
|
|
343
|
+
generateSOVPatientFirstWithDestEventHandlerPattern(
|
|
344
|
+
commandSchema,
|
|
345
|
+
profile,
|
|
346
|
+
keyword,
|
|
347
|
+
eventMarker,
|
|
348
|
+
config
|
|
349
|
+
)
|
|
350
|
+
);
|
|
351
|
+
}
|
|
352
|
+
|
|
289
353
|
// For multi-word event markers with no-space alternatives (Korean compact forms),
|
|
290
354
|
// also generate a pattern that accepts the compact form
|
|
291
355
|
// Example: 클릭할때 .active를토글 (할때 as single token)
|
|
@@ -325,11 +389,23 @@ export function generateEventHandlerPatterns(
|
|
|
325
389
|
}
|
|
326
390
|
} else if (profile.wordOrder === 'VSO') {
|
|
327
391
|
if (hasTwoRequiredRoles) {
|
|
328
|
-
// Two-role VSO pattern for put/set commands
|
|
392
|
+
// Two-role VSO pattern for put/set commands (event-first)
|
|
329
393
|
// Arabic put: عند الإدخال ضع "test" في #output
|
|
330
394
|
patterns.push(
|
|
331
395
|
generateVSOTwoRoleEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config)
|
|
332
396
|
);
|
|
397
|
+
|
|
398
|
+
// Two-role VSO verb-first variant (event handler at end)
|
|
399
|
+
// Tagalog: itakda aking *background sa "red" kapag click
|
|
400
|
+
patterns.push(
|
|
401
|
+
generateVSOVerbFirstTwoRoleEventHandlerPattern(
|
|
402
|
+
commandSchema,
|
|
403
|
+
profile,
|
|
404
|
+
keyword,
|
|
405
|
+
eventMarker,
|
|
406
|
+
config
|
|
407
|
+
)
|
|
408
|
+
);
|
|
333
409
|
} else {
|
|
334
410
|
// VSO: [eventMarker] [event] [verb] [patient] [على destination?]
|
|
335
411
|
// Arabic: عند النقر بدّل .active على #button
|
|
@@ -337,6 +413,19 @@ export function generateEventHandlerPatterns(
|
|
|
337
413
|
generateVSOEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config)
|
|
338
414
|
);
|
|
339
415
|
|
|
416
|
+
// VSO verb-first variant: [verb] [patient] [eventMarker] [event]
|
|
417
|
+
// Tagalog: alisin ako kapag click (remove me on click)
|
|
418
|
+
// Tagalog: palitan .active kapag click (toggle .active on click)
|
|
419
|
+
patterns.push(
|
|
420
|
+
generateVSOVerbFirstEventHandlerPattern(
|
|
421
|
+
commandSchema,
|
|
422
|
+
profile,
|
|
423
|
+
keyword,
|
|
424
|
+
eventMarker,
|
|
425
|
+
config
|
|
426
|
+
)
|
|
427
|
+
);
|
|
428
|
+
|
|
340
429
|
// Add negated event pattern variant for languages with negation markers
|
|
341
430
|
// Pattern: [eventMarker] [negation] [event] [verb] [patient]
|
|
342
431
|
// Example: عند عدم التركيز أخف #tooltip = "on blur hide #tooltip"
|
|
@@ -377,738 +466,6 @@ export function generateEventHandlerPatterns(
|
|
|
377
466
|
return patterns;
|
|
378
467
|
}
|
|
379
468
|
|
|
380
|
-
/**
|
|
381
|
-
* Generate SOV event handler pattern (Japanese, Korean, Turkish).
|
|
382
|
-
*/
|
|
383
|
-
function generateSOVEventHandlerPattern(
|
|
384
|
-
commandSchema: CommandSchema,
|
|
385
|
-
profile: LanguageProfile,
|
|
386
|
-
keyword: KeywordTranslation,
|
|
387
|
-
eventMarker: RoleMarker,
|
|
388
|
-
config: GeneratorConfig
|
|
389
|
-
): LanguagePattern {
|
|
390
|
-
const tokens: PatternToken[] = [];
|
|
391
|
-
|
|
392
|
-
// Event role
|
|
393
|
-
tokens.push({ type: 'role', role: 'event', optional: false });
|
|
394
|
-
|
|
395
|
-
// Event marker (after event in SOV)
|
|
396
|
-
// Handle multi-word markers like Korean "할 때" by splitting into separate tokens
|
|
397
|
-
if (eventMarker.position === 'after') {
|
|
398
|
-
const markerWords = eventMarker.primary.split(/\s+/);
|
|
399
|
-
if (markerWords.length > 1) {
|
|
400
|
-
// Multi-word marker: create a token for each word
|
|
401
|
-
for (const word of markerWords) {
|
|
402
|
-
tokens.push({ type: 'literal', value: word });
|
|
403
|
-
}
|
|
404
|
-
} else {
|
|
405
|
-
// Single-word marker: include alternatives
|
|
406
|
-
const markerToken: PatternToken = eventMarker.alternatives
|
|
407
|
-
? { type: 'literal', value: eventMarker.primary, alternatives: eventMarker.alternatives }
|
|
408
|
-
: { type: 'literal', value: eventMarker.primary };
|
|
409
|
-
tokens.push(markerToken);
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
|
|
413
|
-
// Optional destination with its marker
|
|
414
|
-
const destMarker = profile.roleMarkers.destination;
|
|
415
|
-
if (destMarker) {
|
|
416
|
-
tokens.push({
|
|
417
|
-
type: 'group',
|
|
418
|
-
optional: true,
|
|
419
|
-
tokens: [
|
|
420
|
-
{ type: 'role', role: 'destination', optional: true },
|
|
421
|
-
destMarker.alternatives
|
|
422
|
-
? { type: 'literal', value: destMarker.primary, alternatives: destMarker.alternatives }
|
|
423
|
-
: { type: 'literal', value: destMarker.primary },
|
|
424
|
-
],
|
|
425
|
-
});
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
// Patient role
|
|
429
|
-
tokens.push({ type: 'role', role: 'patient', optional: false });
|
|
430
|
-
|
|
431
|
-
// Patient marker (postposition/particle after patient)
|
|
432
|
-
const patientMarker = profile.roleMarkers.patient;
|
|
433
|
-
if (patientMarker) {
|
|
434
|
-
const patMarkerToken: PatternToken = patientMarker.alternatives
|
|
435
|
-
? { type: 'literal', value: patientMarker.primary, alternatives: patientMarker.alternatives }
|
|
436
|
-
: { type: 'literal', value: patientMarker.primary };
|
|
437
|
-
tokens.push(patMarkerToken);
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
// Command verb at end (SOV)
|
|
441
|
-
const verbToken: PatternToken = keyword.alternatives
|
|
442
|
-
? { type: 'literal', value: keyword.primary, alternatives: keyword.alternatives }
|
|
443
|
-
: { type: 'literal', value: keyword.primary };
|
|
444
|
-
tokens.push(verbToken);
|
|
445
|
-
|
|
446
|
-
return {
|
|
447
|
-
id: `${commandSchema.action}-event-${profile.code}-sov`,
|
|
448
|
-
language: profile.code,
|
|
449
|
-
command: 'on', // This is an event handler pattern
|
|
450
|
-
priority: (config.basePriority ?? 100) + 50, // Higher priority than simple commands
|
|
451
|
-
template: {
|
|
452
|
-
format: `{event} ${eventMarker.primary} {destination?} {patient} ${patientMarker?.primary || ''} ${keyword.primary}`,
|
|
453
|
-
tokens,
|
|
454
|
-
},
|
|
455
|
-
extraction: {
|
|
456
|
-
action: { value: commandSchema.action }, // Extract the wrapped command
|
|
457
|
-
event: { fromRole: 'event' },
|
|
458
|
-
patient: { fromRole: 'patient' },
|
|
459
|
-
destination: { fromRole: 'destination', default: { type: 'reference', value: 'me' } },
|
|
460
|
-
},
|
|
461
|
-
};
|
|
462
|
-
}
|
|
463
|
-
|
|
464
|
-
/**
|
|
465
|
-
* Generate SOV compact event handler pattern for languages with no-space forms.
|
|
466
|
-
*
|
|
467
|
-
* This handles Korean compact forms where the event marker is attached directly
|
|
468
|
-
* to the event word without a space:
|
|
469
|
-
* - 클릭할때 .active를토글 (click+when toggle .active)
|
|
470
|
-
*
|
|
471
|
-
* The pattern uses a single token for the no-space marker alternatives.
|
|
472
|
-
*/
|
|
473
|
-
function generateSOVCompactEventHandlerPattern(
|
|
474
|
-
commandSchema: CommandSchema,
|
|
475
|
-
profile: LanguageProfile,
|
|
476
|
-
keyword: KeywordTranslation,
|
|
477
|
-
eventMarker: RoleMarker,
|
|
478
|
-
config: GeneratorConfig
|
|
479
|
-
): LanguagePattern {
|
|
480
|
-
const tokens: PatternToken[] = [];
|
|
481
|
-
|
|
482
|
-
// Event role
|
|
483
|
-
tokens.push({ type: 'role', role: 'event', optional: false });
|
|
484
|
-
|
|
485
|
-
// Event marker as single token (using no-space alternatives)
|
|
486
|
-
// Filter alternatives to only include no-space versions
|
|
487
|
-
const noSpaceAlternatives =
|
|
488
|
-
eventMarker.alternatives?.filter(alt => !alt.includes(' ') && alt.length > 1) || [];
|
|
489
|
-
|
|
490
|
-
if (noSpaceAlternatives.length > 0) {
|
|
491
|
-
tokens.push({
|
|
492
|
-
type: 'literal',
|
|
493
|
-
value: noSpaceAlternatives[0],
|
|
494
|
-
alternatives: noSpaceAlternatives.slice(1),
|
|
495
|
-
});
|
|
496
|
-
}
|
|
497
|
-
|
|
498
|
-
// Optional destination with its marker
|
|
499
|
-
const destMarker = profile.roleMarkers.destination;
|
|
500
|
-
if (destMarker) {
|
|
501
|
-
tokens.push({
|
|
502
|
-
type: 'group',
|
|
503
|
-
optional: true,
|
|
504
|
-
tokens: [
|
|
505
|
-
{ type: 'role', role: 'destination', optional: true },
|
|
506
|
-
destMarker.alternatives
|
|
507
|
-
? { type: 'literal', value: destMarker.primary, alternatives: destMarker.alternatives }
|
|
508
|
-
: { type: 'literal', value: destMarker.primary },
|
|
509
|
-
],
|
|
510
|
-
});
|
|
511
|
-
}
|
|
512
|
-
|
|
513
|
-
// Patient role
|
|
514
|
-
tokens.push({ type: 'role', role: 'patient', optional: false });
|
|
515
|
-
|
|
516
|
-
// Patient marker (postposition/particle after patient)
|
|
517
|
-
const patientMarker = profile.roleMarkers.patient;
|
|
518
|
-
if (patientMarker) {
|
|
519
|
-
const patMarkerToken: PatternToken = patientMarker.alternatives
|
|
520
|
-
? { type: 'literal', value: patientMarker.primary, alternatives: patientMarker.alternatives }
|
|
521
|
-
: { type: 'literal', value: patientMarker.primary };
|
|
522
|
-
tokens.push(patMarkerToken);
|
|
523
|
-
}
|
|
524
|
-
|
|
525
|
-
// Command verb at end (SOV)
|
|
526
|
-
const verbToken: PatternToken = keyword.alternatives
|
|
527
|
-
? { type: 'literal', value: keyword.primary, alternatives: keyword.alternatives }
|
|
528
|
-
: { type: 'literal', value: keyword.primary };
|
|
529
|
-
tokens.push(verbToken);
|
|
530
|
-
|
|
531
|
-
return {
|
|
532
|
-
id: `${commandSchema.action}-event-${profile.code}-sov-compact`,
|
|
533
|
-
language: profile.code,
|
|
534
|
-
command: 'on', // This is an event handler pattern
|
|
535
|
-
priority: (config.basePriority ?? 100) + 52, // Slightly higher priority for compact forms
|
|
536
|
-
template: {
|
|
537
|
-
format: `{event}${noSpaceAlternatives[0] || ''} {patient} ${keyword.primary}`,
|
|
538
|
-
tokens,
|
|
539
|
-
},
|
|
540
|
-
extraction: {
|
|
541
|
-
action: { value: commandSchema.action }, // Extract the wrapped command
|
|
542
|
-
event: { fromRole: 'event' },
|
|
543
|
-
patient: { fromRole: 'patient' },
|
|
544
|
-
destination: { fromRole: 'destination', default: { type: 'reference', value: 'me' } },
|
|
545
|
-
},
|
|
546
|
-
};
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
/**
|
|
550
|
-
* Generate SOV simple event handler pattern (patient optional, defaults to 'me').
|
|
551
|
-
*
|
|
552
|
-
* Supports patterns like:
|
|
553
|
-
* - Japanese: クリック で 増加 (click on increment)
|
|
554
|
-
* - Korean: 클릭 할 때 증가 (click when increment)
|
|
555
|
-
* - Turkish: tıklama da artır (click on increment)
|
|
556
|
-
*
|
|
557
|
-
* The patient is not explicitly specified - it defaults to 'me' (current element).
|
|
558
|
-
*/
|
|
559
|
-
function generateSOVSimpleEventHandlerPattern(
|
|
560
|
-
commandSchema: CommandSchema,
|
|
561
|
-
profile: LanguageProfile,
|
|
562
|
-
keyword: KeywordTranslation,
|
|
563
|
-
eventMarker: RoleMarker,
|
|
564
|
-
config: GeneratorConfig
|
|
565
|
-
): LanguagePattern {
|
|
566
|
-
const tokens: PatternToken[] = [];
|
|
567
|
-
|
|
568
|
-
// Event role
|
|
569
|
-
tokens.push({ type: 'role', role: 'event', optional: false });
|
|
570
|
-
|
|
571
|
-
// Event marker (after event in SOV)
|
|
572
|
-
if (eventMarker.position === 'after') {
|
|
573
|
-
const markerWords = eventMarker.primary.split(/\s+/);
|
|
574
|
-
if (markerWords.length > 1) {
|
|
575
|
-
// Multi-word marker: create a token for each word
|
|
576
|
-
for (const word of markerWords) {
|
|
577
|
-
tokens.push({ type: 'literal', value: word });
|
|
578
|
-
}
|
|
579
|
-
} else {
|
|
580
|
-
const markerToken: PatternToken = eventMarker.alternatives
|
|
581
|
-
? { type: 'literal', value: eventMarker.primary, alternatives: eventMarker.alternatives }
|
|
582
|
-
: { type: 'literal', value: eventMarker.primary };
|
|
583
|
-
tokens.push(markerToken);
|
|
584
|
-
}
|
|
585
|
-
}
|
|
586
|
-
|
|
587
|
-
// Command verb at end (SOV) - no patient required
|
|
588
|
-
const verbToken: PatternToken = keyword.alternatives
|
|
589
|
-
? { type: 'literal', value: keyword.primary, alternatives: keyword.alternatives }
|
|
590
|
-
: { type: 'literal', value: keyword.primary };
|
|
591
|
-
tokens.push(verbToken);
|
|
592
|
-
|
|
593
|
-
return {
|
|
594
|
-
id: `${commandSchema.action}-event-${profile.code}-sov-simple`,
|
|
595
|
-
language: profile.code,
|
|
596
|
-
command: 'on',
|
|
597
|
-
priority: (config.basePriority ?? 100) + 48, // Lower than full pattern (50) but higher than base
|
|
598
|
-
template: {
|
|
599
|
-
format: `{event} ${eventMarker.primary} ${keyword.primary}`,
|
|
600
|
-
tokens,
|
|
601
|
-
},
|
|
602
|
-
extraction: {
|
|
603
|
-
action: { value: commandSchema.action },
|
|
604
|
-
event: { fromRole: 'event' },
|
|
605
|
-
patient: { default: { type: 'reference', value: 'me' } }, // Default to 'me'
|
|
606
|
-
},
|
|
607
|
-
};
|
|
608
|
-
}
|
|
609
|
-
|
|
610
|
-
/**
|
|
611
|
-
* Generate SOV temporal event handler pattern.
|
|
612
|
-
*
|
|
613
|
-
* Supports patterns with temporal markers like:
|
|
614
|
-
* - Japanese: クリック 時 .active を 切り替え (click time toggle .active)
|
|
615
|
-
* - Japanese: クリック の 時 .active を 切り替え (click's time toggle .active)
|
|
616
|
-
*
|
|
617
|
-
* Uses profile.eventHandler.temporalMarkers for language-specific temporal words.
|
|
618
|
-
*/
|
|
619
|
-
function generateSOVTemporalEventHandlerPattern(
|
|
620
|
-
commandSchema: CommandSchema,
|
|
621
|
-
profile: LanguageProfile,
|
|
622
|
-
keyword: KeywordTranslation,
|
|
623
|
-
config: GeneratorConfig
|
|
624
|
-
): LanguagePattern | null {
|
|
625
|
-
const temporalMarkers = profile.eventHandler?.temporalMarkers;
|
|
626
|
-
if (!temporalMarkers || temporalMarkers.length === 0) return null;
|
|
627
|
-
|
|
628
|
-
const tokens: PatternToken[] = [];
|
|
629
|
-
|
|
630
|
-
// Event role
|
|
631
|
-
tokens.push({ type: 'role', role: 'event', optional: false });
|
|
632
|
-
|
|
633
|
-
// Optional possessive marker (の in Japanese)
|
|
634
|
-
if (profile.possessive?.marker) {
|
|
635
|
-
tokens.push({
|
|
636
|
-
type: 'group',
|
|
637
|
-
optional: true,
|
|
638
|
-
tokens: [{ type: 'literal', value: profile.possessive.marker }],
|
|
639
|
-
});
|
|
640
|
-
}
|
|
641
|
-
|
|
642
|
-
// Temporal marker (時, とき in Japanese)
|
|
643
|
-
tokens.push({
|
|
644
|
-
type: 'literal',
|
|
645
|
-
value: temporalMarkers[0],
|
|
646
|
-
alternatives: temporalMarkers.slice(1),
|
|
647
|
-
});
|
|
648
|
-
|
|
649
|
-
// Patient role
|
|
650
|
-
tokens.push({ type: 'role', role: 'patient', optional: false });
|
|
651
|
-
|
|
652
|
-
// Patient marker
|
|
653
|
-
const patientMarker = profile.roleMarkers.patient;
|
|
654
|
-
if (patientMarker?.primary) {
|
|
655
|
-
const patMarkerToken: PatternToken = patientMarker.alternatives
|
|
656
|
-
? { type: 'literal', value: patientMarker.primary, alternatives: patientMarker.alternatives }
|
|
657
|
-
: { type: 'literal', value: patientMarker.primary };
|
|
658
|
-
tokens.push(patMarkerToken);
|
|
659
|
-
}
|
|
660
|
-
|
|
661
|
-
// Command verb at end
|
|
662
|
-
const verbToken: PatternToken = keyword.alternatives
|
|
663
|
-
? { type: 'literal', value: keyword.primary, alternatives: keyword.alternatives }
|
|
664
|
-
: { type: 'literal', value: keyword.primary };
|
|
665
|
-
tokens.push(verbToken);
|
|
666
|
-
|
|
667
|
-
return {
|
|
668
|
-
id: `${commandSchema.action}-event-${profile.code}-sov-temporal`,
|
|
669
|
-
language: profile.code,
|
|
670
|
-
command: 'on',
|
|
671
|
-
priority: (config.basePriority ?? 100) + 49, // Between simple and full pattern
|
|
672
|
-
template: {
|
|
673
|
-
format: `{event} ${temporalMarkers[0]} {patient} ${keyword.primary}`,
|
|
674
|
-
tokens,
|
|
675
|
-
},
|
|
676
|
-
extraction: {
|
|
677
|
-
action: { value: commandSchema.action },
|
|
678
|
-
event: { fromRole: 'event' },
|
|
679
|
-
patient: { fromRole: 'patient' },
|
|
680
|
-
},
|
|
681
|
-
};
|
|
682
|
-
}
|
|
683
|
-
|
|
684
|
-
/**
|
|
685
|
-
* Generate VSO event handler pattern (Arabic).
|
|
686
|
-
*/
|
|
687
|
-
function generateVSOEventHandlerPattern(
|
|
688
|
-
commandSchema: CommandSchema,
|
|
689
|
-
profile: LanguageProfile,
|
|
690
|
-
keyword: KeywordTranslation,
|
|
691
|
-
eventMarker: RoleMarker,
|
|
692
|
-
config: GeneratorConfig
|
|
693
|
-
): LanguagePattern {
|
|
694
|
-
const tokens: PatternToken[] = [];
|
|
695
|
-
|
|
696
|
-
// Event marker (before event in VSO)
|
|
697
|
-
if (eventMarker.position === 'before') {
|
|
698
|
-
const markerToken: PatternToken = eventMarker.alternatives
|
|
699
|
-
? { type: 'literal', value: eventMarker.primary, alternatives: eventMarker.alternatives }
|
|
700
|
-
: { type: 'literal', value: eventMarker.primary };
|
|
701
|
-
tokens.push(markerToken);
|
|
702
|
-
}
|
|
703
|
-
|
|
704
|
-
// Event role
|
|
705
|
-
tokens.push({ type: 'role', role: 'event', optional: false });
|
|
706
|
-
|
|
707
|
-
// Command verb (verb comes early in VSO)
|
|
708
|
-
const verbToken: PatternToken = keyword.alternatives
|
|
709
|
-
? { type: 'literal', value: keyword.primary, alternatives: keyword.alternatives }
|
|
710
|
-
: { type: 'literal', value: keyword.primary };
|
|
711
|
-
tokens.push(verbToken);
|
|
712
|
-
|
|
713
|
-
// Patient role
|
|
714
|
-
tokens.push({ type: 'role', role: 'patient', optional: false });
|
|
715
|
-
|
|
716
|
-
// Optional destination with preposition
|
|
717
|
-
const destMarker = profile.roleMarkers.destination;
|
|
718
|
-
if (destMarker) {
|
|
719
|
-
tokens.push({
|
|
720
|
-
type: 'group',
|
|
721
|
-
optional: true,
|
|
722
|
-
tokens: [
|
|
723
|
-
destMarker.alternatives
|
|
724
|
-
? { type: 'literal', value: destMarker.primary, alternatives: destMarker.alternatives }
|
|
725
|
-
: { type: 'literal', value: destMarker.primary },
|
|
726
|
-
{ type: 'role', role: 'destination', optional: true },
|
|
727
|
-
],
|
|
728
|
-
});
|
|
729
|
-
}
|
|
730
|
-
|
|
731
|
-
return {
|
|
732
|
-
id: `${commandSchema.action}-event-${profile.code}-vso`,
|
|
733
|
-
language: profile.code,
|
|
734
|
-
command: 'on', // This is an event handler pattern
|
|
735
|
-
priority: (config.basePriority ?? 100) + 50, // Higher priority than simple commands
|
|
736
|
-
template: {
|
|
737
|
-
format: `${eventMarker.primary} {event} ${keyword.primary} {patient} ${destMarker?.primary || ''} {destination?}`,
|
|
738
|
-
tokens,
|
|
739
|
-
},
|
|
740
|
-
extraction: {
|
|
741
|
-
action: { value: commandSchema.action }, // Extract the wrapped command
|
|
742
|
-
event: { fromRole: 'event' },
|
|
743
|
-
patient: { fromRole: 'patient' },
|
|
744
|
-
destination: { fromRole: 'destination', default: { type: 'reference', value: 'me' } },
|
|
745
|
-
},
|
|
746
|
-
};
|
|
747
|
-
}
|
|
748
|
-
|
|
749
|
-
/**
|
|
750
|
-
* Generate SOV two-role event handler pattern (for put/set commands).
|
|
751
|
-
*
|
|
752
|
-
* Patterns:
|
|
753
|
-
* - Japanese put: 入力 で "test" を #output に 入れる
|
|
754
|
-
* [event] [eventMarker] [patient] [patientMarker] [destination] [destMarker] [verb]
|
|
755
|
-
* - Korean set: 변경 할 때 x 를 10 으로 설정
|
|
756
|
-
* [event] [eventMarker] [role1] [role1Marker] [role2] [role2Marker] [verb]
|
|
757
|
-
* - Turkish put: giriş de "test" i #output a koy
|
|
758
|
-
* [event] [eventMarker] [patient] [patientMarker] [destination] [destMarker] [verb]
|
|
759
|
-
*/
|
|
760
|
-
function generateSOVTwoRoleEventHandlerPattern(
|
|
761
|
-
commandSchema: CommandSchema,
|
|
762
|
-
profile: LanguageProfile,
|
|
763
|
-
keyword: KeywordTranslation,
|
|
764
|
-
eventMarker: RoleMarker,
|
|
765
|
-
config: GeneratorConfig
|
|
766
|
-
): LanguagePattern {
|
|
767
|
-
const tokens: PatternToken[] = [];
|
|
768
|
-
|
|
769
|
-
// Event role
|
|
770
|
-
tokens.push({ type: 'role', role: 'event', optional: false });
|
|
771
|
-
|
|
772
|
-
// Event marker (after event in SOV)
|
|
773
|
-
// Handle multi-word markers like Korean "할 때" by splitting into separate tokens
|
|
774
|
-
if (eventMarker.position === 'after') {
|
|
775
|
-
const markerWords = eventMarker.primary.split(/\s+/);
|
|
776
|
-
if (markerWords.length > 1) {
|
|
777
|
-
// Multi-word marker: create a token for each word
|
|
778
|
-
for (const word of markerWords) {
|
|
779
|
-
tokens.push({ type: 'literal', value: word });
|
|
780
|
-
}
|
|
781
|
-
} else {
|
|
782
|
-
// Single-word marker: include alternatives
|
|
783
|
-
const markerToken: PatternToken = eventMarker.alternatives
|
|
784
|
-
? { type: 'literal', value: eventMarker.primary, alternatives: eventMarker.alternatives }
|
|
785
|
-
: { type: 'literal', value: eventMarker.primary };
|
|
786
|
-
tokens.push(markerToken);
|
|
787
|
-
}
|
|
788
|
-
}
|
|
789
|
-
|
|
790
|
-
// Get the two required roles from the schema
|
|
791
|
-
const requiredRoles = commandSchema.roles.filter(r => r.required);
|
|
792
|
-
|
|
793
|
-
// Sort by SOV position (lower number = earlier in sentence)
|
|
794
|
-
const sortedRoles = [...requiredRoles].sort((a, b) => {
|
|
795
|
-
const aPos = a.sovPosition ?? 999;
|
|
796
|
-
const bPos = b.sovPosition ?? 999;
|
|
797
|
-
return aPos - bPos;
|
|
798
|
-
});
|
|
799
|
-
|
|
800
|
-
// Add each role with its marker
|
|
801
|
-
for (const roleSpec of sortedRoles) {
|
|
802
|
-
// Add the role
|
|
803
|
-
tokens.push({ type: 'role', role: roleSpec.role, optional: false });
|
|
804
|
-
|
|
805
|
-
// Get marker for this role - check for override first
|
|
806
|
-
let marker: string | undefined;
|
|
807
|
-
let markerAlternatives: string[] | undefined;
|
|
808
|
-
|
|
809
|
-
if (roleSpec.markerOverride && roleSpec.markerOverride[profile.code]) {
|
|
810
|
-
// Use the override marker
|
|
811
|
-
marker = roleSpec.markerOverride[profile.code];
|
|
812
|
-
} else {
|
|
813
|
-
// Use default role marker from profile
|
|
814
|
-
const roleMarker = profile.roleMarkers[roleSpec.role];
|
|
815
|
-
if (roleMarker) {
|
|
816
|
-
marker = roleMarker.primary;
|
|
817
|
-
markerAlternatives = roleMarker.alternatives;
|
|
818
|
-
}
|
|
819
|
-
}
|
|
820
|
-
|
|
821
|
-
// Add the marker token
|
|
822
|
-
if (marker) {
|
|
823
|
-
const markerToken: PatternToken = markerAlternatives
|
|
824
|
-
? { type: 'literal', value: marker, alternatives: markerAlternatives }
|
|
825
|
-
: { type: 'literal', value: marker };
|
|
826
|
-
tokens.push(markerToken);
|
|
827
|
-
}
|
|
828
|
-
}
|
|
829
|
-
|
|
830
|
-
// Command verb at end (SOV)
|
|
831
|
-
const verbToken: PatternToken = keyword.alternatives
|
|
832
|
-
? { type: 'literal', value: keyword.primary, alternatives: keyword.alternatives }
|
|
833
|
-
: { type: 'literal', value: keyword.primary };
|
|
834
|
-
tokens.push(verbToken);
|
|
835
|
-
|
|
836
|
-
// Build format string
|
|
837
|
-
const roleNames = sortedRoles.map(r => `{${r.role}}`).join(' ');
|
|
838
|
-
|
|
839
|
-
return {
|
|
840
|
-
id: `${commandSchema.action}-event-${profile.code}-sov-2role`,
|
|
841
|
-
language: profile.code,
|
|
842
|
-
command: 'on', // This is an event handler pattern
|
|
843
|
-
priority: (config.basePriority ?? 100) + 55, // Higher priority than single-role patterns
|
|
844
|
-
template: {
|
|
845
|
-
format: `{event} ${eventMarker.primary} ${roleNames} ${keyword.primary}`,
|
|
846
|
-
tokens,
|
|
847
|
-
},
|
|
848
|
-
extraction: {
|
|
849
|
-
action: { value: commandSchema.action }, // Extract the wrapped command
|
|
850
|
-
event: { fromRole: 'event' },
|
|
851
|
-
patient: { fromRole: 'patient' },
|
|
852
|
-
destination: { fromRole: 'destination' },
|
|
853
|
-
},
|
|
854
|
-
};
|
|
855
|
-
}
|
|
856
|
-
|
|
857
|
-
/**
|
|
858
|
-
* Generate VSO two-role event handler pattern (for put/set commands).
|
|
859
|
-
*
|
|
860
|
-
* Patterns:
|
|
861
|
-
* - Arabic put: عند الإدخال ضع "test" في #output
|
|
862
|
-
* [eventMarker] [event] [verb] [patient] [destPrep] [destination]
|
|
863
|
-
* - Arabic set: عند التغيير عيّن x إلى 10
|
|
864
|
-
* [eventMarker] [event] [verb] [destination] [patientPrep] [patient]
|
|
865
|
-
*/
|
|
866
|
-
function generateVSOTwoRoleEventHandlerPattern(
|
|
867
|
-
commandSchema: CommandSchema,
|
|
868
|
-
profile: LanguageProfile,
|
|
869
|
-
keyword: KeywordTranslation,
|
|
870
|
-
eventMarker: RoleMarker,
|
|
871
|
-
config: GeneratorConfig
|
|
872
|
-
): LanguagePattern {
|
|
873
|
-
const tokens: PatternToken[] = [];
|
|
874
|
-
|
|
875
|
-
// Event marker (before event in VSO)
|
|
876
|
-
if (eventMarker.position === 'before') {
|
|
877
|
-
const markerToken: PatternToken = eventMarker.alternatives
|
|
878
|
-
? { type: 'literal', value: eventMarker.primary, alternatives: eventMarker.alternatives }
|
|
879
|
-
: { type: 'literal', value: eventMarker.primary };
|
|
880
|
-
tokens.push(markerToken);
|
|
881
|
-
}
|
|
882
|
-
|
|
883
|
-
// Event role
|
|
884
|
-
tokens.push({ type: 'role', role: 'event', optional: false });
|
|
885
|
-
|
|
886
|
-
// Command verb (verb comes early in VSO)
|
|
887
|
-
const verbToken: PatternToken = keyword.alternatives
|
|
888
|
-
? { type: 'literal', value: keyword.primary, alternatives: keyword.alternatives }
|
|
889
|
-
: { type: 'literal', value: keyword.primary };
|
|
890
|
-
tokens.push(verbToken);
|
|
891
|
-
|
|
892
|
-
// Get the two required roles from the schema
|
|
893
|
-
const requiredRoles = commandSchema.roles.filter(r => r.required);
|
|
894
|
-
|
|
895
|
-
// Sort by SVO position for VSO (role order is similar)
|
|
896
|
-
const sortedRoles = [...requiredRoles].sort((a, b) => {
|
|
897
|
-
const aPos = a.svoPosition ?? 999;
|
|
898
|
-
const bPos = b.svoPosition ?? 999;
|
|
899
|
-
return aPos - bPos;
|
|
900
|
-
});
|
|
901
|
-
|
|
902
|
-
// Add each role with its preposition/marker
|
|
903
|
-
for (const roleSpec of sortedRoles) {
|
|
904
|
-
// Get marker for this role - check for override first
|
|
905
|
-
let marker: string | undefined;
|
|
906
|
-
let markerAlternatives: string[] | undefined;
|
|
907
|
-
|
|
908
|
-
if (roleSpec.markerOverride && roleSpec.markerOverride[profile.code]) {
|
|
909
|
-
// Use the override marker
|
|
910
|
-
marker = roleSpec.markerOverride[profile.code];
|
|
911
|
-
} else {
|
|
912
|
-
// Use default role marker from profile
|
|
913
|
-
const roleMarker = profile.roleMarkers[roleSpec.role];
|
|
914
|
-
if (roleMarker) {
|
|
915
|
-
marker = roleMarker.primary;
|
|
916
|
-
markerAlternatives = roleMarker.alternatives;
|
|
917
|
-
}
|
|
918
|
-
}
|
|
919
|
-
|
|
920
|
-
// In VSO, prepositions come BEFORE the noun (prepositional languages)
|
|
921
|
-
if (marker) {
|
|
922
|
-
const markerToken: PatternToken = markerAlternatives
|
|
923
|
-
? { type: 'literal', value: marker, alternatives: markerAlternatives }
|
|
924
|
-
: { type: 'literal', value: marker };
|
|
925
|
-
tokens.push(markerToken);
|
|
926
|
-
}
|
|
927
|
-
|
|
928
|
-
// Add the role
|
|
929
|
-
tokens.push({ type: 'role', role: roleSpec.role, optional: false });
|
|
930
|
-
}
|
|
931
|
-
|
|
932
|
-
// Build format string
|
|
933
|
-
const roleNames = sortedRoles.map(r => `{${r.role}}`).join(' ');
|
|
934
|
-
|
|
935
|
-
return {
|
|
936
|
-
id: `${commandSchema.action}-event-${profile.code}-vso-2role`,
|
|
937
|
-
language: profile.code,
|
|
938
|
-
command: 'on', // This is an event handler pattern
|
|
939
|
-
priority: (config.basePriority ?? 100) + 55, // Higher priority than single-role patterns
|
|
940
|
-
template: {
|
|
941
|
-
format: `${eventMarker.primary} {event} ${keyword.primary} ${roleNames}`,
|
|
942
|
-
tokens,
|
|
943
|
-
},
|
|
944
|
-
extraction: {
|
|
945
|
-
action: { value: commandSchema.action }, // Extract the wrapped command
|
|
946
|
-
event: { fromRole: 'event' },
|
|
947
|
-
patient: { fromRole: 'patient' },
|
|
948
|
-
destination: { fromRole: 'destination' },
|
|
949
|
-
},
|
|
950
|
-
};
|
|
951
|
-
}
|
|
952
|
-
|
|
953
|
-
/**
|
|
954
|
-
* Generate VSO negated event handler pattern.
|
|
955
|
-
*
|
|
956
|
-
* Patterns:
|
|
957
|
-
* - Arabic: عند عدم التركيز أخف #tooltip
|
|
958
|
-
* [eventMarker] [negation] [event] [verb] [patient]
|
|
959
|
-
*
|
|
960
|
-
* Used for events expressed as negation + opposite action:
|
|
961
|
-
* - عدم التركيز = "not focusing" = blur
|
|
962
|
-
*/
|
|
963
|
-
function generateVSONegatedEventHandlerPattern(
|
|
964
|
-
commandSchema: CommandSchema,
|
|
965
|
-
profile: LanguageProfile,
|
|
966
|
-
keyword: KeywordTranslation,
|
|
967
|
-
eventMarker: RoleMarker,
|
|
968
|
-
config: GeneratorConfig
|
|
969
|
-
): LanguagePattern {
|
|
970
|
-
const tokens: PatternToken[] = [];
|
|
971
|
-
const negationMarker = profile.eventHandler?.negationMarker;
|
|
972
|
-
|
|
973
|
-
// Event marker (before event in VSO)
|
|
974
|
-
if (eventMarker.position === 'before') {
|
|
975
|
-
const markerToken: PatternToken = eventMarker.alternatives
|
|
976
|
-
? { type: 'literal', value: eventMarker.primary, alternatives: eventMarker.alternatives }
|
|
977
|
-
: { type: 'literal', value: eventMarker.primary };
|
|
978
|
-
tokens.push(markerToken);
|
|
979
|
-
}
|
|
980
|
-
|
|
981
|
-
// Negation marker (e.g., عدم = "not/lack of")
|
|
982
|
-
if (negationMarker) {
|
|
983
|
-
const negToken: PatternToken = negationMarker.alternatives
|
|
984
|
-
? {
|
|
985
|
-
type: 'literal',
|
|
986
|
-
value: negationMarker.primary,
|
|
987
|
-
alternatives: negationMarker.alternatives,
|
|
988
|
-
}
|
|
989
|
-
: { type: 'literal', value: negationMarker.primary };
|
|
990
|
-
tokens.push(negToken);
|
|
991
|
-
}
|
|
992
|
-
|
|
993
|
-
// Event role (the action being negated, e.g., التركيز = "the focusing")
|
|
994
|
-
tokens.push({ type: 'role', role: 'event', optional: false });
|
|
995
|
-
|
|
996
|
-
// Command verb (verb comes early in VSO)
|
|
997
|
-
const verbToken: PatternToken = keyword.alternatives
|
|
998
|
-
? { type: 'literal', value: keyword.primary, alternatives: keyword.alternatives }
|
|
999
|
-
: { type: 'literal', value: keyword.primary };
|
|
1000
|
-
tokens.push(verbToken);
|
|
1001
|
-
|
|
1002
|
-
// Patient role
|
|
1003
|
-
tokens.push({ type: 'role', role: 'patient', optional: false });
|
|
1004
|
-
|
|
1005
|
-
// Optional destination with preposition
|
|
1006
|
-
const destMarker = profile.roleMarkers.destination;
|
|
1007
|
-
if (destMarker) {
|
|
1008
|
-
tokens.push({
|
|
1009
|
-
type: 'group',
|
|
1010
|
-
optional: true,
|
|
1011
|
-
tokens: [
|
|
1012
|
-
destMarker.alternatives
|
|
1013
|
-
? { type: 'literal', value: destMarker.primary, alternatives: destMarker.alternatives }
|
|
1014
|
-
: { type: 'literal', value: destMarker.primary },
|
|
1015
|
-
{ type: 'role', role: 'destination', optional: true },
|
|
1016
|
-
],
|
|
1017
|
-
});
|
|
1018
|
-
}
|
|
1019
|
-
|
|
1020
|
-
return {
|
|
1021
|
-
id: `${commandSchema.action}-event-${profile.code}-vso-negated`,
|
|
1022
|
-
language: profile.code,
|
|
1023
|
-
command: 'on', // This is an event handler pattern
|
|
1024
|
-
priority: (config.basePriority ?? 100) + 48, // Slightly lower priority than standard patterns
|
|
1025
|
-
template: {
|
|
1026
|
-
format: `${eventMarker.primary} ${negationMarker?.primary || ''} {event} ${keyword.primary} {patient} ${destMarker?.primary || ''} {destination?}`,
|
|
1027
|
-
tokens,
|
|
1028
|
-
},
|
|
1029
|
-
extraction: {
|
|
1030
|
-
action: { value: commandSchema.action }, // Extract the wrapped command
|
|
1031
|
-
event: { fromRole: 'event' },
|
|
1032
|
-
patient: { fromRole: 'patient' },
|
|
1033
|
-
destination: { fromRole: 'destination', default: { type: 'reference', value: 'me' } },
|
|
1034
|
-
},
|
|
1035
|
-
};
|
|
1036
|
-
}
|
|
1037
|
-
|
|
1038
|
-
/**
|
|
1039
|
-
* Generate VSO proclitic event handler pattern (for Arabic chained events).
|
|
1040
|
-
*
|
|
1041
|
-
* Patterns:
|
|
1042
|
-
* - Arabic: والنقر بدّل .active
|
|
1043
|
-
* [proclitic] [event] [verb] [patient]
|
|
1044
|
-
* - Arabic: فالتحويم أضف .highlight
|
|
1045
|
-
* [proclitic] [event] [verb] [patient]
|
|
1046
|
-
*
|
|
1047
|
-
* These patterns have a conjunction proclitic (و = and, ف = then) attached to
|
|
1048
|
-
* the event, without the عند event marker. Used for chained/consequent events.
|
|
1049
|
-
*/
|
|
1050
|
-
function generateVSOProcliticEventHandlerPattern(
|
|
1051
|
-
commandSchema: CommandSchema,
|
|
1052
|
-
profile: LanguageProfile,
|
|
1053
|
-
keyword: KeywordTranslation,
|
|
1054
|
-
config: GeneratorConfig
|
|
1055
|
-
): LanguagePattern {
|
|
1056
|
-
const tokens: PatternToken[] = [];
|
|
1057
|
-
|
|
1058
|
-
// Required conjunction token (و = and, ف = then)
|
|
1059
|
-
// The conjunction must be present for this pattern - it distinguishes chained events from regular commands
|
|
1060
|
-
// Use normalized values since proclitics are tokenized as conjunction tokens
|
|
1061
|
-
tokens.push({
|
|
1062
|
-
type: 'literal',
|
|
1063
|
-
value: 'and', // Matches normalized 'and' (Arabic: و)
|
|
1064
|
-
alternatives: ['then'], // Also matches normalized 'then' (Arabic: ف)
|
|
1065
|
-
});
|
|
1066
|
-
|
|
1067
|
-
// Event role (the event name, e.g., النقر = the click)
|
|
1068
|
-
tokens.push({ type: 'role', role: 'event', optional: false });
|
|
1069
|
-
|
|
1070
|
-
// Command verb (verb comes early in VSO)
|
|
1071
|
-
const verbToken: PatternToken = keyword.alternatives
|
|
1072
|
-
? { type: 'literal', value: keyword.primary, alternatives: keyword.alternatives }
|
|
1073
|
-
: { type: 'literal', value: keyword.primary };
|
|
1074
|
-
tokens.push(verbToken);
|
|
1075
|
-
|
|
1076
|
-
// Patient role
|
|
1077
|
-
tokens.push({ type: 'role', role: 'patient', optional: false });
|
|
1078
|
-
|
|
1079
|
-
// Optional destination with preposition
|
|
1080
|
-
const destMarker = profile.roleMarkers.destination;
|
|
1081
|
-
if (destMarker) {
|
|
1082
|
-
tokens.push({
|
|
1083
|
-
type: 'group',
|
|
1084
|
-
optional: true,
|
|
1085
|
-
tokens: [
|
|
1086
|
-
destMarker.alternatives
|
|
1087
|
-
? { type: 'literal', value: destMarker.primary, alternatives: destMarker.alternatives }
|
|
1088
|
-
: { type: 'literal', value: destMarker.primary },
|
|
1089
|
-
{ type: 'role', role: 'destination', optional: true },
|
|
1090
|
-
],
|
|
1091
|
-
});
|
|
1092
|
-
}
|
|
1093
|
-
|
|
1094
|
-
return {
|
|
1095
|
-
id: `${commandSchema.action}-event-${profile.code}-vso-proclitic`,
|
|
1096
|
-
language: profile.code,
|
|
1097
|
-
command: 'on', // This is an event handler pattern
|
|
1098
|
-
priority: (config.basePriority ?? 100) + 45, // Lower priority than standard patterns
|
|
1099
|
-
template: {
|
|
1100
|
-
format: `[proclitic?] {event} ${keyword.primary} {patient} ${destMarker?.primary || ''} {destination?}`,
|
|
1101
|
-
tokens,
|
|
1102
|
-
},
|
|
1103
|
-
extraction: {
|
|
1104
|
-
action: { value: commandSchema.action }, // Extract the wrapped command
|
|
1105
|
-
event: { fromRole: 'event' },
|
|
1106
|
-
patient: { fromRole: 'patient' },
|
|
1107
|
-
destination: { fromRole: 'destination', default: { type: 'reference', value: 'me' } },
|
|
1108
|
-
},
|
|
1109
|
-
};
|
|
1110
|
-
}
|
|
1111
|
-
|
|
1112
469
|
// =============================================================================
|
|
1113
470
|
// Token Building
|
|
1114
471
|
// =============================================================================
|
|
@@ -1202,7 +559,7 @@ function buildRoleToken(roleSpec: RoleSpec, profile: LanguageProfile): PatternTo
|
|
|
1202
559
|
type: 'role',
|
|
1203
560
|
role: roleSpec.role,
|
|
1204
561
|
optional: !roleSpec.required,
|
|
1205
|
-
expectedTypes: roleSpec.expectedTypes
|
|
562
|
+
expectedTypes: roleSpec.expectedTypes,
|
|
1206
563
|
};
|
|
1207
564
|
|
|
1208
565
|
// Use override marker if available, otherwise use default
|