@lokascript/semantic 1.3.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__test-utils__/index.d.ts +6 -0
- package/dist/__test-utils__/index.d.ts.map +1 -0
- package/dist/__test-utils__/test-helpers.d.ts +7 -0
- package/dist/__test-utils__/test-helpers.d.ts.map +1 -0
- package/dist/__types__/test-helpers.d.ts +67 -0
- package/dist/__types__/test-helpers.d.ts.map +1 -0
- package/dist/analysis/index.d.ts +106 -0
- package/dist/analysis/index.d.ts.map +1 -0
- package/dist/ast-builder/command-mappers.d.ts +50 -0
- package/dist/ast-builder/command-mappers.d.ts.map +1 -0
- package/dist/ast-builder/expression-parser/index.d.ts +14 -0
- package/dist/ast-builder/expression-parser/index.d.ts.map +1 -0
- package/dist/ast-builder/expression-parser/parser.d.ts +50 -0
- package/dist/ast-builder/expression-parser/parser.d.ts.map +1 -0
- package/dist/ast-builder/expression-parser/tokenizer.d.ts +44 -0
- package/dist/ast-builder/expression-parser/tokenizer.d.ts.map +1 -0
- package/dist/ast-builder/expression-parser/types.d.ts +111 -0
- package/dist/ast-builder/expression-parser/types.d.ts.map +1 -0
- package/dist/ast-builder/index.d.ts +183 -0
- package/dist/ast-builder/index.d.ts.map +1 -0
- package/dist/ast-builder/value-converters.d.ts +51 -0
- package/dist/ast-builder/value-converters.d.ts.map +1 -0
- package/dist/browser-ar.ar.global.js +2 -2
- package/dist/browser-ar.d.ts +47 -0
- package/dist/browser-ar.d.ts.map +1 -0
- package/dist/browser-bn.bn.global.js +2 -0
- package/dist/browser-bn.d.ts +47 -0
- package/dist/browser-bn.d.ts.map +1 -0
- package/dist/browser-core.core.global.js +2 -2
- package/dist/browser-core.d.ts +83 -0
- package/dist/browser-core.d.ts.map +1 -0
- package/dist/browser-de.d.ts +47 -0
- package/dist/browser-de.d.ts.map +1 -0
- package/dist/browser-de.de.global.js +2 -2
- package/dist/browser-east-asian.d.ts +59 -0
- package/dist/browser-east-asian.d.ts.map +1 -0
- package/dist/browser-east-asian.east-asian.global.js +2 -2
- package/dist/browser-en-tr.d.ts +50 -0
- package/dist/browser-en-tr.d.ts.map +1 -0
- package/dist/browser-en-tr.en-tr.global.js +2 -2
- package/dist/browser-en.d.ts +48 -0
- package/dist/browser-en.d.ts.map +1 -0
- package/dist/browser-en.en.global.js +2 -2
- package/dist/browser-es-en.d.ts +62 -0
- package/dist/browser-es-en.d.ts.map +1 -0
- package/dist/browser-es-en.es-en.global.js +2 -2
- package/dist/browser-es.d.ts +51 -0
- package/dist/browser-es.d.ts.map +1 -0
- package/dist/browser-es.es.global.js +2 -2
- package/dist/browser-fr.d.ts +47 -0
- package/dist/browser-fr.d.ts.map +1 -0
- package/dist/browser-fr.fr.global.js +2 -2
- package/dist/browser-hi.d.ts +47 -0
- package/dist/browser-hi.d.ts.map +1 -0
- package/dist/browser-hi.hi.global.js +2 -0
- package/dist/browser-id.d.ts +47 -0
- package/dist/browser-id.d.ts.map +1 -0
- package/dist/browser-id.id.global.js +2 -2
- package/dist/browser-it.d.ts +47 -0
- package/dist/browser-it.d.ts.map +1 -0
- package/dist/browser-it.it.global.js +2 -0
- package/dist/browser-ja.d.ts +47 -0
- package/dist/browser-ja.d.ts.map +1 -0
- package/dist/browser-ja.ja.global.js +2 -2
- package/dist/browser-ko.d.ts +47 -0
- package/dist/browser-ko.d.ts.map +1 -0
- package/dist/browser-ko.ko.global.js +2 -2
- package/dist/browser-lazy.d.ts +52 -0
- package/dist/browser-lazy.d.ts.map +1 -0
- package/dist/browser-lazy.lazy.global.js +2 -2
- package/dist/browser-ms.d.ts +47 -0
- package/dist/browser-ms.d.ts.map +1 -0
- package/dist/browser-ms.ms.global.js +2 -0
- package/dist/browser-pl.d.ts +47 -0
- package/dist/browser-pl.d.ts.map +1 -0
- package/dist/browser-pl.pl.global.js +2 -0
- package/dist/browser-priority.d.ts +83 -0
- package/dist/browser-priority.d.ts.map +1 -0
- package/dist/browser-priority.priority.global.js +2 -2
- package/dist/browser-pt.d.ts +47 -0
- package/dist/browser-pt.d.ts.map +1 -0
- package/dist/browser-pt.pt.global.js +2 -2
- package/dist/browser-qu.d.ts +47 -0
- package/dist/browser-qu.d.ts.map +1 -0
- package/dist/browser-qu.qu.global.js +2 -2
- package/dist/browser-ru.d.ts +47 -0
- package/dist/browser-ru.d.ts.map +1 -0
- package/dist/browser-ru.ru.global.js +2 -0
- package/dist/browser-sw.d.ts +47 -0
- package/dist/browser-sw.d.ts.map +1 -0
- package/dist/browser-sw.sw.global.js +2 -2
- package/dist/browser-th.d.ts +47 -0
- package/dist/browser-th.d.ts.map +1 -0
- package/dist/browser-th.th.global.js +2 -0
- package/dist/browser-tl.d.ts +47 -0
- package/dist/browser-tl.d.ts.map +1 -0
- package/dist/browser-tl.tl.global.js +2 -0
- package/dist/browser-tr.d.ts +47 -0
- package/dist/browser-tr.d.ts.map +1 -0
- package/dist/browser-tr.tr.global.js +2 -2
- package/dist/browser-uk.d.ts +47 -0
- package/dist/browser-uk.d.ts.map +1 -0
- package/dist/browser-uk.uk.global.js +2 -0
- package/dist/browser-vi.d.ts +47 -0
- package/dist/browser-vi.d.ts.map +1 -0
- package/dist/browser-vi.vi.global.js +2 -0
- package/dist/browser-western.d.ts +67 -0
- package/dist/browser-western.d.ts.map +1 -0
- package/dist/browser-western.western.global.js +2 -2
- package/dist/browser-zh.d.ts +47 -0
- package/dist/browser-zh.d.ts.map +1 -0
- package/dist/browser-zh.zh.global.js +2 -2
- package/dist/browser.d.ts +69 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.global.js +2 -2
- package/dist/browser.global.js.map +1 -1
- package/dist/cache/index.d.ts +7 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/semantic-cache.d.ts +138 -0
- package/dist/cache/semantic-cache.d.ts.map +1 -0
- package/dist/core-bridge.d.ts +154 -0
- package/dist/core-bridge.d.ts.map +1 -0
- package/dist/core.d.ts +24 -1235
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +6433 -1731
- package/dist/core.js.map +1 -1
- package/dist/explicit/converter.d.ts +98 -0
- package/dist/explicit/converter.d.ts.map +1 -0
- package/dist/explicit/index.d.ts +10 -0
- package/dist/explicit/index.d.ts.map +1 -0
- package/dist/explicit/parser.d.ts +25 -0
- package/dist/explicit/parser.d.ts.map +1 -0
- package/dist/explicit/renderer.d.ts +82 -0
- package/dist/explicit/renderer.d.ts.map +1 -0
- package/dist/generators/command-schemas.d.ts +358 -0
- package/dist/generators/command-schemas.d.ts.map +1 -0
- package/dist/generators/event-handlers-sov.d.ts +91 -0
- package/dist/generators/event-handlers-sov.d.ts.map +1 -0
- package/dist/generators/event-handlers-vso.d.ts +69 -0
- package/dist/generators/event-handlers-vso.d.ts.map +1 -0
- package/dist/generators/index.d.ts +12 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/language-profiles.d.ts +65 -0
- package/dist/generators/language-profiles.d.ts.map +1 -0
- package/dist/generators/pattern-generator.d.ts +81 -0
- package/dist/generators/pattern-generator.d.ts.map +1 -0
- package/dist/generators/profiles/arabic.d.ts +9 -0
- package/dist/generators/profiles/arabic.d.ts.map +1 -0
- package/dist/generators/profiles/bengali.d.ts +9 -0
- package/dist/generators/profiles/bengali.d.ts.map +1 -0
- package/dist/generators/profiles/chinese.d.ts +9 -0
- package/dist/generators/profiles/chinese.d.ts.map +1 -0
- package/dist/generators/profiles/english.d.ts +8 -0
- package/dist/generators/profiles/english.d.ts.map +1 -0
- package/dist/generators/profiles/french.d.ts +9 -0
- package/dist/generators/profiles/french.d.ts.map +1 -0
- package/dist/generators/profiles/german.d.ts +9 -0
- package/dist/generators/profiles/german.d.ts.map +1 -0
- package/dist/generators/profiles/hebrew.d.ts +10 -0
- package/dist/generators/profiles/hebrew.d.ts.map +1 -0
- package/dist/generators/profiles/hindi.d.ts +9 -0
- package/dist/generators/profiles/hindi.d.ts.map +1 -0
- package/dist/generators/profiles/index.d.ts +36 -0
- package/dist/generators/profiles/index.d.ts.map +1 -0
- package/dist/generators/profiles/indonesian.d.ts +9 -0
- package/dist/generators/profiles/indonesian.d.ts.map +1 -0
- package/dist/generators/profiles/italian.d.ts +10 -0
- package/dist/generators/profiles/italian.d.ts.map +1 -0
- package/dist/generators/profiles/japanese.d.ts +9 -0
- package/dist/generators/profiles/japanese.d.ts.map +1 -0
- package/dist/generators/profiles/korean.d.ts +9 -0
- package/dist/generators/profiles/korean.d.ts.map +1 -0
- package/dist/generators/profiles/marker-templates.d.ts +119 -0
- package/dist/generators/profiles/marker-templates.d.ts.map +1 -0
- package/dist/generators/profiles/ms.d.ts +8 -0
- package/dist/generators/profiles/ms.d.ts.map +1 -0
- package/dist/generators/profiles/polish.d.ts +10 -0
- package/dist/generators/profiles/polish.d.ts.map +1 -0
- package/dist/generators/profiles/portuguese.d.ts +9 -0
- package/dist/generators/profiles/portuguese.d.ts.map +1 -0
- package/dist/generators/profiles/quechua.d.ts +9 -0
- package/dist/generators/profiles/quechua.d.ts.map +1 -0
- package/dist/generators/profiles/russian.d.ts +10 -0
- package/dist/generators/profiles/russian.d.ts.map +1 -0
- package/dist/generators/profiles/spanish.d.ts +9 -0
- package/dist/generators/profiles/spanish.d.ts.map +1 -0
- package/dist/generators/profiles/spanishMexico.d.ts +19 -0
- package/dist/generators/profiles/spanishMexico.d.ts.map +1 -0
- package/dist/generators/profiles/swahili.d.ts +9 -0
- package/dist/generators/profiles/swahili.d.ts.map +1 -0
- package/dist/generators/profiles/thai.d.ts +9 -0
- package/dist/generators/profiles/thai.d.ts.map +1 -0
- package/dist/generators/profiles/tl.d.ts +8 -0
- package/dist/generators/profiles/tl.d.ts.map +1 -0
- package/dist/generators/profiles/turkish.d.ts +9 -0
- package/dist/generators/profiles/turkish.d.ts.map +1 -0
- package/dist/generators/profiles/types.d.ts +170 -0
- package/dist/generators/profiles/types.d.ts.map +1 -0
- package/dist/generators/profiles/ukrainian.d.ts +10 -0
- package/dist/generators/profiles/ukrainian.d.ts.map +1 -0
- package/dist/generators/profiles/vietnamese.d.ts +10 -0
- package/dist/generators/profiles/vietnamese.d.ts.map +1 -0
- package/dist/generators/schema-error-codes.d.ts +60 -0
- package/dist/generators/schema-error-codes.d.ts.map +1 -0
- package/dist/generators/schema-validator.d.ts +77 -0
- package/dist/generators/schema-validator.d.ts.map +1 -0
- package/dist/index.cjs +5451 -2522
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +50 -3436
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5448 -2526
- package/dist/index.js.map +1 -1
- package/dist/interchange/from-semantic.d.ts +23 -0
- package/dist/interchange/from-semantic.d.ts.map +1 -0
- package/dist/interchange/index.d.ts +7 -0
- package/dist/interchange/index.d.ts.map +1 -0
- package/dist/interchange/types.d.ts +132 -0
- package/dist/interchange/types.d.ts.map +1 -0
- package/dist/language-building-schema.d.ts +163 -0
- package/dist/language-building-schema.d.ts.map +1 -0
- package/dist/language-loader.d.ts +126 -0
- package/dist/language-loader.d.ts.map +1 -0
- package/dist/languages/_all.d.ts +66 -0
- package/dist/languages/_all.d.ts.map +1 -0
- package/dist/languages/ar.d.ts +6 -75
- package/dist/languages/ar.d.ts.map +1 -0
- package/dist/languages/ar.js +65 -14
- package/dist/languages/ar.js.map +1 -1
- package/dist/languages/bn.d.ts +7 -30
- package/dist/languages/bn.d.ts.map +1 -0
- package/dist/languages/bn.js +83 -21
- package/dist/languages/bn.js.map +1 -1
- package/dist/languages/de.d.ts +6 -35
- package/dist/languages/de.d.ts.map +1 -0
- package/dist/languages/de.js +260 -22
- package/dist/languages/de.js.map +1 -1
- package/dist/languages/en.d.ts +13 -40
- package/dist/languages/en.d.ts.map +1 -0
- package/dist/languages/en.js +788 -241
- package/dist/languages/en.js.map +1 -1
- package/dist/languages/es-MX.d.ts +18 -17
- package/dist/languages/es-MX.d.ts.map +1 -0
- package/dist/languages/es-MX.js +66 -13
- package/dist/languages/es-MX.js.map +1 -1
- package/dist/languages/es.d.ts +6 -10
- package/dist/languages/es.d.ts.map +1 -0
- package/dist/languages/es.js +60 -13
- package/dist/languages/es.js.map +1 -1
- package/dist/languages/fr.d.ts +6 -34
- package/dist/languages/fr.d.ts.map +1 -0
- package/dist/languages/fr.js +309 -22
- package/dist/languages/fr.js.map +1 -1
- package/dist/languages/he.d.ts +6 -67
- package/dist/languages/he.d.ts.map +1 -0
- package/dist/languages/he.js +60 -13
- package/dist/languages/he.js.map +1 -1
- package/dist/languages/hi.d.ts +14 -32
- package/dist/languages/hi.d.ts.map +1 -0
- package/dist/languages/hi.js +60 -13
- package/dist/languages/hi.js.map +1 -1
- package/dist/languages/id.d.ts +6 -32
- package/dist/languages/id.d.ts.map +1 -0
- package/dist/languages/id.js +60 -13
- package/dist/languages/id.js.map +1 -1
- package/dist/languages/index.d.ts +18 -0
- package/dist/languages/index.d.ts.map +1 -0
- package/dist/languages/it.d.ts +6 -50
- package/dist/languages/it.d.ts.map +1 -0
- package/dist/languages/it.js +60 -13
- package/dist/languages/it.js.map +1 -1
- package/dist/languages/ja.d.ts +6 -50
- package/dist/languages/ja.d.ts.map +1 -0
- package/dist/languages/ja.js +60 -13
- package/dist/languages/ja.js.map +1 -1
- package/dist/languages/ko.d.ts +6 -55
- package/dist/languages/ko.d.ts.map +1 -0
- package/dist/languages/ko.js +64 -13
- package/dist/languages/ko.js.map +1 -1
- package/dist/languages/ms.d.ts +7 -29
- package/dist/languages/ms.d.ts.map +1 -0
- package/dist/languages/ms.js +58 -13
- package/dist/languages/ms.js.map +1 -1
- package/dist/languages/pl.d.ts +8 -33
- package/dist/languages/pl.d.ts.map +1 -0
- package/dist/languages/pl.js +277 -22
- package/dist/languages/pl.js.map +1 -1
- package/dist/languages/pt.d.ts +6 -34
- package/dist/languages/pt.d.ts.map +1 -0
- package/dist/languages/pt.js +344 -22
- package/dist/languages/pt.js.map +1 -1
- package/dist/languages/qu.d.ts +6 -44
- package/dist/languages/qu.d.ts.map +1 -0
- package/dist/languages/qu.js +105 -28
- package/dist/languages/qu.js.map +1 -1
- package/dist/languages/ru.d.ts +14 -33
- package/dist/languages/ru.d.ts.map +1 -0
- package/dist/languages/ru.js +371 -22
- package/dist/languages/ru.js.map +1 -1
- package/dist/languages/sw.d.ts +6 -32
- package/dist/languages/sw.d.ts.map +1 -0
- package/dist/languages/sw.js +69 -17
- package/dist/languages/sw.js.map +1 -1
- package/dist/languages/th.d.ts +7 -32
- package/dist/languages/th.d.ts.map +1 -0
- package/dist/languages/th.js +60 -13
- package/dist/languages/th.js.map +1 -1
- package/dist/languages/tl.d.ts +7 -29
- package/dist/languages/tl.d.ts.map +1 -0
- package/dist/languages/tl.js +75 -23
- package/dist/languages/tl.js.map +1 -1
- package/dist/languages/tr.d.ts +6 -50
- package/dist/languages/tr.d.ts.map +1 -0
- package/dist/languages/tr.js +67 -16
- package/dist/languages/tr.js.map +1 -1
- package/dist/languages/uk.d.ts +14 -33
- package/dist/languages/uk.d.ts.map +1 -0
- package/dist/languages/uk.js +357 -22
- package/dist/languages/uk.js.map +1 -1
- package/dist/languages/vi.d.ts +7 -56
- package/dist/languages/vi.d.ts.map +1 -0
- package/dist/languages/vi.js +59 -13
- package/dist/languages/vi.js.map +1 -1
- package/dist/languages/zh.d.ts +6 -55
- package/dist/languages/zh.d.ts.map +1 -0
- package/dist/languages/zh.js +59 -13
- package/dist/languages/zh.js.map +1 -1
- package/dist/parser/index.d.ts +8 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/pattern-matcher.d.ts +188 -0
- package/dist/parser/pattern-matcher.d.ts.map +1 -0
- package/dist/parser/semantic-parser.d.ts +238 -0
- package/dist/parser/semantic-parser.d.ts.map +1 -0
- package/dist/parser/utils/index.d.ts +9 -0
- package/dist/parser/utils/index.d.ts.map +1 -0
- package/dist/parser/utils/marker-resolution.d.ts +57 -0
- package/dist/parser/utils/marker-resolution.d.ts.map +1 -0
- package/dist/parser/utils/possessive-keywords.d.ts +31 -0
- package/dist/parser/utils/possessive-keywords.d.ts.map +1 -0
- package/dist/parser/utils/role-positioning.d.ts +42 -0
- package/dist/parser/utils/role-positioning.d.ts.map +1 -0
- package/dist/parser/utils/type-validation.d.ts +63 -0
- package/dist/parser/utils/type-validation.d.ts.map +1 -0
- package/dist/patterns/add/ar.d.ts +12 -0
- package/dist/patterns/add/ar.d.ts.map +1 -0
- package/dist/patterns/add/bn.d.ts +8 -0
- package/dist/patterns/add/bn.d.ts.map +1 -0
- package/dist/patterns/add/hi.d.ts +8 -0
- package/dist/patterns/add/hi.d.ts.map +1 -0
- package/dist/patterns/add/index.d.ts +31 -0
- package/dist/patterns/add/index.d.ts.map +1 -0
- package/dist/patterns/add/it.d.ts +11 -0
- package/dist/patterns/add/it.d.ts.map +1 -0
- package/dist/patterns/add/ja.d.ts +12 -0
- package/dist/patterns/add/ja.d.ts.map +1 -0
- package/dist/patterns/add/ko.d.ts +12 -0
- package/dist/patterns/add/ko.d.ts.map +1 -0
- package/dist/patterns/add/pl.d.ts +12 -0
- package/dist/patterns/add/pl.d.ts.map +1 -0
- package/dist/patterns/add/qu.d.ts +9 -0
- package/dist/patterns/add/qu.d.ts.map +1 -0
- package/dist/patterns/add/ru.d.ts +12 -0
- package/dist/patterns/add/ru.d.ts.map +1 -0
- package/dist/patterns/add/th.d.ts +8 -0
- package/dist/patterns/add/th.d.ts.map +1 -0
- package/dist/patterns/add/tr.d.ts +12 -0
- package/dist/patterns/add/tr.d.ts.map +1 -0
- package/dist/patterns/add/uk.d.ts +12 -0
- package/dist/patterns/add/uk.d.ts.map +1 -0
- package/dist/patterns/add/vi.d.ts +11 -0
- package/dist/patterns/add/vi.d.ts.map +1 -0
- package/dist/patterns/add/zh.d.ts +12 -0
- package/dist/patterns/add/zh.d.ts.map +1 -0
- package/dist/patterns/builders.d.ts +52 -0
- package/dist/patterns/builders.d.ts.map +1 -0
- package/dist/patterns/decrement/bn.d.ts +8 -0
- package/dist/patterns/decrement/bn.d.ts.map +1 -0
- package/dist/patterns/decrement/de.d.ts +12 -0
- package/dist/patterns/decrement/de.d.ts.map +1 -0
- package/dist/patterns/decrement/hi.d.ts +8 -0
- package/dist/patterns/decrement/hi.d.ts.map +1 -0
- package/dist/patterns/decrement/index.d.ts +28 -0
- package/dist/patterns/decrement/index.d.ts.map +1 -0
- package/dist/patterns/decrement/it.d.ts +11 -0
- package/dist/patterns/decrement/it.d.ts.map +1 -0
- package/dist/patterns/decrement/pl.d.ts +12 -0
- package/dist/patterns/decrement/pl.d.ts.map +1 -0
- package/dist/patterns/decrement/ru.d.ts +12 -0
- package/dist/patterns/decrement/ru.d.ts.map +1 -0
- package/dist/patterns/decrement/th.d.ts +8 -0
- package/dist/patterns/decrement/th.d.ts.map +1 -0
- package/dist/patterns/decrement/tr.d.ts +12 -0
- package/dist/patterns/decrement/tr.d.ts.map +1 -0
- package/dist/patterns/decrement/uk.d.ts +12 -0
- package/dist/patterns/decrement/uk.d.ts.map +1 -0
- package/dist/patterns/decrement/vi.d.ts +11 -0
- package/dist/patterns/decrement/vi.d.ts.map +1 -0
- package/dist/patterns/decrement/zh.d.ts +12 -0
- package/dist/patterns/decrement/zh.d.ts.map +1 -0
- package/dist/patterns/en.d.ts +13 -0
- package/dist/patterns/en.d.ts.map +1 -0
- package/dist/patterns/event-handler/ar.d.ts +12 -0
- package/dist/patterns/event-handler/ar.d.ts.map +1 -0
- package/dist/patterns/event-handler/bn.d.ts +8 -0
- package/dist/patterns/event-handler/bn.d.ts.map +1 -0
- package/dist/patterns/event-handler/de.d.ts +11 -0
- package/dist/patterns/event-handler/de.d.ts.map +1 -0
- package/dist/patterns/event-handler/en.d.ts +11 -0
- package/dist/patterns/event-handler/en.d.ts.map +1 -0
- package/dist/patterns/event-handler/es.d.ts +11 -0
- package/dist/patterns/event-handler/es.d.ts.map +1 -0
- package/dist/patterns/event-handler/fr.d.ts +11 -0
- package/dist/patterns/event-handler/fr.d.ts.map +1 -0
- package/dist/patterns/event-handler/he.d.ts +12 -0
- package/dist/patterns/event-handler/he.d.ts.map +1 -0
- package/dist/patterns/event-handler/hi.d.ts +9 -0
- package/dist/patterns/event-handler/hi.d.ts.map +1 -0
- package/dist/patterns/event-handler/id.d.ts +11 -0
- package/dist/patterns/event-handler/id.d.ts.map +1 -0
- package/dist/patterns/event-handler/index.d.ts +41 -0
- package/dist/patterns/event-handler/index.d.ts.map +1 -0
- package/dist/patterns/event-handler/it.d.ts +11 -0
- package/dist/patterns/event-handler/it.d.ts.map +1 -0
- package/dist/patterns/event-handler/ja.d.ts +12 -0
- package/dist/patterns/event-handler/ja.d.ts.map +1 -0
- package/dist/patterns/event-handler/ko.d.ts +12 -0
- package/dist/patterns/event-handler/ko.d.ts.map +1 -0
- package/dist/patterns/event-handler/ms.d.ts +14 -0
- package/dist/patterns/event-handler/ms.d.ts.map +1 -0
- package/dist/patterns/event-handler/pl.d.ts +12 -0
- package/dist/patterns/event-handler/pl.d.ts.map +1 -0
- package/dist/patterns/event-handler/pt.d.ts +11 -0
- package/dist/patterns/event-handler/pt.d.ts.map +1 -0
- package/dist/patterns/event-handler/qu.d.ts +11 -0
- package/dist/patterns/event-handler/qu.d.ts.map +1 -0
- package/dist/patterns/event-handler/ru.d.ts +12 -0
- package/dist/patterns/event-handler/ru.d.ts.map +1 -0
- package/dist/patterns/event-handler/shared.d.ts +15 -0
- package/dist/patterns/event-handler/shared.d.ts.map +1 -0
- package/dist/patterns/event-handler/sw.d.ts +11 -0
- package/dist/patterns/event-handler/sw.d.ts.map +1 -0
- package/dist/patterns/event-handler/th.d.ts +8 -0
- package/dist/patterns/event-handler/th.d.ts.map +1 -0
- package/dist/patterns/event-handler/tl.d.ts +9 -0
- package/dist/patterns/event-handler/tl.d.ts.map +1 -0
- package/dist/patterns/event-handler/tr.d.ts +12 -0
- package/dist/patterns/event-handler/tr.d.ts.map +1 -0
- package/dist/patterns/event-handler/uk.d.ts +12 -0
- package/dist/patterns/event-handler/uk.d.ts.map +1 -0
- package/dist/patterns/event-handler/vi.d.ts +11 -0
- package/dist/patterns/event-handler/vi.d.ts.map +1 -0
- package/dist/patterns/event-handler/zh.d.ts +11 -0
- package/dist/patterns/event-handler/zh.d.ts.map +1 -0
- package/dist/patterns/get/ar.d.ts +12 -0
- package/dist/patterns/get/ar.d.ts.map +1 -0
- package/dist/patterns/get/bn.d.ts +8 -0
- package/dist/patterns/get/bn.d.ts.map +1 -0
- package/dist/patterns/get/de.d.ts +12 -0
- package/dist/patterns/get/de.d.ts.map +1 -0
- package/dist/patterns/get/hi.d.ts +8 -0
- package/dist/patterns/get/hi.d.ts.map +1 -0
- package/dist/patterns/get/index.d.ts +29 -0
- package/dist/patterns/get/index.d.ts.map +1 -0
- package/dist/patterns/get/it.d.ts +11 -0
- package/dist/patterns/get/it.d.ts.map +1 -0
- package/dist/patterns/get/ja.d.ts +12 -0
- package/dist/patterns/get/ja.d.ts.map +1 -0
- package/dist/patterns/get/ko.d.ts +12 -0
- package/dist/patterns/get/ko.d.ts.map +1 -0
- package/dist/patterns/get/pl.d.ts +12 -0
- package/dist/patterns/get/pl.d.ts.map +1 -0
- package/dist/patterns/get/ru.d.ts +12 -0
- package/dist/patterns/get/ru.d.ts.map +1 -0
- package/dist/patterns/get/th.d.ts +8 -0
- package/dist/patterns/get/th.d.ts.map +1 -0
- package/dist/patterns/get/uk.d.ts +12 -0
- package/dist/patterns/get/uk.d.ts.map +1 -0
- package/dist/patterns/get/vi.d.ts +11 -0
- package/dist/patterns/get/vi.d.ts.map +1 -0
- package/dist/patterns/grammar-transformed/index.d.ts +20 -0
- package/dist/patterns/grammar-transformed/index.d.ts.map +1 -0
- package/dist/patterns/grammar-transformed/ja.d.ts +12 -0
- package/dist/patterns/grammar-transformed/ja.d.ts.map +1 -0
- package/dist/patterns/grammar-transformed/ko.d.ts +12 -0
- package/dist/patterns/grammar-transformed/ko.d.ts.map +1 -0
- package/dist/patterns/grammar-transformed/tr.d.ts +12 -0
- package/dist/patterns/grammar-transformed/tr.d.ts.map +1 -0
- package/dist/patterns/hide/ar.d.ts +12 -0
- package/dist/patterns/hide/ar.d.ts.map +1 -0
- package/dist/patterns/hide/bn.d.ts +8 -0
- package/dist/patterns/hide/bn.d.ts.map +1 -0
- package/dist/patterns/hide/de.d.ts +12 -0
- package/dist/patterns/hide/de.d.ts.map +1 -0
- package/dist/patterns/hide/hi.d.ts +8 -0
- package/dist/patterns/hide/hi.d.ts.map +1 -0
- package/dist/patterns/hide/index.d.ts +31 -0
- package/dist/patterns/hide/index.d.ts.map +1 -0
- package/dist/patterns/hide/it.d.ts +11 -0
- package/dist/patterns/hide/it.d.ts.map +1 -0
- package/dist/patterns/hide/ja.d.ts +12 -0
- package/dist/patterns/hide/ja.d.ts.map +1 -0
- package/dist/patterns/hide/ko.d.ts +12 -0
- package/dist/patterns/hide/ko.d.ts.map +1 -0
- package/dist/patterns/hide/pl.d.ts +12 -0
- package/dist/patterns/hide/pl.d.ts.map +1 -0
- package/dist/patterns/hide/ru.d.ts +12 -0
- package/dist/patterns/hide/ru.d.ts.map +1 -0
- package/dist/patterns/hide/th.d.ts +8 -0
- package/dist/patterns/hide/th.d.ts.map +1 -0
- package/dist/patterns/hide/tr.d.ts +12 -0
- package/dist/patterns/hide/tr.d.ts.map +1 -0
- package/dist/patterns/hide/uk.d.ts +12 -0
- package/dist/patterns/hide/uk.d.ts.map +1 -0
- package/dist/patterns/hide/vi.d.ts +11 -0
- package/dist/patterns/hide/vi.d.ts.map +1 -0
- package/dist/patterns/hide/zh.d.ts +12 -0
- package/dist/patterns/hide/zh.d.ts.map +1 -0
- package/dist/patterns/increment/bn.d.ts +8 -0
- package/dist/patterns/increment/bn.d.ts.map +1 -0
- package/dist/patterns/increment/de.d.ts +12 -0
- package/dist/patterns/increment/de.d.ts.map +1 -0
- package/dist/patterns/increment/hi.d.ts +8 -0
- package/dist/patterns/increment/hi.d.ts.map +1 -0
- package/dist/patterns/increment/index.d.ts +28 -0
- package/dist/patterns/increment/index.d.ts.map +1 -0
- package/dist/patterns/increment/it.d.ts +11 -0
- package/dist/patterns/increment/it.d.ts.map +1 -0
- package/dist/patterns/increment/pl.d.ts +12 -0
- package/dist/patterns/increment/pl.d.ts.map +1 -0
- package/dist/patterns/increment/ru.d.ts +12 -0
- package/dist/patterns/increment/ru.d.ts.map +1 -0
- package/dist/patterns/increment/th.d.ts +8 -0
- package/dist/patterns/increment/th.d.ts.map +1 -0
- package/dist/patterns/increment/tr.d.ts +12 -0
- package/dist/patterns/increment/tr.d.ts.map +1 -0
- package/dist/patterns/increment/uk.d.ts +12 -0
- package/dist/patterns/increment/uk.d.ts.map +1 -0
- package/dist/patterns/increment/vi.d.ts +11 -0
- package/dist/patterns/increment/vi.d.ts.map +1 -0
- package/dist/patterns/increment/zh.d.ts +12 -0
- package/dist/patterns/increment/zh.d.ts.map +1 -0
- package/dist/patterns/index.d.ts +21 -0
- package/dist/patterns/index.d.ts.map +1 -0
- package/dist/patterns/languages/en/control-flow.d.ts +40 -0
- package/dist/patterns/languages/en/control-flow.d.ts.map +1 -0
- package/dist/patterns/languages/en/fetch.d.ts +22 -0
- package/dist/patterns/languages/en/fetch.d.ts.map +1 -0
- package/dist/patterns/languages/en/index.d.ts +22 -0
- package/dist/patterns/languages/en/index.d.ts.map +1 -0
- package/dist/patterns/languages/en/repeat.d.ts +22 -0
- package/dist/patterns/languages/en/repeat.d.ts.map +1 -0
- package/dist/patterns/languages/en/set.d.ts +23 -0
- package/dist/patterns/languages/en/set.d.ts.map +1 -0
- package/dist/patterns/languages/en/swap.d.ts +19 -0
- package/dist/patterns/languages/en/swap.d.ts.map +1 -0
- package/dist/patterns/languages/en/temporal.d.ts +24 -0
- package/dist/patterns/languages/en/temporal.d.ts.map +1 -0
- package/dist/patterns/put/ar.d.ts +12 -0
- package/dist/patterns/put/ar.d.ts.map +1 -0
- package/dist/patterns/put/bn.d.ts +8 -0
- package/dist/patterns/put/bn.d.ts.map +1 -0
- package/dist/patterns/put/en.d.ts +11 -0
- package/dist/patterns/put/en.d.ts.map +1 -0
- package/dist/patterns/put/es.d.ts +11 -0
- package/dist/patterns/put/es.d.ts.map +1 -0
- package/dist/patterns/put/hi.d.ts +8 -0
- package/dist/patterns/put/hi.d.ts.map +1 -0
- package/dist/patterns/put/id.d.ts +15 -0
- package/dist/patterns/put/id.d.ts.map +1 -0
- package/dist/patterns/put/index.d.ts +33 -0
- package/dist/patterns/put/index.d.ts.map +1 -0
- package/dist/patterns/put/it.d.ts +11 -0
- package/dist/patterns/put/it.d.ts.map +1 -0
- package/dist/patterns/put/ja.d.ts +12 -0
- package/dist/patterns/put/ja.d.ts.map +1 -0
- package/dist/patterns/put/ko.d.ts +12 -0
- package/dist/patterns/put/ko.d.ts.map +1 -0
- package/dist/patterns/put/pl.d.ts +12 -0
- package/dist/patterns/put/pl.d.ts.map +1 -0
- package/dist/patterns/put/ru.d.ts +12 -0
- package/dist/patterns/put/ru.d.ts.map +1 -0
- package/dist/patterns/put/th.d.ts +8 -0
- package/dist/patterns/put/th.d.ts.map +1 -0
- package/dist/patterns/put/tr.d.ts +12 -0
- package/dist/patterns/put/tr.d.ts.map +1 -0
- package/dist/patterns/put/uk.d.ts +12 -0
- package/dist/patterns/put/uk.d.ts.map +1 -0
- package/dist/patterns/put/vi.d.ts +11 -0
- package/dist/patterns/put/vi.d.ts.map +1 -0
- package/dist/patterns/put/zh.d.ts +12 -0
- package/dist/patterns/put/zh.d.ts.map +1 -0
- package/dist/patterns/registry.d.ts +53 -0
- package/dist/patterns/registry.d.ts.map +1 -0
- package/dist/patterns/remove/ar.d.ts +12 -0
- package/dist/patterns/remove/ar.d.ts.map +1 -0
- package/dist/patterns/remove/bn.d.ts +8 -0
- package/dist/patterns/remove/bn.d.ts.map +1 -0
- package/dist/patterns/remove/hi.d.ts +8 -0
- package/dist/patterns/remove/hi.d.ts.map +1 -0
- package/dist/patterns/remove/index.d.ts +31 -0
- package/dist/patterns/remove/index.d.ts.map +1 -0
- package/dist/patterns/remove/it.d.ts +11 -0
- package/dist/patterns/remove/it.d.ts.map +1 -0
- package/dist/patterns/remove/ja.d.ts +12 -0
- package/dist/patterns/remove/ja.d.ts.map +1 -0
- package/dist/patterns/remove/ko.d.ts +12 -0
- package/dist/patterns/remove/ko.d.ts.map +1 -0
- package/dist/patterns/remove/pl.d.ts +12 -0
- package/dist/patterns/remove/pl.d.ts.map +1 -0
- package/dist/patterns/remove/qu.d.ts +9 -0
- package/dist/patterns/remove/qu.d.ts.map +1 -0
- package/dist/patterns/remove/ru.d.ts +12 -0
- package/dist/patterns/remove/ru.d.ts.map +1 -0
- package/dist/patterns/remove/th.d.ts +8 -0
- package/dist/patterns/remove/th.d.ts.map +1 -0
- package/dist/patterns/remove/tr.d.ts +12 -0
- package/dist/patterns/remove/tr.d.ts.map +1 -0
- package/dist/patterns/remove/uk.d.ts +12 -0
- package/dist/patterns/remove/uk.d.ts.map +1 -0
- package/dist/patterns/remove/vi.d.ts +11 -0
- package/dist/patterns/remove/vi.d.ts.map +1 -0
- package/dist/patterns/remove/zh.d.ts +12 -0
- package/dist/patterns/remove/zh.d.ts.map +1 -0
- package/dist/patterns/set/ar.d.ts +12 -0
- package/dist/patterns/set/ar.d.ts.map +1 -0
- package/dist/patterns/set/bn.d.ts +8 -0
- package/dist/patterns/set/bn.d.ts.map +1 -0
- package/dist/patterns/set/de.d.ts +12 -0
- package/dist/patterns/set/de.d.ts.map +1 -0
- package/dist/patterns/set/es.d.ts +12 -0
- package/dist/patterns/set/es.d.ts.map +1 -0
- package/dist/patterns/set/fr.d.ts +12 -0
- package/dist/patterns/set/fr.d.ts.map +1 -0
- package/dist/patterns/set/hi.d.ts +8 -0
- package/dist/patterns/set/hi.d.ts.map +1 -0
- package/dist/patterns/set/id.d.ts +12 -0
- package/dist/patterns/set/id.d.ts.map +1 -0
- package/dist/patterns/set/index.d.ts +35 -0
- package/dist/patterns/set/index.d.ts.map +1 -0
- package/dist/patterns/set/it.d.ts +11 -0
- package/dist/patterns/set/it.d.ts.map +1 -0
- package/dist/patterns/set/ja.d.ts +12 -0
- package/dist/patterns/set/ja.d.ts.map +1 -0
- package/dist/patterns/set/ko.d.ts +12 -0
- package/dist/patterns/set/ko.d.ts.map +1 -0
- package/dist/patterns/set/pl.d.ts +12 -0
- package/dist/patterns/set/pl.d.ts.map +1 -0
- package/dist/patterns/set/pt.d.ts +12 -0
- package/dist/patterns/set/pt.d.ts.map +1 -0
- package/dist/patterns/set/ru.d.ts +12 -0
- package/dist/patterns/set/ru.d.ts.map +1 -0
- package/dist/patterns/set/th.d.ts +8 -0
- package/dist/patterns/set/th.d.ts.map +1 -0
- package/dist/patterns/set/tr.d.ts +12 -0
- package/dist/patterns/set/tr.d.ts.map +1 -0
- package/dist/patterns/set/uk.d.ts +12 -0
- package/dist/patterns/set/uk.d.ts.map +1 -0
- package/dist/patterns/set/vi.d.ts +11 -0
- package/dist/patterns/set/vi.d.ts.map +1 -0
- package/dist/patterns/set/zh.d.ts +12 -0
- package/dist/patterns/set/zh.d.ts.map +1 -0
- package/dist/patterns/show/ar.d.ts +12 -0
- package/dist/patterns/show/ar.d.ts.map +1 -0
- package/dist/patterns/show/bn.d.ts +8 -0
- package/dist/patterns/show/bn.d.ts.map +1 -0
- package/dist/patterns/show/de.d.ts +12 -0
- package/dist/patterns/show/de.d.ts.map +1 -0
- package/dist/patterns/show/fr.d.ts +12 -0
- package/dist/patterns/show/fr.d.ts.map +1 -0
- package/dist/patterns/show/hi.d.ts +8 -0
- package/dist/patterns/show/hi.d.ts.map +1 -0
- package/dist/patterns/show/index.d.ts +32 -0
- package/dist/patterns/show/index.d.ts.map +1 -0
- package/dist/patterns/show/it.d.ts +11 -0
- package/dist/patterns/show/it.d.ts.map +1 -0
- package/dist/patterns/show/ja.d.ts +12 -0
- package/dist/patterns/show/ja.d.ts.map +1 -0
- package/dist/patterns/show/ko.d.ts +12 -0
- package/dist/patterns/show/ko.d.ts.map +1 -0
- package/dist/patterns/show/pl.d.ts +12 -0
- package/dist/patterns/show/pl.d.ts.map +1 -0
- package/dist/patterns/show/ru.d.ts +12 -0
- package/dist/patterns/show/ru.d.ts.map +1 -0
- package/dist/patterns/show/th.d.ts +8 -0
- package/dist/patterns/show/th.d.ts.map +1 -0
- package/dist/patterns/show/tr.d.ts +12 -0
- package/dist/patterns/show/tr.d.ts.map +1 -0
- package/dist/patterns/show/uk.d.ts +12 -0
- package/dist/patterns/show/uk.d.ts.map +1 -0
- package/dist/patterns/show/vi.d.ts +11 -0
- package/dist/patterns/show/vi.d.ts.map +1 -0
- package/dist/patterns/show/zh.d.ts +12 -0
- package/dist/patterns/show/zh.d.ts.map +1 -0
- package/dist/patterns/take/ar.d.ts +12 -0
- package/dist/patterns/take/ar.d.ts.map +1 -0
- package/dist/patterns/take/index.d.ts +18 -0
- package/dist/patterns/take/index.d.ts.map +1 -0
- package/dist/patterns/toggle/ar.d.ts +12 -0
- package/dist/patterns/toggle/ar.d.ts.map +1 -0
- package/dist/patterns/toggle/bn.d.ts +8 -0
- package/dist/patterns/toggle/bn.d.ts.map +1 -0
- package/dist/patterns/toggle/en.d.ts +11 -0
- package/dist/patterns/toggle/en.d.ts.map +1 -0
- package/dist/patterns/toggle/es.d.ts +11 -0
- package/dist/patterns/toggle/es.d.ts.map +1 -0
- package/dist/patterns/toggle/hi.d.ts +9 -0
- package/dist/patterns/toggle/hi.d.ts.map +1 -0
- package/dist/patterns/toggle/index.d.ts +33 -0
- package/dist/patterns/toggle/index.d.ts.map +1 -0
- package/dist/patterns/toggle/it.d.ts +11 -0
- package/dist/patterns/toggle/it.d.ts.map +1 -0
- package/dist/patterns/toggle/ja.d.ts +12 -0
- package/dist/patterns/toggle/ja.d.ts.map +1 -0
- package/dist/patterns/toggle/ko.d.ts +12 -0
- package/dist/patterns/toggle/ko.d.ts.map +1 -0
- package/dist/patterns/toggle/pl.d.ts +12 -0
- package/dist/patterns/toggle/pl.d.ts.map +1 -0
- package/dist/patterns/toggle/qu.d.ts +9 -0
- package/dist/patterns/toggle/qu.d.ts.map +1 -0
- package/dist/patterns/toggle/ru.d.ts +12 -0
- package/dist/patterns/toggle/ru.d.ts.map +1 -0
- package/dist/patterns/toggle/th.d.ts +9 -0
- package/dist/patterns/toggle/th.d.ts.map +1 -0
- package/dist/patterns/toggle/tr.d.ts +12 -0
- package/dist/patterns/toggle/tr.d.ts.map +1 -0
- package/dist/patterns/toggle/uk.d.ts +12 -0
- package/dist/patterns/toggle/uk.d.ts.map +1 -0
- package/dist/patterns/toggle/vi.d.ts +11 -0
- package/dist/patterns/toggle/vi.d.ts.map +1 -0
- package/dist/patterns/toggle/zh.d.ts +11 -0
- package/dist/patterns/toggle/zh.d.ts.map +1 -0
- package/dist/public-api.d.ts +190 -0
- package/dist/public-api.d.ts.map +1 -0
- package/dist/registry.d.ts +225 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/tokenizers/arabic.d.ts +67 -0
- package/dist/tokenizers/arabic.d.ts.map +1 -0
- package/dist/tokenizers/base-tokenizer.d.ts +240 -0
- package/dist/tokenizers/base-tokenizer.d.ts.map +1 -0
- package/dist/tokenizers/base.d.ts +14 -0
- package/dist/tokenizers/base.d.ts.map +1 -0
- package/dist/tokenizers/bengali.d.ts +22 -0
- package/dist/tokenizers/bengali.d.ts.map +1 -0
- package/dist/tokenizers/char-classifiers.d.ts +56 -0
- package/dist/tokenizers/char-classifiers.d.ts.map +1 -0
- package/dist/tokenizers/chinese.d.ts +47 -0
- package/dist/tokenizers/chinese.d.ts.map +1 -0
- package/dist/tokenizers/english.d.ts +34 -0
- package/dist/tokenizers/english.d.ts.map +1 -0
- package/dist/tokenizers/extractors.d.ts +61 -0
- package/dist/tokenizers/extractors.d.ts.map +1 -0
- package/dist/tokenizers/french.d.ts +26 -0
- package/dist/tokenizers/french.d.ts.map +1 -0
- package/dist/tokenizers/german.d.ts +27 -0
- package/dist/tokenizers/german.d.ts.map +1 -0
- package/dist/tokenizers/he.d.ts +58 -0
- package/dist/tokenizers/he.d.ts.map +1 -0
- package/dist/tokenizers/hindi.d.ts +25 -0
- package/dist/tokenizers/hindi.d.ts.map +1 -0
- package/dist/tokenizers/index.d.ts +64 -0
- package/dist/tokenizers/index.d.ts.map +1 -0
- package/dist/tokenizers/indonesian.d.ts +24 -0
- package/dist/tokenizers/indonesian.d.ts.map +1 -0
- package/dist/tokenizers/italian.d.ts +41 -0
- package/dist/tokenizers/italian.d.ts.map +1 -0
- package/dist/tokenizers/japanese.d.ts +42 -0
- package/dist/tokenizers/japanese.d.ts.map +1 -0
- package/dist/tokenizers/korean.d.ts +47 -0
- package/dist/tokenizers/korean.d.ts.map +1 -0
- package/dist/tokenizers/morphology/arabic-normalizer.d.ts +37 -0
- package/dist/tokenizers/morphology/arabic-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/french-normalizer.d.ts +46 -0
- package/dist/tokenizers/morphology/french-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/german-normalizer.d.ts +55 -0
- package/dist/tokenizers/morphology/german-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/index.d.ts +20 -0
- package/dist/tokenizers/morphology/index.d.ts.map +1 -0
- package/dist/tokenizers/morphology/italian-normalizer.d.ts +52 -0
- package/dist/tokenizers/morphology/italian-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/japanese-normalizer.d.ts +43 -0
- package/dist/tokenizers/morphology/japanese-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/korean-normalizer.d.ts +45 -0
- package/dist/tokenizers/morphology/korean-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/polish-normalizer.d.ts +61 -0
- package/dist/tokenizers/morphology/polish-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/portuguese-normalizer.d.ts +51 -0
- package/dist/tokenizers/morphology/portuguese-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/russian-normalizer.d.ts +72 -0
- package/dist/tokenizers/morphology/russian-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/spanish-normalizer.d.ts +49 -0
- package/dist/tokenizers/morphology/spanish-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/turkish-normalizer.d.ts +52 -0
- package/dist/tokenizers/morphology/turkish-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/morphology/types.d.ts +110 -0
- package/dist/tokenizers/morphology/types.d.ts.map +1 -0
- package/dist/tokenizers/morphology/ukrainian-normalizer.d.ts +76 -0
- package/dist/tokenizers/morphology/ukrainian-normalizer.d.ts.map +1 -0
- package/dist/tokenizers/ms.d.ts +22 -0
- package/dist/tokenizers/ms.d.ts.map +1 -0
- package/dist/tokenizers/polish.d.ts +25 -0
- package/dist/tokenizers/polish.d.ts.map +1 -0
- package/dist/tokenizers/portuguese.d.ts +26 -0
- package/dist/tokenizers/portuguese.d.ts.map +1 -0
- package/dist/tokenizers/quechua.d.ts +36 -0
- package/dist/tokenizers/quechua.d.ts.map +1 -0
- package/dist/tokenizers/russian.d.ts +25 -0
- package/dist/tokenizers/russian.d.ts.map +1 -0
- package/dist/{spanish-BedpM-NU.d.ts → tokenizers/spanish.d.ts} +5 -7
- package/dist/tokenizers/spanish.d.ts.map +1 -0
- package/dist/tokenizers/swahili.d.ts +24 -0
- package/dist/tokenizers/swahili.d.ts.map +1 -0
- package/dist/tokenizers/thai.d.ts +24 -0
- package/dist/tokenizers/thai.d.ts.map +1 -0
- package/dist/tokenizers/tl.d.ts +22 -0
- package/dist/tokenizers/tl.d.ts.map +1 -0
- package/dist/tokenizers/token-utils.d.ts +97 -0
- package/dist/tokenizers/token-utils.d.ts.map +1 -0
- package/dist/tokenizers/turkish.d.ts +42 -0
- package/dist/tokenizers/turkish.d.ts.map +1 -0
- package/dist/tokenizers/ukrainian.d.ts +25 -0
- package/dist/tokenizers/ukrainian.d.ts.map +1 -0
- package/dist/tokenizers/vietnamese.d.ts +47 -0
- package/dist/tokenizers/vietnamese.d.ts.map +1 -0
- package/dist/types/grammar-types.d.ts +224 -0
- package/dist/types/grammar-types.d.ts.map +1 -0
- package/dist/types/unified-profile.d.ts +167 -0
- package/dist/types/unified-profile.d.ts.map +1 -0
- package/dist/types.d.ts +401 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/confidence-calculator.d.ts +43 -0
- package/dist/utils/confidence-calculator.d.ts.map +1 -0
- package/dist/validators/command-validator.d.ts +83 -0
- package/dist/validators/command-validator.d.ts.map +1 -0
- package/dist/validators/index.d.ts +7 -0
- package/dist/validators/index.d.ts.map +1 -0
- package/package.json +38 -6
- package/src/ast-builder/command-mappers.ts +9 -1
- package/src/ast-builder/expression-parser/parser.ts +13 -2
- package/src/ast-builder/index.ts +20 -6
- package/src/browser-bn.ts +162 -0
- package/src/browser-east-asian.ts +1 -1
- package/src/browser-hi.ts +162 -0
- package/src/browser-it.ts +162 -0
- package/src/browser-ms.ts +162 -0
- package/src/browser-pl.ts +162 -0
- package/src/browser-priority.ts +1 -1
- package/src/browser-ru.ts +162 -0
- package/src/browser-th.ts +162 -0
- package/src/browser-tl.ts +162 -0
- package/src/browser-uk.ts +162 -0
- package/src/browser-vi.ts +162 -0
- package/src/browser-western.ts +1 -1
- package/src/core-bridge.ts +43 -16
- package/src/core.ts +13 -0
- package/src/explicit/parser.ts +4 -2
- package/src/explicit/renderer.ts +1 -1
- package/src/generators/command-schemas.ts +214 -2
- package/src/generators/event-handlers-sov.ts +686 -0
- package/src/generators/event-handlers-vso.ts +489 -0
- package/src/generators/pattern-generator.ts +93 -736
- package/src/generators/profiles/arabic.ts +11 -1
- package/src/generators/profiles/bengali.ts +6 -0
- package/src/generators/profiles/chinese.ts +6 -0
- package/src/generators/profiles/english.ts +6 -0
- package/src/generators/profiles/french.ts +6 -0
- package/src/generators/profiles/german.ts +6 -0
- package/src/generators/profiles/hebrew.ts +6 -0
- package/src/generators/profiles/hindi.ts +6 -0
- package/src/generators/profiles/indonesian.ts +6 -0
- package/src/generators/profiles/italian.ts +6 -0
- package/src/generators/profiles/japanese.ts +6 -0
- package/src/generators/profiles/korean.ts +6 -0
- package/src/generators/profiles/ms.ts +6 -0
- package/src/generators/profiles/polish.ts +6 -0
- package/src/generators/profiles/portuguese.ts +6 -0
- package/src/generators/profiles/quechua.ts +35 -13
- package/src/generators/profiles/russian.ts +6 -0
- package/src/generators/profiles/spanish.ts +6 -0
- package/src/generators/profiles/spanishMexico.ts +6 -0
- package/src/generators/profiles/swahili.ts +14 -3
- package/src/generators/profiles/thai.ts +6 -0
- package/src/generators/profiles/tl.ts +22 -9
- package/src/generators/profiles/turkish.ts +7 -1
- package/src/generators/profiles/ukrainian.ts +6 -0
- package/src/generators/profiles/vietnamese.ts +6 -0
- package/src/generators/schema-validator.ts +8 -3
- package/src/index.ts +54 -0
- package/src/interchange/from-semantic.ts +440 -0
- package/src/interchange/index.ts +26 -0
- package/src/interchange/types.ts +186 -0
- package/src/parser/pattern-matcher.ts +65 -15
- package/src/parser/semantic-parser.ts +850 -8
- package/src/patterns/add/index.ts +1 -9
- package/src/patterns/builders.ts +2 -2
- package/src/patterns/decrement/index.ts +1 -9
- package/src/patterns/event-handler/shared.ts +30 -0
- package/src/patterns/event-handler/tl.ts +39 -19
- package/src/patterns/get/index.ts +1 -9
- package/src/patterns/hide/index.ts +1 -9
- package/src/patterns/increment/index.ts +1 -9
- package/src/patterns/put/index.ts +1 -9
- package/src/patterns/registry.ts +2 -2
- package/src/patterns/remove/index.ts +1 -9
- package/src/patterns/set/index.ts +1 -9
- package/src/patterns/show/index.ts +1 -9
- package/src/patterns/toggle/index.ts +1 -9
- package/src/tokenizers/arabic.ts +14 -1
- package/src/tokenizers/base-tokenizer.ts +644 -0
- package/src/tokenizers/base.ts +39 -1297
- package/src/tokenizers/bengali.ts +37 -10
- package/src/tokenizers/char-classifiers.ts +79 -0
- package/src/tokenizers/chinese.ts +7 -0
- package/src/tokenizers/english.ts +8 -1
- package/src/tokenizers/extractors.ts +452 -0
- package/src/tokenizers/french.ts +16 -1
- package/src/tokenizers/german.ts +16 -1
- package/src/tokenizers/he.ts +14 -1
- package/src/tokenizers/hindi.ts +14 -1
- package/src/tokenizers/indonesian.ts +14 -1
- package/src/tokenizers/italian.ts +14 -1
- package/src/tokenizers/japanese.ts +14 -1
- package/src/tokenizers/korean.ts +19 -1
- package/src/tokenizers/morphology/index.ts +17 -0
- package/src/tokenizers/morphology/polish-normalizer.ts +147 -131
- package/src/tokenizers/morphology/russian-normalizer.ts +397 -0
- package/src/tokenizers/morphology/ukrainian-normalizer.ts +366 -0
- package/src/tokenizers/ms.ts +14 -1
- package/src/tokenizers/polish.ts +16 -1
- package/src/tokenizers/portuguese.ts +16 -1
- package/src/tokenizers/quechua.ts +30 -1
- package/src/tokenizers/russian.ts +16 -1
- package/src/tokenizers/spanish.ts +14 -1
- package/src/tokenizers/swahili.ts +14 -1
- package/src/tokenizers/thai.ts +14 -1
- package/src/tokenizers/tl.ts +14 -1
- package/src/tokenizers/token-utils.ts +205 -0
- package/src/tokenizers/turkish.ts +21 -2
- package/src/tokenizers/ukrainian.ts +16 -1
- package/src/tokenizers/vietnamese.ts +7 -0
- package/src/types.ts +41 -2
- package/src/validators/command-validator.ts +17 -40
- package/dist/index.d.cts +0 -3470
- package/dist/types-BY3Id07j.d.ts +0 -615
- package/src/bridge.ts +0 -275
- package/src/generators/event-handler-generator.ts +0 -115
- package/src/patterns/add/ms.ts +0 -30
- package/src/patterns/add/tl.ts +0 -30
- package/src/patterns/decrement/ms.ts +0 -30
- package/src/patterns/decrement/tl.ts +0 -30
- package/src/patterns/get/ms.ts +0 -30
- package/src/patterns/get/tl.ts +0 -30
- package/src/patterns/hide/ms.ts +0 -30
- package/src/patterns/hide/tl.ts +0 -30
- package/src/patterns/increment/ms.ts +0 -30
- package/src/patterns/increment/tl.ts +0 -30
- package/src/patterns/put/ms.ts +0 -30
- package/src/patterns/put/tl.ts +0 -30
- package/src/patterns/remove/ms.ts +0 -30
- package/src/patterns/remove/tl.ts +0 -30
- package/src/patterns/set/ms.ts +0 -30
- package/src/patterns/set/tl.ts +0 -30
- package/src/patterns/show/ms.ts +0 -30
- package/src/patterns/show/tl.ts +0 -30
- package/src/patterns/toggle/ms.ts +0 -30
- package/src/patterns/toggle/tl.ts +0 -30
|
@@ -0,0 +1,644 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Tokenizer Class
|
|
3
|
+
*
|
|
4
|
+
* Abstract base class for language-specific tokenizers.
|
|
5
|
+
* Provides keyword management, morphological normalization,
|
|
6
|
+
* and high-level token extraction methods.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import type { LanguageToken, TokenKind, TokenStream, LanguageTokenizer } from '../types';
|
|
10
|
+
import type { MorphologicalNormalizer, NormalizationResult } from './morphology/types';
|
|
11
|
+
import {
|
|
12
|
+
createToken,
|
|
13
|
+
createPosition,
|
|
14
|
+
isWhitespace,
|
|
15
|
+
isDigit,
|
|
16
|
+
isAsciiIdentifierChar,
|
|
17
|
+
type TimeUnitMapping,
|
|
18
|
+
type CreateTokenOptions,
|
|
19
|
+
} from './token-utils';
|
|
20
|
+
import { extractCssSelector, extractStringLiteral, extractNumber, extractUrl } from './extractors';
|
|
21
|
+
|
|
22
|
+
// =============================================================================
|
|
23
|
+
// Types
|
|
24
|
+
// =============================================================================
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Keyword entry for tokenizer - maps native word to normalized English form.
|
|
28
|
+
*/
|
|
29
|
+
export interface KeywordEntry {
|
|
30
|
+
readonly native: string;
|
|
31
|
+
readonly normalized: string;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Profile interface for keyword derivation.
|
|
36
|
+
* Matches the structure of LanguageProfile but only includes fields needed for tokenization.
|
|
37
|
+
*/
|
|
38
|
+
export interface TokenizerProfile {
|
|
39
|
+
readonly keywords?: Record<
|
|
40
|
+
string,
|
|
41
|
+
{ primary: string; alternatives?: string[]; normalized?: string }
|
|
42
|
+
>;
|
|
43
|
+
readonly references?: Record<string, string>;
|
|
44
|
+
readonly roleMarkers?: Record<
|
|
45
|
+
string,
|
|
46
|
+
{ primary: string; alternatives?: string[]; position?: string }
|
|
47
|
+
>;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// =============================================================================
|
|
51
|
+
// Base Tokenizer Class
|
|
52
|
+
// =============================================================================
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Abstract base class for language-specific tokenizers.
|
|
56
|
+
* Provides common functionality for CSS selectors, strings, and numbers.
|
|
57
|
+
*/
|
|
58
|
+
export abstract class BaseTokenizer implements LanguageTokenizer {
|
|
59
|
+
abstract readonly language: string;
|
|
60
|
+
abstract readonly direction: 'ltr' | 'rtl';
|
|
61
|
+
|
|
62
|
+
/** Optional morphological normalizer for this language */
|
|
63
|
+
protected normalizer?: MorphologicalNormalizer;
|
|
64
|
+
|
|
65
|
+
/** Keywords derived from profile, sorted longest-first for greedy matching */
|
|
66
|
+
protected profileKeywords: KeywordEntry[] = [];
|
|
67
|
+
|
|
68
|
+
/** Map for O(1) keyword lookups by lowercase native word */
|
|
69
|
+
protected profileKeywordMap: Map<string, KeywordEntry> = new Map();
|
|
70
|
+
|
|
71
|
+
abstract tokenize(input: string): TokenStream;
|
|
72
|
+
abstract classifyToken(token: string): TokenKind;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Check if current position is a property access (obj.prop) vs CSS selector (.active).
|
|
76
|
+
* Property access: no whitespace before '.', previous token is identifier/keyword/selector.
|
|
77
|
+
* Also detects standalone method calls: .identifier( pattern.
|
|
78
|
+
*
|
|
79
|
+
* Returns true if '.' was emitted as an operator token and pos should advance by 1.
|
|
80
|
+
* Returns false if this is a CSS selector and should be handled by trySelector().
|
|
81
|
+
*/
|
|
82
|
+
protected tryPropertyAccess(input: string, pos: number, tokens: LanguageToken[]): boolean {
|
|
83
|
+
if (input[pos] !== '.') return false;
|
|
84
|
+
|
|
85
|
+
const lastToken = tokens[tokens.length - 1];
|
|
86
|
+
// Property access requires NO whitespace between tokens (e.g., "obj.prop")
|
|
87
|
+
const hasWhitespaceBefore = lastToken && lastToken.position.end < pos;
|
|
88
|
+
const isPropertyAccess =
|
|
89
|
+
lastToken &&
|
|
90
|
+
!hasWhitespaceBefore &&
|
|
91
|
+
(lastToken.kind === 'identifier' ||
|
|
92
|
+
lastToken.kind === 'keyword' ||
|
|
93
|
+
lastToken.kind === 'selector');
|
|
94
|
+
|
|
95
|
+
if (isPropertyAccess) {
|
|
96
|
+
tokens.push(createToken('.', 'operator', createPosition(pos, pos + 1)));
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Check for method call pattern at start: .identifier(
|
|
101
|
+
const methodStart = pos + 1;
|
|
102
|
+
let methodEnd = methodStart;
|
|
103
|
+
while (methodEnd < input.length && isAsciiIdentifierChar(input[methodEnd])) {
|
|
104
|
+
methodEnd++;
|
|
105
|
+
}
|
|
106
|
+
if (methodEnd < input.length && input[methodEnd] === '(') {
|
|
107
|
+
tokens.push(createToken('.', 'operator', createPosition(pos, pos + 1)));
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Initialize keyword mappings from a language profile.
|
|
116
|
+
* Builds a list of native→english mappings from:
|
|
117
|
+
* - profile.keywords (primary + alternatives)
|
|
118
|
+
* - profile.references (me, it, you, etc.)
|
|
119
|
+
* - profile.roleMarkers (into, from, with, etc.)
|
|
120
|
+
*
|
|
121
|
+
* Results are sorted longest-first for greedy matching (important for non-space languages).
|
|
122
|
+
* Extras take precedence over profile entries when there are duplicates.
|
|
123
|
+
*
|
|
124
|
+
* @param profile - Language profile containing keyword translations
|
|
125
|
+
* @param extras - Additional keyword entries to include (literals, positional, events)
|
|
126
|
+
*/
|
|
127
|
+
protected initializeKeywordsFromProfile(
|
|
128
|
+
profile: TokenizerProfile,
|
|
129
|
+
extras: KeywordEntry[] = []
|
|
130
|
+
): void {
|
|
131
|
+
// Use a Map to deduplicate, with extras taking precedence
|
|
132
|
+
const keywordMap = new Map<string, KeywordEntry>();
|
|
133
|
+
|
|
134
|
+
// Extract from keywords (command translations)
|
|
135
|
+
if (profile.keywords) {
|
|
136
|
+
for (const [normalized, translation] of Object.entries(profile.keywords)) {
|
|
137
|
+
// Primary translation
|
|
138
|
+
keywordMap.set(translation.primary, {
|
|
139
|
+
native: translation.primary,
|
|
140
|
+
normalized: translation.normalized || normalized,
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
// Alternative forms
|
|
144
|
+
if (translation.alternatives) {
|
|
145
|
+
for (const alt of translation.alternatives) {
|
|
146
|
+
keywordMap.set(alt, {
|
|
147
|
+
native: alt,
|
|
148
|
+
normalized: translation.normalized || normalized,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// Extract from references (me, it, you, etc.)
|
|
156
|
+
if (profile.references) {
|
|
157
|
+
for (const [normalized, native] of Object.entries(profile.references)) {
|
|
158
|
+
keywordMap.set(native, { native, normalized });
|
|
159
|
+
}
|
|
160
|
+
// Also register English canonical forms as universal fallbacks.
|
|
161
|
+
// Users frequently mix English references (me, it, you) into non-English
|
|
162
|
+
// hyperscript (e.g., "alternar .active on me"). Without this, the English
|
|
163
|
+
// word "me" would be unrecognized in non-English token streams.
|
|
164
|
+
for (const canonical of Object.keys(profile.references)) {
|
|
165
|
+
if (!keywordMap.has(canonical)) {
|
|
166
|
+
keywordMap.set(canonical, { native: canonical, normalized: canonical });
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// Extract from roleMarkers (into, from, with, etc.)
|
|
172
|
+
if (profile.roleMarkers) {
|
|
173
|
+
for (const [role, marker] of Object.entries(profile.roleMarkers)) {
|
|
174
|
+
if (marker.primary) {
|
|
175
|
+
keywordMap.set(marker.primary, { native: marker.primary, normalized: role });
|
|
176
|
+
}
|
|
177
|
+
if (marker.alternatives) {
|
|
178
|
+
for (const alt of marker.alternatives) {
|
|
179
|
+
keywordMap.set(alt, { native: alt, normalized: role });
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// Add extra entries (literals, positional, events) - these OVERRIDE profile entries
|
|
186
|
+
for (const extra of extras) {
|
|
187
|
+
keywordMap.set(extra.native, extra);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
// Convert to array and sort longest-first for greedy matching
|
|
191
|
+
this.profileKeywords = Array.from(keywordMap.values()).sort(
|
|
192
|
+
(a, b) => b.native.length - a.native.length
|
|
193
|
+
);
|
|
194
|
+
|
|
195
|
+
// Build Map for O(1) lookups (case-insensitive + diacritic-insensitive)
|
|
196
|
+
// This allows matching both 'بدّل' (with shadda) and 'بدل' (without) to the same entry
|
|
197
|
+
this.profileKeywordMap = new Map();
|
|
198
|
+
for (const keyword of this.profileKeywords) {
|
|
199
|
+
// Add original form (with diacritics if present)
|
|
200
|
+
this.profileKeywordMap.set(keyword.native.toLowerCase(), keyword);
|
|
201
|
+
|
|
202
|
+
// Add diacritic-normalized form (for Arabic, Turkish, etc.)
|
|
203
|
+
const normalized = this.removeDiacritics(keyword.native);
|
|
204
|
+
if (normalized !== keyword.native && !this.profileKeywordMap.has(normalized.toLowerCase())) {
|
|
205
|
+
this.profileKeywordMap.set(normalized.toLowerCase(), keyword);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Remove diacritical marks from a word for normalization.
|
|
212
|
+
* Primarily for Arabic (shadda, fatha, kasra, damma, sukun, etc.)
|
|
213
|
+
* but could be extended for other languages.
|
|
214
|
+
*
|
|
215
|
+
* @param word - Word to normalize
|
|
216
|
+
* @returns Word without diacritics
|
|
217
|
+
*/
|
|
218
|
+
protected removeDiacritics(word: string): string {
|
|
219
|
+
// Arabic diacritics: U+064B-U+0652 (fatha, kasra, damma, sukun, shadda, etc.)
|
|
220
|
+
// U+0670 (superscript alif)
|
|
221
|
+
return word.replace(/[\u064B-\u0652\u0670]/g, '');
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Try to match a keyword from profile at the current position.
|
|
226
|
+
* Uses longest-first greedy matching (important for non-space languages).
|
|
227
|
+
*
|
|
228
|
+
* @param input - Input string
|
|
229
|
+
* @param pos - Current position
|
|
230
|
+
* @returns Token if matched, null otherwise
|
|
231
|
+
*/
|
|
232
|
+
protected tryProfileKeyword(input: string, pos: number): LanguageToken | null {
|
|
233
|
+
for (const entry of this.profileKeywords) {
|
|
234
|
+
if (input.slice(pos).startsWith(entry.native)) {
|
|
235
|
+
return createToken(
|
|
236
|
+
entry.native,
|
|
237
|
+
'keyword',
|
|
238
|
+
createPosition(pos, pos + entry.native.length),
|
|
239
|
+
entry.normalized
|
|
240
|
+
);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
return null;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Check if the remaining input starts with any known keyword.
|
|
248
|
+
* Useful for non-space languages to detect word boundaries.
|
|
249
|
+
*
|
|
250
|
+
* @param input - Input string
|
|
251
|
+
* @param pos - Current position
|
|
252
|
+
* @returns true if a keyword starts at this position
|
|
253
|
+
*/
|
|
254
|
+
protected isKeywordStart(input: string, pos: number): boolean {
|
|
255
|
+
const remaining = input.slice(pos);
|
|
256
|
+
return this.profileKeywords.some(entry => remaining.startsWith(entry.native));
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Look up a keyword by native word (case-insensitive).
|
|
261
|
+
* O(1) lookup using the keyword map.
|
|
262
|
+
*
|
|
263
|
+
* @param native - Native word to look up
|
|
264
|
+
* @returns KeywordEntry if found, undefined otherwise
|
|
265
|
+
*/
|
|
266
|
+
protected lookupKeyword(native: string): KeywordEntry | undefined {
|
|
267
|
+
return this.profileKeywordMap.get(native.toLowerCase());
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Check if a word is a known keyword (case-insensitive).
|
|
272
|
+
* O(1) lookup using the keyword map.
|
|
273
|
+
*
|
|
274
|
+
* @param native - Native word to check
|
|
275
|
+
* @returns true if the word is a keyword
|
|
276
|
+
*/
|
|
277
|
+
protected isKeyword(native: string): boolean {
|
|
278
|
+
return this.profileKeywordMap.has(native.toLowerCase());
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* Set the morphological normalizer for this tokenizer.
|
|
283
|
+
*/
|
|
284
|
+
setNormalizer(normalizer: MorphologicalNormalizer): void {
|
|
285
|
+
this.normalizer = normalizer;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Try to normalize a word using the morphological normalizer.
|
|
290
|
+
* Returns null if no normalizer is set or normalization fails.
|
|
291
|
+
*
|
|
292
|
+
* Note: We don't check isNormalizable() here because the individual tokenizers
|
|
293
|
+
* historically called normalize() directly without that check. The normalize()
|
|
294
|
+
* method itself handles returning noChange() for words that can't be normalized.
|
|
295
|
+
*/
|
|
296
|
+
protected tryNormalize(word: string): NormalizationResult | null {
|
|
297
|
+
if (!this.normalizer) return null;
|
|
298
|
+
|
|
299
|
+
const result = this.normalizer.normalize(word);
|
|
300
|
+
|
|
301
|
+
// Only return if actually normalized (stem differs from input)
|
|
302
|
+
if (result.stem !== word && result.confidence >= 0.7) {
|
|
303
|
+
return result;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
return null;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Try morphological normalization and keyword lookup.
|
|
311
|
+
*
|
|
312
|
+
* If the word can be normalized to a stem that matches a known keyword,
|
|
313
|
+
* returns a keyword token with morphological metadata (stem, stemConfidence).
|
|
314
|
+
*
|
|
315
|
+
* This is the common pattern for handling conjugated verbs across languages:
|
|
316
|
+
* 1. Normalize the word (e.g., "toggled" → "toggle")
|
|
317
|
+
* 2. Look up the stem in the keyword map
|
|
318
|
+
* 3. Create a token with both the original form and stem metadata
|
|
319
|
+
*
|
|
320
|
+
* @param word - The word to normalize and look up
|
|
321
|
+
* @param startPos - Start position for the token
|
|
322
|
+
* @param endPos - End position for the token
|
|
323
|
+
* @returns Token if stem matches a keyword, null otherwise
|
|
324
|
+
*/
|
|
325
|
+
protected tryMorphKeywordMatch(
|
|
326
|
+
word: string,
|
|
327
|
+
startPos: number,
|
|
328
|
+
endPos: number
|
|
329
|
+
): LanguageToken | null {
|
|
330
|
+
const result = this.tryNormalize(word);
|
|
331
|
+
if (!result) return null;
|
|
332
|
+
|
|
333
|
+
// Check if the stem is a known keyword
|
|
334
|
+
const stemEntry = this.lookupKeyword(result.stem);
|
|
335
|
+
if (!stemEntry) return null;
|
|
336
|
+
|
|
337
|
+
const tokenOptions: CreateTokenOptions = {
|
|
338
|
+
normalized: stemEntry.normalized,
|
|
339
|
+
stem: result.stem,
|
|
340
|
+
stemConfidence: result.confidence,
|
|
341
|
+
};
|
|
342
|
+
return createToken(word, 'keyword', createPosition(startPos, endPos), tokenOptions);
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
/**
|
|
346
|
+
* Try to extract a CSS selector at the current position.
|
|
347
|
+
*/
|
|
348
|
+
protected trySelector(input: string, pos: number): LanguageToken | null {
|
|
349
|
+
const selector = extractCssSelector(input, pos);
|
|
350
|
+
if (selector) {
|
|
351
|
+
return createToken(selector, 'selector', createPosition(pos, pos + selector.length));
|
|
352
|
+
}
|
|
353
|
+
return null;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* Try to extract an event modifier at the current position.
|
|
358
|
+
* Event modifiers are .once, .debounce(N), .throttle(N), .queue(strategy)
|
|
359
|
+
*/
|
|
360
|
+
protected tryEventModifier(input: string, pos: number): LanguageToken | null {
|
|
361
|
+
// Must start with a dot
|
|
362
|
+
if (input[pos] !== '.') {
|
|
363
|
+
return null;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
// Match pattern: .(once|debounce|throttle|queue) followed by optional (value)
|
|
367
|
+
const match = input
|
|
368
|
+
.slice(pos)
|
|
369
|
+
.match(/^\.(?:once|debounce|throttle|queue)(?:\(([^)]+)\))?(?:\s|$|\.)/);
|
|
370
|
+
if (!match) {
|
|
371
|
+
return null;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
const fullMatch = match[0].replace(/(\s|\.)$/, ''); // Remove trailing space or dot
|
|
375
|
+
const modifierName = fullMatch.slice(1).split('(')[0]; // Extract modifier name
|
|
376
|
+
const value = match[1]; // Extract value from parentheses if present
|
|
377
|
+
|
|
378
|
+
// Create token with metadata
|
|
379
|
+
const token = createToken(
|
|
380
|
+
fullMatch,
|
|
381
|
+
'event-modifier',
|
|
382
|
+
createPosition(pos, pos + fullMatch.length)
|
|
383
|
+
);
|
|
384
|
+
|
|
385
|
+
// Add metadata for the modifier
|
|
386
|
+
return {
|
|
387
|
+
...token,
|
|
388
|
+
metadata: {
|
|
389
|
+
modifierName,
|
|
390
|
+
value: value ? (modifierName === 'queue' ? value : parseInt(value, 10)) : undefined,
|
|
391
|
+
},
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
/**
|
|
396
|
+
* Try to extract a string literal at the current position.
|
|
397
|
+
*/
|
|
398
|
+
protected tryString(input: string, pos: number): LanguageToken | null {
|
|
399
|
+
const literal = extractStringLiteral(input, pos);
|
|
400
|
+
if (literal) {
|
|
401
|
+
return createToken(literal, 'literal', createPosition(pos, pos + literal.length));
|
|
402
|
+
}
|
|
403
|
+
return null;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
/**
|
|
407
|
+
* Try to extract a number at the current position.
|
|
408
|
+
*/
|
|
409
|
+
protected tryNumber(input: string, pos: number): LanguageToken | null {
|
|
410
|
+
const number = extractNumber(input, pos);
|
|
411
|
+
if (number) {
|
|
412
|
+
return createToken(number, 'literal', createPosition(pos, pos + number.length));
|
|
413
|
+
}
|
|
414
|
+
return null;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* Configuration for native language time units.
|
|
419
|
+
* Maps patterns to their standard suffix (ms, s, m, h).
|
|
420
|
+
*/
|
|
421
|
+
protected static readonly STANDARD_TIME_UNITS: readonly TimeUnitMapping[] = [
|
|
422
|
+
{ pattern: 'ms', suffix: 'ms', length: 2 },
|
|
423
|
+
{ pattern: 's', suffix: 's', length: 1, checkBoundary: true },
|
|
424
|
+
{ pattern: 'm', suffix: 'm', length: 1, checkBoundary: true, notFollowedBy: 's' },
|
|
425
|
+
{ pattern: 'h', suffix: 'h', length: 1, checkBoundary: true },
|
|
426
|
+
];
|
|
427
|
+
|
|
428
|
+
/**
|
|
429
|
+
* Try to match a time unit from a list of patterns.
|
|
430
|
+
*
|
|
431
|
+
* @param input - Input string
|
|
432
|
+
* @param pos - Position after the number
|
|
433
|
+
* @param timeUnits - Array of time unit mappings (native pattern → standard suffix)
|
|
434
|
+
* @param skipWhitespace - Whether to skip whitespace before time unit (default: false)
|
|
435
|
+
* @returns Object with matched suffix and new position, or null if no match
|
|
436
|
+
*/
|
|
437
|
+
protected tryMatchTimeUnit(
|
|
438
|
+
input: string,
|
|
439
|
+
pos: number,
|
|
440
|
+
timeUnits: readonly TimeUnitMapping[],
|
|
441
|
+
skipWhitespace = false
|
|
442
|
+
): { suffix: string; endPos: number } | null {
|
|
443
|
+
let unitPos = pos;
|
|
444
|
+
|
|
445
|
+
// Optionally skip whitespace before time unit
|
|
446
|
+
if (skipWhitespace) {
|
|
447
|
+
while (unitPos < input.length && isWhitespace(input[unitPos])) {
|
|
448
|
+
unitPos++;
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
const remaining = input.slice(unitPos);
|
|
453
|
+
|
|
454
|
+
// Check each time unit pattern
|
|
455
|
+
for (const unit of timeUnits) {
|
|
456
|
+
const candidate = remaining.slice(0, unit.length);
|
|
457
|
+
const matches = unit.caseInsensitive
|
|
458
|
+
? candidate.toLowerCase() === unit.pattern.toLowerCase()
|
|
459
|
+
: candidate === unit.pattern;
|
|
460
|
+
|
|
461
|
+
if (matches) {
|
|
462
|
+
// Check notFollowedBy constraint (e.g., 'm' should not match 'ms')
|
|
463
|
+
if (unit.notFollowedBy) {
|
|
464
|
+
const nextChar = remaining[unit.length] || '';
|
|
465
|
+
if (nextChar === unit.notFollowedBy) continue;
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
// Check word boundary if required
|
|
469
|
+
if (unit.checkBoundary) {
|
|
470
|
+
const nextChar = remaining[unit.length] || '';
|
|
471
|
+
if (isAsciiIdentifierChar(nextChar)) continue;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
return { suffix: unit.suffix, endPos: unitPos + unit.length };
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
return null;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
/**
|
|
482
|
+
* Parse a base number (sign, integer, decimal) without time units.
|
|
483
|
+
* Returns the number string and end position.
|
|
484
|
+
*
|
|
485
|
+
* @param input - Input string
|
|
486
|
+
* @param startPos - Start position
|
|
487
|
+
* @param allowSign - Whether to allow +/- sign (default: true)
|
|
488
|
+
* @returns Object with number string and end position, or null
|
|
489
|
+
*/
|
|
490
|
+
protected parseBaseNumber(
|
|
491
|
+
input: string,
|
|
492
|
+
startPos: number,
|
|
493
|
+
allowSign = true
|
|
494
|
+
): { number: string; endPos: number } | null {
|
|
495
|
+
let pos = startPos;
|
|
496
|
+
let number = '';
|
|
497
|
+
|
|
498
|
+
// Optional sign
|
|
499
|
+
if (allowSign && (input[pos] === '-' || input[pos] === '+')) {
|
|
500
|
+
number += input[pos++];
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
// Must have at least one digit
|
|
504
|
+
if (pos >= input.length || !isDigit(input[pos])) {
|
|
505
|
+
return null;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
// Integer part
|
|
509
|
+
while (pos < input.length && isDigit(input[pos])) {
|
|
510
|
+
number += input[pos++];
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
// Optional decimal
|
|
514
|
+
if (pos < input.length && input[pos] === '.') {
|
|
515
|
+
number += input[pos++];
|
|
516
|
+
while (pos < input.length && isDigit(input[pos])) {
|
|
517
|
+
number += input[pos++];
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
if (!number || number === '-' || number === '+') return null;
|
|
522
|
+
|
|
523
|
+
return { number, endPos: pos };
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
/**
|
|
527
|
+
* Try to extract a number with native language time units.
|
|
528
|
+
*
|
|
529
|
+
* This is a template method that handles the common pattern:
|
|
530
|
+
* 1. Parse the base number (sign, integer, decimal)
|
|
531
|
+
* 2. Try to match native language time units
|
|
532
|
+
* 3. Fall back to standard time units (ms, s, m, h)
|
|
533
|
+
*
|
|
534
|
+
* @param input - Input string
|
|
535
|
+
* @param pos - Start position
|
|
536
|
+
* @param nativeTimeUnits - Language-specific time unit mappings
|
|
537
|
+
* @param options - Configuration options
|
|
538
|
+
* @returns Token if number found, null otherwise
|
|
539
|
+
*/
|
|
540
|
+
protected tryNumberWithTimeUnits(
|
|
541
|
+
input: string,
|
|
542
|
+
pos: number,
|
|
543
|
+
nativeTimeUnits: readonly TimeUnitMapping[],
|
|
544
|
+
options: { allowSign?: boolean; skipWhitespace?: boolean } = {}
|
|
545
|
+
): LanguageToken | null {
|
|
546
|
+
const { allowSign = true, skipWhitespace = false } = options;
|
|
547
|
+
|
|
548
|
+
// Parse base number
|
|
549
|
+
const baseResult = this.parseBaseNumber(input, pos, allowSign);
|
|
550
|
+
if (!baseResult) return null;
|
|
551
|
+
|
|
552
|
+
let { number, endPos } = baseResult;
|
|
553
|
+
|
|
554
|
+
// Try native time units first, then standard
|
|
555
|
+
const allUnits = [...nativeTimeUnits, ...BaseTokenizer.STANDARD_TIME_UNITS];
|
|
556
|
+
const timeMatch = this.tryMatchTimeUnit(input, endPos, allUnits, skipWhitespace);
|
|
557
|
+
|
|
558
|
+
if (timeMatch) {
|
|
559
|
+
number += timeMatch.suffix;
|
|
560
|
+
endPos = timeMatch.endPos;
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
return createToken(number, 'literal', createPosition(pos, endPos));
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
/**
|
|
567
|
+
* Try to extract a URL at the current position.
|
|
568
|
+
* Handles /path, ./path, ../path, //domain.com, http://, https://
|
|
569
|
+
*/
|
|
570
|
+
protected tryUrl(input: string, pos: number): LanguageToken | null {
|
|
571
|
+
const url = extractUrl(input, pos);
|
|
572
|
+
if (url) {
|
|
573
|
+
return createToken(url, 'url', createPosition(pos, pos + url.length));
|
|
574
|
+
}
|
|
575
|
+
return null;
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
/**
|
|
579
|
+
* Try to extract a variable reference (:varname) at the current position.
|
|
580
|
+
* In hyperscript, :x refers to a local variable named x.
|
|
581
|
+
*/
|
|
582
|
+
protected tryVariableRef(input: string, pos: number): LanguageToken | null {
|
|
583
|
+
if (input[pos] !== ':') return null;
|
|
584
|
+
if (pos + 1 >= input.length) return null;
|
|
585
|
+
if (!isAsciiIdentifierChar(input[pos + 1])) return null;
|
|
586
|
+
|
|
587
|
+
let endPos = pos + 1;
|
|
588
|
+
while (endPos < input.length && isAsciiIdentifierChar(input[endPos])) {
|
|
589
|
+
endPos++;
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
const varRef = input.slice(pos, endPos);
|
|
593
|
+
return createToken(varRef, 'identifier', createPosition(pos, endPos));
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
/**
|
|
597
|
+
* Try to extract an operator or punctuation token at the current position.
|
|
598
|
+
* Handles two-character operators (==, !=, etc.) and single-character operators.
|
|
599
|
+
*/
|
|
600
|
+
protected tryOperator(input: string, pos: number): LanguageToken | null {
|
|
601
|
+
// Two-character operators
|
|
602
|
+
const twoChar = input.slice(pos, pos + 2);
|
|
603
|
+
if (['==', '!=', '<=', '>=', '&&', '||', '->'].includes(twoChar)) {
|
|
604
|
+
return createToken(twoChar, 'operator', createPosition(pos, pos + 2));
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
// Single-character operators
|
|
608
|
+
const oneChar = input[pos];
|
|
609
|
+
if (['<', '>', '!', '+', '-', '*', '/', '='].includes(oneChar)) {
|
|
610
|
+
return createToken(oneChar, 'operator', createPosition(pos, pos + 1));
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
// Punctuation
|
|
614
|
+
if (['(', ')', '{', '}', ',', ';', ':'].includes(oneChar)) {
|
|
615
|
+
return createToken(oneChar, 'punctuation', createPosition(pos, pos + 1));
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
return null;
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
/**
|
|
622
|
+
* Try to match a multi-character particle from a list.
|
|
623
|
+
*
|
|
624
|
+
* Used by languages like Japanese, Korean, and Chinese that have
|
|
625
|
+
* multi-character particles (e.g., Japanese から, まで, より).
|
|
626
|
+
*
|
|
627
|
+
* @param input - Input string
|
|
628
|
+
* @param pos - Current position
|
|
629
|
+
* @param particles - Array of multi-character particles to match
|
|
630
|
+
* @returns Token if matched, null otherwise
|
|
631
|
+
*/
|
|
632
|
+
protected tryMultiCharParticle(
|
|
633
|
+
input: string,
|
|
634
|
+
pos: number,
|
|
635
|
+
particles: readonly string[]
|
|
636
|
+
): LanguageToken | null {
|
|
637
|
+
for (const particle of particles) {
|
|
638
|
+
if (input.slice(pos, pos + particle.length) === particle) {
|
|
639
|
+
return createToken(particle, 'particle', createPosition(pos, pos + particle.length));
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
return null;
|
|
643
|
+
}
|
|
644
|
+
}
|