@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
package/dist/languages/en.js
CHANGED
|
@@ -324,8 +324,12 @@ var init_schema_validator = __esm({
|
|
|
324
324
|
"measure",
|
|
325
325
|
"return",
|
|
326
326
|
"swap",
|
|
327
|
-
"morph"
|
|
327
|
+
"morph",
|
|
328
328
|
// DOM manipulation commands that accept various content types
|
|
329
|
+
"beep",
|
|
330
|
+
// Debug command — accepts any expression type
|
|
331
|
+
"copy"
|
|
332
|
+
// Clipboard — accepts text literals, selectors, or references
|
|
329
333
|
]);
|
|
330
334
|
NO_REQUIRED_ROLES_COMMANDS = /* @__PURE__ */ new Set([
|
|
331
335
|
"compound",
|
|
@@ -339,8 +343,14 @@ var init_schema_validator = __esm({
|
|
|
339
343
|
"blur",
|
|
340
344
|
"return",
|
|
341
345
|
"js",
|
|
342
|
-
"measure"
|
|
346
|
+
"measure",
|
|
343
347
|
// Commands with optional-only roles
|
|
348
|
+
"break",
|
|
349
|
+
// Zero-arg control flow (exit loop)
|
|
350
|
+
"exit",
|
|
351
|
+
// Zero-arg control flow (exit handler)
|
|
352
|
+
"beep"
|
|
353
|
+
// Debug command — all roles optional
|
|
344
354
|
]);
|
|
345
355
|
}
|
|
346
356
|
});
|
|
@@ -360,7 +370,7 @@ function registerPatterns(code, patterns) {
|
|
|
360
370
|
patternCache.delete(code);
|
|
361
371
|
}
|
|
362
372
|
|
|
363
|
-
// src/tokenizers/
|
|
373
|
+
// src/tokenizers/token-utils.ts
|
|
364
374
|
var TokenStreamImpl = class {
|
|
365
375
|
constructor(tokens, language) {
|
|
366
376
|
this.pos = 0;
|
|
@@ -426,17 +436,14 @@ function createToken(value, kind, position, normalizedOrOptions) {
|
|
|
426
436
|
}
|
|
427
437
|
if (normalizedOrOptions) {
|
|
428
438
|
const { normalized, stem, stemConfidence } = normalizedOrOptions;
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
return token;
|
|
439
|
+
return {
|
|
440
|
+
value,
|
|
441
|
+
kind,
|
|
442
|
+
position,
|
|
443
|
+
...normalized !== void 0 && { normalized },
|
|
444
|
+
...stem !== void 0 && { stem },
|
|
445
|
+
...stemConfidence !== void 0 && { stemConfidence }
|
|
446
|
+
};
|
|
440
447
|
}
|
|
441
448
|
return { value, kind, position };
|
|
442
449
|
}
|
|
@@ -458,6 +465,8 @@ function isAsciiLetter(char) {
|
|
|
458
465
|
function isAsciiIdentifierChar(char) {
|
|
459
466
|
return /[a-zA-Z0-9_-]/.test(char);
|
|
460
467
|
}
|
|
468
|
+
|
|
469
|
+
// src/tokenizers/extractors.ts
|
|
461
470
|
function extractCssSelector(input, startPos) {
|
|
462
471
|
if (startPos >= input.length) return null;
|
|
463
472
|
const char = input[startPos];
|
|
@@ -715,6 +724,8 @@ function extractNumber(input, startPos) {
|
|
|
715
724
|
}
|
|
716
725
|
return number;
|
|
717
726
|
}
|
|
727
|
+
|
|
728
|
+
// src/tokenizers/base-tokenizer.ts
|
|
718
729
|
var _BaseTokenizer = class _BaseTokenizer {
|
|
719
730
|
constructor() {
|
|
720
731
|
/** Keywords derived from profile, sorted longest-first for greedy matching */
|
|
@@ -722,6 +733,34 @@ var _BaseTokenizer = class _BaseTokenizer {
|
|
|
722
733
|
/** Map for O(1) keyword lookups by lowercase native word */
|
|
723
734
|
this.profileKeywordMap = /* @__PURE__ */ new Map();
|
|
724
735
|
}
|
|
736
|
+
/**
|
|
737
|
+
* Check if current position is a property access (obj.prop) vs CSS selector (.active).
|
|
738
|
+
* Property access: no whitespace before '.', previous token is identifier/keyword/selector.
|
|
739
|
+
* Also detects standalone method calls: .identifier( pattern.
|
|
740
|
+
*
|
|
741
|
+
* Returns true if '.' was emitted as an operator token and pos should advance by 1.
|
|
742
|
+
* Returns false if this is a CSS selector and should be handled by trySelector().
|
|
743
|
+
*/
|
|
744
|
+
tryPropertyAccess(input, pos, tokens) {
|
|
745
|
+
if (input[pos] !== ".") return false;
|
|
746
|
+
const lastToken = tokens[tokens.length - 1];
|
|
747
|
+
const hasWhitespaceBefore = lastToken && lastToken.position.end < pos;
|
|
748
|
+
const isPropertyAccess = lastToken && !hasWhitespaceBefore && (lastToken.kind === "identifier" || lastToken.kind === "keyword" || lastToken.kind === "selector");
|
|
749
|
+
if (isPropertyAccess) {
|
|
750
|
+
tokens.push(createToken(".", "operator", createPosition(pos, pos + 1)));
|
|
751
|
+
return true;
|
|
752
|
+
}
|
|
753
|
+
const methodStart = pos + 1;
|
|
754
|
+
let methodEnd = methodStart;
|
|
755
|
+
while (methodEnd < input.length && isAsciiIdentifierChar(input[methodEnd])) {
|
|
756
|
+
methodEnd++;
|
|
757
|
+
}
|
|
758
|
+
if (methodEnd < input.length && input[methodEnd] === "(") {
|
|
759
|
+
tokens.push(createToken(".", "operator", createPosition(pos, pos + 1)));
|
|
760
|
+
return true;
|
|
761
|
+
}
|
|
762
|
+
return false;
|
|
763
|
+
}
|
|
725
764
|
/**
|
|
726
765
|
* Initialize keyword mappings from a language profile.
|
|
727
766
|
* Builds a list of native→english mappings from:
|
|
@@ -757,6 +796,11 @@ var _BaseTokenizer = class _BaseTokenizer {
|
|
|
757
796
|
for (const [normalized, native] of Object.entries(profile.references)) {
|
|
758
797
|
keywordMap.set(native, { native, normalized });
|
|
759
798
|
}
|
|
799
|
+
for (const canonical of Object.keys(profile.references)) {
|
|
800
|
+
if (!keywordMap.has(canonical)) {
|
|
801
|
+
keywordMap.set(canonical, { native: canonical, normalized: canonical });
|
|
802
|
+
}
|
|
803
|
+
}
|
|
760
804
|
}
|
|
761
805
|
if (profile.roleMarkers) {
|
|
762
806
|
for (const [role, marker] of Object.entries(profile.roleMarkers)) {
|
|
@@ -1222,6 +1266,12 @@ var englishProfile = {
|
|
|
1222
1266
|
behavior: { primary: "behavior" },
|
|
1223
1267
|
install: { primary: "install" },
|
|
1224
1268
|
measure: { primary: "measure" },
|
|
1269
|
+
beep: { primary: "beep" },
|
|
1270
|
+
break: { primary: "break" },
|
|
1271
|
+
copy: { primary: "copy" },
|
|
1272
|
+
exit: { primary: "exit" },
|
|
1273
|
+
pick: { primary: "pick" },
|
|
1274
|
+
render: { primary: "render" },
|
|
1225
1275
|
into: { primary: "into" },
|
|
1226
1276
|
before: { primary: "before" },
|
|
1227
1277
|
after: { primary: "after" },
|
|
@@ -1434,7 +1484,8 @@ var EnglishTokenizer = class extends BaseTokenizer {
|
|
|
1434
1484
|
}
|
|
1435
1485
|
classifyToken(token) {
|
|
1436
1486
|
if (this.isKeyword(token)) return "keyword";
|
|
1437
|
-
if (token.startsWith("#") || token.startsWith(".") || token.startsWith("["))
|
|
1487
|
+
if (token.startsWith("#") || token.startsWith(".") || token.startsWith("[") || token.startsWith("*") || token.startsWith("<"))
|
|
1488
|
+
return "selector";
|
|
1438
1489
|
if (token.startsWith('"') || token.startsWith("'")) return "literal";
|
|
1439
1490
|
if (/^\d/.test(token)) return "literal";
|
|
1440
1491
|
if (["==", "!=", "<=", ">=", "<", ">", "&&", "||", "!"].includes(token)) return "operator";
|
|
@@ -1576,7 +1627,9 @@ var addSchema = {
|
|
|
1576
1627
|
expectedTypes: ["selector", "reference"],
|
|
1577
1628
|
default: { type: "reference", value: "me" },
|
|
1578
1629
|
svoPosition: 2,
|
|
1579
|
-
sovPosition: 1
|
|
1630
|
+
sovPosition: 1,
|
|
1631
|
+
markerOverride: { en: "to" }
|
|
1632
|
+
// "add .class to #element"
|
|
1580
1633
|
}
|
|
1581
1634
|
],
|
|
1582
1635
|
// Runtime error documentation
|
|
@@ -1653,8 +1706,10 @@ var putSchema = {
|
|
|
1653
1706
|
required: true,
|
|
1654
1707
|
expectedTypes: ["selector", "reference"],
|
|
1655
1708
|
svoPosition: 2,
|
|
1656
|
-
sovPosition: 2
|
|
1709
|
+
sovPosition: 2,
|
|
1657
1710
|
// SOV: destination comes second (に/에/a marker)
|
|
1711
|
+
markerOverride: { en: "into" }
|
|
1712
|
+
// "put 'hello' into #output"
|
|
1658
1713
|
}
|
|
1659
1714
|
],
|
|
1660
1715
|
// Runtime error documentation
|
|
@@ -1717,8 +1772,16 @@ var setSchema = {
|
|
|
1717
1772
|
// "x 를 10 으로 설정" - variable gets object marker
|
|
1718
1773
|
tr: "i",
|
|
1719
1774
|
// "x i 10 e ayarla" - variable gets accusative marker
|
|
1720
|
-
ar: ""
|
|
1775
|
+
ar: "",
|
|
1721
1776
|
// "عيّن x إلى 10" - no marker before variable
|
|
1777
|
+
sw: "",
|
|
1778
|
+
// "seti x kwenye 10" - no marker before variable
|
|
1779
|
+
tl: "",
|
|
1780
|
+
// "itakda x sa 10" - no marker before variable
|
|
1781
|
+
bn: "\u0995\u09C7",
|
|
1782
|
+
// "x কে 10 তে সেট" - patient marker on variable
|
|
1783
|
+
qu: "ta"
|
|
1784
|
+
// "x ta 10 man churay" - patient marker on variable
|
|
1722
1785
|
}
|
|
1723
1786
|
},
|
|
1724
1787
|
{
|
|
@@ -1750,8 +1813,16 @@ var setSchema = {
|
|
|
1750
1813
|
// "x 를 10 으로 설정" - value gets manner/instrument marker
|
|
1751
1814
|
tr: "e",
|
|
1752
1815
|
// "x i 10 e ayarla" - value gets dative marker
|
|
1753
|
-
ar: "\u0625\u0644\u0649"
|
|
1816
|
+
ar: "\u0625\u0644\u0649",
|
|
1754
1817
|
// "عيّن x إلى 10" - value gets preposition "to"
|
|
1818
|
+
sw: "kwenye",
|
|
1819
|
+
// "seti x kwenye 10" - destination prep before value
|
|
1820
|
+
tl: "sa",
|
|
1821
|
+
// "itakda x sa 10" - destination prep before value
|
|
1822
|
+
bn: "\u09A4\u09C7",
|
|
1823
|
+
// "x কে 10 তে সেট" - destination marker on value
|
|
1824
|
+
qu: "man"
|
|
1825
|
+
// "x ta 10 man churay" - destination marker on value
|
|
1755
1826
|
}
|
|
1756
1827
|
}
|
|
1757
1828
|
],
|
|
@@ -1913,7 +1984,10 @@ var fetchSchema = {
|
|
|
1913
1984
|
required: true,
|
|
1914
1985
|
expectedTypes: ["literal", "expression"],
|
|
1915
1986
|
svoPosition: 1,
|
|
1916
|
-
sovPosition: 1
|
|
1987
|
+
sovPosition: 1,
|
|
1988
|
+
// No markerOverride — uses profile default 'from' for parsing.
|
|
1989
|
+
renderOverride: { en: "" }
|
|
1990
|
+
// "fetch /api" (rendering — no preposition)
|
|
1917
1991
|
},
|
|
1918
1992
|
{
|
|
1919
1993
|
role: "responseType",
|
|
@@ -1963,7 +2037,9 @@ var incrementSchema = {
|
|
|
1963
2037
|
expectedTypes: ["literal"],
|
|
1964
2038
|
default: { type: "literal", value: 1, dataType: "number" },
|
|
1965
2039
|
svoPosition: 2,
|
|
1966
|
-
sovPosition: 2
|
|
2040
|
+
sovPosition: 2,
|
|
2041
|
+
markerOverride: { en: "by" }
|
|
2042
|
+
// "increment :count by 5"
|
|
1967
2043
|
}
|
|
1968
2044
|
]
|
|
1969
2045
|
};
|
|
@@ -1988,7 +2064,9 @@ var decrementSchema = {
|
|
|
1988
2064
|
expectedTypes: ["literal"],
|
|
1989
2065
|
default: { type: "literal", value: 1, dataType: "number" },
|
|
1990
2066
|
svoPosition: 2,
|
|
1991
|
-
sovPosition: 2
|
|
2067
|
+
sovPosition: 2,
|
|
2068
|
+
markerOverride: { en: "by" }
|
|
2069
|
+
// "decrement :count by 5"
|
|
1992
2070
|
}
|
|
1993
2071
|
]
|
|
1994
2072
|
};
|
|
@@ -2012,7 +2090,9 @@ var appendSchema = {
|
|
|
2012
2090
|
required: true,
|
|
2013
2091
|
expectedTypes: ["selector", "reference"],
|
|
2014
2092
|
svoPosition: 2,
|
|
2015
|
-
sovPosition: 1
|
|
2093
|
+
sovPosition: 1,
|
|
2094
|
+
markerOverride: { en: "to" }
|
|
2095
|
+
// "append <content> to #element"
|
|
2016
2096
|
}
|
|
2017
2097
|
]
|
|
2018
2098
|
};
|
|
@@ -2036,7 +2116,9 @@ var prependSchema = {
|
|
|
2036
2116
|
required: true,
|
|
2037
2117
|
expectedTypes: ["selector", "reference"],
|
|
2038
2118
|
svoPosition: 2,
|
|
2039
|
-
sovPosition: 1
|
|
2119
|
+
sovPosition: 1,
|
|
2120
|
+
markerOverride: { en: "to" }
|
|
2121
|
+
// "prepend <content> to #element"
|
|
2040
2122
|
}
|
|
2041
2123
|
]
|
|
2042
2124
|
};
|
|
@@ -2086,7 +2168,15 @@ var getCommandSchema = {
|
|
|
2086
2168
|
// Arabic preposition: احصل على #element
|
|
2087
2169
|
tr: "i",
|
|
2088
2170
|
// Turkish accusative: #element i al
|
|
2089
|
-
id: ""
|
|
2171
|
+
id: "",
|
|
2172
|
+
sw: "",
|
|
2173
|
+
// Swahili SVO: pata #element (no marker)
|
|
2174
|
+
tl: "",
|
|
2175
|
+
// Tagalog VSO: kunin #element (no marker)
|
|
2176
|
+
bn: "\u0995\u09C7",
|
|
2177
|
+
// Bengali SOV: #element কে পান (patient marker)
|
|
2178
|
+
qu: "ta"
|
|
2179
|
+
// Quechua SOV: #element ta taripay (patient marker)
|
|
2090
2180
|
}
|
|
2091
2181
|
},
|
|
2092
2182
|
{
|
|
@@ -2338,7 +2428,9 @@ var forSchema = {
|
|
|
2338
2428
|
required: true,
|
|
2339
2429
|
expectedTypes: ["selector", "reference", "expression"],
|
|
2340
2430
|
svoPosition: 2,
|
|
2341
|
-
sovPosition: 1
|
|
2431
|
+
sovPosition: 1,
|
|
2432
|
+
markerOverride: { en: "in" }
|
|
2433
|
+
// "for item in .items"
|
|
2342
2434
|
}
|
|
2343
2435
|
]
|
|
2344
2436
|
};
|
|
@@ -2379,7 +2471,11 @@ var goSchema = {
|
|
|
2379
2471
|
required: true,
|
|
2380
2472
|
expectedTypes: ["literal", "expression"],
|
|
2381
2473
|
svoPosition: 1,
|
|
2382
|
-
sovPosition: 1
|
|
2474
|
+
sovPosition: 1,
|
|
2475
|
+
markerOverride: { en: "to" },
|
|
2476
|
+
// "go to /page" (parsing)
|
|
2477
|
+
renderOverride: { en: "" }
|
|
2478
|
+
// "go /page" (rendering — no preposition)
|
|
2383
2479
|
}
|
|
2384
2480
|
]
|
|
2385
2481
|
};
|
|
@@ -2396,7 +2492,10 @@ var transitionSchema = {
|
|
|
2396
2492
|
expectedTypes: ["literal"],
|
|
2397
2493
|
// Only literal - CSS properties are strings, not selectors
|
|
2398
2494
|
svoPosition: 1,
|
|
2399
|
-
sovPosition: 2
|
|
2495
|
+
sovPosition: 2,
|
|
2496
|
+
// No marker before the CSS property name (SVO/VSO languages)
|
|
2497
|
+
// SOV languages (bn, qu) use their default patient marker from profile
|
|
2498
|
+
markerOverride: { en: "", ar: "", tl: "", sw: "" }
|
|
2400
2499
|
},
|
|
2401
2500
|
{
|
|
2402
2501
|
role: "goal",
|
|
@@ -2404,7 +2503,24 @@ var transitionSchema = {
|
|
|
2404
2503
|
required: true,
|
|
2405
2504
|
expectedTypes: ["literal", "expression"],
|
|
2406
2505
|
svoPosition: 2,
|
|
2407
|
-
sovPosition: 3
|
|
2506
|
+
sovPosition: 3,
|
|
2507
|
+
// "to" preposition before goal value (same as set's patient marker)
|
|
2508
|
+
markerOverride: {
|
|
2509
|
+
en: "to",
|
|
2510
|
+
ar: "\u0625\u0644\u0649",
|
|
2511
|
+
tl: "sa",
|
|
2512
|
+
sw: "kwenye",
|
|
2513
|
+
bn: "\u09A4\u09C7",
|
|
2514
|
+
qu: "man",
|
|
2515
|
+
es: "a",
|
|
2516
|
+
pt: "para",
|
|
2517
|
+
fr: "\xE0",
|
|
2518
|
+
de: "auf",
|
|
2519
|
+
ja: "\u306B",
|
|
2520
|
+
ko: "\uC73C\uB85C",
|
|
2521
|
+
tr: "e",
|
|
2522
|
+
id: "ke"
|
|
2523
|
+
}
|
|
2408
2524
|
},
|
|
2409
2525
|
{
|
|
2410
2526
|
role: "destination",
|
|
@@ -2421,7 +2537,9 @@ var transitionSchema = {
|
|
|
2421
2537
|
required: false,
|
|
2422
2538
|
expectedTypes: ["literal"],
|
|
2423
2539
|
svoPosition: 4,
|
|
2424
|
-
sovPosition: 4
|
|
2540
|
+
sovPosition: 4,
|
|
2541
|
+
markerOverride: { en: "over" }
|
|
2542
|
+
// "transition opacity to 1 over 500ms"
|
|
2425
2543
|
},
|
|
2426
2544
|
{
|
|
2427
2545
|
role: "style",
|
|
@@ -2453,7 +2571,9 @@ var cloneSchema = {
|
|
|
2453
2571
|
required: false,
|
|
2454
2572
|
expectedTypes: ["selector", "reference"],
|
|
2455
2573
|
svoPosition: 2,
|
|
2456
|
-
sovPosition: 1
|
|
2574
|
+
sovPosition: 1,
|
|
2575
|
+
markerOverride: { en: "into" }
|
|
2576
|
+
// "clone #element into #container"
|
|
2457
2577
|
}
|
|
2458
2578
|
]
|
|
2459
2579
|
};
|
|
@@ -2561,7 +2681,9 @@ var tellSchema = {
|
|
|
2561
2681
|
required: true,
|
|
2562
2682
|
expectedTypes: ["selector", "reference"],
|
|
2563
2683
|
svoPosition: 1,
|
|
2564
|
-
sovPosition: 1
|
|
2684
|
+
sovPosition: 1,
|
|
2685
|
+
markerOverride: { en: "" }
|
|
2686
|
+
// "tell #element ..." (no preposition)
|
|
2565
2687
|
}
|
|
2566
2688
|
]
|
|
2567
2689
|
};
|
|
@@ -2577,7 +2699,16 @@ var defaultSchema = {
|
|
|
2577
2699
|
required: true,
|
|
2578
2700
|
expectedTypes: ["reference"],
|
|
2579
2701
|
svoPosition: 1,
|
|
2580
|
-
sovPosition: 1
|
|
2702
|
+
sovPosition: 1,
|
|
2703
|
+
// Same overrides as SET: no marker before variable in VSO/SVO
|
|
2704
|
+
markerOverride: {
|
|
2705
|
+
en: "",
|
|
2706
|
+
ar: "",
|
|
2707
|
+
tl: "",
|
|
2708
|
+
sw: "",
|
|
2709
|
+
bn: "\u0995\u09C7",
|
|
2710
|
+
qu: "ta"
|
|
2711
|
+
}
|
|
2581
2712
|
},
|
|
2582
2713
|
{
|
|
2583
2714
|
role: "patient",
|
|
@@ -2585,7 +2716,16 @@ var defaultSchema = {
|
|
|
2585
2716
|
required: true,
|
|
2586
2717
|
expectedTypes: ["literal", "expression"],
|
|
2587
2718
|
svoPosition: 2,
|
|
2588
|
-
sovPosition: 2
|
|
2719
|
+
sovPosition: 2,
|
|
2720
|
+
// Same overrides as SET: value gets destination preposition
|
|
2721
|
+
markerOverride: {
|
|
2722
|
+
en: "to",
|
|
2723
|
+
ar: "\u0625\u0644\u0649",
|
|
2724
|
+
tl: "sa",
|
|
2725
|
+
sw: "kwenye",
|
|
2726
|
+
bn: "\u09A4\u09C7",
|
|
2727
|
+
qu: "man"
|
|
2728
|
+
}
|
|
2589
2729
|
}
|
|
2590
2730
|
]
|
|
2591
2731
|
};
|
|
@@ -2662,7 +2802,9 @@ var measureSchema = {
|
|
|
2662
2802
|
expectedTypes: ["selector", "reference"],
|
|
2663
2803
|
default: { type: "reference", value: "me" },
|
|
2664
2804
|
svoPosition: 2,
|
|
2665
|
-
sovPosition: 2
|
|
2805
|
+
sovPosition: 2,
|
|
2806
|
+
markerOverride: { en: "of" }
|
|
2807
|
+
// "measure width of #element"
|
|
2666
2808
|
}
|
|
2667
2809
|
]
|
|
2668
2810
|
};
|
|
@@ -2678,7 +2820,9 @@ var swapSchema = {
|
|
|
2678
2820
|
required: false,
|
|
2679
2821
|
expectedTypes: ["literal"],
|
|
2680
2822
|
svoPosition: 1,
|
|
2681
|
-
sovPosition: 3
|
|
2823
|
+
sovPosition: 3,
|
|
2824
|
+
markerOverride: { en: "" }
|
|
2825
|
+
// "swap innerHTML ..." (no preposition)
|
|
2682
2826
|
},
|
|
2683
2827
|
{
|
|
2684
2828
|
role: "destination",
|
|
@@ -2686,7 +2830,9 @@ var swapSchema = {
|
|
|
2686
2830
|
required: true,
|
|
2687
2831
|
expectedTypes: ["selector", "reference"],
|
|
2688
2832
|
svoPosition: 2,
|
|
2689
|
-
sovPosition: 1
|
|
2833
|
+
sovPosition: 1,
|
|
2834
|
+
markerOverride: { en: "of" }
|
|
2835
|
+
// "swap innerHTML of #target"
|
|
2690
2836
|
},
|
|
2691
2837
|
{
|
|
2692
2838
|
role: "patient",
|
|
@@ -2694,7 +2840,9 @@ var swapSchema = {
|
|
|
2694
2840
|
required: false,
|
|
2695
2841
|
expectedTypes: ["literal", "expression", "selector"],
|
|
2696
2842
|
svoPosition: 3,
|
|
2697
|
-
sovPosition: 2
|
|
2843
|
+
sovPosition: 2,
|
|
2844
|
+
markerOverride: { en: "with" }
|
|
2845
|
+
// "swap innerHTML of #target with <html>"
|
|
2698
2846
|
}
|
|
2699
2847
|
]
|
|
2700
2848
|
};
|
|
@@ -2710,7 +2858,9 @@ var morphSchema = {
|
|
|
2710
2858
|
required: true,
|
|
2711
2859
|
expectedTypes: ["selector", "reference"],
|
|
2712
2860
|
svoPosition: 1,
|
|
2713
|
-
sovPosition: 1
|
|
2861
|
+
sovPosition: 1,
|
|
2862
|
+
markerOverride: { en: "" }
|
|
2863
|
+
// "morph #target ..." (no preposition)
|
|
2714
2864
|
},
|
|
2715
2865
|
{
|
|
2716
2866
|
role: "patient",
|
|
@@ -2718,7 +2868,103 @@ var morphSchema = {
|
|
|
2718
2868
|
required: true,
|
|
2719
2869
|
expectedTypes: ["literal", "expression", "selector"],
|
|
2720
2870
|
svoPosition: 2,
|
|
2871
|
+
sovPosition: 2,
|
|
2872
|
+
markerOverride: { en: "to" }
|
|
2873
|
+
// "morph #target to <html>"
|
|
2874
|
+
}
|
|
2875
|
+
]
|
|
2876
|
+
};
|
|
2877
|
+
var beepSchema = {
|
|
2878
|
+
action: "beep",
|
|
2879
|
+
description: "Debug output for expressions with type information",
|
|
2880
|
+
category: "variable",
|
|
2881
|
+
primaryRole: "patient",
|
|
2882
|
+
roles: [
|
|
2883
|
+
{
|
|
2884
|
+
role: "patient",
|
|
2885
|
+
description: "The expression(s) to debug",
|
|
2886
|
+
required: false,
|
|
2887
|
+
expectedTypes: ["literal", "selector", "reference", "expression"],
|
|
2888
|
+
svoPosition: 1,
|
|
2889
|
+
sovPosition: 1
|
|
2890
|
+
}
|
|
2891
|
+
]
|
|
2892
|
+
};
|
|
2893
|
+
var breakSchema = {
|
|
2894
|
+
action: "break",
|
|
2895
|
+
description: "Exit from the current loop",
|
|
2896
|
+
category: "control-flow",
|
|
2897
|
+
primaryRole: "patient",
|
|
2898
|
+
roles: []
|
|
2899
|
+
};
|
|
2900
|
+
var copySchema = {
|
|
2901
|
+
action: "copy",
|
|
2902
|
+
description: "Copy text or element content to the clipboard",
|
|
2903
|
+
category: "dom-content",
|
|
2904
|
+
primaryRole: "patient",
|
|
2905
|
+
roles: [
|
|
2906
|
+
{
|
|
2907
|
+
role: "patient",
|
|
2908
|
+
description: "The text or element to copy",
|
|
2909
|
+
required: true,
|
|
2910
|
+
expectedTypes: ["literal", "selector", "reference", "expression"],
|
|
2911
|
+
svoPosition: 1,
|
|
2912
|
+
sovPosition: 1
|
|
2913
|
+
}
|
|
2914
|
+
]
|
|
2915
|
+
};
|
|
2916
|
+
var exitSchema = {
|
|
2917
|
+
action: "exit",
|
|
2918
|
+
description: "Exit from the current event handler",
|
|
2919
|
+
category: "control-flow",
|
|
2920
|
+
primaryRole: "patient",
|
|
2921
|
+
roles: []
|
|
2922
|
+
};
|
|
2923
|
+
var pickSchema = {
|
|
2924
|
+
action: "pick",
|
|
2925
|
+
description: "Select a random element from a collection",
|
|
2926
|
+
category: "variable",
|
|
2927
|
+
primaryRole: "patient",
|
|
2928
|
+
roles: [
|
|
2929
|
+
{
|
|
2930
|
+
role: "patient",
|
|
2931
|
+
description: "The items to pick from",
|
|
2932
|
+
required: true,
|
|
2933
|
+
expectedTypes: ["literal", "expression", "reference"],
|
|
2934
|
+
svoPosition: 1,
|
|
2935
|
+
sovPosition: 1
|
|
2936
|
+
},
|
|
2937
|
+
{
|
|
2938
|
+
role: "source",
|
|
2939
|
+
description: 'The array to pick from (with "from" keyword)',
|
|
2940
|
+
required: false,
|
|
2941
|
+
expectedTypes: ["reference", "expression"],
|
|
2942
|
+
svoPosition: 2,
|
|
2943
|
+
sovPosition: 2
|
|
2944
|
+
}
|
|
2945
|
+
]
|
|
2946
|
+
};
|
|
2947
|
+
var renderSchema = {
|
|
2948
|
+
action: "render",
|
|
2949
|
+
description: "Render a template with optional variables",
|
|
2950
|
+
category: "dom-content",
|
|
2951
|
+
primaryRole: "patient",
|
|
2952
|
+
roles: [
|
|
2953
|
+
{
|
|
2954
|
+
role: "patient",
|
|
2955
|
+
description: "The template to render",
|
|
2956
|
+
required: true,
|
|
2957
|
+
expectedTypes: ["selector", "reference", "expression"],
|
|
2958
|
+
svoPosition: 1,
|
|
2721
2959
|
sovPosition: 2
|
|
2960
|
+
},
|
|
2961
|
+
{
|
|
2962
|
+
role: "style",
|
|
2963
|
+
description: "Variables to pass to the template (with keyword)",
|
|
2964
|
+
required: false,
|
|
2965
|
+
expectedTypes: ["expression", "reference"],
|
|
2966
|
+
svoPosition: 2,
|
|
2967
|
+
sovPosition: 1
|
|
2722
2968
|
}
|
|
2723
2969
|
]
|
|
2724
2970
|
};
|
|
@@ -2776,6 +3022,13 @@ var commandSchemas = {
|
|
|
2776
3022
|
// Batch 5 - DOM Content Manipulation
|
|
2777
3023
|
swap: swapSchema,
|
|
2778
3024
|
morph: morphSchema,
|
|
3025
|
+
// Batch 6 - Missing Commands
|
|
3026
|
+
beep: beepSchema,
|
|
3027
|
+
break: breakSchema,
|
|
3028
|
+
copy: copySchema,
|
|
3029
|
+
exit: exitSchema,
|
|
3030
|
+
pick: pickSchema,
|
|
3031
|
+
render: renderSchema,
|
|
2779
3032
|
// Meta commands (for compound structures)
|
|
2780
3033
|
compound: {
|
|
2781
3034
|
action: "compound",
|
|
@@ -2839,170 +3092,114 @@ function resolveMarkerForRole(roleSpec, profile) {
|
|
|
2839
3092
|
return null;
|
|
2840
3093
|
}
|
|
2841
3094
|
|
|
2842
|
-
// src/generators/
|
|
2843
|
-
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
|
|
2851
|
-
|
|
2852
|
-
|
|
2853
|
-
|
|
3095
|
+
// src/generators/event-handlers-sov.ts
|
|
3096
|
+
function generateSOVEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config) {
|
|
3097
|
+
const tokens = [];
|
|
3098
|
+
tokens.push({ type: "role", role: "event", optional: false });
|
|
3099
|
+
if (eventMarker.position === "after") {
|
|
3100
|
+
const markerWords = eventMarker.primary.split(/\s+/);
|
|
3101
|
+
if (markerWords.length > 1) {
|
|
3102
|
+
for (const word of markerWords) {
|
|
3103
|
+
tokens.push({ type: "literal", value: word });
|
|
3104
|
+
}
|
|
3105
|
+
} else {
|
|
3106
|
+
const markerToken = eventMarker.alternatives ? { type: "literal", value: eventMarker.primary, alternatives: eventMarker.alternatives } : { type: "literal", value: eventMarker.primary };
|
|
3107
|
+
tokens.push(markerToken);
|
|
3108
|
+
}
|
|
2854
3109
|
}
|
|
2855
|
-
const
|
|
2856
|
-
|
|
2857
|
-
|
|
3110
|
+
const destMarker = profile.roleMarkers.destination;
|
|
3111
|
+
if (destMarker) {
|
|
3112
|
+
tokens.push({
|
|
3113
|
+
type: "group",
|
|
3114
|
+
optional: true,
|
|
3115
|
+
tokens: [
|
|
3116
|
+
{ type: "role", role: "destination", optional: true },
|
|
3117
|
+
destMarker.alternatives ? { type: "literal", value: destMarker.primary, alternatives: destMarker.alternatives } : { type: "literal", value: destMarker.primary }
|
|
3118
|
+
]
|
|
3119
|
+
});
|
|
3120
|
+
}
|
|
3121
|
+
tokens.push({ type: "role", role: "patient", optional: false });
|
|
3122
|
+
const patientMarker = profile.roleMarkers.patient;
|
|
3123
|
+
if (patientMarker) {
|
|
3124
|
+
const patMarkerToken = patientMarker.alternatives ? { type: "literal", value: patientMarker.primary, alternatives: patientMarker.alternatives } : { type: "literal", value: patientMarker.primary };
|
|
3125
|
+
tokens.push(patMarkerToken);
|
|
3126
|
+
}
|
|
3127
|
+
const verbToken = keyword.alternatives ? { type: "literal", value: keyword.primary, alternatives: keyword.alternatives } : { type: "literal", value: keyword.primary };
|
|
3128
|
+
tokens.push(verbToken);
|
|
2858
3129
|
return {
|
|
2859
|
-
id
|
|
3130
|
+
id: `${commandSchema.action}-event-${profile.code}-sov`,
|
|
2860
3131
|
language: profile.code,
|
|
2861
|
-
command:
|
|
2862
|
-
|
|
3132
|
+
command: "on",
|
|
3133
|
+
// This is an event handler pattern
|
|
3134
|
+
priority: (config.basePriority ?? 100) + 50,
|
|
3135
|
+
// Higher priority than simple commands
|
|
2863
3136
|
template: {
|
|
2864
|
-
format
|
|
3137
|
+
format: `{event} ${eventMarker.primary} {destination?} {patient} ${patientMarker?.primary || ""} ${keyword.primary}`,
|
|
2865
3138
|
tokens
|
|
2866
3139
|
},
|
|
2867
|
-
extraction
|
|
3140
|
+
extraction: {
|
|
3141
|
+
action: { value: commandSchema.action },
|
|
3142
|
+
// Extract the wrapped command
|
|
3143
|
+
event: { fromRole: "event" },
|
|
3144
|
+
patient: { fromRole: "patient" },
|
|
3145
|
+
destination: { fromRole: "destination", default: { type: "reference", value: "me" } }
|
|
3146
|
+
}
|
|
2868
3147
|
};
|
|
2869
3148
|
}
|
|
2870
|
-
function
|
|
2871
|
-
const
|
|
2872
|
-
|
|
2873
|
-
|
|
3149
|
+
function generateSOVPatientFirstEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config) {
|
|
3150
|
+
const tokens = [];
|
|
3151
|
+
tokens.push({ type: "role", role: "patient", optional: false });
|
|
3152
|
+
const patientMarker = profile.roleMarkers.patient;
|
|
3153
|
+
if (patientMarker) {
|
|
3154
|
+
const patMarkerToken = patientMarker.alternatives ? { type: "literal", value: patientMarker.primary, alternatives: patientMarker.alternatives } : { type: "literal", value: patientMarker.primary };
|
|
3155
|
+
tokens.push(patMarkerToken);
|
|
2874
3156
|
}
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
|
|
3157
|
+
tokens.push({ type: "role", role: "event", optional: false });
|
|
3158
|
+
if (eventMarker.position === "after") {
|
|
3159
|
+
const markerWords = eventMarker.primary.split(/\s+/);
|
|
3160
|
+
if (markerWords.length > 1) {
|
|
3161
|
+
for (const word of markerWords) {
|
|
3162
|
+
tokens.push({ type: "literal", value: word });
|
|
3163
|
+
}
|
|
3164
|
+
} else {
|
|
3165
|
+
const markerToken = eventMarker.alternatives ? { type: "literal", value: eventMarker.primary, alternatives: eventMarker.alternatives } : { type: "literal", value: eventMarker.primary };
|
|
3166
|
+
tokens.push(markerToken);
|
|
3167
|
+
}
|
|
3168
|
+
}
|
|
3169
|
+
const verbToken = keyword.alternatives ? { type: "literal", value: keyword.primary, alternatives: keyword.alternatives } : { type: "literal", value: keyword.primary };
|
|
3170
|
+
tokens.push(verbToken);
|
|
2881
3171
|
return {
|
|
2882
|
-
|
|
2883
|
-
|
|
2884
|
-
|
|
2885
|
-
|
|
2886
|
-
|
|
3172
|
+
id: `${commandSchema.action}-event-${profile.code}-sov-patient-first`,
|
|
3173
|
+
language: profile.code,
|
|
3174
|
+
command: "on",
|
|
3175
|
+
priority: (config.basePriority ?? 100) + 45,
|
|
3176
|
+
template: {
|
|
3177
|
+
format: `{patient} ${patientMarker?.primary || ""} {event} ${eventMarker.primary} ${keyword.primary}`,
|
|
3178
|
+
tokens
|
|
3179
|
+
},
|
|
3180
|
+
extraction: {
|
|
3181
|
+
action: { value: commandSchema.action },
|
|
3182
|
+
event: { fromRole: "event" },
|
|
3183
|
+
patient: { fromRole: "patient" },
|
|
3184
|
+
destination: { fromRole: "destination", default: { type: "reference", value: "me" } }
|
|
3185
|
+
}
|
|
2887
3186
|
};
|
|
2888
3187
|
}
|
|
2889
|
-
function
|
|
2890
|
-
const
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
}
|
|
2897
|
-
}
|
|
2898
|
-
return patterns;
|
|
2899
|
-
}
|
|
2900
|
-
function generatePatternsForLanguage(profile, config = defaultConfig) {
|
|
2901
|
-
const patterns = [];
|
|
2902
|
-
const schemas = getDefinedSchemas();
|
|
2903
|
-
for (const schema of schemas) {
|
|
2904
|
-
if (!profile.keywords[schema.action]) {
|
|
2905
|
-
continue;
|
|
2906
|
-
}
|
|
2907
|
-
const variants = generatePatternVariants(schema, profile, config);
|
|
2908
|
-
patterns.push(...variants);
|
|
2909
|
-
if (profile.eventHandler?.eventMarker) {
|
|
2910
|
-
const eventHandlerPatterns = generateEventHandlerPatterns(schema, profile, config);
|
|
2911
|
-
patterns.push(...eventHandlerPatterns);
|
|
2912
|
-
}
|
|
2913
|
-
}
|
|
2914
|
-
return patterns;
|
|
2915
|
-
}
|
|
2916
|
-
function generateEventHandlerPatterns(commandSchema, profile, config = defaultConfig) {
|
|
2917
|
-
if (!profile.eventHandler || !profile.eventHandler.eventMarker) {
|
|
2918
|
-
return [];
|
|
2919
|
-
}
|
|
2920
|
-
const patterns = [];
|
|
2921
|
-
const eventMarker = profile.eventHandler.eventMarker;
|
|
2922
|
-
const keyword = profile.keywords[commandSchema.action];
|
|
2923
|
-
if (!keyword) {
|
|
2924
|
-
return [];
|
|
3188
|
+
function generateSOVPatientFirstWithDestEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config) {
|
|
3189
|
+
const tokens = [];
|
|
3190
|
+
tokens.push({ type: "role", role: "patient", optional: false });
|
|
3191
|
+
const patientMarker = profile.roleMarkers.patient;
|
|
3192
|
+
if (patientMarker) {
|
|
3193
|
+
const patMarkerToken = patientMarker.alternatives ? { type: "literal", value: patientMarker.primary, alternatives: patientMarker.alternatives } : { type: "literal", value: patientMarker.primary };
|
|
3194
|
+
tokens.push(patMarkerToken);
|
|
2925
3195
|
}
|
|
2926
|
-
const
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
|
|
2930
|
-
|
|
2931
|
-
|
|
2932
|
-
);
|
|
2933
|
-
} else {
|
|
2934
|
-
patterns.push(
|
|
2935
|
-
generateSOVEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config)
|
|
2936
|
-
);
|
|
2937
|
-
const markerWords = eventMarker.primary.split(/\s+/);
|
|
2938
|
-
const hasNoSpaceAlternative = eventMarker.alternatives?.some(
|
|
2939
|
-
(alt) => !alt.includes(" ") && alt.length > 1
|
|
2940
|
-
);
|
|
2941
|
-
if (markerWords.length > 1 && hasNoSpaceAlternative) {
|
|
2942
|
-
patterns.push(
|
|
2943
|
-
generateSOVCompactEventHandlerPattern(
|
|
2944
|
-
commandSchema,
|
|
2945
|
-
profile,
|
|
2946
|
-
keyword,
|
|
2947
|
-
eventMarker,
|
|
2948
|
-
config
|
|
2949
|
-
)
|
|
2950
|
-
);
|
|
2951
|
-
}
|
|
2952
|
-
patterns.push(
|
|
2953
|
-
generateSOVSimpleEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config)
|
|
2954
|
-
);
|
|
2955
|
-
const temporalPattern = generateSOVTemporalEventHandlerPattern(
|
|
2956
|
-
commandSchema,
|
|
2957
|
-
profile,
|
|
2958
|
-
keyword,
|
|
2959
|
-
config
|
|
2960
|
-
);
|
|
2961
|
-
if (temporalPattern) {
|
|
2962
|
-
patterns.push(temporalPattern);
|
|
2963
|
-
}
|
|
2964
|
-
}
|
|
2965
|
-
} else if (profile.wordOrder === "VSO") {
|
|
2966
|
-
if (hasTwoRequiredRoles) {
|
|
2967
|
-
patterns.push(
|
|
2968
|
-
generateVSOTwoRoleEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config)
|
|
2969
|
-
);
|
|
2970
|
-
} else {
|
|
2971
|
-
patterns.push(
|
|
2972
|
-
generateVSOEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config)
|
|
2973
|
-
);
|
|
2974
|
-
if (profile.eventHandler?.negationMarker) {
|
|
2975
|
-
patterns.push(
|
|
2976
|
-
generateVSONegatedEventHandlerPattern(
|
|
2977
|
-
commandSchema,
|
|
2978
|
-
profile,
|
|
2979
|
-
keyword,
|
|
2980
|
-
eventMarker,
|
|
2981
|
-
config
|
|
2982
|
-
)
|
|
2983
|
-
);
|
|
2984
|
-
}
|
|
2985
|
-
if (profile.tokenization?.prefixes) {
|
|
2986
|
-
patterns.push(
|
|
2987
|
-
generateVSOProcliticEventHandlerPattern(commandSchema, profile, keyword, config)
|
|
2988
|
-
);
|
|
2989
|
-
}
|
|
2990
|
-
}
|
|
2991
|
-
} else {
|
|
2992
|
-
if (hasTwoRequiredRoles) {
|
|
2993
|
-
patterns.push(
|
|
2994
|
-
generateVSOTwoRoleEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config)
|
|
2995
|
-
);
|
|
2996
|
-
} else {
|
|
2997
|
-
patterns.push(
|
|
2998
|
-
generateVSOEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config)
|
|
2999
|
-
);
|
|
3000
|
-
}
|
|
3196
|
+
const destMarker = profile.roleMarkers.destination;
|
|
3197
|
+
if (destMarker) {
|
|
3198
|
+
tokens.push({ type: "role", role: "destination", optional: false });
|
|
3199
|
+
tokens.push(
|
|
3200
|
+
destMarker.alternatives ? { type: "literal", value: destMarker.primary, alternatives: destMarker.alternatives } : { type: "literal", value: destMarker.primary }
|
|
3201
|
+
);
|
|
3001
3202
|
}
|
|
3002
|
-
return patterns;
|
|
3003
|
-
}
|
|
3004
|
-
function generateSOVEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config) {
|
|
3005
|
-
const tokens = [];
|
|
3006
3203
|
tokens.push({ type: "role", role: "event", optional: false });
|
|
3007
3204
|
if (eventMarker.position === "after") {
|
|
3008
3205
|
const markerWords = eventMarker.primary.split(/\s+/);
|
|
@@ -3015,42 +3212,23 @@ function generateSOVEventHandlerPattern(commandSchema, profile, keyword, eventMa
|
|
|
3015
3212
|
tokens.push(markerToken);
|
|
3016
3213
|
}
|
|
3017
3214
|
}
|
|
3018
|
-
const destMarker = profile.roleMarkers.destination;
|
|
3019
|
-
if (destMarker) {
|
|
3020
|
-
tokens.push({
|
|
3021
|
-
type: "group",
|
|
3022
|
-
optional: true,
|
|
3023
|
-
tokens: [
|
|
3024
|
-
{ type: "role", role: "destination", optional: true },
|
|
3025
|
-
destMarker.alternatives ? { type: "literal", value: destMarker.primary, alternatives: destMarker.alternatives } : { type: "literal", value: destMarker.primary }
|
|
3026
|
-
]
|
|
3027
|
-
});
|
|
3028
|
-
}
|
|
3029
|
-
tokens.push({ type: "role", role: "patient", optional: false });
|
|
3030
|
-
const patientMarker = profile.roleMarkers.patient;
|
|
3031
|
-
if (patientMarker) {
|
|
3032
|
-
const patMarkerToken = patientMarker.alternatives ? { type: "literal", value: patientMarker.primary, alternatives: patientMarker.alternatives } : { type: "literal", value: patientMarker.primary };
|
|
3033
|
-
tokens.push(patMarkerToken);
|
|
3034
|
-
}
|
|
3035
3215
|
const verbToken = keyword.alternatives ? { type: "literal", value: keyword.primary, alternatives: keyword.alternatives } : { type: "literal", value: keyword.primary };
|
|
3036
3216
|
tokens.push(verbToken);
|
|
3037
3217
|
return {
|
|
3038
|
-
id: `${commandSchema.action}-event-${profile.code}-sov`,
|
|
3218
|
+
id: `${commandSchema.action}-event-${profile.code}-sov-patient-first-dest`,
|
|
3039
3219
|
language: profile.code,
|
|
3040
3220
|
command: "on",
|
|
3041
|
-
|
|
3042
|
-
|
|
3043
|
-
// Higher priority than simple commands
|
|
3221
|
+
priority: (config.basePriority ?? 100) + 40,
|
|
3222
|
+
// Lower than simple patient-first
|
|
3044
3223
|
template: {
|
|
3045
|
-
format: `{
|
|
3224
|
+
format: `{patient} ${patientMarker?.primary || ""} {destination} ${destMarker?.primary || ""} {event} ${eventMarker.primary} ${keyword.primary}`,
|
|
3046
3225
|
tokens
|
|
3047
3226
|
},
|
|
3048
3227
|
extraction: {
|
|
3049
3228
|
action: { value: commandSchema.action },
|
|
3050
|
-
// Extract the wrapped command
|
|
3051
3229
|
event: { fromRole: "event" },
|
|
3052
3230
|
patient: { fromRole: "patient" },
|
|
3053
|
-
destination: { fromRole: "destination"
|
|
3231
|
+
destination: { fromRole: "destination" }
|
|
3054
3232
|
}
|
|
3055
3233
|
};
|
|
3056
3234
|
}
|
|
@@ -3180,6 +3358,137 @@ function generateSOVTemporalEventHandlerPattern(commandSchema, profile, keyword,
|
|
|
3180
3358
|
}
|
|
3181
3359
|
};
|
|
3182
3360
|
}
|
|
3361
|
+
function generateSOVTwoRoleEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config) {
|
|
3362
|
+
const tokens = [];
|
|
3363
|
+
tokens.push({ type: "role", role: "event", optional: false });
|
|
3364
|
+
if (eventMarker.position === "after") {
|
|
3365
|
+
const markerWords = eventMarker.primary.split(/\s+/);
|
|
3366
|
+
if (markerWords.length > 1) {
|
|
3367
|
+
for (const word of markerWords) {
|
|
3368
|
+
tokens.push({ type: "literal", value: word });
|
|
3369
|
+
}
|
|
3370
|
+
} else {
|
|
3371
|
+
const markerToken = eventMarker.alternatives ? { type: "literal", value: eventMarker.primary, alternatives: eventMarker.alternatives } : { type: "literal", value: eventMarker.primary };
|
|
3372
|
+
tokens.push(markerToken);
|
|
3373
|
+
}
|
|
3374
|
+
}
|
|
3375
|
+
const requiredRoles = commandSchema.roles.filter((r) => r.required);
|
|
3376
|
+
const sortedRoles = [...requiredRoles].sort((a, b) => {
|
|
3377
|
+
const aPos = a.sovPosition ?? 999;
|
|
3378
|
+
const bPos = b.sovPosition ?? 999;
|
|
3379
|
+
return aPos - bPos;
|
|
3380
|
+
});
|
|
3381
|
+
for (const roleSpec of sortedRoles) {
|
|
3382
|
+
tokens.push({ type: "role", role: roleSpec.role, optional: false });
|
|
3383
|
+
let marker;
|
|
3384
|
+
let markerAlternatives;
|
|
3385
|
+
if (roleSpec.markerOverride && roleSpec.markerOverride[profile.code] !== void 0) {
|
|
3386
|
+
marker = roleSpec.markerOverride[profile.code];
|
|
3387
|
+
} else {
|
|
3388
|
+
const roleMarker = profile.roleMarkers[roleSpec.role];
|
|
3389
|
+
if (roleMarker) {
|
|
3390
|
+
marker = roleMarker.primary;
|
|
3391
|
+
markerAlternatives = roleMarker.alternatives;
|
|
3392
|
+
}
|
|
3393
|
+
}
|
|
3394
|
+
if (marker) {
|
|
3395
|
+
const markerToken = markerAlternatives ? { type: "literal", value: marker, alternatives: markerAlternatives } : { type: "literal", value: marker };
|
|
3396
|
+
tokens.push(markerToken);
|
|
3397
|
+
}
|
|
3398
|
+
}
|
|
3399
|
+
const verbToken = keyword.alternatives ? { type: "literal", value: keyword.primary, alternatives: keyword.alternatives } : { type: "literal", value: keyword.primary };
|
|
3400
|
+
tokens.push(verbToken);
|
|
3401
|
+
const roleNames = sortedRoles.map((r) => `{${r.role}}`).join(" ");
|
|
3402
|
+
return {
|
|
3403
|
+
id: `${commandSchema.action}-event-${profile.code}-sov-2role`,
|
|
3404
|
+
language: profile.code,
|
|
3405
|
+
command: "on",
|
|
3406
|
+
// This is an event handler pattern
|
|
3407
|
+
priority: (config.basePriority ?? 100) + 55,
|
|
3408
|
+
// Higher priority than single-role patterns
|
|
3409
|
+
template: {
|
|
3410
|
+
format: `{event} ${eventMarker.primary} ${roleNames} ${keyword.primary}`,
|
|
3411
|
+
tokens
|
|
3412
|
+
},
|
|
3413
|
+
extraction: {
|
|
3414
|
+
action: { value: commandSchema.action },
|
|
3415
|
+
// Extract the wrapped command
|
|
3416
|
+
event: { fromRole: "event" },
|
|
3417
|
+
...Object.fromEntries(sortedRoles.map((r) => [r.role, { fromRole: r.role }]))
|
|
3418
|
+
}
|
|
3419
|
+
};
|
|
3420
|
+
}
|
|
3421
|
+
function generateSOVTwoRoleDestFirstEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config) {
|
|
3422
|
+
const tokens = [];
|
|
3423
|
+
const requiredRoles = commandSchema.roles.filter((r) => r.required);
|
|
3424
|
+
const sortedRoles = [...requiredRoles].sort((a, b) => {
|
|
3425
|
+
const aPos = a.sovPosition ?? 999;
|
|
3426
|
+
const bPos = b.sovPosition ?? 999;
|
|
3427
|
+
return aPos - bPos;
|
|
3428
|
+
});
|
|
3429
|
+
const firstRole = sortedRoles[0];
|
|
3430
|
+
tokens.push({ type: "role", role: firstRole.role, optional: false });
|
|
3431
|
+
let firstMarker;
|
|
3432
|
+
if (firstRole.markerOverride && firstRole.markerOverride[profile.code] !== void 0) {
|
|
3433
|
+
firstMarker = firstRole.markerOverride[profile.code];
|
|
3434
|
+
} else {
|
|
3435
|
+
const roleMarker = profile.roleMarkers[firstRole.role];
|
|
3436
|
+
if (roleMarker) firstMarker = roleMarker.primary;
|
|
3437
|
+
}
|
|
3438
|
+
if (firstMarker) {
|
|
3439
|
+
tokens.push({ type: "literal", value: firstMarker });
|
|
3440
|
+
}
|
|
3441
|
+
tokens.push({ type: "role", role: "event", optional: false });
|
|
3442
|
+
if (eventMarker.position === "after") {
|
|
3443
|
+
const markerWords = eventMarker.primary.split(/\s+/);
|
|
3444
|
+
if (markerWords.length > 1) {
|
|
3445
|
+
for (const word of markerWords) {
|
|
3446
|
+
tokens.push({ type: "literal", value: word });
|
|
3447
|
+
}
|
|
3448
|
+
} else {
|
|
3449
|
+
const markerToken = eventMarker.alternatives ? { type: "literal", value: eventMarker.primary, alternatives: eventMarker.alternatives } : { type: "literal", value: eventMarker.primary };
|
|
3450
|
+
tokens.push(markerToken);
|
|
3451
|
+
}
|
|
3452
|
+
}
|
|
3453
|
+
const verbToken = keyword.alternatives ? { type: "literal", value: keyword.primary, alternatives: keyword.alternatives } : { type: "literal", value: keyword.primary };
|
|
3454
|
+
tokens.push(verbToken);
|
|
3455
|
+
const secondRole = sortedRoles[1];
|
|
3456
|
+
tokens.push({ type: "role", role: secondRole.role, optional: false });
|
|
3457
|
+
let secondMarker;
|
|
3458
|
+
let secondMarkerAlts;
|
|
3459
|
+
if (secondRole.markerOverride && secondRole.markerOverride[profile.code] !== void 0) {
|
|
3460
|
+
secondMarker = secondRole.markerOverride[profile.code];
|
|
3461
|
+
} else {
|
|
3462
|
+
const roleMarker = profile.roleMarkers[secondRole.role];
|
|
3463
|
+
if (roleMarker) {
|
|
3464
|
+
secondMarker = roleMarker.primary;
|
|
3465
|
+
secondMarkerAlts = roleMarker.alternatives;
|
|
3466
|
+
}
|
|
3467
|
+
}
|
|
3468
|
+
if (secondMarker) {
|
|
3469
|
+
const markerToken = secondMarkerAlts ? { type: "literal", value: secondMarker, alternatives: secondMarkerAlts } : { type: "literal", value: secondMarker };
|
|
3470
|
+
tokens.push(markerToken);
|
|
3471
|
+
}
|
|
3472
|
+
return {
|
|
3473
|
+
id: `${commandSchema.action}-event-${profile.code}-sov-2role-dest-first`,
|
|
3474
|
+
language: profile.code,
|
|
3475
|
+
command: "on",
|
|
3476
|
+
priority: (config.basePriority ?? 100) + 48,
|
|
3477
|
+
// Slightly lower than event-first two-role
|
|
3478
|
+
template: {
|
|
3479
|
+
format: `{${firstRole.role}} {event} ${eventMarker.primary} ${keyword.primary} {${secondRole.role}}`,
|
|
3480
|
+
tokens
|
|
3481
|
+
},
|
|
3482
|
+
extraction: {
|
|
3483
|
+
action: { value: commandSchema.action },
|
|
3484
|
+
event: { fromRole: "event" },
|
|
3485
|
+
[firstRole.role]: { fromRole: firstRole.role },
|
|
3486
|
+
[secondRole.role]: { fromRole: secondRole.role }
|
|
3487
|
+
}
|
|
3488
|
+
};
|
|
3489
|
+
}
|
|
3490
|
+
|
|
3491
|
+
// src/generators/event-handlers-vso.ts
|
|
3183
3492
|
function generateVSOEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config) {
|
|
3184
3493
|
const tokens = [];
|
|
3185
3494
|
if (eventMarker.position === "before") {
|
|
@@ -3221,31 +3530,59 @@ function generateVSOEventHandlerPattern(commandSchema, profile, keyword, eventMa
|
|
|
3221
3530
|
}
|
|
3222
3531
|
};
|
|
3223
3532
|
}
|
|
3224
|
-
function
|
|
3533
|
+
function generateVSOVerbFirstEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config) {
|
|
3225
3534
|
const tokens = [];
|
|
3535
|
+
const verbToken = keyword.alternatives ? { type: "literal", value: keyword.primary, alternatives: keyword.alternatives } : { type: "literal", value: keyword.primary };
|
|
3536
|
+
tokens.push(verbToken);
|
|
3537
|
+
tokens.push({ type: "role", role: "patient", optional: false });
|
|
3538
|
+
const destMarker = profile.roleMarkers.destination;
|
|
3539
|
+
if (destMarker) {
|
|
3540
|
+
tokens.push({
|
|
3541
|
+
type: "group",
|
|
3542
|
+
optional: true,
|
|
3543
|
+
tokens: [
|
|
3544
|
+
destMarker.alternatives ? { type: "literal", value: destMarker.primary, alternatives: destMarker.alternatives } : { type: "literal", value: destMarker.primary },
|
|
3545
|
+
{ type: "role", role: "destination", optional: true }
|
|
3546
|
+
]
|
|
3547
|
+
});
|
|
3548
|
+
}
|
|
3549
|
+
if (eventMarker.position === "before") {
|
|
3550
|
+
const markerToken = eventMarker.alternatives ? { type: "literal", value: eventMarker.primary, alternatives: eventMarker.alternatives } : { type: "literal", value: eventMarker.primary };
|
|
3551
|
+
tokens.push(markerToken);
|
|
3552
|
+
}
|
|
3226
3553
|
tokens.push({ type: "role", role: "event", optional: false });
|
|
3227
|
-
|
|
3228
|
-
|
|
3229
|
-
|
|
3230
|
-
|
|
3231
|
-
|
|
3232
|
-
|
|
3233
|
-
|
|
3234
|
-
|
|
3235
|
-
tokens
|
|
3554
|
+
return {
|
|
3555
|
+
id: `${commandSchema.action}-event-${profile.code}-vso-verb-first`,
|
|
3556
|
+
language: profile.code,
|
|
3557
|
+
command: "on",
|
|
3558
|
+
priority: (config.basePriority ?? 100) + 45,
|
|
3559
|
+
// Slightly lower than event-first variant
|
|
3560
|
+
template: {
|
|
3561
|
+
format: `${keyword.primary} {patient} ${destMarker?.primary || ""} {destination?} ${eventMarker.primary} {event}`,
|
|
3562
|
+
tokens
|
|
3563
|
+
},
|
|
3564
|
+
extraction: {
|
|
3565
|
+
action: { value: commandSchema.action },
|
|
3566
|
+
event: { fromRole: "event" },
|
|
3567
|
+
patient: { fromRole: "patient" },
|
|
3568
|
+
destination: { fromRole: "destination", default: { type: "reference", value: "me" } }
|
|
3236
3569
|
}
|
|
3237
|
-
}
|
|
3570
|
+
};
|
|
3571
|
+
}
|
|
3572
|
+
function generateVSOVerbFirstTwoRoleEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config) {
|
|
3573
|
+
const tokens = [];
|
|
3574
|
+
const verbToken = keyword.alternatives ? { type: "literal", value: keyword.primary, alternatives: keyword.alternatives } : { type: "literal", value: keyword.primary };
|
|
3575
|
+
tokens.push(verbToken);
|
|
3238
3576
|
const requiredRoles = commandSchema.roles.filter((r) => r.required);
|
|
3239
3577
|
const sortedRoles = [...requiredRoles].sort((a, b) => {
|
|
3240
|
-
const aPos = a.
|
|
3241
|
-
const bPos = b.
|
|
3578
|
+
const aPos = a.svoPosition ?? 999;
|
|
3579
|
+
const bPos = b.svoPosition ?? 999;
|
|
3242
3580
|
return aPos - bPos;
|
|
3243
3581
|
});
|
|
3244
3582
|
for (const roleSpec of sortedRoles) {
|
|
3245
|
-
tokens.push({ type: "role", role: roleSpec.role, optional: false });
|
|
3246
3583
|
let marker;
|
|
3247
3584
|
let markerAlternatives;
|
|
3248
|
-
if (roleSpec.markerOverride && roleSpec.markerOverride[profile.code]) {
|
|
3585
|
+
if (roleSpec.markerOverride && roleSpec.markerOverride[profile.code] !== void 0) {
|
|
3249
3586
|
marker = roleSpec.markerOverride[profile.code];
|
|
3250
3587
|
} else {
|
|
3251
3588
|
const roleMarker = profile.roleMarkers[roleSpec.role];
|
|
@@ -3258,27 +3595,27 @@ function generateSOVTwoRoleEventHandlerPattern(commandSchema, profile, keyword,
|
|
|
3258
3595
|
const markerToken = markerAlternatives ? { type: "literal", value: marker, alternatives: markerAlternatives } : { type: "literal", value: marker };
|
|
3259
3596
|
tokens.push(markerToken);
|
|
3260
3597
|
}
|
|
3598
|
+
tokens.push({ type: "role", role: roleSpec.role, optional: false });
|
|
3261
3599
|
}
|
|
3262
|
-
|
|
3263
|
-
|
|
3600
|
+
if (eventMarker.position === "before") {
|
|
3601
|
+
const markerToken = eventMarker.alternatives ? { type: "literal", value: eventMarker.primary, alternatives: eventMarker.alternatives } : { type: "literal", value: eventMarker.primary };
|
|
3602
|
+
tokens.push(markerToken);
|
|
3603
|
+
}
|
|
3604
|
+
tokens.push({ type: "role", role: "event", optional: false });
|
|
3264
3605
|
const roleNames = sortedRoles.map((r) => `{${r.role}}`).join(" ");
|
|
3265
3606
|
return {
|
|
3266
|
-
id: `${commandSchema.action}-event-${profile.code}-
|
|
3607
|
+
id: `${commandSchema.action}-event-${profile.code}-vso-verb-first-2role`,
|
|
3267
3608
|
language: profile.code,
|
|
3268
3609
|
command: "on",
|
|
3269
|
-
|
|
3270
|
-
priority: (config.basePriority ?? 100) + 55,
|
|
3271
|
-
// Higher priority than single-role patterns
|
|
3610
|
+
priority: (config.basePriority ?? 100) + 48,
|
|
3272
3611
|
template: {
|
|
3273
|
-
format:
|
|
3612
|
+
format: `${keyword.primary} ${roleNames} ${eventMarker.primary} {event}`,
|
|
3274
3613
|
tokens
|
|
3275
3614
|
},
|
|
3276
3615
|
extraction: {
|
|
3277
3616
|
action: { value: commandSchema.action },
|
|
3278
|
-
// Extract the wrapped command
|
|
3279
3617
|
event: { fromRole: "event" },
|
|
3280
|
-
|
|
3281
|
-
destination: { fromRole: "destination" }
|
|
3618
|
+
...Object.fromEntries(sortedRoles.map((r) => [r.role, { fromRole: r.role }]))
|
|
3282
3619
|
}
|
|
3283
3620
|
};
|
|
3284
3621
|
}
|
|
@@ -3300,7 +3637,7 @@ function generateVSOTwoRoleEventHandlerPattern(commandSchema, profile, keyword,
|
|
|
3300
3637
|
for (const roleSpec of sortedRoles) {
|
|
3301
3638
|
let marker;
|
|
3302
3639
|
let markerAlternatives;
|
|
3303
|
-
if (roleSpec.markerOverride && roleSpec.markerOverride[profile.code]) {
|
|
3640
|
+
if (roleSpec.markerOverride && roleSpec.markerOverride[profile.code] !== void 0) {
|
|
3304
3641
|
marker = roleSpec.markerOverride[profile.code];
|
|
3305
3642
|
} else {
|
|
3306
3643
|
const roleMarker = profile.roleMarkers[roleSpec.role];
|
|
@@ -3331,8 +3668,7 @@ function generateVSOTwoRoleEventHandlerPattern(commandSchema, profile, keyword,
|
|
|
3331
3668
|
action: { value: commandSchema.action },
|
|
3332
3669
|
// Extract the wrapped command
|
|
3333
3670
|
event: { fromRole: "event" },
|
|
3334
|
-
|
|
3335
|
-
destination: { fromRole: "destination" }
|
|
3671
|
+
...Object.fromEntries(sortedRoles.map((r) => [r.role, { fromRole: r.role }]))
|
|
3336
3672
|
}
|
|
3337
3673
|
};
|
|
3338
3674
|
}
|
|
@@ -3430,6 +3766,217 @@ function generateVSOProcliticEventHandlerPattern(commandSchema, profile, keyword
|
|
|
3430
3766
|
}
|
|
3431
3767
|
};
|
|
3432
3768
|
}
|
|
3769
|
+
|
|
3770
|
+
// src/generators/pattern-generator.ts
|
|
3771
|
+
var defaultConfig = {
|
|
3772
|
+
basePriority: 100,
|
|
3773
|
+
generateSimpleVariants: true,
|
|
3774
|
+
generateAlternatives: true
|
|
3775
|
+
};
|
|
3776
|
+
function generatePattern(schema, profile, config = defaultConfig) {
|
|
3777
|
+
const id = `${schema.action}-${profile.code}-generated`;
|
|
3778
|
+
const priority = config.basePriority ?? 100;
|
|
3779
|
+
const keyword = profile.keywords[schema.action];
|
|
3780
|
+
if (!keyword) {
|
|
3781
|
+
throw new Error(`No keyword translation for '${schema.action}' in ${profile.code}`);
|
|
3782
|
+
}
|
|
3783
|
+
const tokens = buildTokens(schema, profile, keyword);
|
|
3784
|
+
const extraction = buildExtractionRulesWithDefaults(schema, profile);
|
|
3785
|
+
const format = buildFormatString(schema, profile, keyword);
|
|
3786
|
+
return {
|
|
3787
|
+
id,
|
|
3788
|
+
language: profile.code,
|
|
3789
|
+
command: schema.action,
|
|
3790
|
+
priority,
|
|
3791
|
+
template: {
|
|
3792
|
+
format,
|
|
3793
|
+
tokens
|
|
3794
|
+
},
|
|
3795
|
+
extraction
|
|
3796
|
+
};
|
|
3797
|
+
}
|
|
3798
|
+
function generateSimplePattern(schema, profile, config = defaultConfig) {
|
|
3799
|
+
const optionalRoles = schema.roles.filter((r) => !r.required);
|
|
3800
|
+
if (optionalRoles.length === 0) {
|
|
3801
|
+
return null;
|
|
3802
|
+
}
|
|
3803
|
+
const requiredRoles = schema.roles.filter((r) => r.required);
|
|
3804
|
+
const simpleSchema = {
|
|
3805
|
+
...schema,
|
|
3806
|
+
roles: requiredRoles
|
|
3807
|
+
};
|
|
3808
|
+
const pattern = generatePattern(simpleSchema, profile, config);
|
|
3809
|
+
return {
|
|
3810
|
+
...pattern,
|
|
3811
|
+
id: `${schema.action}-${profile.code}-simple`,
|
|
3812
|
+
priority: (config.basePriority ?? 100) - 5,
|
|
3813
|
+
// Lower priority than full pattern (was -10)
|
|
3814
|
+
extraction: buildExtractionRulesWithDefaults(schema, profile)
|
|
3815
|
+
};
|
|
3816
|
+
}
|
|
3817
|
+
function generatePatternVariants(schema, profile, config = defaultConfig) {
|
|
3818
|
+
const patterns = [];
|
|
3819
|
+
patterns.push(generatePattern(schema, profile, config));
|
|
3820
|
+
if (config.generateSimpleVariants) {
|
|
3821
|
+
const simple = generateSimplePattern(schema, profile, config);
|
|
3822
|
+
if (simple) {
|
|
3823
|
+
patterns.push(simple);
|
|
3824
|
+
}
|
|
3825
|
+
}
|
|
3826
|
+
return patterns;
|
|
3827
|
+
}
|
|
3828
|
+
function generatePatternsForLanguage(profile, config = defaultConfig) {
|
|
3829
|
+
const patterns = [];
|
|
3830
|
+
const schemas = getDefinedSchemas();
|
|
3831
|
+
for (const schema of schemas) {
|
|
3832
|
+
if (!profile.keywords[schema.action]) {
|
|
3833
|
+
continue;
|
|
3834
|
+
}
|
|
3835
|
+
const variants = generatePatternVariants(schema, profile, config);
|
|
3836
|
+
patterns.push(...variants);
|
|
3837
|
+
if (profile.eventHandler?.eventMarker) {
|
|
3838
|
+
const eventHandlerPatterns = generateEventHandlerPatterns(schema, profile, config);
|
|
3839
|
+
patterns.push(...eventHandlerPatterns);
|
|
3840
|
+
}
|
|
3841
|
+
}
|
|
3842
|
+
return patterns;
|
|
3843
|
+
}
|
|
3844
|
+
function generateEventHandlerPatterns(commandSchema, profile, config = defaultConfig) {
|
|
3845
|
+
if (!profile.eventHandler || !profile.eventHandler.eventMarker) {
|
|
3846
|
+
return [];
|
|
3847
|
+
}
|
|
3848
|
+
const patterns = [];
|
|
3849
|
+
const eventMarker = profile.eventHandler.eventMarker;
|
|
3850
|
+
const keyword = profile.keywords[commandSchema.action];
|
|
3851
|
+
if (!keyword) {
|
|
3852
|
+
return [];
|
|
3853
|
+
}
|
|
3854
|
+
const requiredRoles = commandSchema.roles.filter((r) => r.required);
|
|
3855
|
+
const hasTwoRequiredRoles = requiredRoles.length === 2;
|
|
3856
|
+
if (profile.wordOrder === "SOV") {
|
|
3857
|
+
if (hasTwoRequiredRoles) {
|
|
3858
|
+
patterns.push(
|
|
3859
|
+
generateSOVTwoRoleEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config)
|
|
3860
|
+
);
|
|
3861
|
+
patterns.push(
|
|
3862
|
+
generateSOVTwoRoleDestFirstEventHandlerPattern(
|
|
3863
|
+
commandSchema,
|
|
3864
|
+
profile,
|
|
3865
|
+
keyword,
|
|
3866
|
+
eventMarker,
|
|
3867
|
+
config
|
|
3868
|
+
)
|
|
3869
|
+
);
|
|
3870
|
+
} else {
|
|
3871
|
+
patterns.push(
|
|
3872
|
+
generateSOVEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config)
|
|
3873
|
+
);
|
|
3874
|
+
patterns.push(
|
|
3875
|
+
generateSOVPatientFirstEventHandlerPattern(
|
|
3876
|
+
commandSchema,
|
|
3877
|
+
profile,
|
|
3878
|
+
keyword,
|
|
3879
|
+
eventMarker,
|
|
3880
|
+
config
|
|
3881
|
+
)
|
|
3882
|
+
);
|
|
3883
|
+
const destMarkerCheck = profile.roleMarkers.destination;
|
|
3884
|
+
if (destMarkerCheck && destMarkerCheck.primary !== eventMarker.primary) {
|
|
3885
|
+
patterns.push(
|
|
3886
|
+
generateSOVPatientFirstWithDestEventHandlerPattern(
|
|
3887
|
+
commandSchema,
|
|
3888
|
+
profile,
|
|
3889
|
+
keyword,
|
|
3890
|
+
eventMarker,
|
|
3891
|
+
config
|
|
3892
|
+
)
|
|
3893
|
+
);
|
|
3894
|
+
}
|
|
3895
|
+
const markerWords = eventMarker.primary.split(/\s+/);
|
|
3896
|
+
const hasNoSpaceAlternative = eventMarker.alternatives?.some(
|
|
3897
|
+
(alt) => !alt.includes(" ") && alt.length > 1
|
|
3898
|
+
);
|
|
3899
|
+
if (markerWords.length > 1 && hasNoSpaceAlternative) {
|
|
3900
|
+
patterns.push(
|
|
3901
|
+
generateSOVCompactEventHandlerPattern(
|
|
3902
|
+
commandSchema,
|
|
3903
|
+
profile,
|
|
3904
|
+
keyword,
|
|
3905
|
+
eventMarker,
|
|
3906
|
+
config
|
|
3907
|
+
)
|
|
3908
|
+
);
|
|
3909
|
+
}
|
|
3910
|
+
patterns.push(
|
|
3911
|
+
generateSOVSimpleEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config)
|
|
3912
|
+
);
|
|
3913
|
+
const temporalPattern = generateSOVTemporalEventHandlerPattern(
|
|
3914
|
+
commandSchema,
|
|
3915
|
+
profile,
|
|
3916
|
+
keyword,
|
|
3917
|
+
config
|
|
3918
|
+
);
|
|
3919
|
+
if (temporalPattern) {
|
|
3920
|
+
patterns.push(temporalPattern);
|
|
3921
|
+
}
|
|
3922
|
+
}
|
|
3923
|
+
} else if (profile.wordOrder === "VSO") {
|
|
3924
|
+
if (hasTwoRequiredRoles) {
|
|
3925
|
+
patterns.push(
|
|
3926
|
+
generateVSOTwoRoleEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config)
|
|
3927
|
+
);
|
|
3928
|
+
patterns.push(
|
|
3929
|
+
generateVSOVerbFirstTwoRoleEventHandlerPattern(
|
|
3930
|
+
commandSchema,
|
|
3931
|
+
profile,
|
|
3932
|
+
keyword,
|
|
3933
|
+
eventMarker,
|
|
3934
|
+
config
|
|
3935
|
+
)
|
|
3936
|
+
);
|
|
3937
|
+
} else {
|
|
3938
|
+
patterns.push(
|
|
3939
|
+
generateVSOEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config)
|
|
3940
|
+
);
|
|
3941
|
+
patterns.push(
|
|
3942
|
+
generateVSOVerbFirstEventHandlerPattern(
|
|
3943
|
+
commandSchema,
|
|
3944
|
+
profile,
|
|
3945
|
+
keyword,
|
|
3946
|
+
eventMarker,
|
|
3947
|
+
config
|
|
3948
|
+
)
|
|
3949
|
+
);
|
|
3950
|
+
if (profile.eventHandler?.negationMarker) {
|
|
3951
|
+
patterns.push(
|
|
3952
|
+
generateVSONegatedEventHandlerPattern(
|
|
3953
|
+
commandSchema,
|
|
3954
|
+
profile,
|
|
3955
|
+
keyword,
|
|
3956
|
+
eventMarker,
|
|
3957
|
+
config
|
|
3958
|
+
)
|
|
3959
|
+
);
|
|
3960
|
+
}
|
|
3961
|
+
if (profile.tokenization?.prefixes) {
|
|
3962
|
+
patterns.push(
|
|
3963
|
+
generateVSOProcliticEventHandlerPattern(commandSchema, profile, keyword, config)
|
|
3964
|
+
);
|
|
3965
|
+
}
|
|
3966
|
+
}
|
|
3967
|
+
} else {
|
|
3968
|
+
if (hasTwoRequiredRoles) {
|
|
3969
|
+
patterns.push(
|
|
3970
|
+
generateVSOTwoRoleEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config)
|
|
3971
|
+
);
|
|
3972
|
+
} else {
|
|
3973
|
+
patterns.push(
|
|
3974
|
+
generateVSOEventHandlerPattern(commandSchema, profile, keyword, eventMarker, config)
|
|
3975
|
+
);
|
|
3976
|
+
}
|
|
3977
|
+
}
|
|
3978
|
+
return patterns;
|
|
3979
|
+
}
|
|
3433
3980
|
function buildTokens(schema, profile, keyword) {
|
|
3434
3981
|
const tokens = [];
|
|
3435
3982
|
const verbToken = keyword.alternatives ? { type: "literal", value: keyword.primary, alternatives: keyword.alternatives } : { type: "literal", value: keyword.primary };
|