@lokascript/semantic 1.2.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (964) hide show
  1. package/dist/__test-utils__/index.d.ts +6 -0
  2. package/dist/__test-utils__/index.d.ts.map +1 -0
  3. package/dist/__test-utils__/test-helpers.d.ts +7 -0
  4. package/dist/__test-utils__/test-helpers.d.ts.map +1 -0
  5. package/dist/__types__/test-helpers.d.ts +67 -0
  6. package/dist/__types__/test-helpers.d.ts.map +1 -0
  7. package/dist/analysis/index.d.ts +106 -0
  8. package/dist/analysis/index.d.ts.map +1 -0
  9. package/dist/ast-builder/command-mappers.d.ts +50 -0
  10. package/dist/ast-builder/command-mappers.d.ts.map +1 -0
  11. package/dist/ast-builder/expression-parser/index.d.ts +14 -0
  12. package/dist/ast-builder/expression-parser/index.d.ts.map +1 -0
  13. package/dist/ast-builder/expression-parser/parser.d.ts +50 -0
  14. package/dist/ast-builder/expression-parser/parser.d.ts.map +1 -0
  15. package/dist/ast-builder/expression-parser/tokenizer.d.ts +44 -0
  16. package/dist/ast-builder/expression-parser/tokenizer.d.ts.map +1 -0
  17. package/dist/ast-builder/expression-parser/types.d.ts +111 -0
  18. package/dist/ast-builder/expression-parser/types.d.ts.map +1 -0
  19. package/dist/ast-builder/index.d.ts +183 -0
  20. package/dist/ast-builder/index.d.ts.map +1 -0
  21. package/dist/ast-builder/value-converters.d.ts +51 -0
  22. package/dist/ast-builder/value-converters.d.ts.map +1 -0
  23. package/dist/browser-ar.ar.global.js +2 -2
  24. package/dist/browser-ar.d.ts +47 -0
  25. package/dist/browser-ar.d.ts.map +1 -0
  26. package/dist/browser-bn.bn.global.js +2 -0
  27. package/dist/browser-bn.d.ts +47 -0
  28. package/dist/browser-bn.d.ts.map +1 -0
  29. package/dist/browser-core.core.global.js +2 -2
  30. package/dist/browser-core.d.ts +83 -0
  31. package/dist/browser-core.d.ts.map +1 -0
  32. package/dist/browser-de.d.ts +47 -0
  33. package/dist/browser-de.d.ts.map +1 -0
  34. package/dist/browser-de.de.global.js +2 -2
  35. package/dist/browser-east-asian.d.ts +59 -0
  36. package/dist/browser-east-asian.d.ts.map +1 -0
  37. package/dist/browser-east-asian.east-asian.global.js +2 -2
  38. package/dist/browser-en-tr.d.ts +50 -0
  39. package/dist/browser-en-tr.d.ts.map +1 -0
  40. package/dist/browser-en-tr.en-tr.global.js +2 -2
  41. package/dist/browser-en.d.ts +48 -0
  42. package/dist/browser-en.d.ts.map +1 -0
  43. package/dist/browser-en.en.global.js +2 -2
  44. package/dist/browser-es-en.d.ts +62 -0
  45. package/dist/browser-es-en.d.ts.map +1 -0
  46. package/dist/browser-es-en.es-en.global.js +2 -2
  47. package/dist/browser-es.d.ts +51 -0
  48. package/dist/browser-es.d.ts.map +1 -0
  49. package/dist/browser-es.es.global.js +2 -2
  50. package/dist/browser-fr.d.ts +47 -0
  51. package/dist/browser-fr.d.ts.map +1 -0
  52. package/dist/browser-fr.fr.global.js +2 -2
  53. package/dist/browser-hi.d.ts +47 -0
  54. package/dist/browser-hi.d.ts.map +1 -0
  55. package/dist/browser-hi.hi.global.js +2 -0
  56. package/dist/browser-id.d.ts +47 -0
  57. package/dist/browser-id.d.ts.map +1 -0
  58. package/dist/browser-id.id.global.js +2 -2
  59. package/dist/browser-it.d.ts +47 -0
  60. package/dist/browser-it.d.ts.map +1 -0
  61. package/dist/browser-it.it.global.js +2 -0
  62. package/dist/browser-ja.d.ts +47 -0
  63. package/dist/browser-ja.d.ts.map +1 -0
  64. package/dist/browser-ja.ja.global.js +2 -2
  65. package/dist/browser-ko.d.ts +47 -0
  66. package/dist/browser-ko.d.ts.map +1 -0
  67. package/dist/browser-ko.ko.global.js +2 -2
  68. package/dist/browser-lazy.d.ts +52 -0
  69. package/dist/browser-lazy.d.ts.map +1 -0
  70. package/dist/browser-lazy.lazy.global.js +2 -2
  71. package/dist/browser-ms.d.ts +47 -0
  72. package/dist/browser-ms.d.ts.map +1 -0
  73. package/dist/browser-ms.ms.global.js +2 -0
  74. package/dist/browser-pl.d.ts +47 -0
  75. package/dist/browser-pl.d.ts.map +1 -0
  76. package/dist/browser-pl.pl.global.js +2 -0
  77. package/dist/browser-priority.d.ts +83 -0
  78. package/dist/browser-priority.d.ts.map +1 -0
  79. package/dist/browser-priority.priority.global.js +2 -2
  80. package/dist/browser-pt.d.ts +47 -0
  81. package/dist/browser-pt.d.ts.map +1 -0
  82. package/dist/browser-pt.pt.global.js +2 -2
  83. package/dist/browser-qu.d.ts +47 -0
  84. package/dist/browser-qu.d.ts.map +1 -0
  85. package/dist/browser-qu.qu.global.js +2 -2
  86. package/dist/browser-ru.d.ts +47 -0
  87. package/dist/browser-ru.d.ts.map +1 -0
  88. package/dist/browser-ru.ru.global.js +2 -0
  89. package/dist/browser-sw.d.ts +47 -0
  90. package/dist/browser-sw.d.ts.map +1 -0
  91. package/dist/browser-sw.sw.global.js +2 -2
  92. package/dist/browser-th.d.ts +47 -0
  93. package/dist/browser-th.d.ts.map +1 -0
  94. package/dist/browser-th.th.global.js +2 -0
  95. package/dist/browser-tl.d.ts +47 -0
  96. package/dist/browser-tl.d.ts.map +1 -0
  97. package/dist/browser-tl.tl.global.js +2 -0
  98. package/dist/browser-tr.d.ts +47 -0
  99. package/dist/browser-tr.d.ts.map +1 -0
  100. package/dist/browser-tr.tr.global.js +2 -2
  101. package/dist/browser-uk.d.ts +47 -0
  102. package/dist/browser-uk.d.ts.map +1 -0
  103. package/dist/browser-uk.uk.global.js +2 -0
  104. package/dist/browser-vi.d.ts +47 -0
  105. package/dist/browser-vi.d.ts.map +1 -0
  106. package/dist/browser-vi.vi.global.js +2 -0
  107. package/dist/browser-western.d.ts +67 -0
  108. package/dist/browser-western.d.ts.map +1 -0
  109. package/dist/browser-western.western.global.js +2 -2
  110. package/dist/browser-zh.d.ts +47 -0
  111. package/dist/browser-zh.d.ts.map +1 -0
  112. package/dist/browser-zh.zh.global.js +2 -2
  113. package/dist/browser.d.ts +69 -0
  114. package/dist/browser.d.ts.map +1 -0
  115. package/dist/browser.global.js +2 -2
  116. package/dist/browser.global.js.map +1 -1
  117. package/dist/cache/index.d.ts +7 -0
  118. package/dist/cache/index.d.ts.map +1 -0
  119. package/dist/cache/semantic-cache.d.ts +138 -0
  120. package/dist/cache/semantic-cache.d.ts.map +1 -0
  121. package/dist/core-bridge.d.ts +154 -0
  122. package/dist/core-bridge.d.ts.map +1 -0
  123. package/dist/core.d.ts +24 -1235
  124. package/dist/core.d.ts.map +1 -0
  125. package/dist/core.js +6433 -1731
  126. package/dist/core.js.map +1 -1
  127. package/dist/explicit/converter.d.ts +98 -0
  128. package/dist/explicit/converter.d.ts.map +1 -0
  129. package/dist/explicit/index.d.ts +10 -0
  130. package/dist/explicit/index.d.ts.map +1 -0
  131. package/dist/explicit/parser.d.ts +25 -0
  132. package/dist/explicit/parser.d.ts.map +1 -0
  133. package/dist/explicit/renderer.d.ts +82 -0
  134. package/dist/explicit/renderer.d.ts.map +1 -0
  135. package/dist/generators/command-schemas.d.ts +358 -0
  136. package/dist/generators/command-schemas.d.ts.map +1 -0
  137. package/dist/generators/event-handlers-sov.d.ts +91 -0
  138. package/dist/generators/event-handlers-sov.d.ts.map +1 -0
  139. package/dist/generators/event-handlers-vso.d.ts +69 -0
  140. package/dist/generators/event-handlers-vso.d.ts.map +1 -0
  141. package/dist/generators/index.d.ts +12 -0
  142. package/dist/generators/index.d.ts.map +1 -0
  143. package/dist/generators/language-profiles.d.ts +65 -0
  144. package/dist/generators/language-profiles.d.ts.map +1 -0
  145. package/dist/generators/pattern-generator.d.ts +81 -0
  146. package/dist/generators/pattern-generator.d.ts.map +1 -0
  147. package/dist/generators/profiles/arabic.d.ts +9 -0
  148. package/dist/generators/profiles/arabic.d.ts.map +1 -0
  149. package/dist/generators/profiles/bengali.d.ts +9 -0
  150. package/dist/generators/profiles/bengali.d.ts.map +1 -0
  151. package/dist/generators/profiles/chinese.d.ts +9 -0
  152. package/dist/generators/profiles/chinese.d.ts.map +1 -0
  153. package/dist/generators/profiles/english.d.ts +8 -0
  154. package/dist/generators/profiles/english.d.ts.map +1 -0
  155. package/dist/generators/profiles/french.d.ts +9 -0
  156. package/dist/generators/profiles/french.d.ts.map +1 -0
  157. package/dist/generators/profiles/german.d.ts +9 -0
  158. package/dist/generators/profiles/german.d.ts.map +1 -0
  159. package/dist/generators/profiles/hebrew.d.ts +10 -0
  160. package/dist/generators/profiles/hebrew.d.ts.map +1 -0
  161. package/dist/generators/profiles/hindi.d.ts +9 -0
  162. package/dist/generators/profiles/hindi.d.ts.map +1 -0
  163. package/dist/generators/profiles/index.d.ts +36 -0
  164. package/dist/generators/profiles/index.d.ts.map +1 -0
  165. package/dist/generators/profiles/indonesian.d.ts +9 -0
  166. package/dist/generators/profiles/indonesian.d.ts.map +1 -0
  167. package/dist/generators/profiles/italian.d.ts +10 -0
  168. package/dist/generators/profiles/italian.d.ts.map +1 -0
  169. package/dist/generators/profiles/japanese.d.ts +9 -0
  170. package/dist/generators/profiles/japanese.d.ts.map +1 -0
  171. package/dist/generators/profiles/korean.d.ts +9 -0
  172. package/dist/generators/profiles/korean.d.ts.map +1 -0
  173. package/dist/generators/profiles/marker-templates.d.ts +119 -0
  174. package/dist/generators/profiles/marker-templates.d.ts.map +1 -0
  175. package/dist/generators/profiles/ms.d.ts +8 -0
  176. package/dist/generators/profiles/ms.d.ts.map +1 -0
  177. package/dist/generators/profiles/polish.d.ts +10 -0
  178. package/dist/generators/profiles/polish.d.ts.map +1 -0
  179. package/dist/generators/profiles/portuguese.d.ts +9 -0
  180. package/dist/generators/profiles/portuguese.d.ts.map +1 -0
  181. package/dist/generators/profiles/quechua.d.ts +9 -0
  182. package/dist/generators/profiles/quechua.d.ts.map +1 -0
  183. package/dist/generators/profiles/russian.d.ts +10 -0
  184. package/dist/generators/profiles/russian.d.ts.map +1 -0
  185. package/dist/generators/profiles/spanish.d.ts +9 -0
  186. package/dist/generators/profiles/spanish.d.ts.map +1 -0
  187. package/dist/generators/profiles/spanishMexico.d.ts +19 -0
  188. package/dist/generators/profiles/spanishMexico.d.ts.map +1 -0
  189. package/dist/generators/profiles/swahili.d.ts +9 -0
  190. package/dist/generators/profiles/swahili.d.ts.map +1 -0
  191. package/dist/generators/profiles/thai.d.ts +9 -0
  192. package/dist/generators/profiles/thai.d.ts.map +1 -0
  193. package/dist/generators/profiles/tl.d.ts +8 -0
  194. package/dist/generators/profiles/tl.d.ts.map +1 -0
  195. package/dist/generators/profiles/turkish.d.ts +9 -0
  196. package/dist/generators/profiles/turkish.d.ts.map +1 -0
  197. package/dist/generators/profiles/types.d.ts +170 -0
  198. package/dist/generators/profiles/types.d.ts.map +1 -0
  199. package/dist/generators/profiles/ukrainian.d.ts +10 -0
  200. package/dist/generators/profiles/ukrainian.d.ts.map +1 -0
  201. package/dist/generators/profiles/vietnamese.d.ts +10 -0
  202. package/dist/generators/profiles/vietnamese.d.ts.map +1 -0
  203. package/dist/generators/schema-error-codes.d.ts +60 -0
  204. package/dist/generators/schema-error-codes.d.ts.map +1 -0
  205. package/dist/generators/schema-validator.d.ts +77 -0
  206. package/dist/generators/schema-validator.d.ts.map +1 -0
  207. package/dist/index.cjs +5451 -2522
  208. package/dist/index.cjs.map +1 -1
  209. package/dist/index.d.ts +50 -3436
  210. package/dist/index.d.ts.map +1 -0
  211. package/dist/index.js +5448 -2526
  212. package/dist/index.js.map +1 -1
  213. package/dist/interchange/from-semantic.d.ts +23 -0
  214. package/dist/interchange/from-semantic.d.ts.map +1 -0
  215. package/dist/interchange/index.d.ts +7 -0
  216. package/dist/interchange/index.d.ts.map +1 -0
  217. package/dist/interchange/types.d.ts +132 -0
  218. package/dist/interchange/types.d.ts.map +1 -0
  219. package/dist/language-building-schema.d.ts +163 -0
  220. package/dist/language-building-schema.d.ts.map +1 -0
  221. package/dist/language-loader.d.ts +126 -0
  222. package/dist/language-loader.d.ts.map +1 -0
  223. package/dist/languages/_all.d.ts +66 -0
  224. package/dist/languages/_all.d.ts.map +1 -0
  225. package/dist/languages/ar.d.ts +6 -75
  226. package/dist/languages/ar.d.ts.map +1 -0
  227. package/dist/languages/ar.js +65 -14
  228. package/dist/languages/ar.js.map +1 -1
  229. package/dist/languages/bn.d.ts +10 -0
  230. package/dist/languages/bn.d.ts.map +1 -0
  231. package/dist/languages/bn.js +1163 -0
  232. package/dist/languages/bn.js.map +1 -0
  233. package/dist/languages/de.d.ts +6 -35
  234. package/dist/languages/de.d.ts.map +1 -0
  235. package/dist/languages/de.js +260 -22
  236. package/dist/languages/de.js.map +1 -1
  237. package/dist/languages/en.d.ts +13 -40
  238. package/dist/languages/en.d.ts.map +1 -0
  239. package/dist/languages/en.js +788 -241
  240. package/dist/languages/en.js.map +1 -1
  241. package/dist/languages/es-MX.d.ts +24 -0
  242. package/dist/languages/es-MX.d.ts.map +1 -0
  243. package/dist/languages/es-MX.js +1729 -0
  244. package/dist/languages/es-MX.js.map +1 -0
  245. package/dist/languages/es.d.ts +6 -49
  246. package/dist/languages/es.d.ts.map +1 -0
  247. package/dist/languages/es.js +60 -13
  248. package/dist/languages/es.js.map +1 -1
  249. package/dist/languages/fr.d.ts +6 -34
  250. package/dist/languages/fr.d.ts.map +1 -0
  251. package/dist/languages/fr.js +309 -22
  252. package/dist/languages/fr.js.map +1 -1
  253. package/dist/languages/he.d.ts +9 -0
  254. package/dist/languages/he.d.ts.map +1 -0
  255. package/dist/languages/he.js +1378 -0
  256. package/dist/languages/he.js.map +1 -0
  257. package/dist/languages/hi.d.ts +18 -0
  258. package/dist/languages/hi.d.ts.map +1 -0
  259. package/dist/languages/hi.js +1209 -0
  260. package/dist/languages/hi.js.map +1 -0
  261. package/dist/languages/id.d.ts +6 -32
  262. package/dist/languages/id.d.ts.map +1 -0
  263. package/dist/languages/id.js +60 -13
  264. package/dist/languages/id.js.map +1 -1
  265. package/dist/languages/index.d.ts +18 -0
  266. package/dist/languages/index.d.ts.map +1 -0
  267. package/dist/languages/it.d.ts +9 -0
  268. package/dist/languages/it.d.ts.map +1 -0
  269. package/dist/languages/it.js +1647 -0
  270. package/dist/languages/it.js.map +1 -0
  271. package/dist/languages/ja.d.ts +6 -50
  272. package/dist/languages/ja.d.ts.map +1 -0
  273. package/dist/languages/ja.js +60 -13
  274. package/dist/languages/ja.js.map +1 -1
  275. package/dist/languages/ko.d.ts +6 -55
  276. package/dist/languages/ko.d.ts.map +1 -0
  277. package/dist/languages/ko.js +64 -13
  278. package/dist/languages/ko.js.map +1 -1
  279. package/dist/languages/ms.d.ts +10 -0
  280. package/dist/languages/ms.d.ts.map +1 -0
  281. package/dist/languages/ms.js +1088 -0
  282. package/dist/languages/ms.js.map +1 -0
  283. package/dist/languages/pl.d.ts +12 -0
  284. package/dist/languages/pl.d.ts.map +1 -0
  285. package/dist/languages/pl.js +1586 -0
  286. package/dist/languages/pl.js.map +1 -0
  287. package/dist/languages/pt.d.ts +6 -34
  288. package/dist/languages/pt.d.ts.map +1 -0
  289. package/dist/languages/pt.js +344 -22
  290. package/dist/languages/pt.js.map +1 -1
  291. package/dist/languages/qu.d.ts +6 -44
  292. package/dist/languages/qu.d.ts.map +1 -0
  293. package/dist/languages/qu.js +105 -28
  294. package/dist/languages/qu.js.map +1 -1
  295. package/dist/languages/ru.d.ts +18 -0
  296. package/dist/languages/ru.d.ts.map +1 -0
  297. package/dist/languages/ru.js +1705 -0
  298. package/dist/languages/ru.js.map +1 -0
  299. package/dist/languages/sw.d.ts +6 -32
  300. package/dist/languages/sw.d.ts.map +1 -0
  301. package/dist/languages/sw.js +69 -17
  302. package/dist/languages/sw.js.map +1 -1
  303. package/dist/languages/th.d.ts +10 -0
  304. package/dist/languages/th.d.ts.map +1 -0
  305. package/dist/languages/th.js +1123 -0
  306. package/dist/languages/th.js.map +1 -0
  307. package/dist/languages/tl.d.ts +10 -0
  308. package/dist/languages/tl.d.ts.map +1 -0
  309. package/dist/languages/tl.js +1086 -0
  310. package/dist/languages/tl.js.map +1 -0
  311. package/dist/languages/tr.d.ts +6 -50
  312. package/dist/languages/tr.d.ts.map +1 -0
  313. package/dist/languages/tr.js +67 -16
  314. package/dist/languages/tr.js.map +1 -1
  315. package/dist/languages/uk.d.ts +18 -0
  316. package/dist/languages/uk.d.ts.map +1 -0
  317. package/dist/languages/uk.js +1691 -0
  318. package/dist/languages/uk.js.map +1 -0
  319. package/dist/languages/vi.d.ts +10 -0
  320. package/dist/languages/vi.d.ts.map +1 -0
  321. package/dist/languages/vi.js +1266 -0
  322. package/dist/languages/vi.js.map +1 -0
  323. package/dist/languages/zh.d.ts +6 -55
  324. package/dist/languages/zh.d.ts.map +1 -0
  325. package/dist/languages/zh.js +59 -13
  326. package/dist/languages/zh.js.map +1 -1
  327. package/dist/parser/index.d.ts +8 -0
  328. package/dist/parser/index.d.ts.map +1 -0
  329. package/dist/parser/pattern-matcher.d.ts +188 -0
  330. package/dist/parser/pattern-matcher.d.ts.map +1 -0
  331. package/dist/parser/semantic-parser.d.ts +238 -0
  332. package/dist/parser/semantic-parser.d.ts.map +1 -0
  333. package/dist/parser/utils/index.d.ts +9 -0
  334. package/dist/parser/utils/index.d.ts.map +1 -0
  335. package/dist/parser/utils/marker-resolution.d.ts +57 -0
  336. package/dist/parser/utils/marker-resolution.d.ts.map +1 -0
  337. package/dist/parser/utils/possessive-keywords.d.ts +31 -0
  338. package/dist/parser/utils/possessive-keywords.d.ts.map +1 -0
  339. package/dist/parser/utils/role-positioning.d.ts +42 -0
  340. package/dist/parser/utils/role-positioning.d.ts.map +1 -0
  341. package/dist/parser/utils/type-validation.d.ts +63 -0
  342. package/dist/parser/utils/type-validation.d.ts.map +1 -0
  343. package/dist/patterns/add/ar.d.ts +12 -0
  344. package/dist/patterns/add/ar.d.ts.map +1 -0
  345. package/dist/patterns/add/bn.d.ts +8 -0
  346. package/dist/patterns/add/bn.d.ts.map +1 -0
  347. package/dist/patterns/add/hi.d.ts +8 -0
  348. package/dist/patterns/add/hi.d.ts.map +1 -0
  349. package/dist/patterns/add/index.d.ts +31 -0
  350. package/dist/patterns/add/index.d.ts.map +1 -0
  351. package/dist/patterns/add/it.d.ts +11 -0
  352. package/dist/patterns/add/it.d.ts.map +1 -0
  353. package/dist/patterns/add/ja.d.ts +12 -0
  354. package/dist/patterns/add/ja.d.ts.map +1 -0
  355. package/dist/patterns/add/ko.d.ts +12 -0
  356. package/dist/patterns/add/ko.d.ts.map +1 -0
  357. package/dist/patterns/add/pl.d.ts +12 -0
  358. package/dist/patterns/add/pl.d.ts.map +1 -0
  359. package/dist/patterns/add/qu.d.ts +9 -0
  360. package/dist/patterns/add/qu.d.ts.map +1 -0
  361. package/dist/patterns/add/ru.d.ts +12 -0
  362. package/dist/patterns/add/ru.d.ts.map +1 -0
  363. package/dist/patterns/add/th.d.ts +8 -0
  364. package/dist/patterns/add/th.d.ts.map +1 -0
  365. package/dist/patterns/add/tr.d.ts +12 -0
  366. package/dist/patterns/add/tr.d.ts.map +1 -0
  367. package/dist/patterns/add/uk.d.ts +12 -0
  368. package/dist/patterns/add/uk.d.ts.map +1 -0
  369. package/dist/patterns/add/vi.d.ts +11 -0
  370. package/dist/patterns/add/vi.d.ts.map +1 -0
  371. package/dist/patterns/add/zh.d.ts +12 -0
  372. package/dist/patterns/add/zh.d.ts.map +1 -0
  373. package/dist/patterns/builders.d.ts +52 -0
  374. package/dist/patterns/builders.d.ts.map +1 -0
  375. package/dist/patterns/decrement/bn.d.ts +8 -0
  376. package/dist/patterns/decrement/bn.d.ts.map +1 -0
  377. package/dist/patterns/decrement/de.d.ts +12 -0
  378. package/dist/patterns/decrement/de.d.ts.map +1 -0
  379. package/dist/patterns/decrement/hi.d.ts +8 -0
  380. package/dist/patterns/decrement/hi.d.ts.map +1 -0
  381. package/dist/patterns/decrement/index.d.ts +28 -0
  382. package/dist/patterns/decrement/index.d.ts.map +1 -0
  383. package/dist/patterns/decrement/it.d.ts +11 -0
  384. package/dist/patterns/decrement/it.d.ts.map +1 -0
  385. package/dist/patterns/decrement/pl.d.ts +12 -0
  386. package/dist/patterns/decrement/pl.d.ts.map +1 -0
  387. package/dist/patterns/decrement/ru.d.ts +12 -0
  388. package/dist/patterns/decrement/ru.d.ts.map +1 -0
  389. package/dist/patterns/decrement/th.d.ts +8 -0
  390. package/dist/patterns/decrement/th.d.ts.map +1 -0
  391. package/dist/patterns/decrement/tr.d.ts +12 -0
  392. package/dist/patterns/decrement/tr.d.ts.map +1 -0
  393. package/dist/patterns/decrement/uk.d.ts +12 -0
  394. package/dist/patterns/decrement/uk.d.ts.map +1 -0
  395. package/dist/patterns/decrement/vi.d.ts +11 -0
  396. package/dist/patterns/decrement/vi.d.ts.map +1 -0
  397. package/dist/patterns/decrement/zh.d.ts +12 -0
  398. package/dist/patterns/decrement/zh.d.ts.map +1 -0
  399. package/dist/patterns/en.d.ts +13 -0
  400. package/dist/patterns/en.d.ts.map +1 -0
  401. package/dist/patterns/event-handler/ar.d.ts +12 -0
  402. package/dist/patterns/event-handler/ar.d.ts.map +1 -0
  403. package/dist/patterns/event-handler/bn.d.ts +8 -0
  404. package/dist/patterns/event-handler/bn.d.ts.map +1 -0
  405. package/dist/patterns/event-handler/de.d.ts +11 -0
  406. package/dist/patterns/event-handler/de.d.ts.map +1 -0
  407. package/dist/patterns/event-handler/en.d.ts +11 -0
  408. package/dist/patterns/event-handler/en.d.ts.map +1 -0
  409. package/dist/patterns/event-handler/es.d.ts +11 -0
  410. package/dist/patterns/event-handler/es.d.ts.map +1 -0
  411. package/dist/patterns/event-handler/fr.d.ts +11 -0
  412. package/dist/patterns/event-handler/fr.d.ts.map +1 -0
  413. package/dist/patterns/event-handler/he.d.ts +12 -0
  414. package/dist/patterns/event-handler/he.d.ts.map +1 -0
  415. package/dist/patterns/event-handler/hi.d.ts +9 -0
  416. package/dist/patterns/event-handler/hi.d.ts.map +1 -0
  417. package/dist/patterns/event-handler/id.d.ts +11 -0
  418. package/dist/patterns/event-handler/id.d.ts.map +1 -0
  419. package/dist/patterns/event-handler/index.d.ts +41 -0
  420. package/dist/patterns/event-handler/index.d.ts.map +1 -0
  421. package/dist/patterns/event-handler/it.d.ts +11 -0
  422. package/dist/patterns/event-handler/it.d.ts.map +1 -0
  423. package/dist/patterns/event-handler/ja.d.ts +12 -0
  424. package/dist/patterns/event-handler/ja.d.ts.map +1 -0
  425. package/dist/patterns/event-handler/ko.d.ts +12 -0
  426. package/dist/patterns/event-handler/ko.d.ts.map +1 -0
  427. package/dist/patterns/event-handler/ms.d.ts +14 -0
  428. package/dist/patterns/event-handler/ms.d.ts.map +1 -0
  429. package/dist/patterns/event-handler/pl.d.ts +12 -0
  430. package/dist/patterns/event-handler/pl.d.ts.map +1 -0
  431. package/dist/patterns/event-handler/pt.d.ts +11 -0
  432. package/dist/patterns/event-handler/pt.d.ts.map +1 -0
  433. package/dist/patterns/event-handler/qu.d.ts +11 -0
  434. package/dist/patterns/event-handler/qu.d.ts.map +1 -0
  435. package/dist/patterns/event-handler/ru.d.ts +12 -0
  436. package/dist/patterns/event-handler/ru.d.ts.map +1 -0
  437. package/dist/patterns/event-handler/shared.d.ts +15 -0
  438. package/dist/patterns/event-handler/shared.d.ts.map +1 -0
  439. package/dist/patterns/event-handler/sw.d.ts +11 -0
  440. package/dist/patterns/event-handler/sw.d.ts.map +1 -0
  441. package/dist/patterns/event-handler/th.d.ts +8 -0
  442. package/dist/patterns/event-handler/th.d.ts.map +1 -0
  443. package/dist/patterns/event-handler/tl.d.ts +9 -0
  444. package/dist/patterns/event-handler/tl.d.ts.map +1 -0
  445. package/dist/patterns/event-handler/tr.d.ts +12 -0
  446. package/dist/patterns/event-handler/tr.d.ts.map +1 -0
  447. package/dist/patterns/event-handler/uk.d.ts +12 -0
  448. package/dist/patterns/event-handler/uk.d.ts.map +1 -0
  449. package/dist/patterns/event-handler/vi.d.ts +11 -0
  450. package/dist/patterns/event-handler/vi.d.ts.map +1 -0
  451. package/dist/patterns/event-handler/zh.d.ts +11 -0
  452. package/dist/patterns/event-handler/zh.d.ts.map +1 -0
  453. package/dist/patterns/get/ar.d.ts +12 -0
  454. package/dist/patterns/get/ar.d.ts.map +1 -0
  455. package/dist/patterns/get/bn.d.ts +8 -0
  456. package/dist/patterns/get/bn.d.ts.map +1 -0
  457. package/dist/patterns/get/de.d.ts +12 -0
  458. package/dist/patterns/get/de.d.ts.map +1 -0
  459. package/dist/patterns/get/hi.d.ts +8 -0
  460. package/dist/patterns/get/hi.d.ts.map +1 -0
  461. package/dist/patterns/get/index.d.ts +29 -0
  462. package/dist/patterns/get/index.d.ts.map +1 -0
  463. package/dist/patterns/get/it.d.ts +11 -0
  464. package/dist/patterns/get/it.d.ts.map +1 -0
  465. package/dist/patterns/get/ja.d.ts +12 -0
  466. package/dist/patterns/get/ja.d.ts.map +1 -0
  467. package/dist/patterns/get/ko.d.ts +12 -0
  468. package/dist/patterns/get/ko.d.ts.map +1 -0
  469. package/dist/patterns/get/pl.d.ts +12 -0
  470. package/dist/patterns/get/pl.d.ts.map +1 -0
  471. package/dist/patterns/get/ru.d.ts +12 -0
  472. package/dist/patterns/get/ru.d.ts.map +1 -0
  473. package/dist/patterns/get/th.d.ts +8 -0
  474. package/dist/patterns/get/th.d.ts.map +1 -0
  475. package/dist/patterns/get/uk.d.ts +12 -0
  476. package/dist/patterns/get/uk.d.ts.map +1 -0
  477. package/dist/patterns/get/vi.d.ts +11 -0
  478. package/dist/patterns/get/vi.d.ts.map +1 -0
  479. package/dist/patterns/grammar-transformed/index.d.ts +20 -0
  480. package/dist/patterns/grammar-transformed/index.d.ts.map +1 -0
  481. package/dist/patterns/grammar-transformed/ja.d.ts +12 -0
  482. package/dist/patterns/grammar-transformed/ja.d.ts.map +1 -0
  483. package/dist/patterns/grammar-transformed/ko.d.ts +12 -0
  484. package/dist/patterns/grammar-transformed/ko.d.ts.map +1 -0
  485. package/dist/patterns/grammar-transformed/tr.d.ts +12 -0
  486. package/dist/patterns/grammar-transformed/tr.d.ts.map +1 -0
  487. package/dist/patterns/hide/ar.d.ts +12 -0
  488. package/dist/patterns/hide/ar.d.ts.map +1 -0
  489. package/dist/patterns/hide/bn.d.ts +8 -0
  490. package/dist/patterns/hide/bn.d.ts.map +1 -0
  491. package/dist/patterns/hide/de.d.ts +12 -0
  492. package/dist/patterns/hide/de.d.ts.map +1 -0
  493. package/dist/patterns/hide/hi.d.ts +8 -0
  494. package/dist/patterns/hide/hi.d.ts.map +1 -0
  495. package/dist/patterns/hide/index.d.ts +31 -0
  496. package/dist/patterns/hide/index.d.ts.map +1 -0
  497. package/dist/patterns/hide/it.d.ts +11 -0
  498. package/dist/patterns/hide/it.d.ts.map +1 -0
  499. package/dist/patterns/hide/ja.d.ts +12 -0
  500. package/dist/patterns/hide/ja.d.ts.map +1 -0
  501. package/dist/patterns/hide/ko.d.ts +12 -0
  502. package/dist/patterns/hide/ko.d.ts.map +1 -0
  503. package/dist/patterns/hide/pl.d.ts +12 -0
  504. package/dist/patterns/hide/pl.d.ts.map +1 -0
  505. package/dist/patterns/hide/ru.d.ts +12 -0
  506. package/dist/patterns/hide/ru.d.ts.map +1 -0
  507. package/dist/patterns/hide/th.d.ts +8 -0
  508. package/dist/patterns/hide/th.d.ts.map +1 -0
  509. package/dist/patterns/hide/tr.d.ts +12 -0
  510. package/dist/patterns/hide/tr.d.ts.map +1 -0
  511. package/dist/patterns/hide/uk.d.ts +12 -0
  512. package/dist/patterns/hide/uk.d.ts.map +1 -0
  513. package/dist/patterns/hide/vi.d.ts +11 -0
  514. package/dist/patterns/hide/vi.d.ts.map +1 -0
  515. package/dist/patterns/hide/zh.d.ts +12 -0
  516. package/dist/patterns/hide/zh.d.ts.map +1 -0
  517. package/dist/patterns/increment/bn.d.ts +8 -0
  518. package/dist/patterns/increment/bn.d.ts.map +1 -0
  519. package/dist/patterns/increment/de.d.ts +12 -0
  520. package/dist/patterns/increment/de.d.ts.map +1 -0
  521. package/dist/patterns/increment/hi.d.ts +8 -0
  522. package/dist/patterns/increment/hi.d.ts.map +1 -0
  523. package/dist/patterns/increment/index.d.ts +28 -0
  524. package/dist/patterns/increment/index.d.ts.map +1 -0
  525. package/dist/patterns/increment/it.d.ts +11 -0
  526. package/dist/patterns/increment/it.d.ts.map +1 -0
  527. package/dist/patterns/increment/pl.d.ts +12 -0
  528. package/dist/patterns/increment/pl.d.ts.map +1 -0
  529. package/dist/patterns/increment/ru.d.ts +12 -0
  530. package/dist/patterns/increment/ru.d.ts.map +1 -0
  531. package/dist/patterns/increment/th.d.ts +8 -0
  532. package/dist/patterns/increment/th.d.ts.map +1 -0
  533. package/dist/patterns/increment/tr.d.ts +12 -0
  534. package/dist/patterns/increment/tr.d.ts.map +1 -0
  535. package/dist/patterns/increment/uk.d.ts +12 -0
  536. package/dist/patterns/increment/uk.d.ts.map +1 -0
  537. package/dist/patterns/increment/vi.d.ts +11 -0
  538. package/dist/patterns/increment/vi.d.ts.map +1 -0
  539. package/dist/patterns/increment/zh.d.ts +12 -0
  540. package/dist/patterns/increment/zh.d.ts.map +1 -0
  541. package/dist/patterns/index.d.ts +21 -0
  542. package/dist/patterns/index.d.ts.map +1 -0
  543. package/dist/patterns/languages/en/control-flow.d.ts +40 -0
  544. package/dist/patterns/languages/en/control-flow.d.ts.map +1 -0
  545. package/dist/patterns/languages/en/fetch.d.ts +22 -0
  546. package/dist/patterns/languages/en/fetch.d.ts.map +1 -0
  547. package/dist/patterns/languages/en/index.d.ts +22 -0
  548. package/dist/patterns/languages/en/index.d.ts.map +1 -0
  549. package/dist/patterns/languages/en/repeat.d.ts +22 -0
  550. package/dist/patterns/languages/en/repeat.d.ts.map +1 -0
  551. package/dist/patterns/languages/en/set.d.ts +23 -0
  552. package/dist/patterns/languages/en/set.d.ts.map +1 -0
  553. package/dist/patterns/languages/en/swap.d.ts +19 -0
  554. package/dist/patterns/languages/en/swap.d.ts.map +1 -0
  555. package/dist/patterns/languages/en/temporal.d.ts +24 -0
  556. package/dist/patterns/languages/en/temporal.d.ts.map +1 -0
  557. package/dist/patterns/put/ar.d.ts +12 -0
  558. package/dist/patterns/put/ar.d.ts.map +1 -0
  559. package/dist/patterns/put/bn.d.ts +8 -0
  560. package/dist/patterns/put/bn.d.ts.map +1 -0
  561. package/dist/patterns/put/en.d.ts +11 -0
  562. package/dist/patterns/put/en.d.ts.map +1 -0
  563. package/dist/patterns/put/es.d.ts +11 -0
  564. package/dist/patterns/put/es.d.ts.map +1 -0
  565. package/dist/patterns/put/hi.d.ts +8 -0
  566. package/dist/patterns/put/hi.d.ts.map +1 -0
  567. package/dist/patterns/put/id.d.ts +15 -0
  568. package/dist/patterns/put/id.d.ts.map +1 -0
  569. package/dist/patterns/put/index.d.ts +33 -0
  570. package/dist/patterns/put/index.d.ts.map +1 -0
  571. package/dist/patterns/put/it.d.ts +11 -0
  572. package/dist/patterns/put/it.d.ts.map +1 -0
  573. package/dist/patterns/put/ja.d.ts +12 -0
  574. package/dist/patterns/put/ja.d.ts.map +1 -0
  575. package/dist/patterns/put/ko.d.ts +12 -0
  576. package/dist/patterns/put/ko.d.ts.map +1 -0
  577. package/dist/patterns/put/pl.d.ts +12 -0
  578. package/dist/patterns/put/pl.d.ts.map +1 -0
  579. package/dist/patterns/put/ru.d.ts +12 -0
  580. package/dist/patterns/put/ru.d.ts.map +1 -0
  581. package/dist/patterns/put/th.d.ts +8 -0
  582. package/dist/patterns/put/th.d.ts.map +1 -0
  583. package/dist/patterns/put/tr.d.ts +12 -0
  584. package/dist/patterns/put/tr.d.ts.map +1 -0
  585. package/dist/patterns/put/uk.d.ts +12 -0
  586. package/dist/patterns/put/uk.d.ts.map +1 -0
  587. package/dist/patterns/put/vi.d.ts +11 -0
  588. package/dist/patterns/put/vi.d.ts.map +1 -0
  589. package/dist/patterns/put/zh.d.ts +12 -0
  590. package/dist/patterns/put/zh.d.ts.map +1 -0
  591. package/dist/patterns/registry.d.ts +53 -0
  592. package/dist/patterns/registry.d.ts.map +1 -0
  593. package/dist/patterns/remove/ar.d.ts +12 -0
  594. package/dist/patterns/remove/ar.d.ts.map +1 -0
  595. package/dist/patterns/remove/bn.d.ts +8 -0
  596. package/dist/patterns/remove/bn.d.ts.map +1 -0
  597. package/dist/patterns/remove/hi.d.ts +8 -0
  598. package/dist/patterns/remove/hi.d.ts.map +1 -0
  599. package/dist/patterns/remove/index.d.ts +31 -0
  600. package/dist/patterns/remove/index.d.ts.map +1 -0
  601. package/dist/patterns/remove/it.d.ts +11 -0
  602. package/dist/patterns/remove/it.d.ts.map +1 -0
  603. package/dist/patterns/remove/ja.d.ts +12 -0
  604. package/dist/patterns/remove/ja.d.ts.map +1 -0
  605. package/dist/patterns/remove/ko.d.ts +12 -0
  606. package/dist/patterns/remove/ko.d.ts.map +1 -0
  607. package/dist/patterns/remove/pl.d.ts +12 -0
  608. package/dist/patterns/remove/pl.d.ts.map +1 -0
  609. package/dist/patterns/remove/qu.d.ts +9 -0
  610. package/dist/patterns/remove/qu.d.ts.map +1 -0
  611. package/dist/patterns/remove/ru.d.ts +12 -0
  612. package/dist/patterns/remove/ru.d.ts.map +1 -0
  613. package/dist/patterns/remove/th.d.ts +8 -0
  614. package/dist/patterns/remove/th.d.ts.map +1 -0
  615. package/dist/patterns/remove/tr.d.ts +12 -0
  616. package/dist/patterns/remove/tr.d.ts.map +1 -0
  617. package/dist/patterns/remove/uk.d.ts +12 -0
  618. package/dist/patterns/remove/uk.d.ts.map +1 -0
  619. package/dist/patterns/remove/vi.d.ts +11 -0
  620. package/dist/patterns/remove/vi.d.ts.map +1 -0
  621. package/dist/patterns/remove/zh.d.ts +12 -0
  622. package/dist/patterns/remove/zh.d.ts.map +1 -0
  623. package/dist/patterns/set/ar.d.ts +12 -0
  624. package/dist/patterns/set/ar.d.ts.map +1 -0
  625. package/dist/patterns/set/bn.d.ts +8 -0
  626. package/dist/patterns/set/bn.d.ts.map +1 -0
  627. package/dist/patterns/set/de.d.ts +12 -0
  628. package/dist/patterns/set/de.d.ts.map +1 -0
  629. package/dist/patterns/set/es.d.ts +12 -0
  630. package/dist/patterns/set/es.d.ts.map +1 -0
  631. package/dist/patterns/set/fr.d.ts +12 -0
  632. package/dist/patterns/set/fr.d.ts.map +1 -0
  633. package/dist/patterns/set/hi.d.ts +8 -0
  634. package/dist/patterns/set/hi.d.ts.map +1 -0
  635. package/dist/patterns/set/id.d.ts +12 -0
  636. package/dist/patterns/set/id.d.ts.map +1 -0
  637. package/dist/patterns/set/index.d.ts +35 -0
  638. package/dist/patterns/set/index.d.ts.map +1 -0
  639. package/dist/patterns/set/it.d.ts +11 -0
  640. package/dist/patterns/set/it.d.ts.map +1 -0
  641. package/dist/patterns/set/ja.d.ts +12 -0
  642. package/dist/patterns/set/ja.d.ts.map +1 -0
  643. package/dist/patterns/set/ko.d.ts +12 -0
  644. package/dist/patterns/set/ko.d.ts.map +1 -0
  645. package/dist/patterns/set/pl.d.ts +12 -0
  646. package/dist/patterns/set/pl.d.ts.map +1 -0
  647. package/dist/patterns/set/pt.d.ts +12 -0
  648. package/dist/patterns/set/pt.d.ts.map +1 -0
  649. package/dist/patterns/set/ru.d.ts +12 -0
  650. package/dist/patterns/set/ru.d.ts.map +1 -0
  651. package/dist/patterns/set/th.d.ts +8 -0
  652. package/dist/patterns/set/th.d.ts.map +1 -0
  653. package/dist/patterns/set/tr.d.ts +12 -0
  654. package/dist/patterns/set/tr.d.ts.map +1 -0
  655. package/dist/patterns/set/uk.d.ts +12 -0
  656. package/dist/patterns/set/uk.d.ts.map +1 -0
  657. package/dist/patterns/set/vi.d.ts +11 -0
  658. package/dist/patterns/set/vi.d.ts.map +1 -0
  659. package/dist/patterns/set/zh.d.ts +12 -0
  660. package/dist/patterns/set/zh.d.ts.map +1 -0
  661. package/dist/patterns/show/ar.d.ts +12 -0
  662. package/dist/patterns/show/ar.d.ts.map +1 -0
  663. package/dist/patterns/show/bn.d.ts +8 -0
  664. package/dist/patterns/show/bn.d.ts.map +1 -0
  665. package/dist/patterns/show/de.d.ts +12 -0
  666. package/dist/patterns/show/de.d.ts.map +1 -0
  667. package/dist/patterns/show/fr.d.ts +12 -0
  668. package/dist/patterns/show/fr.d.ts.map +1 -0
  669. package/dist/patterns/show/hi.d.ts +8 -0
  670. package/dist/patterns/show/hi.d.ts.map +1 -0
  671. package/dist/patterns/show/index.d.ts +32 -0
  672. package/dist/patterns/show/index.d.ts.map +1 -0
  673. package/dist/patterns/show/it.d.ts +11 -0
  674. package/dist/patterns/show/it.d.ts.map +1 -0
  675. package/dist/patterns/show/ja.d.ts +12 -0
  676. package/dist/patterns/show/ja.d.ts.map +1 -0
  677. package/dist/patterns/show/ko.d.ts +12 -0
  678. package/dist/patterns/show/ko.d.ts.map +1 -0
  679. package/dist/patterns/show/pl.d.ts +12 -0
  680. package/dist/patterns/show/pl.d.ts.map +1 -0
  681. package/dist/patterns/show/ru.d.ts +12 -0
  682. package/dist/patterns/show/ru.d.ts.map +1 -0
  683. package/dist/patterns/show/th.d.ts +8 -0
  684. package/dist/patterns/show/th.d.ts.map +1 -0
  685. package/dist/patterns/show/tr.d.ts +12 -0
  686. package/dist/patterns/show/tr.d.ts.map +1 -0
  687. package/dist/patterns/show/uk.d.ts +12 -0
  688. package/dist/patterns/show/uk.d.ts.map +1 -0
  689. package/dist/patterns/show/vi.d.ts +11 -0
  690. package/dist/patterns/show/vi.d.ts.map +1 -0
  691. package/dist/patterns/show/zh.d.ts +12 -0
  692. package/dist/patterns/show/zh.d.ts.map +1 -0
  693. package/dist/patterns/take/ar.d.ts +12 -0
  694. package/dist/patterns/take/ar.d.ts.map +1 -0
  695. package/dist/patterns/take/index.d.ts +18 -0
  696. package/dist/patterns/take/index.d.ts.map +1 -0
  697. package/dist/patterns/toggle/ar.d.ts +12 -0
  698. package/dist/patterns/toggle/ar.d.ts.map +1 -0
  699. package/dist/patterns/toggle/bn.d.ts +8 -0
  700. package/dist/patterns/toggle/bn.d.ts.map +1 -0
  701. package/dist/patterns/toggle/en.d.ts +11 -0
  702. package/dist/patterns/toggle/en.d.ts.map +1 -0
  703. package/dist/patterns/toggle/es.d.ts +11 -0
  704. package/dist/patterns/toggle/es.d.ts.map +1 -0
  705. package/dist/patterns/toggle/hi.d.ts +9 -0
  706. package/dist/patterns/toggle/hi.d.ts.map +1 -0
  707. package/dist/patterns/toggle/index.d.ts +33 -0
  708. package/dist/patterns/toggle/index.d.ts.map +1 -0
  709. package/dist/patterns/toggle/it.d.ts +11 -0
  710. package/dist/patterns/toggle/it.d.ts.map +1 -0
  711. package/dist/patterns/toggle/ja.d.ts +12 -0
  712. package/dist/patterns/toggle/ja.d.ts.map +1 -0
  713. package/dist/patterns/toggle/ko.d.ts +12 -0
  714. package/dist/patterns/toggle/ko.d.ts.map +1 -0
  715. package/dist/patterns/toggle/pl.d.ts +12 -0
  716. package/dist/patterns/toggle/pl.d.ts.map +1 -0
  717. package/dist/patterns/toggle/qu.d.ts +9 -0
  718. package/dist/patterns/toggle/qu.d.ts.map +1 -0
  719. package/dist/patterns/toggle/ru.d.ts +12 -0
  720. package/dist/patterns/toggle/ru.d.ts.map +1 -0
  721. package/dist/patterns/toggle/th.d.ts +9 -0
  722. package/dist/patterns/toggle/th.d.ts.map +1 -0
  723. package/dist/patterns/toggle/tr.d.ts +12 -0
  724. package/dist/patterns/toggle/tr.d.ts.map +1 -0
  725. package/dist/patterns/toggle/uk.d.ts +12 -0
  726. package/dist/patterns/toggle/uk.d.ts.map +1 -0
  727. package/dist/patterns/toggle/vi.d.ts +11 -0
  728. package/dist/patterns/toggle/vi.d.ts.map +1 -0
  729. package/dist/patterns/toggle/zh.d.ts +11 -0
  730. package/dist/patterns/toggle/zh.d.ts.map +1 -0
  731. package/dist/public-api.d.ts +190 -0
  732. package/dist/public-api.d.ts.map +1 -0
  733. package/dist/registry.d.ts +225 -0
  734. package/dist/registry.d.ts.map +1 -0
  735. package/dist/tokenizers/arabic.d.ts +67 -0
  736. package/dist/tokenizers/arabic.d.ts.map +1 -0
  737. package/dist/tokenizers/base-tokenizer.d.ts +240 -0
  738. package/dist/tokenizers/base-tokenizer.d.ts.map +1 -0
  739. package/dist/tokenizers/base.d.ts +14 -0
  740. package/dist/tokenizers/base.d.ts.map +1 -0
  741. package/dist/tokenizers/bengali.d.ts +22 -0
  742. package/dist/tokenizers/bengali.d.ts.map +1 -0
  743. package/dist/tokenizers/char-classifiers.d.ts +56 -0
  744. package/dist/tokenizers/char-classifiers.d.ts.map +1 -0
  745. package/dist/tokenizers/chinese.d.ts +47 -0
  746. package/dist/tokenizers/chinese.d.ts.map +1 -0
  747. package/dist/tokenizers/english.d.ts +34 -0
  748. package/dist/tokenizers/english.d.ts.map +1 -0
  749. package/dist/tokenizers/extractors.d.ts +61 -0
  750. package/dist/tokenizers/extractors.d.ts.map +1 -0
  751. package/dist/tokenizers/french.d.ts +26 -0
  752. package/dist/tokenizers/french.d.ts.map +1 -0
  753. package/dist/tokenizers/german.d.ts +27 -0
  754. package/dist/tokenizers/german.d.ts.map +1 -0
  755. package/dist/tokenizers/he.d.ts +58 -0
  756. package/dist/tokenizers/he.d.ts.map +1 -0
  757. package/dist/tokenizers/hindi.d.ts +25 -0
  758. package/dist/tokenizers/hindi.d.ts.map +1 -0
  759. package/dist/tokenizers/index.d.ts +64 -0
  760. package/dist/tokenizers/index.d.ts.map +1 -0
  761. package/dist/tokenizers/indonesian.d.ts +24 -0
  762. package/dist/tokenizers/indonesian.d.ts.map +1 -0
  763. package/dist/tokenizers/italian.d.ts +41 -0
  764. package/dist/tokenizers/italian.d.ts.map +1 -0
  765. package/dist/tokenizers/japanese.d.ts +42 -0
  766. package/dist/tokenizers/japanese.d.ts.map +1 -0
  767. package/dist/tokenizers/korean.d.ts +47 -0
  768. package/dist/tokenizers/korean.d.ts.map +1 -0
  769. package/dist/tokenizers/morphology/arabic-normalizer.d.ts +37 -0
  770. package/dist/tokenizers/morphology/arabic-normalizer.d.ts.map +1 -0
  771. package/dist/tokenizers/morphology/french-normalizer.d.ts +46 -0
  772. package/dist/tokenizers/morphology/french-normalizer.d.ts.map +1 -0
  773. package/dist/tokenizers/morphology/german-normalizer.d.ts +55 -0
  774. package/dist/tokenizers/morphology/german-normalizer.d.ts.map +1 -0
  775. package/dist/tokenizers/morphology/index.d.ts +20 -0
  776. package/dist/tokenizers/morphology/index.d.ts.map +1 -0
  777. package/dist/tokenizers/morphology/italian-normalizer.d.ts +52 -0
  778. package/dist/tokenizers/morphology/italian-normalizer.d.ts.map +1 -0
  779. package/dist/tokenizers/morphology/japanese-normalizer.d.ts +43 -0
  780. package/dist/tokenizers/morphology/japanese-normalizer.d.ts.map +1 -0
  781. package/dist/tokenizers/morphology/korean-normalizer.d.ts +45 -0
  782. package/dist/tokenizers/morphology/korean-normalizer.d.ts.map +1 -0
  783. package/dist/tokenizers/morphology/polish-normalizer.d.ts +61 -0
  784. package/dist/tokenizers/morphology/polish-normalizer.d.ts.map +1 -0
  785. package/dist/tokenizers/morphology/portuguese-normalizer.d.ts +51 -0
  786. package/dist/tokenizers/morphology/portuguese-normalizer.d.ts.map +1 -0
  787. package/dist/tokenizers/morphology/russian-normalizer.d.ts +72 -0
  788. package/dist/tokenizers/morphology/russian-normalizer.d.ts.map +1 -0
  789. package/dist/tokenizers/morphology/spanish-normalizer.d.ts +49 -0
  790. package/dist/tokenizers/morphology/spanish-normalizer.d.ts.map +1 -0
  791. package/dist/tokenizers/morphology/turkish-normalizer.d.ts +52 -0
  792. package/dist/tokenizers/morphology/turkish-normalizer.d.ts.map +1 -0
  793. package/dist/tokenizers/morphology/types.d.ts +110 -0
  794. package/dist/tokenizers/morphology/types.d.ts.map +1 -0
  795. package/dist/tokenizers/morphology/ukrainian-normalizer.d.ts +76 -0
  796. package/dist/tokenizers/morphology/ukrainian-normalizer.d.ts.map +1 -0
  797. package/dist/tokenizers/ms.d.ts +22 -0
  798. package/dist/tokenizers/ms.d.ts.map +1 -0
  799. package/dist/tokenizers/polish.d.ts +25 -0
  800. package/dist/tokenizers/polish.d.ts.map +1 -0
  801. package/dist/tokenizers/portuguese.d.ts +26 -0
  802. package/dist/tokenizers/portuguese.d.ts.map +1 -0
  803. package/dist/tokenizers/quechua.d.ts +36 -0
  804. package/dist/tokenizers/quechua.d.ts.map +1 -0
  805. package/dist/tokenizers/russian.d.ts +25 -0
  806. package/dist/tokenizers/russian.d.ts.map +1 -0
  807. package/dist/tokenizers/spanish.d.ts +41 -0
  808. package/dist/tokenizers/spanish.d.ts.map +1 -0
  809. package/dist/tokenizers/swahili.d.ts +24 -0
  810. package/dist/tokenizers/swahili.d.ts.map +1 -0
  811. package/dist/tokenizers/thai.d.ts +24 -0
  812. package/dist/tokenizers/thai.d.ts.map +1 -0
  813. package/dist/tokenizers/tl.d.ts +22 -0
  814. package/dist/tokenizers/tl.d.ts.map +1 -0
  815. package/dist/tokenizers/token-utils.d.ts +97 -0
  816. package/dist/tokenizers/token-utils.d.ts.map +1 -0
  817. package/dist/tokenizers/turkish.d.ts +42 -0
  818. package/dist/tokenizers/turkish.d.ts.map +1 -0
  819. package/dist/tokenizers/ukrainian.d.ts +25 -0
  820. package/dist/tokenizers/ukrainian.d.ts.map +1 -0
  821. package/dist/tokenizers/vietnamese.d.ts +47 -0
  822. package/dist/tokenizers/vietnamese.d.ts.map +1 -0
  823. package/dist/types/grammar-types.d.ts +224 -0
  824. package/dist/types/grammar-types.d.ts.map +1 -0
  825. package/dist/types/unified-profile.d.ts +167 -0
  826. package/dist/types/unified-profile.d.ts.map +1 -0
  827. package/dist/types.d.ts +401 -0
  828. package/dist/types.d.ts.map +1 -0
  829. package/dist/utils/confidence-calculator.d.ts +43 -0
  830. package/dist/utils/confidence-calculator.d.ts.map +1 -0
  831. package/dist/validators/command-validator.d.ts +83 -0
  832. package/dist/validators/command-validator.d.ts.map +1 -0
  833. package/dist/validators/index.d.ts +7 -0
  834. package/dist/validators/index.d.ts.map +1 -0
  835. package/package.json +86 -6
  836. package/src/ast-builder/command-mappers.ts +9 -1
  837. package/src/ast-builder/expression-parser/parser.ts +13 -2
  838. package/src/ast-builder/index.ts +20 -6
  839. package/src/browser-bn.ts +162 -0
  840. package/src/browser-east-asian.ts +1 -1
  841. package/src/browser-hi.ts +162 -0
  842. package/src/browser-it.ts +162 -0
  843. package/src/browser-ms.ts +162 -0
  844. package/src/browser-pl.ts +162 -0
  845. package/src/browser-priority.ts +1 -1
  846. package/src/browser-ru.ts +162 -0
  847. package/src/browser-th.ts +162 -0
  848. package/src/browser-tl.ts +162 -0
  849. package/src/browser-uk.ts +162 -0
  850. package/src/browser-vi.ts +162 -0
  851. package/src/browser-western.ts +1 -1
  852. package/src/core-bridge.ts +43 -16
  853. package/src/core.ts +13 -0
  854. package/src/explicit/parser.ts +4 -2
  855. package/src/explicit/renderer.ts +1 -1
  856. package/src/generators/command-schemas.ts +214 -2
  857. package/src/generators/event-handlers-sov.ts +686 -0
  858. package/src/generators/event-handlers-vso.ts +489 -0
  859. package/src/generators/pattern-generator.ts +93 -736
  860. package/src/generators/profiles/arabic.ts +11 -1
  861. package/src/generators/profiles/bengali.ts +6 -0
  862. package/src/generators/profiles/chinese.ts +6 -0
  863. package/src/generators/profiles/english.ts +6 -0
  864. package/src/generators/profiles/french.ts +6 -0
  865. package/src/generators/profiles/german.ts +6 -0
  866. package/src/generators/profiles/hebrew.ts +6 -0
  867. package/src/generators/profiles/hindi.ts +6 -0
  868. package/src/generators/profiles/indonesian.ts +6 -0
  869. package/src/generators/profiles/italian.ts +6 -0
  870. package/src/generators/profiles/japanese.ts +6 -0
  871. package/src/generators/profiles/korean.ts +6 -0
  872. package/src/generators/profiles/ms.ts +6 -0
  873. package/src/generators/profiles/polish.ts +6 -0
  874. package/src/generators/profiles/portuguese.ts +6 -0
  875. package/src/generators/profiles/quechua.ts +35 -13
  876. package/src/generators/profiles/russian.ts +6 -0
  877. package/src/generators/profiles/spanish.ts +6 -0
  878. package/src/generators/profiles/spanishMexico.ts +6 -0
  879. package/src/generators/profiles/swahili.ts +14 -3
  880. package/src/generators/profiles/thai.ts +6 -0
  881. package/src/generators/profiles/tl.ts +22 -9
  882. package/src/generators/profiles/turkish.ts +7 -1
  883. package/src/generators/profiles/ukrainian.ts +6 -0
  884. package/src/generators/profiles/vietnamese.ts +6 -0
  885. package/src/generators/schema-validator.ts +8 -3
  886. package/src/index.ts +54 -0
  887. package/src/interchange/from-semantic.ts +440 -0
  888. package/src/interchange/index.ts +26 -0
  889. package/src/interchange/types.ts +186 -0
  890. package/src/parser/pattern-matcher.ts +65 -15
  891. package/src/parser/semantic-parser.ts +850 -8
  892. package/src/patterns/add/index.ts +1 -9
  893. package/src/patterns/builders.ts +2 -2
  894. package/src/patterns/decrement/index.ts +1 -9
  895. package/src/patterns/event-handler/shared.ts +30 -0
  896. package/src/patterns/event-handler/tl.ts +39 -19
  897. package/src/patterns/get/index.ts +1 -9
  898. package/src/patterns/hide/index.ts +1 -9
  899. package/src/patterns/increment/index.ts +1 -9
  900. package/src/patterns/put/index.ts +1 -9
  901. package/src/patterns/registry.ts +2 -2
  902. package/src/patterns/remove/index.ts +1 -9
  903. package/src/patterns/set/index.ts +1 -9
  904. package/src/patterns/show/index.ts +1 -9
  905. package/src/patterns/toggle/index.ts +1 -9
  906. package/src/tokenizers/arabic.ts +14 -1
  907. package/src/tokenizers/base-tokenizer.ts +644 -0
  908. package/src/tokenizers/base.ts +39 -1297
  909. package/src/tokenizers/bengali.ts +37 -10
  910. package/src/tokenizers/char-classifiers.ts +79 -0
  911. package/src/tokenizers/chinese.ts +7 -0
  912. package/src/tokenizers/english.ts +8 -1
  913. package/src/tokenizers/extractors.ts +452 -0
  914. package/src/tokenizers/french.ts +16 -1
  915. package/src/tokenizers/german.ts +16 -1
  916. package/src/tokenizers/he.ts +14 -1
  917. package/src/tokenizers/hindi.ts +14 -1
  918. package/src/tokenizers/indonesian.ts +14 -1
  919. package/src/tokenizers/italian.ts +14 -1
  920. package/src/tokenizers/japanese.ts +14 -1
  921. package/src/tokenizers/korean.ts +19 -1
  922. package/src/tokenizers/morphology/index.ts +17 -0
  923. package/src/tokenizers/morphology/polish-normalizer.ts +147 -131
  924. package/src/tokenizers/morphology/russian-normalizer.ts +397 -0
  925. package/src/tokenizers/morphology/ukrainian-normalizer.ts +366 -0
  926. package/src/tokenizers/ms.ts +14 -1
  927. package/src/tokenizers/polish.ts +16 -1
  928. package/src/tokenizers/portuguese.ts +16 -1
  929. package/src/tokenizers/quechua.ts +30 -1
  930. package/src/tokenizers/russian.ts +16 -1
  931. package/src/tokenizers/spanish.ts +14 -1
  932. package/src/tokenizers/swahili.ts +14 -1
  933. package/src/tokenizers/thai.ts +14 -1
  934. package/src/tokenizers/tl.ts +14 -1
  935. package/src/tokenizers/token-utils.ts +205 -0
  936. package/src/tokenizers/turkish.ts +21 -2
  937. package/src/tokenizers/ukrainian.ts +16 -1
  938. package/src/tokenizers/vietnamese.ts +7 -0
  939. package/src/types.ts +41 -2
  940. package/src/validators/command-validator.ts +17 -40
  941. package/dist/index.d.cts +0 -3470
  942. package/dist/types-BY3Id07j.d.ts +0 -615
  943. package/src/bridge.ts +0 -275
  944. package/src/generators/event-handler-generator.ts +0 -115
  945. package/src/patterns/add/ms.ts +0 -30
  946. package/src/patterns/add/tl.ts +0 -30
  947. package/src/patterns/decrement/ms.ts +0 -30
  948. package/src/patterns/decrement/tl.ts +0 -30
  949. package/src/patterns/get/ms.ts +0 -30
  950. package/src/patterns/get/tl.ts +0 -30
  951. package/src/patterns/hide/ms.ts +0 -30
  952. package/src/patterns/hide/tl.ts +0 -30
  953. package/src/patterns/increment/ms.ts +0 -30
  954. package/src/patterns/increment/tl.ts +0 -30
  955. package/src/patterns/put/ms.ts +0 -30
  956. package/src/patterns/put/tl.ts +0 -30
  957. package/src/patterns/remove/ms.ts +0 -30
  958. package/src/patterns/remove/tl.ts +0 -30
  959. package/src/patterns/set/ms.ts +0 -30
  960. package/src/patterns/set/tl.ts +0 -30
  961. package/src/patterns/show/ms.ts +0 -30
  962. package/src/patterns/show/tl.ts +0 -30
  963. package/src/patterns/toggle/ms.ts +0 -30
  964. package/src/patterns/toggle/tl.ts +0 -30
