@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,162 @@
1
+ /**
2
+ * German Browser Bundle Entry Point
3
+ *
4
+ * Minimal single-language bundle.
5
+ * Estimated size: ~69 KB (~24 KB gzip)
6
+ *
7
+ * @example
8
+ * ```html
9
+ * <script src="hyperfixi-semantic.de.global.js"></script>
10
+ * <script>
11
+ * const ast = LokaScriptSemanticDe.parse('toggle .active', 'de');
12
+ * </script>
13
+ * ```
14
+ */
15
+
16
+ // =============================================================================
17
+ // Register Languages: de
18
+ // =============================================================================
19
+
20
+ import './languages/de';
21
+
22
+ // =============================================================================
23
+ // Version
24
+ // =============================================================================
25
+
26
+ export const VERSION = '1.0.0-de';
27
+
28
+ // =============================================================================
29
+ // Supported Languages
30
+ // =============================================================================
31
+
32
+ const SUPPORTED_LANGUAGES = ['de'] 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 !== 'de') {
46
+ throw new Error(`Language not supported in this bundle: ${language}. ` + `Supported: de`);
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 { germanTokenizer } from './tokenizers/german';
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 { germanProfile } 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,173 @@
1
+ /**
2
+ * East Asian Languages Browser Bundle Entry Point
3
+ *
4
+ * A regional bundle supporting CJK languages:
5
+ * - Japanese (ja) - SOV, particles, no spaces
6
+ * - Chinese (zh) - SVO, isolating, no spaces
7
+ * - Korean (ko) - SOV, particles, agglutinative
8
+ *
9
+ * Complex morphology, distinct writing systems.
10
+ * Estimated size: ~130 KB
11
+ *
12
+ * @example
13
+ * ```html
14
+ * <script src="hyperfixi-semantic.east-asian.global.js"></script>
15
+ * <script>
16
+ * // Parse Japanese hyperscript
17
+ * const ast = LokaScriptSemanticEastAsian.parse('.active を 切り替え', 'ja');
18
+ * </script>
19
+ * ```
20
+ */
21
+
22
+ // =============================================================================
23
+ // Register East Asian Languages
24
+ // =============================================================================
25
+
26
+ import './languages/ja';
27
+ import './languages/zh';
28
+ import './languages/ko';
29
+
30
+ // =============================================================================
31
+ // Version
32
+ // =============================================================================
33
+
34
+ export const VERSION = '1.0.0-east-asian';
35
+
36
+ // =============================================================================
37
+ // Supported Languages
38
+ // =============================================================================
39
+
40
+ const SUPPORTED_LANGUAGES = ['ja', 'zh', 'ko'] as const;
41
+
42
+ /**
43
+ * Get all supported languages in this bundle.
44
+ */
45
+ export function getSupportedLanguages(): string[] {
46
+ return [...SUPPORTED_LANGUAGES];
47
+ }
48
+
49
+ function validateLanguage(language: string): void {
50
+ if (!SUPPORTED_LANGUAGES.includes(language as any)) {
51
+ throw new Error(
52
+ `Language not supported in this bundle: ${language}. Supported: ${SUPPORTED_LANGUAGES.join(', ')}`
53
+ );
54
+ }
55
+ }
56
+
57
+ // =============================================================================
58
+ // Tokenizers (from registry)
59
+ // =============================================================================
60
+
61
+ export { getTokenizer, isLanguageSupported } from './registry';
62
+
63
+ import type { LanguageToken } from './types';
64
+ import { tokenize as tokenizeInternal } from './tokenizers';
65
+
66
+ /**
67
+ * Tokenize input and return array of tokens (browser-friendly wrapper).
68
+ */
69
+ export function tokenize(input: string, language: string): LanguageToken[] {
70
+ validateLanguage(language);
71
+ const stream = tokenizeInternal(input, language);
72
+ return [...stream.tokens];
73
+ }
74
+
75
+ // Re-export language tokenizers
76
+ export { japaneseTokenizer } from './tokenizers/japanese';
77
+ export { chineseTokenizer } from './tokenizers/chinese';
78
+ export { koreanTokenizer } from './tokenizers/korean';
79
+
80
+ // =============================================================================
81
+ // Patterns (from registry - lazy generation)
82
+ // =============================================================================
83
+
84
+ import { getPatternsForLanguage as getPatternsFromRegistry } from './registry';
85
+ import type { LanguagePattern, ActionType } from './types';
86
+
87
+ /**
88
+ * Get all patterns for a language.
89
+ */
90
+ export function getPatternsForLanguage(language: string): LanguagePattern[] {
91
+ validateLanguage(language);
92
+ return getPatternsFromRegistry(language);
93
+ }
94
+
95
+ /**
96
+ * Get patterns for a specific language and command.
97
+ */
98
+ export function getPatternsForLanguageAndCommand(
99
+ language: string,
100
+ command: ActionType
101
+ ): LanguagePattern[] {
102
+ return getPatternsForLanguage(language)
103
+ .filter(p => p.command === command)
104
+ .sort((a, b) => b.priority - a.priority);
105
+ }
106
+
107
+ // =============================================================================
108
+ // Language Profiles (from registry)
109
+ // =============================================================================
110
+
111
+ export { getProfile, tryGetProfile } from './registry';
112
+ export { japaneseProfile } from './generators/profiles/japanese';
113
+ export { chineseProfile } from './generators/profiles/chinese';
114
+ export { koreanProfile } from './generators/profiles/korean';
115
+
116
+ // =============================================================================
117
+ // Parsing
118
+ // =============================================================================
119
+
120
+ export { parse, canParse } from './parser';
121
+ export { parseAny, parseExplicit, isExplicitSyntax } from './explicit';
122
+
123
+ // =============================================================================
124
+ // Rendering
125
+ // =============================================================================
126
+
127
+ export { render, renderExplicit, toExplicit, fromExplicit } from './explicit';
128
+
129
+ // =============================================================================
130
+ // AST Builder
131
+ // =============================================================================
132
+
133
+ export { buildAST, ASTBuilder, getCommandMapper, registerCommandMapper } from './ast-builder';
134
+
135
+ // =============================================================================
136
+ // Semantic Analyzer (for core parser integration)
137
+ // =============================================================================
138
+
139
+ export {
140
+ createSemanticAnalyzer,
141
+ SemanticAnalyzerImpl,
142
+ shouldUseSemanticResult,
143
+ DEFAULT_CONFIDENCE_THRESHOLD,
144
+ HIGH_CONFIDENCE_THRESHOLD,
145
+ } from './core-bridge';
146
+
147
+ export type { SemanticAnalyzer, SemanticAnalysisResult } from './core-bridge';
148
+
149
+ // =============================================================================
150
+ // Type Helpers
151
+ // =============================================================================
152
+
153
+ export {
154
+ createSelector,
155
+ createLiteral,
156
+ createReference,
157
+ createPropertyPath,
158
+ createCommandNode,
159
+ createEventHandler,
160
+ } from './types';
161
+
162
+ // =============================================================================
163
+ // Types
164
+ // =============================================================================
165
+
166
+ export type {
167
+ ActionType,
168
+ SemanticRole,
169
+ SemanticValue,
170
+ SemanticNode,
171
+ LanguageToken,
172
+ TokenStream,
173
+ } from './types';
@@ -0,0 +1,165 @@
1
+ /**
2
+ * English + Turkish Browser Bundle Entry Point
3
+ *
4
+ * Minimal bundle supporting English + Turkish.
5
+ * Estimated size: ~90 KB (~31 KB gzip)
6
+ *
7
+ * @example
8
+ * ```html
9
+ * <script src="hyperfixi-semantic.en-tr.global.js"></script>
10
+ * <script>
11
+ * const ast = LokaScriptSemanticEnTr.parse('toggle .active', 'en');
12
+ * </script>
13
+ * ```
14
+ */
15
+
16
+ // =============================================================================
17
+ // Register Languages: en, tr
18
+ // =============================================================================
19
+
20
+ import './languages/en';
21
+ import './languages/tr';
22
+
23
+ // =============================================================================
24
+ // Version
25
+ // =============================================================================
26
+
27
+ export const VERSION = '1.0.0-en-tr';
28
+
29
+ // =============================================================================
30
+ // Supported Languages
31
+ // =============================================================================
32
+
33
+ const SUPPORTED_LANGUAGES = ['en', 'tr'] as const;
34
+
35
+ /**
36
+ * Get all supported languages in this bundle.
37
+ */
38
+ export function getSupportedLanguages(): string[] {
39
+ return [...SUPPORTED_LANGUAGES];
40
+ }
41
+
42
+ /**
43
+ * Validate that a language is supported by this bundle.
44
+ */
45
+ function validateLanguage(language: string): void {
46
+ if (!SUPPORTED_LANGUAGES.includes(language as (typeof SUPPORTED_LANGUAGES)[number])) {
47
+ throw new Error(`Language not supported in this bundle: ${language}. ` + `Supported: en, tr`);
48
+ }
49
+ }
50
+
51
+ // =============================================================================
52
+ // Tokenizers (from registry)
53
+ // =============================================================================
54
+
55
+ export { getTokenizer, isLanguageSupported } from './registry';
56
+
57
+ import type { LanguageToken } from './types';
58
+ import { tokenize as tokenizeInternal } from './tokenizers';
59
+
60
+ /**
61
+ * Tokenize input and return array of tokens (browser-friendly wrapper).
62
+ */
63
+ export function tokenize(input: string, language: string): LanguageToken[] {
64
+ validateLanguage(language);
65
+ const stream = tokenizeInternal(input, language);
66
+ return [...stream.tokens];
67
+ }
68
+
69
+ // Re-export tokenizers
70
+ export { englishTokenizer } from './tokenizers/english';
71
+ export { turkishTokenizer } from './tokenizers/turkish';
72
+
73
+ // =============================================================================
74
+ // Patterns (from registry - lazy generation)
75
+ // =============================================================================
76
+
77
+ import { getPatternsForLanguage as getPatternsFromRegistry } from './registry';
78
+ import type { LanguagePattern, ActionType } from './types';
79
+
80
+ /**
81
+ * Get all patterns for a language.
82
+ */
83
+ export function getPatternsForLanguage(language: string): LanguagePattern[] {
84
+ validateLanguage(language);
85
+ return getPatternsFromRegistry(language);
86
+ }
87
+
88
+ /**
89
+ * Get patterns for a language and specific command.
90
+ */
91
+ export function getPatternsForLanguageAndCommand(
92
+ language: string,
93
+ command: ActionType
94
+ ): LanguagePattern[] {
95
+ return getPatternsForLanguage(language)
96
+ .filter(p => p.command === command)
97
+ .sort((a, b) => b.priority - a.priority);
98
+ }
99
+
100
+ // =============================================================================
101
+ // Language Profiles (from registry)
102
+ // =============================================================================
103
+
104
+ export { getProfile, tryGetProfile } from './registry';
105
+ export { englishProfile } from './generators/language-profiles';
106
+ export { turkishProfile } from './generators/language-profiles';
107
+
108
+ // =============================================================================
109
+ // Parsing
110
+ // =============================================================================
111
+
112
+ export { parse, canParse } from './parser';
113
+ export { parseAny, parseExplicit, isExplicitSyntax } from './explicit';
114
+
115
+ // =============================================================================
116
+ // Rendering
117
+ // =============================================================================
118
+
119
+ export { render, renderExplicit, toExplicit, fromExplicit } from './explicit';
120
+
121
+ // =============================================================================
122
+ // AST Builder
123
+ // =============================================================================
124
+
125
+ export { buildAST, ASTBuilder, getCommandMapper, registerCommandMapper } from './ast-builder';
126
+
127
+ // =============================================================================
128
+ // Semantic Analyzer (for core parser integration)
129
+ // =============================================================================
130
+
131
+ export {
132
+ createSemanticAnalyzer,
133
+ SemanticAnalyzerImpl,
134
+ shouldUseSemanticResult,
135
+ DEFAULT_CONFIDENCE_THRESHOLD,
136
+ HIGH_CONFIDENCE_THRESHOLD,
137
+ } from './core-bridge';
138
+
139
+ export type { SemanticAnalyzer, SemanticAnalysisResult } from './core-bridge';
140
+
141
+ // =============================================================================
142
+ // Type Helpers
143
+ // =============================================================================
144
+
145
+ export {
146
+ createSelector,
147
+ createLiteral,
148
+ createReference,
149
+ createPropertyPath,
150
+ createCommandNode,
151
+ createEventHandler,
152
+ } from './types';
153
+
154
+ // =============================================================================
155
+ // Types
156
+ // =============================================================================
157
+
158
+ export type {
159
+ ActionType,
160
+ SemanticRole,
161
+ SemanticValue,
162
+ SemanticNode,
163
+ LanguageToken,
164
+ TokenStream,
165
+ } from './types';
@@ -0,0 +1,157 @@
1
+ /**
2
+ * English-Only Browser Bundle Entry Point
3
+ *
4
+ * A minimal bundle supporting only English.
5
+ * Uses the registry-based architecture for the smallest possible bundle.
6
+ *
7
+ * @example
8
+ * ```html
9
+ * <script src="hyperfixi-semantic.en.global.js"></script>
10
+ * <script>
11
+ * // Parse English hyperscript
12
+ * const ast = LokaScriptSemanticEn.parse('toggle .active on #button', 'en');
13
+ * </script>
14
+ * ```
15
+ */
16
+
17
+ // =============================================================================
18
+ // Register Only English
19
+ // =============================================================================
20
+
21
+ // Import to register only English
22
+ import './languages/en';
23
+
24
+ // =============================================================================
25
+ // Version
26
+ // =============================================================================
27
+
28
+ export const VERSION = '1.0.0-en';
29
+
30
+ // =============================================================================
31
+ // Supported Languages
32
+ // =============================================================================
33
+
34
+ /**
35
+ * Get all supported languages in this bundle.
36
+ */
37
+ export function getSupportedLanguages(): string[] {
38
+ return ['en'];
39
+ }
40
+
41
+ // =============================================================================
42
+ // Tokenizers (from registry)
43
+ // =============================================================================
44
+
45
+ export { getTokenizer, isLanguageSupported } from './registry';
46
+
47
+ import type { LanguageToken } from './types';
48
+ import { tokenize as tokenizeInternal } from './tokenizers';
49
+
50
+ /**
51
+ * Tokenize input and return array of tokens (browser-friendly wrapper).
52
+ */
53
+ export function tokenize(input: string, language: string): LanguageToken[] {
54
+ if (language !== 'en') {
55
+ throw new Error(`Language not supported in this bundle: ${language}. Supported: en`);
56
+ }
57
+ const stream = tokenizeInternal(input, language);
58
+ return [...stream.tokens];
59
+ }
60
+
61
+ // Re-export English tokenizer
62
+ export { englishTokenizer } from './tokenizers/english';
63
+
64
+ // =============================================================================
65
+ // Patterns (from registry - lazy generation)
66
+ // =============================================================================
67
+
68
+ import { getPatternsForLanguage as getPatternsFromRegistry } from './registry';
69
+ import type { LanguagePattern, ActionType } from './types';
70
+
71
+ /**
72
+ * Get all patterns for English.
73
+ */
74
+ export function getPatternsForLanguage(language: string): LanguagePattern[] {
75
+ if (language !== 'en') {
76
+ throw new Error(`Language not supported in this bundle: ${language}. Supported: en`);
77
+ }
78
+ return getPatternsFromRegistry(language);
79
+ }
80
+
81
+ /**
82
+ * Get patterns for English and a specific command.
83
+ */
84
+ export function getPatternsForLanguageAndCommand(
85
+ language: string,
86
+ command: ActionType
87
+ ): LanguagePattern[] {
88
+ return getPatternsForLanguage(language)
89
+ .filter(p => p.command === command)
90
+ .sort((a, b) => b.priority - a.priority);
91
+ }
92
+
93
+ // =============================================================================
94
+ // Language Profile (from registry)
95
+ // =============================================================================
96
+
97
+ export { getProfile, tryGetProfile } from './registry';
98
+ export { englishProfile } from './generators/profiles/english';
99
+
100
+ // =============================================================================
101
+ // Parsing
102
+ // =============================================================================
103
+
104
+ export { parse, canParse } from './parser';
105
+ export { parseAny, parseExplicit, isExplicitSyntax } from './explicit';
106
+
107
+ // =============================================================================
108
+ // Rendering
109
+ // =============================================================================
110
+
111
+ export { render, renderExplicit, toExplicit, fromExplicit } from './explicit';
112
+
113
+ // =============================================================================
114
+ // AST Builder
115
+ // =============================================================================
116
+
117
+ export { buildAST, ASTBuilder, getCommandMapper, registerCommandMapper } from './ast-builder';
118
+
119
+ // =============================================================================
120
+ // Semantic Analyzer (for core parser integration)
121
+ // =============================================================================
122
+
123
+ export {
124
+ createSemanticAnalyzer,
125
+ SemanticAnalyzerImpl,
126
+ shouldUseSemanticResult,
127
+ DEFAULT_CONFIDENCE_THRESHOLD,
128
+ HIGH_CONFIDENCE_THRESHOLD,
129
+ } from './core-bridge';
130
+
131
+ export type { SemanticAnalyzer, SemanticAnalysisResult } from './core-bridge';
132
+
133
+ // =============================================================================
134
+ // Type Helpers
135
+ // =============================================================================
136
+
137
+ export {
138
+ createSelector,
139
+ createLiteral,
140
+ createReference,
141
+ createPropertyPath,
142
+ createCommandNode,
143
+ createEventHandler,
144
+ } from './types';
145
+
146
+ // =============================================================================
147
+ // Types
148
+ // =============================================================================
149
+
150
+ export type {
151
+ ActionType,
152
+ SemanticRole,
153
+ SemanticValue,
154
+ SemanticNode,
155
+ LanguageToken,
156
+ TokenStream,
157
+ } from './types';