@lokascript/semantic 1.0.0 → 1.1.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/browser-ar.ar.global.js +2 -2
- package/dist/browser-core.core.global.js +2 -2
- package/dist/browser-de.de.global.js +2 -2
- package/dist/browser-east-asian.east-asian.global.js +2 -2
- package/dist/browser-en-tr.en-tr.global.js +2 -2
- package/dist/browser-en.en.global.js +2 -2
- package/dist/browser-es-en.es-en.global.js +2 -2
- package/dist/browser-es.es.global.js +2 -2
- package/dist/browser-fr.fr.global.js +2 -2
- package/dist/browser-id.id.global.js +2 -2
- package/dist/browser-ja.ja.global.js +2 -2
- package/dist/browser-ko.ko.global.js +2 -2
- package/dist/browser-lazy.lazy.global.js +2 -2
- package/dist/browser-priority.priority.global.js +2 -2
- package/dist/browser-pt.pt.global.js +2 -2
- package/dist/browser-qu.qu.global.js +2 -2
- package/dist/browser-sw.sw.global.js +2 -2
- package/dist/browser-tr.tr.global.js +2 -2
- package/dist/browser-western.western.global.js +2 -2
- package/dist/browser-zh.zh.global.js +2 -2
- package/dist/browser.global.js +2 -2
- package/dist/browser.global.js.map +1 -1
- package/dist/index.cjs +13042 -17462
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +49 -5
- package/dist/index.d.ts +49 -5
- package/dist/index.js +14044 -18464
- package/dist/index.js.map +1 -1
- package/dist/languages/ar.d.ts +1 -1
- package/dist/languages/ar.js +31 -44
- package/dist/languages/ar.js.map +1 -1
- package/dist/languages/de.d.ts +1 -1
- package/dist/languages/de.js +14 -2
- package/dist/languages/de.js.map +1 -1
- package/dist/languages/en.d.ts +1 -1
- package/dist/languages/en.js +558 -12
- package/dist/languages/en.js.map +1 -1
- package/dist/languages/es.d.ts +1 -1
- package/dist/languages/es.js +16 -0
- package/dist/languages/es.js.map +1 -1
- package/dist/languages/fr.d.ts +1 -1
- package/dist/languages/fr.js +14 -2
- package/dist/languages/fr.js.map +1 -1
- package/dist/languages/id.d.ts +1 -1
- package/dist/languages/id.js +14 -2
- package/dist/languages/id.js.map +1 -1
- package/dist/languages/ja.d.ts +1 -1
- package/dist/languages/ja.js +18 -3
- package/dist/languages/ja.js.map +1 -1
- package/dist/languages/ko.d.ts +8 -1
- package/dist/languages/ko.js +75 -43
- package/dist/languages/ko.js.map +1 -1
- package/dist/languages/pt.d.ts +1 -1
- package/dist/languages/pt.js +17 -0
- package/dist/languages/pt.js.map +1 -1
- package/dist/languages/qu.d.ts +12 -1
- package/dist/languages/qu.js +77 -2
- package/dist/languages/qu.js.map +1 -1
- package/dist/languages/sw.d.ts +1 -1
- package/dist/languages/sw.js.map +1 -1
- package/dist/languages/tr.d.ts +9 -1
- package/dist/languages/tr.js +96 -72
- package/dist/languages/tr.js.map +1 -1
- package/dist/languages/zh.d.ts +1 -1
- package/dist/languages/zh.js +16 -0
- package/dist/languages/zh.js.map +1 -1
- package/dist/{types-C4dcj53L.d.ts → types-BY3Id07j.d.ts} +20 -5
- package/package.json +20 -29
- package/src/generators/command-schemas.ts +21 -10
- package/src/generators/event-handler-generator.ts +50 -44
- package/src/generators/language-profiles.ts +6 -0
- package/src/generators/pattern-generator.ts +883 -1
- package/src/generators/profiles/arabic.ts +19 -3
- package/src/generators/profiles/bengali.ts +12 -1
- package/src/generators/profiles/chinese.ts +15 -0
- package/src/generators/profiles/french.ts +12 -1
- package/src/generators/profiles/german.ts +12 -1
- package/src/generators/profiles/hebrew.ts +148 -0
- package/src/generators/profiles/hindi.ts +12 -1
- package/src/generators/profiles/index.ts +2 -0
- package/src/generators/profiles/indonesian.ts +12 -1
- package/src/generators/profiles/italian.ts +16 -0
- package/src/generators/profiles/japanese.ts +11 -2
- package/src/generators/profiles/korean.ts +15 -1
- package/src/generators/profiles/polish.ts +12 -0
- package/src/generators/profiles/portuguese.ts +16 -0
- package/src/generators/profiles/russian.ts +11 -0
- package/src/generators/profiles/spanish.ts +15 -0
- package/src/generators/profiles/spanishMexico.ts +176 -0
- package/src/generators/profiles/thai.ts +11 -0
- package/src/generators/profiles/turkish.ts +49 -7
- package/src/generators/profiles/types.ts +21 -5
- package/src/generators/profiles/ukrainian.ts +11 -0
- package/src/generators/profiles/vietnamese.ts +11 -0
- package/src/language-building-schema.ts +111 -0
- package/src/languages/_all.ts +5 -1
- package/src/languages/es-MX.ts +32 -0
- package/src/languages/he.ts +15 -0
- package/src/parser/pattern-matcher.ts +10 -1
- package/src/parser/semantic-parser.ts +3 -0
- package/src/patterns/add/ar.ts +3 -59
- package/src/patterns/add/index.ts +5 -1
- package/src/patterns/add/ja.ts +3 -81
- package/src/patterns/add/ko.ts +3 -62
- package/src/patterns/add/qu.ts +69 -0
- package/src/patterns/add/tr.ts +3 -59
- package/src/patterns/builders.ts +1 -0
- package/src/patterns/decrement/tr.ts +3 -36
- package/src/patterns/event-handler/ar.ts +3 -139
- package/src/patterns/event-handler/he.ts +15 -0
- package/src/patterns/event-handler/index.ts +5 -1
- package/src/patterns/event-handler/ja.ts +3 -106
- package/src/patterns/event-handler/ko.ts +3 -121
- package/src/patterns/event-handler/ms.ts +45 -20
- package/src/patterns/event-handler/tr.ts +3 -158
- package/src/patterns/get/ar.ts +3 -37
- package/src/patterns/get/ja.ts +3 -41
- package/src/patterns/get/ko.ts +3 -41
- package/src/patterns/grammar-transformed/ja.ts +3 -1701
- package/src/patterns/grammar-transformed/ko.ts +3 -1299
- package/src/patterns/grammar-transformed/tr.ts +3 -1055
- package/src/patterns/hide/ar.ts +3 -55
- package/src/patterns/hide/ja.ts +3 -57
- package/src/patterns/hide/ko.ts +3 -57
- package/src/patterns/hide/tr.ts +3 -53
- package/src/patterns/increment/tr.ts +3 -40
- package/src/patterns/put/ar.ts +3 -62
- package/src/patterns/put/ja.ts +3 -63
- package/src/patterns/put/ko.ts +3 -55
- package/src/patterns/put/tr.ts +3 -55
- package/src/patterns/remove/ar.ts +3 -59
- package/src/patterns/remove/index.ts +5 -1
- package/src/patterns/remove/ja.ts +3 -62
- package/src/patterns/remove/ko.ts +3 -66
- package/src/patterns/remove/qu.ts +69 -0
- package/src/patterns/remove/tr.ts +3 -66
- package/src/patterns/set/ar.ts +3 -72
- package/src/patterns/set/ja.ts +3 -74
- package/src/patterns/set/ko.ts +3 -73
- package/src/patterns/set/tr.ts +3 -95
- package/src/patterns/show/ar.ts +3 -55
- package/src/patterns/show/ja.ts +3 -57
- package/src/patterns/show/ko.ts +3 -61
- package/src/patterns/show/tr.ts +3 -53
- package/src/patterns/take/ar.ts +3 -39
- package/src/patterns/toggle/ar.ts +3 -49
- package/src/patterns/toggle/index.ts +5 -1
- package/src/patterns/toggle/ja.ts +3 -144
- package/src/patterns/toggle/ko.ts +3 -101
- package/src/patterns/toggle/qu.ts +90 -0
- package/src/patterns/toggle/tr.ts +3 -76
- package/src/registry.ts +179 -15
- package/src/tokenizers/arabic.ts +13 -46
- package/src/tokenizers/bengali.ts +2 -16
- package/src/tokenizers/he.ts +542 -0
- package/src/tokenizers/index.ts +1 -0
- package/src/tokenizers/japanese.ts +3 -1
- package/src/tokenizers/korean.ts +104 -48
- package/src/tokenizers/ms.ts +3 -0
- package/src/tokenizers/quechua.ts +101 -2
- package/src/tokenizers/turkish.ts +64 -69
- package/src/types.ts +13 -0
package/dist/languages/qu.js
CHANGED
|
@@ -929,6 +929,7 @@ var QUECHUA_EXTRAS = [
|
|
|
929
929
|
{ native: "tayta", normalized: "parent" },
|
|
930
930
|
// Events
|
|
931
931
|
{ native: "llikllay", normalized: "click" },
|
|
932
|
+
{ native: "\xF1itiy", normalized: "click" },
|
|
932
933
|
{ native: "click", normalized: "click" },
|
|
933
934
|
{ native: "yaykuy", normalized: "input" },
|
|
934
935
|
{ native: "llave uray", normalized: "keydown" },
|
|
@@ -1002,8 +1003,15 @@ var QuechuaTokenizer = class extends BaseTokenizer {
|
|
|
1002
1003
|
}
|
|
1003
1004
|
const selectorToken = this.trySelector(input, pos);
|
|
1004
1005
|
if (selectorToken) {
|
|
1005
|
-
|
|
1006
|
-
|
|
1006
|
+
const selectorWithSuffix = this.splitSelectorSuffix(selectorToken);
|
|
1007
|
+
if (selectorWithSuffix.length === 2) {
|
|
1008
|
+
tokens.push(selectorWithSuffix[0]);
|
|
1009
|
+
tokens.push(selectorWithSuffix[1]);
|
|
1010
|
+
pos = selectorWithSuffix[1].position.end;
|
|
1011
|
+
} else {
|
|
1012
|
+
tokens.push(selectorToken);
|
|
1013
|
+
pos = selectorToken.position.end;
|
|
1014
|
+
}
|
|
1007
1015
|
continue;
|
|
1008
1016
|
}
|
|
1009
1017
|
}
|
|
@@ -1046,6 +1054,12 @@ var QuechuaTokenizer = class extends BaseTokenizer {
|
|
|
1046
1054
|
}
|
|
1047
1055
|
}
|
|
1048
1056
|
if (isQuechuaLetter(input[pos])) {
|
|
1057
|
+
const multiWordToken = this.tryMultiWordKeyword(input, pos);
|
|
1058
|
+
if (multiWordToken) {
|
|
1059
|
+
tokens.push(multiWordToken);
|
|
1060
|
+
pos = multiWordToken.position.end;
|
|
1061
|
+
continue;
|
|
1062
|
+
}
|
|
1049
1063
|
const wordToken = this.extractWord(input, pos);
|
|
1050
1064
|
if (wordToken) {
|
|
1051
1065
|
tokens.push(wordToken);
|
|
@@ -1084,6 +1098,67 @@ var QuechuaTokenizer = class extends BaseTokenizer {
|
|
|
1084
1098
|
}
|
|
1085
1099
|
return null;
|
|
1086
1100
|
}
|
|
1101
|
+
/**
|
|
1102
|
+
* Split a selector token if it has a Quechua suffix attached.
|
|
1103
|
+
* E.g., ".openta" -> [".open", "-ta"]
|
|
1104
|
+
* Returns array with 1 token (no suffix) or 2 tokens (selector + suffix)
|
|
1105
|
+
*/
|
|
1106
|
+
splitSelectorSuffix(selectorToken) {
|
|
1107
|
+
const text = selectorToken.value;
|
|
1108
|
+
for (const suffix of SUFFIXES) {
|
|
1109
|
+
if (text.toLowerCase().endsWith(suffix)) {
|
|
1110
|
+
const baseEnd = text.length - suffix.length;
|
|
1111
|
+
const base = text.slice(0, baseEnd);
|
|
1112
|
+
const suffixPart = text.slice(baseEnd);
|
|
1113
|
+
const baseToken = createToken(
|
|
1114
|
+
base,
|
|
1115
|
+
"selector",
|
|
1116
|
+
createPosition(selectorToken.position.start, selectorToken.position.start + baseEnd)
|
|
1117
|
+
);
|
|
1118
|
+
const suffixToken = createToken(
|
|
1119
|
+
suffixPart,
|
|
1120
|
+
"particle",
|
|
1121
|
+
createPosition(selectorToken.position.start + baseEnd, selectorToken.position.end)
|
|
1122
|
+
);
|
|
1123
|
+
return [baseToken, suffixToken];
|
|
1124
|
+
}
|
|
1125
|
+
}
|
|
1126
|
+
return [selectorToken];
|
|
1127
|
+
}
|
|
1128
|
+
/**
|
|
1129
|
+
* Try to match multi-word keywords that should be treated as a single unit.
|
|
1130
|
+
* E.g., "mana qhawachiy" (not focus = blur)
|
|
1131
|
+
*/
|
|
1132
|
+
tryMultiWordKeyword(input, pos) {
|
|
1133
|
+
const multiWordKeywords = [
|
|
1134
|
+
{ pattern: "mana qhawachiy", normalized: "blur" },
|
|
1135
|
+
{ pattern: "mana qhaway", normalized: "blur" },
|
|
1136
|
+
{ pattern: "mana riqsisqa", normalized: "undefined" },
|
|
1137
|
+
{ pattern: "mana waqtalla", normalized: "async" },
|
|
1138
|
+
{ pattern: "\xF1awpaq kaq", normalized: "previous" },
|
|
1139
|
+
{ pattern: "aswan qayllaqa", normalized: "closest" },
|
|
1140
|
+
{ pattern: "llave uray", normalized: "keydown" },
|
|
1141
|
+
{ pattern: "llave hawa", normalized: "keyup" },
|
|
1142
|
+
{ pattern: "mausiri yayku", normalized: "mouseover" },
|
|
1143
|
+
{ pattern: "mausiri lluqsi", normalized: "mouseout" },
|
|
1144
|
+
{ pattern: "waranqa sikundu", normalized: "ms" }
|
|
1145
|
+
];
|
|
1146
|
+
const inputLower = input.toLowerCase();
|
|
1147
|
+
for (const { pattern, normalized } of multiWordKeywords) {
|
|
1148
|
+
if (inputLower.slice(pos, pos + pattern.length) === pattern) {
|
|
1149
|
+
const endPos = pos + pattern.length;
|
|
1150
|
+
if (endPos >= input.length || isWhitespace(input[endPos]) || !isQuechuaLetter(input[endPos])) {
|
|
1151
|
+
return createToken(
|
|
1152
|
+
input.slice(pos, endPos),
|
|
1153
|
+
"keyword",
|
|
1154
|
+
createPosition(pos, endPos),
|
|
1155
|
+
normalized
|
|
1156
|
+
);
|
|
1157
|
+
}
|
|
1158
|
+
}
|
|
1159
|
+
}
|
|
1160
|
+
return null;
|
|
1161
|
+
}
|
|
1087
1162
|
extractWord(input, startPos) {
|
|
1088
1163
|
let pos = startPos;
|
|
1089
1164
|
let word = "";
|