@@ -0,0 +1,2 @@
1
+ "use strict";var LokaScriptSemanticUk=(()=>{var Oe=Object.defineProperty;var Et=Object.getOwnPropertyDescriptor;var Nt=Object.getOwnPropertyNames;var wt=Object.prototype.hasOwnProperty;var Rt=(i,e)=>{for(var t in e)Oe(i,t,{get:e[t],enumerable:!0})},Ct=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Nt(e))!wt.call(i,n)&&n!==t&&Oe(i,n,{get:()=>e[n],enumerable:!(r=Et(e,n))||r.enumerable});return i};var Pt=i=>Ct(Oe({},"__esModule",{value:!0}),i);var Hr={};Rt(Hr,{ASTBuilder:()=>ge,DEFAULT_CONFIDENCE_THRESHOLD:()=>Qe,HIGH_CONFIDENCE_THRESHOLD:()=>xt,SemanticAnalyzerImpl:()=>he,VERSION:()=>$r,buildAST:()=>yt,canParse:()=>Fe,createCommandNode:()=>_,createEventHandler:()=>H,createLiteral:()=>S,createPropertyPath:()=>ie,createReference:()=>L,createSelector:()=>A,createSemanticAnalyzer:()=>vt,fromExplicit:()=>De,getCommandMapper:()=>fe,getPatternsForLanguage:()=>bt,getPatternsForLanguageAndCommand:()=>Dr,getProfile:()=>_e,getSupportedLanguages:()=>Fr,getTokenizer:()=>We,isExplicitSyntax:()=>oe,isLanguageSupported:()=>ot,parse:()=>$,parseAny:()=>He,parseExplicit:()=>Z,registerCommandMapper:()=>Ze,render:()=>pe,renderExplicit:()=>me,shouldUseSemanticResult:()=>St,toExplicit:()=>qe,tokenize:()=>qr,tryGetProfile:()=>V,ukrainianProfile:()=>D,ukrainianTokenizer:()=>Re});var W=new Map,U=new Map,se=new Map;var et=null;function rt(i,e){let t={...i};for(let r of Object.keys(e)){let n=e[r],o=i[r];n!==void 0&&(typeof n=="object"&&n!==null&&!Array.isArray(n)&&typeof o=="object"&&o!==null&&!Array.isArray(o)?t[r]=rt(o,n):t[r]=n)}return t}function Lt(i,e){return rt(i,e)}function Ie(i){if(!i.extends)return i;let e=U.get(i.extends);if(!e)return console.warn(`[Registry] Profile '${i.code}' extends '${i.extends}' but base is not registered. Make sure to import the base language before the variant.`),i;let t=Ie(e);return Lt(t,i)}function nt(i,e,t){W.set(i,e),U.set(i,t),se.delete(i)}var tt=new Map;function F(i){return i.split("-")[0]}function q(i){return i.includes("-")}function We(i){let e=W.get(i);if(!e&&q(i)){let t=F(i);e=W.get(t)}if(!e){let t=Array.from(W.keys()).join(", ");throw new Error(`Language '${i}' is not registered. Registered languages: ${t||"none"}. Import the language module first: import '@lokascript/semantic/languages/${i}';`)}return e}function _e(i){let e=U.get(i);if(!e&&q(i)){let t=F(i);e=U.get(t)}if(!e){let t=Array.from(U.keys()).join(", ");throw new Error(`Language profile '${i}' is not registered. Registered languages: ${t||"none"}. Import the language module first: import '@lokascript/semantic/languages/${i}';`)}return Ie(e)}function it(i){let e=W.get(i);return!e&&q(i)&&(e=W.get(F(i))),e}function V(i){let e=U.get(i);return!e&&q(i)&&(e=U.get(F(i))),e?Ie(e):void 0}function xe(){return Array.from(W.keys())}function ot(i){return W.has(i)?!0:q(i)?W.has(F(i)):!1}function at(i,e){return We(e).tokenize(i)}function O(i){let e=se.get(i);if(!e&&q(i)&&(e=se.get(F(i))),e)return e;let t=tt.get(i);if(!t&&q(i)&&(t=tt.get(F(i))),t)return se.set(i,t),t;if(!et)throw new Error(`No patterns registered for language '${i}'. Either import the language module or set a pattern generator.`);let r=_e(i),n=et(r);return se.set(i,n),n}function st(i,e){return O(i).filter(t=>t.command===e).sort((t,r)=>r.priority-t.priority)}var I=class{constructor(e,t){this.pos=0;this.tokens=e,this.language=t}peek(e=0){let t=this.pos+e;return t<0||t>=this.tokens.length?null:this.tokens[t]}advance(){if(this.isAtEnd())throw new Error("Unexpected end of token stream");return this.tokens[this.pos++]}isAtEnd(){return this.pos>=this.tokens.length}mark(){return{position:this.pos}}reset(e){this.pos=e.position}position(){return this.pos}remaining(){return this.tokens.slice(this.pos)}takeWhile(e){let t=[];for(;!this.isAtEnd()&&e(this.peek());)t.push(this.advance());return t}skipWhile(e){for(;!this.isAtEnd()&&e(this.peek());)this.advance()}};function k(i,e){return{start:i,end:e}}function b(i,e,t,r){if(typeof r=="string")return{value:i,kind:e,position:t,normalized:r};if(r){let{normalized:n,stem:o,stemConfidence:s}=r;return{value:i,kind:e,position:t,...n!==void 0&&{normalized:n},...o!==void 0&&{stem:o},...s!==void 0&&{stemConfidence:s}}}return{value:i,kind:e,position:t}}function M(i){return/\s/.test(i)}function J(i){return i==="#"||i==="."||i==="["||i==="@"||i==="*"||i==="<"}function ee(i){return i==='"'||i==="'"||i==="`"||i==="\u300C"||i==="\u300D"}function w(i){return/\d/.test(i)}function Se(i){return/[a-zA-Z]/.test(i)}function N(i){return/[a-zA-Z0-9_-]/.test(i)}function ke(i){let e=r=>i.test(r);return{isLetter:e,isIdentifierChar:r=>e(r)||/[0-9_-]/.test(r)}}function be(i,e){if(e>=i.length)return null;let t=i[e];if(!J(t))return null;let r=e,n="";if(t==="#"||t==="."){for(n+=i[r++];r<i.length&&N(i[r]);)n+=i[r++];if(n.length<=1)return null;if(r<i.length&&i[r]==="."&&t==="#"){let s=r+1;for(;s<i.length&&N(i[s]);)s++;if(s<i.length&&i[s]==="(")return n}}else if(t==="["){let o=1,s=!1,a=null,l=!1;for(n+=i[r++];r<i.length&&o>0;){let c=i[r];n+=c,l?l=!1:c==="\\"?l=!0:s?c===a&&(s=!1,a=null):c==='"'||c==="'"||c==="`"?(s=!0,a=c):c==="["?o++:c==="]"&&o--,r++}if(o!==0)return null}else if(t==="@"){for(n+=i[r++];r<i.length&&N(i[r]);)n+=i[r++];if(n.length<=1)return null}else if(t==="*"){for(n+=i[r++];r<i.length&&N(i[r]);)n+=i[r++];if(n.length<=1)return null}else if(t==="<"){if(n+=i[r++],r>=i.length||!Se(i[r]))return null;for(;r<i.length&&N(i[r]);)n+=i[r++];for(;r<i.length;){let o=i[r];if(o==="."){if(n+=i[r++],r>=i.length||!N(i[r]))return null;for(;r<i.length&&N(i[r]);)n+=i[r++]}else if(o==="#"){if(n+=i[r++],r>=i.length||!N(i[r]))return null;for(;r<i.length&&N(i[r]);)n+=i[r++]}else if(o==="["){let s=1,a=!1,l=null,c=!1;for(n+=i[r++];r<i.length&&s>0;){let m=i[r];n+=m,c?c=!1:m==="\\"?c=!0:a?m===l&&(a=!1,l=null):m==='"'||m==="'"||m==="`"?(a=!0,l=m):m==="["?s++:m==="]"&&s--,r++}if(s!==0)return null}else break}for(;r<i.length&&M(i[r]);)n+=i[r++];if(r<i.length&&i[r]==="/")for(n+=i[r++];r<i.length&&M(i[r]);)n+=i[r++];if(r>=i.length||i[r]!==">")return null;n+=i[r++]}return n||null}function lt(i,e){if(e>=i.length||i[e]!=="'"||e+1>=i.length||i[e+1].toLowerCase()!=="s")return!1;if(e+2>=i.length)return!0;let r=i[e+2];return M(r)||r==="*"||!N(r)}function Te(i,e){if(e>=i.length)return null;let t=i[e];if(!ee(t)||t==="'"&&lt(i,e))return null;let n={'"':'"',"'":"'","`":"`","\u300C":"\u300D"}[t];if(!n)return null;let o=e+1,s=t,a=!1;for(;o<i.length;){let l=i[o];if(s+=l,a)a=!1;else if(l==="\\")a=!0;else if(l===n)return s;o++}return s}function le(i,e){if(e>=i.length)return!1;let t=i[e],r=i[e+1]||"",n=i[e+2]||"";if(t==="/"&&r!=="/"&&/[a-zA-Z0-9._-]/.test(r)||t==="/"&&r==="/"&&/[a-zA-Z]/.test(n)||t==="."&&(r==="/"||r==="."&&n==="/"))return!0;let o=i.slice(e,e+8).toLowerCase();return!!(o.startsWith("http://")||o.startsWith("https://"))}function Ee(i,e){if(!le(i,e))return null;let t=e,r="",n=/[a-zA-Z0-9/:._\-?&=%@+~!$'()*,;[\]]/;for(;t<i.length;){let o=i[t];if(o==="#"){if(r.length>0&&/[a-zA-Z0-9/.]$/.test(r))for(r+=o,t++;t<i.length&&/[a-zA-Z0-9_-]/.test(i[t]);)r+=i[t++];break}if(n.test(o))r+=o,t++;else break}return r.length<2?null:r}function Ne(i,e){if(e>=i.length)return null;let t=i[e];if(!w(t)&&t!=="-"&&t!=="+")return null;let r=e,n="";if((i[r]==="-"||i[r]==="+")&&(n+=i[r++]),r>=i.length||!w(i[r]))return null;for(;r<i.length&&w(i[r]);)n+=i[r++];if(r<i.length&&i[r]===".")for(n+=i[r++];r<i.length&&w(i[r]);)n+=i[r++];return r<i.length&&(i.slice(r,r+2)==="ms"?n+="ms":(i[r]==="s"||i[r]==="m"||i[r]==="h")&&(n+=i[r])),n}var we=class we{constructor(){this.profileKeywords=[];this.profileKeywordMap=new Map}tryPropertyAccess(e,t,r){if(e[t]!==".")return!1;let n=r[r.length-1],o=n&&n.position.end<t;if(n&&!o&&(n.kind==="identifier"||n.kind==="keyword"||n.kind==="selector"))return r.push(b(".","operator",k(t,t+1))),!0;let l=t+1;for(;l<e.length&&N(e[l]);)l++;return l<e.length&&e[l]==="("?(r.push(b(".","operator",k(t,t+1))),!0):!1}initializeKeywordsFromProfile(e,t=[]){let r=new Map;if(e.keywords){for(let[n,o]of Object.entries(e.keywords))if(r.set(o.primary,{native:o.primary,normalized:o.normalized||n}),o.alternatives)for(let s of o.alternatives)r.set(s,{native:s,normalized:o.normalized||n})}if(e.references){for(let[n,o]of Object.entries(e.references))r.set(o,{native:o,normalized:n});for(let n of Object.keys(e.references))r.has(n)||r.set(n,{native:n,normalized:n})}if(e.roleMarkers){for(let[n,o]of Object.entries(e.roleMarkers))if(o.primary&&r.set(o.primary,{native:o.primary,normalized:n}),o.alternatives)for(let s of o.alternatives)r.set(s,{native:s,normalized:n})}for(let n of t)r.set(n.native,n);this.profileKeywords=Array.from(r.values()).sort((n,o)=>o.native.length-n.native.length),this.profileKeywordMap=new Map;for(let n of this.profileKeywords){this.profileKeywordMap.set(n.native.toLowerCase(),n);let o=this.removeDiacritics(n.native);o!==n.native&&!this.profileKeywordMap.has(o.toLowerCase())&&this.profileKeywordMap.set(o.toLowerCase(),n)}}removeDiacritics(e){return e.replace(/[\u064B-\u0652\u0670]/g,"")}tryProfileKeyword(e,t){for(let r of this.profileKeywords)if(e.slice(t).startsWith(r.native))return b(r.native,"keyword",k(t,t+r.native.length),r.normalized);return null}isKeywordStart(e,t){let r=e.slice(t);return this.profileKeywords.some(n=>r.startsWith(n.native))}lookupKeyword(e){return this.profileKeywordMap.get(e.toLowerCase())}isKeyword(e){return this.profileKeywordMap.has(e.toLowerCase())}setNormalizer(e){this.normalizer=e}tryNormalize(e){if(!this.normalizer)return null;let t=this.normalizer.normalize(e);return t.stem!==e&&t.confidence>=.7?t:null}tryMorphKeywordMatch(e,t,r){let n=this.tryNormalize(e);if(!n)return null;let o=this.lookupKeyword(n.stem);if(!o)return null;let s={normalized:o.normalized,stem:n.stem,stemConfidence:n.confidence};return b(e,"keyword",k(t,r),s)}trySelector(e,t){let r=be(e,t);return r?b(r,"selector",k(t,t+r.length)):null}tryEventModifier(e,t){if(e[t]!==".")return null;let r=e.slice(t).match(/^\.(?:once|debounce|throttle|queue)(?:\(([^)]+)\))?(?:\s|$|\.)/);if(!r)return null;let n=r[0].replace(/(\s|\.)$/,""),o=n.slice(1).split("(")[0],s=r[1];return{...b(n,"event-modifier",k(t,t+n.length)),metadata:{modifierName:o,value:s?o==="queue"?s:parseInt(s,10):void 0}}}tryString(e,t){let r=Te(e,t);return r?b(r,"literal",k(t,t+r.length)):null}tryNumber(e,t){let r=Ne(e,t);return r?b(r,"literal",k(t,t+r.length)):null}tryMatchTimeUnit(e,t,r,n=!1){let o=t;if(n)for(;o<e.length&&M(e[o]);)o++;let s=e.slice(o);for(let a of r){let l=s.slice(0,a.length);if(a.caseInsensitive?l.toLowerCase()===a.pattern.toLowerCase():l===a.pattern){if(a.notFollowedBy&&(s[a.length]||"")===a.notFollowedBy)continue;if(a.checkBoundary){let m=s[a.length]||"";if(N(m))continue}return{suffix:a.suffix,endPos:o+a.length}}}return null}parseBaseNumber(e,t,r=!0){let n=t,o="";if(r&&(e[n]==="-"||e[n]==="+")&&(o+=e[n++]),n>=e.length||!w(e[n]))return null;for(;n<e.length&&w(e[n]);)o+=e[n++];if(n<e.length&&e[n]===".")for(o+=e[n++];n<e.length&&w(e[n]);)o+=e[n++];return!o||o==="-"||o==="+"?null:{number:o,endPos:n}}tryNumberWithTimeUnits(e,t,r,n={}){let{allowSign:o=!0,skipWhitespace:s=!1}=n,a=this.parseBaseNumber(e,t,o);if(!a)return null;let{number:l,endPos:c}=a,m=[...r,...we.STANDARD_TIME_UNITS],v=this.tryMatchTimeUnit(e,c,m,s);return v&&(l+=v.suffix,c=v.endPos),b(l,"literal",k(t,c))}tryUrl(e,t){let r=Ee(e,t);return r?b(r,"url",k(t,t+r.length)):null}tryVariableRef(e,t){if(e[t]!==":"||t+1>=e.length||!N(e[t+1]))return null;let r=t+1;for(;r<e.length&&N(e[r]);)r++;let n=e.slice(t,r);return b(n,"identifier",k(t,r))}tryOperator(e,t){let r=e.slice(t,t+2);if(["==","!=","<=",">=","&&","||","->"].includes(r))return b(r,"operator",k(t,t+2));let n=e[t];return["<",">","!","+","-","*","/","="].includes(n)?b(n,"operator",k(t,t+1)):["(",")","{","}",",",";",":"].includes(n)?b(n,"punctuation",k(t,t+1)):null}tryMultiCharParticle(e,t,r){for(let n of r)if(e.slice(t,t+n.length)===n)return b(n,"particle",k(t,t+n.length));return null}};we.STANDARD_TIME_UNITS=[{pattern:"ms",suffix:"ms",length:2},{pattern:"s",suffix:"s",length:1,checkBoundary:!0},{pattern:"m",suffix:"m",length:1,checkBoundary:!0,notFollowedBy:"s"},{pattern:"h",suffix:"h",length:1,checkBoundary:!0}];var te=we;var D={code:"uk",name:"Ukrainian",nativeName:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430",direction:"ltr",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,defaultVerbForm:"infinitive",verb:{position:"start",subjectDrop:!0,suffixes:["\u0442\u0438","\u0442\u0438\u0441\u044F","\u0438\u0442\u0438","\u0438\u0442\u0438\u0441\u044F","\u0430\u0442\u0438","\u0430\u0442\u0438\u0441\u044F","\u0456\u0442\u0438","\u0456\u0442\u0438\u0441\u044F"]},references:{me:"\u044F",it:"\u0446\u0435",you:"\u0442\u0438",result:"\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442",event:"\u043F\u043E\u0434\u0456\u044F",target:"\u0446\u0456\u043B\u044C",body:"body"},possessive:{marker:"",markerPosition:"after-object",usePossessiveAdjectives:!0,specialForms:{me:"\u043C\u0456\u0439",it:"\u0439\u043E\u0433\u043E",you:"\u0442\u0432\u0456\u0439"},keywords:{\u043C\u0456\u0439:"me",\u043C\u043E\u044F:"me",\u043C\u043E\u0454:"me",\u043C\u043E\u0457:"me",\u0442\u0432\u0456\u0439:"you",\u0442\u0432\u043E\u044F:"you",\u0442\u0432\u043E\u0454:"you",\u0442\u0432\u043E\u0457:"you",\u0439\u043E\u0433\u043E:"it",\u0457\u0457:"it"}},roleMarkers:{destination:{primary:"\u0432",alternatives:["\u043D\u0430","\u0434\u043E"],position:"before"},source:{primary:"\u0437",alternatives:["\u0432\u0456\u0434","\u0456\u0437"],position:"before"},patient:{primary:"",position:"before"},style:{primary:"\u0437",alternatives:["\u0456\u0437"],position:"before"}},keywords:{toggle:{primary:"\u043F\u0435\u0440\u0435\u043C\u043A\u043D\u0443\u0442\u0438",alternatives:["\u043F\u0435\u0440\u0435\u043C\u043A\u043D\u0438"],normalized:"toggle",form:"infinitive"},add:{primary:"\u0434\u043E\u0434\u0430\u0442\u0438",alternatives:["\u0434\u043E\u0434\u0430\u0439"],normalized:"add",form:"infinitive"},remove:{primary:"\u0432\u0438\u0434\u0430\u043B\u0438\u0442\u0438",alternatives:["\u0432\u0438\u0434\u0430\u043B\u0438","\u043F\u0440\u0438\u0431\u0440\u0430\u0442\u0438","\u043F\u0440\u0438\u0431\u0435\u0440\u0438"],normalized:"remove",form:"infinitive"},put:{primary:"\u043F\u043E\u043A\u043B\u0430\u0441\u0442\u0438",alternatives:["\u043F\u043E\u043A\u043B\u0430\u0434\u0438","\u043F\u043E\u043C\u0456\u0441\u0442\u0438\u0442\u0438","\u043F\u043E\u043C\u0456\u0441\u0442\u0438","\u0432\u0441\u0442\u0430\u0432\u0438\u0442\u0438","\u0432\u0441\u0442\u0430\u0432"],normalized:"put",form:"infinitive"},append:{primary:"\u0434\u043E\u0434\u0430\u0442\u0438_\u0432_\u043A\u0456\u043D\u0435\u0446\u044C",alternatives:["\u0434\u043E\u043F\u0438\u0441\u0430\u0442\u0438"],normalized:"append",form:"infinitive"},prepend:{primary:"\u0434\u043E\u0434\u0430\u0442\u0438_\u043D\u0430_\u043F\u043E\u0447\u0430\u0442\u043E\u043A",normalized:"prepend",form:"infinitive"},take:{primary:"\u0432\u0437\u044F\u0442\u0438",alternatives:["\u0432\u0456\u0437\u044C\u043C\u0438"],normalized:"take",form:"infinitive"},make:{primary:"\u0441\u0442\u0432\u043E\u0440\u0438\u0442\u0438",alternatives:["\u0441\u0442\u0432\u043E\u0440\u0438"],normalized:"make",form:"infinitive"},clone:{primary:"\u043A\u043B\u043E\u043D\u0443\u0432\u0430\u0442\u0438",alternatives:["\u043A\u043B\u043E\u043D\u0443\u0439"],normalized:"clone",form:"infinitive"},swap:{primary:"\u043F\u043E\u043C\u0456\u043D\u044F\u0442\u0438",alternatives:["\u043F\u043E\u043C\u0456\u043D\u044F\u0439"],normalized:"swap",form:"infinitive"},morph:{primary:"\u0442\u0440\u0430\u043D\u0441\u0444\u043E\u0440\u043C\u0443\u0432\u0430\u0442\u0438",alternatives:["\u0442\u0440\u0430\u043D\u0441\u0444\u043E\u0440\u043C\u0443\u0439"],normalized:"morph",form:"infinitive"},set:{primary:"\u0432\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0438",alternatives:["\u0432\u0441\u0442\u0430\u043D\u043E\u0432\u0438","\u0437\u0430\u0434\u0430\u0442\u0438","\u0437\u0430\u0434\u0430\u0439"],normalized:"set",form:"infinitive"},get:{primary:"\u043E\u0442\u0440\u0438\u043C\u0430\u0442\u0438",alternatives:["\u043E\u0442\u0440\u0438\u043C\u0430\u0439"],normalized:"get",form:"infinitive"},increment:{primary:"\u0437\u0431\u0456\u043B\u044C\u0448\u0438\u0442\u0438",alternatives:["\u0437\u0431\u0456\u043B\u044C\u0448"],normalized:"increment",form:"infinitive"},decrement:{primary:"\u0437\u043C\u0435\u043D\u0448\u0438\u0442\u0438",alternatives:["\u0437\u043C\u0435\u043D\u0448"],normalized:"decrement",form:"infinitive"},log:{primary:"\u0437\u0430\u043F\u0438\u0441\u0430\u0442\u0438",alternatives:["\u0437\u0430\u043F\u0438\u0448\u0438"],normalized:"log",form:"infinitive"},show:{primary:"\u043F\u043E\u043A\u0430\u0437\u0430\u0442\u0438",alternatives:["\u043F\u043E\u043A\u0430\u0436\u0438"],normalized:"show",form:"infinitive"},hide:{primary:"\u0441\u0445\u043E\u0432\u0430\u0442\u0438",alternatives:["\u0441\u0445\u043E\u0432\u0430\u0439","\u043F\u0440\u0438\u0445\u043E\u0432\u0430\u0442\u0438","\u043F\u0440\u0438\u0445\u043E\u0432\u0430\u0439"],normalized:"hide",form:"infinitive"},transition:{primary:"\u0430\u043D\u0456\u043C\u0443\u0432\u0430\u0442\u0438",alternatives:["\u0430\u043D\u0456\u043C\u0443\u0439"],normalized:"transition",form:"infinitive"},on:{primary:"\u043F\u0440\u0438",alternatives:["\u043A\u043E\u043B\u0438"],normalized:"on"},trigger:{primary:"\u0432\u0438\u043A\u043B\u0438\u043A\u0430\u0442\u0438",alternatives:["\u0432\u0438\u043A\u043B\u0438\u0447"],normalized:"trigger",form:"infinitive"},send:{primary:"\u043D\u0430\u0434\u0456\u0441\u043B\u0430\u0442\u0438",alternatives:["\u043D\u0430\u0434\u0456\u0448\u043B\u0438"],normalized:"send",form:"infinitive"},focus:{primary:"\u0441\u0444\u043E\u043A\u0443\u0441\u0443\u0432\u0430\u0442\u0438",alternatives:["\u0441\u0444\u043E\u043A\u0443\u0441\u0443\u0439","\u0444\u043E\u043A\u0443\u0441"],normalized:"focus",form:"infinitive"},blur:{primary:"\u0440\u043E\u0437\u0444\u043E\u043A\u0443\u0441\u0443\u0432\u0430\u0442\u0438",alternatives:["\u0440\u043E\u0437\u0444\u043E\u043A\u0443\u0441\u0443\u0439"],normalized:"blur",form:"infinitive"},click:{primary:"\u043A\u043B\u0456\u043A\u0443",alternatives:["\u043A\u043B\u0456\u043A","\u043D\u0430\u0442\u0438\u0441\u043A\u0430\u043D\u043D\u0456"],normalized:"click"},hover:{primary:"\u043D\u0430\u0432\u0435\u0434\u0435\u043D\u043D\u0456",alternatives:["\u043D\u0430\u0432\u0435\u0434\u0435\u043D\u043D\u044F"],normalized:"hover"},submit:{primary:"\u0432\u0456\u0434\u043F\u0440\u0430\u0432\u0446\u0456",alternatives:["\u0432\u0456\u0434\u043F\u0440\u0430\u0432\u043A\u0430"],normalized:"submit"},input:{primary:"\u0432\u0432\u0435\u0434\u0435\u043D\u043D\u0456",alternatives:["\u0432\u0432\u0435\u0434\u0435\u043D\u043D\u044F"],normalized:"input"},change:{primary:"\u0437\u043C\u0456\u043D\u0456",alternatives:["\u0437\u043C\u0456\u043D\u0430"],normalized:"change"},go:{primary:"\u043F\u0435\u0440\u0435\u0439\u0442\u0438",alternatives:["\u043F\u0435\u0440\u0435\u0439\u0434\u0438","\u0439\u0442\u0438","\u0439\u0434\u0438"],normalized:"go",form:"infinitive"},wait:{primary:"\u0447\u0435\u043A\u0430\u0442\u0438",alternatives:["\u0447\u0435\u043A\u0430\u0439","\u0437\u0430\u0447\u0435\u043A\u0430\u0439"],normalized:"wait",form:"infinitive"},fetch:{primary:"\u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438",alternatives:["\u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436"],normalized:"fetch",form:"infinitive"},settle:{primary:"\u0441\u0442\u0430\u0431\u0456\u043B\u0456\u0437\u0443\u0432\u0430\u0442\u0438",normalized:"settle",form:"infinitive"},if:{primary:"\u044F\u043A\u0449\u043E",normalized:"if"},when:{primary:"\u043A\u043E\u043B\u0438",normalized:"when"},where:{primary:"\u0434\u0435",normalized:"where"},else:{primary:"\u0456\u043D\u0430\u043A\u0448\u0435",normalized:"else"},repeat:{primary:"\u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438",alternatives:["\u043F\u043E\u0432\u0442\u043E\u0440\u0438"],normalized:"repeat",form:"infinitive"},for:{primary:"\u0434\u043B\u044F",alternatives:["\u043A\u043E\u0436\u043D\u0438\u0439"],normalized:"for"},while:{primary:"\u043F\u043E\u043A\u0438",normalized:"while"},continue:{primary:"\u043F\u0440\u043E\u0434\u043E\u0432\u0436\u0438\u0442\u0438",alternatives:["\u043F\u0440\u043E\u0434\u043E\u0432\u0436\u0443\u0439"],normalized:"continue",form:"infinitive"},halt:{primary:"\u0437\u0443\u043F\u0438\u043D\u0438\u0442\u0438",alternatives:["\u0437\u0443\u043F\u0438\u043D\u0438\u0441\u044C","\u0441\u0442\u043E\u043F"],normalized:"halt",form:"infinitive"},throw:{primary:"\u043A\u0438\u043D\u0443\u0442\u0438",alternatives:["\u043A\u0438\u043D\u044C"],normalized:"throw",form:"infinitive"},call:{primary:"\u0432\u0438\u043A\u043B\u0438\u043A\u0430\u0442\u0438",alternatives:["\u0432\u0438\u043A\u043B\u0438\u0447"],normalized:"call",form:"infinitive"},return:{primary:"\u043F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u0438",alternatives:["\u043F\u043E\u0432\u0435\u0440\u043D\u0438"],normalized:"return",form:"infinitive"},then:{primary:"\u043F\u043E\u0442\u0456\u043C",alternatives:["\u0434\u0430\u043B\u0456","\u0442\u043E\u0434\u0456"],normalized:"then"},and:{primary:"\u0456",alternatives:["\u0442\u0430"],normalized:"and"},end:{primary:"\u043A\u0456\u043D\u0435\u0446\u044C",normalized:"end"},js:{primary:"js",normalized:"js"},async:{primary:"\u0430\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u043E",alternatives:["async"],normalized:"async"},tell:{primary:"\u0441\u043A\u0430\u0437\u0430\u0442\u0438",alternatives:["\u0441\u043A\u0430\u0436\u0438"],normalized:"tell",form:"infinitive"},default:{primary:"\u0437\u0430_\u0437\u0430\u043C\u043E\u0432\u0447\u0443\u0432\u0430\u043D\u043D\u044F\u043C",normalized:"default"},init:{primary:"\u0456\u043D\u0456\u0446\u0456\u0430\u043B\u0456\u0437\u0443\u0432\u0430\u0442\u0438",alternatives:["\u0456\u043D\u0456\u0446\u0456\u0430\u043B\u0456\u0437\u0443\u0439"],normalized:"init",form:"infinitive"},behavior:{primary:"\u043F\u043E\u0432\u0435\u0434\u0456\u043D\u043A\u0430",normalized:"behavior"},install:{primary:"\u0432\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0438_\u043F\u0430\u043A\u0435\u0442",normalized:"install",form:"infinitive"},measure:{primary:"\u0432\u0438\u043C\u0456\u0440\u044F\u0442\u0438",alternatives:["\u0432\u0438\u043C\u0456\u0440\u044F\u0439"],normalized:"measure",form:"infinitive"},beep:{primary:"\u0437\u0432\u0443\u043A",normalized:"beep"},break:{primary:"\u043F\u0435\u0440\u0435\u0440\u0432\u0430\u0442\u0438",normalized:"break"},copy:{primary:"\u043A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438",normalized:"copy"},exit:{primary:"\u0432\u0438\u0439\u0442\u0438",normalized:"exit"},pick:{primary:"\u0432\u0438\u0431\u0440\u0430\u0442\u0438",normalized:"pick"},render:{primary:"\u0432\u0456\u0434\u043E\u0431\u0440\u0430\u0437\u0438\u0442\u0438",normalized:"render"},into:{primary:"\u0432",alternatives:["\u0443"],normalized:"into"},before:{primary:"\u0434\u043E",alternatives:["\u043F\u0435\u0440\u0435\u0434"],normalized:"before"},after:{primary:"\u043F\u0456\u0441\u043B\u044F",normalized:"after"},until:{primary:"\u0434\u043E",alternatives:["\u043F\u043E\u043A\u0438_\u043D\u0435"],normalized:"until"},event:{primary:"\u043F\u043E\u0434\u0456\u044F",normalized:"event"},from:{primary:"\u0437",alternatives:["\u0432\u0456\u0434","\u0456\u0437"],normalized:"from"}},eventHandler:{keyword:{primary:"\u043F\u0440\u0438",alternatives:["\u043A\u043E\u043B\u0438"],normalized:"on"},sourceMarker:{primary:"\u043D\u0430",alternatives:["\u0432","\u043F\u0440\u0438"],position:"before"},eventMarker:{primary:"\u043F\u0440\u0438",alternatives:["\u043A\u043E\u043B\u0438"],position:"before"},temporalMarkers:["\u043A\u043E\u043B\u0438","\u044F\u043A\u0449\u043E"]}};function re(i){return{stem:i,confidence:1}}function T(i,e,t){return t?{stem:i,confidence:e,metadata:t}:{stem:i,confidence:e}}function At(i){return/[а-яА-ЯіІїЇєЄґҐьЬ']/.test(i)}var ct=new Map([["\u043F\u0435\u0440\u0435\u043C\u043A\u043D\u0438","\u043F\u0435\u0440\u0435\u043C\u043A\u043D\u0443\u0442\u0438"],["\u0434\u043E\u0434\u0430\u0439","\u0434\u043E\u0434\u0430\u0442\u0438"],["\u0432\u0438\u0434\u0430\u043B\u0438","\u0432\u0438\u0434\u0430\u043B\u0438\u0442\u0438"],["\u043F\u0440\u0438\u0431\u0435\u0440\u0438","\u043F\u0440\u0438\u0431\u0440\u0430\u0442\u0438"],["\u043F\u043E\u043A\u043B\u0430\u0434\u0438","\u043F\u043E\u043A\u043B\u0430\u0441\u0442\u0438"],["\u043F\u043E\u043C\u0456\u0441\u0442\u0438","\u043F\u043E\u043C\u0456\u0441\u0442\u0438\u0442\u0438"],["\u0432\u0441\u0442\u0430\u0432","\u0432\u0441\u0442\u0430\u0432\u0438\u0442\u0438"],["\u0432\u0456\u0437\u044C\u043C\u0438","\u0432\u0437\u044F\u0442\u0438"],["\u0441\u0442\u0432\u043E\u0440\u0438","\u0441\u0442\u0432\u043E\u0440\u0438\u0442\u0438"],["\u043A\u043B\u043E\u043D\u0443\u0439","\u043A\u043B\u043E\u043D\u0443\u0432\u0430\u0442\u0438"],["\u043F\u043E\u043C\u0456\u043D\u044F\u0439","\u043F\u043E\u043C\u0456\u043D\u044F\u0442\u0438"],["\u0442\u0440\u0430\u043D\u0441\u0444\u043E\u0440\u043C\u0443\u0439","\u0442\u0440\u0430\u043D\u0441\u0444\u043E\u0440\u043C\u0443\u0432\u0430\u0442\u0438"],["\u0432\u0441\u0442\u0430\u043D\u043E\u0432\u0438","\u0432\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0438"],["\u0437\u0430\u0434\u0430\u0439","\u0437\u0430\u0434\u0430\u0442\u0438"],["\u043E\u0442\u0440\u0438\u043C\u0430\u0439","\u043E\u0442\u0440\u0438\u043C\u0430\u0442\u0438"],["\u0437\u0431\u0456\u043B\u044C\u0448","\u0437\u0431\u0456\u043B\u044C\u0448\u0438\u0442\u0438"],["\u0437\u043C\u0435\u043D\u0448","\u0437\u043C\u0435\u043D\u0448\u0438\u0442\u0438"],["\u0437\u0430\u043F\u0438\u0448\u0438","\u0437\u0430\u043F\u0438\u0441\u0430\u0442\u0438"],["\u043F\u043E\u043A\u0430\u0436\u0438","\u043F\u043E\u043A\u0430\u0437\u0430\u0442\u0438"],["\u0441\u0445\u043E\u0432\u0430\u0439","\u0441\u0445\u043E\u0432\u0430\u0442\u0438"],["\u043F\u0440\u0438\u0445\u043E\u0432\u0430\u0439","\u043F\u0440\u0438\u0445\u043E\u0432\u0430\u0442\u0438"],["\u0430\u043D\u0456\u043C\u0443\u0439","\u0430\u043D\u0456\u043C\u0443\u0432\u0430\u0442\u0438"],["\u0432\u0438\u043A\u043B\u0438\u0447","\u0432\u0438\u043A\u043B\u0438\u043A\u0430\u0442\u0438"],["\u043D\u0430\u0434\u0456\u0448\u043B\u0438","\u043D\u0430\u0434\u0456\u0441\u043B\u0430\u0442\u0438"],["\u0441\u0444\u043E\u043A\u0443\u0441\u0443\u0439","\u0441\u0444\u043E\u043A\u0443\u0441\u0443\u0432\u0430\u0442\u0438"],["\u0440\u043E\u0437\u0444\u043E\u043A\u0443\u0441\u0443\u0439","\u0440\u043E\u0437\u0444\u043E\u043A\u0443\u0441\u0443\u0432\u0430\u0442\u0438"],["\u043F\u0435\u0440\u0435\u0439\u0434\u0438","\u043F\u0435\u0440\u0435\u0439\u0442\u0438"],["\u0439\u0434\u0438","\u0439\u0442\u0438"],["\u0447\u0435\u043A\u0430\u0439","\u0447\u0435\u043A\u0430\u0442\u0438"],["\u0437\u0430\u0447\u0435\u043A\u0430\u0439","\u0437\u0430\u0447\u0435\u043A\u0430\u0442\u0438"],["\u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436","\u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438"],["\u043F\u043E\u0432\u0442\u043E\u0440\u0438","\u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438"],["\u043F\u0440\u043E\u0434\u043E\u0432\u0436\u0443\u0439","\u043F\u0440\u043E\u0434\u043E\u0432\u0436\u0438\u0442\u0438"],["\u043A\u0438\u043D\u044C","\u043A\u0438\u043D\u0443\u0442\u0438"],["\u043F\u043E\u0432\u0435\u0440\u043D\u0438","\u043F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u0438"],["\u0441\u043A\u0430\u0436\u0438","\u0441\u043A\u0430\u0437\u0430\u0442\u0438"],["\u0456\u043D\u0456\u0446\u0456\u0430\u043B\u0456\u0437\u0443\u0439","\u0456\u043D\u0456\u0446\u0456\u0430\u043B\u0456\u0437\u0443\u0432\u0430\u0442\u0438"],["\u0432\u0438\u043C\u0456\u0440\u044F\u0439","\u0432\u0438\u043C\u0456\u0440\u044F\u0442\u0438"]]),ce=class{constructor(){this.language="uk"}isNormalizable(e){return e.length<3?!1:At(e)}normalize(e){let t=e.toLowerCase();if(t.endsWith("\u0441\u044F")||t.endsWith("\u0441\u044C")){let a=this.tryReflexiveNormalization(t);if(a)return a}if(t.endsWith("\u0442\u0438")||t.endsWith("\u0447\u0438"))return re(e);let r=this.tryImperativeLookup(t);if(r)return r;let n=this.tryPastTenseNormalization(t);if(n)return n;let o=this.tryPresentTenseNormalization(t);if(o)return o;let s=this.tryGenericImperativeNormalization(t);return s||re(e)}tryReflexiveNormalization(e){let t=e.slice(0,-2);if(e.endsWith("\u0442\u0438\u0441\u044F")||e.endsWith("\u0447\u0438\u0441\u044F"))return re(e);let r=this.normalizeNonReflexive(t);if(r.confidence<1){let n=r.stem.endsWith("\u0442\u0438")?r.stem.slice(0,-2)+"\u0442\u0438\u0441\u044F":r.stem+"\u0441\u044F";return T(n,r.confidence*.95,{removedSuffixes:["\u0441\u044F",...r.metadata?.removedSuffixes||[]],conjugationType:"reflexive"})}return null}normalizeNonReflexive(e){if(e.endsWith("\u0442\u0438")||e.endsWith("\u0447\u0438"))return re(e);let t=this.tryImperativeLookup(e);if(t)return t;let r=this.tryPastTenseNormalization(e);if(r)return r;let n=this.tryPresentTenseNormalization(e);if(n)return n;let o=this.tryGenericImperativeNormalization(e);return o||re(e)}tryImperativeLookup(e){return ct.has(e)?T(ct.get(e),.95,{removedSuffixes:["imperative"],conjugationType:"imperative"}):null}tryGenericImperativeNormalization(e){return e.endsWith("\u0439\u0442\u0435")&&e.length>5?T(e.slice(0,-3)+"\u0442\u0438",.8,{removedSuffixes:["\u0439\u0442\u0435"],conjugationType:"imperative"}):e.endsWith("\u0456\u0442\u044C")&&e.length>5?T(e.slice(0,-3)+"\u0438\u0442\u0438",.8,{removedSuffixes:["\u0456\u0442\u044C"],conjugationType:"imperative"}):e.endsWith("\u0439")&&e.length>3?T(e.slice(0,-1)+"\u0442\u0438",.75,{removedSuffixes:["\u0439"],conjugationType:"imperative"}):e.endsWith("\u0438")&&e.length>3?T(e+"\u0442\u0438",.7,{removedSuffixes:["\u0438\u2192\u0438\u0442\u0438"],conjugationType:"imperative"}):null}tryPastTenseNormalization(e){return e.endsWith("\u0430\u043B\u0430")&&e.length>4?T(e.slice(0,-3)+"\u0430\u0442\u0438",.85,{removedSuffixes:["\u0430\u043B\u0430"],conjugationType:"past"}):e.endsWith("\u0438\u043B\u0430")&&e.length>4?T(e.slice(0,-3)+"\u0438\u0442\u0438",.85,{removedSuffixes:["\u0438\u043B\u0430"],conjugationType:"past"}):e.endsWith("\u0430\u043B\u0438")&&e.length>4?T(e.slice(0,-3)+"\u0430\u0442\u0438",.85,{removedSuffixes:["\u0430\u043B\u0438"],conjugationType:"past"}):e.endsWith("\u0438\u043B\u0438")&&e.length>4?T(e.slice(0,-3)+"\u0438\u0442\u0438",.85,{removedSuffixes:["\u0438\u043B\u0438"],conjugationType:"past"}):e.endsWith("\u0430\u0432")&&e.length>3?T(e.slice(0,-2)+"\u0430\u0442\u0438",.82,{removedSuffixes:["\u0430\u0432"],conjugationType:"past"}):e.endsWith("\u0438\u0432")&&e.length>3?T(e.slice(0,-2)+"\u0438\u0442\u0438",.82,{removedSuffixes:["\u0438\u0432"],conjugationType:"past"}):null}tryPresentTenseNormalization(e){return e.endsWith("\u0438\u0448")&&e.length>3?T(e.slice(0,-2)+"\u0438\u0442\u0438",.8,{removedSuffixes:["\u0438\u0448"],conjugationType:"present"}):e.endsWith("\u0438\u0442\u044C")&&e.length>4?T(e.slice(0,-3)+"\u0438\u0442\u0438",.78,{removedSuffixes:["\u0438\u0442\u044C"],conjugationType:"present"}):e.endsWith("\u0438\u043C\u043E")&&e.length>4?T(e.slice(0,-3)+"\u0438\u0442\u0438",.8,{removedSuffixes:["\u0438\u043C\u043E"],conjugationType:"present"}):e.endsWith("\u044F\u0442\u044C")&&e.length>4?T(e.slice(0,-3)+"\u0438\u0442\u0438",.78,{removedSuffixes:["\u044F\u0442\u044C"],conjugationType:"present"}):e.endsWith("\u0454\u0448")&&e.length>3?T(e.slice(0,-2)+"\u0430\u0442\u0438",.78,{removedSuffixes:["\u0454\u0448"],conjugationType:"present"}):e.endsWith("\u0435\u0448")&&e.length>3?T(e.slice(0,-2)+"\u0430\u0442\u0438",.75,{removedSuffixes:["\u0435\u0448"],conjugationType:"present"}):e.endsWith("\u0454")&&e.length>2?T(e.slice(0,-1)+"\u0430\u0442\u0438",.72,{removedSuffixes:["\u0454"],conjugationType:"present"}):e.endsWith("\u0454\u043C\u043E")&&e.length>4?T(e.slice(0,-3)+"\u0430\u0442\u0438",.8,{removedSuffixes:["\u0454\u043C\u043E"],conjugationType:"present"}):e.endsWith("\u044E\u0442\u044C")&&e.length>4?T(e.slice(0,-3)+"\u0430\u0442\u0438",.78,{removedSuffixes:["\u044E\u0442\u044C"],conjugationType:"present"}):e.endsWith("\u0443\u0442\u044C")&&e.length>4?T(e.slice(0,-3)+"\u0430\u0442\u0438",.75,{removedSuffixes:["\u0443\u0442\u044C"],conjugationType:"present"}):null}},pn=new ce;var{isLetter:Vt,isIdentifierChar:Ot}=ke(/[a-zA-Zа-яА-ЯіІїЇєЄґҐьЬ']/),ut=new Set(["\u0432","\u0443","\u043D\u0430","\u0437","\u0456\u0437","\u0437\u0456","\u0434\u043E","\u0432\u0456\u0434","\u043E","\u043E\u0431","\u043F\u0440\u0438","\u0434\u043B\u044F","\u043F\u0456\u0434","\u043D\u0430\u0434","\u043F\u0435\u0440\u0435\u0434","\u043C\u0456\u0436","\u0447\u0435\u0440\u0435\u0437","\u0431\u0435\u0437","\u043F\u043E","\u0437\u0430","\u043F\u0440\u043E","\u043F\u0456\u0441\u043B\u044F","\u043D\u0430\u0432\u043A\u043E\u043B\u043E","\u043F\u0440\u043E\u0442\u0438","\u0437\u0430\u043C\u0456\u0441\u0442\u044C","\u043A\u0440\u0456\u043C","\u0441\u0435\u0440\u0435\u0434","\u043A"]),It=[{native:"\u0456\u0441\u0442\u0438\u043D\u0430",normalized:"true"},{native:"\u043F\u0440\u0430\u0432\u0434\u0430",normalized:"true"},{native:"\u0445\u0438\u0431\u043D\u0456\u0441\u0442\u044C",normalized:"false"},{native:"null",normalized:"null"},{native:"\u043D\u0435\u0432\u0438\u0437\u043D\u0430\u0447\u0435\u043D\u043E",normalized:"undefined"},{native:"\u043F\u0435\u0440\u0448\u0438\u0439",normalized:"first"},{native:"\u043F\u0435\u0440\u0448\u0430",normalized:"first"},{native:"\u043F\u0435\u0440\u0448\u0435",normalized:"first"},{native:"\u043E\u0441\u0442\u0430\u043D\u043D\u0456\u0439",normalized:"last"},{native:"\u043E\u0441\u0442\u0430\u043D\u043D\u044F",normalized:"last"},{native:"\u043E\u0441\u0442\u0430\u043D\u043D\u0454",normalized:"last"},{native:"\u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0438\u0439",normalized:"next"},{native:"\u043D\u0430\u0441\u0442\u0443\u043F\u043D\u0430",normalized:"next"},{native:"\u043F\u043E\u043F\u0435\u0440\u0435\u0434\u043D\u0456\u0439",normalized:"previous"},{native:"\u043F\u043E\u043F\u0435\u0440\u0435\u0434\u043D\u044F",normalized:"previous"},{native:"\u043D\u0430\u0439\u0431\u043B\u0438\u0436\u0447\u0438\u0439",normalized:"closest"},{native:"\u0431\u0430\u0442\u044C\u043A\u043E",normalized:"parent"},{native:"\u043A\u043B\u0456\u043A",normalized:"click"},{native:"\u043D\u0430\u0442\u0438\u0441\u043A\u0430\u043D\u043D\u044F",normalized:"click"},{native:"click",normalized:"click"},{native:"\u0437\u043C\u0456\u043D\u0430",normalized:"change"},{native:"\u043D\u0430\u0434\u0441\u0438\u043B\u0430\u043D\u043D\u044F",normalized:"submit"},{native:"\u043A\u043B\u0430\u0432\u0456\u0448\u0430",normalized:"keydown"},{native:"\u043D\u0430\u0432\u0435\u0434\u0435\u043D\u043D\u044F",normalized:"mouseover"},{native:"\u0432\u0456\u0434\u0432\u0435\u0434\u0435\u043D\u043D\u044F",normalized:"mouseout"},{native:"\u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F",normalized:"load"},{native:"\u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0430",normalized:"scroll"},{native:"\u0432\u0432\u0435\u0434\u0435\u043D\u043D\u044F",normalized:"input"},{native:"\u043C\u0456\u0439",normalized:"my"},{native:"\u043C\u043E\u044F",normalized:"my"},{native:"\u043C\u043E\u0454",normalized:"my"},{native:"\u043C\u043E\u0457",normalized:"my"},{native:"\u0441\u0435\u043A\u0443\u043D\u0434\u0430",normalized:"s"},{native:"\u0441\u0435\u043A\u0443\u043D\u0434\u0438",normalized:"s"},{native:"\u0441\u0435\u043A\u0443\u043D\u0434",normalized:"s"},{native:"\u043C\u0456\u043B\u0456\u0441\u0435\u043A\u0443\u043D\u0434\u0430",normalized:"ms"},{native:"\u043C\u0456\u043B\u0456\u0441\u0435\u043A\u0443\u043D\u0434\u0438",normalized:"ms"},{native:"\u043C\u0456\u043B\u0456\u0441\u0435\u043A\u0443\u043D\u0434",normalized:"ms"},{native:"\u0445\u0432\u0438\u043B\u0438\u043D\u0430",normalized:"m"},{native:"\u0445\u0432\u0438\u043B\u0438\u043D\u0438",normalized:"m"},{native:"\u0445\u0432\u0438\u043B\u0438\u043D",normalized:"m"},{native:"\u0433\u043E\u0434\u0438\u043D\u0430",normalized:"h"},{native:"\u0433\u043E\u0434\u0438\u043D\u0438",normalized:"h"},{native:"\u0433\u043E\u0434\u0438\u043D",normalized:"h"},{native:"\u0430\u0431\u043E",normalized:"or"},{native:"\u043D\u0435",normalized:"not"},{native:"\u0454",normalized:"is"},{native:"\u0456\u0441\u043D\u0443\u0454",normalized:"exists"},{native:"\u043F\u043E\u0440\u043E\u0436\u043D\u0456\u0439",normalized:"empty"},{native:"\u043F\u043E\u0440\u043E\u0436\u043D\u044F",normalized:"empty"},{native:"\u043F\u043E\u0440\u043E\u0436\u043D\u0454",normalized:"empty"}],je=class extends te{constructor(){super();this.language="uk";this.direction="ltr";this.initializeKeywordsFromProfile(D,It),this.normalizer=new ce}tokenize(t){let r=[],n=0;for(;n<t.length;){if(M(t[n])){n++;continue}if(J(t[n])){let a=this.tryEventModifier(t,n);if(a){r.push(a),n=a.position.end;continue}if(this.tryPropertyAccess(t,n,r)){n++;continue}let l=this.trySelector(t,n);if(l){r.push(l),n=l.position.end;continue}}if(ee(t[n])){let a=this.tryString(t,n);if(a){r.push(a),n=a.position.end;continue}}if(le(t,n)){let a=this.tryUrl(t,n);if(a){r.push(a),n=a.position.end;continue}}if(w(t[n])||t[n]==="-"&&n+1<t.length&&w(t[n+1])){let a=this.extractNumber(t,n);if(a){r.push(a),n=a.position.end;continue}}let o=this.tryVariableRef(t,n);if(o){r.push(o),n=o.position.end;continue}if(Vt(t[n])){let a=this.extractWord(t,n);if(a){r.push(a),n=a.position.end;continue}}let s=this.tryOperator(t,n);if(s){r.push(s),n=s.position.end;continue}n++}return new I(r,"uk")}classifyToken(t){let r=t.toLowerCase();return ut.has(r)?"particle":this.isKeyword(r)?"keyword":t.startsWith("#")||t.startsWith(".")||t.startsWith("[")||t.startsWith("*")||t.startsWith("<")?"selector":t.startsWith('"')||t.startsWith("'")||/^\d/.test(t)?"literal":"identifier"}extractWord(t,r){let n=r,o="";for(;n<t.length&&Ot(t[n]);)o+=t[n++];if(!o)return null;let s=o.toLowerCase();if(ut.has(s))return b(o,"particle",k(r,n));let a=this.lookupKeyword(s);return a?b(o,"keyword",k(r,n),a.normalized):b(o,"identifier",k(r,n))}extractNumber(t,r){let n=r,o="";for((t[n]==="-"||t[n]==="+")&&(o+=t[n++]);n<t.length&&w(t[n]);)o+=t[n++];if(n<t.length&&t[n]===".")for(o+=t[n++];n<t.length&&w(t[n]);)o+=t[n++];let s=n;for(;s<t.length&&M(t[s]);)s++;let a=t.slice(s).toLowerCase();return a.startsWith("\u043C\u0456\u043B\u0456\u0441\u0435\u043A\u0443\u043D\u0434")||a.startsWith("\u043C\u0441")?a.startsWith("\u043C\u0456\u043B\u0456\u0441\u0435\u043A\u0443\u043D\u0434")?(o+="ms",n=s+10,a.length>10&&/[аи]/.test(a[10])&&n++):(o+="ms",n=s+2):a.startsWith("\u0441\u0435\u043A\u0443\u043D\u0434")||a.startsWith("\u0441\u0435\u043A")?a.startsWith("\u0441\u0435\u043A\u0443\u043D\u0434")?(o+="s",n=s+6,a.length>6&&/[аи]/.test(a[6])&&n++):(o+="s",n=s+3):a.startsWith("\u0445\u0432\u0438\u043B\u0438\u043D")||a.startsWith("\u0445\u0432")?a.startsWith("\u0445\u0432\u0438\u043B\u0438\u043D")?(o+="m",n=s+6,a.length>6&&/[аи]/.test(a[6])&&n++):(o+="m",n=s+2):a.startsWith("\u0433\u043E\u0434\u0438\u043D")?(o+="h",n=s+5,a.length>5&&/[аи]/.test(a[5])&&n++):a.startsWith("ms")?(o+="ms",n=s+2):a.startsWith("s")&&!a.startsWith("se")&&(o+="s",n=s+1),!o||o==="-"||o==="+"?null:b(o,"literal",k(r,n))}},Re=new je;nt("uk",Re,D);function dt(i){return it(i)}function ne(i,e){return at(i,e)}function Ce(){return xe()}function A(i){let e="complex";return i.startsWith("#")&&!i.includes(" ")?e="id":i.startsWith(".")&&!i.includes(" ")?e="class":i.startsWith("[")&&i.endsWith("]")?e="attribute":/^[a-z][a-z0-9]*$/i.test(i)&&(e="element"),{type:"selector",value:i,selectorKind:e}}function S(i,e){let t={type:"literal",value:i};return e!==void 0?{type:"literal",value:i,dataType:e}:t}var Wt=new Set(["me","you","it","result","event","target","body"]);function ue(i){return Wt.has(i)}function L(i){return{type:"reference",value:i}}function ie(i,e){return{type:"property-path",object:i,property:e}}function _(i,e,t){let r={kind:"command",action:i,roles:new Map(Object.entries(e))};return t!==void 0?{...r,metadata:t}:r}function H(i,e,t,r,n,o){let s=new Map;s.set("event",i);let a={kind:"event-handler",action:"on",roles:s,body:e};return t!==void 0&&(a.eventModifiers=t),r!==void 0&&(a.metadata=r),n!==void 0&&n.length>0&&(a.parameterNames=n),o!==void 0&&o.length>0&&(a.additionalEvents=o),a}function Be(i,e="then",t){let r={kind:"compound",action:"compound",roles:new Map,statements:i,chainType:e};return t!==void 0&&(r.metadata=t),r}function Ke(i,e){return!e||e.length===0||e.includes(i)||e.includes("expression")?!0:i==="property-path"?e.some(t=>["selector","reference","expression"].includes(t)):!1}function pt(i,e){return i.possessive?.keywords?.[e]}var j=class j{constructor(){this.stemMatchCount=0;this.totalKeywordMatches=0}matchPattern(e,t){let r=e.mark(),n=new Map;if(this.currentProfile=V(t.language),this.stemMatchCount=0,this.totalKeywordMatches=0,!this.matchTokenSequence(e,t.template.tokens,n))return e.reset(r),null;let s=this.calculateConfidence(t,n);return this.applyExtractionRules(t,n),{pattern:t,captured:n,consumedTokens:e.position()-r.position,confidence:s}}matchBest(e,t){let r=[];for(let o of t){let s=e.mark(),a=this.matchPattern(e,o);a&&r.push(a),e.reset(s)}if(r.length===0)return null;r.sort((o,s)=>{let a=s.pattern.priority-o.pattern.priority;return a!==0?a:s.confidence-o.confidence});let n=r[0];return this.matchPattern(e,n.pattern),n}matchTokenSequence(e,t,r){let n=t[0],o=n?.type==="literal"&&(n.value==="and"||n.value==="then"||n.alternatives?.includes("and")||n.alternatives?.includes("then"));if(this.currentProfile?.code==="ar"&&!o)for(;e.peek()?.kind==="conjunction";)e.advance();for(let s of t)if(!this.matchPatternToken(e,s,r)){if(this.isOptional(s))continue;return!1}return!0}matchPatternToken(e,t,r){switch(t.type){case"literal":return this.matchLiteralToken(e,t);case"role":return this.matchRoleToken(e,t,r);case"group":return this.matchGroupToken(e,t,r);default:return!1}}matchLiteralToken(e,t){let r=e.peek();if(!r)return!1;let n=this.getMatchType(r,t.value);if(n!=="none")return this.totalKeywordMatches++,n==="stem"&&this.stemMatchCount++,e.advance(),!0;if(t.alternatives)for(let o of t.alternatives){let s=this.getMatchType(r,o);if(s!=="none")return this.totalKeywordMatches++,s==="stem"&&this.stemMatchCount++,e.advance(),!0}return!1}matchRoleToken(e,t,r){this.skipNoiseWords(e);let n=e.peek();if(!n)return t.optional||!1;let o=this.tryMatchPossessiveExpression(e);if(o)return t.expectedTypes&&t.expectedTypes.length>0&&!t.expectedTypes.includes(o.type)&&!t.expectedTypes.includes("expression")?t.optional||!1:(r.set(t.role,o),!0);let s=this.tryMatchMethodCallExpression(e);if(s)return t.expectedTypes&&t.expectedTypes.length>0&&!t.expectedTypes.includes(s.type)&&!t.expectedTypes.includes("expression")?t.optional||!1:(r.set(t.role,s),!0);let a=this.tryMatchPossessiveSelectorExpression(e);if(a)return t.expectedTypes&&t.expectedTypes.length>0&&!Ke(a.type,t.expectedTypes)?t.optional||!1:(r.set(t.role,a),!0);let l=this.tryMatchPropertyAccessExpression(e);if(l)return t.expectedTypes&&t.expectedTypes.length>0&&!t.expectedTypes.includes(l.type)&&!t.expectedTypes.includes("expression")?t.optional||!1:(r.set(t.role,l),!0);let c=this.tryMatchSelectorPropertyExpression(e);if(c)return t.expectedTypes&&t.expectedTypes.length>0&&!Ke(c.type,t.expectedTypes)?t.optional||!1:(r.set(t.role,c),!0);let m=this.tokenToSemanticValue(n);return!m||t.expectedTypes&&t.expectedTypes.length>0&&!t.expectedTypes.includes(m.type)?t.optional||!1:(r.set(t.role,m),e.advance(),!0)}tryMatchPossessiveExpression(e){let t=e.peek();if(!t||!this.currentProfile)return null;let r=(t.normalized||t.value).toLowerCase(),n=pt(this.currentProfile,r);if(!n)return null;let o=e.mark();e.advance();let s=e.peek();if(!s)return e.reset(o),null;if(s.kind==="identifier"||s.kind==="keyword"&&!this.isStructuralKeyword(s.value)||s.kind==="selector"&&s.value.startsWith("*")||s.kind==="selector"&&s.value.startsWith("@")||s.kind==="selector"&&s.value.startsWith(".")&&/^\.[a-zA-Z_]\w*/.test(s.value)){e.advance();let a=s.value;s.kind==="selector"&&a.startsWith(".")&&/^\.[a-zA-Z_]\w*/.test(a)&&(a=a.substring(1));let l=a;for(;e.peek()?.kind==="selector"&&e.peek().value.startsWith(".")&&/^\.[a-zA-Z_]\w*/.test(e.peek().value);)l+=e.peek().value,e.advance();let c=e.peek();return c?.kind==="literal"&&c.value.startsWith("(")&&(l+=c.value,e.advance()),ie(L(n),l)}return e.reset(o),null}isStructuralKeyword(e){return new Set(["into","in","to","from","at","by","with","without","before","after","of","as","on","then","end","else","if","repeat","while","for","toggle","add","remove","put","set","show","hide","increment","decrement","send","trigger","call"]).has(e.toLowerCase())}tryMatchMethodCallExpression(e){let t=e.peek();if(!t||t.kind!=="selector")return null;let r=e.mark();e.advance();let n=e.peek();if(!n||n.kind!=="operator"||n.value!==".")return e.reset(r),null;e.advance();let o=e.peek();if(!o||o.kind!=="identifier")return e.reset(r),null;e.advance();let s=e.peek();if(!s||s.kind!=="punctuation"||s.value!=="(")return e.reset(r),null;e.advance();let a=[];for(;!e.isAtEnd()&&a.length<j.MAX_METHOD_ARGS;){let c=e.peek();if(!c)break;if(c.kind==="punctuation"&&c.value===")"){e.advance();break}if(c.kind==="punctuation"&&c.value===","){e.advance();continue}a.push(c.value),e.advance()}return{type:"expression",raw:`${t.value}.${o.value}(${a.join(", ")})`}}tryMatchPropertyAccessExpression(e){let t=e.peek();if(!t||t.kind!=="identifier"&&t.kind!=="keyword")return null;let r=e.mark();e.advance();let n=e.peek();if(!n||n.kind!=="operator"||n.value!==".")return e.reset(r),null;e.advance();let o=e.peek();if(!o||o.kind!=="identifier")return e.reset(r),null;e.advance();let s=`${t.value}.${o.value}`,a=1;for(;!e.isAtEnd()&&a<j.MAX_PROPERTY_DEPTH;){let c=e.peek();if(!c||c.kind!=="operator"||c.value!==".")break;e.advance();let m=e.peek();if(!m||m.kind!=="identifier")break;e.advance(),s+=`.${m.value}`,a++}let l=e.peek();if(l&&l.kind==="punctuation"&&l.value==="("){e.advance();let c=[],m=0;for(;!e.isAtEnd()&&c.length<j.MAX_METHOD_ARGS;){let y=e.peek();if(!y)break;if(y.kind==="punctuation"&&y.value===")"){if(m===0){e.advance();break}m--}if(y.kind==="punctuation"&&y.value==="("&&m++,y.kind==="punctuation"&&y.value===","){e.advance();continue}c.push(y.value),e.advance()}return{type:"expression",raw:`${s}(${c.join(", ")})`}}return{type:"expression",raw:s}}tryMatchPossessiveSelectorExpression(e){let t=e.peek();if(!t||t.kind!=="selector")return null;let r=e.mark();e.advance();let n=e.peek();if(!n||n.kind!=="punctuation"||n.value!=="'s")return e.reset(r),null;e.advance();let o=e.peek();return!o||o.kind!=="selector"&&o.kind!=="identifier"?(e.reset(r),null):(e.advance(),ie(A(t.value),o.value))}tryMatchSelectorPropertyExpression(e){let t=e.peek();if(!t||t.kind!=="selector"||!t.value.startsWith("#"))return null;let r=e.mark();e.advance();let n=e.peek();if(!n||n.kind!=="selector"||!n.value.startsWith("."))return e.reset(r),null;let o=e.peek(1);o&&o.kind,e.advance();let s=n.value.slice(1);return ie(A(t.value),s)}matchGroupToken(e,t,r){let n=e.mark(),o=new Set(r.keys());if(!this.matchTokenSequence(e,t.tokens,r)){e.reset(n);for(let a of r.keys())o.has(a)||r.delete(a);return t.optional||!1}return!0}getMatchType(e,t){return e.value===t?"exact":e.normalized===t?"normalized":e.stem===t&&e.stemConfidence!==void 0&&e.stemConfidence>=.7?"stem":e.kind==="keyword"&&e.value.toLowerCase()===t.toLowerCase()?"case-insensitive":"none"}tokenToSemanticValue(e){switch(e.kind){case"selector":return A(e.value);case"literal":return this.parseLiteralValue(e.value);case"keyword":let t=(e.normalized||e.value).toLowerCase();return ue(t)?L(t):S(e.normalized||e.value);case"identifier":if(e.value.startsWith(":"))return L(e.value);let r=e.value.toLowerCase();return ue(r)?L(r):{type:"expression",raw:e.value};case"url":return S(e.value,"string");default:return null}}parseLiteralValue(e){if(e.startsWith('"')||e.startsWith("'")||e.startsWith("`")||e.startsWith("\u300C")){let n=e.slice(1,-1);return S(n,"string")}if(e==="true")return S(!0,"boolean");if(e==="false")return S(!1,"boolean");let t=e.match(/^(\d+(?:\.\d+)?)(ms|s|m|h)?$/);if(t){let n=parseFloat(t[1]);return t[2]?S(e,"duration"):S(n,"number")}let r=parseFloat(e);return isNaN(r)?S(e,"string"):S(r,"number")}applyExtractionRules(e,t){for(let[r,n]of Object.entries(e.extraction))t.has(r)||(n.value!==void 0?t.set(r,{type:"literal",value:n.value}):n.default&&t.set(r,n.default))}isOptional(e){return e.type!=="literal"&&e.optional===!0}calculateConfidence(e,t){let r=0,n=0,o=c=>e.extraction?.[c]?.default!==void 0;for(let c of e.template.tokens)if(c.type==="role")n+=1,t.has(c.role)&&(r+=1);else if(c.type==="group"){for(let m of c.tokens)if(m.type==="role"){let v=o(m.role),y=.8;n+=y,t.has(m.role)?r+=y:v&&(r+=y*.6)}}let s=n>0?r/n:1;if(this.stemMatchCount>0&&this.totalKeywordMatches>0){let c=this.stemMatchCount/this.totalKeywordMatches*.15;s=Math.max(.5,s-c)}let a=this.calculateVSOConfidenceBoost(e);s=Math.min(1,s+a);let l=this.arabicPrepositionDisambiguation(e,t);return s=Math.max(0,Math.min(1,s+l)),s}calculateVSOConfidenceBoost(e){if(e.language!=="ar")return 0;let t=e.template.tokens[0];if(!t||t.type!=="literal")return 0;let r=new Set(["\u0628\u062F\u0644","\u063A\u064A\u0631","\u0623\u0636\u0641","\u0623\u0632\u0644","\u0636\u0639","\u0627\u062C\u0639\u0644","\u0639\u064A\u0646","\u0632\u062F","\u0627\u0646\u0642\u0635","\u0633\u062C\u0644","\u0623\u0638\u0647\u0631","\u0623\u062E\u0641","\u0634\u063A\u0644","\u0623\u0631\u0633\u0644","\u0631\u0643\u0632","\u0634\u0648\u0634","\u062A\u0648\u0642\u0641","\u0627\u0646\u0633\u062E","\u0627\u062D\u0630\u0641","\u0627\u0635\u0646\u0639","\u0627\u0646\u062A\u0638\u0631","\u0627\u0646\u062A\u0642\u0627\u0644","\u0623\u0648"]);if(r.has(t.value))return .15;if(t.alternatives){for(let n of t.alternatives)if(r.has(n))return .15}return 0}arabicPrepositionDisambiguation(e,t){if(e.language!=="ar")return 0;let r=0,n={patient:["\u0639\u0644\u0649"],destination:["\u0625\u0644\u0649","\u0627\u0644\u0649"],source:["\u0645\u0646"],agent:["\u0645\u0646"],manner:["\u0628"],style:["\u0628"],goal:["\u0625\u0644\u0649","\u0627\u0644\u0649"],method:["\u0628"]};for(let[o,s]of t.entries()){let a=n[o];if(!a||a.length===0)continue;let l="metadata"in s?s.metadata:void 0;if(l&&typeof l.prepositionValue=="string"){let c=l.prepositionValue;a.includes(c)?r+=.1:r-=.1}}return Math.max(-.1,Math.min(.1,r))}skipNoiseWords(e){let t=e.peek();if(!t)return;let r=t.value.toLowerCase();if(j.ENGLISH_NOISE_WORDS.has(r)){let n=e.mark();e.advance();let o=e.peek();if(o&&o.kind==="selector")return;e.reset(n)}r==="class"&&e.advance()}extractEventModifiers(e){let t={},r=!1;for(;!e.isAtEnd();){let n=e.peek();if(!n||n.kind!=="event-modifier")break;let o=n.metadata;if(!o)break;switch(r=!0,o.modifierName){case"once":t.once=!0;break;case"debounce":typeof o.value=="number"&&(t.debounce=o.value);break;case"throttle":typeof o.value=="number"&&(t.throttle=o.value);break;case"queue":(o.value==="first"||o.value==="last"||o.value==="all"||o.value==="none")&&(t.queue=o.value);break}e.advance()}return r?t:void 0}};j.MAX_PROPERTY_DEPTH=10,j.MAX_METHOD_ARGS=20,j.ENGLISH_NOISE_WORDS=new Set(["the","a","an"]);var de=j,G=new de;var mt={ko:{\uD074\uB9AD:"click",\uC785\uB825:"input",\uBCC0\uACBD:"change",\uC81C\uCD9C:"submit",\uD0A4\uB2E4\uC6B4:"keydown",\uD0A4\uC5C5:"keyup",\uB9C8\uC6B0\uC2A4\uC624\uBC84:"mouseover",\uB9C8\uC6B0\uC2A4\uC544\uC6C3:"mouseout",\uB9C8\uC6B0\uC2A4\uB2E4\uC6B4:"mousedown",\uB9C8\uC6B0\uC2A4\uC5C5:"mouseup",\uD3EC\uCEE4\uC2A4:"focus",\uBE14\uB7EC:"blur",\uB85C\uB4DC:"load",\uB9AC\uC0AC\uC774\uC988:"resize",\uC2A4\uD06C\uB864:"scroll"},ja:{\u30AF\u30EA\u30C3\u30AF:"click",\u5165\u529B:"input",\u5909\u66F4:"change",\u9001\u4FE1:"submit",\u30AD\u30FC\u30C0\u30A6\u30F3:"keydown",\u30AD\u30FC\u30A2\u30C3\u30D7:"keyup",\u30AD\u30FC\u30D7\u30EC\u30B9:"keypress",\u30DE\u30A6\u30B9\u30AA\u30FC\u30D0\u30FC:"mouseover",\u30DE\u30A6\u30B9\u30A2\u30A6\u30C8:"mouseout",\u30DE\u30A6\u30B9\u62BC\u4E0B:"mousedown",\u30DE\u30A6\u30B9\u89E3\u653E:"mouseup",\u30D5\u30A9\u30FC\u30AB\u30B9:"focus",\u30D6\u30E9\u30FC:"blur",\u30ED\u30FC\u30C9:"load",\u8AAD\u307F\u8FBC\u307F:"load",\u30B5\u30A4\u30BA\u5909\u66F4:"resize",\u30B9\u30AF\u30ED\u30FC\u30EB:"scroll"},ar:{\u0627\u0644\u0646\u0642\u0631:"click",\u0646\u0642\u0631:"click",\u0627\u0644\u0625\u062F\u062E\u0627\u0644:"input",\u0625\u062F\u062E\u0627\u0644:"input",\u0627\u0644\u062A\u063A\u064A\u064A\u0631:"change",\u062A\u063A\u064A\u064A\u0631:"change",\u0627\u0644\u0625\u0631\u0633\u0627\u0644:"submit",\u0625\u0631\u0633\u0627\u0644:"submit","\u0636\u063A\u0637 \u0627\u0644\u0645\u0641\u062A\u0627\u062D":"keydown","\u0631\u0641\u0639 \u0627\u0644\u0645\u0641\u062A\u0627\u062D":"keyup","\u062A\u0645\u0631\u064A\u0631 \u0627\u0644\u0645\u0627\u0648\u0633":"mouseover",\u0627\u0644\u062A\u0631\u0643\u064A\u0632:"focus",\u062A\u062D\u0645\u064A\u0644:"load",\u062A\u0645\u0631\u064A\u0631:"scroll"},es:{clic:"click",click:"click",entrada:"input",cambio:"change",env\u00EDo:"submit",enviar:"submit","tecla abajo":"keydown","tecla arriba":"keyup","rat\xF3n encima":"mouseover","rat\xF3n fuera":"mouseout",enfoque:"focus",desenfoque:"blur",carga:"load",desplazamiento:"scroll"},tr:{t\u0131klama:"click",t\u0131kla:"click",t\u0131k:"click",giri\u015F:"input",girdi:"input",de\u011Fi\u015Fiklik:"change",de\u011Fi\u015Fim:"change",g\u00F6nderme:"submit",g\u00F6nder:"submit",tu\u015Fbasma:"keydown",tu\u015Fb\u0131rakma:"keyup",fare_bas:"mousedown",fare_b\u0131rak:"mouseup",farei\u00E7inde:"mouseover",fared\u0131\u015F\u0131nda:"mouseout",odaklanma:"focus",odak:"focus",bulan\u0131kl\u0131k:"blur",y\u00FCkleme:"load",y\u00FCkle:"load",boyut_de\u011Fi\u015Ftir:"resize",kayd\u0131rma:"scroll"},pt:{clique:"click",clicar:"click",click:"click",entrada:"input",inserir:"input",mudan\u00E7a:"change",mudanca:"change",alterar:"change",envio:"submit",enviar:"submit","tecla baixo":"keydown","tecla cima":"keyup","pressionar tecla":"keydown","soltar tecla":"keyup","mouse sobre":"mouseover","mouse fora":"mouseout",foco:"focus",focar:"focus",desfoque:"blur",desfocar:"blur",carregar:"load",carregamento:"load",rolagem:"scroll",rolar:"scroll"},zh:{\u70B9\u51FB:"click",\u5355\u51FB:"click",\u53CC\u51FB:"dblclick",\u8F93\u5165:"input",\u6539\u53D8:"change",\u53D8\u5316:"change",\u53D8\u66F4:"change",\u63D0\u4EA4:"submit",\u53D1\u9001:"submit",\u6309\u952E:"keydown",\u952E\u5165:"keydown",\u677E\u952E:"keyup",\u9F20\u6807\u8FDB\u5165:"mouseover",\u9F20\u6807\u79FB\u5165:"mouseover",\u9F20\u6807\u79BB\u5F00:"mouseout",\u9F20\u6807\u79FB\u51FA:"mouseout",\u7126\u70B9:"focus",\u805A\u7126:"focus",\u5931\u7126:"blur",\u6A21\u7CCA:"blur",\u52A0\u8F7D:"load",\u8F7D\u5165:"load",\u6EDA\u52A8:"scroll"},fr:{clic:"click",cliquer:"click",click:"click",saisie:"input",entr\u00E9e:"input",changement:"change",changer:"change",soumettre:"submit",soumission:"submit",envoi:"submit","touche bas":"keydown","touche haut":"keyup","souris dessus":"mouseover","souris dehors":"mouseout",focus:"focus",focaliser:"focus",d\u00E9focus:"blur",d\u00E9focaliser:"blur",chargement:"load",charger:"load",d\u00E9filement:"scroll",d\u00E9filer:"scroll"},de:{klick:"click",klicken:"click",click:"click",eingabe:"input",eingeben:"input",\u00E4nderung:"change",\u00E4ndern:"change",absenden:"submit",einreichen:"submit","taste runter":"keydown","taste hoch":"keyup","maus \xFCber":"mouseover","maus raus":"mouseout",fokus:"focus",fokussieren:"focus",defokussieren:"blur",unsch\u00E4rfe:"blur",laden:"load",ladung:"load",scrollen:"scroll",bl\u00E4ttern:"scroll"},id:{klik:"click",click:"click",masukan:"input",input:"input",ubah:"change",perubahan:"change",kirim:"submit","tekan tombol":"keydown","lepas tombol":"keyup","mouse masuk":"mouseover","mouse keluar":"mouseout",fokus:"focus",blur:"blur",muat:"load",memuat:"load",gulir:"scroll",menggulir:"scroll"},bn:{\u0995\u09CD\u09B2\u09BF\u0995:"click",\u0987\u09A8\u09AA\u09C1\u099F:"input",\u099C\u09AE\u09BE:"submit",\u09B2\u09CB\u09A1:"load",\u09B8\u09CD\u0995\u09CD\u09B0\u09CB\u09B2:"scroll",\u09B0\u09BF\u09B8\u09BE\u0987\u099C:"resize",\u099D\u09BE\u09AA\u09B8\u09BE:"blur",\u09AB\u09CB\u0995\u09BE\u09B8:"focus",\u09AA\u09B0\u09BF\u09AC\u09B0\u09CD\u09A4\u09A8:"change"},qu:{click:"click","\xF1it'iy":"click",\u00F1itiy:"click",yaykuchiy:"input",yaykuy:"input",tikray:"change","t'ikray":"change",apachiy:"submit",kachay:"submit","llave uray":"keydown","llave hawa":"keyup","q'away":"focus",qhaway:"focus",paqariy:"blur","mana q'away":"blur",cargay:"load",apakuy:"load",apamuy:"load",kunray:"scroll",muyuy:"scroll",hatun_kay:"resize"},sw:{bofya:"click",click:"click",kubofya:"click",ingiza:"input",kubadilisha:"change",mabadiliko:"change",tuma:"submit",kutuma:"submit","bonyeza chini":"keydown","bonyeza juu":"keyup","panya juu":"mouseover","panya nje":"mouseout",lenga:"focus",kulenga:"focus",blur:"blur",pakia:"load",kupakia:"load",sogeza:"scroll",kusogeza:"scroll"}};var Pe=class{render(e,t){if(e.kind==="compound")return this.renderCompound(e,t);let r=st(t,e.action);if(r.length===0)return this.renderExplicit(e);let n=this.findBestPattern(e,r);return n?this.renderWithPattern(e,n):this.renderExplicit(e)}renderCompound(e,t){let r=e.statements.map(o=>this.render(o,t)),n=this.getChainWord(e.chainType,t);return r.join(` ${n} `)}getChainWord(e,t){let r=V(t);return r?.keywords?r.keywords[e]?.primary??e:e}renderExplicit(e){if(e.kind==="compound"){let r=e;return r.statements.map(o=>this.renderExplicit(o)).join(` ${r.chainType} `)}let t=[e.action];for(let[r,n]of e.roles)t.push(`${r}:${this.valueToString(n)}`);if(e.kind==="event-handler"){let r=e;if(r.body&&r.body.length>0){let n=r.body.map(o=>this.renderExplicit(o));t.push(`body:${n.join(" ")}`)}}return`[${t.join(" ")}]`}supportedLanguages(){return Ce()}findBestPattern(e,t){let r=t.map(n=>{let o=n.priority;for(let s of n.template.tokens)s.type==="role"&&(e.roles.has(s.role)?o+=10:s.optional||(o-=50));return n.language==="en"&&((n.id.includes("standard")||n.id.includes("en-source"))&&(o+=20),(n.id.includes("-when")||n.id.includes("-if")||n.id.includes("-upon"))&&(o-=15)),{pattern:n,score:o}});return r.sort((n,o)=>o.score-n.score),r.length>0?r[0].pattern:null}renderWithPattern(e,t){let r=[],n=t.language;for(let o of t.template.tokens){let s=this.renderPatternToken(o,e,n);s!==null&&r.push(s)}if(e.kind==="event-handler"){let o=e;if(o.body&&o.body.length>0){let s=o.body.map(a=>this.render(a,n));r.push(s.join(" "))}}return r.join(" ")}renderPatternToken(e,t,r){switch(e.type){case"literal":return e.value;case"role":{let n=t.roles.get(e.role);return n?this.valueToNaturalString(n,r):(e.optional,null)}case"group":{if(!e.tokens.filter(s=>s.type==="role"&&!s.optional).every(s=>t.roles.has(s.role))&&e.optional)return null;if(e.optional&&e.tokens.find(a=>a.type==="role"&&a.role==="destination")){let a=t.roles.get("destination");if(a?.type==="reference"&&a.value==="me")return null}let o=[];for(let s of e.tokens){let a=this.renderPatternToken(s,t,r);a!==null&&o.push(a)}return o.length>0?o.join(" "):null}default:return null}}valueToString(e){switch(e.type){case"literal":return typeof e.value=="string"?e.dataType==="string"||/\s/.test(e.value)?`"${e.value}"`:e.value:String(e.value);case"selector":return e.value;case"reference":return e.value;case"property-path":return`${this.valueToString(e.object)}'s ${e.property}`;case"expression":return e.raw}}valueToNaturalString(e,t="en"){switch(e.type){case"literal":return typeof e.value=="string"&&e.dataType==="string"?`"${e.value}"`:String(e.value);case"selector":return e.value;case"reference":return this.renderReference(e,t);case"property-path":return this.renderPropertyPath(e,t);case"expression":return e.raw}}renderReference(e,t){let r=V(t);return r?.references?r.references[e.value]??e.value:e.value}renderPropertyPath(e,t){let r=V(t),n=e.property,o=e.object.type==="reference"?e.object.value:null;if(r?.possessive?.specialForms&&o){let a=r.possessive.specialForms[o];if(a){let{markerPosition:l,usePossessiveAdjectives:c}=r.possessive;return c&&l==="after-object"?`${n} ${a}`:`${a} ${n}`}}let s=this.valueToNaturalString(e.object,t);if(r?.possessive){let{marker:a,markerPosition:l,usePossessiveAdjectives:c}=r.possessive;if(c&&o&&l==="after-object")return`${n} ${s}`;if(a)switch(l){case"between":return r.usesSpaces?`${s}${a} ${n}`:`${s}${a}${n}`;case"after-object":return`${s}${a} ${n}`;case"before-property":return`${s} ${a} ${n}`}}return t==="en"||!r?.possessive?s==="me"?`my ${n}`:s==="it"?`its ${n}`:`${s}'s ${n}`:`${s} ${n}`}},$e=new Pe;function pe(i,e){return $e.render(i,e)}function me(i){return $e.renderExplicit(i)}function Z(i){let e=i.trim();if(!e.startsWith("[")||!e.endsWith("]"))throw new Error("Explicit syntax must be wrapped in brackets: [command role:value ...]");let t=e.slice(1,-1).trim();if(!t)throw new Error("Empty explicit statement");let r=_t(t);if(r.length===0)throw new Error("No command specified in explicit statement");let n=r[0].toLowerCase(),o=new Map;for(let a=1;a<r.length;a++){let l=r[a],c=l.indexOf(":");if(c===-1)throw new Error(`Invalid role format: "${l}". Expected role:value`);let m=l.slice(0,c),v=l.slice(c+1);if(m==="body"&&v.startsWith("[")){let f=Bt(l,c+1),u=l.slice(c+1,f+1);o.set(m,{type:"expression",raw:u});continue}let y=jt(v);o.set(m,y)}if(n==="on"){let a=o.get("event");if(!a)throw new Error("Event handler requires event role: [on event:click ...]");let l=o.get("body"),c=[];return l&&l.type==="expression"&&c.push(Z(l.raw)),o.delete("body"),H(a,c,void 0,{sourceLanguage:"explicit"})}let s={};for(let[a,l]of o)s[a]=l;return _(n,s,{sourceLanguage:"explicit"})}function _t(i){let e=[],t="",r=!1,n="",o=0;for(let s=0;s<i.length;s++){let a=i[s];if(r){t+=a,a===n&&i[s-1]!=="\\"&&(r=!1);continue}if(a==='"'||a==="'"){r=!0,n=a,t+=a;continue}if(a==="["){o++,t+=a;continue}if(a==="]"){o--,t+=a;continue}if(a===" "&&o===0){t&&(e.push(t),t="");continue}t+=a}return t&&e.push(t),e}function jt(i){if(i.startsWith("#")||i.startsWith(".")||i.startsWith("[")||i.startsWith("@")||i.startsWith("*"))return A(i);if(i.startsWith('"')||i.startsWith("'")){let r=i.slice(1,-1);return S(r,"string")}if(i==="true")return S(!0,"boolean");if(i==="false")return S(!1,"boolean");let e=i.toLowerCase();if(ue(e))return L(e);let t=i.match(/^(-?\d+(?:\.\d+)?)(ms|s|m|h)?$/);if(t){let r=parseFloat(t[1]);return t[2]?S(i,"duration"):S(r,"number")}return S(i,"string")}function Bt(i,e){let t=0;for(let r=e;r<i.length;r++)if(i[r]==="[")t++;else if(i[r]==="]"&&(t--,t===0))return r;return i.length-1}function oe(i){let e=i.trim();return e.startsWith("[")&&e.endsWith("]")}var R=class R{parse(e,t){let{modifiers:r,remainingInput:n}=this.extractStandaloneModifiers(e,t),o=n||e,s=ne(o,t),a=O(t);if(a.length===0)throw new Error(`No patterns available for language: ${t}`);let l=[...a].sort((p,g)=>g.priority-p.priority),c=l.filter(p=>p.command==="on"),m=G.matchBest(s,c);if(m){let p=this.buildEventHandler(m,s,t);return r?this.applyModifiers(p,r):p}let v=l.filter(p=>p.command!=="on"),y=G.matchBest(s,v);if(y)return this.buildCommand(y,t);let f=this.trySOVEventExtraction(o,t,l);if(f)return r?this.applyModifiers(f,r):f;let u=this.tryCompoundCommandParsing(s,v,t);if(u)return u;throw new Error(`Could not parse input in ${t}: ${o}`)}canParse(e,t){try{return this.parse(e,t),!0}catch{return!1}}supportedLanguages(){return Ce()}buildCommand(e,t){if(!e)throw new Error("No match to build command from");let r={};for(let[n,o]of e.captured)r[n]=o;return _(e.pattern.command,r,{sourceLanguage:t,patternId:e.pattern.id,confidence:e.confidence})}buildEventHandler(e,t,r){if(!e)throw new Error("No match to build event handler from");let n=e.captured.get("event");if(!n)throw new Error("Event handler pattern matched but no event captured");let o=G.extractEventModifiers(t),s=this.extractOrConjunctionEvents(t,r),a=n;s.length>0&&n.type==="literal"&&(a={type:"literal",value:[String(n.value),...s.map(v=>String("value"in v?v.value:""))].join(" or ")});let l,c=e.captured.get("action");if(c&&c.type==="literal"){let m=c.value,v={};for(let[u,p]of e.captured)u!=="event"&&u!=="action"&&u!=="continues"&&(v[u]=p);let y=_(m,v,{sourceLanguage:r,patternId:e.pattern.id,confidence:e.confidence}),f=e.captured.get("continues");if(f&&f.type==="literal"&&f.value==="then"){let u=O(r).filter(x=>x.command!=="on").sort((x,C)=>C.priority-x.priority),p=O(r).filter(x=>x.id.startsWith("grammar-")&&x.id.includes("-continuation")).sort((x,C)=>C.priority-x.priority),g=this.parseBodyWithGrammarPatterns(t,u,p,r);g.length>0?l=[y,...g]:l=[y]}else l=[y]}else{let m=O(r).filter(v=>v.command!=="on").sort((v,y)=>y.priority-v.priority);l=this.parseBodyWithClauses(t,m,r)}return H(a,l,o,{sourceLanguage:r,patternId:e.pattern.id,confidence:e.confidence})}parseBodyWithClauses(e,t,r){let n=[],o=[];for(;!e.isAtEnd();){let s=e.peek();if(!s)break;let a=s.kind==="conjunction"||s.kind==="keyword"&&this.isThenKeyword(s.value,r),l=s.kind==="keyword"&&this.isEndKeyword(s.value,r);if(a){if(o.length>0){let c=this.parseClause(o,t,r);n.push(...c),o.length=0}e.advance();continue}if(l){if(o.length>0){let c=this.parseClause(o,t,r);n.push(...c)}e.advance();break}o.push(s),e.advance()}if(o.length>0){let s=this.parseClause(o,t,r);n.push(...s)}return n.length>1?[Be(n,"then",{sourceLanguage:r})]:n}parseClause(e,t,r){if(e.length===0)return[];let n=new I(e,r),o=[];for(;!n.isAtEnd();){let s=G.matchBest(n,t);s?o.push(this.buildCommand(s,r)):n.advance()}if(o.length===0){let s=this.parseSOVClauseByVerbAnchoring(e,r);if(s.length>0)return s}return o}static buildVerbLookup(e){let t=new Map;for(let[r,n]of Object.entries(e.keywords))if(!["on","if","else","when","where","while","for","end","then","and"].includes(r)&&(t.set(n.primary.toLowerCase(),r),n.alternatives))for(let o of n.alternatives)t.set(o.toLowerCase(),r);return t}static buildMarkerToRoleLookup(e){let t=new Map;for(let[r,n]of Object.entries(e.roleMarkers))if(n&&(t.set(n.primary,r),n.alternatives))for(let o of n.alternatives)t.has(o)||t.set(o,r);return t}parseSOVClauseByVerbAnchoring(e,t){let r=V(t);if(!r||r.wordOrder!=="SOV")return[];let n=R.buildVerbLookup(r),o=R.buildMarkerToRoleLookup(r),s=[],a=0;for(;a<e.length;){let l=-1,c="";for(let u=a;u<e.length;u++){let p=e[u],g=n.get(p.value.toLowerCase()),x=p.normalized?n.get(p.normalized.toLowerCase()):void 0,C=g||x;if(C){l=u,c=C;break}}if(l===-1)break;let m=e.slice(a,l),v=e.length;for(let u=l+1;u<e.length;u++){let p=e[u];if(p.kind==="conjunction"||this.isThenKeyword(p.value,t)){v=u;break}if(u>l+1&&(n.get(p.value.toLowerCase())||(p.normalized?n.get(p.normalized.toLowerCase()):void 0))){v=u;break}}let y=e.slice(l+1,v),f=this.extractRolesFromMarkedTokens(m,y,o,c,t);if(s.push(_(c,f,{sourceLanguage:t,confidence:.7})),a=v,a<e.length){let u=e[a];(u.kind==="conjunction"||this.isThenKeyword(u.value,t))&&a++}}return s}extractRolesFromMarkedTokens(e,t,r,n,o){let s={},a=l=>{let c=[];for(let m of l){let v=r.get(m.value);if(v&&m.kind==="particle"&&c.length>0){let y=this.tokensToSemanticValue(c);if(y){let f=this.mapRoleForCommand(v,n,s);f&&(s[f]=y)}c=[]}else c.push(m)}if(c.length>0){let m=this.tokensToSemanticValue(c);m&&(s.patient?s.destination||(s.destination=m):s.patient=m)}};return a(e),a(t),s}mapRoleForCommand(e,t,r){return r[e]?e==="patient"&&!r.destination?"destination":e==="destination"&&!r.patient?"patient":e==="source"&&!r.source?"source":null:e}tokensToSemanticValue(e){if(e.length===0)return null;let t=e.filter(o=>o.kind!=="whitespace");if(t.length===0)return null;if(t.length===1)return this.tokenToSemanticValue(t[0]);let r=t.map(o=>o.value).join(""),n=t[0];return n.kind==="selector"||n.value.startsWith("#")||n.value.startsWith(".")||n.value.startsWith("@")||n.value.startsWith("*")?A(r):n.kind==="literal"||n.value.startsWith('"')||n.value.startsWith("'")?S(r):n.kind==="reference"?L(r):S(r)}tokenToSemanticValue(e){let t=e.value;if(e.kind==="selector"||t.startsWith("#")||t.startsWith(".")||t.startsWith("@")||t.startsWith("*"))return A(t);if(t.startsWith('"')||t.startsWith("'"))return S(t);if(/^-?\d+(\.\d+)?$/.test(t))return S(parseFloat(t));if(t==="true"||t==="\u771F"||t==="\uCC38"||t==="do\u011Fru")return S(!0);if(t==="false"||t==="\u507D"||t==="\uAC70\uC9D3"||t==="yanl\u0131\u015F")return S(!1);let r=e.normalized?.toLowerCase();return r==="me"||r==="it"||r==="you"||r==="result"||r==="body"?L(r):e.kind==="reference"?L(e.normalized||"me"):S(t)}parseBodyWithGrammarPatterns(e,t,r,n){let o=[];for(;!e.isAtEnd();){let s=e.peek();if(s&&this.isThenKeyword(s.value,n)){e.advance();continue}if(s&&this.isEndKeyword(s.value,n)){e.advance();break}let a=!1;if(r.length>0){let l=G.matchBest(e,r);if(l){let c=l.pattern.command,m={};for(let[f,u]of l.captured)f!=="event"&&f!=="action"&&f!=="continues"&&(m[f]=u);let v=_(c,m,{sourceLanguage:n,patternId:l.pattern.id});o.push(v),a=!0;let y=l.captured.get("continues");if(y&&y.type==="literal"&&y.value==="then")continue}}if(!a){let l=G.matchBest(e,t);l&&(o.push(this.buildCommand(l,n)),a=!0)}a||e.advance()}return o}tryCompoundCommandParsing(e,t,r){let n=e.tokens;if(!n.some(l=>l.kind==="conjunction"||l.kind==="keyword"&&this.isThenKeyword(l.value,r)))return null;let s=new I(n,r),a=this.parseBodyWithClauses(s,t,r);return a.length===0?null:a.length===1?a[0]:Be(a,"then",{sourceLanguage:r,confidence:.65})}trySOVEventExtraction(e,t,r){let n=R.SOV_EVENT_MARKERS[t];if(!n)return null;let s=ne(e,t).tokens,a=mt[t],l=new Set;if(a)for(let E of Object.keys(a))l.add(E.toLowerCase());let c=R.SOV_SOURCE_MARKERS[t],m=-1,v="",y="",f=1;for(let E=0;E<s.length;E++){let P=s[E],B=P.value.toLowerCase(),K=B,Y="",Me=B.indexOf("[");Me>0&&(K=B.slice(0,Me),Y=P.value.slice(Me));let Ae=P.normalized?.toLowerCase(),Ye=Ae&&R.KNOWN_EVENTS.has(Ae),Je=l.has(B)||l.has(K),Tt=R.KNOWN_EVENTS.has(K);if(Ye||Je||Tt){let ae;if(Ye?ae=Ae:Je?ae=a?.[B]??a?.[K]??K:ae=K,n.size>0){let ye=1,Ve=s[E+1];Ve&&Ve.kind==="selector"&&Ve.value.startsWith("[")&&(ye=2);let ve=s[E+ye];if(ve&&(ve.kind==="particle"||ve.kind==="keyword")&&n.has(ve.value)){m=E,v=ae,y=Y||(ye===2?s[E+1].value:""),f=ye+1;break}}else{m=E,v=ae,y=Y,f=1;break}}}if(m===-1)return null;let u=new Set;for(let E=m;E<m+f;E++)u.add(E);if(c){let E=m+f;if(E<s.length){let P=s[E];(P.kind==="particle"||P.kind==="keyword")&&c.markers.has(P.value)&&u.add(E)}for(let P=0;P<m;P++){let B=s[P],K=B.value.toLowerCase(),Y=B.normalized?.toLowerCase();if(c.windowTokens.has(K)||Y&&c.windowTokens.has(Y)){u.add(P);break}}}let p=s.filter((E,P)=>!u.has(P));if(p.length===0)return null;let g=r.filter(E=>E.command!=="on"),x=new I(p,t),C=this.parseBodyWithClauses(x,g,t);if(C.length===0)return null;let Q={sourceLanguage:t,confidence:.75};return y&&(Q.keyFilter=y),H({type:"literal",value:v},C,void 0,Q)}isThenKeyword(e,t){let r={en:new Set(["then"]),ja:new Set(["\u305D\u308C\u304B\u3089","\u6B21\u306B","\u305D\u3057\u3066"]),ar:new Set(["\u062B\u0645","\u0628\u0639\u062F\u0647\u0627","\u062B\u0645\u0651"]),es:new Set(["entonces","luego","despu\xE9s"]),ko:new Set(["\uADF8\uB2E4\uC74C","\uADF8\uB9AC\uACE0","\uADF8\uB7F0\uD6C4","\uADF8\uB7EC\uBA74"]),zh:new Set(["\u7136\u540E","\u63A5\u7740","\u4E4B\u540E"]),tr:new Set(["sonra","ard\u0131ndan","daha sonra"]),pt:new Set(["ent\xE3o","depois","logo"]),fr:new Set(["puis","ensuite","alors"]),de:new Set(["dann","danach","anschlie\xDFend"]),id:new Set(["lalu","kemudian","setelah itu"]),tl:new Set(["pagkatapos","tapos"]),bn:new Set(["\u09A4\u09BE\u09B0\u09AA\u09B0","\u09AA\u09B0\u09C7"]),qu:new Set(["chaymantataq","hinaspa","chaymanta","chayqa"]),sw:new Set(["kisha","halafu","baadaye"])};return(r[t]||r.en).has(e.toLowerCase())}isEndKeyword(e,t){let r={en:new Set(["end"]),ja:new Set(["\u7D42\u308F\u308A","\u7D42\u4E86","\u304A\u308F\u308A"]),ar:new Set(["\u0646\u0647\u0627\u064A\u0629","\u0627\u0646\u062A\u0647\u0649","\u0622\u062E\u0631"]),es:new Set(["fin","final","terminar"]),ko:new Set(["\uB05D","\uC885\uB8CC","\uB9C8\uCE68"]),zh:new Set(["\u7ED3\u675F","\u7EC8\u6B62","\u5B8C"]),tr:new Set(["son","biti\u015F","bitti"]),pt:new Set(["fim","final","t\xE9rmino"]),fr:new Set(["fin","terminer","finir"]),de:new Set(["ende","beenden","fertig"]),id:new Set(["selesai","akhir","tamat"]),tl:new Set(["wakas","tapos"]),bn:new Set(["\u09B8\u09AE\u09BE\u09AA\u09CD\u09A4"]),qu:new Set(["tukukuy","tukuy","puchukay"]),sw:new Set(["mwisho","maliza","tamati"])};return(r[t]||r.en).has(e.toLowerCase())}extractStandaloneModifiers(e,t){let n=ne(e,t).tokens;if(n.length===0)return{modifiers:null,remainingInput:null};let s=n[0].value.toLowerCase(),a=R.STANDALONE_MODIFIERS[s];if(!a)return{modifiers:null,remainingInput:null};let l={},c=1;if(a==="once")l.once=!0;else{let f=1;if(f<n.length){let u=n[f];(u.kind==="keyword"||u.kind==="particle")&&(f++,c++)}if(f<n.length){let u=n[f];if(u.kind==="literal"){let p=u.value.match(/^(\d+)(ms|s|m)?$/);if(p){let g=parseInt(p[1],10),x=p[2]||"ms";x==="s"?g*=1e3:x==="m"&&(g*=6e4),l[a]=g,c=f+1}}}l[a]||(l[a]=a==="debounce"?300:100)}let m=n.slice(c);if(m.length===0)return{modifiers:null,remainingInput:null};let v=m[0].position.start,y=e.slice(v);return{modifiers:l,remainingInput:y}}applyModifiers(e,t){return{...e,eventModifiers:{...e.eventModifiers,...t}}}extractOrConjunctionEvents(e,t){let r=[];for(;;){let n=e.mark(),o=e.peek();if(!o)break;let s=(o.normalized||o.value).toLowerCase();if(!R.OR_KEYWORDS.has(s)){e.reset(n);break}e.advance();let a=e.peek();if(!a){e.reset(n);break}let l=(a.normalized||a.value).toLowerCase();e.advance(),r.push({type:"literal",value:l})}return r}};R.KNOWN_EVENTS=new Set(["click","dblclick","input","change","submit","keydown","keyup","keypress","mouseover","mouseout","mousedown","mouseup","focus","blur","load","scroll","resize","contextmenu"]),R.SOV_EVENT_MARKERS={ja:new Set(["\u3067"]),ko:new Set,tr:new Set(["de","da","te","ta"]),bn:new Set(["\u098F"]),qu:new Set(["pi"])},R.SOV_SOURCE_MARKERS={ja:{markers:new Set(["\u304B\u3089"]),windowTokens:new Set(["\u30A6\u30A3\u30F3\u30C9\u30A6","\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8","window","document"])},ko:{markers:new Set(["\uC5D0\uC11C"]),windowTokens:new Set(["\uCC3D","\uC708\uB3C4\uC6B0","\uBB38\uC11C","window","document"])},tr:{markers:new Set(["den","dan","ten","tan"]),windowTokens:new Set(["pencere","belge","window","document"])},bn:{markers:new Set(["\u09A5\u09C7\u0995\u09C7","\u09AE\u09A7\u09CD\u09AF\u09C7"]),windowTokens:new Set(["\u0989\u0987\u09A8\u09CD\u09A1\u09CB","\u09A1\u0995\u09C1\u09AE\u09C7\u09A8\u09CD\u099F","window","document"])},qu:{markers:new Set(["manta"]),windowTokens:new Set(["k_iri","ventana","window","document"])}},R.STANDALONE_MODIFIERS={once:"once",debounced:"debounce",debounce:"debounce",throttled:"throttle",throttle:"throttle"},R.OR_KEYWORDS=new Set(["or","\u0623\u0648","o","ou","oder","atau","atau","\u6216","\u307E\u305F\u306F","\uB610\uB294","veya","\u0985\u09A5\u09AC\u09BE","utaq","au","\u0430\u0431\u043E","\u0438\u043B\u0438","ho\u1EB7c","lub","\u05D0\u05D5","\u0E2B\u0E23\u0E37\u0E2D","o"]);var Le=R,Ue=new Le;function $(i,e){return Ue.parse(i,e)}function Fe(i,e){return Ue.canParse(i,e)}function qe(i,e){if(oe(i))return i;let t=$(i,e);return me(t)}function De(i,e){let t=Z(i);return pe(t,e)}function He(i,e){return oe(i)?Z(i):$(i,e)}var Kt=new Set(["me","my","myself","you","your","yourself","it","its","result","event","target","body","detail","window","document"]),$t=new Set(["and","or","not","no"]),Ut=new Set(["true","false","null","undefined"]),Ft=new Set(["ms","s","seconds","second","milliseconds","millisecond","minutes","minute","hours","hour"]);function ft(i){let e=[],t=0,r=1,n=1;function o(){if(e.length===0)return!0;let u=e[e.length-1];return["OPERATOR","COMPARISON","LOGICAL","LPAREN","LBRACKET","LBRACE","COMMA","COLON"].includes(u.type)}function s(u=0){return i[t+u]??""}function a(){let u=i[t];return t++,u===`
2
+ `?(r++,n=1):n++,u}function l(){for(;t<i.length&&/\s/.test(i[t]);)a()}function c(u){let p="";for(;t<i.length&&u(i[t]);)p+=a();return p}function m(u){let p=u;for(a();t<i.length&&i[t]!==u;)i[t]==="\\"&&t+1<i.length&&(p+=a()),p+=a();return t<i.length&&(p+=a()),p}function v(){let u="`";for(a();t<i.length&&i[t]!=="`";)i[t]==="\\"&&t+1<i.length&&(u+=a()),u+=a();return t<i.length&&(u+=a()),u}function y(){let u="<";for(a();t<i.length&&(u+=a(),!u.endsWith("/>")););return u}function f(u,p,g){return{type:u,value:p,start:g,end:t,line:r,column:n-p.length}}for(;t<i.length&&(l(),!(t>=i.length));){let u=t,p=s();if(p==="'"&&s(1)==="s"&&!/\w/.test(s(2))){a(),a(),e.push(f("POSSESSIVE","'s",u));continue}if(p==='"'||p==="'"){let g=m(p);e.push(f("STRING",g,u));continue}if(p==="`"){let g=v();e.push(f("TEMPLATE_LITERAL",g,u));continue}if(p==="<"&&/[a-zA-Z.#\[]/.test(s(1))){let g=y();e.push(f("QUERY_SELECTOR",g,u));continue}if(p==="#"&&o()){a();let g=c(x=>/[\w-]/.test(x));e.push(f("ID_SELECTOR","#"+g,u));continue}if(p==="."&&/[a-zA-Z_-]/.test(s(1))&&o()){a();let g=c(x=>/[\w-]/.test(x));e.push(f("CLASS_SELECTOR","."+g,u));continue}if(p==="["&&o()){let g=s(1);if(g==="@"||/[a-zA-Z]/.test(g)){let x="";for(x+=a();t<i.length&&i[t]!=="]";)i[t]==='"'||i[t]==="'"?x+=m(i[t]):x+=a();t<i.length&&(x+=a()),e.push(f("ATTRIBUTE_SELECTOR",x,u));continue}}if(p==="["){a(),e.push(f("LBRACKET","[",u));continue}if(p==="]"){a(),e.push(f("RBRACKET","]",u));continue}if(/\d/.test(p)){let g=c(Q=>/[\d.]/.test(Q)),x=t,C=c(Q=>/[a-zA-Z]/.test(Q));Ft.has(C)?e.push(f("TIME_EXPRESSION",g+C,u)):(t=x,e.push(f("NUMBER",g,u)));continue}if(p==="("){a(),e.push(f("LPAREN","(",u));continue}if(p===")"){a(),e.push(f("RPAREN",")",u));continue}if(p==="{"){a(),e.push(f("LBRACE","{",u));continue}if(p==="}"){a(),e.push(f("RBRACE","}",u));continue}if(p===","){a(),e.push(f("COMMA",",",u));continue}if(p===":"){a(),e.push(f("COLON",":",u));continue}if(p==="."){a(),e.push(f("DOT",".",u));continue}if(p==="+"||p==="-"||p==="*"||p==="/"||p==="%"){a(),e.push(f("OPERATOR",p,u));continue}if(p==="="||p==="!"||p==="<"||p===">"){let g=a();s()==="="&&(g+=a()),e.push(f("COMPARISON",g,u));continue}if(/[a-zA-Z_$]/.test(p)){let g=c(C=>/[\w$]/.test(C)),x=g.toLowerCase();Kt.has(x)?e.push(f("CONTEXT_VAR",g,u)):$t.has(x)?e.push(f("LOGICAL",g,u)):Ut.has(x)?e.push(f("BOOLEAN",g,u)):e.push(f("IDENTIFIER",g,u));continue}a()}return e.push(f("EOF","",t)),e}var ze=class{constructor(){this.tokens=[];this.current=0}parse(e){try{return this.tokens=ft(e),this.current=0,this.isAtEnd()?{success:!1,error:"Empty expression"}:{success:!0,node:this.parseExpression(),consumed:this.current}}catch(t){return{success:!1,error:t instanceof Error?t.message:"Parse error"}}}peek(){return this.tokens[this.current]??{type:"EOF",value:"",start:0,end:0}}previous(){return this.tokens[this.current-1]??{type:"EOF",value:"",start:0,end:0}}isAtEnd(){return this.peek().type==="EOF"}advance(){return this.isAtEnd()||this.current++,this.previous()}check(e){return this.peek().type===e}checkValue(e){return this.peek().value.toLowerCase()===e.toLowerCase()}match(...e){for(let t of e)if(this.check(t))return this.advance(),!0;return!1}parseExpression(){return this.parseOr()}parseOr(){let e=this.parseAnd();for(;this.checkValue("or");){let t=this.advance().value,r=this.parseAnd();e=this.createBinaryExpression(t,e,r)}return e}parseAnd(){let e=this.parseEquality();for(;this.checkValue("and");){let t=this.advance().value,r=this.parseEquality();e=this.createBinaryExpression(t,e,r)}return e}parseEquality(){let e=this.parseComparison();for(;this.match("COMPARISON")||this.checkValue("is")||this.checkValue("matches")||this.checkValue("contains")||this.checkValue("in");){let t=this.previous().value,r=this.parseComparison();e=this.createBinaryExpression(t,e,r)}return e}parseComparison(){let e=this.parseAddition();for(;this.check("COMPARISON");){let t=this.advance().value,r=this.parseAddition();e=this.createBinaryExpression(t,e,r)}return e}parseAddition(){let e=this.parseMultiplication();for(;this.peek().value==="+"||this.peek().value==="-";){let t=this.advance().value,r=this.parseMultiplication();e=this.createBinaryExpression(t,e,r)}return e}parseMultiplication(){let e=this.parseUnary();for(;this.peek().value==="*"||this.peek().value==="/"||this.peek().value==="%";){let t=this.advance().value,r=this.parseUnary();e=this.createBinaryExpression(t,e,r)}return e}parseUnary(){if(this.checkValue("not")||this.checkValue("no")||this.peek().value==="-"){let e=this.advance().value,t=this.parseUnary();return this.createUnaryExpression(e,t)}return this.parsePostfix()}parsePostfix(){let e=this.parsePrimary();for(;;)if(this.match("DOT"))if(this.check("IDENTIFIER")||this.check("CONTEXT_VAR")){let t=this.advance().value;e=this.createPropertyAccess(e,t)}else break;else if(this.match("POSSESSIVE"))if(this.check("IDENTIFIER")||this.check("CONTEXT_VAR")){let t=this.advance().value;e=this.createPossessiveExpression(e,t)}else break;else if(this.match("LPAREN")){let t=this.parseArguments();e=this.createCallExpression(e,t)}else if(this.match("LBRACKET")){let t=this.parseExpression();if(!this.match("RBRACKET"))throw new Error("Expected ] after index");e=this.createPropertyAccess(e,t)}else break;return e}parsePrimary(){let e=this.peek();if(this.match("NUMBER"))return this.createLiteral(parseFloat(e.value),"number",e);if(this.match("STRING")){let t=e.value.slice(1,-1);return this.createLiteral(t,"string",e)}if(this.match("BOOLEAN")){let t=e.value==="true"?!0:e.value==="false"?!1:e.value==="null"?null:void 0,r={true:"boolean",false:"boolean",null:"null",undefined:"undefined"};return this.createLiteral(t,r[e.value]??"string",e)}if(this.match("TEMPLATE_LITERAL"))return{type:"templateLiteral",value:e.value,start:e.start,end:e.end,line:e.line,column:e.column};if(this.match("TIME_EXPRESSION"))return this.parseTimeExpression(e);if(this.match("ID_SELECTOR"))return this.createSelector(e.value,"id",e);if(this.match("CLASS_SELECTOR"))return this.createSelector(e.value,"class",e);if(this.match("ATTRIBUTE_SELECTOR"))return this.createSelector(e.value,"attribute",e);if(this.match("QUERY_SELECTOR")){let t=e.value.slice(1,-2);return this.createSelector(t,"query",e)}if(this.match("CONTEXT_VAR"))return this.createContextReference(e.value,e);if(this.match("IDENTIFIER"))return this.createIdentifier(e.value,e);if(this.match("LPAREN")){let t=this.parseExpression();if(!this.match("RPAREN"))throw new Error("Expected ) after expression");return t}if(this.match("LBRACKET"))return this.parseArrayLiteral();if(this.match("LBRACE"))return this.parseObjectLiteral();throw new Error(`Unexpected token: ${e.value}`)}parseArguments(){let e=[];if(!this.check("RPAREN"))do e.push(this.parseExpression());while(this.match("COMMA"));if(!this.match("RPAREN"))throw new Error("Expected ) after arguments");return e}parseArrayLiteral(){let e=[],t=this.previous().start;if(!this.check("RBRACKET"))do e.push(this.parseExpression());while(this.match("COMMA"));if(!this.match("RBRACKET"))throw new Error("Expected ] after array elements");return{type:"arrayLiteral",elements:e,start:t,end:this.previous().end}}parseObjectLiteral(){let e=[],t=this.previous().start;if(!this.check("RBRACE"))do{let r;if(this.check("STRING"))r=this.advance().value.slice(1,-1);else if(this.check("IDENTIFIER"))r=this.advance().value;else throw new Error("Expected property name");if(!this.match("COLON"))throw new Error("Expected : after property name");let n=this.parseExpression();e.push({key:r,value:n})}while(this.match("COMMA"));if(!this.match("RBRACE"))throw new Error("Expected } after object properties");return{type:"objectLiteral",properties:e.map(r=>({type:"objectProperty",key:r.key,value:r.value})),start:t,end:this.previous().end}}parseTimeExpression(e){let t=e.value.match(/^(\d+(?:\.\d+)?)(ms|s|seconds?|milliseconds?|minutes?|hours?)$/i);if(!t)throw new Error(`Invalid time expression: ${e.value}`);let r=parseFloat(t[1]),n=t[2].toLowerCase();return{type:"timeExpression",value:r,unit:n,raw:e.value,start:e.start,end:e.end,line:e.line,column:e.column}}createLiteral(e,t,r){return{type:"literal",value:e,dataType:t,raw:r.value,start:r.start,end:r.end,line:r.line,column:r.column}}createSelector(e,t,r){return{type:"selector",value:e,selector:e,selectorType:t,start:r.start,end:r.end,line:r.line,column:r.column}}createContextReference(e,t){return{type:"contextReference",contextType:e,name:t.value,start:t.start,end:t.end,line:t.line,column:t.column}}createIdentifier(e,t){return{type:"identifier",name:e,start:t.start,end:t.end,line:t.line,column:t.column}}createPropertyAccess(e,t){return{type:"propertyAccess",object:e,property:typeof t=="string"?t:t.type==="identifier"?t.name:"",start:e.start,end:this.previous().end}}createPossessiveExpression(e,t){return{type:"possessiveExpression",object:e,property:t,start:e.start,end:this.previous().end}}createBinaryExpression(e,t,r){return{type:"binaryExpression",operator:e,left:t,right:r,start:t.start,end:r.end}}createUnaryExpression(e,t){return{type:"unaryExpression",operator:e,operand:t,prefix:!0,start:this.previous().start,end:t.end}}createCallExpression(e,t){return{type:"callExpression",callee:e,arguments:t,start:e.start,end:this.previous().end}}};function Ge(i){return new ze().parse(i)}function z(i,e){switch(i.type){case"literal":return qt(i);case"selector":return Dt(i,e);case"reference":return Ht(i);case"property-path":return Gt(i,e);case"expression":return Zt(i);default:let t=i;throw new Error(`Unknown semantic value type: ${t.type}`)}}function qt(i){let e={type:"literal",value:i.value};return i.dataType?{...e,dataType:i.dataType}:e}function Dt(i,e){return e&&i.value.startsWith("*")&&/^[a-zA-Z-]/.test(i.value.slice(1))&&e.push(`Converted '${i.value}' to a CSS selector, but it looks like a CSS property name. CSS properties in commands like 'transition' should be literal strings, not selectors. Consider using expectedTypes: ['literal'] instead of ['literal', 'selector'] in the command schema.`),{type:"selector",value:i.value,selector:i.value,selectorType:i.selectorKind}}function Ht(i){return{type:"contextReference",contextType:i.value,name:i.value}}function Gt(i,e){return{type:"propertyAccess",object:z(i.object,e),property:i.property}}function Zt(i){let e=Ge(i.raw);return!e.success||!e.node?{type:"identifier",name:i.raw}:e.node}function gt(i,e){return i.roles.get(e)}function d(i,e,t){let r=gt(i,e);return r?z(r,t):void 0}function h(i,e=[],t,r={}){let n={type:"command",name:i,args:e};return t&&Object.keys(t).length>0&&(n.modifiers=t),r.isBlocking&&(n.isBlocking=r.isBlocking),r.implicitTarget&&(n.implicitTarget=r.implicitTarget),r.semanticRoles&&Object.keys(r.semanticRoles).length>0&&(n.semanticRoles=r.semanticRoles),n}var Xt={action:"toggle",toAST(i,e){let t=d(i,"patient"),r=d(i,"destination"),n=d(i,"duration"),o=t?[t]:[],s={};return r&&(s.on=r),n&&(s.for=n),h("toggle",o,s)}},Qt={action:"add",toAST(i,e){let t=d(i,"patient"),r=d(i,"destination"),n=t?[t]:[],o={};return r&&(o.to=r),h("add",n,o)}},Yt={action:"remove",toAST(i,e){let t=d(i,"patient"),r=d(i,"source"),n=t?[t]:[],o={};return r&&(o.from=r),h("remove",n,o)}},Jt={action:"set",toAST(i,e){let t=d(i,"destination"),r=d(i,"patient"),n=[],o={};return t&&n.push(t),r&&(o.to=r),h("set",n,o)}},er={action:"show",toAST(i,e){let t=d(i,"destination"),r=d(i,"patient"),n=d(i,"duration"),o=[],s={},a=t??r;return a&&o.push(a),n&&(s.with=n),h("show",o,s)}},tr={action:"hide",toAST(i,e){let t=d(i,"destination"),r=d(i,"patient"),n=d(i,"duration"),o=[],s={},a=t??r;return a&&o.push(a),n&&(s.with=n),h("hide",o,s)}},rr={action:"increment",toAST(i,e){let t=d(i,"destination"),r=d(i,"patient"),n=d(i,"quantity"),o=[],s={},a=t??r;return a&&o.push(a),n&&(s.by=n),h("increment",o,s)}},nr={action:"decrement",toAST(i,e){let t=d(i,"destination"),r=d(i,"patient"),n=d(i,"quantity"),o=[],s={},a=t??r;return a&&o.push(a),n&&(s.by=n),h("decrement",o,s)}},ir={action:"wait",toAST(i,e){let t=d(i,"duration");return h("wait",t?[t]:[],void 0,{isBlocking:!0})}},or={action:"log",toAST(i,e){let t=d(i,"patient"),r=[];return t&&r.push(t),h("log",r)}},ar={action:"put",toAST(i,e){let t=d(i,"patient"),r=d(i,"destination"),n=gt(i,"method"),o=t?[t]:[],s={};if(r){let a=n?.type==="literal"?String(n.value):"into";s[a]=r}return h("put",o,s)}},sr={action:"fetch",toAST(i,e){let t=d(i,"source"),r=d(i,"method"),n=d(i,"responseType"),o=d(i,"patient"),s=t?[t]:[],a={};return r&&(a.with=r),n&&(a.as=n),o&&(a.body=o),h("fetch",s,a,{isBlocking:!0})}},lr={action:"append",toAST(i,e){let t=d(i,"patient"),r=d(i,"destination"),n=t?[t]:[],o={};return r&&(o.to=r),h("append",n,o)}},cr={action:"prepend",toAST(i,e){let t=d(i,"patient"),r=d(i,"destination"),n=t?[t]:[],o={};return r&&(o.to=r),h("prepend",n,o)}},ur={action:"trigger",toAST(i,e){let t=d(i,"event"),r=d(i,"destination"),n=t?[t]:[],o={};return r&&(o.on=r),h("trigger",n,o)}},dr={action:"send",toAST(i,e){let t=d(i,"event"),r=d(i,"destination"),n=d(i,"patient"),o=t?[t]:[],s={};return r&&(s.to=r),n&&(s.detail=n),h("send",o,s)}},pr={action:"go",toAST(i,e){let t=d(i,"source"),r=d(i,"destination"),n=[],o={};return t&&n.push(t),r&&(o.to=r),h("go",n,o)}},mr={action:"transition",toAST(i,e){let t=d(i,"patient"),r=d(i,"goal"),n=d(i,"duration"),o=d(i,"destination"),s=t?[t]:[],a={};return r&&(a.to=r),n&&(a.over=n),o&&(a.on=o),h("transition",s,a)}},fr={action:"focus",toAST(i,e){let t=d(i,"destination"),r=d(i,"patient"),n=[],o={},s=t??r;return s&&n.push(s),h("focus",n,o)}},gr={action:"blur",toAST(i,e){let t=d(i,"destination"),r=d(i,"patient"),n=[],o=t??r;return o&&n.push(o),h("blur",n)}},hr={action:"get",toAST(i,e){let t=d(i,"source"),r=d(i,"patient"),n=[],o=t??r;return o&&n.push(o),h("get",n)}},yr={action:"take",toAST(i,e){let t=d(i,"patient"),r=d(i,"source"),n=t?[t]:[],o={};return r&&(o.from=r),h("take",n,o)}},vr={action:"call",toAST(i,e){let t=d(i,"patient");return h("call",t?[t]:[])}},xr={action:"return",toAST(i,e){let t=d(i,"patient");return h("return",t?[t]:[])}},Sr={action:"halt",toAST(i,e){return h("halt",[])}},kr={action:"throw",toAST(i,e){let t=d(i,"patient");return h("throw",t?[t]:[])}},br={action:"settle",toAST(i,e){let t=d(i,"destination"),r=d(i,"patient"),n=[],o=t??r;return o&&n.push(o),h("settle",n,void 0,{isBlocking:!0})}},Tr={action:"swap",toAST(i,e){let t=d(i,"patient"),r=d(i,"source"),n=d(i,"destination"),o=d(i,"style"),s=[],a={};return t&&s.push(t),r&&s.push(r),n&&(a.on=n),o&&(a.with=o),h("swap",s,a)}},Er={action:"morph",toAST(i,e){let t=d(i,"source"),r=d(i,"destination"),n=d(i,"patient"),o=[],s={},a=t??n;return a&&o.push(a),r&&(s.on=r),h("morph",o,s)}},Nr={action:"clone",toAST(i,e){let t=d(i,"source"),r=d(i,"destination"),n=d(i,"patient"),o=[],s={},a=t??n;return a&&o.push(a),r&&(s.into=r),h("clone",o,s)}},wr={action:"make",toAST(i,e){let t=d(i,"patient");return h("make",t?[t]:[])}},Rr={action:"measure",toAST(i,e){let t=d(i,"patient"),r=d(i,"destination"),n=d(i,"source"),o=[],s={};t&&o.push(t);let a=r??n;return a&&(s.of=a),h("measure",o,s)}},Cr={action:"tell",toAST(i,e){let t=d(i,"destination"),r=d(i,"patient"),n=[],o=t??r;return o&&n.push(o),h("tell",n)}},Pr={action:"js",toAST(i,e){let t=d(i,"patient");return h("js",t?[t]:[])}},Lr={action:"async",toAST(i,e){return h("async",[])}},zr={action:"if",toAST(i,e){let t=d(i,"condition");return h("if",t?[t]:[])}},Mr={action:"unless",toAST(i,e){let t=d(i,"condition");return h("unless",t?[t]:[])}},Ar={action:"repeat",toAST(i,e){let t=d(i,"quantity"),r=d(i,"patient"),n=[],o=t??r;return o&&n.push(o),h("repeat",n)}},Vr={action:"for",toAST(i,e){let t=d(i,"patient"),r=d(i,"source"),n=t?[t]:[],o={};return r&&(o.in=r),h("for",n,o)}},Or={action:"while",toAST(i,e){let t=d(i,"condition");return h("while",t?[t]:[])}},Ir={action:"continue",toAST(i,e){return h("continue",[])}},Wr={action:"default",toAST(i,e){let t=d(i,"patient"),r=d(i,"source"),n=t?[t]:[],o={};return r&&(o.to=r),h("default",n,o)}},_r={action:"init",toAST(i,e){return h("init",[])}},jr={action:"behavior",toAST(i,e){let t=d(i,"patient");return h("behavior",t?[t]:[])}},Br={action:"install",toAST(i,e){let t=d(i,"patient"),r=d(i,"destination"),n=t?[t]:[],o={};return r&&(o.on=r),h("install",n,o)}},Kr={action:"on",toAST(i,e){let t=d(i,"event"),r=d(i,"source"),n=t?[t]:[],o={};return r&&(o.from=r),h("on",n,o)}},ht=new Map([["toggle",Xt],["add",Qt],["remove",Yt],["set",Jt],["show",er],["hide",tr],["increment",rr],["decrement",nr],["wait",ir],["log",or],["put",ar],["fetch",sr],["append",lr],["prepend",cr],["get",hr],["take",yr],["trigger",ur],["send",dr],["on",Kr],["go",pr],["transition",mr],["focus",fr],["blur",gr],["call",vr],["return",xr],["halt",Sr],["throw",kr],["settle",br],["swap",Tr],["morph",Er],["clone",Nr],["measure",Rr],["make",wr],["tell",Cr],["default",Wr],["js",Pr],["async",Lr],["if",zr],["unless",Mr],["repeat",Ar],["for",Vr],["while",Or],["continue",Ir],["init",_r],["behavior",jr],["install",Br]]);function fe(i){return ht.get(i)}function Ze(i){ht.set(i.action,i)}var ge=class{constructor(e={}){this.warnings=[]}build(e){switch(e.kind){case"command":return this.buildCommand(e);case"event-handler":return this.buildEventHandler(e);case"conditional":return this.buildConditional(e);case"compound":return this.buildCompound(e);case"loop":return this.buildLoop(e);default:throw new Error(`Unknown semantic node kind: ${e.kind}`)}}buildCommand(e){let t=fe(e.action),r;if(t){let n=t.toAST(e,this);if("ast"in n&&"warnings"in n){let o=n;this.warnings.push(...o.warnings),r=o.ast}else r=n}else r=this.buildGenericCommand(e);if(e.roles&&e.roles.size>0){let n={};for(let[o,s]of e.roles)n[o]=z(s);Object.keys(n).length>0&&(r.semanticRoles=n)}return r}buildGenericCommand(e){let t=[],r={},n=["patient","source","quantity"],o=["destination","duration","method","style"];for(let a of n){let l=e.roles.get(a);l&&t.push(z(l))}for(let a of o){let l=e.roles.get(a);if(l){let c=this.roleToModifierKey(a);r[c]=z(l)}}let s={type:"command",name:e.action,args:t};return Object.keys(r).length>0?{...s,modifiers:r}:s}roleToModifierKey(e){return{destination:"on",duration:"for",source:"from",condition:"if",method:"via",style:"with"}[e]??e}buildEventHandler(e){let t=e.roles.get("event"),r,n;if(t?.type==="literal"){let g=String(t.value);g.includes("|")||g.includes(" or ")?(n=g.split(/\s+or\s+|\|/).map(x=>x.trim()),r=n[0]):r=g}else t?.type==="reference"?r=t.value:r="click";let o=e.body.map(g=>this.build(g)),s=e.roles.get("source"),a,l;s?.type==="selector"?(a=s.value,l=s.value):s?.type==="reference"?l=s.value:s?.type==="literal"&&(l=String(s.value));let c=e.roles.get("condition"),m=c?z(c):void 0,v=e.roles.get("destination"),y=v?z(v):void 0,f=e.eventModifiers,u=a;if(f?.from){let g=f.from;g.type==="selector"&&!a&&(u=g.value)}let p=e.parameterNames?[...e.parameterNames]:void 0;return{type:"eventHandler",event:r,commands:o,...n&&n.length>1?{events:n}:{},...u?{selector:u}:{},...l?{target:l}:{},...m?{condition:m}:{},...y?{watchTarget:y}:{},...p&&p.length>0?{args:p,params:p}:{}}}buildConditional(e){let t=e.roles.get("condition");if(!t)throw new Error("Conditional node missing condition");let r=z(t),n=e.thenBranch.map(a=>this.build(a)),o=e.elseBranch?.map(a=>this.build(a)),s=[r,{type:"block",commands:n}];return o&&o.length>0&&s.push({type:"block",commands:o}),{type:"command",name:"if",args:s}}buildCompound(e){let t=e.statements.map(n=>this.build(n));return t.length===1?t[0]:t.length===0?{type:"block",commands:[]}:{type:"CommandSequence",commands:t}}buildLoop(e){let t=e.body.map(n=>this.build(n)),r=[{type:"identifier",name:e.loopVariant}];switch(e.loopVariant){case"times":{let n=e.roles.get("quantity");n&&r.push(z(n));break}case"for":{e.loopVariable&&r.push({type:"string",value:e.loopVariable});let n=e.roles.get("source");n&&r.push(z(n));break}case"while":case"until":{let n=e.roles.get("condition");n&&r.push(z(n));break}case"forever":break}return r.push({type:"block",commands:t}),{type:"command",name:"repeat",args:r}}buildBlock(e){return{type:"block",commands:e.map(r=>this.build(r))}}};function yt(i){let e=new ge;return{ast:e.build(i),warnings:e.warnings}}var X=class{constructor(e={}){this.cache=new Map,this.config={maxSize:e.maxSize??1e3,ttlMs:e.ttlMs??0,enabled:e.enabled??!0},this.stats={hits:0,misses:0,evictions:0,expirations:0}}makeKey(e,t){return`${t}:${e}`}isExpired(e){return this.config.ttlMs===0?!1:Date.now()-e.createdAt>this.config.ttlMs}evictLRU(){let e=this.cache.keys().next().value;e!==void 0&&(this.cache.delete(e),this.stats.evictions++)}get(e,t){if(!this.config.enabled){this.stats.misses++;return}let r=this.makeKey(e,t),n=this.cache.get(r);if(!n){this.stats.misses++;return}if(this.isExpired(n)){this.cache.delete(r),this.stats.expirations++,this.stats.misses++;return}return this.cache.delete(r),n.lastAccessed=Date.now(),this.cache.set(r,n),this.stats.hits++,n.result}set(e,t,r){if(!this.config.enabled||r.confidence===0)return;let n=this.makeKey(e,t),o=Date.now();for(;this.cache.size>=this.config.maxSize;)this.evictLRU();this.cache.set(n,{result:r,createdAt:o,lastAccessed:o})}has(e,t){if(!this.config.enabled)return!1;let r=this.makeKey(e,t),n=this.cache.get(r);return n?this.isExpired(n)?(this.cache.delete(r),this.stats.expirations++,!1):!0:!1}delete(e,t){let r=this.makeKey(e,t);return this.cache.delete(r)}clear(){this.cache.clear()}resetStats(){this.stats={hits:0,misses:0,evictions:0,expirations:0}}getStats(){let e=this.stats.hits+this.stats.misses;return{hits:this.stats.hits,misses:this.stats.misses,size:this.cache.size,maxSize:this.config.maxSize,hitRate:e>0?this.stats.hits/e:0,evictions:this.stats.evictions,expirations:this.stats.expirations,enabled:this.config.enabled}}configure(e){if(e.maxSize!==void 0)for(this.config.maxSize=e.maxSize;this.cache.size>this.config.maxSize;)this.evictLRU();e.ttlMs!==void 0&&(this.config.ttlMs=e.ttlMs),e.enabled!==void 0&&(this.config.enabled=e.enabled)}enable(){this.config.enabled=!0}disable(){this.config.enabled=!1}getConfig(){return{...this.config}}},Xe=new X;var he=class{constructor(e={}){this.patternMatcher=new de,this.languages=new Set(xe()),e.cache===!1?this.cache=new X({enabled:!1}):this.cache=e.cache?new X(e.cache):Xe}analyze(e,t){if(!this.supportsLanguage(t))return{confidence:0,errors:[`Language '${t}' is not supported for semantic parsing`]};let r=this.cache.get(e,t);if(r)return r;let n=this.analyzeUncached(e,t);return this.cache.set(e,t,n),n}analyzeUncached(e,t){try{try{let a=$(e,t),l={confidence:a.metadata?.confidence??.8,node:a};return a.kind==="command"?{...l,command:{name:a.action,roles:a.roles}}:l}catch{}let r=dt(t);if(!r)return{confidence:0,errors:[`No tokenizer available for language '${t}'`]};let n=r.tokenize(e),o=O(t);if(o.length===0)return{confidence:0,errors:[`No patterns available for language '${t}'`]};let s=this.patternMatcher.matchBest(n,o);if(s){let a=this.buildSemanticNode(s);return{confidence:s.confidence,command:{name:s.pattern.command,roles:s.captured},node:a,tokensConsumed:s.consumedTokens}}return{confidence:0,errors:["No pattern matched the input"]}}catch(r){return{confidence:0,errors:[r instanceof Error?r.message:String(r)]}}}supportsLanguage(e){return this.languages.has(e)}supportedLanguages(){return Array.from(this.languages)}getCacheStats(){return this.cache.getStats()}clearCache(){this.cache.clear()}configureCache(e){this.cache.configure(e)}buildSemanticNode(e){return{kind:"command",action:e.pattern.command,roles:e.captured,metadata:{patternId:e.pattern.id}}}};function vt(i){return new he(i)}var Qe=.5,xt=.8;function St(i,e=Qe){return i.confidence>=e&&i.command!==void 0}var $r="1.0.0-uk",Ur=["uk"];function Fr(){return[...Ur]}function kt(i){if(i!=="uk")throw new Error(`Language not supported in this bundle: ${i}. Supported: uk`)}function qr(i,e){return kt(e),[...ne(i,e).tokens]}function bt(i){return kt(i),O(i)}function Dr(i,e){return bt(i).filter(t=>t.command===e).sort((t,r)=>r.priority-t.priority)}return Pt(Hr);})();
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Vietnamese Browser Bundle Entry Point
3
+ *
4
+ * Minimal single-language bundle.
5
+ * Estimated size: ~65 KB (~23 KB gzip)
6
+ *
7
+ * @example
8
+ * ```html
9
+ * <script src="hyperfixi-semantic.vi.global.js"></script>
10
+ * <script>
11
+ * const ast = HyperFixiSemanticVi.parse('toggle .active', 'vi');
12
+ * </script>
13
+ * ```
14
+ */
15
+ import './languages/vi';
16
+ export declare const VERSION = "1.0.0-vi";
17
+ /**
18
+ * Get all supported languages in this bundle.
19
+ */
20
+ export declare function getSupportedLanguages(): string[];
21
+ export { getTokenizer, isLanguageSupported } from './registry';
22
+ import type { LanguageToken } from './types';
23
+ /**
24
+ * Tokenize input and return array of tokens (browser-friendly wrapper).
25
+ */
26
+ export declare function tokenize(input: string, language: string): LanguageToken[];
27
+ export { vietnameseTokenizer } from './tokenizers/vietnamese';
28
+ import type { LanguagePattern, ActionType } from './types';
29
+ /**
30
+ * Get all patterns for a language.
31
+ */
32
+ export declare function getPatternsForLanguage(language: string): LanguagePattern[];
33
+ /**
34
+ * Get patterns for a language and specific command.
35
+ */
36
+ export declare function getPatternsForLanguageAndCommand(language: string, command: ActionType): LanguagePattern[];
37
+ export { getProfile, tryGetProfile } from './registry';
38
+ export { vietnameseProfile } from './generators/language-profiles';
39
+ export { parse, canParse } from './parser';
40
+ export { parseAny, parseExplicit, isExplicitSyntax } from './explicit';
41
+ export { render, renderExplicit, toExplicit, fromExplicit } from './explicit';
42
+ export { buildAST, ASTBuilder, getCommandMapper, registerCommandMapper } from './ast-builder';
43
+ export { createSemanticAnalyzer, SemanticAnalyzerImpl, shouldUseSemanticResult, DEFAULT_CONFIDENCE_THRESHOLD, HIGH_CONFIDENCE_THRESHOLD, } from './core-bridge';
44
+ export type { SemanticAnalyzer, SemanticAnalysisResult } from './core-bridge';
45
+ export { createSelector, createLiteral, createReference, createPropertyPath, createCommandNode, createEventHandler, } from './types';
46
+ export type { ActionType, SemanticRole, SemanticValue, SemanticNode, LanguageToken, TokenStream, } from './types';
47
+ //# sourceMappingURL=browser-vi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-vi.d.ts","sourceRoot":"","sources":["../src/browser-vi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,gBAAgB,CAAC;AAMxB,eAAO,MAAM,OAAO,aAAa,CAAC;AAQlC;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAeD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7C;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CAIzE;AAGD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAO9D,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE3D;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE,CAG1E;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,UAAU,GAClB,eAAe,EAAE,CAInB;AAMD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAMnE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMvE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM9E,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAM9F,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAM9E,OAAO,EACL,cAAc,EACd,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,SAAS,CAAC;AAMjB,YAAY,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,MAAM,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";var LokaScriptSemanticVi=(()=>{var ze=Object.defineProperty;var St=Object.getOwnPropertyDescriptor;var bt=Object.getOwnPropertyNames;var Tt=Object.prototype.hasOwnProperty;var Et=(i,e)=>{for(var t in e)ze(i,t,{get:e[t],enumerable:!0})},wt=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of bt(e))!Tt.call(i,n)&&n!==t&&ze(i,n,{get:()=>e[n],enumerable:!(r=St(e,n))||r.enumerable});return i};var Nt=i=>wt(ze({},"__esModule",{value:!0}),i);var $r={};Et($r,{ASTBuilder:()=>me,DEFAULT_CONFIDENCE_THRESHOLD:()=>Ze,HIGH_CONFIDENCE_THRESHOLD:()=>ht,SemanticAnalyzerImpl:()=>fe,VERSION:()=>_r,buildAST:()=>ft,canParse:()=>$e,createCommandNode:()=>_,createEventHandler:()=>q,createLiteral:()=>k,createPropertyPath:()=>re,createReference:()=>P,createSelector:()=>M,createSemanticAnalyzer:()=>gt,fromExplicit:()=>Fe,getCommandMapper:()=>pe,getPatternsForLanguage:()=>xt,getPatternsForLanguageAndCommand:()=>jr,getProfile:()=>Ie,getSupportedLanguages:()=>Wr,getTokenizer:()=>Oe,isExplicitSyntax:()=>ne,isLanguageSupported:()=>nt,parse:()=>j,parseAny:()=>De,parseExplicit:()=>G,registerCommandMapper:()=>He,render:()=>ue,renderExplicit:()=>de,shouldUseSemanticResult:()=>yt,toExplicit:()=>Ue,tokenize:()=>Kr,tryGetProfile:()=>A,vietnameseProfile:()=>D,vietnameseTokenizer:()=>we});var I=new Map,$=new Map,oe=new Map;var Ye=null;function et(i,e){let t={...i};for(let r of Object.keys(e)){let n=e[r],o=i[r];n!==void 0&&(typeof n=="object"&&n!==null&&!Array.isArray(n)&&typeof o=="object"&&o!==null&&!Array.isArray(o)?t[r]=et(o,n):t[r]=n)}return t}function Ct(i,e){return et(i,e)}function Ve(i){if(!i.extends)return i;let e=$.get(i.extends);if(!e)return console.warn(`[Registry] Profile '${i.code}' extends '${i.extends}' but base is not registered. Make sure to import the base language before the variant.`),i;let t=Ve(e);return Ct(t,i)}function tt(i,e,t){I.set(i,e),$.set(i,t),oe.delete(i)}var Je=new Map;function U(i){return i.split("-")[0]}function F(i){return i.includes("-")}function Oe(i){let e=I.get(i);if(!e&&F(i)){let t=U(i);e=I.get(t)}if(!e){let t=Array.from(I.keys()).join(", ");throw new Error(`Language '${i}' is not registered. Registered languages: ${t||"none"}. Import the language module first: import '@lokascript/semantic/languages/${i}';`)}return e}function Ie(i){let e=$.get(i);if(!e&&F(i)){let t=U(i);e=$.get(t)}if(!e){let t=Array.from($.keys()).join(", ");throw new Error(`Language profile '${i}' is not registered. Registered languages: ${t||"none"}. Import the language module first: import '@lokascript/semantic/languages/${i}';`)}return Ve(e)}function rt(i){let e=I.get(i);return!e&&F(i)&&(e=I.get(U(i))),e}function A(i){let e=$.get(i);return!e&&F(i)&&(e=$.get(U(i))),e?Ve(e):void 0}function ye(){return Array.from(I.keys())}function nt(i){return I.has(i)?!0:F(i)?I.has(U(i)):!1}function it(i,e){return Oe(e).tokenize(i)}function z(i){let e=oe.get(i);if(!e&&F(i)&&(e=oe.get(U(i))),e)return e;let t=Je.get(i);if(!t&&F(i)&&(t=Je.get(U(i))),t)return oe.set(i,t),t;if(!Ye)throw new Error(`No patterns registered for language '${i}'. Either import the language module or set a pattern generator.`);let r=Ie(i),n=Ye(r);return oe.set(i,n),n}function ot(i,e){return z(i).filter(t=>t.command===e).sort((t,r)=>r.priority-t.priority)}var V=class{constructor(e,t){this.pos=0;this.tokens=e,this.language=t}peek(e=0){let t=this.pos+e;return t<0||t>=this.tokens.length?null:this.tokens[t]}advance(){if(this.isAtEnd())throw new Error("Unexpected end of token stream");return this.tokens[this.pos++]}isAtEnd(){return this.pos>=this.tokens.length}mark(){return{position:this.pos}}reset(e){this.pos=e.position}position(){return this.pos}remaining(){return this.tokens.slice(this.pos)}takeWhile(e){let t=[];for(;!this.isAtEnd()&&e(this.peek());)t.push(this.advance());return t}skipWhile(e){for(;!this.isAtEnd()&&e(this.peek());)this.advance()}};function S(i,e){return{start:i,end:e}}function b(i,e,t,r){if(typeof r=="string")return{value:i,kind:e,position:t,normalized:r};if(r){let{normalized:n,stem:o,stemConfidence:a}=r;return{value:i,kind:e,position:t,...n!==void 0&&{normalized:n},...o!==void 0&&{stem:o},...a!==void 0&&{stemConfidence:a}}}return{value:i,kind:e,position:t}}function O(i){return/\s/.test(i)}function Y(i){return i==="#"||i==="."||i==="["||i==="@"||i==="*"||i==="<"}function J(i){return i==='"'||i==="'"||i==="`"||i==="\u300C"||i==="\u300D"}function w(i){return/\d/.test(i)}function ve(i){return/[a-zA-Z]/.test(i)}function E(i){return/[a-zA-Z0-9_-]/.test(i)}function xe(i){let e=r=>i.test(r);return{isLetter:e,isIdentifierChar:r=>e(r)||/[0-9_-]/.test(r)}}function ke(i,e){if(e>=i.length)return null;let t=i[e];if(!Y(t))return null;let r=e,n="";if(t==="#"||t==="."){for(n+=i[r++];r<i.length&&E(i[r]);)n+=i[r++];if(n.length<=1)return null;if(r<i.length&&i[r]==="."&&t==="#"){let a=r+1;for(;a<i.length&&E(i[a]);)a++;if(a<i.length&&i[a]==="(")return n}}else if(t==="["){let o=1,a=!1,s=null,c=!1;for(n+=i[r++];r<i.length&&o>0;){let l=i[r];n+=l,c?c=!1:l==="\\"?c=!0:a?l===s&&(a=!1,s=null):l==='"'||l==="'"||l==="`"?(a=!0,s=l):l==="["?o++:l==="]"&&o--,r++}if(o!==0)return null}else if(t==="@"){for(n+=i[r++];r<i.length&&E(i[r]);)n+=i[r++];if(n.length<=1)return null}else if(t==="*"){for(n+=i[r++];r<i.length&&E(i[r]);)n+=i[r++];if(n.length<=1)return null}else if(t==="<"){if(n+=i[r++],r>=i.length||!ve(i[r]))return null;for(;r<i.length&&E(i[r]);)n+=i[r++];for(;r<i.length;){let o=i[r];if(o==="."){if(n+=i[r++],r>=i.length||!E(i[r]))return null;for(;r<i.length&&E(i[r]);)n+=i[r++]}else if(o==="#"){if(n+=i[r++],r>=i.length||!E(i[r]))return null;for(;r<i.length&&E(i[r]);)n+=i[r++]}else if(o==="["){let a=1,s=!1,c=null,l=!1;for(n+=i[r++];r<i.length&&a>0;){let m=i[r];n+=m,l?l=!1:m==="\\"?l=!0:s?m===c&&(s=!1,c=null):m==='"'||m==="'"||m==="`"?(s=!0,c=m):m==="["?a++:m==="]"&&a--,r++}if(a!==0)return null}else break}for(;r<i.length&&O(i[r]);)n+=i[r++];if(r<i.length&&i[r]==="/")for(n+=i[r++];r<i.length&&O(i[r]);)n+=i[r++];if(r>=i.length||i[r]!==">")return null;n+=i[r++]}return n||null}function at(i,e){if(e>=i.length||i[e]!=="'"||e+1>=i.length||i[e+1].toLowerCase()!=="s")return!1;if(e+2>=i.length)return!0;let r=i[e+2];return O(r)||r==="*"||!E(r)}function Se(i,e){if(e>=i.length)return null;let t=i[e];if(!J(t)||t==="'"&&at(i,e))return null;let n={'"':'"',"'":"'","`":"`","\u300C":"\u300D"}[t];if(!n)return null;let o=e+1,a=t,s=!1;for(;o<i.length;){let c=i[o];if(a+=c,s)s=!1;else if(c==="\\")s=!0;else if(c===n)return a;o++}return a}function ae(i,e){if(e>=i.length)return!1;let t=i[e],r=i[e+1]||"",n=i[e+2]||"";if(t==="/"&&r!=="/"&&/[a-zA-Z0-9._-]/.test(r)||t==="/"&&r==="/"&&/[a-zA-Z]/.test(n)||t==="."&&(r==="/"||r==="."&&n==="/"))return!0;let o=i.slice(e,e+8).toLowerCase();return!!(o.startsWith("http://")||o.startsWith("https://"))}function be(i,e){if(!ae(i,e))return null;let t=e,r="",n=/[a-zA-Z0-9/:._\-?&=%@+~!$'()*,;[\]]/;for(;t<i.length;){let o=i[t];if(o==="#"){if(r.length>0&&/[a-zA-Z0-9/.]$/.test(r))for(r+=o,t++;t<i.length&&/[a-zA-Z0-9_-]/.test(i[t]);)r+=i[t++];break}if(n.test(o))r+=o,t++;else break}return r.length<2?null:r}function Te(i,e){if(e>=i.length)return null;let t=i[e];if(!w(t)&&t!=="-"&&t!=="+")return null;let r=e,n="";if((i[r]==="-"||i[r]==="+")&&(n+=i[r++]),r>=i.length||!w(i[r]))return null;for(;r<i.length&&w(i[r]);)n+=i[r++];if(r<i.length&&i[r]===".")for(n+=i[r++];r<i.length&&w(i[r]);)n+=i[r++];return r<i.length&&(i.slice(r,r+2)==="ms"?n+="ms":(i[r]==="s"||i[r]==="m"||i[r]==="h")&&(n+=i[r])),n}var Ee=class Ee{constructor(){this.profileKeywords=[];this.profileKeywordMap=new Map}tryPropertyAccess(e,t,r){if(e[t]!==".")return!1;let n=r[r.length-1],o=n&&n.position.end<t;if(n&&!o&&(n.kind==="identifier"||n.kind==="keyword"||n.kind==="selector"))return r.push(b(".","operator",S(t,t+1))),!0;let c=t+1;for(;c<e.length&&E(e[c]);)c++;return c<e.length&&e[c]==="("?(r.push(b(".","operator",S(t,t+1))),!0):!1}initializeKeywordsFromProfile(e,t=[]){let r=new Map;if(e.keywords){for(let[n,o]of Object.entries(e.keywords))if(r.set(o.primary,{native:o.primary,normalized:o.normalized||n}),o.alternatives)for(let a of o.alternatives)r.set(a,{native:a,normalized:o.normalized||n})}if(e.references){for(let[n,o]of Object.entries(e.references))r.set(o,{native:o,normalized:n});for(let n of Object.keys(e.references))r.has(n)||r.set(n,{native:n,normalized:n})}if(e.roleMarkers){for(let[n,o]of Object.entries(e.roleMarkers))if(o.primary&&r.set(o.primary,{native:o.primary,normalized:n}),o.alternatives)for(let a of o.alternatives)r.set(a,{native:a,normalized:n})}for(let n of t)r.set(n.native,n);this.profileKeywords=Array.from(r.values()).sort((n,o)=>o.native.length-n.native.length),this.profileKeywordMap=new Map;for(let n of this.profileKeywords){this.profileKeywordMap.set(n.native.toLowerCase(),n);let o=this.removeDiacritics(n.native);o!==n.native&&!this.profileKeywordMap.has(o.toLowerCase())&&this.profileKeywordMap.set(o.toLowerCase(),n)}}removeDiacritics(e){return e.replace(/[\u064B-\u0652\u0670]/g,"")}tryProfileKeyword(e,t){for(let r of this.profileKeywords)if(e.slice(t).startsWith(r.native))return b(r.native,"keyword",S(t,t+r.native.length),r.normalized);return null}isKeywordStart(e,t){let r=e.slice(t);return this.profileKeywords.some(n=>r.startsWith(n.native))}lookupKeyword(e){return this.profileKeywordMap.get(e.toLowerCase())}isKeyword(e){return this.profileKeywordMap.has(e.toLowerCase())}setNormalizer(e){this.normalizer=e}tryNormalize(e){if(!this.normalizer)return null;let t=this.normalizer.normalize(e);return t.stem!==e&&t.confidence>=.7?t:null}tryMorphKeywordMatch(e,t,r){let n=this.tryNormalize(e);if(!n)return null;let o=this.lookupKeyword(n.stem);if(!o)return null;let a={normalized:o.normalized,stem:n.stem,stemConfidence:n.confidence};return b(e,"keyword",S(t,r),a)}trySelector(e,t){let r=ke(e,t);return r?b(r,"selector",S(t,t+r.length)):null}tryEventModifier(e,t){if(e[t]!==".")return null;let r=e.slice(t).match(/^\.(?:once|debounce|throttle|queue)(?:\(([^)]+)\))?(?:\s|$|\.)/);if(!r)return null;let n=r[0].replace(/(\s|\.)$/,""),o=n.slice(1).split("(")[0],a=r[1];return{...b(n,"event-modifier",S(t,t+n.length)),metadata:{modifierName:o,value:a?o==="queue"?a:parseInt(a,10):void 0}}}tryString(e,t){let r=Se(e,t);return r?b(r,"literal",S(t,t+r.length)):null}tryNumber(e,t){let r=Te(e,t);return r?b(r,"literal",S(t,t+r.length)):null}tryMatchTimeUnit(e,t,r,n=!1){let o=t;if(n)for(;o<e.length&&O(e[o]);)o++;let a=e.slice(o);for(let s of r){let c=a.slice(0,s.length);if(s.caseInsensitive?c.toLowerCase()===s.pattern.toLowerCase():c===s.pattern){if(s.notFollowedBy&&(a[s.length]||"")===s.notFollowedBy)continue;if(s.checkBoundary){let m=a[s.length]||"";if(E(m))continue}return{suffix:s.suffix,endPos:o+s.length}}}return null}parseBaseNumber(e,t,r=!0){let n=t,o="";if(r&&(e[n]==="-"||e[n]==="+")&&(o+=e[n++]),n>=e.length||!w(e[n]))return null;for(;n<e.length&&w(e[n]);)o+=e[n++];if(n<e.length&&e[n]===".")for(o+=e[n++];n<e.length&&w(e[n]);)o+=e[n++];return!o||o==="-"||o==="+"?null:{number:o,endPos:n}}tryNumberWithTimeUnits(e,t,r,n={}){let{allowSign:o=!0,skipWhitespace:a=!1}=n,s=this.parseBaseNumber(e,t,o);if(!s)return null;let{number:c,endPos:l}=s,m=[...r,...Ee.STANDARD_TIME_UNITS],v=this.tryMatchTimeUnit(e,l,m,a);return v&&(c+=v.suffix,l=v.endPos),b(c,"literal",S(t,l))}tryUrl(e,t){let r=be(e,t);return r?b(r,"url",S(t,t+r.length)):null}tryVariableRef(e,t){if(e[t]!==":"||t+1>=e.length||!E(e[t+1]))return null;let r=t+1;for(;r<e.length&&E(e[r]);)r++;let n=e.slice(t,r);return b(n,"identifier",S(t,r))}tryOperator(e,t){let r=e.slice(t,t+2);if(["==","!=","<=",">=","&&","||","->"].includes(r))return b(r,"operator",S(t,t+2));let n=e[t];return["<",">","!","+","-","*","/","="].includes(n)?b(n,"operator",S(t,t+1)):["(",")","{","}",",",";",":"].includes(n)?b(n,"punctuation",S(t,t+1)):null}tryMultiCharParticle(e,t,r){for(let n of r)if(e.slice(t,t+n.length)===n)return b(n,"particle",S(t,t+n.length));return null}};Ee.STANDARD_TIME_UNITS=[{pattern:"ms",suffix:"ms",length:2},{pattern:"s",suffix:"s",length:1,checkBoundary:!0},{pattern:"m",suffix:"m",length:1,checkBoundary:!0,notFollowedBy:"s"},{pattern:"h",suffix:"h",length:1,checkBoundary:!0}];var ee=Ee;var D={code:"vi",name:"Vietnamese",nativeName:"Ti\u1EBFng Vi\u1EC7t",direction:"ltr",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,defaultVerbForm:"base",verb:{position:"start",subjectDrop:!0},references:{me:"t\xF4i",it:"n\xF3",you:"b\u1EA1n",result:"k\u1EBFt qu\u1EA3",event:"s\u1EF1 ki\u1EC7n",target:"m\u1EE5c ti\xEAu",body:"body"},possessive:{marker:"c\u1EE7a",markerPosition:"between",specialForms:{me:"c\u1EE7a t\xF4i",it:"c\u1EE7a n\xF3",you:"c\u1EE7a b\u1EA1n"},keywords:{"c\u1EE7a t\xF4i":"me","c\u1EE7a b\u1EA1n":"you","c\u1EE7a anh":"you","c\u1EE7a ch\u1ECB":"you","c\u1EE7a n\xF3":"it"}},roleMarkers:{destination:{primary:"v\xE0o",alternatives:["cho","\u0111\u1EBFn"],position:"before"},source:{primary:"t\u1EEB",alternatives:["kh\u1ECFi"],position:"before"},patient:{primary:"",position:"before"},style:{primary:"v\u1EDBi",position:"before"}},keywords:{toggle:{primary:"chuy\u1EC3n \u0111\u1ED5i",alternatives:["b\u1EADt t\u1EAFt","chuy\u1EC3n"],normalized:"toggle"},add:{primary:"th\xEAm",alternatives:["b\u1ED5 sung"],normalized:"add"},remove:{primary:"x\xF3a",alternatives:["g\u1EE1 b\u1ECF","lo\u1EA1i b\u1ECF","b\u1ECF"],normalized:"remove"},put:{primary:"\u0111\u1EB7t",alternatives:["\u0111\u1EC3","\u0111\u01B0a"],normalized:"put"},append:{primary:"n\u1ED1i",normalized:"append"},prepend:{primary:"th\xEAm v\xE0o \u0111\u1EA7u",normalized:"prepend"},take:{primary:"l\u1EA5y",normalized:"take"},make:{primary:"t\u1EA1o",normalized:"make"},clone:{primary:"sao ch\xE9p",normalized:"clone"},swap:{primary:"ho\xE1n \u0111\u1ED5i",normalized:"swap"},morph:{primary:"bi\u1EBFn \u0111\u1ED5i",normalized:"morph"},set:{primary:"g\xE1n",alternatives:["thi\u1EBFt l\u1EADp","\u0111\u1EB7t"],normalized:"set"},get:{primary:"l\u1EA5y gi\xE1 tr\u1ECB",alternatives:["nh\u1EADn","l\u1EA5y"],normalized:"get"},increment:{primary:"t\u0103ng",alternatives:["t\u0103ng l\xEAn"],normalized:"increment"},decrement:{primary:"gi\u1EA3m",alternatives:["gi\u1EA3m \u0111i"],normalized:"decrement"},log:{primary:"in ra",normalized:"log"},show:{primary:"hi\u1EC3n th\u1ECB",alternatives:["hi\u1EC7n"],normalized:"show"},hide:{primary:"\u1EA9n",alternatives:["che","gi\u1EA5u"],normalized:"hide"},transition:{primary:"chuy\u1EC3n ti\u1EBFp",normalized:"transition"},on:{primary:"khi",alternatives:["l\xFAc","tr\xEAn"],normalized:"on"},trigger:{primary:"k\xEDch ho\u1EA1t",normalized:"trigger"},send:{primary:"g\u1EEDi",normalized:"send"},focus:{primary:"t\u1EADp trung",normalized:"focus"},blur:{primary:"m\u1EA5t t\u1EADp trung",normalized:"blur"},click:{primary:"nh\u1EA5p",alternatives:["b\u1EA5m"],normalized:"click"},hover:{primary:"di chu\u1ED9t",alternatives:["r\xEA chu\u1ED9t"],normalized:"hover"},submit:{primary:"g\u1EEDi",alternatives:["n\u1ED9p"],normalized:"submit"},input:{primary:"nh\u1EADp",alternatives:["nh\u1EADp li\u1EC7u"],normalized:"input"},change:{primary:"thay \u0111\u1ED5i",alternatives:["\u0111\u1ED5i"],normalized:"change"},go:{primary:"\u0111i \u0111\u1EBFn",alternatives:["\u0111i"],normalized:"go"},wait:{primary:"ch\u1EDD",alternatives:["\u0111\u1EE3i"],normalized:"wait"},fetch:{primary:"t\u1EA3i",normalized:"fetch"},settle:{primary:"\u1ED5n \u0111\u1ECBnh",normalized:"settle"},if:{primary:"n\u1EBFu",normalized:"if"},when:{primary:"khi",normalized:"when"},where:{primary:"\u1EDF_\u0111\xE2u",normalized:"where"},else:{primary:"kh\xF4ng th\xEC",alternatives:["n\u1EBFu kh\xF4ng"],normalized:"else"},repeat:{primary:"l\u1EB7p l\u1EA1i",normalized:"repeat"},for:{primary:"v\u1EDBi m\u1ED7i",normalized:"for"},while:{primary:"trong khi",normalized:"while"},continue:{primary:"ti\u1EBFp t\u1EE5c",normalized:"continue"},halt:{primary:"d\u1EEBng",alternatives:["d\u1EEBng l\u1EA1i"],normalized:"halt"},throw:{primary:"n\xE9m",normalized:"throw"},call:{primary:"g\u1ECDi",normalized:"call"},return:{primary:"tr\u1EA3 v\u1EC1",normalized:"return"},then:{primary:"r\u1ED3i",alternatives:["sau \u0111\xF3","th\xEC"],normalized:"then"},and:{primary:"v\xE0",normalized:"and"},end:{primary:"k\u1EBFt th\xFAc",normalized:"end"},js:{primary:"js",normalized:"js"},async:{primary:"b\u1EA5t \u0111\u1ED3ng b\u1ED9",normalized:"async"},tell:{primary:"n\xF3i v\u1EDBi",normalized:"tell"},default:{primary:"m\u1EB7c \u0111\u1ECBnh",normalized:"default"},init:{primary:"kh\u1EDFi t\u1EA1o",normalized:"init"},behavior:{primary:"h\xE0nh vi",normalized:"behavior"},install:{primary:"c\xE0i \u0111\u1EB7t",normalized:"install"},measure:{primary:"\u0111o l\u01B0\u1EDDng",normalized:"measure"},beep:{primary:"beep",normalized:"beep"},break:{primary:"d\u1EEBng",normalized:"break"},copy:{primary:"sao ch\xE9p",normalized:"copy"},exit:{primary:"tho\xE1t",normalized:"exit"},pick:{primary:"ch\u1ECDn",normalized:"pick"},render:{primary:"k\u1EBFt xu\u1EA5t",normalized:"render"},into:{primary:"v\xE0o",alternatives:["v\xE0o trong"],normalized:"into"},before:{primary:"tr\u01B0\u1EDBc",alternatives:["tr\u01B0\u1EDBc khi"],normalized:"before"},after:{primary:"sau",alternatives:["sau khi"],normalized:"after"},until:{primary:"cho \u0111\u1EBFn khi",normalized:"until"},event:{primary:"s\u1EF1 ki\u1EC7n",normalized:"event"},from:{primary:"t\u1EEB",alternatives:["kh\u1ECFi"],normalized:"from"}},eventHandler:{keyword:{primary:"khi",alternatives:["l\xFAc","tr\xEAn"],normalized:"on"},sourceMarker:{primary:"tr\xEAn",alternatives:["t\u1EA1i"],position:"before"},eventMarker:{primary:"khi",alternatives:["l\xFAc"],position:"before"},temporalMarkers:["khi","l\xFAc"]}};var{isLetter:se,isIdentifierChar:Lt}=xe(/[a-zA-ZàáảãạăằắẳẵặâầấẩẫậèéẻẽẹêềếểễệìíỉĩịòóỏõọôồốổỗộơờớởỡợùúủũụưừứửữựỳýỷỹỵđÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÈÉẺẼẸÊỀẾỂỄỆÌÍỈĨỊÒÓỎÕỌÔỒỐỔỖỘƠỜỚỞỠỢÙÚỦŨỤƯỪỨỬỮỰỲÝỶỸỴĐ]/),st=new Set(["trong","ngo\xE0i","tr\xEAn","d\u01B0\u1EDBi","v\xE0o","ra","\u0111\u1EBFn","t\u1EEB","v\u1EDBi","cho","b\u1EDFi","qua","tr\u01B0\u1EDBc","sau","gi\u1EEFa","b\xEAn","theo","v\u1EC1","t\u1EDBi","l\xEAn","xu\u1ED1ng"]),Mt=[{native:"\u0111\xFAng",normalized:"true"},{native:"sai",normalized:"false"},{native:"null",normalized:"null"},{native:"kh\xF4ng x\xE1c \u0111\u1ECBnh",normalized:"undefined"},{native:"\u0111\u1EA7u ti\xEAn",normalized:"first"},{native:"cu\u1ED1i c\xF9ng",normalized:"last"},{native:"ti\u1EBFp theo",normalized:"next"},{native:"tr\u01B0\u1EDBc \u0111\xF3",normalized:"previous"},{native:"g\u1EA7n nh\u1EA5t",normalized:"closest"},{native:"cha",normalized:"parent"},{native:"nh\u1EA5p",normalized:"click"},{native:"nh\u1EA5p chu\u1ED9t",normalized:"click"},{native:"click",normalized:"click"},{native:"nh\u1EA5p \u0111\xFAp",normalized:"dblclick"},{native:"nh\u1EADp",normalized:"input"},{native:"thay \u0111\u1ED5i",normalized:"change"},{native:"g\u1EEDi bi\u1EC3u m\u1EABu",normalized:"submit"},{native:"ph\xEDm xu\u1ED1ng",normalized:"keydown"},{native:"ph\xEDm l\xEAn",normalized:"keyup"},{native:"chu\u1ED9t v\xE0o",normalized:"mouseover"},{native:"chu\u1ED9t ra",normalized:"mouseout"},{native:"t\u1EA3i trang",normalized:"load"},{native:"cu\u1ED9n",normalized:"scroll"},{native:"c\u1EE7a t\xF4i",normalized:"my"},{native:"c\u1EE7a n\xF3",normalized:"its"},{native:"gi\xE2y",normalized:"s"},{native:"mili gi\xE2y",normalized:"ms"},{native:"ph\xFAt",normalized:"m"},{native:"gi\u1EDD",normalized:"h"},{native:"th\xEAm v\xE0o cu\u1ED1i",normalized:"append"},{native:"nh\xE2n b\u1EA3n",normalized:"clone"},{native:"t\u1EA1o ra",normalized:"make"},{native:"\u0111\u1EB7t gi\xE1 tr\u1ECB",normalized:"set"},{native:"ghi nh\u1EADt k\xFD",normalized:"log"},{native:"chuy\u1EC3n t\u1EDBi",normalized:"go"},{native:"ng\u01B0\u1EE3c l\u1EA1i",normalized:"else"},{native:"l\u1EB7p",normalized:"repeat"},{native:"ho\u1EB7c",normalized:"or"},{native:"kh\xF4ng",normalized:"not"},{native:"l\xE0",normalized:"is"},{native:"t\u1ED3n t\u1EA1i",normalized:"exists"},{native:"r\u1ED7ng",normalized:"empty"},{native:"javascript",normalized:"js"}],_e=class extends ee{constructor(){super();this.language="vi";this.direction="ltr";this.initializeKeywordsFromProfile(D,Mt)}tokenize(t){let r=[],n=0;for(;n<t.length;){if(O(t[n])){n++;continue}if(Y(t[n])){let c=this.tryEventModifier(t,n);if(c){r.push(c),n=c.position.end;continue}if(this.tryPropertyAccess(t,n,r)){n++;continue}let l=this.trySelector(t,n);if(l){r.push(l),n=l.position.end;continue}}if(J(t[n])){let c=this.tryString(t,n);if(c){r.push(c),n=c.position.end;continue}}if(ae(t,n)){let c=this.tryUrl(t,n);if(c){r.push(c),n=c.position.end;continue}}if(w(t[n])){let c=this.extractVietnameseNumber(t,n);if(c){r.push(c),n=c.position.end;continue}}let o=this.tryVariableRef(t,n);if(o){r.push(o),n=o.position.end;continue}let a=this.tryOperator(t,n);if(a){r.push(a),n=a.position.end;continue}let s=this.tryMultiWordPhrase(t,n);if(s){r.push(s),n=s.position.end;continue}if(se(t[n])){let c=this.extractVietnameseWord(t,n);if(c){r.push(c),n=c.position.end;continue}}n++}return new V(r,"vi")}classifyToken(t){let r=t.toLowerCase();return st.has(r)?"particle":this.isKeyword(r)?"keyword":t.startsWith("#")||t.startsWith(".")||t.startsWith("[")||t.startsWith("*")||t.startsWith("<")?"selector":t.startsWith('"')||t.startsWith("'")||/^\d/.test(t)?"literal":"identifier"}tryMultiWordPhrase(t,r){for(let n of this.profileKeywords){if(!n.native.includes(" "))continue;let o=n.native;if(t.slice(r,r+o.length).toLowerCase()===o.toLowerCase()){let s=t[r+o.length];if(s&&se(s))continue;return b(t.slice(r,r+o.length),"keyword",S(r,r+o.length),n.normalized)}}return null}extractVietnameseWord(t,r){let n=r,o="";for(;n<t.length&&Lt(t[n]);)o+=t[n++];if(!o)return null;let a=o.toLowerCase();if(st.has(a))return b(o,"particle",S(r,n));let s=this.lookupKeyword(a);return s?b(o,"keyword",S(r,n),s.normalized):b(o,"identifier",S(r,n))}extractVietnameseNumber(t,r){let n=r,o="";for(;n<t.length&&w(t[n]);)o+=t[n++];if(n<t.length&&t[n]===".")for(o+=t[n++];n<t.length&&w(t[n]);)o+=t[n++];if(n<t.length){let a=t.slice(n).toLowerCase();a.startsWith(" mili gi\xE2y")||a.startsWith(" miligi\xE2y")?(o+="ms",n+=a.startsWith(" mili gi\xE2y")?10:9):a.startsWith(" gi\xE2y")?(o+="s",n+=5):a.startsWith(" ph\xFAt")?(o+="m",n+=5):a.startsWith(" gi\u1EDD")?(o+="h",n+=4):a.startsWith("ms")?(o+="ms",n+=2):a[0]==="s"&&!se(a[1]||"")?(o+="s",n+=1):a[0]==="m"&&a[1]!=="s"&&!se(a[1]||"")?(o+="m",n+=1):a[0]==="h"&&!se(a[1]||"")&&(o+="h",n+=1)}return o?b(o,"literal",S(r,n)):null}},we=new _e;tt("vi",we,D);function ct(i){return rt(i)}function te(i,e){return it(i,e)}function Ne(){return ye()}function M(i){let e="complex";return i.startsWith("#")&&!i.includes(" ")?e="id":i.startsWith(".")&&!i.includes(" ")?e="class":i.startsWith("[")&&i.endsWith("]")?e="attribute":/^[a-z][a-z0-9]*$/i.test(i)&&(e="element"),{type:"selector",value:i,selectorKind:e}}function k(i,e){let t={type:"literal",value:i};return e!==void 0?{type:"literal",value:i,dataType:e}:t}var At=new Set(["me","you","it","result","event","target","body"]);function ce(i){return At.has(i)}function P(i){return{type:"reference",value:i}}function re(i,e){return{type:"property-path",object:i,property:e}}function _(i,e,t){let r={kind:"command",action:i,roles:new Map(Object.entries(e))};return t!==void 0?{...r,metadata:t}:r}function q(i,e,t,r,n,o){let a=new Map;a.set("event",i);let s={kind:"event-handler",action:"on",roles:a,body:e};return t!==void 0&&(s.eventModifiers=t),r!==void 0&&(s.metadata=r),n!==void 0&&n.length>0&&(s.parameterNames=n),o!==void 0&&o.length>0&&(s.additionalEvents=o),s}function Be(i,e="then",t){let r={kind:"compound",action:"compound",roles:new Map,statements:i,chainType:e};return t!==void 0&&(r.metadata=t),r}function We(i,e){return!e||e.length===0||e.includes(i)||e.includes("expression")?!0:i==="property-path"?e.some(t=>["selector","reference","expression"].includes(t)):!1}function lt(i,e){return i.possessive?.keywords?.[e]}var B=class B{constructor(){this.stemMatchCount=0;this.totalKeywordMatches=0}matchPattern(e,t){let r=e.mark(),n=new Map;if(this.currentProfile=A(t.language),this.stemMatchCount=0,this.totalKeywordMatches=0,!this.matchTokenSequence(e,t.template.tokens,n))return e.reset(r),null;let a=this.calculateConfidence(t,n);return this.applyExtractionRules(t,n),{pattern:t,captured:n,consumedTokens:e.position()-r.position,confidence:a}}matchBest(e,t){let r=[];for(let o of t){let a=e.mark(),s=this.matchPattern(e,o);s&&r.push(s),e.reset(a)}if(r.length===0)return null;r.sort((o,a)=>{let s=a.pattern.priority-o.pattern.priority;return s!==0?s:a.confidence-o.confidence});let n=r[0];return this.matchPattern(e,n.pattern),n}matchTokenSequence(e,t,r){let n=t[0],o=n?.type==="literal"&&(n.value==="and"||n.value==="then"||n.alternatives?.includes("and")||n.alternatives?.includes("then"));if(this.currentProfile?.code==="ar"&&!o)for(;e.peek()?.kind==="conjunction";)e.advance();for(let a of t)if(!this.matchPatternToken(e,a,r)){if(this.isOptional(a))continue;return!1}return!0}matchPatternToken(e,t,r){switch(t.type){case"literal":return this.matchLiteralToken(e,t);case"role":return this.matchRoleToken(e,t,r);case"group":return this.matchGroupToken(e,t,r);default:return!1}}matchLiteralToken(e,t){let r=e.peek();if(!r)return!1;let n=this.getMatchType(r,t.value);if(n!=="none")return this.totalKeywordMatches++,n==="stem"&&this.stemMatchCount++,e.advance(),!0;if(t.alternatives)for(let o of t.alternatives){let a=this.getMatchType(r,o);if(a!=="none")return this.totalKeywordMatches++,a==="stem"&&this.stemMatchCount++,e.advance(),!0}return!1}matchRoleToken(e,t,r){this.skipNoiseWords(e);let n=e.peek();if(!n)return t.optional||!1;let o=this.tryMatchPossessiveExpression(e);if(o)return t.expectedTypes&&t.expectedTypes.length>0&&!t.expectedTypes.includes(o.type)&&!t.expectedTypes.includes("expression")?t.optional||!1:(r.set(t.role,o),!0);let a=this.tryMatchMethodCallExpression(e);if(a)return t.expectedTypes&&t.expectedTypes.length>0&&!t.expectedTypes.includes(a.type)&&!t.expectedTypes.includes("expression")?t.optional||!1:(r.set(t.role,a),!0);let s=this.tryMatchPossessiveSelectorExpression(e);if(s)return t.expectedTypes&&t.expectedTypes.length>0&&!We(s.type,t.expectedTypes)?t.optional||!1:(r.set(t.role,s),!0);let c=this.tryMatchPropertyAccessExpression(e);if(c)return t.expectedTypes&&t.expectedTypes.length>0&&!t.expectedTypes.includes(c.type)&&!t.expectedTypes.includes("expression")?t.optional||!1:(r.set(t.role,c),!0);let l=this.tryMatchSelectorPropertyExpression(e);if(l)return t.expectedTypes&&t.expectedTypes.length>0&&!We(l.type,t.expectedTypes)?t.optional||!1:(r.set(t.role,l),!0);let m=this.tokenToSemanticValue(n);return!m||t.expectedTypes&&t.expectedTypes.length>0&&!t.expectedTypes.includes(m.type)?t.optional||!1:(r.set(t.role,m),e.advance(),!0)}tryMatchPossessiveExpression(e){let t=e.peek();if(!t||!this.currentProfile)return null;let r=(t.normalized||t.value).toLowerCase(),n=lt(this.currentProfile,r);if(!n)return null;let o=e.mark();e.advance();let a=e.peek();if(!a)return e.reset(o),null;if(a.kind==="identifier"||a.kind==="keyword"&&!this.isStructuralKeyword(a.value)||a.kind==="selector"&&a.value.startsWith("*")||a.kind==="selector"&&a.value.startsWith("@")||a.kind==="selector"&&a.value.startsWith(".")&&/^\.[a-zA-Z_]\w*/.test(a.value)){e.advance();let s=a.value;a.kind==="selector"&&s.startsWith(".")&&/^\.[a-zA-Z_]\w*/.test(s)&&(s=s.substring(1));let c=s;for(;e.peek()?.kind==="selector"&&e.peek().value.startsWith(".")&&/^\.[a-zA-Z_]\w*/.test(e.peek().value);)c+=e.peek().value,e.advance();let l=e.peek();return l?.kind==="literal"&&l.value.startsWith("(")&&(c+=l.value,e.advance()),re(P(n),c)}return e.reset(o),null}isStructuralKeyword(e){return new Set(["into","in","to","from","at","by","with","without","before","after","of","as","on","then","end","else","if","repeat","while","for","toggle","add","remove","put","set","show","hide","increment","decrement","send","trigger","call"]).has(e.toLowerCase())}tryMatchMethodCallExpression(e){let t=e.peek();if(!t||t.kind!=="selector")return null;let r=e.mark();e.advance();let n=e.peek();if(!n||n.kind!=="operator"||n.value!==".")return e.reset(r),null;e.advance();let o=e.peek();if(!o||o.kind!=="identifier")return e.reset(r),null;e.advance();let a=e.peek();if(!a||a.kind!=="punctuation"||a.value!=="(")return e.reset(r),null;e.advance();let s=[];for(;!e.isAtEnd()&&s.length<B.MAX_METHOD_ARGS;){let l=e.peek();if(!l)break;if(l.kind==="punctuation"&&l.value===")"){e.advance();break}if(l.kind==="punctuation"&&l.value===","){e.advance();continue}s.push(l.value),e.advance()}return{type:"expression",raw:`${t.value}.${o.value}(${s.join(", ")})`}}tryMatchPropertyAccessExpression(e){let t=e.peek();if(!t||t.kind!=="identifier"&&t.kind!=="keyword")return null;let r=e.mark();e.advance();let n=e.peek();if(!n||n.kind!=="operator"||n.value!==".")return e.reset(r),null;e.advance();let o=e.peek();if(!o||o.kind!=="identifier")return e.reset(r),null;e.advance();let a=`${t.value}.${o.value}`,s=1;for(;!e.isAtEnd()&&s<B.MAX_PROPERTY_DEPTH;){let l=e.peek();if(!l||l.kind!=="operator"||l.value!==".")break;e.advance();let m=e.peek();if(!m||m.kind!=="identifier")break;e.advance(),a+=`.${m.value}`,s++}let c=e.peek();if(c&&c.kind==="punctuation"&&c.value==="("){e.advance();let l=[],m=0;for(;!e.isAtEnd()&&l.length<B.MAX_METHOD_ARGS;){let y=e.peek();if(!y)break;if(y.kind==="punctuation"&&y.value===")"){if(m===0){e.advance();break}m--}if(y.kind==="punctuation"&&y.value==="("&&m++,y.kind==="punctuation"&&y.value===","){e.advance();continue}l.push(y.value),e.advance()}return{type:"expression",raw:`${a}(${l.join(", ")})`}}return{type:"expression",raw:a}}tryMatchPossessiveSelectorExpression(e){let t=e.peek();if(!t||t.kind!=="selector")return null;let r=e.mark();e.advance();let n=e.peek();if(!n||n.kind!=="punctuation"||n.value!=="'s")return e.reset(r),null;e.advance();let o=e.peek();return!o||o.kind!=="selector"&&o.kind!=="identifier"?(e.reset(r),null):(e.advance(),re(M(t.value),o.value))}tryMatchSelectorPropertyExpression(e){let t=e.peek();if(!t||t.kind!=="selector"||!t.value.startsWith("#"))return null;let r=e.mark();e.advance();let n=e.peek();if(!n||n.kind!=="selector"||!n.value.startsWith("."))return e.reset(r),null;let o=e.peek(1);o&&o.kind,e.advance();let a=n.value.slice(1);return re(M(t.value),a)}matchGroupToken(e,t,r){let n=e.mark(),o=new Set(r.keys());if(!this.matchTokenSequence(e,t.tokens,r)){e.reset(n);for(let s of r.keys())o.has(s)||r.delete(s);return t.optional||!1}return!0}getMatchType(e,t){return e.value===t?"exact":e.normalized===t?"normalized":e.stem===t&&e.stemConfidence!==void 0&&e.stemConfidence>=.7?"stem":e.kind==="keyword"&&e.value.toLowerCase()===t.toLowerCase()?"case-insensitive":"none"}tokenToSemanticValue(e){switch(e.kind){case"selector":return M(e.value);case"literal":return this.parseLiteralValue(e.value);case"keyword":let t=(e.normalized||e.value).toLowerCase();return ce(t)?P(t):k(e.normalized||e.value);case"identifier":if(e.value.startsWith(":"))return P(e.value);let r=e.value.toLowerCase();return ce(r)?P(r):{type:"expression",raw:e.value};case"url":return k(e.value,"string");default:return null}}parseLiteralValue(e){if(e.startsWith('"')||e.startsWith("'")||e.startsWith("`")||e.startsWith("\u300C")){let n=e.slice(1,-1);return k(n,"string")}if(e==="true")return k(!0,"boolean");if(e==="false")return k(!1,"boolean");let t=e.match(/^(\d+(?:\.\d+)?)(ms|s|m|h)?$/);if(t){let n=parseFloat(t[1]);return t[2]?k(e,"duration"):k(n,"number")}let r=parseFloat(e);return isNaN(r)?k(e,"string"):k(r,"number")}applyExtractionRules(e,t){for(let[r,n]of Object.entries(e.extraction))t.has(r)||(n.value!==void 0?t.set(r,{type:"literal",value:n.value}):n.default&&t.set(r,n.default))}isOptional(e){return e.type!=="literal"&&e.optional===!0}calculateConfidence(e,t){let r=0,n=0,o=l=>e.extraction?.[l]?.default!==void 0;for(let l of e.template.tokens)if(l.type==="role")n+=1,t.has(l.role)&&(r+=1);else if(l.type==="group"){for(let m of l.tokens)if(m.type==="role"){let v=o(m.role),y=.8;n+=y,t.has(m.role)?r+=y:v&&(r+=y*.6)}}let a=n>0?r/n:1;if(this.stemMatchCount>0&&this.totalKeywordMatches>0){let l=this.stemMatchCount/this.totalKeywordMatches*.15;a=Math.max(.5,a-l)}let s=this.calculateVSOConfidenceBoost(e);a=Math.min(1,a+s);let c=this.arabicPrepositionDisambiguation(e,t);return a=Math.max(0,Math.min(1,a+c)),a}calculateVSOConfidenceBoost(e){if(e.language!=="ar")return 0;let t=e.template.tokens[0];if(!t||t.type!=="literal")return 0;let r=new Set(["\u0628\u062F\u0644","\u063A\u064A\u0631","\u0623\u0636\u0641","\u0623\u0632\u0644","\u0636\u0639","\u0627\u062C\u0639\u0644","\u0639\u064A\u0646","\u0632\u062F","\u0627\u0646\u0642\u0635","\u0633\u062C\u0644","\u0623\u0638\u0647\u0631","\u0623\u062E\u0641","\u0634\u063A\u0644","\u0623\u0631\u0633\u0644","\u0631\u0643\u0632","\u0634\u0648\u0634","\u062A\u0648\u0642\u0641","\u0627\u0646\u0633\u062E","\u0627\u062D\u0630\u0641","\u0627\u0635\u0646\u0639","\u0627\u0646\u062A\u0638\u0631","\u0627\u0646\u062A\u0642\u0627\u0644","\u0623\u0648"]);if(r.has(t.value))return .15;if(t.alternatives){for(let n of t.alternatives)if(r.has(n))return .15}return 0}arabicPrepositionDisambiguation(e,t){if(e.language!=="ar")return 0;let r=0,n={patient:["\u0639\u0644\u0649"],destination:["\u0625\u0644\u0649","\u0627\u0644\u0649"],source:["\u0645\u0646"],agent:["\u0645\u0646"],manner:["\u0628"],style:["\u0628"],goal:["\u0625\u0644\u0649","\u0627\u0644\u0649"],method:["\u0628"]};for(let[o,a]of t.entries()){let s=n[o];if(!s||s.length===0)continue;let c="metadata"in a?a.metadata:void 0;if(c&&typeof c.prepositionValue=="string"){let l=c.prepositionValue;s.includes(l)?r+=.1:r-=.1}}return Math.max(-.1,Math.min(.1,r))}skipNoiseWords(e){let t=e.peek();if(!t)return;let r=t.value.toLowerCase();if(B.ENGLISH_NOISE_WORDS.has(r)){let n=e.mark();e.advance();let o=e.peek();if(o&&o.kind==="selector")return;e.reset(n)}r==="class"&&e.advance()}extractEventModifiers(e){let t={},r=!1;for(;!e.isAtEnd();){let n=e.peek();if(!n||n.kind!=="event-modifier")break;let o=n.metadata;if(!o)break;switch(r=!0,o.modifierName){case"once":t.once=!0;break;case"debounce":typeof o.value=="number"&&(t.debounce=o.value);break;case"throttle":typeof o.value=="number"&&(t.throttle=o.value);break;case"queue":(o.value==="first"||o.value==="last"||o.value==="all"||o.value==="none")&&(t.queue=o.value);break}e.advance()}return r?t:void 0}};B.MAX_PROPERTY_DEPTH=10,B.MAX_METHOD_ARGS=20,B.ENGLISH_NOISE_WORDS=new Set(["the","a","an"]);var le=B,H=new le;var ut={ko:{\uD074\uB9AD:"click",\uC785\uB825:"input",\uBCC0\uACBD:"change",\uC81C\uCD9C:"submit",\uD0A4\uB2E4\uC6B4:"keydown",\uD0A4\uC5C5:"keyup",\uB9C8\uC6B0\uC2A4\uC624\uBC84:"mouseover",\uB9C8\uC6B0\uC2A4\uC544\uC6C3:"mouseout",\uB9C8\uC6B0\uC2A4\uB2E4\uC6B4:"mousedown",\uB9C8\uC6B0\uC2A4\uC5C5:"mouseup",\uD3EC\uCEE4\uC2A4:"focus",\uBE14\uB7EC:"blur",\uB85C\uB4DC:"load",\uB9AC\uC0AC\uC774\uC988:"resize",\uC2A4\uD06C\uB864:"scroll"},ja:{\u30AF\u30EA\u30C3\u30AF:"click",\u5165\u529B:"input",\u5909\u66F4:"change",\u9001\u4FE1:"submit",\u30AD\u30FC\u30C0\u30A6\u30F3:"keydown",\u30AD\u30FC\u30A2\u30C3\u30D7:"keyup",\u30AD\u30FC\u30D7\u30EC\u30B9:"keypress",\u30DE\u30A6\u30B9\u30AA\u30FC\u30D0\u30FC:"mouseover",\u30DE\u30A6\u30B9\u30A2\u30A6\u30C8:"mouseout",\u30DE\u30A6\u30B9\u62BC\u4E0B:"mousedown",\u30DE\u30A6\u30B9\u89E3\u653E:"mouseup",\u30D5\u30A9\u30FC\u30AB\u30B9:"focus",\u30D6\u30E9\u30FC:"blur",\u30ED\u30FC\u30C9:"load",\u8AAD\u307F\u8FBC\u307F:"load",\u30B5\u30A4\u30BA\u5909\u66F4:"resize",\u30B9\u30AF\u30ED\u30FC\u30EB:"scroll"},ar:{\u0627\u0644\u0646\u0642\u0631:"click",\u0646\u0642\u0631:"click",\u0627\u0644\u0625\u062F\u062E\u0627\u0644:"input",\u0625\u062F\u062E\u0627\u0644:"input",\u0627\u0644\u062A\u063A\u064A\u064A\u0631:"change",\u062A\u063A\u064A\u064A\u0631:"change",\u0627\u0644\u0625\u0631\u0633\u0627\u0644:"submit",\u0625\u0631\u0633\u0627\u0644:"submit","\u0636\u063A\u0637 \u0627\u0644\u0645\u0641\u062A\u0627\u062D":"keydown","\u0631\u0641\u0639 \u0627\u0644\u0645\u0641\u062A\u0627\u062D":"keyup","\u062A\u0645\u0631\u064A\u0631 \u0627\u0644\u0645\u0627\u0648\u0633":"mouseover",\u0627\u0644\u062A\u0631\u0643\u064A\u0632:"focus",\u062A\u062D\u0645\u064A\u0644:"load",\u062A\u0645\u0631\u064A\u0631:"scroll"},es:{clic:"click",click:"click",entrada:"input",cambio:"change",env\u00EDo:"submit",enviar:"submit","tecla abajo":"keydown","tecla arriba":"keyup","rat\xF3n encima":"mouseover","rat\xF3n fuera":"mouseout",enfoque:"focus",desenfoque:"blur",carga:"load",desplazamiento:"scroll"},tr:{t\u0131klama:"click",t\u0131kla:"click",t\u0131k:"click",giri\u015F:"input",girdi:"input",de\u011Fi\u015Fiklik:"change",de\u011Fi\u015Fim:"change",g\u00F6nderme:"submit",g\u00F6nder:"submit",tu\u015Fbasma:"keydown",tu\u015Fb\u0131rakma:"keyup",fare_bas:"mousedown",fare_b\u0131rak:"mouseup",farei\u00E7inde:"mouseover",fared\u0131\u015F\u0131nda:"mouseout",odaklanma:"focus",odak:"focus",bulan\u0131kl\u0131k:"blur",y\u00FCkleme:"load",y\u00FCkle:"load",boyut_de\u011Fi\u015Ftir:"resize",kayd\u0131rma:"scroll"},pt:{clique:"click",clicar:"click",click:"click",entrada:"input",inserir:"input",mudan\u00E7a:"change",mudanca:"change",alterar:"change",envio:"submit",enviar:"submit","tecla baixo":"keydown","tecla cima":"keyup","pressionar tecla":"keydown","soltar tecla":"keyup","mouse sobre":"mouseover","mouse fora":"mouseout",foco:"focus",focar:"focus",desfoque:"blur",desfocar:"blur",carregar:"load",carregamento:"load",rolagem:"scroll",rolar:"scroll"},zh:{\u70B9\u51FB:"click",\u5355\u51FB:"click",\u53CC\u51FB:"dblclick",\u8F93\u5165:"input",\u6539\u53D8:"change",\u53D8\u5316:"change",\u53D8\u66F4:"change",\u63D0\u4EA4:"submit",\u53D1\u9001:"submit",\u6309\u952E:"keydown",\u952E\u5165:"keydown",\u677E\u952E:"keyup",\u9F20\u6807\u8FDB\u5165:"mouseover",\u9F20\u6807\u79FB\u5165:"mouseover",\u9F20\u6807\u79BB\u5F00:"mouseout",\u9F20\u6807\u79FB\u51FA:"mouseout",\u7126\u70B9:"focus",\u805A\u7126:"focus",\u5931\u7126:"blur",\u6A21\u7CCA:"blur",\u52A0\u8F7D:"load",\u8F7D\u5165:"load",\u6EDA\u52A8:"scroll"},fr:{clic:"click",cliquer:"click",click:"click",saisie:"input",entr\u00E9e:"input",changement:"change",changer:"change",soumettre:"submit",soumission:"submit",envoi:"submit","touche bas":"keydown","touche haut":"keyup","souris dessus":"mouseover","souris dehors":"mouseout",focus:"focus",focaliser:"focus",d\u00E9focus:"blur",d\u00E9focaliser:"blur",chargement:"load",charger:"load",d\u00E9filement:"scroll",d\u00E9filer:"scroll"},de:{klick:"click",klicken:"click",click:"click",eingabe:"input",eingeben:"input",\u00E4nderung:"change",\u00E4ndern:"change",absenden:"submit",einreichen:"submit","taste runter":"keydown","taste hoch":"keyup","maus \xFCber":"mouseover","maus raus":"mouseout",fokus:"focus",fokussieren:"focus",defokussieren:"blur",unsch\u00E4rfe:"blur",laden:"load",ladung:"load",scrollen:"scroll",bl\u00E4ttern:"scroll"},id:{klik:"click",click:"click",masukan:"input",input:"input",ubah:"change",perubahan:"change",kirim:"submit","tekan tombol":"keydown","lepas tombol":"keyup","mouse masuk":"mouseover","mouse keluar":"mouseout",fokus:"focus",blur:"blur",muat:"load",memuat:"load",gulir:"scroll",menggulir:"scroll"},bn:{\u0995\u09CD\u09B2\u09BF\u0995:"click",\u0987\u09A8\u09AA\u09C1\u099F:"input",\u099C\u09AE\u09BE:"submit",\u09B2\u09CB\u09A1:"load",\u09B8\u09CD\u0995\u09CD\u09B0\u09CB\u09B2:"scroll",\u09B0\u09BF\u09B8\u09BE\u0987\u099C:"resize",\u099D\u09BE\u09AA\u09B8\u09BE:"blur",\u09AB\u09CB\u0995\u09BE\u09B8:"focus",\u09AA\u09B0\u09BF\u09AC\u09B0\u09CD\u09A4\u09A8:"change"},qu:{click:"click","\xF1it'iy":"click",\u00F1itiy:"click",yaykuchiy:"input",yaykuy:"input",tikray:"change","t'ikray":"change",apachiy:"submit",kachay:"submit","llave uray":"keydown","llave hawa":"keyup","q'away":"focus",qhaway:"focus",paqariy:"blur","mana q'away":"blur",cargay:"load",apakuy:"load",apamuy:"load",kunray:"scroll",muyuy:"scroll",hatun_kay:"resize"},sw:{bofya:"click",click:"click",kubofya:"click",ingiza:"input",kubadilisha:"change",mabadiliko:"change",tuma:"submit",kutuma:"submit","bonyeza chini":"keydown","bonyeza juu":"keyup","panya juu":"mouseover","panya nje":"mouseout",lenga:"focus",kulenga:"focus",blur:"blur",pakia:"load",kupakia:"load",sogeza:"scroll",kusogeza:"scroll"}};var Ce=class{render(e,t){if(e.kind==="compound")return this.renderCompound(e,t);let r=ot(t,e.action);if(r.length===0)return this.renderExplicit(e);let n=this.findBestPattern(e,r);return n?this.renderWithPattern(e,n):this.renderExplicit(e)}renderCompound(e,t){let r=e.statements.map(o=>this.render(o,t)),n=this.getChainWord(e.chainType,t);return r.join(` ${n} `)}getChainWord(e,t){let r=A(t);return r?.keywords?r.keywords[e]?.primary??e:e}renderExplicit(e){if(e.kind==="compound"){let r=e;return r.statements.map(o=>this.renderExplicit(o)).join(` ${r.chainType} `)}let t=[e.action];for(let[r,n]of e.roles)t.push(`${r}:${this.valueToString(n)}`);if(e.kind==="event-handler"){let r=e;if(r.body&&r.body.length>0){let n=r.body.map(o=>this.renderExplicit(o));t.push(`body:${n.join(" ")}`)}}return`[${t.join(" ")}]`}supportedLanguages(){return Ne()}findBestPattern(e,t){let r=t.map(n=>{let o=n.priority;for(let a of n.template.tokens)a.type==="role"&&(e.roles.has(a.role)?o+=10:a.optional||(o-=50));return n.language==="en"&&((n.id.includes("standard")||n.id.includes("en-source"))&&(o+=20),(n.id.includes("-when")||n.id.includes("-if")||n.id.includes("-upon"))&&(o-=15)),{pattern:n,score:o}});return r.sort((n,o)=>o.score-n.score),r.length>0?r[0].pattern:null}renderWithPattern(e,t){let r=[],n=t.language;for(let o of t.template.tokens){let a=this.renderPatternToken(o,e,n);a!==null&&r.push(a)}if(e.kind==="event-handler"){let o=e;if(o.body&&o.body.length>0){let a=o.body.map(s=>this.render(s,n));r.push(a.join(" "))}}return r.join(" ")}renderPatternToken(e,t,r){switch(e.type){case"literal":return e.value;case"role":{let n=t.roles.get(e.role);return n?this.valueToNaturalString(n,r):(e.optional,null)}case"group":{if(!e.tokens.filter(a=>a.type==="role"&&!a.optional).every(a=>t.roles.has(a.role))&&e.optional)return null;if(e.optional&&e.tokens.find(s=>s.type==="role"&&s.role==="destination")){let s=t.roles.get("destination");if(s?.type==="reference"&&s.value==="me")return null}let o=[];for(let a of e.tokens){let s=this.renderPatternToken(a,t,r);s!==null&&o.push(s)}return o.length>0?o.join(" "):null}default:return null}}valueToString(e){switch(e.type){case"literal":return typeof e.value=="string"?e.dataType==="string"||/\s/.test(e.value)?`"${e.value}"`:e.value:String(e.value);case"selector":return e.value;case"reference":return e.value;case"property-path":return`${this.valueToString(e.object)}'s ${e.property}`;case"expression":return e.raw}}valueToNaturalString(e,t="en"){switch(e.type){case"literal":return typeof e.value=="string"&&e.dataType==="string"?`"${e.value}"`:String(e.value);case"selector":return e.value;case"reference":return this.renderReference(e,t);case"property-path":return this.renderPropertyPath(e,t);case"expression":return e.raw}}renderReference(e,t){let r=A(t);return r?.references?r.references[e.value]??e.value:e.value}renderPropertyPath(e,t){let r=A(t),n=e.property,o=e.object.type==="reference"?e.object.value:null;if(r?.possessive?.specialForms&&o){let s=r.possessive.specialForms[o];if(s){let{markerPosition:c,usePossessiveAdjectives:l}=r.possessive;return l&&c==="after-object"?`${n} ${s}`:`${s} ${n}`}}let a=this.valueToNaturalString(e.object,t);if(r?.possessive){let{marker:s,markerPosition:c,usePossessiveAdjectives:l}=r.possessive;if(l&&o&&c==="after-object")return`${n} ${a}`;if(s)switch(c){case"between":return r.usesSpaces?`${a}${s} ${n}`:`${a}${s}${n}`;case"after-object":return`${a}${s} ${n}`;case"before-property":return`${a} ${s} ${n}`}}return t==="en"||!r?.possessive?a==="me"?`my ${n}`:a==="it"?`its ${n}`:`${a}'s ${n}`:`${a} ${n}`}},Ke=new Ce;function ue(i,e){return Ke.render(i,e)}function de(i){return Ke.renderExplicit(i)}function G(i){let e=i.trim();if(!e.startsWith("[")||!e.endsWith("]"))throw new Error("Explicit syntax must be wrapped in brackets: [command role:value ...]");let t=e.slice(1,-1).trim();if(!t)throw new Error("Empty explicit statement");let r=zt(t);if(r.length===0)throw new Error("No command specified in explicit statement");let n=r[0].toLowerCase(),o=new Map;for(let s=1;s<r.length;s++){let c=r[s],l=c.indexOf(":");if(l===-1)throw new Error(`Invalid role format: "${c}". Expected role:value`);let m=c.slice(0,l),v=c.slice(l+1);if(m==="body"&&v.startsWith("[")){let f=Ot(c,l+1),u=c.slice(l+1,f+1);o.set(m,{type:"expression",raw:u});continue}let y=Vt(v);o.set(m,y)}if(n==="on"){let s=o.get("event");if(!s)throw new Error("Event handler requires event role: [on event:click ...]");let c=o.get("body"),l=[];return c&&c.type==="expression"&&l.push(G(c.raw)),o.delete("body"),q(s,l,void 0,{sourceLanguage:"explicit"})}let a={};for(let[s,c]of o)a[s]=c;return _(n,a,{sourceLanguage:"explicit"})}function zt(i){let e=[],t="",r=!1,n="",o=0;for(let a=0;a<i.length;a++){let s=i[a];if(r){t+=s,s===n&&i[a-1]!=="\\"&&(r=!1);continue}if(s==='"'||s==="'"){r=!0,n=s,t+=s;continue}if(s==="["){o++,t+=s;continue}if(s==="]"){o--,t+=s;continue}if(s===" "&&o===0){t&&(e.push(t),t="");continue}t+=s}return t&&e.push(t),e}function Vt(i){if(i.startsWith("#")||i.startsWith(".")||i.startsWith("[")||i.startsWith("@")||i.startsWith("*"))return M(i);if(i.startsWith('"')||i.startsWith("'")){let r=i.slice(1,-1);return k(r,"string")}if(i==="true")return k(!0,"boolean");if(i==="false")return k(!1,"boolean");let e=i.toLowerCase();if(ce(e))return P(e);let t=i.match(/^(-?\d+(?:\.\d+)?)(ms|s|m|h)?$/);if(t){let r=parseFloat(t[1]);return t[2]?k(i,"duration"):k(r,"number")}return k(i,"string")}function Ot(i,e){let t=0;for(let r=e;r<i.length;r++)if(i[r]==="[")t++;else if(i[r]==="]"&&(t--,t===0))return r;return i.length-1}function ne(i){let e=i.trim();return e.startsWith("[")&&e.endsWith("]")}var N=class N{parse(e,t){let{modifiers:r,remainingInput:n}=this.extractStandaloneModifiers(e,t),o=n||e,a=te(o,t),s=z(t);if(s.length===0)throw new Error(`No patterns available for language: ${t}`);let c=[...s].sort((p,g)=>g.priority-p.priority),l=c.filter(p=>p.command==="on"),m=H.matchBest(a,l);if(m){let p=this.buildEventHandler(m,a,t);return r?this.applyModifiers(p,r):p}let v=c.filter(p=>p.command!=="on"),y=H.matchBest(a,v);if(y)return this.buildCommand(y,t);let f=this.trySOVEventExtraction(o,t,c);if(f)return r?this.applyModifiers(f,r):f;let u=this.tryCompoundCommandParsing(a,v,t);if(u)return u;throw new Error(`Could not parse input in ${t}: ${o}`)}canParse(e,t){try{return this.parse(e,t),!0}catch{return!1}}supportedLanguages(){return Ne()}buildCommand(e,t){if(!e)throw new Error("No match to build command from");let r={};for(let[n,o]of e.captured)r[n]=o;return _(e.pattern.command,r,{sourceLanguage:t,patternId:e.pattern.id,confidence:e.confidence})}buildEventHandler(e,t,r){if(!e)throw new Error("No match to build event handler from");let n=e.captured.get("event");if(!n)throw new Error("Event handler pattern matched but no event captured");let o=H.extractEventModifiers(t),a=this.extractOrConjunctionEvents(t,r),s=n;a.length>0&&n.type==="literal"&&(s={type:"literal",value:[String(n.value),...a.map(v=>String("value"in v?v.value:""))].join(" or ")});let c,l=e.captured.get("action");if(l&&l.type==="literal"){let m=l.value,v={};for(let[u,p]of e.captured)u!=="event"&&u!=="action"&&u!=="continues"&&(v[u]=p);let y=_(m,v,{sourceLanguage:r,patternId:e.pattern.id,confidence:e.confidence}),f=e.captured.get("continues");if(f&&f.type==="literal"&&f.value==="then"){let u=z(r).filter(x=>x.command!=="on").sort((x,C)=>C.priority-x.priority),p=z(r).filter(x=>x.id.startsWith("grammar-")&&x.id.includes("-continuation")).sort((x,C)=>C.priority-x.priority),g=this.parseBodyWithGrammarPatterns(t,u,p,r);g.length>0?c=[y,...g]:c=[y]}else c=[y]}else{let m=z(r).filter(v=>v.command!=="on").sort((v,y)=>y.priority-v.priority);c=this.parseBodyWithClauses(t,m,r)}return q(s,c,o,{sourceLanguage:r,patternId:e.pattern.id,confidence:e.confidence})}parseBodyWithClauses(e,t,r){let n=[],o=[];for(;!e.isAtEnd();){let a=e.peek();if(!a)break;let s=a.kind==="conjunction"||a.kind==="keyword"&&this.isThenKeyword(a.value,r),c=a.kind==="keyword"&&this.isEndKeyword(a.value,r);if(s){if(o.length>0){let l=this.parseClause(o,t,r);n.push(...l),o.length=0}e.advance();continue}if(c){if(o.length>0){let l=this.parseClause(o,t,r);n.push(...l)}e.advance();break}o.push(a),e.advance()}if(o.length>0){let a=this.parseClause(o,t,r);n.push(...a)}return n.length>1?[Be(n,"then",{sourceLanguage:r})]:n}parseClause(e,t,r){if(e.length===0)return[];let n=new V(e,r),o=[];for(;!n.isAtEnd();){let a=H.matchBest(n,t);a?o.push(this.buildCommand(a,r)):n.advance()}if(o.length===0){let a=this.parseSOVClauseByVerbAnchoring(e,r);if(a.length>0)return a}return o}static buildVerbLookup(e){let t=new Map;for(let[r,n]of Object.entries(e.keywords))if(!["on","if","else","when","where","while","for","end","then","and"].includes(r)&&(t.set(n.primary.toLowerCase(),r),n.alternatives))for(let o of n.alternatives)t.set(o.toLowerCase(),r);return t}static buildMarkerToRoleLookup(e){let t=new Map;for(let[r,n]of Object.entries(e.roleMarkers))if(n&&(t.set(n.primary,r),n.alternatives))for(let o of n.alternatives)t.has(o)||t.set(o,r);return t}parseSOVClauseByVerbAnchoring(e,t){let r=A(t);if(!r||r.wordOrder!=="SOV")return[];let n=N.buildVerbLookup(r),o=N.buildMarkerToRoleLookup(r),a=[],s=0;for(;s<e.length;){let c=-1,l="";for(let u=s;u<e.length;u++){let p=e[u],g=n.get(p.value.toLowerCase()),x=p.normalized?n.get(p.normalized.toLowerCase()):void 0,C=g||x;if(C){c=u,l=C;break}}if(c===-1)break;let m=e.slice(s,c),v=e.length;for(let u=c+1;u<e.length;u++){let p=e[u];if(p.kind==="conjunction"||this.isThenKeyword(p.value,t)){v=u;break}if(u>c+1&&(n.get(p.value.toLowerCase())||(p.normalized?n.get(p.normalized.toLowerCase()):void 0))){v=u;break}}let y=e.slice(c+1,v),f=this.extractRolesFromMarkedTokens(m,y,o,l,t);if(a.push(_(l,f,{sourceLanguage:t,confidence:.7})),s=v,s<e.length){let u=e[s];(u.kind==="conjunction"||this.isThenKeyword(u.value,t))&&s++}}return a}extractRolesFromMarkedTokens(e,t,r,n,o){let a={},s=c=>{let l=[];for(let m of c){let v=r.get(m.value);if(v&&m.kind==="particle"&&l.length>0){let y=this.tokensToSemanticValue(l);if(y){let f=this.mapRoleForCommand(v,n,a);f&&(a[f]=y)}l=[]}else l.push(m)}if(l.length>0){let m=this.tokensToSemanticValue(l);m&&(a.patient?a.destination||(a.destination=m):a.patient=m)}};return s(e),s(t),a}mapRoleForCommand(e,t,r){return r[e]?e==="patient"&&!r.destination?"destination":e==="destination"&&!r.patient?"patient":e==="source"&&!r.source?"source":null:e}tokensToSemanticValue(e){if(e.length===0)return null;let t=e.filter(o=>o.kind!=="whitespace");if(t.length===0)return null;if(t.length===1)return this.tokenToSemanticValue(t[0]);let r=t.map(o=>o.value).join(""),n=t[0];return n.kind==="selector"||n.value.startsWith("#")||n.value.startsWith(".")||n.value.startsWith("@")||n.value.startsWith("*")?M(r):n.kind==="literal"||n.value.startsWith('"')||n.value.startsWith("'")?k(r):n.kind==="reference"?P(r):k(r)}tokenToSemanticValue(e){let t=e.value;if(e.kind==="selector"||t.startsWith("#")||t.startsWith(".")||t.startsWith("@")||t.startsWith("*"))return M(t);if(t.startsWith('"')||t.startsWith("'"))return k(t);if(/^-?\d+(\.\d+)?$/.test(t))return k(parseFloat(t));if(t==="true"||t==="\u771F"||t==="\uCC38"||t==="do\u011Fru")return k(!0);if(t==="false"||t==="\u507D"||t==="\uAC70\uC9D3"||t==="yanl\u0131\u015F")return k(!1);let r=e.normalized?.toLowerCase();return r==="me"||r==="it"||r==="you"||r==="result"||r==="body"?P(r):e.kind==="reference"?P(e.normalized||"me"):k(t)}parseBodyWithGrammarPatterns(e,t,r,n){let o=[];for(;!e.isAtEnd();){let a=e.peek();if(a&&this.isThenKeyword(a.value,n)){e.advance();continue}if(a&&this.isEndKeyword(a.value,n)){e.advance();break}let s=!1;if(r.length>0){let c=H.matchBest(e,r);if(c){let l=c.pattern.command,m={};for(let[f,u]of c.captured)f!=="event"&&f!=="action"&&f!=="continues"&&(m[f]=u);let v=_(l,m,{sourceLanguage:n,patternId:c.pattern.id});o.push(v),s=!0;let y=c.captured.get("continues");if(y&&y.type==="literal"&&y.value==="then")continue}}if(!s){let c=H.matchBest(e,t);c&&(o.push(this.buildCommand(c,n)),s=!0)}s||e.advance()}return o}tryCompoundCommandParsing(e,t,r){let n=e.tokens;if(!n.some(c=>c.kind==="conjunction"||c.kind==="keyword"&&this.isThenKeyword(c.value,r)))return null;let a=new V(n,r),s=this.parseBodyWithClauses(a,t,r);return s.length===0?null:s.length===1?s[0]:Be(s,"then",{sourceLanguage:r,confidence:.65})}trySOVEventExtraction(e,t,r){let n=N.SOV_EVENT_MARKERS[t];if(!n)return null;let a=te(e,t).tokens,s=ut[t],c=new Set;if(s)for(let T of Object.keys(s))c.add(T.toLowerCase());let l=N.SOV_SOURCE_MARKERS[t],m=-1,v="",y="",f=1;for(let T=0;T<a.length;T++){let R=a[T],W=R.value.toLowerCase(),K=W,Q="",Le=W.indexOf("[");Le>0&&(K=W.slice(0,Le),Q=R.value.slice(Le));let Me=R.normalized?.toLowerCase(),Xe=Me&&N.KNOWN_EVENTS.has(Me),Qe=c.has(W)||c.has(K),kt=N.KNOWN_EVENTS.has(K);if(Xe||Qe||kt){let ie;if(Xe?ie=Me:Qe?ie=s?.[W]??s?.[K]??K:ie=K,n.size>0){let ge=1,Ae=a[T+1];Ae&&Ae.kind==="selector"&&Ae.value.startsWith("[")&&(ge=2);let he=a[T+ge];if(he&&(he.kind==="particle"||he.kind==="keyword")&&n.has(he.value)){m=T,v=ie,y=Q||(ge===2?a[T+1].value:""),f=ge+1;break}}else{m=T,v=ie,y=Q,f=1;break}}}if(m===-1)return null;let u=new Set;for(let T=m;T<m+f;T++)u.add(T);if(l){let T=m+f;if(T<a.length){let R=a[T];(R.kind==="particle"||R.kind==="keyword")&&l.markers.has(R.value)&&u.add(T)}for(let R=0;R<m;R++){let W=a[R],K=W.value.toLowerCase(),Q=W.normalized?.toLowerCase();if(l.windowTokens.has(K)||Q&&l.windowTokens.has(Q)){u.add(R);break}}}let p=a.filter((T,R)=>!u.has(R));if(p.length===0)return null;let g=r.filter(T=>T.command!=="on"),x=new V(p,t),C=this.parseBodyWithClauses(x,g,t);if(C.length===0)return null;let X={sourceLanguage:t,confidence:.75};return y&&(X.keyFilter=y),q({type:"literal",value:v},C,void 0,X)}isThenKeyword(e,t){let r={en:new Set(["then"]),ja:new Set(["\u305D\u308C\u304B\u3089","\u6B21\u306B","\u305D\u3057\u3066"]),ar:new Set(["\u062B\u0645","\u0628\u0639\u062F\u0647\u0627","\u062B\u0645\u0651"]),es:new Set(["entonces","luego","despu\xE9s"]),ko:new Set(["\uADF8\uB2E4\uC74C","\uADF8\uB9AC\uACE0","\uADF8\uB7F0\uD6C4","\uADF8\uB7EC\uBA74"]),zh:new Set(["\u7136\u540E","\u63A5\u7740","\u4E4B\u540E"]),tr:new Set(["sonra","ard\u0131ndan","daha sonra"]),pt:new Set(["ent\xE3o","depois","logo"]),fr:new Set(["puis","ensuite","alors"]),de:new Set(["dann","danach","anschlie\xDFend"]),id:new Set(["lalu","kemudian","setelah itu"]),tl:new Set(["pagkatapos","tapos"]),bn:new Set(["\u09A4\u09BE\u09B0\u09AA\u09B0","\u09AA\u09B0\u09C7"]),qu:new Set(["chaymantataq","hinaspa","chaymanta","chayqa"]),sw:new Set(["kisha","halafu","baadaye"])};return(r[t]||r.en).has(e.toLowerCase())}isEndKeyword(e,t){let r={en:new Set(["end"]),ja:new Set(["\u7D42\u308F\u308A","\u7D42\u4E86","\u304A\u308F\u308A"]),ar:new Set(["\u0646\u0647\u0627\u064A\u0629","\u0627\u0646\u062A\u0647\u0649","\u0622\u062E\u0631"]),es:new Set(["fin","final","terminar"]),ko:new Set(["\uB05D","\uC885\uB8CC","\uB9C8\uCE68"]),zh:new Set(["\u7ED3\u675F","\u7EC8\u6B62","\u5B8C"]),tr:new Set(["son","biti\u015F","bitti"]),pt:new Set(["fim","final","t\xE9rmino"]),fr:new Set(["fin","terminer","finir"]),de:new Set(["ende","beenden","fertig"]),id:new Set(["selesai","akhir","tamat"]),tl:new Set(["wakas","tapos"]),bn:new Set(["\u09B8\u09AE\u09BE\u09AA\u09CD\u09A4"]),qu:new Set(["tukukuy","tukuy","puchukay"]),sw:new Set(["mwisho","maliza","tamati"])};return(r[t]||r.en).has(e.toLowerCase())}extractStandaloneModifiers(e,t){let n=te(e,t).tokens;if(n.length===0)return{modifiers:null,remainingInput:null};let a=n[0].value.toLowerCase(),s=N.STANDALONE_MODIFIERS[a];if(!s)return{modifiers:null,remainingInput:null};let c={},l=1;if(s==="once")c.once=!0;else{let f=1;if(f<n.length){let u=n[f];(u.kind==="keyword"||u.kind==="particle")&&(f++,l++)}if(f<n.length){let u=n[f];if(u.kind==="literal"){let p=u.value.match(/^(\d+)(ms|s|m)?$/);if(p){let g=parseInt(p[1],10),x=p[2]||"ms";x==="s"?g*=1e3:x==="m"&&(g*=6e4),c[s]=g,l=f+1}}}c[s]||(c[s]=s==="debounce"?300:100)}let m=n.slice(l);if(m.length===0)return{modifiers:null,remainingInput:null};let v=m[0].position.start,y=e.slice(v);return{modifiers:c,remainingInput:y}}applyModifiers(e,t){return{...e,eventModifiers:{...e.eventModifiers,...t}}}extractOrConjunctionEvents(e,t){let r=[];for(;;){let n=e.mark(),o=e.peek();if(!o)break;let a=(o.normalized||o.value).toLowerCase();if(!N.OR_KEYWORDS.has(a)){e.reset(n);break}e.advance();let s=e.peek();if(!s){e.reset(n);break}let c=(s.normalized||s.value).toLowerCase();e.advance(),r.push({type:"literal",value:c})}return r}};N.KNOWN_EVENTS=new Set(["click","dblclick","input","change","submit","keydown","keyup","keypress","mouseover","mouseout","mousedown","mouseup","focus","blur","load","scroll","resize","contextmenu"]),N.SOV_EVENT_MARKERS={ja:new Set(["\u3067"]),ko:new Set,tr:new Set(["de","da","te","ta"]),bn:new Set(["\u098F"]),qu:new Set(["pi"])},N.SOV_SOURCE_MARKERS={ja:{markers:new Set(["\u304B\u3089"]),windowTokens:new Set(["\u30A6\u30A3\u30F3\u30C9\u30A6","\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8","window","document"])},ko:{markers:new Set(["\uC5D0\uC11C"]),windowTokens:new Set(["\uCC3D","\uC708\uB3C4\uC6B0","\uBB38\uC11C","window","document"])},tr:{markers:new Set(["den","dan","ten","tan"]),windowTokens:new Set(["pencere","belge","window","document"])},bn:{markers:new Set(["\u09A5\u09C7\u0995\u09C7","\u09AE\u09A7\u09CD\u09AF\u09C7"]),windowTokens:new Set(["\u0989\u0987\u09A8\u09CD\u09A1\u09CB","\u09A1\u0995\u09C1\u09AE\u09C7\u09A8\u09CD\u099F","window","document"])},qu:{markers:new Set(["manta"]),windowTokens:new Set(["k_iri","ventana","window","document"])}},N.STANDALONE_MODIFIERS={once:"once",debounced:"debounce",debounce:"debounce",throttled:"throttle",throttle:"throttle"},N.OR_KEYWORDS=new Set(["or","\u0623\u0648","o","ou","oder","atau","atau","\u6216","\u307E\u305F\u306F","\uB610\uB294","veya","\u0985\u09A5\u09AC\u09BE","utaq","au","\u0430\u0431\u043E","\u0438\u043B\u0438","ho\u1EB7c","lub","\u05D0\u05D5","\u0E2B\u0E23\u0E37\u0E2D","o"]);var Re=N,je=new Re;function j(i,e){return je.parse(i,e)}function $e(i,e){return je.canParse(i,e)}function Ue(i,e){if(ne(i))return i;let t=j(i,e);return de(t)}function Fe(i,e){let t=G(i);return ue(t,e)}function De(i,e){return ne(i)?G(i):j(i,e)}var It=new Set(["me","my","myself","you","your","yourself","it","its","result","event","target","body","detail","window","document"]),_t=new Set(["and","or","not","no"]),Bt=new Set(["true","false","null","undefined"]),Wt=new Set(["ms","s","seconds","second","milliseconds","millisecond","minutes","minute","hours","hour"]);function dt(i){let e=[],t=0,r=1,n=1;function o(){if(e.length===0)return!0;let u=e[e.length-1];return["OPERATOR","COMPARISON","LOGICAL","LPAREN","LBRACKET","LBRACE","COMMA","COLON"].includes(u.type)}function a(u=0){return i[t+u]??""}function s(){let u=i[t];return t++,u===`
2
+ `?(r++,n=1):n++,u}function c(){for(;t<i.length&&/\s/.test(i[t]);)s()}function l(u){let p="";for(;t<i.length&&u(i[t]);)p+=s();return p}function m(u){let p=u;for(s();t<i.length&&i[t]!==u;)i[t]==="\\"&&t+1<i.length&&(p+=s()),p+=s();return t<i.length&&(p+=s()),p}function v(){let u="`";for(s();t<i.length&&i[t]!=="`";)i[t]==="\\"&&t+1<i.length&&(u+=s()),u+=s();return t<i.length&&(u+=s()),u}function y(){let u="<";for(s();t<i.length&&(u+=s(),!u.endsWith("/>")););return u}function f(u,p,g){return{type:u,value:p,start:g,end:t,line:r,column:n-p.length}}for(;t<i.length&&(c(),!(t>=i.length));){let u=t,p=a();if(p==="'"&&a(1)==="s"&&!/\w/.test(a(2))){s(),s(),e.push(f("POSSESSIVE","'s",u));continue}if(p==='"'||p==="'"){let g=m(p);e.push(f("STRING",g,u));continue}if(p==="`"){let g=v();e.push(f("TEMPLATE_LITERAL",g,u));continue}if(p==="<"&&/[a-zA-Z.#\[]/.test(a(1))){let g=y();e.push(f("QUERY_SELECTOR",g,u));continue}if(p==="#"&&o()){s();let g=l(x=>/[\w-]/.test(x));e.push(f("ID_SELECTOR","#"+g,u));continue}if(p==="."&&/[a-zA-Z_-]/.test(a(1))&&o()){s();let g=l(x=>/[\w-]/.test(x));e.push(f("CLASS_SELECTOR","."+g,u));continue}if(p==="["&&o()){let g=a(1);if(g==="@"||/[a-zA-Z]/.test(g)){let x="";for(x+=s();t<i.length&&i[t]!=="]";)i[t]==='"'||i[t]==="'"?x+=m(i[t]):x+=s();t<i.length&&(x+=s()),e.push(f("ATTRIBUTE_SELECTOR",x,u));continue}}if(p==="["){s(),e.push(f("LBRACKET","[",u));continue}if(p==="]"){s(),e.push(f("RBRACKET","]",u));continue}if(/\d/.test(p)){let g=l(X=>/[\d.]/.test(X)),x=t,C=l(X=>/[a-zA-Z]/.test(X));Wt.has(C)?e.push(f("TIME_EXPRESSION",g+C,u)):(t=x,e.push(f("NUMBER",g,u)));continue}if(p==="("){s(),e.push(f("LPAREN","(",u));continue}if(p===")"){s(),e.push(f("RPAREN",")",u));continue}if(p==="{"){s(),e.push(f("LBRACE","{",u));continue}if(p==="}"){s(),e.push(f("RBRACE","}",u));continue}if(p===","){s(),e.push(f("COMMA",",",u));continue}if(p===":"){s(),e.push(f("COLON",":",u));continue}if(p==="."){s(),e.push(f("DOT",".",u));continue}if(p==="+"||p==="-"||p==="*"||p==="/"||p==="%"){s(),e.push(f("OPERATOR",p,u));continue}if(p==="="||p==="!"||p==="<"||p===">"){let g=s();a()==="="&&(g+=s()),e.push(f("COMPARISON",g,u));continue}if(/[a-zA-Z_$]/.test(p)){let g=l(C=>/[\w$]/.test(C)),x=g.toLowerCase();It.has(x)?e.push(f("CONTEXT_VAR",g,u)):_t.has(x)?e.push(f("LOGICAL",g,u)):Bt.has(x)?e.push(f("BOOLEAN",g,u)):e.push(f("IDENTIFIER",g,u));continue}s()}return e.push(f("EOF","",t)),e}var Pe=class{constructor(){this.tokens=[];this.current=0}parse(e){try{return this.tokens=dt(e),this.current=0,this.isAtEnd()?{success:!1,error:"Empty expression"}:{success:!0,node:this.parseExpression(),consumed:this.current}}catch(t){return{success:!1,error:t instanceof Error?t.message:"Parse error"}}}peek(){return this.tokens[this.current]??{type:"EOF",value:"",start:0,end:0}}previous(){return this.tokens[this.current-1]??{type:"EOF",value:"",start:0,end:0}}isAtEnd(){return this.peek().type==="EOF"}advance(){return this.isAtEnd()||this.current++,this.previous()}check(e){return this.peek().type===e}checkValue(e){return this.peek().value.toLowerCase()===e.toLowerCase()}match(...e){for(let t of e)if(this.check(t))return this.advance(),!0;return!1}parseExpression(){return this.parseOr()}parseOr(){let e=this.parseAnd();for(;this.checkValue("or");){let t=this.advance().value,r=this.parseAnd();e=this.createBinaryExpression(t,e,r)}return e}parseAnd(){let e=this.parseEquality();for(;this.checkValue("and");){let t=this.advance().value,r=this.parseEquality();e=this.createBinaryExpression(t,e,r)}return e}parseEquality(){let e=this.parseComparison();for(;this.match("COMPARISON")||this.checkValue("is")||this.checkValue("matches")||this.checkValue("contains")||this.checkValue("in");){let t=this.previous().value,r=this.parseComparison();e=this.createBinaryExpression(t,e,r)}return e}parseComparison(){let e=this.parseAddition();for(;this.check("COMPARISON");){let t=this.advance().value,r=this.parseAddition();e=this.createBinaryExpression(t,e,r)}return e}parseAddition(){let e=this.parseMultiplication();for(;this.peek().value==="+"||this.peek().value==="-";){let t=this.advance().value,r=this.parseMultiplication();e=this.createBinaryExpression(t,e,r)}return e}parseMultiplication(){let e=this.parseUnary();for(;this.peek().value==="*"||this.peek().value==="/"||this.peek().value==="%";){let t=this.advance().value,r=this.parseUnary();e=this.createBinaryExpression(t,e,r)}return e}parseUnary(){if(this.checkValue("not")||this.checkValue("no")||this.peek().value==="-"){let e=this.advance().value,t=this.parseUnary();return this.createUnaryExpression(e,t)}return this.parsePostfix()}parsePostfix(){let e=this.parsePrimary();for(;;)if(this.match("DOT"))if(this.check("IDENTIFIER")||this.check("CONTEXT_VAR")){let t=this.advance().value;e=this.createPropertyAccess(e,t)}else break;else if(this.match("POSSESSIVE"))if(this.check("IDENTIFIER")||this.check("CONTEXT_VAR")){let t=this.advance().value;e=this.createPossessiveExpression(e,t)}else break;else if(this.match("LPAREN")){let t=this.parseArguments();e=this.createCallExpression(e,t)}else if(this.match("LBRACKET")){let t=this.parseExpression();if(!this.match("RBRACKET"))throw new Error("Expected ] after index");e=this.createPropertyAccess(e,t)}else break;return e}parsePrimary(){let e=this.peek();if(this.match("NUMBER"))return this.createLiteral(parseFloat(e.value),"number",e);if(this.match("STRING")){let t=e.value.slice(1,-1);return this.createLiteral(t,"string",e)}if(this.match("BOOLEAN")){let t=e.value==="true"?!0:e.value==="false"?!1:e.value==="null"?null:void 0,r={true:"boolean",false:"boolean",null:"null",undefined:"undefined"};return this.createLiteral(t,r[e.value]??"string",e)}if(this.match("TEMPLATE_LITERAL"))return{type:"templateLiteral",value:e.value,start:e.start,end:e.end,line:e.line,column:e.column};if(this.match("TIME_EXPRESSION"))return this.parseTimeExpression(e);if(this.match("ID_SELECTOR"))return this.createSelector(e.value,"id",e);if(this.match("CLASS_SELECTOR"))return this.createSelector(e.value,"class",e);if(this.match("ATTRIBUTE_SELECTOR"))return this.createSelector(e.value,"attribute",e);if(this.match("QUERY_SELECTOR")){let t=e.value.slice(1,-2);return this.createSelector(t,"query",e)}if(this.match("CONTEXT_VAR"))return this.createContextReference(e.value,e);if(this.match("IDENTIFIER"))return this.createIdentifier(e.value,e);if(this.match("LPAREN")){let t=this.parseExpression();if(!this.match("RPAREN"))throw new Error("Expected ) after expression");return t}if(this.match("LBRACKET"))return this.parseArrayLiteral();if(this.match("LBRACE"))return this.parseObjectLiteral();throw new Error(`Unexpected token: ${e.value}`)}parseArguments(){let e=[];if(!this.check("RPAREN"))do e.push(this.parseExpression());while(this.match("COMMA"));if(!this.match("RPAREN"))throw new Error("Expected ) after arguments");return e}parseArrayLiteral(){let e=[],t=this.previous().start;if(!this.check("RBRACKET"))do e.push(this.parseExpression());while(this.match("COMMA"));if(!this.match("RBRACKET"))throw new Error("Expected ] after array elements");return{type:"arrayLiteral",elements:e,start:t,end:this.previous().end}}parseObjectLiteral(){let e=[],t=this.previous().start;if(!this.check("RBRACE"))do{let r;if(this.check("STRING"))r=this.advance().value.slice(1,-1);else if(this.check("IDENTIFIER"))r=this.advance().value;else throw new Error("Expected property name");if(!this.match("COLON"))throw new Error("Expected : after property name");let n=this.parseExpression();e.push({key:r,value:n})}while(this.match("COMMA"));if(!this.match("RBRACE"))throw new Error("Expected } after object properties");return{type:"objectLiteral",properties:e.map(r=>({type:"objectProperty",key:r.key,value:r.value})),start:t,end:this.previous().end}}parseTimeExpression(e){let t=e.value.match(/^(\d+(?:\.\d+)?)(ms|s|seconds?|milliseconds?|minutes?|hours?)$/i);if(!t)throw new Error(`Invalid time expression: ${e.value}`);let r=parseFloat(t[1]),n=t[2].toLowerCase();return{type:"timeExpression",value:r,unit:n,raw:e.value,start:e.start,end:e.end,line:e.line,column:e.column}}createLiteral(e,t,r){return{type:"literal",value:e,dataType:t,raw:r.value,start:r.start,end:r.end,line:r.line,column:r.column}}createSelector(e,t,r){return{type:"selector",value:e,selector:e,selectorType:t,start:r.start,end:r.end,line:r.line,column:r.column}}createContextReference(e,t){return{type:"contextReference",contextType:e,name:t.value,start:t.start,end:t.end,line:t.line,column:t.column}}createIdentifier(e,t){return{type:"identifier",name:e,start:t.start,end:t.end,line:t.line,column:t.column}}createPropertyAccess(e,t){return{type:"propertyAccess",object:e,property:typeof t=="string"?t:t.type==="identifier"?t.name:"",start:e.start,end:this.previous().end}}createPossessiveExpression(e,t){return{type:"possessiveExpression",object:e,property:t,start:e.start,end:this.previous().end}}createBinaryExpression(e,t,r){return{type:"binaryExpression",operator:e,left:t,right:r,start:t.start,end:r.end}}createUnaryExpression(e,t){return{type:"unaryExpression",operator:e,operand:t,prefix:!0,start:this.previous().start,end:t.end}}createCallExpression(e,t){return{type:"callExpression",callee:e,arguments:t,start:e.start,end:this.previous().end}}};function qe(i){return new Pe().parse(i)}function L(i,e){switch(i.type){case"literal":return Kt(i);case"selector":return jt(i,e);case"reference":return $t(i);case"property-path":return Ut(i,e);case"expression":return Ft(i);default:let t=i;throw new Error(`Unknown semantic value type: ${t.type}`)}}function Kt(i){let e={type:"literal",value:i.value};return i.dataType?{...e,dataType:i.dataType}:e}function jt(i,e){return e&&i.value.startsWith("*")&&/^[a-zA-Z-]/.test(i.value.slice(1))&&e.push(`Converted '${i.value}' to a CSS selector, but it looks like a CSS property name. CSS properties in commands like 'transition' should be literal strings, not selectors. Consider using expectedTypes: ['literal'] instead of ['literal', 'selector'] in the command schema.`),{type:"selector",value:i.value,selector:i.value,selectorType:i.selectorKind}}function $t(i){return{type:"contextReference",contextType:i.value,name:i.value}}function Ut(i,e){return{type:"propertyAccess",object:L(i.object,e),property:i.property}}function Ft(i){let e=qe(i.raw);return!e.success||!e.node?{type:"identifier",name:i.raw}:e.node}function pt(i,e){return i.roles.get(e)}function d(i,e,t){let r=pt(i,e);return r?L(r,t):void 0}function h(i,e=[],t,r={}){let n={type:"command",name:i,args:e};return t&&Object.keys(t).length>0&&(n.modifiers=t),r.isBlocking&&(n.isBlocking=r.isBlocking),r.implicitTarget&&(n.implicitTarget=r.implicitTarget),r.semanticRoles&&Object.keys(r.semanticRoles).length>0&&(n.semanticRoles=r.semanticRoles),n}var Dt={action:"toggle",toAST(i,e){let t=d(i,"patient"),r=d(i,"destination"),n=d(i,"duration"),o=t?[t]:[],a={};return r&&(a.on=r),n&&(a.for=n),h("toggle",o,a)}},qt={action:"add",toAST(i,e){let t=d(i,"patient"),r=d(i,"destination"),n=t?[t]:[],o={};return r&&(o.to=r),h("add",n,o)}},Ht={action:"remove",toAST(i,e){let t=d(i,"patient"),r=d(i,"source"),n=t?[t]:[],o={};return r&&(o.from=r),h("remove",n,o)}},Gt={action:"set",toAST(i,e){let t=d(i,"destination"),r=d(i,"patient"),n=[],o={};return t&&n.push(t),r&&(o.to=r),h("set",n,o)}},Zt={action:"show",toAST(i,e){let t=d(i,"destination"),r=d(i,"patient"),n=d(i,"duration"),o=[],a={},s=t??r;return s&&o.push(s),n&&(a.with=n),h("show",o,a)}},Xt={action:"hide",toAST(i,e){let t=d(i,"destination"),r=d(i,"patient"),n=d(i,"duration"),o=[],a={},s=t??r;return s&&o.push(s),n&&(a.with=n),h("hide",o,a)}},Qt={action:"increment",toAST(i,e){let t=d(i,"destination"),r=d(i,"patient"),n=d(i,"quantity"),o=[],a={},s=t??r;return s&&o.push(s),n&&(a.by=n),h("increment",o,a)}},Yt={action:"decrement",toAST(i,e){let t=d(i,"destination"),r=d(i,"patient"),n=d(i,"quantity"),o=[],a={},s=t??r;return s&&o.push(s),n&&(a.by=n),h("decrement",o,a)}},Jt={action:"wait",toAST(i,e){let t=d(i,"duration");return h("wait",t?[t]:[],void 0,{isBlocking:!0})}},er={action:"log",toAST(i,e){let t=d(i,"patient"),r=[];return t&&r.push(t),h("log",r)}},tr={action:"put",toAST(i,e){let t=d(i,"patient"),r=d(i,"destination"),n=pt(i,"method"),o=t?[t]:[],a={};if(r){let s=n?.type==="literal"?String(n.value):"into";a[s]=r}return h("put",o,a)}},rr={action:"fetch",toAST(i,e){let t=d(i,"source"),r=d(i,"method"),n=d(i,"responseType"),o=d(i,"patient"),a=t?[t]:[],s={};return r&&(s.with=r),n&&(s.as=n),o&&(s.body=o),h("fetch",a,s,{isBlocking:!0})}},nr={action:"append",toAST(i,e){let t=d(i,"patient"),r=d(i,"destination"),n=t?[t]:[],o={};return r&&(o.to=r),h("append",n,o)}},ir={action:"prepend",toAST(i,e){let t=d(i,"patient"),r=d(i,"destination"),n=t?[t]:[],o={};return r&&(o.to=r),h("prepend",n,o)}},or={action:"trigger",toAST(i,e){let t=d(i,"event"),r=d(i,"destination"),n=t?[t]:[],o={};return r&&(o.on=r),h("trigger",n,o)}},ar={action:"send",toAST(i,e){let t=d(i,"event"),r=d(i,"destination"),n=d(i,"patient"),o=t?[t]:[],a={};return r&&(a.to=r),n&&(a.detail=n),h("send",o,a)}},sr={action:"go",toAST(i,e){let t=d(i,"source"),r=d(i,"destination"),n=[],o={};return t&&n.push(t),r&&(o.to=r),h("go",n,o)}},cr={action:"transition",toAST(i,e){let t=d(i,"patient"),r=d(i,"goal"),n=d(i,"duration"),o=d(i,"destination"),a=t?[t]:[],s={};return r&&(s.to=r),n&&(s.over=n),o&&(s.on=o),h("transition",a,s)}},lr={action:"focus",toAST(i,e){let t=d(i,"destination"),r=d(i,"patient"),n=[],o={},a=t??r;return a&&n.push(a),h("focus",n,o)}},ur={action:"blur",toAST(i,e){let t=d(i,"destination"),r=d(i,"patient"),n=[],o=t??r;return o&&n.push(o),h("blur",n)}},dr={action:"get",toAST(i,e){let t=d(i,"source"),r=d(i,"patient"),n=[],o=t??r;return o&&n.push(o),h("get",n)}},pr={action:"take",toAST(i,e){let t=d(i,"patient"),r=d(i,"source"),n=t?[t]:[],o={};return r&&(o.from=r),h("take",n,o)}},mr={action:"call",toAST(i,e){let t=d(i,"patient");return h("call",t?[t]:[])}},fr={action:"return",toAST(i,e){let t=d(i,"patient");return h("return",t?[t]:[])}},gr={action:"halt",toAST(i,e){return h("halt",[])}},hr={action:"throw",toAST(i,e){let t=d(i,"patient");return h("throw",t?[t]:[])}},yr={action:"settle",toAST(i,e){let t=d(i,"destination"),r=d(i,"patient"),n=[],o=t??r;return o&&n.push(o),h("settle",n,void 0,{isBlocking:!0})}},vr={action:"swap",toAST(i,e){let t=d(i,"patient"),r=d(i,"source"),n=d(i,"destination"),o=d(i,"style"),a=[],s={};return t&&a.push(t),r&&a.push(r),n&&(s.on=n),o&&(s.with=o),h("swap",a,s)}},xr={action:"morph",toAST(i,e){let t=d(i,"source"),r=d(i,"destination"),n=d(i,"patient"),o=[],a={},s=t??n;return s&&o.push(s),r&&(a.on=r),h("morph",o,a)}},kr={action:"clone",toAST(i,e){let t=d(i,"source"),r=d(i,"destination"),n=d(i,"patient"),o=[],a={},s=t??n;return s&&o.push(s),r&&(a.into=r),h("clone",o,a)}},Sr={action:"make",toAST(i,e){let t=d(i,"patient");return h("make",t?[t]:[])}},br={action:"measure",toAST(i,e){let t=d(i,"patient"),r=d(i,"destination"),n=d(i,"source"),o=[],a={};t&&o.push(t);let s=r??n;return s&&(a.of=s),h("measure",o,a)}},Tr={action:"tell",toAST(i,e){let t=d(i,"destination"),r=d(i,"patient"),n=[],o=t??r;return o&&n.push(o),h("tell",n)}},Er={action:"js",toAST(i,e){let t=d(i,"patient");return h("js",t?[t]:[])}},wr={action:"async",toAST(i,e){return h("async",[])}},Nr={action:"if",toAST(i,e){let t=d(i,"condition");return h("if",t?[t]:[])}},Cr={action:"unless",toAST(i,e){let t=d(i,"condition");return h("unless",t?[t]:[])}},Rr={action:"repeat",toAST(i,e){let t=d(i,"quantity"),r=d(i,"patient"),n=[],o=t??r;return o&&n.push(o),h("repeat",n)}},Pr={action:"for",toAST(i,e){let t=d(i,"patient"),r=d(i,"source"),n=t?[t]:[],o={};return r&&(o.in=r),h("for",n,o)}},Lr={action:"while",toAST(i,e){let t=d(i,"condition");return h("while",t?[t]:[])}},Mr={action:"continue",toAST(i,e){return h("continue",[])}},Ar={action:"default",toAST(i,e){let t=d(i,"patient"),r=d(i,"source"),n=t?[t]:[],o={};return r&&(o.to=r),h("default",n,o)}},zr={action:"init",toAST(i,e){return h("init",[])}},Vr={action:"behavior",toAST(i,e){let t=d(i,"patient");return h("behavior",t?[t]:[])}},Or={action:"install",toAST(i,e){let t=d(i,"patient"),r=d(i,"destination"),n=t?[t]:[],o={};return r&&(o.on=r),h("install",n,o)}},Ir={action:"on",toAST(i,e){let t=d(i,"event"),r=d(i,"source"),n=t?[t]:[],o={};return r&&(o.from=r),h("on",n,o)}},mt=new Map([["toggle",Dt],["add",qt],["remove",Ht],["set",Gt],["show",Zt],["hide",Xt],["increment",Qt],["decrement",Yt],["wait",Jt],["log",er],["put",tr],["fetch",rr],["append",nr],["prepend",ir],["get",dr],["take",pr],["trigger",or],["send",ar],["on",Ir],["go",sr],["transition",cr],["focus",lr],["blur",ur],["call",mr],["return",fr],["halt",gr],["throw",hr],["settle",yr],["swap",vr],["morph",xr],["clone",kr],["measure",br],["make",Sr],["tell",Tr],["default",Ar],["js",Er],["async",wr],["if",Nr],["unless",Cr],["repeat",Rr],["for",Pr],["while",Lr],["continue",Mr],["init",zr],["behavior",Vr],["install",Or]]);function pe(i){return mt.get(i)}function He(i){mt.set(i.action,i)}var me=class{constructor(e={}){this.warnings=[]}build(e){switch(e.kind){case"command":return this.buildCommand(e);case"event-handler":return this.buildEventHandler(e);case"conditional":return this.buildConditional(e);case"compound":return this.buildCompound(e);case"loop":return this.buildLoop(e);default:throw new Error(`Unknown semantic node kind: ${e.kind}`)}}buildCommand(e){let t=pe(e.action),r;if(t){let n=t.toAST(e,this);if("ast"in n&&"warnings"in n){let o=n;this.warnings.push(...o.warnings),r=o.ast}else r=n}else r=this.buildGenericCommand(e);if(e.roles&&e.roles.size>0){let n={};for(let[o,a]of e.roles)n[o]=L(a);Object.keys(n).length>0&&(r.semanticRoles=n)}return r}buildGenericCommand(e){let t=[],r={},n=["patient","source","quantity"],o=["destination","duration","method","style"];for(let s of n){let c=e.roles.get(s);c&&t.push(L(c))}for(let s of o){let c=e.roles.get(s);if(c){let l=this.roleToModifierKey(s);r[l]=L(c)}}let a={type:"command",name:e.action,args:t};return Object.keys(r).length>0?{...a,modifiers:r}:a}roleToModifierKey(e){return{destination:"on",duration:"for",source:"from",condition:"if",method:"via",style:"with"}[e]??e}buildEventHandler(e){let t=e.roles.get("event"),r,n;if(t?.type==="literal"){let g=String(t.value);g.includes("|")||g.includes(" or ")?(n=g.split(/\s+or\s+|\|/).map(x=>x.trim()),r=n[0]):r=g}else t?.type==="reference"?r=t.value:r="click";let o=e.body.map(g=>this.build(g)),a=e.roles.get("source"),s,c;a?.type==="selector"?(s=a.value,c=a.value):a?.type==="reference"?c=a.value:a?.type==="literal"&&(c=String(a.value));let l=e.roles.get("condition"),m=l?L(l):void 0,v=e.roles.get("destination"),y=v?L(v):void 0,f=e.eventModifiers,u=s;if(f?.from){let g=f.from;g.type==="selector"&&!s&&(u=g.value)}let p=e.parameterNames?[...e.parameterNames]:void 0;return{type:"eventHandler",event:r,commands:o,...n&&n.length>1?{events:n}:{},...u?{selector:u}:{},...c?{target:c}:{},...m?{condition:m}:{},...y?{watchTarget:y}:{},...p&&p.length>0?{args:p,params:p}:{}}}buildConditional(e){let t=e.roles.get("condition");if(!t)throw new Error("Conditional node missing condition");let r=L(t),n=e.thenBranch.map(s=>this.build(s)),o=e.elseBranch?.map(s=>this.build(s)),a=[r,{type:"block",commands:n}];return o&&o.length>0&&a.push({type:"block",commands:o}),{type:"command",name:"if",args:a}}buildCompound(e){let t=e.statements.map(n=>this.build(n));return t.length===1?t[0]:t.length===0?{type:"block",commands:[]}:{type:"CommandSequence",commands:t}}buildLoop(e){let t=e.body.map(n=>this.build(n)),r=[{type:"identifier",name:e.loopVariant}];switch(e.loopVariant){case"times":{let n=e.roles.get("quantity");n&&r.push(L(n));break}case"for":{e.loopVariable&&r.push({type:"string",value:e.loopVariable});let n=e.roles.get("source");n&&r.push(L(n));break}case"while":case"until":{let n=e.roles.get("condition");n&&r.push(L(n));break}case"forever":break}return r.push({type:"block",commands:t}),{type:"command",name:"repeat",args:r}}buildBlock(e){return{type:"block",commands:e.map(r=>this.build(r))}}};function ft(i){let e=new me;return{ast:e.build(i),warnings:e.warnings}}var Z=class{constructor(e={}){this.cache=new Map,this.config={maxSize:e.maxSize??1e3,ttlMs:e.ttlMs??0,enabled:e.enabled??!0},this.stats={hits:0,misses:0,evictions:0,expirations:0}}makeKey(e,t){return`${t}:${e}`}isExpired(e){return this.config.ttlMs===0?!1:Date.now()-e.createdAt>this.config.ttlMs}evictLRU(){let e=this.cache.keys().next().value;e!==void 0&&(this.cache.delete(e),this.stats.evictions++)}get(e,t){if(!this.config.enabled){this.stats.misses++;return}let r=this.makeKey(e,t),n=this.cache.get(r);if(!n){this.stats.misses++;return}if(this.isExpired(n)){this.cache.delete(r),this.stats.expirations++,this.stats.misses++;return}return this.cache.delete(r),n.lastAccessed=Date.now(),this.cache.set(r,n),this.stats.hits++,n.result}set(e,t,r){if(!this.config.enabled||r.confidence===0)return;let n=this.makeKey(e,t),o=Date.now();for(;this.cache.size>=this.config.maxSize;)this.evictLRU();this.cache.set(n,{result:r,createdAt:o,lastAccessed:o})}has(e,t){if(!this.config.enabled)return!1;let r=this.makeKey(e,t),n=this.cache.get(r);return n?this.isExpired(n)?(this.cache.delete(r),this.stats.expirations++,!1):!0:!1}delete(e,t){let r=this.makeKey(e,t);return this.cache.delete(r)}clear(){this.cache.clear()}resetStats(){this.stats={hits:0,misses:0,evictions:0,expirations:0}}getStats(){let e=this.stats.hits+this.stats.misses;return{hits:this.stats.hits,misses:this.stats.misses,size:this.cache.size,maxSize:this.config.maxSize,hitRate:e>0?this.stats.hits/e:0,evictions:this.stats.evictions,expirations:this.stats.expirations,enabled:this.config.enabled}}configure(e){if(e.maxSize!==void 0)for(this.config.maxSize=e.maxSize;this.cache.size>this.config.maxSize;)this.evictLRU();e.ttlMs!==void 0&&(this.config.ttlMs=e.ttlMs),e.enabled!==void 0&&(this.config.enabled=e.enabled)}enable(){this.config.enabled=!0}disable(){this.config.enabled=!1}getConfig(){return{...this.config}}},Ge=new Z;var fe=class{constructor(e={}){this.patternMatcher=new le,this.languages=new Set(ye()),e.cache===!1?this.cache=new Z({enabled:!1}):this.cache=e.cache?new Z(e.cache):Ge}analyze(e,t){if(!this.supportsLanguage(t))return{confidence:0,errors:[`Language '${t}' is not supported for semantic parsing`]};let r=this.cache.get(e,t);if(r)return r;let n=this.analyzeUncached(e,t);return this.cache.set(e,t,n),n}analyzeUncached(e,t){try{try{let s=j(e,t),c={confidence:s.metadata?.confidence??.8,node:s};return s.kind==="command"?{...c,command:{name:s.action,roles:s.roles}}:c}catch{}let r=ct(t);if(!r)return{confidence:0,errors:[`No tokenizer available for language '${t}'`]};let n=r.tokenize(e),o=z(t);if(o.length===0)return{confidence:0,errors:[`No patterns available for language '${t}'`]};let a=this.patternMatcher.matchBest(n,o);if(a){let s=this.buildSemanticNode(a);return{confidence:a.confidence,command:{name:a.pattern.command,roles:a.captured},node:s,tokensConsumed:a.consumedTokens}}return{confidence:0,errors:["No pattern matched the input"]}}catch(r){return{confidence:0,errors:[r instanceof Error?r.message:String(r)]}}}supportsLanguage(e){return this.languages.has(e)}supportedLanguages(){return Array.from(this.languages)}getCacheStats(){return this.cache.getStats()}clearCache(){this.cache.clear()}configureCache(e){this.cache.configure(e)}buildSemanticNode(e){return{kind:"command",action:e.pattern.command,roles:e.captured,metadata:{patternId:e.pattern.id}}}};function gt(i){return new fe(i)}var Ze=.5,ht=.8;function yt(i,e=Ze){return i.confidence>=e&&i.command!==void 0}var _r="1.0.0-vi",Br=["vi"];function Wr(){return[...Br]}function vt(i){if(i!=="vi")throw new Error(`Language not supported in this bundle: ${i}. Supported: vi`)}function Kr(i,e){return vt(e),[...te(i,e).tokens]}function xt(i){return vt(i),z(i)}function jr(i,e){return xt(i).filter(t=>t.command===e).sort((t,r)=>r.priority-t.priority)}return Nt($r);})();