@lokascript/semantic 1.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.
Files changed (435) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +686 -0
  3. package/dist/browser-ar.ar.global.js +2 -0
  4. package/dist/browser-core.core.global.js +2 -0
  5. package/dist/browser-de.de.global.js +2 -0
  6. package/dist/browser-east-asian.east-asian.global.js +2 -0
  7. package/dist/browser-en-tr.en-tr.global.js +2 -0
  8. package/dist/browser-en.en.global.js +2 -0
  9. package/dist/browser-es-en.es-en.global.js +2 -0
  10. package/dist/browser-es.es.global.js +2 -0
  11. package/dist/browser-fr.fr.global.js +2 -0
  12. package/dist/browser-id.id.global.js +2 -0
  13. package/dist/browser-ja.ja.global.js +2 -0
  14. package/dist/browser-ko.ko.global.js +2 -0
  15. package/dist/browser-lazy.lazy.global.js +2 -0
  16. package/dist/browser-priority.priority.global.js +2 -0
  17. package/dist/browser-pt.pt.global.js +2 -0
  18. package/dist/browser-qu.qu.global.js +2 -0
  19. package/dist/browser-sw.sw.global.js +2 -0
  20. package/dist/browser-tr.tr.global.js +2 -0
  21. package/dist/browser-western.western.global.js +2 -0
  22. package/dist/browser-zh.zh.global.js +2 -0
  23. package/dist/browser.global.js +3 -0
  24. package/dist/browser.global.js.map +1 -0
  25. package/dist/index.cjs +35051 -0
  26. package/dist/index.cjs.map +1 -0
  27. package/dist/index.d.cts +3426 -0
  28. package/dist/index.d.ts +3426 -0
  29. package/dist/index.js +34890 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/languages/ar.d.ts +78 -0
  32. package/dist/languages/ar.js +1622 -0
  33. package/dist/languages/ar.js.map +1 -0
  34. package/dist/languages/de.d.ts +38 -0
  35. package/dist/languages/de.js +1168 -0
  36. package/dist/languages/de.js.map +1 -0
  37. package/dist/languages/en.d.ts +44 -0
  38. package/dist/languages/en.js +3491 -0
  39. package/dist/languages/en.js.map +1 -0
  40. package/dist/languages/es.d.ts +52 -0
  41. package/dist/languages/es.js +1493 -0
  42. package/dist/languages/es.js.map +1 -0
  43. package/dist/languages/fr.d.ts +37 -0
  44. package/dist/languages/fr.js +1159 -0
  45. package/dist/languages/fr.js.map +1 -0
  46. package/dist/languages/id.d.ts +35 -0
  47. package/dist/languages/id.js +1152 -0
  48. package/dist/languages/id.js.map +1 -0
  49. package/dist/languages/ja.d.ts +53 -0
  50. package/dist/languages/ja.js +1430 -0
  51. package/dist/languages/ja.js.map +1 -0
  52. package/dist/languages/ko.d.ts +51 -0
  53. package/dist/languages/ko.js +1729 -0
  54. package/dist/languages/ko.js.map +1 -0
  55. package/dist/languages/pt.d.ts +37 -0
  56. package/dist/languages/pt.js +1127 -0
  57. package/dist/languages/pt.js.map +1 -0
  58. package/dist/languages/qu.d.ts +36 -0
  59. package/dist/languages/qu.js +1143 -0
  60. package/dist/languages/qu.js.map +1 -0
  61. package/dist/languages/sw.d.ts +35 -0
  62. package/dist/languages/sw.js +1147 -0
  63. package/dist/languages/sw.js.map +1 -0
  64. package/dist/languages/tr.d.ts +45 -0
  65. package/dist/languages/tr.js +1529 -0
  66. package/dist/languages/tr.js.map +1 -0
  67. package/dist/languages/zh.d.ts +58 -0
  68. package/dist/languages/zh.js +1257 -0
  69. package/dist/languages/zh.js.map +1 -0
  70. package/dist/types-C4dcj53L.d.ts +600 -0
  71. package/package.json +202 -0
  72. package/src/__test-utils__/index.ts +7 -0
  73. package/src/__test-utils__/test-helpers.ts +8 -0
  74. package/src/__types__/test-helpers.ts +122 -0
  75. package/src/analysis/index.ts +479 -0
  76. package/src/ast-builder/command-mappers.ts +1133 -0
  77. package/src/ast-builder/expression-parser/index.ts +41 -0
  78. package/src/ast-builder/expression-parser/parser.ts +563 -0
  79. package/src/ast-builder/expression-parser/tokenizer.ts +394 -0
  80. package/src/ast-builder/expression-parser/types.ts +208 -0
  81. package/src/ast-builder/index.ts +536 -0
  82. package/src/ast-builder/value-converters.ts +172 -0
  83. package/src/bridge.ts +275 -0
  84. package/src/browser-ar.ts +162 -0
  85. package/src/browser-core.ts +231 -0
  86. package/src/browser-de.ts +162 -0
  87. package/src/browser-east-asian.ts +173 -0
  88. package/src/browser-en-tr.ts +165 -0
  89. package/src/browser-en.ts +157 -0
  90. package/src/browser-es-en.ts +200 -0
  91. package/src/browser-es.ts +170 -0
  92. package/src/browser-fr.ts +162 -0
  93. package/src/browser-id.ts +162 -0
  94. package/src/browser-ja.ts +162 -0
  95. package/src/browser-ko.ts +162 -0
  96. package/src/browser-lazy.ts +189 -0
  97. package/src/browser-priority.ts +214 -0
  98. package/src/browser-pt.ts +162 -0
  99. package/src/browser-qu.ts +162 -0
  100. package/src/browser-sw.ts +162 -0
  101. package/src/browser-tr.ts +162 -0
  102. package/src/browser-western.ts +181 -0
  103. package/src/browser-zh.ts +162 -0
  104. package/src/browser.ts +268 -0
  105. package/src/cache/index.ts +14 -0
  106. package/src/cache/semantic-cache.ts +344 -0
  107. package/src/core-bridge.ts +372 -0
  108. package/src/explicit/converter.ts +258 -0
  109. package/src/explicit/index.ts +18 -0
  110. package/src/explicit/parser.ts +236 -0
  111. package/src/explicit/renderer.ts +424 -0
  112. package/src/generators/command-schemas.ts +1636 -0
  113. package/src/generators/event-handler-generator.ts +109 -0
  114. package/src/generators/index.ts +117 -0
  115. package/src/generators/language-profiles.ts +139 -0
  116. package/src/generators/pattern-generator.ts +537 -0
  117. package/src/generators/profiles/arabic.ts +131 -0
  118. package/src/generators/profiles/bengali.ts +132 -0
  119. package/src/generators/profiles/chinese.ts +124 -0
  120. package/src/generators/profiles/english.ts +113 -0
  121. package/src/generators/profiles/french.ts +125 -0
  122. package/src/generators/profiles/german.ts +126 -0
  123. package/src/generators/profiles/hindi.ts +146 -0
  124. package/src/generators/profiles/index.ts +46 -0
  125. package/src/generators/profiles/indonesian.ts +125 -0
  126. package/src/generators/profiles/italian.ts +139 -0
  127. package/src/generators/profiles/japanese.ts +149 -0
  128. package/src/generators/profiles/korean.ts +127 -0
  129. package/src/generators/profiles/marker-templates.ts +288 -0
  130. package/src/generators/profiles/ms.ts +130 -0
  131. package/src/generators/profiles/polish.ts +249 -0
  132. package/src/generators/profiles/portuguese.ts +115 -0
  133. package/src/generators/profiles/quechua.ts +113 -0
  134. package/src/generators/profiles/russian.ts +260 -0
  135. package/src/generators/profiles/spanish.ts +130 -0
  136. package/src/generators/profiles/swahili.ts +129 -0
  137. package/src/generators/profiles/thai.ts +132 -0
  138. package/src/generators/profiles/tl.ts +128 -0
  139. package/src/generators/profiles/turkish.ts +124 -0
  140. package/src/generators/profiles/types.ts +165 -0
  141. package/src/generators/profiles/ukrainian.ts +270 -0
  142. package/src/generators/profiles/vietnamese.ts +133 -0
  143. package/src/generators/schema-error-codes.ts +160 -0
  144. package/src/generators/schema-validator.ts +391 -0
  145. package/src/index.ts +429 -0
  146. package/src/language-building-schema.ts +3170 -0
  147. package/src/language-loader.ts +394 -0
  148. package/src/languages/_all.ts +65 -0
  149. package/src/languages/ar.ts +15 -0
  150. package/src/languages/bn.ts +16 -0
  151. package/src/languages/de.ts +15 -0
  152. package/src/languages/en.ts +29 -0
  153. package/src/languages/es.ts +15 -0
  154. package/src/languages/fr.ts +15 -0
  155. package/src/languages/hi.ts +26 -0
  156. package/src/languages/id.ts +15 -0
  157. package/src/languages/index.ts +18 -0
  158. package/src/languages/it.ts +15 -0
  159. package/src/languages/ja.ts +15 -0
  160. package/src/languages/ko.ts +15 -0
  161. package/src/languages/ms.ts +16 -0
  162. package/src/languages/pl.ts +18 -0
  163. package/src/languages/pt.ts +15 -0
  164. package/src/languages/qu.ts +15 -0
  165. package/src/languages/ru.ts +26 -0
  166. package/src/languages/sw.ts +15 -0
  167. package/src/languages/th.ts +16 -0
  168. package/src/languages/tl.ts +16 -0
  169. package/src/languages/tr.ts +15 -0
  170. package/src/languages/uk.ts +26 -0
  171. package/src/languages/vi.ts +16 -0
  172. package/src/languages/zh.ts +15 -0
  173. package/src/parser/index.ts +15 -0
  174. package/src/parser/pattern-matcher.ts +1181 -0
  175. package/src/parser/semantic-parser.ts +573 -0
  176. package/src/parser/utils/index.ts +35 -0
  177. package/src/parser/utils/marker-resolution.ts +111 -0
  178. package/src/parser/utils/possessive-keywords.ts +43 -0
  179. package/src/parser/utils/role-positioning.ts +70 -0
  180. package/src/parser/utils/type-validation.ts +134 -0
  181. package/src/patterns/add/ar.ts +71 -0
  182. package/src/patterns/add/bn.ts +70 -0
  183. package/src/patterns/add/hi.ts +69 -0
  184. package/src/patterns/add/index.ts +87 -0
  185. package/src/patterns/add/it.ts +61 -0
  186. package/src/patterns/add/ja.ts +93 -0
  187. package/src/patterns/add/ko.ts +74 -0
  188. package/src/patterns/add/ms.ts +30 -0
  189. package/src/patterns/add/pl.ts +62 -0
  190. package/src/patterns/add/ru.ts +62 -0
  191. package/src/patterns/add/th.ts +49 -0
  192. package/src/patterns/add/tl.ts +30 -0
  193. package/src/patterns/add/tr.ts +71 -0
  194. package/src/patterns/add/uk.ts +62 -0
  195. package/src/patterns/add/vi.ts +61 -0
  196. package/src/patterns/add/zh.ts +71 -0
  197. package/src/patterns/builders.ts +207 -0
  198. package/src/patterns/decrement/bn.ts +70 -0
  199. package/src/patterns/decrement/de.ts +42 -0
  200. package/src/patterns/decrement/hi.ts +68 -0
  201. package/src/patterns/decrement/index.ts +79 -0
  202. package/src/patterns/decrement/it.ts +69 -0
  203. package/src/patterns/decrement/ms.ts +30 -0
  204. package/src/patterns/decrement/pl.ts +58 -0
  205. package/src/patterns/decrement/ru.ts +58 -0
  206. package/src/patterns/decrement/th.ts +49 -0
  207. package/src/patterns/decrement/tl.ts +30 -0
  208. package/src/patterns/decrement/tr.ts +48 -0
  209. package/src/patterns/decrement/uk.ts +58 -0
  210. package/src/patterns/decrement/vi.ts +61 -0
  211. package/src/patterns/decrement/zh.ts +32 -0
  212. package/src/patterns/en.ts +302 -0
  213. package/src/patterns/event-handler/ar.ts +151 -0
  214. package/src/patterns/event-handler/bn.ts +72 -0
  215. package/src/patterns/event-handler/de.ts +117 -0
  216. package/src/patterns/event-handler/en.ts +117 -0
  217. package/src/patterns/event-handler/es.ts +136 -0
  218. package/src/patterns/event-handler/fr.ts +117 -0
  219. package/src/patterns/event-handler/hi.ts +64 -0
  220. package/src/patterns/event-handler/id.ts +117 -0
  221. package/src/patterns/event-handler/index.ts +119 -0
  222. package/src/patterns/event-handler/it.ts +54 -0
  223. package/src/patterns/event-handler/ja.ts +118 -0
  224. package/src/patterns/event-handler/ko.ts +133 -0
  225. package/src/patterns/event-handler/ms.ts +30 -0
  226. package/src/patterns/event-handler/pl.ts +62 -0
  227. package/src/patterns/event-handler/pt.ts +117 -0
  228. package/src/patterns/event-handler/qu.ts +66 -0
  229. package/src/patterns/event-handler/ru.ts +62 -0
  230. package/src/patterns/event-handler/shared.ts +270 -0
  231. package/src/patterns/event-handler/sw.ts +117 -0
  232. package/src/patterns/event-handler/th.ts +53 -0
  233. package/src/patterns/event-handler/tl.ts +30 -0
  234. package/src/patterns/event-handler/tr.ts +170 -0
  235. package/src/patterns/event-handler/uk.ts +62 -0
  236. package/src/patterns/event-handler/vi.ts +61 -0
  237. package/src/patterns/event-handler/zh.ts +150 -0
  238. package/src/patterns/get/ar.ts +49 -0
  239. package/src/patterns/get/bn.ts +47 -0
  240. package/src/patterns/get/de.ts +32 -0
  241. package/src/patterns/get/hi.ts +52 -0
  242. package/src/patterns/get/index.ts +83 -0
  243. package/src/patterns/get/it.ts +56 -0
  244. package/src/patterns/get/ja.ts +53 -0
  245. package/src/patterns/get/ko.ts +53 -0
  246. package/src/patterns/get/ms.ts +30 -0
  247. package/src/patterns/get/pl.ts +57 -0
  248. package/src/patterns/get/ru.ts +57 -0
  249. package/src/patterns/get/th.ts +29 -0
  250. package/src/patterns/get/tl.ts +30 -0
  251. package/src/patterns/get/uk.ts +57 -0
  252. package/src/patterns/get/vi.ts +48 -0
  253. package/src/patterns/grammar-transformed/index.ts +39 -0
  254. package/src/patterns/grammar-transformed/ja.ts +1713 -0
  255. package/src/patterns/grammar-transformed/ko.ts +1311 -0
  256. package/src/patterns/grammar-transformed/tr.ts +1067 -0
  257. package/src/patterns/hide/ar.ts +67 -0
  258. package/src/patterns/hide/bn.ts +47 -0
  259. package/src/patterns/hide/de.ts +36 -0
  260. package/src/patterns/hide/hi.ts +61 -0
  261. package/src/patterns/hide/index.ts +91 -0
  262. package/src/patterns/hide/it.ts +56 -0
  263. package/src/patterns/hide/ja.ts +69 -0
  264. package/src/patterns/hide/ko.ts +69 -0
  265. package/src/patterns/hide/ms.ts +30 -0
  266. package/src/patterns/hide/pl.ts +57 -0
  267. package/src/patterns/hide/ru.ts +57 -0
  268. package/src/patterns/hide/th.ts +29 -0
  269. package/src/patterns/hide/tl.ts +30 -0
  270. package/src/patterns/hide/tr.ts +65 -0
  271. package/src/patterns/hide/uk.ts +57 -0
  272. package/src/patterns/hide/vi.ts +56 -0
  273. package/src/patterns/hide/zh.ts +68 -0
  274. package/src/patterns/increment/bn.ts +70 -0
  275. package/src/patterns/increment/de.ts +36 -0
  276. package/src/patterns/increment/hi.ts +68 -0
  277. package/src/patterns/increment/index.ts +79 -0
  278. package/src/patterns/increment/it.ts +69 -0
  279. package/src/patterns/increment/ms.ts +30 -0
  280. package/src/patterns/increment/pl.ts +58 -0
  281. package/src/patterns/increment/ru.ts +58 -0
  282. package/src/patterns/increment/th.ts +49 -0
  283. package/src/patterns/increment/tl.ts +30 -0
  284. package/src/patterns/increment/tr.ts +52 -0
  285. package/src/patterns/increment/uk.ts +58 -0
  286. package/src/patterns/increment/vi.ts +61 -0
  287. package/src/patterns/increment/zh.ts +32 -0
  288. package/src/patterns/index.ts +84 -0
  289. package/src/patterns/languages/en/control-flow.ts +93 -0
  290. package/src/patterns/languages/en/fetch.ts +62 -0
  291. package/src/patterns/languages/en/index.ts +42 -0
  292. package/src/patterns/languages/en/repeat.ts +67 -0
  293. package/src/patterns/languages/en/set.ts +48 -0
  294. package/src/patterns/languages/en/swap.ts +38 -0
  295. package/src/patterns/languages/en/temporal.ts +57 -0
  296. package/src/patterns/put/ar.ts +74 -0
  297. package/src/patterns/put/bn.ts +53 -0
  298. package/src/patterns/put/en.ts +74 -0
  299. package/src/patterns/put/es.ts +74 -0
  300. package/src/patterns/put/hi.ts +69 -0
  301. package/src/patterns/put/id.ts +96 -0
  302. package/src/patterns/put/index.ts +99 -0
  303. package/src/patterns/put/it.ts +56 -0
  304. package/src/patterns/put/ja.ts +75 -0
  305. package/src/patterns/put/ko.ts +67 -0
  306. package/src/patterns/put/ms.ts +30 -0
  307. package/src/patterns/put/pl.ts +81 -0
  308. package/src/patterns/put/ru.ts +85 -0
  309. package/src/patterns/put/th.ts +32 -0
  310. package/src/patterns/put/tl.ts +30 -0
  311. package/src/patterns/put/tr.ts +67 -0
  312. package/src/patterns/put/uk.ts +85 -0
  313. package/src/patterns/put/vi.ts +72 -0
  314. package/src/patterns/put/zh.ts +62 -0
  315. package/src/patterns/registry.ts +163 -0
  316. package/src/patterns/remove/ar.ts +71 -0
  317. package/src/patterns/remove/bn.ts +68 -0
  318. package/src/patterns/remove/hi.ts +69 -0
  319. package/src/patterns/remove/index.ts +87 -0
  320. package/src/patterns/remove/it.ts +69 -0
  321. package/src/patterns/remove/ja.ts +74 -0
  322. package/src/patterns/remove/ko.ts +78 -0
  323. package/src/patterns/remove/ms.ts +30 -0
  324. package/src/patterns/remove/pl.ts +62 -0
  325. package/src/patterns/remove/ru.ts +62 -0
  326. package/src/patterns/remove/th.ts +49 -0
  327. package/src/patterns/remove/tl.ts +30 -0
  328. package/src/patterns/remove/tr.ts +78 -0
  329. package/src/patterns/remove/uk.ts +62 -0
  330. package/src/patterns/remove/vi.ts +61 -0
  331. package/src/patterns/remove/zh.ts +72 -0
  332. package/src/patterns/set/ar.ts +84 -0
  333. package/src/patterns/set/bn.ts +53 -0
  334. package/src/patterns/set/de.ts +84 -0
  335. package/src/patterns/set/es.ts +92 -0
  336. package/src/patterns/set/fr.ts +88 -0
  337. package/src/patterns/set/hi.ts +56 -0
  338. package/src/patterns/set/id.ts +84 -0
  339. package/src/patterns/set/index.ts +107 -0
  340. package/src/patterns/set/it.ts +56 -0
  341. package/src/patterns/set/ja.ts +86 -0
  342. package/src/patterns/set/ko.ts +85 -0
  343. package/src/patterns/set/ms.ts +30 -0
  344. package/src/patterns/set/pl.ts +57 -0
  345. package/src/patterns/set/pt.ts +84 -0
  346. package/src/patterns/set/ru.ts +57 -0
  347. package/src/patterns/set/th.ts +31 -0
  348. package/src/patterns/set/tl.ts +30 -0
  349. package/src/patterns/set/tr.ts +107 -0
  350. package/src/patterns/set/uk.ts +57 -0
  351. package/src/patterns/set/vi.ts +53 -0
  352. package/src/patterns/set/zh.ts +84 -0
  353. package/src/patterns/show/ar.ts +67 -0
  354. package/src/patterns/show/bn.ts +47 -0
  355. package/src/patterns/show/de.ts +32 -0
  356. package/src/patterns/show/fr.ts +32 -0
  357. package/src/patterns/show/hi.ts +61 -0
  358. package/src/patterns/show/index.ts +95 -0
  359. package/src/patterns/show/it.ts +56 -0
  360. package/src/patterns/show/ja.ts +69 -0
  361. package/src/patterns/show/ko.ts +73 -0
  362. package/src/patterns/show/ms.ts +30 -0
  363. package/src/patterns/show/pl.ts +57 -0
  364. package/src/patterns/show/ru.ts +57 -0
  365. package/src/patterns/show/th.ts +29 -0
  366. package/src/patterns/show/tl.ts +30 -0
  367. package/src/patterns/show/tr.ts +65 -0
  368. package/src/patterns/show/uk.ts +57 -0
  369. package/src/patterns/show/vi.ts +56 -0
  370. package/src/patterns/show/zh.ts +68 -0
  371. package/src/patterns/take/ar.ts +51 -0
  372. package/src/patterns/take/index.ts +31 -0
  373. package/src/patterns/toggle/ar.ts +61 -0
  374. package/src/patterns/toggle/bn.ts +70 -0
  375. package/src/patterns/toggle/en.ts +61 -0
  376. package/src/patterns/toggle/es.ts +61 -0
  377. package/src/patterns/toggle/hi.ts +80 -0
  378. package/src/patterns/toggle/index.ts +95 -0
  379. package/src/patterns/toggle/it.ts +69 -0
  380. package/src/patterns/toggle/ja.ts +156 -0
  381. package/src/patterns/toggle/ko.ts +113 -0
  382. package/src/patterns/toggle/ms.ts +30 -0
  383. package/src/patterns/toggle/pl.ts +62 -0
  384. package/src/patterns/toggle/ru.ts +62 -0
  385. package/src/patterns/toggle/th.ts +50 -0
  386. package/src/patterns/toggle/tl.ts +30 -0
  387. package/src/patterns/toggle/tr.ts +88 -0
  388. package/src/patterns/toggle/uk.ts +62 -0
  389. package/src/patterns/toggle/vi.ts +61 -0
  390. package/src/patterns/toggle/zh.ts +99 -0
  391. package/src/public-api.ts +286 -0
  392. package/src/registry.ts +441 -0
  393. package/src/tokenizers/arabic.ts +723 -0
  394. package/src/tokenizers/base.ts +1300 -0
  395. package/src/tokenizers/bengali.ts +289 -0
  396. package/src/tokenizers/chinese.ts +481 -0
  397. package/src/tokenizers/english.ts +416 -0
  398. package/src/tokenizers/french.ts +326 -0
  399. package/src/tokenizers/german.ts +324 -0
  400. package/src/tokenizers/hindi.ts +319 -0
  401. package/src/tokenizers/index.ts +127 -0
  402. package/src/tokenizers/indonesian.ts +306 -0
  403. package/src/tokenizers/italian.ts +458 -0
  404. package/src/tokenizers/japanese.ts +447 -0
  405. package/src/tokenizers/korean.ts +642 -0
  406. package/src/tokenizers/morphology/arabic-normalizer.ts +242 -0
  407. package/src/tokenizers/morphology/french-normalizer.ts +268 -0
  408. package/src/tokenizers/morphology/german-normalizer.ts +256 -0
  409. package/src/tokenizers/morphology/index.ts +46 -0
  410. package/src/tokenizers/morphology/italian-normalizer.ts +329 -0
  411. package/src/tokenizers/morphology/japanese-normalizer.ts +288 -0
  412. package/src/tokenizers/morphology/korean-normalizer.ts +428 -0
  413. package/src/tokenizers/morphology/polish-normalizer.ts +264 -0
  414. package/src/tokenizers/morphology/portuguese-normalizer.ts +310 -0
  415. package/src/tokenizers/morphology/spanish-normalizer.ts +327 -0
  416. package/src/tokenizers/morphology/turkish-normalizer.ts +412 -0
  417. package/src/tokenizers/morphology/types.ts +211 -0
  418. package/src/tokenizers/ms.ts +198 -0
  419. package/src/tokenizers/polish.ts +354 -0
  420. package/src/tokenizers/portuguese.ts +304 -0
  421. package/src/tokenizers/quechua.ts +339 -0
  422. package/src/tokenizers/russian.ts +375 -0
  423. package/src/tokenizers/spanish.ts +403 -0
  424. package/src/tokenizers/swahili.ts +303 -0
  425. package/src/tokenizers/thai.ts +236 -0
  426. package/src/tokenizers/tl.ts +198 -0
  427. package/src/tokenizers/turkish.ts +411 -0
  428. package/src/tokenizers/ukrainian.ts +369 -0
  429. package/src/tokenizers/vietnamese.ts +410 -0
  430. package/src/types/grammar-types.ts +617 -0
  431. package/src/types/unified-profile.ts +267 -0
  432. package/src/types.ts +709 -0
  433. package/src/utils/confidence-calculator.ts +147 -0
  434. package/src/validators/command-validator.ts +380 -0
  435. package/src/validators/index.ts +15 -0
@@ -0,0 +1,214 @@
1
+ /**
2
+ * Priority Languages Browser Bundle Entry Point
3
+ *
4
+ * A comprehensive bundle supporting all 11 priority languages:
5
+ * - Western: English (en), Spanish (es), Portuguese (pt), French (fr), German (de)
6
+ * - East Asian: Japanese (ja), Chinese (zh), Korean (ko)
7
+ * - Other: Arabic (ar), Turkish (tr), Indonesian (id)
8
+ *
9
+ * Excludes proof-of-concept languages (Swahili, Quechua).
10
+ * Estimated size: ~280 KB
11
+ *
12
+ * @example
13
+ * ```html
14
+ * <script src="hyperfixi-semantic.priority.global.js"></script>
15
+ * <script>
16
+ * // Parse Arabic hyperscript
17
+ * const ast = LokaScriptSemanticPriority.parse('بدّل .active', 'ar');
18
+ * </script>
19
+ * ```
20
+ */
21
+
22
+ // =============================================================================
23
+ // Register Priority Languages
24
+ // =============================================================================
25
+
26
+ // Western languages (SVO/V2)
27
+ import './languages/en';
28
+ import './languages/es';
29
+ import './languages/pt';
30
+ import './languages/fr';
31
+ import './languages/de';
32
+
33
+ // East Asian languages
34
+ import './languages/ja';
35
+ import './languages/zh';
36
+ import './languages/ko';
37
+
38
+ // Other priority languages
39
+ import './languages/ar';
40
+ import './languages/tr';
41
+ import './languages/id';
42
+
43
+ // =============================================================================
44
+ // Version
45
+ // =============================================================================
46
+
47
+ export const VERSION = '1.0.0-priority';
48
+
49
+ // =============================================================================
50
+ // Supported Languages
51
+ // =============================================================================
52
+
53
+ const SUPPORTED_LANGUAGES = [
54
+ 'en',
55
+ 'es',
56
+ 'pt',
57
+ 'fr',
58
+ 'de', // Western
59
+ 'ja',
60
+ 'zh',
61
+ 'ko', // East Asian
62
+ 'ar',
63
+ 'tr',
64
+ 'id', // Other
65
+ ] as const;
66
+
67
+ /**
68
+ * Get all supported languages in this bundle.
69
+ */
70
+ export function getSupportedLanguages(): string[] {
71
+ return [...SUPPORTED_LANGUAGES];
72
+ }
73
+
74
+ function validateLanguage(language: string): void {
75
+ if (!SUPPORTED_LANGUAGES.includes(language as any)) {
76
+ throw new Error(
77
+ `Language not supported in this bundle: ${language}. Supported: ${SUPPORTED_LANGUAGES.join(', ')}`
78
+ );
79
+ }
80
+ }
81
+
82
+ // =============================================================================
83
+ // Tokenizers (from registry)
84
+ // =============================================================================
85
+
86
+ export { getTokenizer, isLanguageSupported } from './registry';
87
+
88
+ import type { LanguageToken } from './types';
89
+ import { tokenize as tokenizeInternal } from './tokenizers';
90
+
91
+ /**
92
+ * Tokenize input and return array of tokens (browser-friendly wrapper).
93
+ */
94
+ export function tokenize(input: string, language: string): LanguageToken[] {
95
+ validateLanguage(language);
96
+ const stream = tokenizeInternal(input, language);
97
+ return [...stream.tokens];
98
+ }
99
+
100
+ // Re-export language tokenizers
101
+ export { englishTokenizer } from './tokenizers/english';
102
+ export { spanishTokenizer } from './tokenizers/spanish';
103
+ export { portugueseTokenizer } from './tokenizers/portuguese';
104
+ export { frenchTokenizer } from './tokenizers/french';
105
+ export { germanTokenizer } from './tokenizers/german';
106
+ export { japaneseTokenizer } from './tokenizers/japanese';
107
+ export { chineseTokenizer } from './tokenizers/chinese';
108
+ export { koreanTokenizer } from './tokenizers/korean';
109
+ export { arabicTokenizer } from './tokenizers/arabic';
110
+ export { turkishTokenizer } from './tokenizers/turkish';
111
+ export { indonesianTokenizer } from './tokenizers/indonesian';
112
+
113
+ // =============================================================================
114
+ // Patterns (from registry - lazy generation)
115
+ // =============================================================================
116
+
117
+ import { getPatternsForLanguage as getPatternsFromRegistry } from './registry';
118
+ import type { LanguagePattern, ActionType } from './types';
119
+
120
+ /**
121
+ * Get all patterns for a language.
122
+ */
123
+ export function getPatternsForLanguage(language: string): LanguagePattern[] {
124
+ validateLanguage(language);
125
+ return getPatternsFromRegistry(language);
126
+ }
127
+
128
+ /**
129
+ * Get patterns for a specific language and command.
130
+ */
131
+ export function getPatternsForLanguageAndCommand(
132
+ language: string,
133
+ command: ActionType
134
+ ): LanguagePattern[] {
135
+ return getPatternsForLanguage(language)
136
+ .filter(p => p.command === command)
137
+ .sort((a, b) => b.priority - a.priority);
138
+ }
139
+
140
+ // =============================================================================
141
+ // Language Profiles (from registry)
142
+ // =============================================================================
143
+
144
+ export { getProfile, tryGetProfile } from './registry';
145
+ export { englishProfile } from './generators/profiles/english';
146
+ export { spanishProfile } from './generators/profiles/spanish';
147
+ export { portugueseProfile } from './generators/profiles/portuguese';
148
+ export { frenchProfile } from './generators/profiles/french';
149
+ export { germanProfile } from './generators/profiles/german';
150
+ export { japaneseProfile } from './generators/profiles/japanese';
151
+ export { chineseProfile } from './generators/profiles/chinese';
152
+ export { koreanProfile } from './generators/profiles/korean';
153
+ export { arabicProfile } from './generators/profiles/arabic';
154
+ export { turkishProfile } from './generators/profiles/turkish';
155
+ export { indonesianProfile } from './generators/profiles/indonesian';
156
+
157
+ // =============================================================================
158
+ // Parsing
159
+ // =============================================================================
160
+
161
+ export { parse, canParse } from './parser';
162
+ export { parseAny, parseExplicit, isExplicitSyntax } from './explicit';
163
+
164
+ // =============================================================================
165
+ // Rendering
166
+ // =============================================================================
167
+
168
+ export { render, renderExplicit, toExplicit, fromExplicit } from './explicit';
169
+
170
+ // =============================================================================
171
+ // AST Builder
172
+ // =============================================================================
173
+
174
+ export { buildAST, ASTBuilder, getCommandMapper, registerCommandMapper } from './ast-builder';
175
+
176
+ // =============================================================================
177
+ // Semantic Analyzer (for core parser integration)
178
+ // =============================================================================
179
+
180
+ export {
181
+ createSemanticAnalyzer,
182
+ SemanticAnalyzerImpl,
183
+ shouldUseSemanticResult,
184
+ DEFAULT_CONFIDENCE_THRESHOLD,
185
+ HIGH_CONFIDENCE_THRESHOLD,
186
+ } from './core-bridge';
187
+
188
+ export type { SemanticAnalyzer, SemanticAnalysisResult } from './core-bridge';
189
+
190
+ // =============================================================================
191
+ // Type Helpers
192
+ // =============================================================================
193
+
194
+ export {
195
+ createSelector,
196
+ createLiteral,
197
+ createReference,
198
+ createPropertyPath,
199
+ createCommandNode,
200
+ createEventHandler,
201
+ } from './types';
202
+
203
+ // =============================================================================
204
+ // Types
205
+ // =============================================================================
206
+
207
+ export type {
208
+ ActionType,
209
+ SemanticRole,
210
+ SemanticValue,
211
+ SemanticNode,
212
+ LanguageToken,
213
+ TokenStream,
214
+ } from './types';
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Portuguese Browser Bundle Entry Point
3
+ *
4
+ * Minimal single-language bundle.
5
+ * Estimated size: ~67 KB (~23 KB gzip)
6
+ *
7
+ * @example
8
+ * ```html
9
+ * <script src="hyperfixi-semantic.pt.global.js"></script>
10
+ * <script>
11
+ * const ast = LokaScriptSemanticPt.parse('toggle .active', 'pt');
12
+ * </script>
13
+ * ```
14
+ */
15
+
16
+ // =============================================================================
17
+ // Register Languages: pt
18
+ // =============================================================================
19
+
20
+ import './languages/pt';
21
+
22
+ // =============================================================================
23
+ // Version
24
+ // =============================================================================
25
+
26
+ export const VERSION = '1.0.0-pt';
27
+
28
+ // =============================================================================
29
+ // Supported Languages
30
+ // =============================================================================
31
+
32
+ const SUPPORTED_LANGUAGES = ['pt'] as const;
33
+
34
+ /**
35
+ * Get all supported languages in this bundle.
36
+ */
37
+ export function getSupportedLanguages(): string[] {
38
+ return [...SUPPORTED_LANGUAGES];
39
+ }
40
+
41
+ /**
42
+ * Validate that a language is supported by this bundle.
43
+ */
44
+ function validateLanguage(language: string): void {
45
+ if (language !== 'pt') {
46
+ throw new Error(`Language not supported in this bundle: ${language}. ` + `Supported: pt`);
47
+ }
48
+ }
49
+
50
+ // =============================================================================
51
+ // Tokenizers (from registry)
52
+ // =============================================================================
53
+
54
+ export { getTokenizer, isLanguageSupported } from './registry';
55
+
56
+ import type { LanguageToken } from './types';
57
+ import { tokenize as tokenizeInternal } from './tokenizers';
58
+
59
+ /**
60
+ * Tokenize input and return array of tokens (browser-friendly wrapper).
61
+ */
62
+ export function tokenize(input: string, language: string): LanguageToken[] {
63
+ validateLanguage(language);
64
+ const stream = tokenizeInternal(input, language);
65
+ return [...stream.tokens];
66
+ }
67
+
68
+ // Re-export tokenizers
69
+ export { portugueseTokenizer } from './tokenizers/portuguese';
70
+
71
+ // =============================================================================
72
+ // Patterns (from registry - lazy generation)
73
+ // =============================================================================
74
+
75
+ import { getPatternsForLanguage as getPatternsFromRegistry } from './registry';
76
+ import type { LanguagePattern, ActionType } from './types';
77
+
78
+ /**
79
+ * Get all patterns for a language.
80
+ */
81
+ export function getPatternsForLanguage(language: string): LanguagePattern[] {
82
+ validateLanguage(language);
83
+ return getPatternsFromRegistry(language);
84
+ }
85
+
86
+ /**
87
+ * Get patterns for a language and specific command.
88
+ */
89
+ export function getPatternsForLanguageAndCommand(
90
+ language: string,
91
+ command: ActionType
92
+ ): LanguagePattern[] {
93
+ return getPatternsForLanguage(language)
94
+ .filter(p => p.command === command)
95
+ .sort((a, b) => b.priority - a.priority);
96
+ }
97
+
98
+ // =============================================================================
99
+ // Language Profiles (from registry)
100
+ // =============================================================================
101
+
102
+ export { getProfile, tryGetProfile } from './registry';
103
+ export { portugueseProfile } from './generators/language-profiles';
104
+
105
+ // =============================================================================
106
+ // Parsing
107
+ // =============================================================================
108
+
109
+ export { parse, canParse } from './parser';
110
+ export { parseAny, parseExplicit, isExplicitSyntax } from './explicit';
111
+
112
+ // =============================================================================
113
+ // Rendering
114
+ // =============================================================================
115
+
116
+ export { render, renderExplicit, toExplicit, fromExplicit } from './explicit';
117
+
118
+ // =============================================================================
119
+ // AST Builder
120
+ // =============================================================================
121
+
122
+ export { buildAST, ASTBuilder, getCommandMapper, registerCommandMapper } from './ast-builder';
123
+
124
+ // =============================================================================
125
+ // Semantic Analyzer (for core parser integration)
126
+ // =============================================================================
127
+
128
+ export {
129
+ createSemanticAnalyzer,
130
+ SemanticAnalyzerImpl,
131
+ shouldUseSemanticResult,
132
+ DEFAULT_CONFIDENCE_THRESHOLD,
133
+ HIGH_CONFIDENCE_THRESHOLD,
134
+ } from './core-bridge';
135
+
136
+ export type { SemanticAnalyzer, SemanticAnalysisResult } from './core-bridge';
137
+
138
+ // =============================================================================
139
+ // Type Helpers
140
+ // =============================================================================
141
+
142
+ export {
143
+ createSelector,
144
+ createLiteral,
145
+ createReference,
146
+ createPropertyPath,
147
+ createCommandNode,
148
+ createEventHandler,
149
+ } from './types';
150
+
151
+ // =============================================================================
152
+ // Types
153
+ // =============================================================================
154
+
155
+ export type {
156
+ ActionType,
157
+ SemanticRole,
158
+ SemanticValue,
159
+ SemanticNode,
160
+ LanguageToken,
161
+ TokenStream,
162
+ } from './types';
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Quechua Browser Bundle Entry Point
3
+ *
4
+ * Minimal single-language bundle.
5
+ * Estimated size: ~61 KB (~21 KB gzip)
6
+ *
7
+ * @example
8
+ * ```html
9
+ * <script src="hyperfixi-semantic.qu.global.js"></script>
10
+ * <script>
11
+ * const ast = LokaScriptSemanticQu.parse('toggle .active', 'qu');
12
+ * </script>
13
+ * ```
14
+ */
15
+
16
+ // =============================================================================
17
+ // Register Languages: qu
18
+ // =============================================================================
19
+
20
+ import './languages/qu';
21
+
22
+ // =============================================================================
23
+ // Version
24
+ // =============================================================================
25
+
26
+ export const VERSION = '1.0.0-qu';
27
+
28
+ // =============================================================================
29
+ // Supported Languages
30
+ // =============================================================================
31
+
32
+ const SUPPORTED_LANGUAGES = ['qu'] as const;
33
+
34
+ /**
35
+ * Get all supported languages in this bundle.
36
+ */
37
+ export function getSupportedLanguages(): string[] {
38
+ return [...SUPPORTED_LANGUAGES];
39
+ }
40
+
41
+ /**
42
+ * Validate that a language is supported by this bundle.
43
+ */
44
+ function validateLanguage(language: string): void {
45
+ if (language !== 'qu') {
46
+ throw new Error(`Language not supported in this bundle: ${language}. ` + `Supported: qu`);
47
+ }
48
+ }
49
+
50
+ // =============================================================================
51
+ // Tokenizers (from registry)
52
+ // =============================================================================
53
+
54
+ export { getTokenizer, isLanguageSupported } from './registry';
55
+
56
+ import type { LanguageToken } from './types';
57
+ import { tokenize as tokenizeInternal } from './tokenizers';
58
+
59
+ /**
60
+ * Tokenize input and return array of tokens (browser-friendly wrapper).
61
+ */
62
+ export function tokenize(input: string, language: string): LanguageToken[] {
63
+ validateLanguage(language);
64
+ const stream = tokenizeInternal(input, language);
65
+ return [...stream.tokens];
66
+ }
67
+
68
+ // Re-export tokenizers
69
+ export { quechuaTokenizer } from './tokenizers/quechua';
70
+
71
+ // =============================================================================
72
+ // Patterns (from registry - lazy generation)
73
+ // =============================================================================
74
+
75
+ import { getPatternsForLanguage as getPatternsFromRegistry } from './registry';
76
+ import type { LanguagePattern, ActionType } from './types';
77
+
78
+ /**
79
+ * Get all patterns for a language.
80
+ */
81
+ export function getPatternsForLanguage(language: string): LanguagePattern[] {
82
+ validateLanguage(language);
83
+ return getPatternsFromRegistry(language);
84
+ }
85
+
86
+ /**
87
+ * Get patterns for a language and specific command.
88
+ */
89
+ export function getPatternsForLanguageAndCommand(
90
+ language: string,
91
+ command: ActionType
92
+ ): LanguagePattern[] {
93
+ return getPatternsForLanguage(language)
94
+ .filter(p => p.command === command)
95
+ .sort((a, b) => b.priority - a.priority);
96
+ }
97
+
98
+ // =============================================================================
99
+ // Language Profiles (from registry)
100
+ // =============================================================================
101
+
102
+ export { getProfile, tryGetProfile } from './registry';
103
+ export { quechuaProfile } from './generators/language-profiles';
104
+
105
+ // =============================================================================
106
+ // Parsing
107
+ // =============================================================================
108
+
109
+ export { parse, canParse } from './parser';
110
+ export { parseAny, parseExplicit, isExplicitSyntax } from './explicit';
111
+
112
+ // =============================================================================
113
+ // Rendering
114
+ // =============================================================================
115
+
116
+ export { render, renderExplicit, toExplicit, fromExplicit } from './explicit';
117
+
118
+ // =============================================================================
119
+ // AST Builder
120
+ // =============================================================================
121
+
122
+ export { buildAST, ASTBuilder, getCommandMapper, registerCommandMapper } from './ast-builder';
123
+
124
+ // =============================================================================
125
+ // Semantic Analyzer (for core parser integration)
126
+ // =============================================================================
127
+
128
+ export {
129
+ createSemanticAnalyzer,
130
+ SemanticAnalyzerImpl,
131
+ shouldUseSemanticResult,
132
+ DEFAULT_CONFIDENCE_THRESHOLD,
133
+ HIGH_CONFIDENCE_THRESHOLD,
134
+ } from './core-bridge';
135
+
136
+ export type { SemanticAnalyzer, SemanticAnalysisResult } from './core-bridge';
137
+
138
+ // =============================================================================
139
+ // Type Helpers
140
+ // =============================================================================
141
+
142
+ export {
143
+ createSelector,
144
+ createLiteral,
145
+ createReference,
146
+ createPropertyPath,
147
+ createCommandNode,
148
+ createEventHandler,
149
+ } from './types';
150
+
151
+ // =============================================================================
152
+ // Types
153
+ // =============================================================================
154
+
155
+ export type {
156
+ ActionType,
157
+ SemanticRole,
158
+ SemanticValue,
159
+ SemanticNode,
160
+ LanguageToken,
161
+ TokenStream,
162
+ } from './types';
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Swahili Browser Bundle Entry Point
3
+ *
4
+ * Minimal single-language bundle.
5
+ * Estimated size: ~63 KB (~22 KB gzip)
6
+ *
7
+ * @example
8
+ * ```html
9
+ * <script src="hyperfixi-semantic.sw.global.js"></script>
10
+ * <script>
11
+ * const ast = LokaScriptSemanticSw.parse('toggle .active', 'sw');
12
+ * </script>
13
+ * ```
14
+ */
15
+
16
+ // =============================================================================
17
+ // Register Languages: sw
18
+ // =============================================================================
19
+
20
+ import './languages/sw';
21
+
22
+ // =============================================================================
23
+ // Version
24
+ // =============================================================================
25
+
26
+ export const VERSION = '1.0.0-sw';
27
+
28
+ // =============================================================================
29
+ // Supported Languages
30
+ // =============================================================================
31
+
32
+ const SUPPORTED_LANGUAGES = ['sw'] as const;
33
+
34
+ /**
35
+ * Get all supported languages in this bundle.
36
+ */
37
+ export function getSupportedLanguages(): string[] {
38
+ return [...SUPPORTED_LANGUAGES];
39
+ }
40
+
41
+ /**
42
+ * Validate that a language is supported by this bundle.
43
+ */
44
+ function validateLanguage(language: string): void {
45
+ if (language !== 'sw') {
46
+ throw new Error(`Language not supported in this bundle: ${language}. ` + `Supported: sw`);
47
+ }
48
+ }
49
+
50
+ // =============================================================================
51
+ // Tokenizers (from registry)
52
+ // =============================================================================
53
+
54
+ export { getTokenizer, isLanguageSupported } from './registry';
55
+
56
+ import type { LanguageToken } from './types';
57
+ import { tokenize as tokenizeInternal } from './tokenizers';
58
+
59
+ /**
60
+ * Tokenize input and return array of tokens (browser-friendly wrapper).
61
+ */
62
+ export function tokenize(input: string, language: string): LanguageToken[] {
63
+ validateLanguage(language);
64
+ const stream = tokenizeInternal(input, language);
65
+ return [...stream.tokens];
66
+ }
67
+
68
+ // Re-export tokenizers
69
+ export { swahiliTokenizer } from './tokenizers/swahili';
70
+
71
+ // =============================================================================
72
+ // Patterns (from registry - lazy generation)
73
+ // =============================================================================
74
+
75
+ import { getPatternsForLanguage as getPatternsFromRegistry } from './registry';
76
+ import type { LanguagePattern, ActionType } from './types';
77
+
78
+ /**
79
+ * Get all patterns for a language.
80
+ */
81
+ export function getPatternsForLanguage(language: string): LanguagePattern[] {
82
+ validateLanguage(language);
83
+ return getPatternsFromRegistry(language);
84
+ }
85
+
86
+ /**
87
+ * Get patterns for a language and specific command.
88
+ */
89
+ export function getPatternsForLanguageAndCommand(
90
+ language: string,
91
+ command: ActionType
92
+ ): LanguagePattern[] {
93
+ return getPatternsForLanguage(language)
94
+ .filter(p => p.command === command)
95
+ .sort((a, b) => b.priority - a.priority);
96
+ }
97
+
98
+ // =============================================================================
99
+ // Language Profiles (from registry)
100
+ // =============================================================================
101
+
102
+ export { getProfile, tryGetProfile } from './registry';
103
+ export { swahiliProfile } from './generators/language-profiles';
104
+
105
+ // =============================================================================
106
+ // Parsing
107
+ // =============================================================================
108
+
109
+ export { parse, canParse } from './parser';
110
+ export { parseAny, parseExplicit, isExplicitSyntax } from './explicit';
111
+
112
+ // =============================================================================
113
+ // Rendering
114
+ // =============================================================================
115
+
116
+ export { render, renderExplicit, toExplicit, fromExplicit } from './explicit';
117
+
118
+ // =============================================================================
119
+ // AST Builder
120
+ // =============================================================================
121
+
122
+ export { buildAST, ASTBuilder, getCommandMapper, registerCommandMapper } from './ast-builder';
123
+
124
+ // =============================================================================
125
+ // Semantic Analyzer (for core parser integration)
126
+ // =============================================================================
127
+
128
+ export {
129
+ createSemanticAnalyzer,
130
+ SemanticAnalyzerImpl,
131
+ shouldUseSemanticResult,
132
+ DEFAULT_CONFIDENCE_THRESHOLD,
133
+ HIGH_CONFIDENCE_THRESHOLD,
134
+ } from './core-bridge';
135
+
136
+ export type { SemanticAnalyzer, SemanticAnalysisResult } from './core-bridge';
137
+
138
+ // =============================================================================
139
+ // Type Helpers
140
+ // =============================================================================
141
+
142
+ export {
143
+ createSelector,
144
+ createLiteral,
145
+ createReference,
146
+ createPropertyPath,
147
+ createCommandNode,
148
+ createEventHandler,
149
+ } from './types';
150
+
151
+ // =============================================================================
152
+ // Types
153
+ // =============================================================================
154
+
155
+ export type {
156
+ ActionType,
157
+ SemanticRole,
158
+ SemanticValue,
159
+ SemanticNode,
160
+ LanguageToken,
161
+ TokenStream,
162
+ } from './types';