@lokascript/semantic 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (435) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +686 -0
  3. package/dist/browser-ar.ar.global.js +2 -0
  4. package/dist/browser-core.core.global.js +2 -0
  5. package/dist/browser-de.de.global.js +2 -0
  6. package/dist/browser-east-asian.east-asian.global.js +2 -0
  7. package/dist/browser-en-tr.en-tr.global.js +2 -0
  8. package/dist/browser-en.en.global.js +2 -0
  9. package/dist/browser-es-en.es-en.global.js +2 -0
  10. package/dist/browser-es.es.global.js +2 -0
  11. package/dist/browser-fr.fr.global.js +2 -0
  12. package/dist/browser-id.id.global.js +2 -0
  13. package/dist/browser-ja.ja.global.js +2 -0
  14. package/dist/browser-ko.ko.global.js +2 -0
  15. package/dist/browser-lazy.lazy.global.js +2 -0
  16. package/dist/browser-priority.priority.global.js +2 -0
  17. package/dist/browser-pt.pt.global.js +2 -0
  18. package/dist/browser-qu.qu.global.js +2 -0
  19. package/dist/browser-sw.sw.global.js +2 -0
  20. package/dist/browser-tr.tr.global.js +2 -0
  21. package/dist/browser-western.western.global.js +2 -0
  22. package/dist/browser-zh.zh.global.js +2 -0
  23. package/dist/browser.global.js +3 -0
  24. package/dist/browser.global.js.map +1 -0
  25. package/dist/index.cjs +35051 -0
  26. package/dist/index.cjs.map +1 -0
  27. package/dist/index.d.cts +3426 -0
  28. package/dist/index.d.ts +3426 -0
  29. package/dist/index.js +34890 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/languages/ar.d.ts +78 -0
  32. package/dist/languages/ar.js +1622 -0
  33. package/dist/languages/ar.js.map +1 -0
  34. package/dist/languages/de.d.ts +38 -0
  35. package/dist/languages/de.js +1168 -0
  36. package/dist/languages/de.js.map +1 -0
  37. package/dist/languages/en.d.ts +44 -0
  38. package/dist/languages/en.js +3491 -0
  39. package/dist/languages/en.js.map +1 -0
  40. package/dist/languages/es.d.ts +52 -0
  41. package/dist/languages/es.js +1493 -0
  42. package/dist/languages/es.js.map +1 -0
  43. package/dist/languages/fr.d.ts +37 -0
  44. package/dist/languages/fr.js +1159 -0
  45. package/dist/languages/fr.js.map +1 -0
  46. package/dist/languages/id.d.ts +35 -0
  47. package/dist/languages/id.js +1152 -0
  48. package/dist/languages/id.js.map +1 -0
  49. package/dist/languages/ja.d.ts +53 -0
  50. package/dist/languages/ja.js +1430 -0
  51. package/dist/languages/ja.js.map +1 -0
  52. package/dist/languages/ko.d.ts +51 -0
  53. package/dist/languages/ko.js +1729 -0
  54. package/dist/languages/ko.js.map +1 -0
  55. package/dist/languages/pt.d.ts +37 -0
  56. package/dist/languages/pt.js +1127 -0
  57. package/dist/languages/pt.js.map +1 -0
  58. package/dist/languages/qu.d.ts +36 -0
  59. package/dist/languages/qu.js +1143 -0
  60. package/dist/languages/qu.js.map +1 -0
  61. package/dist/languages/sw.d.ts +35 -0
  62. package/dist/languages/sw.js +1147 -0
  63. package/dist/languages/sw.js.map +1 -0
  64. package/dist/languages/tr.d.ts +45 -0
  65. package/dist/languages/tr.js +1529 -0
  66. package/dist/languages/tr.js.map +1 -0
  67. package/dist/languages/zh.d.ts +58 -0
  68. package/dist/languages/zh.js +1257 -0
  69. package/dist/languages/zh.js.map +1 -0
  70. package/dist/types-C4dcj53L.d.ts +600 -0
  71. package/package.json +202 -0
  72. package/src/__test-utils__/index.ts +7 -0
  73. package/src/__test-utils__/test-helpers.ts +8 -0
  74. package/src/__types__/test-helpers.ts +122 -0
  75. package/src/analysis/index.ts +479 -0
  76. package/src/ast-builder/command-mappers.ts +1133 -0
  77. package/src/ast-builder/expression-parser/index.ts +41 -0
  78. package/src/ast-builder/expression-parser/parser.ts +563 -0
  79. package/src/ast-builder/expression-parser/tokenizer.ts +394 -0
  80. package/src/ast-builder/expression-parser/types.ts +208 -0
  81. package/src/ast-builder/index.ts +536 -0
  82. package/src/ast-builder/value-converters.ts +172 -0
  83. package/src/bridge.ts +275 -0
  84. package/src/browser-ar.ts +162 -0
  85. package/src/browser-core.ts +231 -0
  86. package/src/browser-de.ts +162 -0
  87. package/src/browser-east-asian.ts +173 -0
  88. package/src/browser-en-tr.ts +165 -0
  89. package/src/browser-en.ts +157 -0
  90. package/src/browser-es-en.ts +200 -0
  91. package/src/browser-es.ts +170 -0
  92. package/src/browser-fr.ts +162 -0
  93. package/src/browser-id.ts +162 -0
  94. package/src/browser-ja.ts +162 -0
  95. package/src/browser-ko.ts +162 -0
  96. package/src/browser-lazy.ts +189 -0
  97. package/src/browser-priority.ts +214 -0
  98. package/src/browser-pt.ts +162 -0
  99. package/src/browser-qu.ts +162 -0
  100. package/src/browser-sw.ts +162 -0
  101. package/src/browser-tr.ts +162 -0
  102. package/src/browser-western.ts +181 -0
  103. package/src/browser-zh.ts +162 -0
  104. package/src/browser.ts +268 -0
  105. package/src/cache/index.ts +14 -0
  106. package/src/cache/semantic-cache.ts +344 -0
  107. package/src/core-bridge.ts +372 -0
  108. package/src/explicit/converter.ts +258 -0
  109. package/src/explicit/index.ts +18 -0
  110. package/src/explicit/parser.ts +236 -0
  111. package/src/explicit/renderer.ts +424 -0
  112. package/src/generators/command-schemas.ts +1636 -0
  113. package/src/generators/event-handler-generator.ts +109 -0
  114. package/src/generators/index.ts +117 -0
  115. package/src/generators/language-profiles.ts +139 -0
  116. package/src/generators/pattern-generator.ts +537 -0
  117. package/src/generators/profiles/arabic.ts +131 -0
  118. package/src/generators/profiles/bengali.ts +132 -0
  119. package/src/generators/profiles/chinese.ts +124 -0
  120. package/src/generators/profiles/english.ts +113 -0
  121. package/src/generators/profiles/french.ts +125 -0
  122. package/src/generators/profiles/german.ts +126 -0
  123. package/src/generators/profiles/hindi.ts +146 -0
  124. package/src/generators/profiles/index.ts +46 -0
  125. package/src/generators/profiles/indonesian.ts +125 -0
  126. package/src/generators/profiles/italian.ts +139 -0
  127. package/src/generators/profiles/japanese.ts +149 -0
  128. package/src/generators/profiles/korean.ts +127 -0
  129. package/src/generators/profiles/marker-templates.ts +288 -0
  130. package/src/generators/profiles/ms.ts +130 -0
  131. package/src/generators/profiles/polish.ts +249 -0
  132. package/src/generators/profiles/portuguese.ts +115 -0
  133. package/src/generators/profiles/quechua.ts +113 -0
  134. package/src/generators/profiles/russian.ts +260 -0
  135. package/src/generators/profiles/spanish.ts +130 -0
  136. package/src/generators/profiles/swahili.ts +129 -0
  137. package/src/generators/profiles/thai.ts +132 -0
  138. package/src/generators/profiles/tl.ts +128 -0
  139. package/src/generators/profiles/turkish.ts +124 -0
  140. package/src/generators/profiles/types.ts +165 -0
  141. package/src/generators/profiles/ukrainian.ts +270 -0
  142. package/src/generators/profiles/vietnamese.ts +133 -0
  143. package/src/generators/schema-error-codes.ts +160 -0
  144. package/src/generators/schema-validator.ts +391 -0
  145. package/src/index.ts +429 -0
  146. package/src/language-building-schema.ts +3170 -0
  147. package/src/language-loader.ts +394 -0
  148. package/src/languages/_all.ts +65 -0
  149. package/src/languages/ar.ts +15 -0
  150. package/src/languages/bn.ts +16 -0
  151. package/src/languages/de.ts +15 -0
  152. package/src/languages/en.ts +29 -0
  153. package/src/languages/es.ts +15 -0
  154. package/src/languages/fr.ts +15 -0
  155. package/src/languages/hi.ts +26 -0
  156. package/src/languages/id.ts +15 -0
  157. package/src/languages/index.ts +18 -0
  158. package/src/languages/it.ts +15 -0
  159. package/src/languages/ja.ts +15 -0
  160. package/src/languages/ko.ts +15 -0
  161. package/src/languages/ms.ts +16 -0
  162. package/src/languages/pl.ts +18 -0
  163. package/src/languages/pt.ts +15 -0
  164. package/src/languages/qu.ts +15 -0
  165. package/src/languages/ru.ts +26 -0
  166. package/src/languages/sw.ts +15 -0
  167. package/src/languages/th.ts +16 -0
  168. package/src/languages/tl.ts +16 -0
  169. package/src/languages/tr.ts +15 -0
  170. package/src/languages/uk.ts +26 -0
  171. package/src/languages/vi.ts +16 -0
  172. package/src/languages/zh.ts +15 -0
  173. package/src/parser/index.ts +15 -0
  174. package/src/parser/pattern-matcher.ts +1181 -0
  175. package/src/parser/semantic-parser.ts +573 -0
  176. package/src/parser/utils/index.ts +35 -0
  177. package/src/parser/utils/marker-resolution.ts +111 -0
  178. package/src/parser/utils/possessive-keywords.ts +43 -0
  179. package/src/parser/utils/role-positioning.ts +70 -0
  180. package/src/parser/utils/type-validation.ts +134 -0
  181. package/src/patterns/add/ar.ts +71 -0
  182. package/src/patterns/add/bn.ts +70 -0
  183. package/src/patterns/add/hi.ts +69 -0
  184. package/src/patterns/add/index.ts +87 -0
  185. package/src/patterns/add/it.ts +61 -0
  186. package/src/patterns/add/ja.ts +93 -0
  187. package/src/patterns/add/ko.ts +74 -0
  188. package/src/patterns/add/ms.ts +30 -0
  189. package/src/patterns/add/pl.ts +62 -0
  190. package/src/patterns/add/ru.ts +62 -0
  191. package/src/patterns/add/th.ts +49 -0
  192. package/src/patterns/add/tl.ts +30 -0
  193. package/src/patterns/add/tr.ts +71 -0
  194. package/src/patterns/add/uk.ts +62 -0
  195. package/src/patterns/add/vi.ts +61 -0
  196. package/src/patterns/add/zh.ts +71 -0
  197. package/src/patterns/builders.ts +207 -0
  198. package/src/patterns/decrement/bn.ts +70 -0
  199. package/src/patterns/decrement/de.ts +42 -0
  200. package/src/patterns/decrement/hi.ts +68 -0
  201. package/src/patterns/decrement/index.ts +79 -0
  202. package/src/patterns/decrement/it.ts +69 -0
  203. package/src/patterns/decrement/ms.ts +30 -0
  204. package/src/patterns/decrement/pl.ts +58 -0
  205. package/src/patterns/decrement/ru.ts +58 -0
  206. package/src/patterns/decrement/th.ts +49 -0
  207. package/src/patterns/decrement/tl.ts +30 -0
  208. package/src/patterns/decrement/tr.ts +48 -0
  209. package/src/patterns/decrement/uk.ts +58 -0
  210. package/src/patterns/decrement/vi.ts +61 -0
  211. package/src/patterns/decrement/zh.ts +32 -0
  212. package/src/patterns/en.ts +302 -0
  213. package/src/patterns/event-handler/ar.ts +151 -0
  214. package/src/patterns/event-handler/bn.ts +72 -0
  215. package/src/patterns/event-handler/de.ts +117 -0
  216. package/src/patterns/event-handler/en.ts +117 -0
  217. package/src/patterns/event-handler/es.ts +136 -0
  218. package/src/patterns/event-handler/fr.ts +117 -0
  219. package/src/patterns/event-handler/hi.ts +64 -0
  220. package/src/patterns/event-handler/id.ts +117 -0
  221. package/src/patterns/event-handler/index.ts +119 -0
  222. package/src/patterns/event-handler/it.ts +54 -0
  223. package/src/patterns/event-handler/ja.ts +118 -0
  224. package/src/patterns/event-handler/ko.ts +133 -0
  225. package/src/patterns/event-handler/ms.ts +30 -0
  226. package/src/patterns/event-handler/pl.ts +62 -0
  227. package/src/patterns/event-handler/pt.ts +117 -0
  228. package/src/patterns/event-handler/qu.ts +66 -0
  229. package/src/patterns/event-handler/ru.ts +62 -0
  230. package/src/patterns/event-handler/shared.ts +270 -0
  231. package/src/patterns/event-handler/sw.ts +117 -0
  232. package/src/patterns/event-handler/th.ts +53 -0
  233. package/src/patterns/event-handler/tl.ts +30 -0
  234. package/src/patterns/event-handler/tr.ts +170 -0
  235. package/src/patterns/event-handler/uk.ts +62 -0
  236. package/src/patterns/event-handler/vi.ts +61 -0
  237. package/src/patterns/event-handler/zh.ts +150 -0
  238. package/src/patterns/get/ar.ts +49 -0
  239. package/src/patterns/get/bn.ts +47 -0
  240. package/src/patterns/get/de.ts +32 -0
  241. package/src/patterns/get/hi.ts +52 -0
  242. package/src/patterns/get/index.ts +83 -0
  243. package/src/patterns/get/it.ts +56 -0
  244. package/src/patterns/get/ja.ts +53 -0
  245. package/src/patterns/get/ko.ts +53 -0
  246. package/src/patterns/get/ms.ts +30 -0
  247. package/src/patterns/get/pl.ts +57 -0
  248. package/src/patterns/get/ru.ts +57 -0
  249. package/src/patterns/get/th.ts +29 -0
  250. package/src/patterns/get/tl.ts +30 -0
  251. package/src/patterns/get/uk.ts +57 -0
  252. package/src/patterns/get/vi.ts +48 -0
  253. package/src/patterns/grammar-transformed/index.ts +39 -0
  254. package/src/patterns/grammar-transformed/ja.ts +1713 -0
  255. package/src/patterns/grammar-transformed/ko.ts +1311 -0
  256. package/src/patterns/grammar-transformed/tr.ts +1067 -0
  257. package/src/patterns/hide/ar.ts +67 -0
  258. package/src/patterns/hide/bn.ts +47 -0
  259. package/src/patterns/hide/de.ts +36 -0
  260. package/src/patterns/hide/hi.ts +61 -0
  261. package/src/patterns/hide/index.ts +91 -0
  262. package/src/patterns/hide/it.ts +56 -0
  263. package/src/patterns/hide/ja.ts +69 -0
  264. package/src/patterns/hide/ko.ts +69 -0
  265. package/src/patterns/hide/ms.ts +30 -0
  266. package/src/patterns/hide/pl.ts +57 -0
  267. package/src/patterns/hide/ru.ts +57 -0
  268. package/src/patterns/hide/th.ts +29 -0
  269. package/src/patterns/hide/tl.ts +30 -0
  270. package/src/patterns/hide/tr.ts +65 -0
  271. package/src/patterns/hide/uk.ts +57 -0
  272. package/src/patterns/hide/vi.ts +56 -0
  273. package/src/patterns/hide/zh.ts +68 -0
  274. package/src/patterns/increment/bn.ts +70 -0
  275. package/src/patterns/increment/de.ts +36 -0
  276. package/src/patterns/increment/hi.ts +68 -0
  277. package/src/patterns/increment/index.ts +79 -0
  278. package/src/patterns/increment/it.ts +69 -0
  279. package/src/patterns/increment/ms.ts +30 -0
  280. package/src/patterns/increment/pl.ts +58 -0
  281. package/src/patterns/increment/ru.ts +58 -0
  282. package/src/patterns/increment/th.ts +49 -0
  283. package/src/patterns/increment/tl.ts +30 -0
  284. package/src/patterns/increment/tr.ts +52 -0
  285. package/src/patterns/increment/uk.ts +58 -0
  286. package/src/patterns/increment/vi.ts +61 -0
  287. package/src/patterns/increment/zh.ts +32 -0
  288. package/src/patterns/index.ts +84 -0
  289. package/src/patterns/languages/en/control-flow.ts +93 -0
  290. package/src/patterns/languages/en/fetch.ts +62 -0
  291. package/src/patterns/languages/en/index.ts +42 -0
  292. package/src/patterns/languages/en/repeat.ts +67 -0
  293. package/src/patterns/languages/en/set.ts +48 -0
  294. package/src/patterns/languages/en/swap.ts +38 -0
  295. package/src/patterns/languages/en/temporal.ts +57 -0
  296. package/src/patterns/put/ar.ts +74 -0
  297. package/src/patterns/put/bn.ts +53 -0
  298. package/src/patterns/put/en.ts +74 -0
  299. package/src/patterns/put/es.ts +74 -0
  300. package/src/patterns/put/hi.ts +69 -0
  301. package/src/patterns/put/id.ts +96 -0
  302. package/src/patterns/put/index.ts +99 -0
  303. package/src/patterns/put/it.ts +56 -0
  304. package/src/patterns/put/ja.ts +75 -0
  305. package/src/patterns/put/ko.ts +67 -0
  306. package/src/patterns/put/ms.ts +30 -0
  307. package/src/patterns/put/pl.ts +81 -0
  308. package/src/patterns/put/ru.ts +85 -0
  309. package/src/patterns/put/th.ts +32 -0
  310. package/src/patterns/put/tl.ts +30 -0
  311. package/src/patterns/put/tr.ts +67 -0
  312. package/src/patterns/put/uk.ts +85 -0
  313. package/src/patterns/put/vi.ts +72 -0
  314. package/src/patterns/put/zh.ts +62 -0
  315. package/src/patterns/registry.ts +163 -0
  316. package/src/patterns/remove/ar.ts +71 -0
  317. package/src/patterns/remove/bn.ts +68 -0
  318. package/src/patterns/remove/hi.ts +69 -0
  319. package/src/patterns/remove/index.ts +87 -0
  320. package/src/patterns/remove/it.ts +69 -0
  321. package/src/patterns/remove/ja.ts +74 -0
  322. package/src/patterns/remove/ko.ts +78 -0
  323. package/src/patterns/remove/ms.ts +30 -0
  324. package/src/patterns/remove/pl.ts +62 -0
  325. package/src/patterns/remove/ru.ts +62 -0
  326. package/src/patterns/remove/th.ts +49 -0
  327. package/src/patterns/remove/tl.ts +30 -0
  328. package/src/patterns/remove/tr.ts +78 -0
  329. package/src/patterns/remove/uk.ts +62 -0
  330. package/src/patterns/remove/vi.ts +61 -0
  331. package/src/patterns/remove/zh.ts +72 -0
  332. package/src/patterns/set/ar.ts +84 -0
  333. package/src/patterns/set/bn.ts +53 -0
  334. package/src/patterns/set/de.ts +84 -0
  335. package/src/patterns/set/es.ts +92 -0
  336. package/src/patterns/set/fr.ts +88 -0
  337. package/src/patterns/set/hi.ts +56 -0
  338. package/src/patterns/set/id.ts +84 -0
  339. package/src/patterns/set/index.ts +107 -0
  340. package/src/patterns/set/it.ts +56 -0
  341. package/src/patterns/set/ja.ts +86 -0
  342. package/src/patterns/set/ko.ts +85 -0
  343. package/src/patterns/set/ms.ts +30 -0
  344. package/src/patterns/set/pl.ts +57 -0
  345. package/src/patterns/set/pt.ts +84 -0
  346. package/src/patterns/set/ru.ts +57 -0
  347. package/src/patterns/set/th.ts +31 -0
  348. package/src/patterns/set/tl.ts +30 -0
  349. package/src/patterns/set/tr.ts +107 -0
  350. package/src/patterns/set/uk.ts +57 -0
  351. package/src/patterns/set/vi.ts +53 -0
  352. package/src/patterns/set/zh.ts +84 -0
  353. package/src/patterns/show/ar.ts +67 -0
  354. package/src/patterns/show/bn.ts +47 -0
  355. package/src/patterns/show/de.ts +32 -0
  356. package/src/patterns/show/fr.ts +32 -0
  357. package/src/patterns/show/hi.ts +61 -0
  358. package/src/patterns/show/index.ts +95 -0
  359. package/src/patterns/show/it.ts +56 -0
  360. package/src/patterns/show/ja.ts +69 -0
  361. package/src/patterns/show/ko.ts +73 -0
  362. package/src/patterns/show/ms.ts +30 -0
  363. package/src/patterns/show/pl.ts +57 -0
  364. package/src/patterns/show/ru.ts +57 -0
  365. package/src/patterns/show/th.ts +29 -0
  366. package/src/patterns/show/tl.ts +30 -0
  367. package/src/patterns/show/tr.ts +65 -0
  368. package/src/patterns/show/uk.ts +57 -0
  369. package/src/patterns/show/vi.ts +56 -0
  370. package/src/patterns/show/zh.ts +68 -0
  371. package/src/patterns/take/ar.ts +51 -0
  372. package/src/patterns/take/index.ts +31 -0
  373. package/src/patterns/toggle/ar.ts +61 -0
  374. package/src/patterns/toggle/bn.ts +70 -0
  375. package/src/patterns/toggle/en.ts +61 -0
  376. package/src/patterns/toggle/es.ts +61 -0
  377. package/src/patterns/toggle/hi.ts +80 -0
  378. package/src/patterns/toggle/index.ts +95 -0
  379. package/src/patterns/toggle/it.ts +69 -0
  380. package/src/patterns/toggle/ja.ts +156 -0
  381. package/src/patterns/toggle/ko.ts +113 -0
  382. package/src/patterns/toggle/ms.ts +30 -0
  383. package/src/patterns/toggle/pl.ts +62 -0
  384. package/src/patterns/toggle/ru.ts +62 -0
  385. package/src/patterns/toggle/th.ts +50 -0
  386. package/src/patterns/toggle/tl.ts +30 -0
  387. package/src/patterns/toggle/tr.ts +88 -0
  388. package/src/patterns/toggle/uk.ts +62 -0
  389. package/src/patterns/toggle/vi.ts +61 -0
  390. package/src/patterns/toggle/zh.ts +99 -0
  391. package/src/public-api.ts +286 -0
  392. package/src/registry.ts +441 -0
  393. package/src/tokenizers/arabic.ts +723 -0
  394. package/src/tokenizers/base.ts +1300 -0
  395. package/src/tokenizers/bengali.ts +289 -0
  396. package/src/tokenizers/chinese.ts +481 -0
  397. package/src/tokenizers/english.ts +416 -0
  398. package/src/tokenizers/french.ts +326 -0
  399. package/src/tokenizers/german.ts +324 -0
  400. package/src/tokenizers/hindi.ts +319 -0
  401. package/src/tokenizers/index.ts +127 -0
  402. package/src/tokenizers/indonesian.ts +306 -0
  403. package/src/tokenizers/italian.ts +458 -0
  404. package/src/tokenizers/japanese.ts +447 -0
  405. package/src/tokenizers/korean.ts +642 -0
  406. package/src/tokenizers/morphology/arabic-normalizer.ts +242 -0
  407. package/src/tokenizers/morphology/french-normalizer.ts +268 -0
  408. package/src/tokenizers/morphology/german-normalizer.ts +256 -0
  409. package/src/tokenizers/morphology/index.ts +46 -0
  410. package/src/tokenizers/morphology/italian-normalizer.ts +329 -0
  411. package/src/tokenizers/morphology/japanese-normalizer.ts +288 -0
  412. package/src/tokenizers/morphology/korean-normalizer.ts +428 -0
  413. package/src/tokenizers/morphology/polish-normalizer.ts +264 -0
  414. package/src/tokenizers/morphology/portuguese-normalizer.ts +310 -0
  415. package/src/tokenizers/morphology/spanish-normalizer.ts +327 -0
  416. package/src/tokenizers/morphology/turkish-normalizer.ts +412 -0
  417. package/src/tokenizers/morphology/types.ts +211 -0
  418. package/src/tokenizers/ms.ts +198 -0
  419. package/src/tokenizers/polish.ts +354 -0
  420. package/src/tokenizers/portuguese.ts +304 -0
  421. package/src/tokenizers/quechua.ts +339 -0
  422. package/src/tokenizers/russian.ts +375 -0
  423. package/src/tokenizers/spanish.ts +403 -0
  424. package/src/tokenizers/swahili.ts +303 -0
  425. package/src/tokenizers/thai.ts +236 -0
  426. package/src/tokenizers/tl.ts +198 -0
  427. package/src/tokenizers/turkish.ts +411 -0
  428. package/src/tokenizers/ukrainian.ts +369 -0
  429. package/src/tokenizers/vietnamese.ts +410 -0
  430. package/src/types/grammar-types.ts +617 -0
  431. package/src/types/unified-profile.ts +267 -0
  432. package/src/types.ts +709 -0
  433. package/src/utils/confidence-calculator.ts +147 -0
  434. package/src/validators/command-validator.ts +380 -0
  435. package/src/validators/index.ts +15 -0
@@ -0,0 +1,2 @@
1
+ "use strict";var LokaScriptSemanticPriority=(()=>{var Ge=Object.defineProperty;var bn=Object.getOwnPropertyDescriptor;var wn=Object.getOwnPropertyNames;var Ln=Object.prototype.hasOwnProperty;var Pn=(i,n)=>{for(var e in n)Ge(i,e,{get:n[e],enumerable:!0})},En=(i,n,e,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of wn(n))!Ln.call(i,t)&&t!==e&&Ge(i,t,{get:()=>n[t],enumerable:!(r=bn(n,t))||r.enumerable});return i};var Cn=i=>En(Ge({},"__esModule",{value:!0}),i);var ca={};Pn(ca,{ASTBuilder:()=>xe,DEFAULT_CONFIDENCE_THRESHOLD:()=>xt,HIGH_CONFIDENCE_THRESHOLD:()=>Tn,SemanticAnalyzerImpl:()=>be,VERSION:()=>oa,arabicProfile:()=>re,arabicTokenizer:()=>We,buildAST:()=>vn,canParse:()=>yt,chineseProfile:()=>te,chineseTokenizer:()=>Ie,createCommandNode:()=>D,createEventHandler:()=>se,createLiteral:()=>R,createPropertyPath:()=>ae,createReference:()=>W,createSelector:()=>F,createSemanticAnalyzer:()=>zn,englishProfile:()=>U,englishTokenizer:()=>Ee,frenchProfile:()=>J,frenchTokenizer:()=>je,fromExplicit:()=>vt,germanProfile:()=>Y,germanTokenizer:()=>Me,getCommandMapper:()=>ke,getPatternsForLanguage:()=>xn,getPatternsForLanguageAndCommand:()=>la,getProfile:()=>He,getSupportedLanguages:()=>aa,getTokenizer:()=>$e,indonesianProfile:()=>oe,indonesianTokenizer:()=>Ke,isExplicitSyntax:()=>le,isLanguageSupported:()=>Ct,japaneseProfile:()=>ee,japaneseTokenizer:()=>Ae,koreanProfile:()=>ne,koreanTokenizer:()=>Ve,parse:()=>ce,parseAny:()=>zt,parseExplicit:()=>$,portugueseProfile:()=>Z,portugueseTokenizer:()=>Ne,registerCommandMapper:()=>St,render:()=>Te,renderExplicit:()=>Se,shouldUseSemanticResult:()=>Sn,spanishProfile:()=>Q,spanishTokenizer:()=>Re,toExplicit:()=>ht,tokenize:()=>sa,tryGetProfile:()=>q,turkishProfile:()=>ie,turkishTokenizer:()=>_e});var X=new Map,we=new Map,de=new Map;var wt=null;function C(i,n,e){X.set(i,n),we.set(i,e),de.delete(i)}var Lt=new Map;function Pt(i,n){Lt.set(i,n),de.delete(i)}function $e(i){let n=X.get(i);if(!n){let e=Array.from(X.keys()).join(", ");throw new Error(`Language '${i}' is not registered. Registered languages: ${e||"none"}. Import the language module first: import '@lokascript/semantic/languages/${i}';`)}return n}function He(i){let n=we.get(i);if(!n){let e=Array.from(we.keys()).join(", ");throw new Error(`Language profile '${i}' is not registered. Registered languages: ${e||"none"}. Import the language module first: import '@lokascript/semantic/languages/${i}';`)}return n}function Et(i){return X.get(i)}function q(i){return we.get(i)}function Le(){return Array.from(X.keys())}function Ct(i){return X.has(i)}function Rt(i,n){return $e(n).tokenize(i)}function O(i){let n=de.get(i);if(n)return n;let e=Lt.get(i);if(e)return de.set(i,e),e;if(!wt)throw new Error(`No patterns registered for language '${i}'. Either import the language module or set a pattern generator.`);let r=He(i),t=wt(r);return de.set(i,t),t}function Nt(i,n){return O(i).filter(e=>e.command===n).sort((e,r)=>r.priority-e.priority)}var b=class{constructor(n,e){this.pos=0;this.tokens=n,this.language=e}peek(n=0){let e=this.pos+n;return e<0||e>=this.tokens.length?null:this.tokens[e]}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(n){this.pos=n.position}position(){return this.pos}remaining(){return this.tokens.slice(this.pos)}takeWhile(n){let e=[];for(;!this.isAtEnd()&&n(this.peek());)e.push(this.advance());return e}skipWhile(n){for(;!this.isAtEnd()&&n(this.peek());)this.advance()}};function p(i,n){return{start:i,end:n}}function u(i,n,e,r){if(typeof r=="string")return{value:i,kind:n,position:e,normalized:r};if(r){let{normalized:t,stem:o,stemConfidence:s}=r,a={value:i,kind:n,position:e};return t!==void 0&&(a.normalized=t),o!==void 0&&(a.stem=o,s!==void 0&&(a.stemConfidence=s)),a}return{value:i,kind:n,position:e}}function k(i){return/\s/.test(i)}function L(i){return i==="#"||i==="."||i==="["||i==="@"||i==="*"||i==="<"}function P(i){return i==='"'||i==="'"||i==="`"||i==="\u300C"||i==="\u300D"}function T(i){return/\d/.test(i)}function jt(i){return/[a-zA-Z]/.test(i)}function S(i){return/[a-zA-Z0-9_-]/.test(i)}function A(i){return n=>{let e=n.charCodeAt(0);return i.some(([r,t])=>e>=r&&e<=t)}}function pe(...i){return n=>i.some(e=>e(n))}function M(i){let n=r=>i.test(r);return{isLetter:n,isIdentifierChar:r=>n(r)||/[0-9_-]/.test(r)}}function Mt(i,n){if(n>=i.length)return null;let e=i[n];if(!L(e))return null;let r=n,t="";if(e==="#"||e==="."){for(t+=i[r++];r<i.length&&S(i[r]);)t+=i[r++];if(t.length<=1)return null;if(r<i.length&&i[r]==="."&&e==="#"){let s=r+1;for(;s<i.length&&S(i[s]);)s++;if(s<i.length&&i[s]==="(")return t}}else if(e==="["){let o=1,s=!1,a=null,l=!1;for(t+=i[r++];r<i.length&&o>0;){let c=i[r];t+=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(e==="@"){for(t+=i[r++];r<i.length&&S(i[r]);)t+=i[r++];if(t.length<=1)return null}else if(e==="*"){for(t+=i[r++];r<i.length&&S(i[r]);)t+=i[r++];if(t.length<=1)return null}else if(e==="<"){if(t+=i[r++],r>=i.length||!jt(i[r]))return null;for(;r<i.length&&S(i[r]);)t+=i[r++];for(;r<i.length;){let o=i[r];if(o==="."){if(t+=i[r++],r>=i.length||!S(i[r]))return null;for(;r<i.length&&S(i[r]);)t+=i[r++]}else if(o==="#"){if(t+=i[r++],r>=i.length||!S(i[r]))return null;for(;r<i.length&&S(i[r]);)t+=i[r++]}else if(o==="["){let s=1,a=!1,l=null,c=!1;for(t+=i[r++];r<i.length&&s>0;){let d=i[r];t+=d,c?c=!1:d==="\\"?c=!0:a?d===l&&(a=!1,l=null):d==='"'||d==="'"||d==="`"?(a=!0,l=d):d==="["?s++:d==="]"&&s--,r++}if(s!==0)return null}else break}for(;r<i.length&&k(i[r]);)t+=i[r++];if(r<i.length&&i[r]==="/")for(t+=i[r++];r<i.length&&k(i[r]);)t+=i[r++];if(r>=i.length||i[r]!==">")return null;t+=i[r++]}return t||null}function Xe(i,n){if(n>=i.length||i[n]!=="'"||n+1>=i.length||i[n+1].toLowerCase()!=="s")return!1;if(n+2>=i.length)return!0;let r=i[n+2];return k(r)||r==="*"||!S(r)}function At(i,n){if(n>=i.length)return null;let e=i[n];if(!P(e)||e==="'"&&Xe(i,n))return null;let t={'"':'"',"'":"'","`":"`","\u300C":"\u300D"}[e];if(!t)return null;let o=n+1,s=e,a=!1;for(;o<i.length;){let l=i[o];if(s+=l,a)a=!1;else if(l==="\\")a=!0;else if(l===t)return s;o++}return s}function E(i,n){if(n>=i.length)return!1;let e=i[n],r=i[n+1]||"",t=i[n+2]||"";if(e==="/"&&r!=="/"&&/[a-zA-Z0-9._-]/.test(r)||e==="/"&&r==="/"&&/[a-zA-Z]/.test(t)||e==="."&&(r==="/"||r==="."&&t==="/"))return!0;let o=i.slice(n,n+8).toLowerCase();return!!(o.startsWith("http://")||o.startsWith("https://"))}function It(i,n){if(!E(i,n))return null;let e=n,r="",t=/[a-zA-Z0-9/:._\-?&=%@+~!$'()*,;[\]]/;for(;e<i.length;){let o=i[e];if(o==="#"){if(r.length>0&&/[a-zA-Z0-9/.]$/.test(r))for(r+=o,e++;e<i.length&&/[a-zA-Z0-9_-]/.test(i[e]);)r+=i[e++];break}if(t.test(o))r+=o,e++;else break}return r.length<2?null:r}function Vt(i,n){if(n>=i.length)return null;let e=i[n];if(!T(e)&&e!=="-"&&e!=="+")return null;let r=n,t="";if((i[r]==="-"||i[r]==="+")&&(t+=i[r++]),r>=i.length||!T(i[r]))return null;for(;r<i.length&&T(i[r]);)t+=i[r++];if(r<i.length&&i[r]===".")for(t+=i[r++];r<i.length&&T(i[r]);)t+=i[r++];return r<i.length&&(i.slice(r,r+2)==="ms"?t+="ms":(i[r]==="s"||i[r]==="m"||i[r]==="h")&&(t+=i[r])),t}var Pe=class Pe{constructor(){this.profileKeywords=[];this.profileKeywordMap=new Map}initializeKeywordsFromProfile(n,e=[]){let r=new Map;if(n.keywords){for(let[t,o]of Object.entries(n.keywords))if(r.set(o.primary,{native:o.primary,normalized:o.normalized||t}),o.alternatives)for(let s of o.alternatives)r.set(s,{native:s,normalized:o.normalized||t})}if(n.references)for(let[t,o]of Object.entries(n.references))r.set(o,{native:o,normalized:t});if(n.roleMarkers){for(let[t,o]of Object.entries(n.roleMarkers))if(o.primary&&r.set(o.primary,{native:o.primary,normalized:t}),o.alternatives)for(let s of o.alternatives)r.set(s,{native:s,normalized:t})}for(let t of e)r.set(t.native,t);this.profileKeywords=Array.from(r.values()).sort((t,o)=>o.native.length-t.native.length),this.profileKeywordMap=new Map;for(let t of this.profileKeywords){this.profileKeywordMap.set(t.native.toLowerCase(),t);let o=this.removeDiacritics(t.native);o!==t.native&&!this.profileKeywordMap.has(o.toLowerCase())&&this.profileKeywordMap.set(o.toLowerCase(),t)}}removeDiacritics(n){return n.replace(/[\u064B-\u0652\u0670]/g,"")}tryProfileKeyword(n,e){for(let r of this.profileKeywords)if(n.slice(e).startsWith(r.native))return u(r.native,"keyword",p(e,e+r.native.length),r.normalized);return null}isKeywordStart(n,e){let r=n.slice(e);return this.profileKeywords.some(t=>r.startsWith(t.native))}lookupKeyword(n){return this.profileKeywordMap.get(n.toLowerCase())}isKeyword(n){return this.profileKeywordMap.has(n.toLowerCase())}setNormalizer(n){this.normalizer=n}tryNormalize(n){if(!this.normalizer)return null;let e=this.normalizer.normalize(n);return e.stem!==n&&e.confidence>=.7?e:null}tryMorphKeywordMatch(n,e,r){let t=this.tryNormalize(n);if(!t)return null;let o=this.lookupKeyword(t.stem);if(!o)return null;let s={normalized:o.normalized,stem:t.stem,stemConfidence:t.confidence};return u(n,"keyword",p(e,r),s)}trySelector(n,e){let r=Mt(n,e);return r?u(r,"selector",p(e,e+r.length)):null}tryEventModifier(n,e){if(n[e]!==".")return null;let r=n.slice(e).match(/^\.(?:once|debounce|throttle|queue)(?:\(([^)]+)\))?(?:\s|$|\.)/);if(!r)return null;let t=r[0].replace(/(\s|\.)$/,""),o=t.slice(1).split("(")[0],s=r[1];return{...u(t,"event-modifier",p(e,e+t.length)),metadata:{modifierName:o,value:s?o==="queue"?s:parseInt(s,10):void 0}}}tryString(n,e){let r=At(n,e);return r?u(r,"literal",p(e,e+r.length)):null}tryNumber(n,e){let r=Vt(n,e);return r?u(r,"literal",p(e,e+r.length)):null}tryMatchTimeUnit(n,e,r,t=!1){let o=e;if(t)for(;o<n.length&&k(n[o]);)o++;let s=n.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 d=s[a.length]||"";if(S(d))continue}return{suffix:a.suffix,endPos:o+a.length}}}return null}parseBaseNumber(n,e,r=!0){let t=e,o="";if(r&&(n[t]==="-"||n[t]==="+")&&(o+=n[t++]),t>=n.length||!T(n[t]))return null;for(;t<n.length&&T(n[t]);)o+=n[t++];if(t<n.length&&n[t]===".")for(o+=n[t++];t<n.length&&T(n[t]);)o+=n[t++];return!o||o==="-"||o==="+"?null:{number:o,endPos:t}}tryNumberWithTimeUnits(n,e,r,t={}){let{allowSign:o=!0,skipWhitespace:s=!1}=t,a=this.parseBaseNumber(n,e,o);if(!a)return null;let{number:l,endPos:c}=a,d=[...r,...Pe.STANDARD_TIME_UNITS],x=this.tryMatchTimeUnit(n,c,d,s);return x&&(l+=x.suffix,c=x.endPos),u(l,"literal",p(e,c))}tryUrl(n,e){let r=It(n,e);return r?u(r,"url",p(e,e+r.length)):null}tryVariableRef(n,e){if(n[e]!==":"||e+1>=n.length||!S(n[e+1]))return null;let r=e+1;for(;r<n.length&&S(n[r]);)r++;let t=n.slice(e,r);return u(t,"identifier",p(e,r))}tryOperator(n,e){let r=n.slice(e,e+2);if(["==","!=","<=",">=","&&","||","->"].includes(r))return u(r,"operator",p(e,e+2));let t=n[e];return["<",">","!","+","-","*","/","="].includes(t)?u(t,"operator",p(e,e+1)):["(",")","{","}",",",";",":"].includes(t)?u(t,"punctuation",p(e,e+1)):null}tryMultiCharParticle(n,e,r){for(let t of r)if(n.slice(e,e+t.length)===t)return u(t,"particle",p(e,e+t.length));return null}};Pe.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 w=Pe;var U={code:"en",name:"English",nativeName:"English",direction:"ltr",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,defaultVerbForm:"base",verb:{position:"start",subjectDrop:!1},references:{me:"me",it:"it",you:"you",result:"result",event:"event",target:"target",body:"body"},possessive:{marker:"'s",markerPosition:"after-object",specialForms:{me:"my",it:"its",you:"your"},keywords:{my:"me",your:"you",its:"it"}},roleMarkers:{destination:{primary:"on",alternatives:["to","from"],position:"before"},source:{primary:"from",position:"before"},patient:{primary:"",position:"before"},style:{primary:"with",alternatives:["by","using"],position:"before"},responseType:{primary:"as",position:"before"},method:{primary:"via",alternatives:["using"],position:"before"}},keywords:{toggle:{primary:"toggle"},add:{primary:"add"},remove:{primary:"remove"},put:{primary:"put"},append:{primary:"append"},prepend:{primary:"prepend"},take:{primary:"take"},make:{primary:"make"},clone:{primary:"clone"},swap:{primary:"swap"},morph:{primary:"morph"},set:{primary:"set"},get:{primary:"get"},increment:{primary:"increment"},decrement:{primary:"decrement"},log:{primary:"log"},show:{primary:"show"},hide:{primary:"hide"},transition:{primary:"transition"},on:{primary:"on"},trigger:{primary:"trigger"},send:{primary:"send"},focus:{primary:"focus"},blur:{primary:"blur"},go:{primary:"go"},wait:{primary:"wait"},fetch:{primary:"fetch"},settle:{primary:"settle"},if:{primary:"if"},when:{primary:"when",normalized:"when"},where:{primary:"where",normalized:"where"},else:{primary:"else"},repeat:{primary:"repeat"},for:{primary:"for"},while:{primary:"while"},continue:{primary:"continue"},halt:{primary:"halt"},throw:{primary:"throw"},call:{primary:"call"},return:{primary:"return"},then:{primary:"then"},and:{primary:"and"},end:{primary:"end"},js:{primary:"js"},async:{primary:"async"},tell:{primary:"tell"},default:{primary:"default"},init:{primary:"init"},behavior:{primary:"behavior"},install:{primary:"install"},measure:{primary:"measure"},into:{primary:"into"},before:{primary:"before"},after:{primary:"after"},until:{primary:"until"},event:{primary:"event"},from:{primary:"from"}}};var Rn=[{native:"true",normalized:"true"},{native:"false",normalized:"false"},{native:"null",normalized:"null"},{native:"undefined",normalized:"undefined"},{native:"first",normalized:"first"},{native:"last",normalized:"last"},{native:"next",normalized:"next"},{native:"previous",normalized:"previous"},{native:"closest",normalized:"closest"},{native:"click",normalized:"click"},{native:"dblclick",normalized:"dblclick"},{native:"mousedown",normalized:"mousedown"},{native:"mouseup",normalized:"mouseup"},{native:"mouseover",normalized:"mouseover"},{native:"mouseout",normalized:"mouseout"},{native:"mouseenter",normalized:"mouseenter"},{native:"mouseleave",normalized:"mouseleave"},{native:"mousemove",normalized:"mousemove"},{native:"keydown",normalized:"keydown"},{native:"keyup",normalized:"keyup"},{native:"keypress",normalized:"keypress"},{native:"input",normalized:"input"},{native:"change",normalized:"change"},{native:"submit",normalized:"submit"},{native:"reset",normalized:"reset"},{native:"load",normalized:"load"},{native:"unload",normalized:"unload"},{native:"scroll",normalized:"scroll"},{native:"resize",normalized:"resize"},{native:"dragstart",normalized:"dragstart"},{native:"drag",normalized:"drag"},{native:"dragend",normalized:"dragend"},{native:"dragenter",normalized:"dragenter"},{native:"dragleave",normalized:"dragleave"},{native:"dragover",normalized:"dragover"},{native:"drop",normalized:"drop"},{native:"touchstart",normalized:"touchstart"},{native:"touchmove",normalized:"touchmove"},{native:"touchend",normalized:"touchend"},{native:"touchcancel",normalized:"touchcancel"},{native:"in",normalized:"in"},{native:"to",normalized:"to"},{native:"at",normalized:"at"},{native:"by",normalized:"by"},{native:"with",normalized:"with"},{native:"without",normalized:"without"},{native:"of",normalized:"of"},{native:"as",normalized:"as"},{native:"every",normalized:"every"},{native:"upon",normalized:"upon"},{native:"unless",normalized:"unless"},{native:"forever",normalized:"forever"},{native:"times",normalized:"times"},{native:"and",normalized:"and"},{native:"or",normalized:"or"},{native:"not",normalized:"not"},{native:"is",normalized:"is"},{native:"exists",normalized:"exists"},{native:"empty",normalized:"empty"},{native:"my",normalized:"my"},{native:"your",normalized:"your"},{native:"its",normalized:"its"},{native:"the",normalized:"the"},{native:"a",normalized:"a"},{native:"an",normalized:"an"},{native:"delete",normalized:"delete"},{native:"innerHTML",normalized:"innerHTML"},{native:"outerHTML",normalized:"outerHTML"},{native:"beforebegin",normalized:"beforebegin"},{native:"afterend",normalized:"afterend"},{native:"beforeend",normalized:"beforeend"},{native:"afterbegin",normalized:"afterbegin"},{native:"flip",normalized:"toggle"},{native:"switch",normalized:"toggle"},{native:"increase",normalized:"increment"},{native:"decrease",normalized:"decrement"},{native:"display",normalized:"show"},{native:"reveal",normalized:"show"},{native:"conceal",normalized:"hide"},{native:"colour",normalized:"color"},{native:"grey",normalized:"gray"},{native:"centre",normalized:"center"},{native:"behaviour",normalized:"behavior"},{native:"initialise",normalized:"initialize"},{native:"favourite",normalized:"favorite"}],Qe=class extends w{constructor(){super();this.language="en";this.direction="ltr";this.initializeKeywordsFromProfile(U,Rn)}tokenize(e){let r=[],t=0;for(;t<e.length;){if(k(e[t])){t++;continue}if(L(e[t])){let a=this.tryEventModifier(e,t);if(a){r.push(a),t=a.position.end;continue}if(e[t]==="."){let c=r[r.length-1],d=c&&c.position.end<t;if(c&&!d&&(c.kind==="identifier"||c.kind==="keyword"||c.kind==="selector")){r.push(u(".","operator",p(t,t+1))),t++;continue}let y=t+1;for(;y<e.length&&S(e[y]);)y++;if(y<e.length&&e[y]==="("){r.push(u(".","operator",p(t,t+1))),t++;continue}}let l=this.trySelector(e,t);if(l){r.push(l),t=l.position.end;continue}}if(P(e[t])){if(e[t]==="'"&&Xe(e,t)){r.push(u("'s","punctuation",p(t,t+2))),t+=2;continue}let a=this.tryString(e,t);if(a){r.push(a),t=a.position.end;continue}}if(E(e,t)){let a=this.tryUrl(e,t);if(a){r.push(a),t=a.position.end;continue}}if(T(e[t])||e[t]==="-"&&t+1<e.length&&T(e[t+1])){let a=this.tryNumber(e,t);if(a){r.push(a),t=a.position.end;continue}}let o=this.tryVariableRef(e,t);if(o){r.push(o),t=o.position.end;continue}if(S(e[t])){let a=this.extractWord(e,t);if(a){r.push(a),t=a.position.end;continue}}let s=this.tryOperator(e,t);if(s){r.push(s),t=s.position.end;continue}t++}return new b(r,"en")}classifyToken(e){return this.isKeyword(e)?"keyword":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":["==","!=","<=",">=","<",">","&&","||","!"].includes(e)?"operator":e.startsWith("/")||e.startsWith("./")||e.startsWith("http")?"url":"identifier"}extractWord(e,r){let t=r,o="";for(;t<e.length&&S(e[t]);)o+=e[t++];if(!o)return null;if(t<e.length&&e[t]===":"){let c=t;t++;let d="";for(;t<e.length&&S(e[t]);)d+=e[t++];d?o=o+":"+d:t=c}let s=this.classifyToken(o),a=this.lookupKeyword(o),l=a&&a.normalized!==a.native?a.normalized:void 0;if(s==="identifier"){let c=this.tryConvertToClassSelector(e,t,o);if(c)return c.token}return u(o,s,p(r,t),l)}tryConvertToClassSelector(e,r,t){let o=r;for(;o<e.length&&/\s/.test(e[o]);)o++;if(e.slice(o,o+5).toLowerCase()==="class"){let s=o+5;if(s>=e.length||!S(e[s])){let a="."+t;return{token:u(a,"selector",p(r-t.length,r)),endPos:r}}}return null}},Ee=new Qe;var Nn={action:"toggle",description:"Toggle a class or attribute on/off",category:"dom-class",primaryRole:"patient",roles:[{role:"patient",description:"The class or attribute to toggle",required:!0,expectedTypes:["selector"],svoPosition:1,sovPosition:2},{role:"destination",description:"The target element (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:2,sovPosition:1}],errorCodes:["MISSING_ARGUMENT","NO_VALID_CLASS_NAMES","INVALID_CSS_PROPERTY"],preconditions:[{condition:"Command has at least one argument",errorCode:"MISSING_ARGUMENT",message:"toggle command requires an argument"},{condition:"Class names are valid CSS identifiers",errorCode:"NO_VALID_CLASS_NAMES",message:"toggle command: no valid class names found"}],recoveryHints:{MISSING_ARGUMENT:"Add a class selector (.classname) or attribute to toggle",NO_VALID_CLASS_NAMES:"Ensure class names start with a dot (.) and are valid CSS identifiers",INVALID_CSS_PROPERTY:"Check CSS property name syntax (use kebab-case)"}},jn={action:"add",description:"Add a class or attribute to an element",category:"dom-class",primaryRole:"patient",roles:[{role:"patient",description:"The class or attribute to add",required:!0,expectedTypes:["selector"],svoPosition:1,sovPosition:2},{role:"destination",description:"The target element (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:2,sovPosition:1}],errorCodes:["MISSING_ARGUMENT","NO_VALID_CLASS_NAMES","PROPERTY_REQUIRES_VALUE"],preconditions:[{condition:"Command has at least one argument",errorCode:"MISSING_ARGUMENT",message:"add command requires an argument"}],recoveryHints:{MISSING_ARGUMENT:"Add a class selector (.classname) or attribute to add",NO_VALID_CLASS_NAMES:"Ensure class names start with a dot (.) and are valid CSS identifiers",PROPERTY_REQUIRES_VALUE:"When adding a property (*prop), provide a value argument"}},Mn={action:"remove",description:"Remove a class or attribute from an element",category:"dom-class",primaryRole:"patient",roles:[{role:"patient",description:"The class or attribute to remove",required:!0,expectedTypes:["selector"],svoPosition:1,sovPosition:2},{role:"source",description:"The element to remove from (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:2,sovPosition:1}],errorCodes:["MISSING_ARGUMENT","NO_VALID_CLASS_NAMES"],preconditions:[{condition:"Command has at least one argument",errorCode:"MISSING_ARGUMENT",message:"remove command requires an argument"}],recoveryHints:{MISSING_ARGUMENT:"Add a class selector (.classname) or attribute to remove",NO_VALID_CLASS_NAMES:"Ensure class names start with a dot (.) and are valid CSS identifiers"}},An={action:"put",description:"Put content into a target element or variable",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The content to put",required:!0,expectedTypes:["literal","selector","reference","expression"],svoPosition:1,sovPosition:2},{role:"destination",description:"Where to put the content",required:!0,expectedTypes:["selector","reference"],svoPosition:2,sovPosition:1}],errorCodes:["MISSING_ARGUMENTS","MISSING_CONTENT","MISSING_POSITION","INVALID_POSITION","NO_TARGET","NO_ELEMENTS"],preconditions:[{condition:"Command has content and position arguments",errorCode:"MISSING_ARGUMENTS",message:"put requires arguments"},{condition:"Content to put is specified",errorCode:"MISSING_CONTENT",message:"put requires content"},{condition:"Position keyword is specified (into, before, after, etc.)",errorCode:"MISSING_POSITION",message:"put requires position keyword"}],recoveryHints:{MISSING_ARGUMENTS:"Use syntax: put <content> into/before/after <target>",MISSING_CONTENT:"Add content to put (string, element, or expression)",MISSING_POSITION:"Add position keyword: into, before, after, at start of, at end of",INVALID_POSITION:"Valid positions: into, before, after, at start of, at end of",NO_TARGET:'Ensure target element exists or use "me" reference',NO_ELEMENTS:"Check that the selector matches existing elements"}},In={action:"set",description:"Set a property or variable to a value",category:"variable",primaryRole:"destination",roles:[{role:"destination",description:"The property or variable to set",required:!0,expectedTypes:["selector","reference"],svoPosition:1,sovPosition:1,markerOverride:{en:""}},{role:"patient",description:"The value to set",required:!0,expectedTypes:["literal","expression","reference"],svoPosition:2,sovPosition:2,markerOverride:{en:"to",es:"a",pt:"para",fr:"\xE0",de:"auf",id:"ke"}}],errorCodes:["MISSING_TARGET","INVALID_TARGET","MISSING_VALUE","INVALID_SYNTAX"],preconditions:[{condition:"Command has a target variable or property",errorCode:"MISSING_TARGET",message:"set command requires a target"},{condition:"Target is a valid variable or property reference",errorCode:"INVALID_TARGET",message:"set command target must be a string or object literal"},{condition:'Value is specified with "to" keyword',errorCode:"MISSING_VALUE",message:'set command requires a value (use "to" keyword)'}],recoveryHints:{MISSING_TARGET:"Add a target: set :variable to value OR set element.property to value",INVALID_TARGET:'Use local variable (:name), element property (el.prop), or "the X of Y" syntax',MISSING_VALUE:'Add "to <value>" to specify what to set',INVALID_SYNTAX:"Use syntax: set <target> to <value>"}},Vn={action:"show",description:"Make an element visible",category:"dom-visibility",primaryRole:"patient",roles:[{role:"patient",description:"The element to show",required:!0,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:1,sovPosition:1},{role:"style",description:"Animation style (fade, slide, etc.)",required:!1,expectedTypes:["literal"],svoPosition:2,sovPosition:2}]},On={action:"hide",description:"Make an element invisible",category:"dom-visibility",primaryRole:"patient",roles:[{role:"patient",description:"The element to hide",required:!0,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:1,sovPosition:1},{role:"style",description:"Animation style (fade, slide, etc.)",required:!1,expectedTypes:["literal"],svoPosition:2,sovPosition:2}]},Wn={action:"on",description:"Handle an event",category:"event",primaryRole:"event",hasBody:!0,roles:[{role:"event",description:"The event to handle",required:!0,expectedTypes:["literal"],svoPosition:1,sovPosition:2},{role:"source",description:"The element to listen on (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:2,sovPosition:1}]},_n={action:"trigger",description:"Trigger/dispatch an event",category:"event",primaryRole:"event",roles:[{role:"event",description:"The event to trigger (supports namespaced events like draggable:start)",required:!0,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:2},{role:"destination",description:"The target element (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:2,sovPosition:1}]},Kn={action:"wait",description:"Wait for a duration or event",category:"async",primaryRole:"patient",roles:[{role:"patient",description:"Duration or event to wait for",required:!0,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:1}]},qn={action:"fetch",description:"Fetch data from a URL",category:"async",primaryRole:"source",roles:[{role:"source",description:"The URL to fetch from",required:!0,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:1},{role:"responseType",description:"Response format (json, text, html, blob, etc.)",required:!1,expectedTypes:["literal","expression"],svoPosition:2,sovPosition:2},{role:"method",description:"HTTP method (GET, POST, etc.)",required:!1,expectedTypes:["literal"],svoPosition:3,sovPosition:3},{role:"destination",description:"Where to store the result",required:!1,expectedTypes:["selector","reference"],svoPosition:4,sovPosition:4}]},Un={action:"increment",description:"Increment a numeric value",category:"variable",primaryRole:"patient",roles:[{role:"patient",description:"The value to increment",required:!0,expectedTypes:["selector","reference","expression"],svoPosition:1,sovPosition:1},{role:"quantity",description:"Amount to increment by (defaults to 1)",required:!1,expectedTypes:["literal"],default:{type:"literal",value:1,dataType:"number"},svoPosition:2,sovPosition:2}]},Bn={action:"decrement",description:"Decrement a numeric value",category:"variable",primaryRole:"patient",roles:[{role:"patient",description:"The value to decrement",required:!0,expectedTypes:["selector","reference","expression"],svoPosition:1,sovPosition:1},{role:"quantity",description:"Amount to decrement by (defaults to 1)",required:!1,expectedTypes:["literal"],default:{type:"literal",value:1,dataType:"number"},svoPosition:2,sovPosition:2}]},Fn={action:"append",description:"Append content to an element",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The content to append",required:!0,expectedTypes:["literal","selector","expression"],svoPosition:1,sovPosition:2},{role:"destination",description:"The element to append to",required:!0,expectedTypes:["selector","reference"],svoPosition:2,sovPosition:1}]},Dn={action:"prepend",description:"Prepend content to an element",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The content to prepend",required:!0,expectedTypes:["literal","selector","expression"],svoPosition:1,sovPosition:2},{role:"destination",description:"The element to prepend to",required:!0,expectedTypes:["selector","reference"],svoPosition:2,sovPosition:1}]},Gn={action:"log",description:"Log a value to the console",category:"variable",primaryRole:"patient",roles:[{role:"patient",description:"The value to log",required:!0,expectedTypes:["literal","selector","reference","expression"],svoPosition:1,sovPosition:1}]},$n={action:"get",description:"Get a value from a source",category:"variable",primaryRole:"source",roles:[{role:"source",description:"The source to get from",required:!0,expectedTypes:["selector","reference","expression"],svoPosition:1,sovPosition:2,markerOverride:{en:"",es:"",pt:"",fr:"",de:"",ja:"",zh:"",ko:"",ar:"",tr:"",id:""}},{role:"destination",description:"Where to store the result (optional)",required:!1,expectedTypes:["reference"],svoPosition:2,sovPosition:1}]},Hn={action:"take",description:"Take content from a source element",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The class or element to take",required:!0,expectedTypes:["selector"],svoPosition:1,sovPosition:2},{role:"source",description:"The element to take from (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:2,sovPosition:1}]},Xn={action:"make",description:"Create a new element",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The element type or selector to create",required:!0,expectedTypes:["literal","selector"],svoPosition:1,sovPosition:1}]},Qn={action:"halt",description:"Halt/stop execution or event propagation",category:"control-flow",primaryRole:"patient",roles:[{role:"patient",description:"What to halt (event, default, bubbling, etc.)",required:!1,expectedTypes:["literal","reference","expression"],svoPosition:1,sovPosition:1}]},Zn={action:"settle",description:"Wait for animations/transitions to settle",category:"async",primaryRole:"patient",roles:[{role:"patient",description:"The element to settle (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:1,sovPosition:1}]},Jn={action:"throw",description:"Throw an error",category:"control-flow",primaryRole:"patient",roles:[{role:"patient",description:"The error message or object to throw",required:!0,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:1}]},Yn={action:"send",description:"Send an event to an element",category:"event",primaryRole:"event",roles:[{role:"event",description:"The event to send",required:!0,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:2},{role:"destination",description:"The target element (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:2,sovPosition:1,markerOverride:{en:"to",ja:"\u306B",ar:"\u0625\u0644\u0649",es:"a",ko:"\uC5D0\uAC8C",zh:"\u5230",tr:"-e",pt:"para",fr:"\xE0",de:"an",id:"ke",qu:"-man",sw:"kwa"}}]},er={action:"if",description:"Conditional execution",category:"control-flow",primaryRole:"condition",hasBody:!0,roles:[{role:"condition",description:"The condition to evaluate",required:!0,expectedTypes:["expression"],svoPosition:1,sovPosition:1}]},tr={action:"unless",description:"Negated conditional execution (executes when condition is false)",category:"control-flow",primaryRole:"condition",hasBody:!0,roles:[{role:"condition",description:"The condition to evaluate (body executes when false)",required:!0,expectedTypes:["expression"],svoPosition:1,sovPosition:1}]},nr={action:"else",description:"Else branch of conditional",category:"control-flow",primaryRole:"patient",hasBody:!0,roles:[]},rr={action:"repeat",description:"Repeat a block of commands",category:"control-flow",primaryRole:"loopType",hasBody:!0,roles:[{role:"loopType",description:"Loop variant: forever, times, for, while, until, until-event",required:!0,expectedTypes:["literal"],svoPosition:0,sovPosition:0},{role:"quantity",description:"Number of times to repeat",required:!1,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:1},{role:"event",description:"Event to wait for (terminates loop)",required:!1,expectedTypes:["literal","expression"],svoPosition:2,sovPosition:2},{role:"source",description:"Element to listen for event on",required:!1,expectedTypes:["selector","reference"],svoPosition:3,sovPosition:3}],notes:'Can also use "repeat forever", "repeat until condition", or "repeat until event X from Y"'},ir={action:"for",description:"Iterate over a collection",category:"control-flow",primaryRole:"patient",hasBody:!0,roles:[{role:"patient",description:"The iteration variable",required:!0,expectedTypes:["reference"],svoPosition:1,sovPosition:2},{role:"source",description:"The collection to iterate over",required:!0,expectedTypes:["selector","reference","expression"],svoPosition:2,sovPosition:1}]},or={action:"while",description:"Loop while condition is true",category:"control-flow",primaryRole:"condition",hasBody:!0,roles:[{role:"condition",description:"The condition to check",required:!0,expectedTypes:["expression"],svoPosition:1,sovPosition:1}]},ar={action:"continue",description:"Continue to next loop iteration",category:"control-flow",primaryRole:"patient",roles:[]},sr={action:"go",description:"Navigate to a URL",category:"navigation",primaryRole:"destination",roles:[{role:"destination",description:"The URL to navigate to",required:!0,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:1}]},lr={action:"transition",description:"Transition an element with animation",category:"dom-visibility",primaryRole:"patient",roles:[{role:"patient",description:"The property to transition (opacity, *background-color, etc.)",required:!0,expectedTypes:["literal"],svoPosition:1,sovPosition:2},{role:"goal",description:"The target value to transition to",required:!0,expectedTypes:["literal","expression"],svoPosition:2,sovPosition:3},{role:"destination",description:"The target element (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:3,sovPosition:1},{role:"duration",description:"Transition duration (over 500ms, for 2 seconds)",required:!1,expectedTypes:["literal"],svoPosition:4,sovPosition:4},{role:"style",description:"Easing function (ease-in, linear, etc.)",required:!1,expectedTypes:["literal"],svoPosition:5,sovPosition:5}]},cr={action:"clone",description:"Clone an element",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The element to clone",required:!0,expectedTypes:["selector","reference"],svoPosition:1,sovPosition:2},{role:"destination",description:"Where to put the clone",required:!1,expectedTypes:["selector","reference"],svoPosition:2,sovPosition:1}]},mr={action:"focus",description:"Focus an element",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The element to focus (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:1,sovPosition:1}]},dr={action:"blur",description:"Remove focus from an element",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"The element to blur (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:1,sovPosition:1}]},pr={action:"call",description:"Call a function",category:"control-flow",primaryRole:"patient",roles:[{role:"patient",description:"The function to call",required:!0,expectedTypes:["expression","reference"],svoPosition:1,sovPosition:1}]},ur={action:"return",description:"Return a value from a function",category:"control-flow",primaryRole:"patient",roles:[{role:"patient",description:"The value to return",required:!1,expectedTypes:["literal","expression","reference"],svoPosition:1,sovPosition:1}]},fr={action:"js",description:"Execute raw JavaScript code",category:"control-flow",primaryRole:"patient",hasBody:!0,roles:[{role:"patient",description:"The JavaScript code to execute",required:!1,expectedTypes:["expression"],svoPosition:1,sovPosition:1}]},gr={action:"async",description:"Execute commands asynchronously",category:"async",primaryRole:"patient",hasBody:!0,roles:[]},yr={action:"tell",description:"Execute commands in context of another element",category:"control-flow",primaryRole:"destination",hasBody:!0,roles:[{role:"destination",description:"The element to tell",required:!0,expectedTypes:["selector","reference"],svoPosition:1,sovPosition:1}]},hr={action:"default",description:"Set a default value for a variable",category:"variable",primaryRole:"destination",roles:[{role:"destination",description:"The variable to set default for",required:!0,expectedTypes:["reference"],svoPosition:1,sovPosition:1},{role:"patient",description:"The default value",required:!0,expectedTypes:["literal","expression"],svoPosition:2,sovPosition:2}]},vr={action:"init",description:"Initialization block that runs once",category:"control-flow",primaryRole:"patient",hasBody:!0,roles:[]},zr={action:"behavior",description:"Define a reusable behavior",category:"control-flow",primaryRole:"patient",hasBody:!0,roles:[{role:"patient",description:"The behavior name (PascalCase identifier)",required:!0,expectedTypes:["literal","reference","expression"],svoPosition:1,sovPosition:1}]},Tr={action:"install",description:"Install a behavior on an element",category:"control-flow",primaryRole:"patient",roles:[{role:"patient",description:"The behavior name to install",required:!0,expectedTypes:["literal","reference","expression"],svoPosition:1,sovPosition:2},{role:"destination",description:"Element to install on (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:2,sovPosition:1}]},Sr={action:"measure",description:"Measure element dimensions (x, y, width, height, etc.)",category:"dom-content",primaryRole:"patient",roles:[{role:"patient",description:"Property to measure (x, y, width, height, top, left, etc.)",required:!1,expectedTypes:["literal","expression"],svoPosition:1,sovPosition:1},{role:"source",description:"Element to measure (defaults to me)",required:!1,expectedTypes:["selector","reference"],default:{type:"reference",value:"me"},svoPosition:2,sovPosition:2}]},kr={action:"swap",description:"Swap DOM content using various strategies (innerHTML, outerHTML, delete, etc.)",category:"dom-content",primaryRole:"destination",roles:[{role:"method",description:"The swap strategy (innerHTML, outerHTML, beforebegin, afterend, delete)",required:!1,expectedTypes:["literal"],svoPosition:1,sovPosition:3},{role:"destination",description:"The element to swap content in/for",required:!0,expectedTypes:["selector","reference"],svoPosition:2,sovPosition:1},{role:"patient",description:"The content to swap in (optional for delete)",required:!1,expectedTypes:["literal","expression","selector"],svoPosition:3,sovPosition:2}]},xr={action:"morph",description:"Morph an element into another using DOM diffing",category:"dom-content",primaryRole:"destination",roles:[{role:"destination",description:"The element to morph",required:!0,expectedTypes:["selector","reference"],svoPosition:1,sovPosition:1},{role:"patient",description:"The target content/element to morph into",required:!0,expectedTypes:["literal","expression","selector"],svoPosition:2,sovPosition:2}]},br={toggle:Nn,add:jn,remove:Mn,put:An,set:In,show:Vn,hide:On,on:Wn,trigger:_n,wait:Kn,fetch:qn,increment:Un,decrement:Bn,append:Fn,prepend:Dn,log:Gn,get:$n,take:Hn,make:Xn,halt:Qn,settle:Zn,throw:Jn,send:Yn,if:er,unless:tr,else:nr,repeat:rr,for:ir,while:or,continue:ar,go:sr,transition:lr,clone:cr,focus:mr,blur:dr,call:pr,return:ur,js:fr,async:gr,tell:yr,default:hr,init:vr,behavior:zr,install:Tr,measure:Sr,swap:kr,morph:xr,compound:{action:"compound",description:"A compound node representing chained statements",primaryRole:"patient",category:"control-flow",hasBody:!0,roles:[]}};function Ot(){return Object.values(br).filter(i=>i.roles.length>0)}function Ze(i,n){let e=n==="SOV"?"sovPosition":"svoPosition";return[...i].sort((r,t)=>{let o=r[e]??99,s=t[e]??99;return o-s})}function Wt(i,n){let e=i.markerOverride?.[n.code],r=n.roleMarkers[i.role];if(e!==void 0)return{primary:e,position:r?.position??"before",isOverride:!0};if(r&&r.primary){let t={primary:r.primary,position:r.position,isOverride:!1};return r.alternatives&&(t.alternatives=r.alternatives),t}return null}var Ce={basePriority:100,generateSimpleVariants:!0,generateAlternatives:!0};function _t(i,n,e=Ce){let r=`${i.action}-${n.code}-generated`,t=e.basePriority??100,o=n.keywords[i.action];if(!o)throw new Error(`No keyword translation for '${i.action}' in ${n.code}`);let s=Pr(i,n,o),a=qt(i,n),l=Nr(i,n,o);return{id:r,language:n.code,command:i.action,priority:t,template:{format:l,tokens:s},extraction:a}}function wr(i,n,e=Ce){if(i.roles.filter(a=>!a.required).length===0)return null;let t=i.roles.filter(a=>a.required),o={...i,roles:t};return{..._t(o,n,e),id:`${i.action}-${n.code}-simple`,priority:(e.basePriority??100)-5,extraction:qt(i,n)}}function Lr(i,n,e=Ce){let r=[];if(r.push(_t(i,n,e)),e.generateSimpleVariants){let t=wr(i,n,e);t&&r.push(t)}return r}function Kt(i,n=Ce){let e=[],r=Ot();for(let t of r){if(!i.keywords[t.action])continue;let o=Lr(t,i,n);e.push(...o)}return e}function Pr(i,n,e){let r=[],t=e.alternatives?{type:"literal",value:e.primary,alternatives:e.alternatives}:{type:"literal",value:e.primary},o=Er(i,n);switch(n.wordOrder){case"SVO":r.push(t),r.push(...o);break;case"SOV":r.push(...o),r.push(t);break;case"VSO":r.push(t),r.push(...o);break;default:r.push(t),r.push(...o)}return r}function Er(i,n){let e=[],r=Ze(i.roles,n.wordOrder);for(let t of r){let o=Cr(t,n);t.required?e.push(...o):e.push({type:"group",optional:!0,tokens:o})}return e}function Cr(i,n){let e=[],r=i.markerOverride?.[n.code],t=n.roleMarkers[i.role],o={type:"role",role:i.role,optional:!i.required,expectedTypes:i.expectedTypes};if(r!==void 0)(t?.position??"before")==="before"?(r&&e.push({type:"literal",value:r}),e.push(o)):(e.push(o),r&&e.push({type:"literal",value:r}));else if(t)if(t.position==="before"){if(t.primary){let s=t.alternatives?{type:"literal",value:t.primary,alternatives:t.alternatives}:{type:"literal",value:t.primary};e.push(s)}e.push(o)}else{e.push(o);let s=t.alternatives?{type:"literal",value:t.primary,alternatives:t.alternatives}:{type:"literal",value:t.primary};e.push(s)}else e.push(o);return e}function Rr(i,n){let e={};for(let r of i.roles){let t=r.markerOverride?.[n.code],o=n.roleMarkers[r.role];t!==void 0?e[r.role]=t?{marker:t}:{}:o&&o.primary?e[r.role]=o.alternatives?{marker:o.primary,markerAlternatives:o.alternatives}:{marker:o.primary}:e[r.role]={}}return e}function qt(i,n){let e=Rr(i,n),r={};for(let t of i.roles){let o=e[t.role]||{};!t.required&&t.default?r[t.role]={...o,default:t.default}:r[t.role]=o}return r}function Nr(i,n,e){let r=[],o=Ze(i.roles,n.wordOrder).map(s=>{let a=Wt(s,n),l="";return a&&a.primary?a.position==="before"?l=`${a.primary} {${s.role}}`:l=`{${s.role}} ${a.primary}`:l=`{${s.role}}`,s.required?l:`[${l}]`});switch(n.wordOrder){case"SVO":case"VSO":r.push(e.primary,...o);break;case"SOV":r.push(...o,e.primary);break;default:r.push(e.primary,...o)}return r.join(" ")}function Ut(){return[{id:"toggle-en-full",language:"en",command:"toggle",priority:100,template:{format:"toggle {patient} on {target}",tokens:[{type:"literal",value:"toggle"},{type:"role",role:"patient"},{type:"group",optional:!0,tokens:[{type:"literal",value:"on",alternatives:["from"]},{type:"role",role:"destination"}]}]},extraction:{patient:{position:1},destination:{marker:"on",markerAlternatives:["from"],default:{type:"reference",value:"me"}}}},{id:"toggle-en-simple",language:"en",command:"toggle",priority:90,template:{format:"toggle {patient}",tokens:[{type:"literal",value:"toggle"},{type:"role",role:"patient"}]},extraction:{patient:{position:1},destination:{default:{type:"reference",value:"me"}}}}]}function Bt(){return[{id:"put-en-into",language:"en",command:"put",priority:100,template:{format:"put {patient} into {destination}",tokens:[{type:"literal",value:"put"},{type:"role",role:"patient"},{type:"literal",value:"into",alternatives:["in","to"]},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"into",markerAlternatives:["in","to"]}}},{id:"put-en-before",language:"en",command:"put",priority:95,template:{format:"put {patient} before {destination}",tokens:[{type:"literal",value:"put"},{type:"role",role:"patient"},{type:"literal",value:"before"},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"before"},manner:{default:{type:"literal",value:"before"}}}},{id:"put-en-after",language:"en",command:"put",priority:95,template:{format:"put {patient} after {destination}",tokens:[{type:"literal",value:"put"},{type:"role",role:"patient"},{type:"literal",value:"after"},{type:"role",role:"destination"}]},extraction:{patient:{position:1},destination:{marker:"after"},manner:{default:{type:"literal",value:"after"}}}}]}function Ft(){return[{id:"event-en-when-source",language:"en",command:"on",priority:115,template:{format:"when {event} from {source} {body}",tokens:[{type:"literal",value:"when"},{type:"role",role:"event"},{type:"literal",value:"from"},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"from"}}},{id:"event-en-when",language:"en",command:"on",priority:105,template:{format:"when {event} {body}",tokens:[{type:"literal",value:"when"},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-en-source",language:"en",command:"on",priority:110,template:{format:"on {event} from {source} {body}",tokens:[{type:"literal",value:"on"},{type:"role",role:"event"},{type:"literal",value:"from"},{type:"role",role:"source"}]},extraction:{event:{position:1},source:{marker:"from"}}},{id:"event-en-standard",language:"en",command:"on",priority:100,template:{format:"on {event} {body}",tokens:[{type:"literal",value:"on"},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-en-upon",language:"en",command:"on",priority:98,template:{format:"upon {event} {body}",tokens:[{type:"literal",value:"upon"},{type:"role",role:"event"}]},extraction:{event:{position:1}}},{id:"event-en-if",language:"en",command:"on",priority:95,template:{format:"if {event} {body}",tokens:[{type:"literal",value:"if"},{type:"role",role:"event"}]},extraction:{event:{position:1}}}]}var jr={id:"fetch-en-with-response-type",language:"en",command:"fetch",priority:90,template:{format:"fetch {source} as {responseType}",tokens:[{type:"literal",value:"fetch"},{type:"role",role:"source",expectedTypes:["literal","expression"]},{type:"literal",value:"as"},{type:"role",role:"responseType",expectedTypes:["literal","expression"]}]},extraction:{source:{position:1},responseType:{marker:"as"}}},Mr={id:"fetch-en-simple",language:"en",command:"fetch",priority:80,template:{format:"fetch {source}",tokens:[{type:"literal",value:"fetch"},{type:"role",role:"source"}]},extraction:{source:{position:1}}},Ar={id:"swap-en-handcrafted",language:"en",command:"swap",priority:110,template:{format:"swap {method} {destination}",tokens:[{type:"literal",value:"swap"},{type:"role",role:"method"},{type:"role",role:"destination"}]},extraction:{method:{position:1},destination:{position:2}}},Ir={id:"repeat-en-until-event-from",language:"en",command:"repeat",priority:120,template:{format:"repeat until event {event} from {source}",tokens:[{type:"literal",value:"repeat"},{type:"literal",value:"until"},{type:"literal",value:"event"},{type:"role",role:"event",expectedTypes:["literal","expression"]},{type:"literal",value:"from"},{type:"role",role:"source",expectedTypes:["selector","reference","expression"]}]},extraction:{event:{marker:"event"},source:{marker:"from"},loopType:{default:{type:"literal",value:"until-event"}}}},Vr={id:"repeat-en-until-event",language:"en",command:"repeat",priority:110,template:{format:"repeat until event {event}",tokens:[{type:"literal",value:"repeat"},{type:"literal",value:"until"},{type:"literal",value:"event"},{type:"role",role:"event",expectedTypes:["literal","expression"]}]},extraction:{event:{marker:"event"},loopType:{default:{type:"literal",value:"until-event"}}}},Or={id:"set-en-possessive",language:"en",command:"set",priority:100,template:{format:"set {destination} to {patient}",tokens:[{type:"literal",value:"set"},{type:"role",role:"destination",expectedTypes:["property-path","selector","reference","expression"]},{type:"literal",value:"to"},{type:"role",role:"patient",expectedTypes:["literal","expression","reference"]}]},extraction:{destination:{position:1},patient:{marker:"to"}}},Wr={id:"for-en-basic",language:"en",command:"for",priority:100,template:{format:"for {patient} in {source}",tokens:[{type:"literal",value:"for"},{type:"role",role:"patient",expectedTypes:["expression","reference"]},{type:"literal",value:"in"},{type:"role",role:"source",expectedTypes:["selector","expression","reference"]}]},extraction:{patient:{position:1},source:{marker:"in"},loopType:{default:{type:"literal",value:"for"}}}},_r={id:"if-en-basic",language:"en",command:"if",priority:100,template:{format:"if {condition}",tokens:[{type:"literal",value:"if"},{type:"role",role:"condition",expectedTypes:["expression","reference","selector"]}]},extraction:{condition:{position:1}}},Kr={id:"unless-en-basic",language:"en",command:"unless",priority:100,template:{format:"unless {condition}",tokens:[{type:"literal",value:"unless"},{type:"role",role:"condition",expectedTypes:["expression","reference","selector"]}]},extraction:{condition:{position:1}}},qr={id:"temporal-en-in",language:"en",command:"wait",priority:95,template:{format:"in {duration}",tokens:[{type:"literal",value:"in"},{type:"role",role:"duration",expectedTypes:["literal","expression"]}]},extraction:{duration:{position:1}}},Ur={id:"temporal-en-after",language:"en",command:"wait",priority:95,template:{format:"after {duration}",tokens:[{type:"literal",value:"after"},{type:"role",role:"duration",expectedTypes:["literal","expression"]}]},extraction:{duration:{position:1}}};function Dt(){let i=[];i.push(...Ut()),i.push(...Bt()),i.push(...Ft()),i.push(jr,Mr,Ar,Ir,Vr,Or,Wr,_r,Kr,qr,Ur);let n=Kt(U);return i.push(...n),i}C("en",Ee,U);Pt("en",Dt());function V(i){return{stem:i,confidence:1}}function j(i,n,e){return e?{stem:i,confidence:n,metadata:e}:{stem:i,confidence:n}}function Br(i){return/[áéíóúüñÁÉÍÓÚÜÑ]/.test(i)}function Fr(i){let n=i.toLowerCase();if(n.endsWith("ar")||n.endsWith("er")||n.endsWith("ir")||n.endsWith("ando")||n.endsWith("iendo")||n.endsWith("ado")||n.endsWith("ido")||n.endsWith("arse")||n.endsWith("erse")||n.endsWith("irse"))return!0;for(let e of i)if(Br(e))return!0;return!1}var Gt=["se","me","te","nos","os"],Dr=[{ending:"ando",stem:"ar",confidence:.88,type:"gerund"},{ending:"ado",stem:"ar",confidence:.88,type:"participle"},{ending:"ada",stem:"ar",confidence:.88,type:"participle"},{ending:"ados",stem:"ar",confidence:.88,type:"participle"},{ending:"adas",stem:"ar",confidence:.88,type:"participle"},{ending:"o",stem:"ar",confidence:.75,type:"present"},{ending:"as",stem:"ar",confidence:.82,type:"present"},{ending:"a",stem:"ar",confidence:.75,type:"present"},{ending:"amos",stem:"ar",confidence:.85,type:"present"},{ending:"\xE1is",stem:"ar",confidence:.85,type:"present"},{ending:"ais",stem:"ar",confidence:.82,type:"present"},{ending:"an",stem:"ar",confidence:.8,type:"present"},{ending:"\xE9",stem:"ar",confidence:.85,type:"past"},{ending:"aste",stem:"ar",confidence:.88,type:"past"},{ending:"\xF3",stem:"ar",confidence:.82,type:"past"},{ending:"amos",stem:"ar",confidence:.85,type:"past"},{ending:"asteis",stem:"ar",confidence:.88,type:"past"},{ending:"aron",stem:"ar",confidence:.88,type:"past"},{ending:"aba",stem:"ar",confidence:.88,type:"past"},{ending:"abas",stem:"ar",confidence:.88,type:"past"},{ending:"\xE1bamos",stem:"ar",confidence:.88,type:"past"},{ending:"abamos",stem:"ar",confidence:.85,type:"past"},{ending:"abais",stem:"ar",confidence:.88,type:"past"},{ending:"aban",stem:"ar",confidence:.88,type:"past"},{ending:"e",stem:"ar",confidence:.72,type:"subjunctive"},{ending:"es",stem:"ar",confidence:.78,type:"subjunctive"},{ending:"emos",stem:"ar",confidence:.82,type:"subjunctive"},{ending:"\xE9is",stem:"ar",confidence:.85,type:"subjunctive"},{ending:"eis",stem:"ar",confidence:.82,type:"subjunctive"},{ending:"en",stem:"ar",confidence:.78,type:"subjunctive"},{ending:"a",stem:"ar",confidence:.75,type:"imperative"},{ending:"ad",stem:"ar",confidence:.85,type:"imperative"},{ending:"ar",stem:"ar",confidence:.92,type:"dictionary"}],Gr=[{ending:"iendo",stem:"er",confidence:.88,type:"gerund"},{ending:"ido",stem:"er",confidence:.85,type:"participle"},{ending:"ida",stem:"er",confidence:.85,type:"participle"},{ending:"idos",stem:"er",confidence:.85,type:"participle"},{ending:"idas",stem:"er",confidence:.85,type:"participle"},{ending:"o",stem:"er",confidence:.72,type:"present"},{ending:"es",stem:"er",confidence:.78,type:"present"},{ending:"e",stem:"er",confidence:.72,type:"present"},{ending:"emos",stem:"er",confidence:.85,type:"present"},{ending:"\xE9is",stem:"er",confidence:.85,type:"present"},{ending:"eis",stem:"er",confidence:.82,type:"present"},{ending:"en",stem:"er",confidence:.78,type:"present"},{ending:"\xED",stem:"er",confidence:.85,type:"past"},{ending:"iste",stem:"er",confidence:.88,type:"past"},{ending:"i\xF3",stem:"er",confidence:.85,type:"past"},{ending:"io",stem:"er",confidence:.82,type:"past"},{ending:"imos",stem:"er",confidence:.85,type:"past"},{ending:"isteis",stem:"er",confidence:.88,type:"past"},{ending:"ieron",stem:"er",confidence:.88,type:"past"},{ending:"\xEDa",stem:"er",confidence:.88,type:"past"},{ending:"ia",stem:"er",confidence:.85,type:"past"},{ending:"\xEDas",stem:"er",confidence:.88,type:"past"},{ending:"ias",stem:"er",confidence:.85,type:"past"},{ending:"\xEDamos",stem:"er",confidence:.88,type:"past"},{ending:"iamos",stem:"er",confidence:.85,type:"past"},{ending:"\xEDais",stem:"er",confidence:.88,type:"past"},{ending:"iais",stem:"er",confidence:.85,type:"past"},{ending:"\xEDan",stem:"er",confidence:.88,type:"past"},{ending:"ian",stem:"er",confidence:.85,type:"past"},{ending:"er",stem:"er",confidence:.92,type:"dictionary"}],$r=[{ending:"iendo",stem:"ir",confidence:.88,type:"gerund"},{ending:"ido",stem:"ir",confidence:.85,type:"participle"},{ending:"ida",stem:"ir",confidence:.85,type:"participle"},{ending:"idos",stem:"ir",confidence:.85,type:"participle"},{ending:"idas",stem:"ir",confidence:.85,type:"participle"},{ending:"o",stem:"ir",confidence:.72,type:"present"},{ending:"es",stem:"ir",confidence:.78,type:"present"},{ending:"e",stem:"ir",confidence:.72,type:"present"},{ending:"imos",stem:"ir",confidence:.85,type:"present"},{ending:"\xEDs",stem:"ir",confidence:.85,type:"present"},{ending:"is",stem:"ir",confidence:.82,type:"present"},{ending:"en",stem:"ir",confidence:.78,type:"present"},{ending:"\xED",stem:"ir",confidence:.85,type:"past"},{ending:"iste",stem:"ir",confidence:.88,type:"past"},{ending:"i\xF3",stem:"ir",confidence:.85,type:"past"},{ending:"io",stem:"ir",confidence:.82,type:"past"},{ending:"imos",stem:"ir",confidence:.85,type:"past"},{ending:"isteis",stem:"ir",confidence:.88,type:"past"},{ending:"ieron",stem:"ir",confidence:.88,type:"past"},{ending:"\xEDa",stem:"ir",confidence:.88,type:"past"},{ending:"ia",stem:"ir",confidence:.85,type:"past"},{ending:"\xEDas",stem:"ir",confidence:.88,type:"past"},{ending:"ias",stem:"ir",confidence:.85,type:"past"},{ending:"\xEDamos",stem:"ir",confidence:.88,type:"past"},{ending:"iamos",stem:"ir",confidence:.85,type:"past"},{ending:"\xEDais",stem:"ir",confidence:.88,type:"past"},{ending:"iais",stem:"ir",confidence:.85,type:"past"},{ending:"\xEDan",stem:"ir",confidence:.88,type:"past"},{ending:"ian",stem:"ir",confidence:.85,type:"past"},{ending:"ir",stem:"ir",confidence:.92,type:"dictionary"}],Hr=[...Dr,...Gr,...$r].sort((i,n)=>n.ending.length-i.ending.length),ue=class{constructor(){this.language="es"}isNormalizable(n){return n.length<3?!1:Fr(n)}normalize(n){let e=n.toLowerCase();if((e.endsWith("ar")||e.endsWith("er")||e.endsWith("ir"))&&!Gt.some(o=>e.endsWith(o+"ar")||e.endsWith(o+"er")||e.endsWith(o+"ir")))return V(n);let r=this.tryReflexiveNormalization(e);if(r)return r;let t=this.tryConjugationNormalization(e);return t||V(n)}tryReflexiveNormalization(n){for(let e of Gt)if(n.endsWith(e)){let r=n.slice(0,-e.length);if(r.endsWith("ar")||r.endsWith("er")||r.endsWith("ir"))return j(r,.88,{removedSuffixes:[e],conjugationType:"reflexive"});let t=this.tryConjugationNormalization(r);if(t&&t.stem!==r)return j(t.stem,t.confidence*.95,{removedSuffixes:[e,...t.metadata?.removedSuffixes||[]],conjugationType:"reflexive"})}return null}tryConjugationNormalization(n){for(let e of Hr)if(n.endsWith(e.ending)){let r=n.slice(0,-e.ending.length);if(r.length<2)continue;let t=r+e.stem;return j(t,e.confidence,{removedSuffixes:[e.ending],conjugationType:e.type})}return null}},Ka=new ue;var Q={code:"es",name:"Spanish",nativeName:"Espa\xF1ol",direction:"ltr",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,defaultVerbForm:"infinitive",verb:{position:"start",subjectDrop:!0},references:{me:"yo",it:"ello",you:"t\xFA",result:"resultado",event:"evento",target:"objetivo",body:"cuerpo"},possessive:{marker:"de",markerPosition:"before-property",usePossessiveAdjectives:!0,specialForms:{me:"mi",it:"su",you:"tu"},keywords:{mi:"me",tu:"you",su:"it"}},roleMarkers:{destination:{primary:"en",alternatives:["sobre","a"],position:"before"},source:{primary:"de",alternatives:["desde"],position:"before"},patient:{primary:"",position:"before"},style:{primary:"con",position:"before"}},keywords:{toggle:{primary:"alternar",alternatives:["cambiar","conmutar"],normalized:"toggle"},add:{primary:"agregar",alternatives:["a\xF1adir"],normalized:"add"},remove:{primary:"quitar",alternatives:["eliminar","remover","sacar"],normalized:"remove"},put:{primary:"poner",alternatives:["colocar"],normalized:"put"},append:{primary:"a\xF1adir",normalized:"append"},prepend:{primary:"anteponer",normalized:"prepend"},take:{primary:"tomar",normalized:"take"},make:{primary:"hacer",alternatives:["crear"],normalized:"make"},clone:{primary:"clonar",alternatives:["copiar"],normalized:"clone"},swap:{primary:"intercambiar",alternatives:["cambiar"],normalized:"swap"},morph:{primary:"transformar",alternatives:["convertir"],normalized:"morph"},set:{primary:"establecer",alternatives:["fijar","definir"],normalized:"set"},get:{primary:"obtener",alternatives:["conseguir"],normalized:"get"},increment:{primary:"incrementar",alternatives:["aumentar"],normalized:"increment"},decrement:{primary:"decrementar",alternatives:["disminuir"],normalized:"decrement"},log:{primary:"registrar",alternatives:["imprimir"],normalized:"log"},show:{primary:"mostrar",alternatives:["ense\xF1ar"],normalized:"show"},hide:{primary:"ocultar",alternatives:["esconder"],normalized:"hide"},transition:{primary:"transici\xF3n",alternatives:["animar"],normalized:"transition"},on:{primary:"en",alternatives:["cuando","al"],normalized:"on"},trigger:{primary:"disparar",alternatives:["activar"],normalized:"trigger"},send:{primary:"enviar",normalized:"send"},focus:{primary:"enfocar",normalized:"focus"},blur:{primary:"desenfocar",normalized:"blur"},go:{primary:"ir",alternatives:["navegar"],normalized:"go"},wait:{primary:"esperar",normalized:"wait"},fetch:{primary:"buscar",alternatives:["obtener"],normalized:"fetch"},settle:{primary:"estabilizar",normalized:"settle"},if:{primary:"si",normalized:"if"},when:{primary:"cuando",normalized:"when"},where:{primary:"donde",normalized:"where"},else:{primary:"sino",alternatives:["de lo contrario"],normalized:"else"},repeat:{primary:"repetir",normalized:"repeat"},for:{primary:"para",normalized:"for"},while:{primary:"mientras",normalized:"while"},continue:{primary:"continuar",normalized:"continue"},halt:{primary:"detener",alternatives:["parar"],normalized:"halt"},throw:{primary:"lanzar",alternatives:["arrojar"],normalized:"throw"},call:{primary:"llamar",normalized:"call"},return:{primary:"retornar",alternatives:["devolver"],normalized:"return"},then:{primary:"entonces",alternatives:["luego","despu\xE9s"],normalized:"then"},and:{primary:"y",alternatives:["adem\xE1s","tambi\xE9n"],normalized:"and"},end:{primary:"fin",alternatives:["final","terminar"],normalized:"end"},js:{primary:"js",normalized:"js"},async:{primary:"as\xEDncrono",normalized:"async"},tell:{primary:"decir",normalized:"tell"},default:{primary:"predeterminar",alternatives:["por defecto"],normalized:"default"},init:{primary:"iniciar",alternatives:["inicializar"],normalized:"init"},behavior:{primary:"comportamiento",normalized:"behavior"},install:{primary:"instalar",normalized:"install"},measure:{primary:"medir",normalized:"measure"},into:{primary:"en",alternatives:["dentro de"],normalized:"into"},before:{primary:"antes",normalized:"before"},after:{primary:"despu\xE9s",normalized:"after"},until:{primary:"hasta",normalized:"until"},event:{primary:"evento",normalized:"event"},from:{primary:"de",alternatives:["desde"],normalized:"from"}}};var{isLetter:$t,isIdentifierChar:Xr}=M(/[a-zA-ZáéíóúüñÁÉÍÓÚÜÑ]/),Qr=[{pattern:"milisegundos",suffix:"ms",length:12,caseInsensitive:!0},{pattern:"milisegundo",suffix:"ms",length:11,caseInsensitive:!0},{pattern:"segundos",suffix:"s",length:8,caseInsensitive:!0},{pattern:"segundo",suffix:"s",length:7,caseInsensitive:!0},{pattern:"minutos",suffix:"m",length:7,caseInsensitive:!0},{pattern:"minuto",suffix:"m",length:6,caseInsensitive:!0},{pattern:"horas",suffix:"h",length:5,caseInsensitive:!0},{pattern:"hora",suffix:"h",length:4,caseInsensitive:!0}],Ht=new Set(["en","a","de","desde","hasta","con","sin","por","para","sobre","entre","antes","despu\xE9s","despues","dentro","fuera","al","del"]),Zr=[{native:"verdadero",normalized:"true"},{native:"falso",normalized:"false"},{native:"nulo",normalized:"null"},{native:"indefinido",normalized:"undefined"},{native:"primero",normalized:"first"},{native:"primera",normalized:"first"},{native:"\xFAltimo",normalized:"last"},{native:"ultima",normalized:"last"},{native:"siguiente",normalized:"next"},{native:"anterior",normalized:"previous"},{native:"cercano",normalized:"closest"},{native:"padre",normalized:"parent"},{native:"clic",normalized:"click"},{native:"click",normalized:"click"},{native:"hacer clic",normalized:"click"},{native:"entrada",normalized:"input"},{native:"cambio",normalized:"change"},{native:"env\xEDo",normalized:"submit"},{native:"envio",normalized:"submit"},{native:"tecla abajo",normalized:"keydown"},{native:"tecla arriba",normalized:"keyup"},{native:"rat\xF3n encima",normalized:"mouseover"},{native:"raton encima",normalized:"mouseover"},{native:"rat\xF3n fuera",normalized:"mouseout"},{native:"raton fuera",normalized:"mouseout"},{native:"enfoque",normalized:"focus"},{native:"desenfoque",normalized:"blur"},{native:"carga",normalized:"load"},{native:"desplazamiento",normalized:"scroll"},{native:"yo",normalized:"me"},{native:"m\xED",normalized:"me"},{native:"mi",normalized:"me"},{native:"ello",normalized:"it"},{native:"resultado",normalized:"result"},{native:"objetivo",normalized:"target"},{native:"destino",normalized:"target"},{native:"segundo",normalized:"s"},{native:"segundos",normalized:"s"},{native:"milisegundo",normalized:"ms"},{native:"milisegundos",normalized:"ms"},{native:"minuto",normalized:"m"},{native:"minutos",normalized:"m"},{native:"hora",normalized:"h"},{native:"horas",normalized:"h"},{native:"de lo contrario",normalized:"else"},{native:"hasta que",normalized:"until"},{native:"antes de",normalized:"before"},{native:"despu\xE9s de",normalized:"after"},{native:"despues de",normalized:"after"},{native:"dentro de",normalized:"into"},{native:"fuera de",normalized:"out"},{native:"asincrono",normalized:"async"},{native:"despues",normalized:"after"},{native:"a\xF1adir",normalized:"add"},{native:"toggle",normalized:"toggle"},{native:"borrar",normalized:"remove"},{native:"pon",normalized:"put"},{native:"crear",normalized:"make"},{native:"y",normalized:"and"},{native:"o",normalized:"or"},{native:"no",normalized:"not"},{native:"es",normalized:"is"},{native:"existe",normalized:"exists"},{native:"vac\xEDo",normalized:"empty"},{native:"vacio",normalized:"empty"}],Je=class extends w{constructor(){super();this.language="es";this.direction="ltr";this.initializeKeywordsFromProfile(Q,Zr),this.normalizer=new ue}tokenize(e){let r=[],t=0;for(;t<e.length;){if(k(e[t])){t++;continue}if(L(e[t])){let l=this.tryEventModifier(e,t);if(l){r.push(l),t=l.position.end;continue}let c=this.trySelector(e,t);if(c){r.push(c),t=c.position.end;continue}}if(P(e[t])){let l=this.tryString(e,t);if(l){r.push(l),t=l.position.end;continue}}if(E(e,t)){let l=this.tryUrl(e,t);if(l){r.push(l),t=l.position.end;continue}}if(T(e[t])||e[t]==="-"&&t+1<e.length&&T(e[t+1])){let l=this.extractSpanishNumber(e,t);if(l){r.push(l),t=l.position.end;continue}}let o=this.tryVariableRef(e,t);if(o){r.push(o),t=o.position.end;continue}let s=this.tryMultiWordPhrase(e,t);if(s){r.push(s),t=s.position.end;continue}if($t(e[t])){let l=this.extractSpanishWord(e,t);if(l){r.push(l),t=l.position.end;continue}}let a=this.tryOperator(e,t);if(a){r.push(a),t=a.position.end;continue}t++}return new b(r,"es")}classifyToken(e){let r=e.toLowerCase();return Ht.has(r)?"particle":this.isKeyword(r)?"keyword":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":["==","!=","<=",">=","<",">","&&","||","!"].includes(e)?"operator":"identifier"}tryMultiWordPhrase(e,r){for(let t of this.profileKeywords){if(!t.native.includes(" "))continue;let o=t.native;if(e.slice(r,r+o.length).toLowerCase()===o.toLowerCase()){let a=r+o.length;if(a>=e.length||k(e[a])||!$t(e[a]))return u(e.slice(r,r+o.length),"keyword",p(r,a),t.normalized)}}return null}extractSpanishWord(e,r){let t=r,o="";for(;t<e.length&&Xr(e[t]);)o+=e[t++];if(!o)return null;let s=o.toLowerCase();if(Ht.has(s))return u(o,"particle",p(r,t));let a=this.lookupKeyword(s);if(a)return u(o,"keyword",p(r,t),a.normalized);let l=this.tryMorphKeywordMatch(s,r,t);return l||u(o,"identifier",p(r,t))}extractSpanishNumber(e,r){return this.tryNumberWithTimeUnits(e,r,Qr,{allowSign:!0,skipWhitespace:!0})}},Re=new Je;C("es",Re,Q);var Z={code:"pt",name:"Portuguese",nativeName:"Portugu\xEAs",direction:"ltr",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,verb:{position:"start",subjectDrop:!0},references:{me:"eu",it:"ele",you:"voc\xEA",result:"resultado",event:"evento",target:"alvo",body:"corpo"},possessive:{marker:"de",markerPosition:"before-property",usePossessiveAdjectives:!0,specialForms:{me:"meu",it:"seu",you:"teu"},keywords:{meu:"me",minha:"me",teu:"you",tua:"you",seu:"it",sua:"it"}},roleMarkers:{destination:{primary:"em",alternatives:["para","a"],position:"before"},source:{primary:"de",alternatives:["desde"],position:"before"},patient:{primary:"",position:"before"},style:{primary:"com",position:"before"}},keywords:{toggle:{primary:"alternar",alternatives:["trocar"],normalized:"toggle"},add:{primary:"adicionar",alternatives:["acrescentar"],normalized:"add"},remove:{primary:"remover",alternatives:["eliminar","apagar"],normalized:"remove"},put:{primary:"colocar",alternatives:["p\xF4r","por"],normalized:"put"},append:{primary:"anexar",normalized:"append"},prepend:{primary:"preceder",normalized:"prepend"},take:{primary:"pegar",normalized:"take"},make:{primary:"fazer",alternatives:["criar"],normalized:"make"},clone:{primary:"clonar",alternatives:["copiar"],normalized:"clone"},swap:{primary:"trocar",alternatives:["substituir"],normalized:"swap"},morph:{primary:"transformar",alternatives:["converter"],normalized:"morph"},set:{primary:"definir",alternatives:["configurar"],normalized:"set"},get:{primary:"obter",normalized:"get"},increment:{primary:"incrementar",alternatives:["aumentar"],normalized:"increment"},decrement:{primary:"decrementar",alternatives:["diminuir"],normalized:"decrement"},log:{primary:"registrar",alternatives:["imprimir"],normalized:"log"},show:{primary:"mostrar",alternatives:["exibir"],normalized:"show"},hide:{primary:"ocultar",alternatives:["esconder"],normalized:"hide"},transition:{primary:"transi\xE7\xE3o",alternatives:["animar"],normalized:"transition"},on:{primary:"em",alternatives:["quando","ao"],normalized:"on"},trigger:{primary:"disparar",alternatives:["ativar"],normalized:"trigger"},send:{primary:"enviar",normalized:"send"},focus:{primary:"focar",normalized:"focus"},blur:{primary:"desfocar",normalized:"blur"},go:{primary:"ir",alternatives:["navegar"],normalized:"go"},wait:{primary:"esperar",alternatives:["aguardar"],normalized:"wait"},fetch:{primary:"buscar",normalized:"fetch"},settle:{primary:"estabilizar",normalized:"settle"},if:{primary:"se",normalized:"if"},when:{primary:"quando",normalized:"when"},where:{primary:"onde",normalized:"where"},else:{primary:"sen\xE3o",normalized:"else"},repeat:{primary:"repetir",normalized:"repeat"},for:{primary:"para",normalized:"for"},while:{primary:"enquanto",normalized:"while"},continue:{primary:"continuar",normalized:"continue"},halt:{primary:"parar",normalized:"halt"},throw:{primary:"lan\xE7ar",normalized:"throw"},call:{primary:"chamar",normalized:"call"},return:{primary:"retornar",alternatives:["devolver"],normalized:"return"},then:{primary:"ent\xE3o",alternatives:["depois","logo"],normalized:"then"},and:{primary:"e",alternatives:["tamb\xE9m","al\xE9m disso"],normalized:"and"},end:{primary:"fim",alternatives:["final","t\xE9rmino"],normalized:"end"},js:{primary:"js",normalized:"js"},async:{primary:"ass\xEDncrono",normalized:"async"},tell:{primary:"dizer",normalized:"tell"},default:{primary:"padr\xE3o",normalized:"default"},init:{primary:"iniciar",alternatives:["inicializar"],normalized:"init"},behavior:{primary:"comportamento",normalized:"behavior"},install:{primary:"instalar",normalized:"install"},measure:{primary:"medir",normalized:"measure"},into:{primary:"em",alternatives:["dentro de"],normalized:"into"},before:{primary:"antes",normalized:"before"},after:{primary:"depois",normalized:"after"},until:{primary:"at\xE9",normalized:"until"},event:{primary:"evento",normalized:"event"},from:{primary:"de",alternatives:["desde"],normalized:"from"}}};var{isLetter:Jr,isIdentifierChar:Yr}=M(/[a-zA-ZáàâãéêíóôõúüçÁÀÂÃÉÊÍÓÔÕÚÜÇ]/),Xt=new Set(["em","a","de","desde","at\xE9","ate","com","sem","por","para","sobre","entre","antes","depois","dentro","fora","ao","do","no","na"]),ei=[{native:"verdadeiro",normalized:"true"},{native:"falso",normalized:"false"},{native:"nulo",normalized:"null"},{native:"indefinido",normalized:"undefined"},{native:"primeiro",normalized:"first"},{native:"primeira",normalized:"first"},{native:"\xFAltimo",normalized:"last"},{native:"ultima",normalized:"last"},{native:"pr\xF3ximo",normalized:"next"},{native:"proximo",normalized:"next"},{native:"anterior",normalized:"previous"},{native:"mais pr\xF3ximo",normalized:"closest"},{native:"mais proximo",normalized:"closest"},{native:"pai",normalized:"parent"},{native:"clique",normalized:"click"},{native:"click",normalized:"click"},{native:"entrada",normalized:"input"},{native:"mudan\xE7a",normalized:"change"},{native:"mudanca",normalized:"change"},{native:"envio",normalized:"submit"},{native:"tecla baixo",normalized:"keydown"},{native:"tecla cima",normalized:"keyup"},{native:"mouse sobre",normalized:"mouseover"},{native:"mouse fora",normalized:"mouseout"},{native:"foco",normalized:"focus"},{native:"desfoque",normalized:"blur"},{native:"carregar",normalized:"load"},{native:"rolagem",normalized:"scroll"},{native:"meu",normalized:"my"},{native:"minha",normalized:"my"},{native:"isso",normalized:"it"},{native:"segundo",normalized:"s"},{native:"segundos",normalized:"s"},{native:"milissegundo",normalized:"ms"},{native:"milissegundos",normalized:"ms"},{native:"minuto",normalized:"m"},{native:"minutos",normalized:"m"},{native:"hora",normalized:"h"},{native:"horas",normalized:"h"},{native:"senao",normalized:"else"},{native:"transicao",normalized:"transition"},{native:"ate",normalized:"until"},{native:"entao",normalized:"then"},{native:"lancar",normalized:"throw"},{native:"assincrono",normalized:"async"},{native:"padrao",normalized:"default"},{native:"at\xE9 que",normalized:"until"},{native:"dentro de",normalized:"into"}],ti=[{pattern:"milissegundos",suffix:"ms",length:13,caseInsensitive:!0},{pattern:"milissegundo",suffix:"ms",length:12,caseInsensitive:!0},{pattern:"segundos",suffix:"s",length:8,caseInsensitive:!0},{pattern:"segundo",suffix:"s",length:7,caseInsensitive:!0},{pattern:"minutos",suffix:"m",length:7,caseInsensitive:!0},{pattern:"minuto",suffix:"m",length:6,caseInsensitive:!0},{pattern:"horas",suffix:"h",length:5,caseInsensitive:!0},{pattern:"hora",suffix:"h",length:4,caseInsensitive:!0}],Ye=class extends w{constructor(){super();this.language="pt";this.direction="ltr";this.initializeKeywordsFromProfile(Z,ei)}tokenize(e){let r=[],t=0;for(;t<e.length;){if(k(e[t])){t++;continue}if(L(e[t])){let a=this.tryEventModifier(e,t);if(a){r.push(a),t=a.position.end;continue}let l=this.trySelector(e,t);if(l){r.push(l),t=l.position.end;continue}}if(P(e[t])){let a=this.tryString(e,t);if(a){r.push(a),t=a.position.end;continue}}if(E(e,t)){let a=this.tryUrl(e,t);if(a){r.push(a),t=a.position.end;continue}}if(T(e[t])||e[t]==="-"&&t+1<e.length&&T(e[t+1])){let a=this.extractNumber(e,t);if(a){r.push(a),t=a.position.end;continue}}let o=this.tryVariableRef(e,t);if(o){r.push(o),t=o.position.end;continue}if(Jr(e[t])){let a=this.extractWord(e,t);if(a){r.push(a),t=a.position.end;continue}}let s=this.tryOperator(e,t);if(s){r.push(s),t=s.position.end;continue}t++}return new b(r,"pt")}classifyToken(e){let r=e.toLowerCase();return Xt.has(r)?"particle":this.isKeyword(r)?"keyword":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":"identifier"}extractWord(e,r){let t=r,o="";for(;t<e.length&&Yr(e[t]);)o+=e[t++];if(!o)return null;let s=o.toLowerCase(),a=this.lookupKeyword(s);return a?u(o,"keyword",p(r,t),a.normalized):Xt.has(s)?u(o,"particle",p(r,t)):u(o,"identifier",p(r,t))}extractNumber(e,r){return this.tryNumberWithTimeUnits(e,r,ti,{allowSign:!0,skipWhitespace:!0})}},Ne=new Ye;C("pt",Ne,Z);var J={code:"fr",name:"French",nativeName:"Fran\xE7ais",direction:"ltr",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,defaultVerbForm:"infinitive",verb:{position:"start",subjectDrop:!1},references:{me:"moi",it:"il",you:"toi",result:"r\xE9sultat",event:"\xE9v\xE9nement",target:"cible",body:"corps"},possessive:{marker:"de",markerPosition:"before-property",usePossessiveAdjectives:!0,specialForms:{me:"ma",it:"sa",you:"ta"},keywords:{mon:"me",ma:"me",mes:"me",ton:"you",ta:"you",tes:"you",son:"it",sa:"it",ses:"it"}},roleMarkers:{destination:{primary:"sur",alternatives:["\xE0","dans"],position:"before"},source:{primary:"de",alternatives:["depuis"],position:"before"},patient:{primary:"",position:"before"},style:{primary:"avec",position:"before"}},keywords:{toggle:{primary:"basculer",alternatives:["permuter","alterner"],normalized:"toggle"},add:{primary:"ajouter",normalized:"add"},remove:{primary:"supprimer",alternatives:["enlever","retirer"],normalized:"remove"},put:{primary:"mettre",alternatives:["placer"],normalized:"put"},append:{primary:"annexer",normalized:"append"},prepend:{primary:"pr\xE9fixer",normalized:"prepend"},take:{primary:"prendre",normalized:"take"},make:{primary:"faire",alternatives:["cr\xE9er"],normalized:"make"},clone:{primary:"cloner",alternatives:["copier"],normalized:"clone"},swap:{primary:"\xE9changer",alternatives:["permuter"],normalized:"swap"},morph:{primary:"transformer",alternatives:["m\xE9tamorphoser"],normalized:"morph"},set:{primary:"d\xE9finir",alternatives:["\xE9tablir"],normalized:"set"},get:{primary:"obtenir",normalized:"get"},increment:{primary:"incr\xE9menter",alternatives:["augmenter"],normalized:"increment"},decrement:{primary:"d\xE9cr\xE9menter",alternatives:["diminuer"],normalized:"decrement"},log:{primary:"enregistrer",alternatives:["afficher"],normalized:"log"},show:{primary:"montrer",alternatives:["afficher"],normalized:"show"},hide:{primary:"cacher",alternatives:["masquer"],normalized:"hide"},transition:{primary:"transition",alternatives:["animer"],normalized:"transition"},on:{primary:"sur",alternatives:["quand","lors"],normalized:"on"},trigger:{primary:"d\xE9clencher",normalized:"trigger"},send:{primary:"envoyer",normalized:"send"},focus:{primary:"focaliser",alternatives:["concentrer"],normalized:"focus"},blur:{primary:"d\xE9focaliser",normalized:"blur"},go:{primary:"aller",alternatives:["naviguer"],normalized:"go"},wait:{primary:"attendre",normalized:"wait"},fetch:{primary:"chercher",alternatives:["r\xE9cup\xE9rer"],normalized:"fetch"},settle:{primary:"stabiliser",normalized:"settle"},if:{primary:"si",normalized:"if"},when:{primary:"quand",normalized:"when"},where:{primary:"o\xF9",normalized:"where"},else:{primary:"sinon",normalized:"else"},repeat:{primary:"r\xE9p\xE9ter",normalized:"repeat"},for:{primary:"pour",normalized:"for"},while:{primary:"pendant",normalized:"while"},continue:{primary:"continuer",normalized:"continue"},halt:{primary:"arr\xEAter",alternatives:["stopper"],normalized:"halt"},throw:{primary:"lancer",normalized:"throw"},call:{primary:"appeler",normalized:"call"},return:{primary:"retourner",alternatives:["renvoyer"],normalized:"return"},then:{primary:"puis",alternatives:["ensuite","alors"],normalized:"then"},and:{primary:"et",alternatives:["aussi","\xE9galement"],normalized:"and"},end:{primary:"fin",alternatives:["terminer","finir"],normalized:"end"},js:{primary:"js",normalized:"js"},async:{primary:"asynchrone",normalized:"async"},tell:{primary:"dire",normalized:"tell"},default:{primary:"d\xE9faut",normalized:"default"},init:{primary:"initialiser",normalized:"init"},behavior:{primary:"comportement",normalized:"behavior"},install:{primary:"installer",normalized:"install"},measure:{primary:"mesurer",normalized:"measure"},into:{primary:"dans",normalized:"into"},before:{primary:"avant",normalized:"before"},after:{primary:"apr\xE8s",normalized:"after"},until:{primary:"jusqu'\xE0",alternatives:["jusque"],normalized:"until"},event:{primary:"\xE9v\xE9nement",normalized:"event"},from:{primary:"de",alternatives:["depuis"],normalized:"from"}},eventHandler:{keyword:{primary:"sur",alternatives:["lors"]},sourceMarker:{primary:"de",alternatives:["depuis"],position:"before"},conditionalKeyword:{primary:"quand",alternatives:["lorsque"]}}};var{isLetter:ni,isIdentifierChar:ri}=M(/[a-zA-ZàâäéèêëîïôùûüçœæÀÂÄÉÈÊËÎÏÔÙÛÜÇŒÆ]/),Qt=new Set(["\xE0","a","de","du","des","dans","sur","sous","avec","sans","par","pour","entre","avant","apr\xE8s","apres","depuis","vers","chez","contre","au","aux"]),ii=[{native:"vrai",normalized:"true"},{native:"faux",normalized:"false"},{native:"nul",normalized:"null"},{native:"ind\xE9fini",normalized:"undefined"},{native:"indefini",normalized:"undefined"},{native:"premier",normalized:"first"},{native:"premi\xE8re",normalized:"first"},{native:"premiere",normalized:"first"},{native:"dernier",normalized:"last"},{native:"derni\xE8re",normalized:"last"},{native:"derniere",normalized:"last"},{native:"suivant",normalized:"next"},{native:"pr\xE9c\xE9dent",normalized:"previous"},{native:"precedent",normalized:"previous"},{native:"plus proche",normalized:"closest"},{native:"parent",normalized:"parent"},{native:"clic",normalized:"click"},{native:"click",normalized:"click"},{native:"entr\xE9e",normalized:"input"},{native:"entree",normalized:"input"},{native:"changement",normalized:"change"},{native:"soumission",normalized:"submit"},{native:"touche bas",normalized:"keydown"},{native:"touche haut",normalized:"keyup"},{native:"souris dessus",normalized:"mouseover"},{native:"souris dehors",normalized:"mouseout"},{native:"focus",normalized:"focus"},{native:"flou",normalized:"blur"},{native:"chargement",normalized:"load"},{native:"d\xE9filement",normalized:"scroll"},{native:"defilement",normalized:"scroll"},{native:"je",normalized:"me"},{native:"mon",normalized:"my"},{native:"ma",normalized:"my"},{native:"mes",normalized:"my"},{native:"\xE7a",normalized:"it"},{native:"ca",normalized:"it"},{native:"resultat",normalized:"result"},{native:"evenement",normalized:"event"},{native:"seconde",normalized:"s"},{native:"secondes",normalized:"s"},{native:"milliseconde",normalized:"ms"},{native:"millisecondes",normalized:"ms"},{native:"minute",normalized:"m"},{native:"minutes",normalized:"m"},{native:"heure",normalized:"h"},{native:"heures",normalized:"h"},{native:"prefixer",normalized:"prepend"},{native:"creer",normalized:"make"},{native:"definir",normalized:"set"},{native:"etablir",normalized:"set"},{native:"incrementer",normalized:"increment"},{native:"decrementer",normalized:"decrement"},{native:"declencher",normalized:"trigger"},{native:"defocaliser",normalized:"blur"},{native:"recuperer",normalized:"fetch"},{native:"repeter",normalized:"repeat"},{native:"arreter",normalized:"halt"},{native:"defaut",normalized:"default"},{native:"jusqua",normalized:"until"},{native:"apres",normalized:"after"},{native:"journaliser",normalized:"log"},{native:"transmuter",normalized:"morph"},{native:"tant que",normalized:"while"}],oi=[{pattern:"millisecondes",suffix:"ms",length:13,caseInsensitive:!0},{pattern:"milliseconde",suffix:"ms",length:12,caseInsensitive:!0},{pattern:"secondes",suffix:"s",length:8,caseInsensitive:!0},{pattern:"seconde",suffix:"s",length:7,caseInsensitive:!0},{pattern:"minutes",suffix:"m",length:7,caseInsensitive:!0},{pattern:"minute",suffix:"m",length:6,caseInsensitive:!0},{pattern:"heures",suffix:"h",length:6,caseInsensitive:!0},{pattern:"heure",suffix:"h",length:5,caseInsensitive:!0}],et=class extends w{constructor(){super();this.language="fr";this.direction="ltr";this.initializeKeywordsFromProfile(J,ii)}tokenize(e){let r=[],t=0;for(;t<e.length;){if(k(e[t])){t++;continue}if(L(e[t])){let a=this.tryEventModifier(e,t);if(a){r.push(a),t=a.position.end;continue}let l=this.trySelector(e,t);if(l){r.push(l),t=l.position.end;continue}}if(P(e[t])){let a=this.tryString(e,t);if(a){r.push(a),t=a.position.end;continue}}if(E(e,t)){let a=this.tryUrl(e,t);if(a){r.push(a),t=a.position.end;continue}}if(T(e[t])||e[t]==="-"&&t+1<e.length&&T(e[t+1])){let a=this.extractNumber(e,t);if(a){r.push(a),t=a.position.end;continue}}let o=this.tryVariableRef(e,t);if(o){r.push(o),t=o.position.end;continue}if(ni(e[t])){let a=this.extractWord(e,t);if(a){r.push(a),t=a.position.end;continue}}let s=this.tryOperator(e,t);if(s){r.push(s),t=s.position.end;continue}t++}return new b(r,"fr")}classifyToken(e){let r=e.toLowerCase();return Qt.has(r)?"particle":this.isKeyword(r)?"keyword":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":"identifier"}extractWord(e,r){let t=r,o="";for(;t<e.length&&ri(e[t]);)o+=e[t++];if(!o)return null;let s=o.toLowerCase(),a=this.lookupKeyword(s);return a?u(o,"keyword",p(r,t),a.normalized):Qt.has(s)?u(o,"particle",p(r,t)):u(o,"identifier",p(r,t))}extractNumber(e,r){return this.tryNumberWithTimeUnits(e,r,oi,{allowSign:!0,skipWhitespace:!0})}},je=new et;C("fr",je,J);var Y={code:"de",name:"German",nativeName:"Deutsch",direction:"ltr",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,defaultVerbForm:"infinitive",verb:{position:"start",subjectDrop:!1},references:{me:"ich",it:"es",you:"du",result:"Ergebnis",event:"Ereignis",target:"Ziel",body:"K\xF6rper"},possessive:{marker:"",markerPosition:"before-property",usePossessiveAdjectives:!0,specialForms:{me:"mein",it:"sein",you:"dein"},keywords:{mein:"me",meine:"me",meinen:"me",dein:"you",deine:"you",deinen:"you",sein:"it",seine:"it",seinen:"it"}},roleMarkers:{destination:{primary:"auf",alternatives:["zu","in"],position:"before"},source:{primary:"von",alternatives:["aus"],position:"before"},patient:{primary:"",position:"before"},style:{primary:"mit",position:"before"}},keywords:{toggle:{primary:"umschalten",alternatives:["wechseln"],normalized:"toggle"},add:{primary:"hinzuf\xFCgen",normalized:"add"},remove:{primary:"entfernen",alternatives:["l\xF6schen"],normalized:"remove"},put:{primary:"setzen",alternatives:["stellen","platzieren"],normalized:"put"},append:{primary:"anh\xE4ngen",normalized:"append"},prepend:{primary:"voranstellen",normalized:"prepend"},take:{primary:"nehmen",normalized:"take"},make:{primary:"machen",alternatives:["erstellen","erzeugen"],normalized:"make"},clone:{primary:"klonen",alternatives:["kopieren"],normalized:"clone"},swap:{primary:"austauschen",alternatives:["tauschen","wechseln"],normalized:"swap"},morph:{primary:"verwandeln",alternatives:["transformieren"],normalized:"morph"},set:{primary:"festlegen",alternatives:["definieren"],normalized:"set"},get:{primary:"holen",alternatives:["bekommen"],normalized:"get"},increment:{primary:"erh\xF6hen",normalized:"increment"},decrement:{primary:"verringern",alternatives:["vermindern"],normalized:"decrement"},log:{primary:"protokollieren",alternatives:["ausgeben"],normalized:"log"},show:{primary:"zeigen",alternatives:["anzeigen"],normalized:"show"},hide:{primary:"verbergen",alternatives:["verstecken"],normalized:"hide"},transition:{primary:"\xFCbergang",alternatives:["animieren"],normalized:"transition"},on:{primary:"bei",alternatives:["wenn","auf"],normalized:"on"},trigger:{primary:"ausl\xF6sen",normalized:"trigger"},send:{primary:"senden",alternatives:["schicken"],normalized:"send"},focus:{primary:"fokussieren",normalized:"focus"},blur:{primary:"defokussieren",alternatives:["entfokussieren"],normalized:"blur"},go:{primary:"gehen",alternatives:["navigieren"],normalized:"go"},wait:{primary:"warten",normalized:"wait"},fetch:{primary:"abrufen",alternatives:["laden"],normalized:"fetch"},settle:{primary:"stabilisieren",normalized:"settle"},if:{primary:"wenn",alternatives:["falls"],normalized:"if"},when:{primary:"wenn",normalized:"when"},where:{primary:"wo",normalized:"where"},else:{primary:"sonst",alternatives:["ansonsten"],normalized:"else"},repeat:{primary:"wiederholen",normalized:"repeat"},for:{primary:"f\xFCr",normalized:"for"},while:{primary:"solange",alternatives:["w\xE4hrend"],normalized:"while"},continue:{primary:"fortfahren",alternatives:["weiter"],normalized:"continue"},halt:{primary:"anhalten",alternatives:["stoppen"],normalized:"halt"},throw:{primary:"werfen",normalized:"throw"},call:{primary:"aufrufen",normalized:"call"},return:{primary:"zur\xFCckgeben",normalized:"return"},then:{primary:"dann",alternatives:["danach","anschlie\xDFend"],normalized:"then"},and:{primary:"und",alternatives:["sowie","auch"],normalized:"and"},end:{primary:"ende",alternatives:["beenden","fertig"],normalized:"end"},js:{primary:"js",alternatives:["javascript"],normalized:"js"},async:{primary:"asynchron",normalized:"async"},tell:{primary:"sagen",normalized:"tell"},default:{primary:"standard",normalized:"default"},init:{primary:"initialisieren",normalized:"init"},behavior:{primary:"verhalten",normalized:"behavior"},install:{primary:"installieren",normalized:"install"},measure:{primary:"messen",normalized:"measure"},into:{primary:"hinein",normalized:"into"},before:{primary:"vor",normalized:"before"},after:{primary:"nach",normalized:"after"},until:{primary:"bis",normalized:"until"},event:{primary:"Ereignis",alternatives:["Event"],normalized:"event"},from:{primary:"von",alternatives:["aus"],normalized:"from"}},eventHandler:{keyword:{primary:"bei",alternatives:["auf"]},sourceMarker:{primary:"von",alternatives:["aus"],position:"before"},conditionalKeyword:{primary:"wenn",alternatives:["falls"]}}};var{isLetter:ai,isIdentifierChar:si}=M(/[a-zA-ZäöüÄÖÜß]/),Zt=new Set(["an","auf","aus","bei","durch","f\xFCr","fur","gegen","in","mit","nach","ohne","seit","\xFCber","uber","um","unter","von","vor","zu","zwischen","bis","gegen\xFCber","gegenuber","w\xE4hrend","wahrend","wegen","trotz","statt","innerhalb","au\xDFerhalb","ausserhalb"]),li=[{native:"wahr",normalized:"true"},{native:"falsch",normalized:"false"},{native:"null",normalized:"null"},{native:"undefiniert",normalized:"undefined"},{native:"erste",normalized:"first"},{native:"erster",normalized:"first"},{native:"erstes",normalized:"first"},{native:"letzte",normalized:"last"},{native:"letzter",normalized:"last"},{native:"letztes",normalized:"last"},{native:"n\xE4chste",normalized:"next"},{native:"nachste",normalized:"next"},{native:"vorherige",normalized:"previous"},{native:"n\xE4chste",normalized:"closest"},{native:"eltern",normalized:"parent"},{native:"klick",normalized:"click"},{native:"click",normalized:"click"},{native:"eingabe",normalized:"input"},{native:"\xE4nderung",normalized:"change"},{native:"anderung",normalized:"change"},{native:"absenden",normalized:"submit"},{native:"taste unten",normalized:"keydown"},{native:"taste oben",normalized:"keyup"},{native:"maus dr\xFCber",normalized:"mouseover"},{native:"maus druber",normalized:"mouseover"},{native:"maus weg",normalized:"mouseout"},{native:"fokus",normalized:"focus"},{native:"unsch\xE4rfe",normalized:"blur"},{native:"unscharfe",normalized:"blur"},{native:"scrollen",normalized:"scroll"},{native:"meine",normalized:"my"},{native:"meinen",normalized:"my"},{native:"ergebnis",normalized:"result"},{native:"ziel",normalized:"target"},{native:"sekunde",normalized:"s"},{native:"sekunden",normalized:"s"},{native:"millisekunde",normalized:"ms"},{native:"millisekunden",normalized:"ms"},{native:"minute",normalized:"m"},{native:"minuten",normalized:"m"},{native:"stunde",normalized:"h"},{native:"stunden",normalized:"h"},{native:"hinzufugen",normalized:"add"},{native:"hinzufgen",normalized:"add"},{native:"loschen",normalized:"remove"},{native:"anhangen",normalized:"append"},{native:"erhohen",normalized:"increment"},{native:"ubergang",normalized:"transition"},{native:"auslosen",normalized:"trigger"},{native:"zuruckgeben",normalized:"return"},{native:"anschliessend",normalized:"then"},{native:"erh\xF6he",normalized:"increment"},{native:"erhohe",normalized:"increment"},{native:"verringere",normalized:"decrement"}],ci=[{pattern:"millisekunden",suffix:"ms",length:13,caseInsensitive:!0},{pattern:"millisekunde",suffix:"ms",length:12,caseInsensitive:!0},{pattern:"sekunden",suffix:"s",length:8,caseInsensitive:!0},{pattern:"sekunde",suffix:"s",length:7,caseInsensitive:!0},{pattern:"minuten",suffix:"m",length:7,caseInsensitive:!0},{pattern:"minute",suffix:"m",length:6,caseInsensitive:!0},{pattern:"stunden",suffix:"h",length:7,caseInsensitive:!0},{pattern:"stunde",suffix:"h",length:6,caseInsensitive:!0}],tt=class extends w{constructor(){super();this.language="de";this.direction="ltr";this.initializeKeywordsFromProfile(Y,li)}tokenize(e){let r=[],t=0;for(;t<e.length;){if(k(e[t])){t++;continue}if(L(e[t])){let a=this.tryEventModifier(e,t);if(a){r.push(a),t=a.position.end;continue}let l=this.trySelector(e,t);if(l){r.push(l),t=l.position.end;continue}}if(P(e[t])){let a=this.tryString(e,t);if(a){r.push(a),t=a.position.end;continue}}if(E(e,t)){let a=this.tryUrl(e,t);if(a){r.push(a),t=a.position.end;continue}}if(T(e[t])||e[t]==="-"&&t+1<e.length&&T(e[t+1])){let a=this.extractNumber(e,t);if(a){r.push(a),t=a.position.end;continue}}let o=this.tryVariableRef(e,t);if(o){r.push(o),t=o.position.end;continue}if(ai(e[t])){let a=this.extractWord(e,t);if(a){r.push(a),t=a.position.end;continue}}let s=this.tryOperator(e,t);if(s){r.push(s),t=s.position.end;continue}t++}return new b(r,"de")}classifyToken(e){let r=e.toLowerCase();return Zt.has(r)?"particle":this.isKeyword(r)?"keyword":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":"identifier"}extractWord(e,r){let t=r,o="";for(;t<e.length&&si(e[t]);)o+=e[t++];if(!o)return null;let s=o.toLowerCase(),a=this.lookupKeyword(s);return a?u(o,"keyword",p(r,t),a.normalized):Zt.has(s)?u(o,"particle",p(r,t)):u(o,"identifier",p(r,t))}extractNumber(e,r){return this.tryNumberWithTimeUnits(e,r,ci,{allowSign:!0,skipWhitespace:!0})}},Me=new tt;C("de",Me,Y);var mi=[{pattern:"\u3057\u305F\u3089",confidence:.88,conjugationType:"conditional-tara",minStemLength:2},{pattern:"\u3059\u308B\u3068",confidence:.88,conjugationType:"conditional-to",minStemLength:2},{pattern:"\u3059\u308C\u3070",confidence:.85,conjugationType:"conditional-ba",minStemLength:2},{pattern:"\u305F\u3089",confidence:.85,conjugationType:"conditional-tara",minStemLength:2},{pattern:"\u308C\u3070",confidence:.82,conjugationType:"conditional-ba",minStemLength:2},{pattern:"\u3066\u3044\u307E\u3057\u305F",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"\u3066\u3044\u307E\u3059",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"\u3066\u304F\u3060\u3055\u3044",confidence:.85,conjugationType:"request",minStemLength:2},{pattern:"\u3067\u304F\u3060\u3055\u3044",confidence:.85,conjugationType:"request",minStemLength:2},{pattern:"\u3066\u3044\u308B",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"\u3066\u304A\u304F",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"\u3066\u307F\u308B",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"\u3066\u3042\u308B",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"\u3066\u304F\u308C",confidence:.8,conjugationType:"casual-request",minStemLength:2},{pattern:"\u3067\u304F\u308C",confidence:.8,conjugationType:"casual-request",minStemLength:2},{pattern:"\u3061\u3083\u3063\u305F",confidence:.82,conjugationType:"contracted-past",minStemLength:2},{pattern:"\u3058\u3083\u3063\u305F",confidence:.82,conjugationType:"contracted-past",minStemLength:2},{pattern:"\u3061\u3083\u3046",confidence:.82,conjugationType:"contracted",minStemLength:2},{pattern:"\u3058\u3083\u3046",confidence:.82,conjugationType:"contracted",minStemLength:2},{pattern:"\u307E\u3057\u305F",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"\u307E\u305B\u3093",confidence:.85,conjugationType:"negative",minStemLength:2},{pattern:"\u307E\u3059",confidence:.85,conjugationType:"polite",minStemLength:2},{pattern:"\u3066",confidence:.85,conjugationType:"te-form",minStemLength:2},{pattern:"\u305F",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"\u306A\u3044",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"\u306A\u304B\u3063\u305F",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"\u3089\u308C\u308B",confidence:.8,conjugationType:"potential",minStemLength:2},{pattern:"\u308C\u308B",confidence:.78,conjugationType:"potential",minStemLength:2},{pattern:"\u3089\u308C\u305F",confidence:.8,conjugationType:"passive",minStemLength:2},{pattern:"\u3055\u305B\u308B",confidence:.8,conjugationType:"causative",minStemLength:2},{pattern:"\u305B\u308B",confidence:.78,conjugationType:"causative",minStemLength:2},{pattern:"\u3088\u3046",confidence:.8,conjugationType:"volitional",minStemLength:2},{pattern:"\u308B",confidence:.75,conjugationType:"dictionary",minStemLength:3}],di=[{pattern:"\u3057\u305F\u3089",confidence:.88,conjugationType:"conditional-tara"},{pattern:"\u3059\u308B\u3068",confidence:.88,conjugationType:"conditional-to"},{pattern:"\u3059\u308C\u3070",confidence:.85,conjugationType:"conditional-ba"},{pattern:"\u3057\u3066\u3044\u307E\u3059",confidence:.85,conjugationType:"progressive"},{pattern:"\u3057\u3066\u3044\u308B",confidence:.85,conjugationType:"progressive"},{pattern:"\u3057\u307E\u3057\u305F",confidence:.85,conjugationType:"past"},{pattern:"\u3057\u307E\u3059",confidence:.85,conjugationType:"polite"},{pattern:"\u3057\u306A\u3044",confidence:.82,conjugationType:"negative"},{pattern:"\u3057\u3066",confidence:.85,conjugationType:"te-form"},{pattern:"\u3057\u305F",confidence:.85,conjugationType:"past"},{pattern:"\u3059\u308B",confidence:.88,conjugationType:"dictionary"}];function Jt(i){let n=i.charCodeAt(0);return n>=12352&&n<=12447}function pi(i){let n=i.charCodeAt(0);return n>=12448&&n<=12543}function ui(i){let n=i.charCodeAt(0);return n>=19968&&n<=40959||n>=13312&&n<=19903}function fi(i){for(let n of i)if(Jt(n)||pi(n)||ui(n))return!0;return!1}var fe=class{constructor(){this.language="ja"}isNormalizable(n){if(!fi(n)||n.length<2)return!1;let e=n[n.length-1];return Jt(e)}normalize(n){let e=this.normalizeCompound(n);if(e)return e;let r=this.trySuruNormalization(n);if(r)return r;for(let t of mi)if(n.endsWith(t.pattern)){let o=n.slice(0,-t.pattern.length),s=t.minStemLength??2;if(o.length<s)continue;let a={removedSuffixes:[t.pattern]};return t.conjugationType&&(a.conjugationType=t.conjugationType),j(o,t.confidence,a)}return V(n)}trySuruNormalization(n){for(let e of di)if(n.endsWith(e.pattern)){let r=n.slice(0,-e.pattern.length);if(r.length<1)continue;return j(r,e.confidence,{removedSuffixes:[e.pattern],conjugationType:e.conjugationType,originalForm:"suru-verb"})}return null}normalizeCompound(n){let e=[{pattern:"\u3066\u3044\u306A\u304B\u3063\u305F",suffixes:["\u3066","\u3044","\u306A\u304B\u3063\u305F"],confidence:.8,minStemLength:2},{pattern:"\u3067\u3044\u306A\u304B\u3063\u305F",suffixes:["\u3067","\u3044","\u306A\u304B\u3063\u305F"],confidence:.8,minStemLength:2},{pattern:"\u3066\u3044\u306A\u3044",suffixes:["\u3066","\u3044","\u306A\u3044"],confidence:.82,minStemLength:2},{pattern:"\u3067\u3044\u306A\u3044",suffixes:["\u3067","\u3044","\u306A\u3044"],confidence:.82,minStemLength:2},{pattern:"\u3066\u3044\u305F",suffixes:["\u3066","\u3044","\u305F"],confidence:.85,minStemLength:2},{pattern:"\u3067\u3044\u305F",suffixes:["\u3067","\u3044","\u305F"],confidence:.85,minStemLength:2}];for(let{pattern:r,suffixes:t,confidence:o,minStemLength:s}of e)if(n.endsWith(r)){let a=n.slice(0,-r.length);if(a.length<s)continue;return j(a,o,{removedSuffixes:t,conjugationType:"compound"})}return null}},ks=new fe;var ee={code:"ja",name:"Japanese",nativeName:"\u65E5\u672C\u8A9E",direction:"ltr",wordOrder:"SOV",markingStrategy:"particle",usesSpaces:!1,defaultVerbForm:"base",verb:{position:"end",suffixes:["\u308B","\u3066","\u305F","\u307E\u3059","\u306A\u3044"],subjectDrop:!0},references:{me:"\u81EA\u5206",it:"\u305D\u308C",you:"\u3042\u306A\u305F",result:"\u7D50\u679C",event:"\u30A4\u30D9\u30F3\u30C8",target:"\u30BF\u30FC\u30B2\u30C3\u30C8",body:"\u30DC\u30C7\u30A3"},possessive:{marker:"\u306E",markerPosition:"between",keywords:{\u79C1\u306E:"me",\u3042\u306A\u305F\u306E:"you",\u305D\u306E:"it"}},roleMarkers:{patient:{primary:"\u3092",position:"after"},destination:{primary:"\u306B",alternatives:["\u3078","\u3067"],position:"after"},source:{primary:"\u304B\u3089",position:"after"},style:{primary:"\u3067",position:"after"},event:{primary:"\u3092",position:"after"}},keywords:{toggle:{primary:"\u5207\u308A\u66FF\u3048",alternatives:["\u5207\u308A\u66FF\u3048\u308B","\u30C8\u30B0\u30EB","\u30C8\u30B0\u30EB\u3059\u308B"],normalized:"toggle"},add:{primary:"\u8FFD\u52A0",alternatives:["\u8FFD\u52A0\u3059\u308B","\u52A0\u3048\u308B"],normalized:"add"},remove:{primary:"\u524A\u9664",alternatives:["\u524A\u9664\u3059\u308B","\u53D6\u308A\u9664\u304F"],normalized:"remove"},put:{primary:"\u7F6E\u304F",alternatives:["\u5165\u308C\u308B","\u30BB\u30C3\u30C8"],normalized:"put"},append:{primary:"\u672B\u5C3E\u8FFD\u52A0",alternatives:["\u672B\u5C3E\u306B\u8FFD\u52A0","\u30A2\u30DA\u30F3\u30C9"],normalized:"append"},prepend:{primary:"\u5148\u982D\u8FFD\u52A0",alternatives:["\u5148\u982D\u306B\u8FFD\u52A0","\u30D7\u30EA\u30DA\u30F3\u30C9"],normalized:"prepend"},take:{primary:"\u53D6\u308B",alternatives:["\u53D6\u5F97"],normalized:"take"},make:{primary:"\u4F5C\u308B",alternatives:["\u4F5C\u6210"],normalized:"make"},clone:{primary:"\u8907\u88FD",alternatives:["\u30AF\u30ED\u30FC\u30F3"],normalized:"clone"},swap:{primary:"\u4EA4\u63DB",alternatives:["\u30B9\u30EF\u30C3\u30D7","\u5165\u308C\u66FF\u3048"],normalized:"swap"},morph:{primary:"\u5909\u5F62",alternatives:["\u30E2\u30FC\u30D5","\u5909\u63DB"],normalized:"morph"},set:{primary:"\u8A2D\u5B9A",alternatives:["\u8A2D\u5B9A\u3059\u308B","\u30BB\u30C3\u30C8"],normalized:"set"},get:{primary:"\u53D6\u5F97",alternatives:["\u53D6\u5F97\u3059\u308B","\u30B2\u30C3\u30C8"],normalized:"get"},increment:{primary:"\u5897\u52A0",alternatives:["\u5897\u3084\u3059","\u30A4\u30F3\u30AF\u30EA\u30E1\u30F3\u30C8"],normalized:"increment"},decrement:{primary:"\u6E1B\u5C11",alternatives:["\u6E1B\u3089\u3059","\u30C7\u30AF\u30EA\u30E1\u30F3\u30C8"],normalized:"decrement"},log:{primary:"\u8A18\u9332",alternatives:["\u30ED\u30B0","\u51FA\u529B"],normalized:"log"},show:{primary:"\u8868\u793A",alternatives:["\u8868\u793A\u3059\u308B","\u898B\u305B\u308B"],normalized:"show"},hide:{primary:"\u96A0\u3059",alternatives:["\u975E\u8868\u793A","\u975E\u8868\u793A\u306B\u3059\u308B"],normalized:"hide"},transition:{primary:"\u9077\u79FB",alternatives:["\u30C8\u30E9\u30F3\u30B8\u30B7\u30E7\u30F3","\u30A2\u30CB\u30E1\u30FC\u30B7\u30E7\u30F3"],normalized:"transition"},on:{primary:"\u3067",alternatives:["\u6642","\u3068\u304D"],normalized:"on"},trigger:{primary:"\u5F15\u304D\u91D1",alternatives:["\u767A\u706B","\u30C8\u30EA\u30AC\u30FC"],normalized:"trigger"},send:{primary:"\u9001\u308B",alternatives:["\u9001\u4FE1"],normalized:"send"},focus:{primary:"\u30D5\u30A9\u30FC\u30AB\u30B9",alternatives:["\u96C6\u4E2D"],normalized:"focus"},blur:{primary:"\u307C\u304B\u3057",alternatives:["\u30D5\u30A9\u30FC\u30AB\u30B9\u89E3\u9664"],normalized:"blur"},go:{primary:"\u79FB\u52D5",alternatives:["\u884C\u304F","\u30CA\u30D3\u30B2\u30FC\u30C8"],normalized:"go"},wait:{primary:"\u5F85\u3064",alternatives:["\u5F85\u6A5F"],normalized:"wait"},fetch:{primary:"\u53D6\u5F97",alternatives:["\u30D5\u30A7\u30C3\u30C1"],normalized:"fetch"},settle:{primary:"\u5B89\u5B9A",alternatives:["\u843D\u3061\u7740\u304F"],normalized:"settle"},if:{primary:"\u3082\u3057",alternatives:["\u6761\u4EF6"],normalized:"if"},when:{primary:"\u3068\u304D",normalized:"when"},where:{primary:"\u3069\u3053",normalized:"where"},else:{primary:"\u305D\u3046\u3067\u306A\u3051\u308C\u3070",alternatives:["\u305D\u308C\u4EE5\u5916"],normalized:"else"},repeat:{primary:"\u7E70\u308A\u8FD4\u3057",alternatives:["\u7E70\u308A\u8FD4\u3059","\u30EA\u30D4\u30FC\u30C8"],normalized:"repeat"},for:{primary:"\u305F\u3081\u306B",alternatives:["\u5404"],normalized:"for"},while:{primary:"\u306E\u9593",alternatives:["\u9593"],normalized:"while"},continue:{primary:"\u7D9A\u3051\u308B",alternatives:["\u7D99\u7D9A"],normalized:"continue"},halt:{primary:"\u505C\u6B62",alternatives:["\u6B62\u3081\u308B","\u30CF\u30EB\u30C8"],normalized:"halt"},throw:{primary:"\u6295\u3052\u308B",alternatives:["\u30B9\u30ED\u30FC"],normalized:"throw"},call:{primary:"\u547C\u3073\u51FA\u3057",alternatives:["\u30B3\u30FC\u30EB","\u547C\u3076"],normalized:"call"},return:{primary:"\u623B\u308B",alternatives:["\u8FD4\u3059","\u30EA\u30BF\u30FC\u30F3"],normalized:"return"},then:{primary:"\u305D\u308C\u304B\u3089",alternatives:["\u6B21\u306B","\u305D\u3057\u3066"],normalized:"then"},and:{primary:"\u305D\u3057\u3066",alternatives:["\u3068","\u307E\u305F"],normalized:"and"},end:{primary:"\u7D42\u308F\u308A",alternatives:["\u7D42\u4E86","\u304A\u308F\u308A"],normalized:"end"},js:{primary:"JS\u5B9F\u884C",alternatives:["js"],normalized:"js"},async:{primary:"\u975E\u540C\u671F",alternatives:["\u30A2\u30B7\u30F3\u30AF"],normalized:"async"},tell:{primary:"\u4F1D\u3048\u308B",alternatives:["\u30C6\u30EB"],normalized:"tell"},default:{primary:"\u65E2\u5B9A",alternatives:["\u30C7\u30D5\u30A9\u30EB\u30C8"],normalized:"default"},init:{primary:"\u521D\u671F\u5316",alternatives:["\u30A4\u30CB\u30C3\u30C8"],normalized:"init"},behavior:{primary:"\u632F\u308B\u821E\u3044",alternatives:["\u30D3\u30D8\u30A4\u30D3\u30A2"],normalized:"behavior"},install:{primary:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",alternatives:["\u5C0E\u5165"],normalized:"install"},measure:{primary:"\u6E2C\u5B9A",alternatives:["\u8A08\u6E2C","\u30E1\u30B8\u30E3\u30FC"],normalized:"measure"},into:{primary:"\u3078",alternatives:["\u306B"],normalized:"into"},before:{primary:"\u524D\u306B",alternatives:["\u524D"],normalized:"before"},after:{primary:"\u5F8C\u306B",alternatives:["\u5F8C"],normalized:"after"},until:{primary:"\u307E\u3067",alternatives:["\u8FC4"],normalized:"until"},event:{primary:"\u30A4\u30D9\u30F3\u30C8",alternatives:["\u4E8B\u8C61"],normalized:"event"},from:{primary:"\u304B\u3089",normalized:"from"}},tokenization:{particles:["\u3092","\u306B","\u3067","\u304B\u3089","\u306E","\u304C","\u306F","\u3082","\u3078","\u3068"],boundaryStrategy:"particle"}};var gi=A([[12352,12447]]),yi=A([[12448,12543]]),hi=A([[19968,40959],[13312,19903]]),Yt=pe(gi,yi,hi),vi=new Set(["\u3092","\u306B","\u3067","\u304B\u3089","\u307E\u3067","\u3078","\u3068","\u306E","\u304C","\u306F","\u3082","\u3088\u308A"]),en=new Set(["\u3092","\u306B","\u3067","\u3078","\u3068","\u306E","\u304C","\u306F","\u3082"]),tn=["\u304B\u3089","\u307E\u3067","\u3088\u308A"],nn=new Map([["\u3092",{role:"patient",confidence:.95,description:"object marker"}],["\u306B",{role:"destination",confidence:.85,description:"destination/time marker"}],["\u3067",{role:"manner",confidence:.88,description:"means/location marker"}],["\u304B\u3089",{role:"source",confidence:.9,description:"from/source marker"}],["\u307E\u3067",{role:"destination",confidence:.75,description:"until/boundary marker"}],["\u3078",{role:"destination",confidence:.9,description:"direction marker"}],["\u3068",{role:"style",confidence:.7,description:"with/and marker"}],["\u306E",{role:"patient",confidence:.6,description:"possessive marker"}],["\u304C",{role:"agent",confidence:.85,description:"subject marker"}],["\u306F",{role:"agent",confidence:.75,description:"topic marker"}],["\u3082",{role:"patient",confidence:.65,description:"also/too marker"}],["\u3088\u308A",{role:"source",confidence:.85,description:"from/than marker"}]]),zi=[{native:"\u771F",normalized:"true"},{native:"\u507D",normalized:"false"},{native:"\u30CC\u30EB",normalized:"null"},{native:"\u672A\u5B9A\u7FA9",normalized:"undefined"},{native:"\u6700\u521D",normalized:"first"},{native:"\u6700\u5F8C",normalized:"last"},{native:"\u6B21",normalized:"next"},{native:"\u524D",normalized:"previous"},{native:"\u6700\u3082\u8FD1\u3044",normalized:"closest"},{native:"\u89AA",normalized:"parent"},{native:"\u30AF\u30EA\u30C3\u30AF",normalized:"click"},{native:"\u5909\u66F4",normalized:"change"},{native:"\u9001\u4FE1",normalized:"submit"},{native:"\u5165\u529B",normalized:"input"},{native:"\u30ED\u30FC\u30C9",normalized:"load"},{native:"\u30B9\u30AF\u30ED\u30FC\u30EB",normalized:"scroll"},{native:"\u30AD\u30FC\u30C0\u30A6\u30F3",normalized:"keydown"},{native:"\u30AD\u30FC\u30A2\u30C3\u30D7",normalized:"keyup"},{native:"\u30DE\u30A6\u30B9\u30AA\u30FC\u30D0\u30FC",normalized:"mouseover"},{native:"\u30DE\u30A6\u30B9\u30A2\u30A6\u30C8",normalized:"mouseout"},{native:"\u30D6\u30E9\u30FC",normalized:"blur"},{native:"\u79C1",normalized:"me"},{native:"\u79C1\u306E",normalized:"my"},{native:"\u305D\u306E",normalized:"its"},{native:"\u3057\u305F\u3089",normalized:"on"},{native:"\u3059\u308B\u3068",normalized:"on"},{native:"\u6642\u306B",normalized:"on"},{native:"\u3082\u3057",normalized:"if"},{native:"\u306A\u3089\u3070",normalized:"then"},{native:"\u306A\u3089",normalized:"then"},{native:"\u79D2",normalized:"s"},{native:"\u30DF\u30EA\u79D2",normalized:"ms"},{native:"\u5206",normalized:"m"},{native:"\u6642\u9593",normalized:"h"}],Ti=[{pattern:"\u30DF\u30EA\u79D2",suffix:"ms",length:3},{pattern:"\u6642\u9593",suffix:"h",length:2},{pattern:"\u79D2",suffix:"s",length:1},{pattern:"\u5206",suffix:"m",length:1}],nt=class extends w{constructor(){super();this.language="ja";this.direction="ltr";this.initializeKeywordsFromProfile(ee,zi),this.normalizer=new fe}tokenize(e){let r=[],t=0;for(;t<e.length;){if(k(e[t])){t++;continue}if(L(e[t])){let a=this.tryEventModifier(e,t);if(a){r.push(a),t=a.position.end;continue}let l=this.trySelector(e,t);if(l){r.push(l),t=l.position.end;continue}}if(P(e[t])){let a=this.tryString(e,t);if(a){r.push(a),t=a.position.end;continue}}if(E(e,t)){let a=this.tryUrl(e,t);if(a){r.push(a),t=a.position.end;continue}}if(T(e[t])){let a=this.extractJapaneseNumber(e,t);if(a){r.push(a),t=a.position.end;continue}}let o=this.tryVariableRef(e,t);if(o){r.push(o),t=o.position.end;continue}let s=this.tryMultiCharParticle(e,t,tn);if(s){let a=nn.get(s.value);a?r.push({...s,metadata:{particleRole:a.role,particleConfidence:a.confidence}}):r.push(s),t=s.position.end;continue}if(en.has(e[t])){let a=this.tryProfileKeyword(e,t);if(a&&a.value.length>1){r.push(a),t=a.position.end;continue}let l=e[t],c=nn.get(l);c?r.push({...u(l,"particle",p(t,t+1)),metadata:{particleRole:c.role,particleConfidence:c.confidence}}):r.push(u(l,"particle",p(t,t+1))),t++;continue}if(Yt(e[t])){let a=this.extractJapaneseWord(e,t);if(a){r.push(a),t=a.position.end;continue}}if(S(e[t])){let a=this.extractAsciiWord(e,t);if(a){r.push(a),t=a.position.end;continue}}t++}return new b(r,"ja")}classifyToken(e){return vi.has(e)?"particle":this.isKeyword(e)?"keyword":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")?"selector":e.startsWith('"')||e.startsWith("'")||e.startsWith("\u300C")||/^\d/.test(e)?"literal":"identifier"}extractJapaneseWord(e,r){let t=r,o="";for(;t<e.length;){let l=e[t];if(en.has(l)&&o.length>0)break;let c=!1;for(let d of tn)if(e.slice(t,t+d.length)===d&&o.length>0){c=!0;break}if(c)break;if(Yt(l))o+=l,t++;else break}if(!o)return null;let s=this.lookupKeyword(o);if(s)return u(o,"keyword",p(r,t),s.normalized);let a=this.tryMorphKeywordMatch(o,r,t);return a||u(o,"identifier",p(r,t))}extractAsciiWord(e,r){let t=r,o="";for(;t<e.length&&S(e[t]);)o+=e[t++];return o?u(o,"identifier",p(r,t)):null}extractJapaneseNumber(e,r){return this.tryNumberWithTimeUnits(e,r,Ti,{allowSign:!1,skipWhitespace:!1})}},Ae=new nt;C("ja",Ae,ee);var te={code:"zh",name:"Chinese",nativeName:"\u4E2D\u6587",direction:"ltr",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!1,verb:{position:"second",subjectDrop:!0},references:{me:"\u6211",it:"\u5B83",you:"\u4F60",result:"\u7ED3\u679C",event:"\u4E8B\u4EF6",target:"\u76EE\u6807",body:"\u4E3B\u4F53"},possessive:{marker:"\u7684",markerPosition:"between",keywords:{\u6211\u7684:"me",\u4F60\u7684:"you",\u5B83\u7684:"it",\u4ED6\u7684:"it",\u5979\u7684:"it"}},roleMarkers:{destination:{primary:"\u5728",alternatives:["\u5230","\u4E8E"],position:"before"},source:{primary:"\u4ECE",alternatives:["\u7531"],position:"before"},patient:{primary:"\u628A",position:"before"},style:{primary:"\u7528",alternatives:["\u4EE5"],position:"before"}},keywords:{toggle:{primary:"\u5207\u6362",normalized:"toggle"},add:{primary:"\u6DFB\u52A0",alternatives:["\u52A0"],normalized:"add"},remove:{primary:"\u79FB\u9664",alternatives:["\u5220\u9664","\u53BB\u6389"],normalized:"remove"},put:{primary:"\u653E\u7F6E",alternatives:["\u653E","\u653E\u5165"],normalized:"put"},append:{primary:"\u8FFD\u52A0",alternatives:["\u9644\u52A0"],normalized:"append"},prepend:{primary:"\u524D\u7F6E",alternatives:["\u9884\u7F6E"],normalized:"prepend"},take:{primary:"\u83B7\u53D6",normalized:"take"},make:{primary:"\u5236\u4F5C",normalized:"make"},clone:{primary:"\u590D\u5236",normalized:"clone"},swap:{primary:"\u4EA4\u6362",normalized:"swap"},morph:{primary:"\u53D8\u5F62",alternatives:["\u8F6C\u6362"],normalized:"morph"},set:{primary:"\u8BBE\u7F6E",alternatives:["\u8BBE\u5B9A"],normalized:"set"},get:{primary:"\u83B7\u5F97",alternatives:["\u83B7\u53D6","\u53D6\u5F97"],normalized:"get"},increment:{primary:"\u589E\u52A0",normalized:"increment"},decrement:{primary:"\u51CF\u5C11",normalized:"decrement"},log:{primary:"\u65E5\u5FD7",normalized:"log"},show:{primary:"\u663E\u793A",alternatives:["\u5C55\u793A"],normalized:"show"},hide:{primary:"\u9690\u85CF",normalized:"hide"},transition:{primary:"\u8FC7\u6E21",normalized:"transition"},on:{primary:"\u5F53",alternatives:["\u5728...\u65F6"],normalized:"on"},trigger:{primary:"\u89E6\u53D1",normalized:"trigger"},send:{primary:"\u53D1\u9001",normalized:"send"},focus:{primary:"\u805A\u7126",normalized:"focus"},blur:{primary:"\u5931\u7126",normalized:"blur"},go:{primary:"\u524D\u5F80",normalized:"go"},wait:{primary:"\u7B49\u5F85",normalized:"wait"},fetch:{primary:"\u83B7\u53D6",normalized:"fetch"},settle:{primary:"\u7A33\u5B9A",normalized:"settle"},if:{primary:"\u5982\u679C",normalized:"if"},when:{primary:"\u5F53",normalized:"when"},where:{primary:"\u54EA\u91CC",normalized:"where"},else:{primary:"\u5426\u5219",normalized:"else"},repeat:{primary:"\u91CD\u590D",normalized:"repeat"},for:{primary:"\u4E3A",normalized:"for"},while:{primary:"\u5F53",normalized:"while"},continue:{primary:"\u7EE7\u7EED",normalized:"continue"},halt:{primary:"\u505C\u6B62",normalized:"halt"},throw:{primary:"\u629B\u51FA",normalized:"throw"},call:{primary:"\u8C03\u7528",normalized:"call"},return:{primary:"\u8FD4\u56DE",normalized:"return"},then:{primary:"\u7136\u540E",alternatives:["\u63A5\u7740","\u4E4B\u540E"],normalized:"then"},and:{primary:"\u5E76\u4E14",alternatives:["\u548C","\u800C\u4E14"],normalized:"and"},end:{primary:"\u7ED3\u675F",alternatives:["\u7EC8\u6B62","\u5B8C"],normalized:"end"},js:{primary:"JS\u6267\u884C",alternatives:["js"],normalized:"js"},async:{primary:"\u5F02\u6B65",normalized:"async"},tell:{primary:"\u544A\u8BC9",normalized:"tell"},default:{primary:"\u9ED8\u8BA4",normalized:"default"},init:{primary:"\u521D\u59CB\u5316",normalized:"init"},behavior:{primary:"\u884C\u4E3A",normalized:"behavior"},install:{primary:"\u5B89\u88C5",normalized:"install"},measure:{primary:"\u6D4B\u91CF",normalized:"measure"},into:{primary:"\u8FDB\u5165",normalized:"into"},before:{primary:"\u4E4B\u524D",normalized:"before"},after:{primary:"\u4E4B\u540E",normalized:"after"},until:{primary:"\u76F4\u5230",normalized:"until"},event:{primary:"\u4E8B\u4EF6",normalized:"event"},from:{primary:"\u4ECE",normalized:"from"}},tokenization:{boundaryStrategy:"character"}};var rt=A([[19968,40959],[13312,19903],[131072,173791],[63744,64255],[194560,195103]]),it=new Set(["\u628A","\u5728","\u4ECE","\u5230","\u5411","\u7ED9","\u5BF9","\u7528","\u88AB","\u8BA9","\u7684","\u5730","\u5F97","\u4E86","\u7740","\u8FC7","\u5417","\u5462","\u5427"]),Si=["\u7136\u540E","\u63A5\u7740","\u5E76\u4E14","\u6216\u8005","\u5982\u679C","\u90A3\u4E48","\u5426\u5219"],ki=[{native:"\u771F",normalized:"true"},{native:"\u5047",normalized:"false"},{native:"\u7A7A",normalized:"null"},{native:"\u672A\u5B9A\u4E49",normalized:"undefined"},{native:"\u7B2C\u4E00\u4E2A",normalized:"first"},{native:"\u9996\u4E2A",normalized:"first"},{native:"\u6700\u540E\u4E00\u4E2A",normalized:"last"},{native:"\u672B\u4E2A",normalized:"last"},{native:"\u4E0B\u4E00\u4E2A",normalized:"next"},{native:"\u4E0A\u4E00\u4E2A",normalized:"previous"},{native:"\u6700\u8FD1\u7684",normalized:"closest"},{native:"\u7236\u7EA7",normalized:"parent"},{native:"\u70B9\u51FB",normalized:"click"},{native:"\u53CC\u51FB",normalized:"dblclick"},{native:"\u8F93\u5165",normalized:"input"},{native:"\u53D8\u66F4",normalized:"change"},{native:"\u6539\u53D8",normalized:"change"},{native:"\u63D0\u4EA4",normalized:"submit"},{native:"\u6309\u952E",normalized:"keydown"},{native:"\u91CA\u653E\u952E",normalized:"keyup"},{native:"\u9F20\u6807\u79FB\u5165",normalized:"mouseover"},{native:"\u9F20\u6807\u79FB\u51FA",normalized:"mouseout"},{native:"\u83B7\u5F97\u7126\u70B9",normalized:"focus"},{native:"\u5931\u53BB\u7126\u70B9",normalized:"blur"},{native:"\u52A0\u8F7D",normalized:"load"},{native:"\u6EDA\u52A8",normalized:"scroll"},{native:"\u6211\u7684",normalized:"my"},{native:"\u5B83\u7684",normalized:"its"},{native:"\u79D2",normalized:"s"},{native:"\u6BEB\u79D2",normalized:"ms"},{native:"\u5206\u949F",normalized:"m"},{native:"\u5C0F\u65F6",normalized:"h"},{native:"\u548C",normalized:"and"},{native:"\u6216\u8005",normalized:"or"},{native:"\u6216",normalized:"or"},{native:"\u4E0D",normalized:"not"},{native:"\u975E",normalized:"not"},{native:"\u662F",normalized:"is"},{native:"\u82E5",normalized:"if"},{native:"\u4E0D\u7136",normalized:"else"},{native:"\u5FAA\u73AF",normalized:"repeat"},{native:"\u904D\u5386",normalized:"for"},{native:"\u6BCF\u4E2A",normalized:"for"},{native:"\u4E3A\u6BCF",normalized:"for"},{native:"\u4E2D\u6B62",normalized:"halt"},{native:"\u629B",normalized:"throw"},{native:"\u547C\u53EB",normalized:"call"},{native:"\u56DE",normalized:"return"},{native:"\u811A\u672C",normalized:"js"},{native:"\u901A\u77E5",normalized:"tell"},{native:"\u7F3A\u7701",normalized:"default"},{native:"\u521D\u59CB",normalized:"init"},{native:"\u52A8\u4F5C",normalized:"behavior"},{native:"\u6FC0\u53D1",normalized:"trigger"},{native:"\u5BF9\u7126",normalized:"focus"},{native:"\u6A21\u7CCA",normalized:"blur"},{native:"\u8DF3\u8F6C",normalized:"go"},{native:"\u5BFC\u822A",normalized:"go"},{native:"\u6293\u53D6",normalized:"fetch"},{native:"\u83B7\u53D6\u6570\u636E",normalized:"fetch"},{native:"\u5B89\u5B9A",normalized:"settle"},{native:"\u62FF\u53D6",normalized:"take"},{native:"\u53D6",normalized:"take"},{native:"\u521B\u5EFA",normalized:"make"},{native:"\u514B\u9686",normalized:"clone"},{native:"\u8BB0\u5F55",normalized:"log"},{native:"\u6253\u5370",normalized:"log"},{native:"\u52A8\u753B",normalized:"transition"},{native:"\u5230\u91CC\u9762",normalized:"into"},{native:"\u91CC",normalized:"into"},{native:"\u524D",normalized:"before"},{native:"\u540E",normalized:"after"},{native:"\u90A3\u4E48",normalized:"then"},{native:"\u5B8C",normalized:"end"}],xi=[{pattern:"\u6BEB\u79D2",suffix:"ms",length:2},{pattern:"\u5206\u949F",suffix:"m",length:2},{pattern:"\u5C0F\u65F6",suffix:"h",length:2},{pattern:"\u79D2",suffix:"s",length:1},{pattern:"\u5206",suffix:"m",length:1}],ot=class extends w{constructor(){super();this.language="zh";this.direction="ltr";this.initializeKeywordsFromProfile(te,ki)}tokenize(e){let r=[],t=0;for(;t<e.length;){if(k(e[t])){t++;continue}if(L(e[t])){let a=this.tryEventModifier(e,t);if(a){r.push(a),t=a.position.end;continue}let l=this.trySelector(e,t);if(l){r.push(l),t=l.position.end;continue}}if(P(e[t])||e[t]==="\u201C"||e[t]==="\u201D"||e[t]==="\u2018"||e[t]==="\u2019"){let a=this.tryChineseString(e,t);if(a){r.push(a),t=a.position.end;continue}}if(E(e,t)){let a=this.tryUrl(e,t);if(a){r.push(a),t=a.position.end;continue}}if(T(e[t])){let a=this.extractChineseNumber(e,t);if(a){r.push(a),t=a.position.end;continue}}let o=this.tryVariableRef(e,t);if(o){r.push(o),t=o.position.end;continue}let s=this.tryMultiCharParticle(e,t,Si);if(s){r.push(s),t=s.position.end;continue}if(rt(e[t])){let a=this.extractChineseWord(e,t);if(a){r.push(a),t=a.position.end;continue}}if(S(e[t])){let a=this.extractAsciiWord(e,t);if(a){r.push(a),t=a.position.end;continue}}t++}return new b(r,"zh")}classifyToken(e){return it.has(e)?"particle":this.isKeyword(e)?"keyword":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")||e.startsWith("<")?"selector":e.startsWith('"')||e.startsWith("'")||e.startsWith("\u201C")||e.startsWith("\u2018")||/^\d/.test(e)?"literal":"identifier"}extractChineseWord(e,r){for(let s of this.profileKeywords){let a=s.native,l=e.slice(r,r+a.length);if(l===a){let c=!0;for(let d=0;d<a.length;d++)if(!rt(a[d])){c=!1;break}if(c)return u(l,"keyword",p(r,r+a.length),s.normalized)}}let t=r,o="";for(;t<e.length;){let s=e[t];if(it.has(s)&&o.length>0)break;if(rt(s))o+=s,t++;else break}return o?it.has(o)?u(o,"particle",p(r,t)):u(o,"identifier",p(r,t)):null}extractAsciiWord(e,r){let t=r,o="";for(;t<e.length&&S(e[t]);)o+=e[t++];return o?u(o,"identifier",p(r,t)):null}tryChineseString(e,r){let t=e[r];if(t==='"'||t==="'"||t==="`")return this.tryString(e,r);if(t==="\u201C"){let o=r+1;for(;o<e.length&&e[o]!=="\u201D";)o++;if(o>=e.length)return null;let s=e.slice(r,o+1);return u(s,"literal",p(r,o+1))}if(t==="\u2018"){let o=r+1;for(;o<e.length&&e[o]!=="\u2019";)o++;if(o>=e.length)return null;let s=e.slice(r,o+1);return u(s,"literal",p(r,o+1))}return null}extractChineseNumber(e,r){return this.tryNumberWithTimeUnits(e,r,xi,{allowSign:!1,skipWhitespace:!1})}},Ie=new ot;C("zh",Ie,te);function bi(i){let n=i.charCodeAt(0);return n>=44032&&n<=55203}function wi(i){for(let n of i)if(bi(n))return!0;return!1}var Li=[{pattern:"\uD558\uC2DC\uB2C8\uAE4C",confidence:.85,conjugationType:"honorific-causal",minStemLength:1},{pattern:"\uD558\uC2E4\uB54C",confidence:.88,conjugationType:"honorific-temporal",minStemLength:1},{pattern:"\uD558\uC2E4 \uB54C",confidence:.88,conjugationType:"honorific-temporal",minStemLength:1},{pattern:"\uD558\uC2DC\uBA74",confidence:.88,conjugationType:"honorific-conditional",minStemLength:1},{pattern:"\uC73C\uC2DC\uBA74",confidence:.85,conjugationType:"honorific-conditional",minStemLength:2},{pattern:"\uC2DC\uBA74",confidence:.82,conjugationType:"honorific-conditional",minStemLength:2},{pattern:"\uD558\uACE0\uB098\uC11C",confidence:.85,conjugationType:"sequential-after",minStemLength:1},{pattern:"\uD558\uACE0 \uB098\uC11C",confidence:.85,conjugationType:"sequential-after",minStemLength:1},{pattern:"\uD558\uACE0\uC11C",confidence:.85,conjugationType:"sequential-after",minStemLength:1},{pattern:"\uACE0\uB098\uC11C",confidence:.82,conjugationType:"sequential-after",minStemLength:2},{pattern:"\uACE0 \uB098\uC11C",confidence:.82,conjugationType:"sequential-after",minStemLength:2},{pattern:"\uACE0\uC11C",confidence:.82,conjugationType:"sequential-after",minStemLength:2},{pattern:"\uD558\uAE30\uC804\uC5D0",confidence:.85,conjugationType:"sequential-before",minStemLength:1},{pattern:"\uD558\uAE30 \uC804\uC5D0",confidence:.85,conjugationType:"sequential-before",minStemLength:1},{pattern:"\uAE30\uC804\uC5D0",confidence:.82,conjugationType:"sequential-before",minStemLength:2},{pattern:"\uAE30 \uC804\uC5D0",confidence:.82,conjugationType:"sequential-before",minStemLength:2},{pattern:"\uD558\uC790\uB9C8\uC790",confidence:.88,conjugationType:"immediate",minStemLength:1},{pattern:"\uC790\uB9C8\uC790",confidence:.85,conjugationType:"immediate",minStemLength:2},{pattern:"\uD574\uC57C\uD574\uC694",confidence:.85,conjugationType:"obligation",minStemLength:1},{pattern:"\uD574\uC57C\uD574",confidence:.85,conjugationType:"obligation",minStemLength:1},{pattern:"\uD574\uC57C\uD558\uB2E4",confidence:.85,conjugationType:"obligation",minStemLength:1},{pattern:"\uC5B4\uC57C\uD574\uC694",confidence:.82,conjugationType:"obligation",minStemLength:2},{pattern:"\uC5B4\uC57C\uD574",confidence:.82,conjugationType:"obligation",minStemLength:2},{pattern:"\uC544\uC57C\uD574\uC694",confidence:.82,conjugationType:"obligation",minStemLength:2},{pattern:"\uC544\uC57C\uD574",confidence:.82,conjugationType:"obligation",minStemLength:2},{pattern:"\uD558\uB2C8\uAE4C",confidence:.85,conjugationType:"causal-nikka",minStemLength:1},{pattern:"\uD560\uB54C",confidence:.88,conjugationType:"temporal-ttae",minStemLength:1},{pattern:"\uD560 \uB54C",confidence:.88,conjugationType:"temporal-ttae",minStemLength:1},{pattern:"\uC744\uB54C",confidence:.85,conjugationType:"temporal-ttae",minStemLength:2},{pattern:"\uC744 \uB54C",confidence:.85,conjugationType:"temporal-ttae",minStemLength:2},{pattern:"\uD558\uBA74",confidence:.88,conjugationType:"conditional-myeon",minStemLength:1},{pattern:"\uC73C\uBA74",confidence:.85,conjugationType:"conditional-myeon",minStemLength:2},{pattern:"\uB2C8\uAE4C",confidence:.82,conjugationType:"causal-nikka",minStemLength:2},{pattern:"\uBA74",confidence:.8,conjugationType:"conditional-myeon",minStemLength:2},{pattern:"\uD558\uC600\uC2B5\uB2C8\uB2E4",confidence:.85,conjugationType:"past",minStemLength:1},{pattern:"\uD588\uC2B5\uB2C8\uB2E4",confidence:.85,conjugationType:"past",minStemLength:1},{pattern:"\uD569\uB2C8\uB2E4",confidence:.85,conjugationType:"polite",minStemLength:1},{pattern:"\uC2B5\uB2C8\uB2E4",confidence:.82,conjugationType:"polite",minStemLength:2},{pattern:"\uB429\uB2C8\uB2E4",confidence:.82,conjugationType:"polite",minStemLength:1},{pattern:"\u3142\uB2C8\uB2E4",confidence:.82,conjugationType:"polite",minStemLength:2},{pattern:"\uD558\uC138\uC694",confidence:.85,conjugationType:"honorific",minStemLength:1},{pattern:"\uD558\uC2ED\uC2DC\uC624",confidence:.85,conjugationType:"honorific",minStemLength:1},{pattern:"\uC138\uC694",confidence:.82,conjugationType:"honorific",minStemLength:2},{pattern:"\uC2ED\uC2DC\uC624",confidence:.82,conjugationType:"honorific",minStemLength:2},{pattern:"\uD558\uACE0\uC788\uC5B4\uC694",confidence:.82,conjugationType:"progressive",minStemLength:1},{pattern:"\uD558\uACE0\uC788\uC5B4",confidence:.82,conjugationType:"progressive",minStemLength:1},{pattern:"\uD588\uC5B4\uC694",confidence:.85,conjugationType:"past",minStemLength:1},{pattern:"\uD574\uC694",confidence:.85,conjugationType:"polite",minStemLength:1},{pattern:"\uC5B4\uC694",confidence:.82,conjugationType:"polite",minStemLength:2},{pattern:"\uC544\uC694",confidence:.82,conjugationType:"polite",minStemLength:2},{pattern:"\uD588\uC5B4",confidence:.85,conjugationType:"past",minStemLength:1},{pattern:"\uD574",confidence:.8,conjugationType:"present",minStemLength:1},{pattern:"\uC5C8\uC5B4",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"\uC558\uC5B4",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"\uD558\uACE0\uC788\uB2E4",confidence:.82,conjugationType:"progressive",minStemLength:1},{pattern:"\uACE0\uC788\uB2E4",confidence:.8,conjugationType:"progressive",minStemLength:2},{pattern:"\uACE0\uC788\uC5B4",confidence:.8,conjugationType:"progressive",minStemLength:2},{pattern:"\uD558\uB2E4",confidence:.88,conjugationType:"dictionary",minStemLength:1},{pattern:"\uD558\uC9C0\uC54A\uB2E4",confidence:.82,conjugationType:"negative",minStemLength:1},{pattern:"\uC548\uD558\uB2E4",confidence:.82,conjugationType:"negative",minStemLength:1},{pattern:"\uC9C0\uC54A\uB2E4",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"\uD574\uB77C",confidence:.82,conjugationType:"imperative",minStemLength:1},{pattern:"\uD558\uB77C",confidence:.82,conjugationType:"imperative",minStemLength:1},{pattern:"\uB2E4",confidence:.75,conjugationType:"dictionary",minStemLength:2}],Pi=[{pattern:"\uD558\uC2DC\uB2C8\uAE4C",confidence:.88,conjugationType:"honorific-causal"},{pattern:"\uD558\uC2E4\uB54C",confidence:.88,conjugationType:"honorific-temporal"},{pattern:"\uD558\uC2E4 \uB54C",confidence:.88,conjugationType:"honorific-temporal"},{pattern:"\uD558\uC2DC\uBA74",confidence:.88,conjugationType:"honorific-conditional"},{pattern:"\uD558\uC168\uC5B4\uC694",confidence:.85,conjugationType:"honorific-past"},{pattern:"\uD558\uC168\uC5B4",confidence:.85,conjugationType:"honorific-past"},{pattern:"\uD558\uC2ED\uB2C8\uB2E4",confidence:.85,conjugationType:"honorific-polite"},{pattern:"\uD558\uACE0\uB098\uC11C",confidence:.88,conjugationType:"sequential-after"},{pattern:"\uD558\uACE0 \uB098\uC11C",confidence:.88,conjugationType:"sequential-after"},{pattern:"\uD558\uACE0\uC11C",confidence:.88,conjugationType:"sequential-after"},{pattern:"\uD558\uAE30\uC804\uC5D0",confidence:.88,conjugationType:"sequential-before"},{pattern:"\uD558\uAE30 \uC804\uC5D0",confidence:.88,conjugationType:"sequential-before"},{pattern:"\uD558\uC790\uB9C8\uC790",confidence:.88,conjugationType:"immediate"},{pattern:"\uD574\uC57C\uD574\uC694",confidence:.88,conjugationType:"obligation"},{pattern:"\uD574\uC57C\uD574",confidence:.88,conjugationType:"obligation"},{pattern:"\uD574\uC57C\uD558\uB2E4",confidence:.88,conjugationType:"obligation"},{pattern:"\uD558\uB2C8\uAE4C",confidence:.88,conjugationType:"causal-nikka"},{pattern:"\uD560\uB54C",confidence:.88,conjugationType:"temporal-ttae"},{pattern:"\uD560 \uB54C",confidence:.88,conjugationType:"temporal-ttae"},{pattern:"\uD558\uBA74",confidence:.88,conjugationType:"conditional-myeon"},{pattern:"\uD558\uC600\uC2B5\uB2C8\uB2E4",confidence:.85,conjugationType:"past"},{pattern:"\uD588\uC2B5\uB2C8\uB2E4",confidence:.85,conjugationType:"past"},{pattern:"\uD569\uB2C8\uB2E4",confidence:.85,conjugationType:"polite"},{pattern:"\uD558\uC2ED\uC2DC\uC624",confidence:.85,conjugationType:"honorific"},{pattern:"\uD558\uC138\uC694",confidence:.85,conjugationType:"honorific"},{pattern:"\uD588\uC5B4\uC694",confidence:.85,conjugationType:"past"},{pattern:"\uD574\uC694",confidence:.85,conjugationType:"polite"},{pattern:"\uD588\uC5B4",confidence:.85,conjugationType:"past"},{pattern:"\uD574",confidence:.8,conjugationType:"present"},{pattern:"\uD558\uACE0\uC788\uC5B4\uC694",confidence:.82,conjugationType:"progressive"},{pattern:"\uD558\uACE0\uC788\uC5B4",confidence:.82,conjugationType:"progressive"},{pattern:"\uD558\uACE0\uC788\uB2E4",confidence:.82,conjugationType:"progressive"},{pattern:"\uD574\uC11C",confidence:.82,conjugationType:"connective"},{pattern:"\uD558\uACE0",confidence:.8,conjugationType:"connective"},{pattern:"\uD558\uC9C0\uC54A\uC544\uC694",confidence:.82,conjugationType:"negative"},{pattern:"\uD558\uC9C0\uC54A\uB2E4",confidence:.82,conjugationType:"negative"},{pattern:"\uC548\uD574\uC694",confidence:.82,conjugationType:"negative"},{pattern:"\uC548\uD574",confidence:.82,conjugationType:"negative"},{pattern:"\uD574\uB77C",confidence:.82,conjugationType:"imperative"},{pattern:"\uD558\uB77C",confidence:.82,conjugationType:"imperative"},{pattern:"\uD558\uB2E4",confidence:.88,conjugationType:"dictionary"}],ge=class{constructor(){this.language="ko"}isNormalizable(n){return!(!wi(n)||n.length<2)}normalize(n){let e=this.normalizeCompound(n);if(e)return e;let r=this.tryHadaNormalization(n);if(r)return r;for(let t of Li)if(n.endsWith(t.pattern)){let o=n.slice(0,-t.pattern.length),s=t.minStemLength??2;if(o.length<s)continue;let a={removedSuffixes:[t.pattern]};return t.conjugationType&&(a.conjugationType=t.conjugationType),j(o,t.confidence,a)}return V(n)}tryHadaNormalization(n){for(let e of Pi)if(n.endsWith(e.pattern)){let r=n.slice(0,-e.pattern.length);if(r.length<1)continue;return j(r,e.confidence,{removedSuffixes:[e.pattern],conjugationType:e.conjugationType,originalForm:"hada-verb"})}return null}normalizeCompound(n){let e=[{pattern:"\uD558\uACE0\uB098\uC11C\uC600\uC5B4",suffixes:["\uD558\uACE0\uB098\uC11C","\uC600\uC5B4"],confidence:.78,conjugationType:"sequential-after",minStemLength:2},{pattern:"\uD558\uACE0\uB098\uC11C\uC600\uB2E4",suffixes:["\uD558\uACE0\uB098\uC11C","\uC600\uB2E4"],confidence:.78,conjugationType:"sequential-after",minStemLength:2},{pattern:"\uD558\uACE0\uB098\uC11C",suffixes:["\uD558\uACE0","\uB098\uC11C"],confidence:.85,conjugationType:"sequential-after",minStemLength:2},{pattern:"\uD574\uC57C\uD588\uC5B4",suffixes:["\uD574\uC57C","\uD588\uC5B4"],confidence:.8,conjugationType:"obligation",minStemLength:2},{pattern:"\uD574\uC57C\uD588\uB2E4",suffixes:["\uD574\uC57C","\uD588\uB2E4"],confidence:.8,conjugationType:"obligation",minStemLength:2},{pattern:"\uD574\uC57C\uD588\uC2B5\uB2C8\uB2E4",suffixes:["\uD574\uC57C","\uD588\uC2B5\uB2C8\uB2E4"],confidence:.8,conjugationType:"obligation",minStemLength:2},{pattern:"\uD558\uC2DC\uBA74\uC11C",suffixes:["\uD558\uC2DC","\uBA74\uC11C"],confidence:.82,conjugationType:"connective",minStemLength:2},{pattern:"\uD558\uC2DC\uBA70",suffixes:["\uD558\uC2DC","\uBA70"],confidence:.82,conjugationType:"connective",minStemLength:2},{pattern:"\uD558\uACE0\uC788\uC5C8\uC5B4",suffixes:["\uD558\uACE0","\uC788\uC5C8\uC5B4"],confidence:.8,conjugationType:"progressive",minStemLength:2},{pattern:"\uD558\uACE0\uC788\uC5C8\uB2E4",suffixes:["\uD558\uACE0","\uC788\uC5C8\uB2E4"],confidence:.8,conjugationType:"progressive",minStemLength:2}];for(let{pattern:r,suffixes:t,confidence:o,conjugationType:s,minStemLength:a}of e)if(n.endsWith(r)){let l=n.slice(0,-r.length);if(l.length<a)continue;return j(l,o,{removedSuffixes:t,conjugationType:s})}return null}},Us=new ge;var ne={code:"ko",name:"Korean",nativeName:"\uD55C\uAD6D\uC5B4",direction:"ltr",wordOrder:"SOV",markingStrategy:"particle",usesSpaces:!0,verb:{position:"end",suffixes:["\uB2E4","\uC694","\uB2C8\uB2E4","\uC138\uC694"],subjectDrop:!0},references:{me:"\uB098",it:"\uADF8\uAC83",you:"\uB108",result:"\uACB0\uACFC",event:"\uC774\uBCA4\uD2B8",target:"\uB300\uC0C1",body:"\uBCF8\uBB38"},possessive:{marker:"\uC758",markerPosition:"between",specialForms:{me:"\uB0B4",it:"\uADF8\uAC83\uC758",you:"\uB124"},keywords:{\uB0B4:"me",\uB124:"you",\uADF8\uC758:"it"}},roleMarkers:{patient:{primary:"\uC744",alternatives:["\uB97C"],position:"after"},destination:{primary:"\uC5D0",alternatives:["\uC73C\uB85C","\uB85C","\uC5D0\uC11C"],position:"after"},source:{primary:"\uC5D0\uC11C",alternatives:["\uBD80\uD130"],position:"after"},style:{primary:"\uB85C",alternatives:["\uC73C\uB85C"],position:"after"},event:{primary:"\uC744",alternatives:["\uB97C"],position:"after"}},keywords:{toggle:{primary:"\uD1A0\uAE00",alternatives:["\uC804\uD658"],normalized:"toggle"},add:{primary:"\uCD94\uAC00",normalized:"add"},remove:{primary:"\uC81C\uAC70",alternatives:["\uC0AD\uC81C"],normalized:"remove"},put:{primary:"\uB123\uB2E4",alternatives:["\uB123\uAE30","\uB193\uAE30"],normalized:"put"},append:{primary:"\uCD94\uAC00",normalized:"append"},take:{primary:"\uAC00\uC838\uC624\uB2E4",normalized:"take"},make:{primary:"\uB9CC\uB4E4\uB2E4",normalized:"make"},clone:{primary:"\uBCF5\uC0AC",normalized:"clone"},swap:{primary:"\uAD50\uD658",alternatives:["\uBC14\uAFB8\uB2E4"],normalized:"swap"},morph:{primary:"\uBCC0\uD615",alternatives:["\uBCC0\uD658"],normalized:"morph"},set:{primary:"\uC124\uC815",normalized:"set"},get:{primary:"\uC5BB\uB2E4",alternatives:["\uAC00\uC838\uC624\uAE30"],normalized:"get"},increment:{primary:"\uC99D\uAC00",normalized:"increment"},decrement:{primary:"\uAC10\uC18C",normalized:"decrement"},log:{primary:"\uB85C\uADF8",normalized:"log"},show:{primary:"\uBCF4\uC774\uB2E4",alternatives:["\uD45C\uC2DC","\uBCF4\uC774\uAE30"],normalized:"show"},hide:{primary:"\uC228\uAE30\uB2E4",alternatives:["\uC228\uAE30\uAE30"],normalized:"hide"},transition:{primary:"\uC804\uD658",normalized:"transition"},on:{primary:"\uC5D0",alternatives:["\uC2DC","\uB54C","\uD560 \uB54C"],normalized:"on"},trigger:{primary:"\uD2B8\uB9AC\uAC70",normalized:"trigger"},send:{primary:"\uBCF4\uB0B4\uB2E4",normalized:"send"},focus:{primary:"\uD3EC\uCEE4\uC2A4",normalized:"focus"},blur:{primary:"\uBE14\uB7EC",normalized:"blur"},go:{primary:"\uC774\uB3D9",normalized:"go"},wait:{primary:"\uB300\uAE30",normalized:"wait"},fetch:{primary:"\uAC00\uC838\uC624\uAE30",normalized:"fetch"},settle:{primary:"\uC548\uC815",normalized:"settle"},if:{primary:"\uB9CC\uC57D",normalized:"if"},when:{primary:"\uB54C",normalized:"when"},where:{primary:"\uC5B4\uB514",normalized:"where"},else:{primary:"\uC544\uB2C8\uBA74",normalized:"else"},repeat:{primary:"\uBC18\uBCF5",normalized:"repeat"},for:{primary:"\uB3D9\uC548",normalized:"for"},while:{primary:"\uB3D9\uC548",normalized:"while"},continue:{primary:"\uACC4\uC18D",normalized:"continue"},halt:{primary:"\uC815\uC9C0",normalized:"halt"},throw:{primary:"\uB358\uC9C0\uB2E4",normalized:"throw"},call:{primary:"\uD638\uCD9C",normalized:"call"},return:{primary:"\uBC18\uD658",normalized:"return"},then:{primary:"\uADF8\uB2E4\uC74C",alternatives:["\uADF8\uB9AC\uACE0","\uADF8\uB7F0\uD6C4"],normalized:"then"},and:{primary:"\uADF8\uB9AC\uACE0",alternatives:["\uB610\uD55C","\uBC0F"],normalized:"and"},end:{primary:"\uB05D",alternatives:["\uC885\uB8CC","\uB9C8\uCE68"],normalized:"end"},js:{primary:"JS\uC2E4\uD589",alternatives:["js"],normalized:"js"},async:{primary:"\uBE44\uB3D9\uAE30",normalized:"async"},tell:{primary:"\uB9D0\uD558\uB2E4",normalized:"tell"},default:{primary:"\uAE30\uBCF8\uAC12",normalized:"default"},init:{primary:"\uCD08\uAE30\uD654",normalized:"init"},behavior:{primary:"\uB3D9\uC791",normalized:"behavior"},install:{primary:"\uC124\uCE58",normalized:"install"},measure:{primary:"\uCE21\uC815",normalized:"measure"},into:{primary:"\uC73C\uB85C",normalized:"into"},before:{primary:"\uC804\uC5D0",normalized:"before"},after:{primary:"\uD6C4\uC5D0",normalized:"after"},until:{primary:"\uAE4C\uC9C0",normalized:"until"},event:{primary:"\uC774\uBCA4\uD2B8",normalized:"event"},from:{primary:"\uC5D0\uC11C",normalized:"from"}},tokenization:{particles:["\uC744","\uB97C","\uC774","\uAC00","\uC740","\uB294","\uC5D0","\uC5D0\uC11C","\uC73C\uB85C","\uB85C","\uC640","\uACFC","\uB3C4"],boundaryStrategy:"space"}};var Ei=A([[44032,55203]]),Ci=A([[4352,4607],[12592,12687]]),ye=pe(Ei,Ci),Ri=new Set(["\uC774","\uAC00","\uC744","\uB97C","\uC740","\uB294","\uC5D0","\uC5D0\uC11C","\uB85C","\uC73C\uB85C","\uC640","\uACFC","\uC758","\uB3C4","\uB9CC","\uBD80\uD130","\uAE4C\uC9C0","\uCC98\uB7FC","\uBCF4\uB2E4"]),at=new Set(["\uC774","\uAC00","\uC744","\uB97C","\uC740","\uB294","\uC5D0","\uB85C","\uC640","\uACFC","\uC758","\uB3C4","\uB9CC"]),rn=["\uC5D0\uC11C","\uC73C\uB85C","\uBD80\uD130","\uAE4C\uC9C0","\uCC98\uB7FC","\uBCF4\uB2E4"],on=new Map([["\uC774",{role:"agent",confidence:.85,variant:"consonant",description:"subject marker (after consonant)"}],["\uAC00",{role:"agent",confidence:.85,variant:"vowel",description:"subject marker (after vowel)"}],["\uC744",{role:"patient",confidence:.95,variant:"consonant",description:"object marker (after consonant)"}],["\uB97C",{role:"patient",confidence:.95,variant:"vowel",description:"object marker (after vowel)"}],["\uC740",{role:"agent",confidence:.75,variant:"consonant",description:"topic marker (after consonant)"}],["\uB294",{role:"agent",confidence:.75,variant:"vowel",description:"topic marker (after vowel)"}],["\uC5D0",{role:"destination",confidence:.85,description:"at/to marker"}],["\uC5D0\uC11C",{role:"source",confidence:.8,description:"at/from marker (action location)"}],["\uB85C",{role:"destination",confidence:.85,variant:"vowel",description:"to/by means (after vowel or \u3139)"}],["\uC73C\uB85C",{role:"destination",confidence:.85,variant:"consonant",description:"to/by means (after consonant)"}],["\uC640",{role:"style",confidence:.7,variant:"vowel",description:"and/with (after vowel)"}],["\uACFC",{role:"style",confidence:.7,variant:"consonant",description:"and/with (after consonant)"}],["\uC758",{role:"patient",confidence:.6,description:"possessive marker"}],["\uB3C4",{role:"patient",confidence:.65,description:"also/too marker"}],["\uB9CC",{role:"patient",confidence:.65,description:"only marker"}],["\uBD80\uD130",{role:"source",confidence:.9,description:"from/since marker"}],["\uAE4C\uC9C0",{role:"destination",confidence:.75,description:"until/to marker"}],["\uCC98\uB7FC",{role:"manner",confidence:.8,description:"like/as marker"}],["\uBCF4\uB2E4",{role:"source",confidence:.75,description:"than marker"}]]),Ni=[{native:"\uCC38",normalized:"true"},{native:"\uAC70\uC9D3",normalized:"false"},{native:"\uB110",normalized:"null"},{native:"\uBBF8\uC815\uC758",normalized:"undefined"},{native:"\uCCAB\uBC88\uC9F8",normalized:"first"},{native:"\uB9C8\uC9C0\uB9C9",normalized:"last"},{native:"\uB2E4\uC74C",normalized:"next"},{native:"\uC774\uC804",normalized:"previous"},{native:"\uAC00\uC7A5\uAC00\uAE4C\uC6B4",normalized:"closest"},{native:"\uBD80\uBAA8",normalized:"parent"},{native:"\uD074\uB9AD",normalized:"click"},{native:"\uB354\uBE14\uD074\uB9AD",normalized:"dblclick"},{native:"\uBCC0\uACBD",normalized:"change"},{native:"\uC81C\uCD9C",normalized:"submit"},{native:"\uC785\uB825",normalized:"input"},{native:"\uB85C\uB4DC",normalized:"load"},{native:"\uC2A4\uD06C\uB864",normalized:"scroll"},{native:"\uD0A4\uB2E4\uC6B4",normalized:"keydown"},{native:"\uD0A4\uC5C5",normalized:"keyup"},{native:"\uB9C8\uC6B0\uC2A4\uC624\uBC84",normalized:"mouseover"},{native:"\uB9C8\uC6B0\uC2A4\uC544\uC6C3",normalized:"mouseout"},{native:"\uB0B4",normalized:"my"},{native:"\uADF8\uAC83\uC758",normalized:"its"},{native:"\uD558\uBA74",normalized:"on"},{native:"\uC73C\uBA74",normalized:"on"},{native:"\uBA74",normalized:"on"},{native:"\uD560\uB54C",normalized:"on"},{native:"\uD560 \uB54C",normalized:"on"},{native:"\uC744\uB54C",normalized:"on"},{native:"\uC744 \uB54C",normalized:"on"},{native:"\uD558\uB2C8\uAE4C",normalized:"on"},{native:"\uB2C8\uAE4C",normalized:"on"},{native:"\uADF8\uB7EC\uBA74",normalized:"then"},{native:"\uADF8\uB807\uC9C0\uC54A\uC73C\uBA74",normalized:"otherwise"},{native:"\uC911\uB2E8",normalized:"break"},{native:"\uADF8\uB9AC\uACE0",normalized:"and"},{native:"\uB610\uB294",normalized:"or"},{native:"\uC544\uB2C8",normalized:"not"},{native:"\uC774\uB2E4",normalized:"is"},{native:"\uCD94\uAC00",normalized:"add"},{native:"\uB97C\uD1A0\uAE00",normalized:"toggle"},{native:"\uB97C\uC804\uD658",normalized:"toggle"},{native:"\uB97C\uCD94\uAC00",normalized:"add"},{native:"\uB97C\uC81C\uAC70",normalized:"remove"},{native:"\uB97C\uC0AD\uC81C",normalized:"remove"},{native:"\uB97C\uC99D\uAC00",normalized:"increment"},{native:"\uB97C\uAC10\uC18C",normalized:"decrement"},{native:"\uB97C\uD45C\uC2DC",normalized:"show"},{native:"\uB97C\uC228\uAE30\uB2E4",normalized:"hide"},{native:"\uB97C\uC124\uC815",normalized:"set"},{native:"\uC744\uD1A0\uAE00",normalized:"toggle"},{native:"\uC744\uC804\uD658",normalized:"toggle"},{native:"\uC744\uCD94\uAC00",normalized:"add"},{native:"\uC744\uC81C\uAC70",normalized:"remove"},{native:"\uC744\uC0AD\uC81C",normalized:"remove"},{native:"\uC744\uC99D\uAC00",normalized:"increment"},{native:"\uC744\uAC10\uC18C",normalized:"decrement"},{native:"\uC744\uD45C\uC2DC",normalized:"show"},{native:"\uC744\uC228\uAE30\uB2E4",normalized:"hide"},{native:"\uC744\uC124\uC815",normalized:"set"},{native:"\uCD08",normalized:"s"},{native:"\uBC00\uB9AC\uCD08",normalized:"ms"},{native:"\uBD84",normalized:"m"},{native:"\uC2DC\uAC04",normalized:"h"}],ji=[{pattern:"\uBC00\uB9AC\uCD08",suffix:"ms",length:3},{pattern:"\uC2DC\uAC04",suffix:"h",length:2},{pattern:"\uCD08",suffix:"s",length:1},{pattern:"\uBD84",suffix:"m",length:1}],st=class extends w{constructor(){super();this.language="ko";this.direction="ltr";this.initializeKeywordsFromProfile(ne,Ni),this.normalizer=new ge}tokenize(e){let r=[],t=0;for(;t<e.length;){if(k(e[t])){t++;continue}if(L(e[t])){let a=this.tryEventModifier(e,t);if(a){r.push(a),t=a.position.end;continue}let l=this.trySelector(e,t);if(l){r.push(l),t=l.position.end;continue}}if(P(e[t])){let a=this.tryString(e,t);if(a){r.push(a),t=a.position.end;continue}}if(E(e,t)){let a=this.tryUrl(e,t);if(a){r.push(a),t=a.position.end;continue}}if(T(e[t])){let a=this.extractKoreanNumber(e,t);if(a){r.push(a),t=a.position.end;continue}}let o=this.tryVariableRef(e,t);if(o){r.push(o),t=o.position.end;continue}if(ye(e[t])){let a=this.extractKoreanWord(e,t);if(a){r.push(a),t=a.position.end;continue}}let s=this.tryMultiCharParticle(e,t,rn);if(s){let a=on.get(s.value);a?r.push({...s,metadata:{particleRole:a.role,particleConfidence:a.confidence,particleVariant:a.variant}}):r.push(s),t=s.position.end;continue}if(at.has(e[t])){let a=e[t],l=on.get(a);l?r.push({...u(a,"particle",p(t,t+1)),metadata:{particleRole:l.role,particleConfidence:l.confidence,particleVariant:l.variant}}):r.push(u(a,"particle",p(t,t+1))),t++;continue}if(S(e[t])){let a=this.extractAsciiWord(e,t);if(a){r.push(a),t=a.position.end;continue}}t++}return new b(r,"ko")}classifyToken(e){return Ri.has(e)?"particle":this.isKeyword(e)?"keyword":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":"identifier"}extractKoreanWord(e,r){for(let c=Math.min(6,e.length-r);c>=2;c--){let d=e.slice(r,r+c),x=!0;for(let f=0;f<d.length;f++)if(!ye(d[f])){x=!1;break}if(!x)continue;let z=this.lookupKeyword(d);if(z)return u(d,"keyword",p(r,r+c),z.normalized);let y=this.tryMorphKeywordMatch(d,r,r+c);if(y)return y}let o=r,s="";for(;o<e.length;){let c=e[o],d=o+1<e.length?e[o+1]:"";if(at.has(c)&&s.length>0&&(d===""||k(d)||!ye(d)||at.has(d)))break;let x=!1;for(let z of rn)if(e.slice(o,o+z.length)===z&&s.length>0){let y=o+z.length,f=y<e.length?e[y]:"";if(f===""||k(f)||!ye(f)){x=!0;break}}if(x)break;if(ye(c))s+=c,o++;else break}if(!s)return null;let a=this.lookupKeyword(s);if(a)return u(s,"keyword",p(r,o),a.normalized);let l=this.tryMorphKeywordMatch(s,r,o);return l||u(s,"identifier",p(r,o))}extractAsciiWord(e,r){let t=r,o="";for(;t<e.length&&S(e[t]);)o+=e[t++];return o?u(o,"identifier",p(r,t)):null}extractKoreanNumber(e,r){return this.tryNumberWithTimeUnits(e,r,ji,{allowSign:!1,skipWhitespace:!1})}},Ve=new st;C("ko",Ve,ne);function Mi(i){let n=i.charCodeAt(0);return n>=1536&&n<=1791||n>=1872&&n<=1919||n>=2208&&n<=2303||n>=64336&&n<=65023||n>=65136&&n<=65279}function Ai(i){for(let n of i)if(Mi(n))return!0;return!1}function Ii(i){return i.replace(/[\u064B-\u0652\u0670]/g,"")}var Vi=[{pattern:"\u0648\u0627\u0644",confidencePenalty:.15,prefixType:"conjunction"},{pattern:"\u0641\u0627\u0644",confidencePenalty:.15,prefixType:"conjunction"},{pattern:"\u0628\u0627\u0644",confidencePenalty:.15,prefixType:"preposition"},{pattern:"\u0643\u0627\u0644",confidencePenalty:.15,prefixType:"preposition"},{pattern:"\u0644\u0644",confidencePenalty:.12,prefixType:"preposition"}],Oi=[{pattern:"\u0627\u0644",confidencePenalty:.08,prefixType:"article",minRemaining:2},{pattern:"\u0648",confidencePenalty:.08,prefixType:"conjunction",minRemaining:3},{pattern:"\u0641",confidencePenalty:.08,prefixType:"conjunction",minRemaining:3},{pattern:"\u0628",confidencePenalty:.1,prefixType:"preposition",minRemaining:3},{pattern:"\u0644",confidencePenalty:.1,prefixType:"preposition",minRemaining:3},{pattern:"\u0643",confidencePenalty:.1,prefixType:"preposition",minRemaining:3}],Wi=[{pattern:"\u064A",confidencePenalty:.12,prefixType:"verb-marker",minRemaining:3},{pattern:"\u062A",confidencePenalty:.12,prefixType:"verb-marker",minRemaining:3},{pattern:"\u0646",confidencePenalty:.12,prefixType:"verb-marker",minRemaining:3},{pattern:"\u0623",confidencePenalty:.12,prefixType:"verb-marker",minRemaining:3},{pattern:"\u0627",confidencePenalty:.12,prefixType:"verb-marker",minRemaining:3}],_i=[{pattern:"\u0648\u0646",confidencePenalty:.1,type:"masculine-plural"},{pattern:"\u064A\u0646",confidencePenalty:.1,type:"masculine-plural-accusative"},{pattern:"\u0627\u062A",confidencePenalty:.1,type:"feminine-plural"},{pattern:"\u0627\u0646",confidencePenalty:.1,type:"dual-nominative"},{pattern:"\u064A\u0646",confidencePenalty:.1,type:"dual-accusative"},{pattern:"\u0647\u0627",confidencePenalty:.1,type:"pronoun-her"},{pattern:"\u0647\u0645",confidencePenalty:.1,type:"pronoun-them"},{pattern:"\u0647\u0646",confidencePenalty:.1,type:"pronoun-them-f"},{pattern:"\u0646\u0627",confidencePenalty:.1,type:"pronoun-us"},{pattern:"\u0643\u0645",confidencePenalty:.1,type:"pronoun-you-pl"},{pattern:"\u0643",confidencePenalty:.08,type:"pronoun-you"},{pattern:"\u0647",confidencePenalty:.08,type:"pronoun-him"},{pattern:"\u064A",confidencePenalty:.08,type:"pronoun-me"},{pattern:"\u0629",confidencePenalty:.08,type:"feminine"}],he=class{constructor(){this.language="ar"}isNormalizable(n){return!(!Ai(n)||n.length<2)}normalize(n){let e=Ii(n),r=1,t=[],o=[];for(let a of Vi)if(e.startsWith(a.pattern)){let l=e.slice(a.pattern.length);if(l.length>=2){e=l,r-=a.confidencePenalty,t.push(a.pattern);break}}if(t.length===0){for(let a of Oi)if(e.startsWith(a.pattern)){let l=e.slice(a.pattern.length),c=a.minRemaining??2;if(l.length>=c){e=l,r-=a.confidencePenalty,t.push(a.pattern);break}}}if(!(e.endsWith("\u0627\u062A")||e.endsWith("\u0629")||e.endsWith("\u0648\u0646")||e.endsWith("\u064A\u0646")||e.endsWith("\u0647\u0627")||e.endsWith("\u0647\u0645")||e.endsWith("\u0647\u0646")||e.endsWith("\u0646\u0627")||e.endsWith("\u0643\u0645"))&&(t.length===0||t[0]==="\u0648"||t[0]==="\u0641")){for(let a of Wi)if(e.startsWith(a.pattern)){let l=e.slice(a.pattern.length),c=a.minRemaining??3;if(l.length>=c){e=l,r-=a.confidencePenalty,t.push(a.pattern);break}}}for(let a of _i)if(e.endsWith(a.pattern)){let l=e.slice(0,-a.pattern.length);l.length>=2&&(e=l,r-=a.confidencePenalty,o.push(a.pattern))}return r=Math.max(.5,r),t.length===0&&o.length===0?V(n):j(e,r,{removedPrefixes:t,removedSuffixes:o})}},el=new he;var re={code:"ar",name:"Arabic",nativeName:"\u0627\u0644\u0639\u0631\u0628\u064A\u0629",direction:"rtl",wordOrder:"VSO",markingStrategy:"preposition",usesSpaces:!0,verb:{position:"start",subjectDrop:!0},references:{me:"\u0623\u0646\u0627",it:"\u0647\u0648",you:"\u0623\u0646\u062A",result:"\u0627\u0644\u0646\u062A\u064A\u062C\u0629",event:"\u0627\u0644\u062D\u062F\u062B",target:"\u0627\u0644\u0647\u062F\u0641",body:"\u0627\u0644\u062C\u0633\u0645"},possessive:{marker:"",markerPosition:"after-object",usePossessiveAdjectives:!0,specialForms:{me:"\u0644\u064A",it:"\u0644\u0647",you:"\u0644\u0643"},keywords:{\u0644\u064A:"me",\u0644\u0643:"you",\u0644\u0647:"it",\u0644\u0647\u0627:"it"}},roleMarkers:{destination:{primary:"\u0639\u0644\u0649",alternatives:["\u0641\u064A","\u0625\u0644\u0649","\u0628"],position:"before"},source:{primary:"\u0645\u0646",position:"before"},patient:{primary:"",position:"before"},style:{primary:"\u0628\u0640",alternatives:["\u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645"],position:"before"}},keywords:{toggle:{primary:"\u0628\u062F\u0651\u0644",alternatives:["\u0628\u062F\u0644","\u063A\u064A\u0651\u0631","\u063A\u064A\u0631"],normalized:"toggle"},add:{primary:"\u0623\u0636\u0641",alternatives:["\u0627\u0636\u0641","\u0632\u0650\u062F"],normalized:"add"},remove:{primary:"\u0627\u062D\u0630\u0641",alternatives:["\u0623\u0632\u0644","\u0627\u0645\u0633\u062D"],normalized:"remove"},put:{primary:"\u0636\u0639",alternatives:["\u0627\u062C\u0639\u0644"],normalized:"put"},append:{primary:"\u0623\u0644\u062D\u0642",normalized:"append"},prepend:{primary:"\u0633\u0628\u0642",normalized:"prepend"},take:{primary:"\u062E\u0630",alternatives:["\u0627\u062D\u0635\u0644"],normalized:"take"},make:{primary:"\u0627\u0635\u0646\u0639",alternatives:["\u0623\u0646\u0634\u0626"],normalized:"make"},clone:{primary:"\u0627\u0633\u062A\u0646\u0633\u062E",alternatives:["\u0627\u0646\u0633\u062E"],normalized:"clone"},swap:{primary:"\u0627\u0633\u062A\u0628\u062F\u0644",alternatives:["\u062A\u0628\u0627\u062F\u0644"],normalized:"swap"},morph:{primary:"\u062D\u0648\u0651\u0644",alternatives:["\u063A\u064A\u0651\u0631"],normalized:"morph"},set:{primary:"\u0627\u0636\u0628\u0637",alternatives:["\u0639\u064A\u0651\u0646","\u062D\u062F\u062F"],normalized:"set"},get:{primary:"\u0627\u062D\u0635\u0644",alternatives:["\u062E\u0630"],normalized:"get"},increment:{primary:"\u0632\u0650\u062F",alternatives:["\u0632\u062F","\u0627\u0631\u0641\u0639"],normalized:"increment"},decrement:{primary:"\u0623\u0646\u0642\u0635",alternatives:["\u0627\u0646\u0642\u0635","\u0642\u0644\u0644"],normalized:"decrement"},log:{primary:"\u0633\u062C\u0644",normalized:"log"},show:{primary:"\u0627\u0638\u0647\u0631",alternatives:["\u0623\u0638\u0647\u0631","\u0627\u0639\u0631\u0636"],normalized:"show"},hide:{primary:"\u0627\u062E\u0641",alternatives:["\u0623\u062E\u0641\u0650","\u0627\u062E\u0641\u064A"],normalized:"hide"},transition:{primary:"\u0627\u0646\u062A\u0642\u0627\u0644",alternatives:["\u0627\u0646\u062A\u0642\u0644"],normalized:"transition"},on:{primary:"\u0639\u0644\u0649",alternatives:["\u0639\u0646\u062F","\u0644\u062F\u0649","\u062D\u064A\u0646"],normalized:"on"},trigger:{primary:"\u062A\u0634\u063A\u064A\u0644",alternatives:["\u0623\u0637\u0644\u0642","\u0641\u0639\u0651\u0644"],normalized:"trigger"},send:{primary:"\u0623\u0631\u0633\u0644",normalized:"send"},focus:{primary:"\u062A\u0631\u0643\u064A\u0632",alternatives:["\u0631\u0643\u0632"],normalized:"focus"},blur:{primary:"\u0636\u0628\u0627\u0628\u064A\u0629",alternatives:["\u0634\u0648\u0634"],normalized:"blur"},go:{primary:"\u0627\u0630\u0647\u0628",alternatives:["\u0627\u0646\u062A\u0642\u0644"],normalized:"go"},wait:{primary:"\u0627\u0646\u062A\u0638\u0631",normalized:"wait"},fetch:{primary:"\u0627\u062D\u0636\u0631",alternatives:["\u062C\u0644\u0628"],normalized:"fetch"},settle:{primary:"\u0627\u0633\u062A\u0642\u0631",normalized:"settle"},if:{primary:"\u0625\u0630\u0627",normalized:"if"},when:{primary:"\u0639\u0646\u062F\u0645\u0627",normalized:"when"},where:{primary:"\u0623\u064A\u0646",normalized:"where"},else:{primary:"\u0648\u0625\u0644\u0627",alternatives:["\u062E\u0644\u0627\u0641 \u0630\u0644\u0643"],normalized:"else"},repeat:{primary:"\u0643\u0631\u0631",normalized:"repeat"},for:{primary:"\u0644\u0643\u0644",normalized:"for"},while:{primary:"\u0628\u064A\u0646\u0645\u0627",normalized:"while"},continue:{primary:"\u0648\u0627\u0635\u0644",normalized:"continue"},halt:{primary:"\u0623\u0648\u0642\u0641",alternatives:["\u062A\u0648\u0642\u0641"],normalized:"halt"},throw:{primary:"\u0627\u0631\u0645",alternatives:["\u0627\u0631\u0645\u0650"],normalized:"throw"},call:{primary:"\u0627\u0633\u062A\u062F\u0639",alternatives:["\u0646\u0627\u062F\u0650"],normalized:"call"},return:{primary:"\u0627\u0631\u062C\u0639",alternatives:["\u0639\u064F\u062F"],normalized:"return"},then:{primary:"\u062B\u0645",alternatives:["\u0628\u0639\u062F\u0647\u0627","\u062B\u0645\u0651"],normalized:"then"},and:{primary:"\u0648\u0623\u064A\u0636\u0627\u064B",alternatives:["\u0623\u064A\u0636\u0627\u064B"],normalized:"and"},end:{primary:"\u0646\u0647\u0627\u064A\u0629",alternatives:["\u0627\u0646\u062A\u0647\u0649","\u0622\u062E\u0631"],normalized:"end"},js:{primary:"\u062C\u0627\u0641\u0627\u0633\u0643\u0631\u0628\u062A",alternatives:["js"],normalized:"js"},async:{primary:"\u0645\u062A\u0632\u0627\u0645\u0646",normalized:"async"},tell:{primary:"\u0623\u062E\u0628\u0631",normalized:"tell"},default:{primary:"\u0627\u0641\u062A\u0631\u0627\u0636\u064A",normalized:"default"},init:{primary:"\u062A\u0647\u064A\u0626\u0629",alternatives:["\u0628\u062F\u0621"],normalized:"init"},behavior:{primary:"\u0633\u0644\u0648\u0643",normalized:"behavior"},install:{primary:"\u062A\u062B\u0628\u064A\u062A",alternatives:["\u062B\u0628\u0651\u062A"],normalized:"install"},measure:{primary:"\u0642\u064A\u0627\u0633",alternatives:["\u0642\u0650\u0633"],normalized:"measure"},into:{primary:"\u0641\u064A",alternatives:["\u0625\u0644\u0649"],normalized:"into"},before:{primary:"\u0642\u0628\u0644",normalized:"before"},after:{primary:"\u0628\u0639\u062F",normalized:"after"},until:{primary:"\u062D\u062A\u0649",normalized:"until"},event:{primary:"\u062D\u062F\u062B",normalized:"event"},from:{primary:"\u0645\u0646",normalized:"from"}},tokenization:{prefixes:["\u0627\u0644","\u0648","\u0641","\u0628","\u0643","\u0644"]}};var B=A([[1536,1791],[1872,1919],[2208,2303],[64336,65023],[65136,65279]]),Ki=new Set(["\u0628\u0640","\u0644\u0640","\u0643\u0640","\u0648\u0640"]),lt=new Map([["\u0648",{normalized:"and",type:"conjunction"}],["\u0641",{normalized:"then",type:"conjunction"}],["\u0628",{normalized:"with",type:"preposition"}],["\u0644",{normalized:"to",type:"preposition"}],["\u0643",{normalized:"like",type:"preposition"}],["\u0648\u0644",{normalized:"and-to",type:"conjunction"}],["\u0648\u0628",{normalized:"and-with",type:"conjunction"}],["\u0648\u0643",{normalized:"and-like",type:"conjunction"}],["\u0641\u0644",{normalized:"then-to",type:"conjunction"}],["\u0641\u0628",{normalized:"then-with",type:"conjunction"}],["\u0641\u0643",{normalized:"then-like",type:"conjunction"}]]),an=new Map([["\u0639\u0646\u062F\u0645\u0627",{normalized:"on",formality:"formal",confidence:.95,description:"when (formal MSA)"}],["\u062D\u064A\u0646\u0645\u0627",{normalized:"on",formality:"formal",confidence:.93,description:"when/whenever (formal)"}],["\u0639\u0646\u062F",{normalized:"on",formality:"neutral",confidence:.88,description:"at/when (neutral)"}],["\u062D\u064A\u0646",{normalized:"on",formality:"neutral",confidence:.85,description:"when/time (neutral)"}],["\u0644\u0645\u0651\u0627",{normalized:"on",formality:"dialectal",confidence:.7,description:"when (dialectal, with shadda)"}],["\u0644\u0645\u0627",{normalized:"on",formality:"dialectal",confidence:.68,description:"when (dialectal, no diacritic)"}],["\u0644\u062F\u0649",{normalized:"on",formality:"neutral",confidence:.82,description:"at/with (temporal)"}]]),Oe=new Set(["\u0641\u064A","\u0639\u0644\u0649","\u0645\u0646","\u0625\u0644\u0649","\u0627\u0644\u0649","\u0645\u0639","\u0639\u0646","\u0642\u0628\u0644","\u0628\u0639\u062F","\u0628\u064A\u0646"]),qi=[{native:"\u0635\u062D\u064A\u062D",normalized:"true"},{native:"\u062E\u0637\u0623",normalized:"false"},{native:"null",normalized:"null"},{native:"\u0641\u0627\u0631\u063A",normalized:"null"},{native:"\u063A\u064A\u0631 \u0645\u0639\u0631\u0641",normalized:"undefined"},{native:"\u0627\u0644\u0623\u0648\u0644",normalized:"first"},{native:"\u0623\u0648\u0644",normalized:"first"},{native:"\u0627\u0644\u0623\u062E\u064A\u0631",normalized:"last"},{native:"\u0622\u062E\u0631",normalized:"last"},{native:"\u0627\u0644\u062A\u0627\u0644\u064A",normalized:"next"},{native:"\u0627\u0644\u0633\u0627\u0628\u0642",normalized:"previous"},{native:"\u0627\u0644\u0623\u0642\u0631\u0628",normalized:"closest"},{native:"\u0627\u0644\u0623\u0628",normalized:"parent"},{native:"\u0627\u0644\u0646\u0642\u0631",normalized:"click"},{native:"\u0646\u0642\u0631",normalized:"click"},{native:"\u0627\u0644\u0625\u062F\u062E\u0627\u0644",normalized:"input"},{native:"\u0625\u062F\u062E\u0627\u0644",normalized:"input"},{native:"\u0627\u0644\u062A\u063A\u064A\u064A\u0631",normalized:"change"},{native:"\u062A\u063A\u064A\u064A\u0631",normalized:"change"},{native:"\u0627\u0644\u0625\u0631\u0633\u0627\u0644",normalized:"submit"},{native:"\u0625\u0631\u0633\u0627\u0644",normalized:"submit"},{native:"\u0627\u0644\u062A\u0631\u0643\u064A\u0632",normalized:"focus"},{native:"\u0641\u0642\u062F\u0627\u0646 \u0627\u0644\u062A\u0631\u0643\u064A\u0632",normalized:"blur"},{native:"\u0636\u063A\u0637",normalized:"keydown"},{native:"\u0631\u0641\u0639",normalized:"keyup"},{native:"\u062A\u0645\u0631\u064A\u0631 \u0627\u0644\u0641\u0623\u0631\u0629",normalized:"mouseover"},{native:"\u0645\u063A\u0627\u062F\u0631\u0629 \u0627\u0644\u0641\u0623\u0631\u0629",normalized:"mouseout"},{native:"\u062A\u062D\u0645\u064A\u0644",normalized:"load"},{native:"\u062A\u0645\u0631\u064A\u0631",normalized:"scroll"},{native:"\u0623\u0646\u0627",normalized:"me"},{native:"\u0647\u0648",normalized:"it"},{native:"\u0647\u064A",normalized:"it"},{native:"\u0627\u0644\u0646\u062A\u064A\u062C\u0629",normalized:"result"},{native:"\u0627\u0644\u062D\u062F\u062B",normalized:"event"},{native:"\u0627\u0644\u0647\u062F\u0641",normalized:"target"},{native:"\u062B\u0627\u0646\u064A\u0629",normalized:"s"},{native:"\u062B\u0648\u0627\u0646\u064A",normalized:"s"},{native:"\u0645\u0644\u064A \u062B\u0627\u0646\u064A\u0629",normalized:"ms"},{native:"\u062F\u0642\u064A\u0642\u0629",normalized:"m"},{native:"\u062F\u0642\u0627\u0626\u0642",normalized:"m"},{native:"\u0633\u0627\u0639\u0629",normalized:"h"},{native:"\u0633\u0627\u0639\u0627\u062A",normalized:"h"},{native:"\u0628\u062F\u0644",normalized:"toggle"},{native:"\u063A\u064A\u0631",normalized:"toggle"},{native:"\u0627\u0636\u0641",normalized:"add"},{native:"\u0627\u0632\u0644",normalized:"remove"},{native:"\u0627\u0636\u0639",normalized:"put"},{native:"\u064A\u0636\u0639",normalized:"put"},{native:"\u0627\u062C\u0639\u0644",normalized:"put"},{native:"\u0639\u064A\u0646",normalized:"set"},{native:"\u0632\u062F",normalized:"increment"},{native:"\u0627\u0631\u0641\u0639",normalized:"increment"},{native:"\u0627\u0646\u0642\u0635",normalized:"decrement"},{native:"\u0642\u0644\u0644",normalized:"decrement"},{native:"\u0633\u062C\u0644",normalized:"log"},{native:"\u0627\u0638\u0647\u0631",normalized:"show"},{native:"\u0627\u0639\u0631\u0636",normalized:"show"},{native:"\u0627\u062E\u0641",normalized:"hide"},{native:"\u0627\u062E\u0641\u064A",normalized:"hide"},{native:"\u0634\u063A\u0644",normalized:"trigger"},{native:"\u0627\u0631\u0633\u0644",normalized:"send"},{native:"\u0631\u0643\u0632",normalized:"focus"},{native:"\u0634\u0648\u0634",normalized:"blur"},{native:"\u0627\u0630\u0627",normalized:"if"},{native:"\u0644\u0648",normalized:"if"},{native:"\u0648\u0627\u0644\u0627",normalized:"else"},{native:"\u062A\u0648\u0642\u0641",normalized:"halt"},{native:"\u0627\u0646\u0633\u062E",normalized:"clone"},{native:"\u0625\u0630\u0646",normalized:"then"},{native:"\u0641\u0625\u0646",normalized:"then"},{native:"\u0646\u0647\u0627\u064A\u0629",normalized:"end"},{native:"\u0642\u0628\u0644",normalized:"before"},{native:"\u0628\u0639\u062F",normalized:"after"}],Ui=[{pattern:"\u0645\u0644\u064A \u062B\u0627\u0646\u064A\u0629",suffix:"ms",length:9,caseInsensitive:!1},{pattern:"\u0645\u0644\u064A_\u062B\u0627\u0646\u064A\u0629",suffix:"ms",length:8,caseInsensitive:!1},{pattern:"\u062F\u0642\u0627\u0626\u0642",suffix:"m",length:5,caseInsensitive:!1},{pattern:"\u062F\u0642\u064A\u0642\u0629",suffix:"m",length:5,caseInsensitive:!1},{pattern:"\u062B\u0648\u0627\u0646\u064A",suffix:"s",length:5,caseInsensitive:!1},{pattern:"\u062B\u0627\u0646\u064A\u0629",suffix:"s",length:5,caseInsensitive:!1},{pattern:"\u0633\u0627\u0639\u0627\u062A",suffix:"h",length:5,caseInsensitive:!1},{pattern:"\u0633\u0627\u0639\u0629",suffix:"h",length:4,caseInsensitive:!1}],ct=class extends w{constructor(){super();this.language="ar";this.direction="rtl";this.initializeKeywordsFromProfile(re,qi),this.normalizer=new he}tokenize(e){let r=[],t=0;for(;t<e.length;){if(k(e[t])){t++;continue}if(L(e[t])){let a=this.tryEventModifier(e,t);if(a){r.push(a),t=a.position.end;continue}let l=this.trySelector(e,t);if(l){r.push(l),t=l.position.end;continue}}if(P(e[t])){let a=this.tryString(e,t);if(a){r.push(a),t=a.position.end;continue}}if(E(e,t)){let a=this.tryUrl(e,t);if(a){r.push(a),t=a.position.end;continue}}if(T(e[t])){let a=this.extractArabicNumber(e,t);if(a){r.push(a),t=a.position.end;continue}}let o=this.tryVariableRef(e,t);if(o){r.push(o),t=o.position.end;continue}let s=this.tryPreposition(e,t);if(s){r.push(s),t=s.position.end;continue}if(B(e[t])){let a=this.tryProclitic(e,t);if(a){r.push(a.conjunction),t=a.conjunction.position.end;continue}let l=this.extractArabicWord(e,t);if(l){r.push(l),t=l.position.end;continue}}if(S(e[t])){let a=this.extractAsciiWord(e,t);if(a){r.push(a),t=a.position.end;continue}}t++}return new b(r,"ar")}classifyToken(e){return Oe.has(e)?"particle":this.isKeyword(e)?"keyword":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":"identifier"}tryPreposition(e,r){let t=Array.from(Oe).sort((o,s)=>s.length-o.length);for(let o of t)if(e.slice(r,r+o.length)===o){let s=r+o.length;if(s>=e.length||k(e[s])||!B(e[s]))return{...u(o,"particle",p(r,s)),metadata:{prepositionValue:o}}}return null}tryProclitic(e,r){let t=r;for(;t<e.length&&(B(e[t])||e[t]==="\u0640");)t++;let o=e.slice(r,t);if(this.lookupKeyword(o)||an.has(o)||Oe.has(o))return null;if(r+2<=e.length){let z=e.slice(r,r+2),y=lt.get(z);if(y){let f=r+2;if(f<e.length&&B(e[f])){let g=0,v=f;for(;v<e.length&&B(e[v]);)g++,v++;if(g>=2)if(lt.get(e[r])){let K=e.slice(r+1,t);if(!this.lookupKeyword(K)){let me=y.type==="conjunction"?"conjunction":"particle";return{conjunction:u(z,me,p(r,f),y.normalized)}}}else{let K=y.type==="conjunction"?"conjunction":"particle";return{conjunction:u(z,K,p(r,f),y.normalized)}}}}}let s=e[r],a=lt.get(s);if(!a)return null;let l=r+1;if(l>=e.length||!B(e[l]))return null;let c=0,d=l;for(;d<e.length&&B(e[d]);)c++,d++;if(c<2)return null;let x=a.type==="conjunction"?"conjunction":"particle";return{conjunction:u(s,x,p(r,l),a.normalized)}}extractArabicWord(e,r){let t=r,o="";for(let c of Ki){let d=c.replace("\u0640","");e.slice(t,t+d.length)}for(;t<e.length&&(B(e[t])||e[t]==="\u0640");)o+=e[t++];if(!o)return null;let s=an.get(o);if(s)return{...u(o,"keyword",p(r,t),s.normalized),metadata:{temporalFormality:s.formality,temporalConfidence:s.confidence}};let a=this.lookupKeyword(o);if(a)return u(o,"keyword",p(r,t),a.normalized);if(Oe.has(o))return{...u(o,"particle",p(r,t)),metadata:{prepositionValue:o}};let l=this.tryMorphKeywordMatch(o,r,t);return l||u(o,"identifier",p(r,t))}extractAsciiWord(e,r){let t=r,o="";for(;t<e.length&&S(e[t]);)o+=e[t++];return o?u(o,"identifier",p(r,t)):null}extractArabicNumber(e,r){return this.tryNumberWithTimeUnits(e,r,Ui,{allowSign:!1,skipWhitespace:!0})}},We=new ct;C("ar",We,re);function Bi(i){let n=i.charCodeAt(0);return n>=65&&n<=90||n>=97&&n<=122?!0:"\xE7\xC7\u011F\u011E\u0131\u0130\xF6\xD6\u015F\u015E\xFC\xDC".includes(i)}function Fi(i){for(let n of i)if(Bi(n))return!0;return!1}function mt(i){return"a\u0131ouAIOU".includes(i)}function sn(i){return"ei\xF6\xFCE\u0130\xD6\xDC".includes(i)}function ln(i){return mt(i)||sn(i)}function Di(i){for(let n=i.length-1;n>=0;n--)if(ln(i[n]))return i[n];return null}function Gi(i,n){let e=Di(i);if(!e)return!0;let r=n.split("").find(t=>ln(t));return r?mt(e)?mt(r):sn(r):!0}var $i=[{pattern:"iyorsunuz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"\u0131yorsunuz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"\xFCyorsunuz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"uyorsunuz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"iyorsun",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"\u0131yorsun",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"\xFCyorsun",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"uyorsun",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"iyoruz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"\u0131yoruz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"\xFCyoruz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"uyoruz",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"iyorum",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"\u0131yorum",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"\xFCyorum",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"uyorum",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"iyorlar",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"\u0131yorlar",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"\xFCyorlar",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"uyorlar",confidence:.82,conjugationType:"progressive",minStemLength:2},{pattern:"eceksiniz",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"acaks\u0131n\u0131z",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"eceksin",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"acaks\u0131n",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"ece\u011Fiz",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"aca\u011F\u0131z",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"ece\u011Fim",confidence:.85,conjugationType:"future",minStemLength:2},{pattern:"aca\u011F\u0131m",confidence:.85,conjugationType:"future",minStemLength:2},{pattern:"ecekler",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"acaklar",confidence:.82,conjugationType:"future",minStemLength:2},{pattern:"mi\u015Fsiniz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"m\u0131\u015Fs\u0131n\u0131z",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"m\xFC\u015Fs\xFCn\xFCz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mu\u015Fsunuz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mi\u015Fsin",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"m\u0131\u015Fs\u0131n",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"m\xFC\u015Fs\xFCn",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mu\u015Fsun",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mi\u015Fiz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"m\u0131\u015F\u0131z",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"m\xFC\u015F\xFCz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mu\u015Fuz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mi\u015Fim",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"m\u0131\u015F\u0131m",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"m\xFC\u015F\xFCm",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"mu\u015Fum",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"mi\u015Fler",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"m\u0131\u015Flar",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"m\xFC\u015Fler",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"mu\u015Flar",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"diniz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"d\u0131n\u0131z",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"d\xFCn\xFCz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dunuz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tiniz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"t\u0131n\u0131z",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"t\xFCn\xFCz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tunuz",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"diler",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"d\u0131lar",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"d\xFCler",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dular",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tiler",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"t\u0131lar",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"t\xFCler",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tular",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"din",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"d\u0131n",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"d\xFCn",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dun",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tin",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"t\u0131n",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"t\xFCn",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tun",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dik",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"d\u0131k",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"d\xFCk",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"duk",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tik",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"t\u0131k",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"t\xFCk",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"tuk",confidence:.82,conjugationType:"past",minStemLength:2},{pattern:"dim",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"d\u0131m",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"d\xFCm",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"dum",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"tim",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"t\u0131m",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"t\xFCm",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"tum",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"iyor",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"\u0131yor",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"\xFCyor",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"uyor",confidence:.85,conjugationType:"progressive",minStemLength:2},{pattern:"ecek",confidence:.85,conjugationType:"future",minStemLength:2},{pattern:"acak",confidence:.85,conjugationType:"future",minStemLength:2},{pattern:"mi\u015F",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"m\u0131\u015F",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"m\xFC\u015F",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"mu\u015F",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"di",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"d\u0131",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"d\xFC",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"du",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"ti",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"t\u0131",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"t\xFC",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"tu",confidence:.85,conjugationType:"past",minStemLength:2},{pattern:"mek",confidence:.88,conjugationType:"dictionary",minStemLength:2},{pattern:"mak",confidence:.88,conjugationType:"dictionary",minStemLength:2},{pattern:"eyelim",confidence:.82,conjugationType:"optative",minStemLength:2},{pattern:"ayal\u0131m",confidence:.82,conjugationType:"optative",minStemLength:2},{pattern:"eyim",confidence:.82,conjugationType:"optative",minStemLength:2},{pattern:"ay\u0131m",confidence:.82,conjugationType:"optative",minStemLength:2},{pattern:"elim",confidence:.82,conjugationType:"optative",minStemLength:2},{pattern:"al\u0131m",confidence:.82,conjugationType:"optative",minStemLength:2},{pattern:"melisiniz",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"mal\u0131s\u0131n\u0131z",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"melisin",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"mal\u0131s\u0131n",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"meliyiz",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"mal\u0131y\u0131z",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"meliyim",confidence:.85,conjugationType:"necessitative",minStemLength:2},{pattern:"mal\u0131y\u0131m",confidence:.85,conjugationType:"necessitative",minStemLength:2},{pattern:"meliler",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"mal\u0131lar",confidence:.82,conjugationType:"necessitative",minStemLength:2},{pattern:"meli",confidence:.85,conjugationType:"necessitative",minStemLength:2},{pattern:"mal\u0131",confidence:.85,conjugationType:"necessitative",minStemLength:2},{pattern:"ebiliyor",confidence:.82,conjugationType:"potential",minStemLength:2},{pattern:"abiliyor",confidence:.82,conjugationType:"potential",minStemLength:2},{pattern:"ebilir",confidence:.85,conjugationType:"potential",minStemLength:2},{pattern:"abilir",confidence:.85,conjugationType:"potential",minStemLength:2},{pattern:"ebildi",confidence:.82,conjugationType:"potential",minStemLength:2},{pattern:"abildi",confidence:.82,conjugationType:"potential",minStemLength:2},{pattern:"ebilmek",confidence:.85,conjugationType:"potential",minStemLength:2},{pattern:"abilmek",confidence:.85,conjugationType:"potential",minStemLength:2},{pattern:"iniz",confidence:.82,conjugationType:"imperative",minStemLength:2},{pattern:"\u0131n\u0131z",confidence:.82,conjugationType:"imperative",minStemLength:2},{pattern:"\xFCn\xFCz",confidence:.82,conjugationType:"imperative",minStemLength:2},{pattern:"unuz",confidence:.82,conjugationType:"imperative",minStemLength:2},{pattern:"in",confidence:.8,conjugationType:"imperative",minStemLength:2},{pattern:"\u0131n",confidence:.8,conjugationType:"imperative",minStemLength:2},{pattern:"\xFCn",confidence:.8,conjugationType:"imperative",minStemLength:2},{pattern:"un",confidence:.8,conjugationType:"imperative",minStemLength:2},{pattern:"ildi",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"\u0131ld\u0131",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"\xFCld\xFC",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"uldu",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"ilir",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"\u0131l\u0131r",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"\xFCl\xFCr",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"ulur",confidence:.82,conjugationType:"passive",minStemLength:2},{pattern:"tirmek",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"t\u0131rmak",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"t\xFCrmek",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"turmak",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"dirmek",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"d\u0131rmak",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"d\xFCrmek",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"durmak",confidence:.82,conjugationType:"causative",minStemLength:2},{pattern:"miyorsunuz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"m\u0131yorsunuz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"m\xFCyorsunuz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"muyorsunuz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"miyorsun",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"m\u0131yorsun",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"m\xFCyorsun",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"muyorsun",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"miyoruz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"m\u0131yoruz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"m\xFCyoruz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"muyoruz",confidence:.8,conjugationType:"negative",minStemLength:2},{pattern:"miyorum",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"m\u0131yorum",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"m\xFCyorum",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"muyorum",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"miyor",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"m\u0131yor",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"m\xFCyor",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"muyor",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"medi",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"mad\u0131",confidence:.82,conjugationType:"negative",minStemLength:2},{pattern:"me",confidence:.75,conjugationType:"negative",minStemLength:3},{pattern:"ma",confidence:.75,conjugationType:"negative",minStemLength:3}],ve=class{constructor(){this.language="tr"}isNormalizable(n){return!(!Fi(n)||n.length<3)}normalize(n){let e=n.toLowerCase();for(let r of $i)if(e.endsWith(r.pattern)){let t=e.slice(0,-r.pattern.length),o=r.minStemLength??2;if(t.length<o)continue;if(!Gi(t,r.pattern)){let a=r.confidence*.9,l={removedSuffixes:[r.pattern]};return r.conjugationType&&(l.conjugationType=r.conjugationType),j(t,a,l)}let s={removedSuffixes:[r.pattern]};return r.conjugationType&&(s.conjugationType=r.conjugationType),j(t,r.confidence,s)}return V(n)}},pl=new ve;var ie={code:"tr",name:"Turkish",nativeName:"T\xFCrk\xE7e",direction:"ltr",wordOrder:"SOV",markingStrategy:"case-suffix",usesSpaces:!0,verb:{position:"end",suffixes:["mek","mak","yor","di","mi\u015F"],subjectDrop:!0},references:{me:"ben",it:"o",you:"sen",result:"sonu\xE7",event:"olay",target:"hedef",body:"g\xF6vde"},possessive:{marker:"",markerPosition:"after-object",usePossessiveAdjectives:!0,specialForms:{me:"benim",it:"onun",you:"senin"},keywords:{benim:"me",senin:"you",onun:"it"}},roleMarkers:{patient:{primary:"i",alternatives:["\u0131","u","\xFC"],position:"after"},destination:{primary:"e",alternatives:["a","de","da","te","ta"],position:"after"},source:{primary:"den",alternatives:["dan","ten","tan"],position:"after"},style:{primary:"le",alternatives:["la","yle","yla"],position:"after"},event:{primary:"i",alternatives:["\u0131","u","\xFC"],position:"after"}},keywords:{toggle:{primary:"de\u011Fi\u015Ftir",alternatives:["a\xE7/kapat"],normalized:"toggle"},add:{primary:"ekle",normalized:"add"},remove:{primary:"kald\u0131r",alternatives:["sil"],normalized:"remove"},put:{primary:"koy",normalized:"put"},append:{primary:"ekle",normalized:"append"},take:{primary:"al",normalized:"take"},make:{primary:"yap",normalized:"make"},clone:{primary:"kopyala",normalized:"clone"},swap:{primary:"de\u011Fi\u015Ftir",alternatives:["takas"],normalized:"swap"},morph:{primary:"d\xF6n\xFC\u015Ft\xFCr",alternatives:["\u015Fekil de\u011Fi\u015Ftir"],normalized:"morph"},set:{primary:"ayarla",alternatives:["yap","belirle"],normalized:"set"},get:{primary:"al",normalized:"get"},increment:{primary:"art\u0131r",normalized:"increment"},decrement:{primary:"azalt",normalized:"decrement"},log:{primary:"kaydet",normalized:"log"},show:{primary:"g\xF6ster",normalized:"show"},hide:{primary:"gizle",normalized:"hide"},transition:{primary:"ge\xE7i\u015F",normalized:"transition"},on:{primary:"\xFCzerinde",alternatives:["oldu\u011Funda","zaman"],normalized:"on"},trigger:{primary:"tetikle",normalized:"trigger"},send:{primary:"g\xF6nder",normalized:"send"},focus:{primary:"odak",normalized:"focus"},blur:{primary:"bulan\u0131k",normalized:"blur"},go:{primary:"git",normalized:"go"},wait:{primary:"bekle",normalized:"wait"},fetch:{primary:"getir",normalized:"fetch"},settle:{primary:"sabitlen",normalized:"settle"},if:{primary:"e\u011Fer",normalized:"if"},when:{primary:"iken",alternatives:["durumunda","oldu\u011Funda"],normalized:"when"},where:{primary:"nerede",normalized:"where"},else:{primary:"yoksa",normalized:"else"},repeat:{primary:"tekrarla",normalized:"repeat"},for:{primary:"i\xE7in",normalized:"for"},while:{primary:"iken",normalized:"while"},continue:{primary:"devam",normalized:"continue"},halt:{primary:"durdur",normalized:"halt"},throw:{primary:"f\u0131rlat",normalized:"throw"},call:{primary:"\xE7a\u011F\u0131r",normalized:"call"},return:{primary:"d\xF6n",normalized:"return"},then:{primary:"sonra",alternatives:["ard\u0131ndan","daha sonra"],normalized:"then"},and:{primary:"ve",alternatives:["ayr\u0131ca","hem de"],normalized:"and"},end:{primary:"son",alternatives:["biti\u015F","bitti"],normalized:"end"},js:{primary:"js",normalized:"js"},async:{primary:"asenkron",normalized:"async"},tell:{primary:"s\xF6yle",normalized:"tell"},default:{primary:"varsay\u0131lan",normalized:"default"},init:{primary:"ba\u015Flat",normalized:"init"},behavior:{primary:"davran\u0131\u015F",normalized:"behavior"},install:{primary:"y\xFCkle",normalized:"install"},measure:{primary:"\xF6l\xE7",normalized:"measure"},into:{primary:"i\xE7ine",normalized:"into"},before:{primary:"\xF6nce",normalized:"before"},after:{primary:"sonra",normalized:"after"},until:{primary:"kadar",normalized:"until"},event:{primary:"olay",normalized:"event"},from:{primary:"-den",alternatives:["-dan"],normalized:"from"}}};var{isLetter:cn}=M(/[a-zA-ZçÇğĞıİöÖşŞüÜ]/),mn=new Set(["ile","i\xE7in","kadar","gibi","sonra","\xF6nce","\xFCzerinde","alt\u0131nda","i\xE7inde","d\u0131\u015F\u0131nda","aras\u0131nda","kar\u015F\u0131","g\xF6re","ra\u011Fmen","do\u011Fru","boyunca"]),Hi=new Set(["de","da","te","ta","den","dan","ten","tan","e","a","ye","ya","i","\u0131","u","\xFC","in","\u0131n","un","\xFCn","le","la","yle","yla"]),Xi=[{native:"do\u011Fru",normalized:"true"},{native:"dogru",normalized:"true"},{native:"yanl\u0131\u015F",normalized:"false"},{native:"yanlis",normalized:"false"},{native:"null",normalized:"null"},{native:"bo\u015F",normalized:"null"},{native:"bos",normalized:"null"},{native:"tan\u0131ms\u0131z",normalized:"undefined"},{native:"tanimsiz",normalized:"undefined"},{native:"ilk",normalized:"first"},{native:"son",normalized:"last"},{native:"sonraki",normalized:"next"},{native:"\xF6nceki",normalized:"previous"},{native:"onceki",normalized:"previous"},{native:"en_yak\u0131n",normalized:"closest"},{native:"en_yakin",normalized:"closest"},{native:"ebeveyn",normalized:"parent"},{native:"t\u0131klama",normalized:"click"},{native:"tiklama",normalized:"click"},{native:"t\u0131k",normalized:"click"},{native:"tik",normalized:"click"},{native:"giri\u015F",normalized:"input"},{native:"giris",normalized:"input"},{native:"de\u011Fi\u015Fim",normalized:"change"},{native:"degisim",normalized:"change"},{native:"odak",normalized:"focus"},{native:"bulan\u0131k",normalized:"blur"},{native:"bulanik",normalized:"blur"},{native:"fare \xFCzerinde",normalized:"mouseover"},{native:"fare uzerinde",normalized:"mouseover"},{native:"fare d\u0131\u015F\u0131nda",normalized:"mouseout"},{native:"fare disinda",normalized:"mouseout"},{native:"kayd\u0131r",normalized:"scroll"},{native:"kaydir",normalized:"scroll"},{native:"tu\u015F_bas",normalized:"keydown"},{native:"tus_bas",normalized:"keydown"},{native:"tu\u015F_b\u0131rak",normalized:"keyup"},{native:"tus_birak",normalized:"keyup"},{native:"ben",normalized:"me"},{native:"benim",normalized:"my"},{native:"o",normalized:"it"},{native:"onun",normalized:"its"},{native:"sonu\xE7",normalized:"result"},{native:"sonuc",normalized:"result"},{native:"olay",normalized:"event"},{native:"hedef",normalized:"target"},{native:"saniye",normalized:"s"},{native:"milisaniye",normalized:"ms"},{native:"dakika",normalized:"m"},{native:"saat",normalized:"h"},{native:"ve",normalized:"and"},{native:"veya",normalized:"or"},{native:"de\u011Fil",normalized:"not"},{native:"degil",normalized:"not"},{native:"\xFCzerinde",normalized:"on"},{native:"uzerinde",normalized:"on"},{native:"oldu\u011Funda",normalized:"on"},{native:"oldugunda",normalized:"on"},{native:"ekle",normalized:"add"},{native:"de\u011Fi\u015Ftir",normalized:"toggle"},{native:"de\u011Fistir",normalized:"toggle"},{native:"kaldir",normalized:"remove"},{native:"yerlestir",normalized:"put"},{native:"olustur",normalized:"make"},{native:"artir",normalized:"increment"},{native:"yazdir",normalized:"log"},{native:"goster",normalized:"show"},{native:"gecis",normalized:"transition"},{native:"atesle",normalized:"trigger"},{native:"gonder",normalized:"send"},{native:"bulaniklastir",normalized:"blur"},{native:"odak_kaldir",normalized:"blur"},{native:"yonlendir",normalized:"go"},{native:"cek",normalized:"fetch"},{native:"yerles",normalized:"settle"},{native:"eger",normalized:"if"},{native:"degilse",normalized:"else"},{native:"firlat",normalized:"throw"},{native:"cagir",normalized:"call"},{native:"don",normalized:"return"},{native:"dondur",normalized:"return"},{native:"eszamansiz",normalized:"async"},{native:"soyle",normalized:"tell"},{native:"varsayilan",normalized:"default"},{native:"baslat",normalized:"init"},{native:"basla",normalized:"init"},{native:"davranis",normalized:"behavior"},{native:"yukle",normalized:"install"},{native:"olc",normalized:"measure"},{native:"icine",normalized:"into"},{native:"once",normalized:"before"},{native:"icin",normalized:"for"},{native:"al",normalized:"get"},{native:"yap",normalized:"set"},{native:"o_zaman",normalized:"then"},{native:"bitir",normalized:"end"},{native:"-den",normalized:"from"},{native:"-dan",normalized:"from"}],Qi=[{pattern:"milisaniye",suffix:"ms",length:10,caseInsensitive:!0},{pattern:"dakika",suffix:"m",length:6,caseInsensitive:!0},{pattern:"saniye",suffix:"s",length:6,caseInsensitive:!0},{pattern:"saat",suffix:"h",length:4,caseInsensitive:!0},{pattern:"dk",suffix:"m",length:2,checkBoundary:!0},{pattern:"sa",suffix:"h",length:2,checkBoundary:!0}],dt=class extends w{constructor(){super();this.language="tr";this.direction="ltr";this.initializeKeywordsFromProfile(ie,Xi),this.normalizer=new ve}tokenize(e){let r=[],t=0;for(;t<e.length;){if(k(e[t])){t++;continue}if(L(e[t])){let s=this.tryEventModifier(e,t);if(s){r.push(s),t=s.position.end;continue}let a=this.trySelector(e,t);if(a){r.push(a),t=a.position.end;continue}}if(P(e[t])){let s=this.tryString(e,t);if(s){r.push(s),t=s.position.end;continue}}if(E(e,t)){let s=this.tryUrl(e,t);if(s){r.push(s),t=s.position.end;continue}}if(T(e[t])){let s=this.extractTurkishNumber(e,t);if(s){r.push(s),t=s.position.end;continue}}let o=this.tryVariableRef(e,t);if(o){r.push(o),t=o.position.end;continue}if(cn(e[t])){let s=this.extractTurkishWord(e,t);if(s){r.push(s),t=s.position.end;continue}}t++}return new b(r,"tr")}classifyToken(e){let r=e.toLowerCase();return mn.has(r)||Hi.has(r)?"particle":this.isKeyword(r)?"keyword":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":"identifier"}extractTurkishWord(e,r){let t=r,o="";for(;t<e.length&&(cn(e[t])||e[t]==="_");)o+=e[t++];if(!o)return null;let s=o.toLowerCase(),a=this.lookupKeyword(s);if(a)return u(o,"keyword",p(r,t),a.normalized);if(mn.has(s))return u(o,"particle",p(r,t));let l=this.tryMorphKeywordMatch(s,r,t);return l||u(o,"identifier",p(r,t))}extractTurkishNumber(e,r){return this.tryNumberWithTimeUnits(e,r,Qi,{allowSign:!1,skipWhitespace:!0})}},_e=new dt;C("tr",_e,ie);var oe={code:"id",name:"Indonesian",nativeName:"Bahasa Indonesia",direction:"ltr",wordOrder:"SVO",markingStrategy:"preposition",usesSpaces:!0,verb:{position:"start",subjectDrop:!0},references:{me:"saya",it:"itu",you:"anda",result:"hasil",event:"peristiwa",target:"target",body:"tubuh"},possessive:{marker:"",markerPosition:"after-object",usePossessiveAdjectives:!0,specialForms:{me:"saya",it:"nya",you:"anda"},keywords:{saya:"me",aku:"me",ku:"me",anda:"you",kamu:"you",mu:"you",nya:"it",dia:"it"}},roleMarkers:{destination:{primary:"pada",alternatives:["ke","di"],position:"before"},source:{primary:"dari",position:"before"},patient:{primary:"",position:"before"},style:{primary:"dengan",position:"before"}},keywords:{toggle:{primary:"alihkan",alternatives:["ganti","tukar"],normalized:"toggle"},add:{primary:"tambah",alternatives:["tambahkan"],normalized:"add"},remove:{primary:"hapus",alternatives:["buang","hilangkan"],normalized:"remove"},put:{primary:"taruh",alternatives:["letakkan","masukkan"],normalized:"put"},append:{primary:"sisipkan",normalized:"append"},prepend:{primary:"awali",normalized:"prepend"},take:{primary:"ambil",normalized:"take"},make:{primary:"buat",alternatives:["bikin","ciptakan"],normalized:"make"},clone:{primary:"klon",alternatives:["salin","tiru"],normalized:"clone"},swap:{primary:"tukar",alternatives:["ganti"],normalized:"swap"},morph:{primary:"ubah",alternatives:["transformasi"],normalized:"morph"},set:{primary:"atur",alternatives:["tetapkan"],normalized:"set"},get:{primary:"dapatkan",alternatives:["peroleh"],normalized:"get"},increment:{primary:"tingkatkan",alternatives:["naikkan"],normalized:"increment"},decrement:{primary:"turunkan",alternatives:["kurangi"],normalized:"decrement"},log:{primary:"catat",alternatives:["rekam","cetak"],normalized:"log"},show:{primary:"tampilkan",alternatives:["perlihatkan"],normalized:"show"},hide:{primary:"sembunyikan",alternatives:["tutup"],normalized:"hide"},transition:{primary:"transisi",alternatives:["animasikan"],normalized:"transition"},on:{primary:"pada",alternatives:["saat","ketika"],normalized:"on"},trigger:{primary:"picu",alternatives:["jalankan"],normalized:"trigger"},send:{primary:"kirim",alternatives:["kirimkan"],normalized:"send"},focus:{primary:"fokus",alternatives:["fokuskan"],normalized:"focus"},blur:{primary:"blur",normalized:"blur"},go:{primary:"pergi",alternatives:["pindah","navigasi"],normalized:"go"},wait:{primary:"tunggu",normalized:"wait"},fetch:{primary:"ambil",alternatives:["muat"],normalized:"fetch"},settle:{primary:"stabilkan",normalized:"settle"},if:{primary:"jika",alternatives:["kalau","bila"],normalized:"if"},when:{primary:"ketika",normalized:"when"},where:{primary:"di_mana",normalized:"where"},else:{primary:"selainnya",normalized:"else"},repeat:{primary:"ulangi",normalized:"repeat"},for:{primary:"untuk",normalized:"for"},while:{primary:"selama",normalized:"while"},continue:{primary:"lanjutkan",alternatives:["terus"],normalized:"continue"},halt:{primary:"hentikan",alternatives:["berhenti"],normalized:"halt"},throw:{primary:"lempar",normalized:"throw"},call:{primary:"panggil",normalized:"call"},return:{primary:"kembalikan",alternatives:["kembali"],normalized:"return"},then:{primary:"lalu",alternatives:["kemudian","setelah itu"],normalized:"then"},and:{primary:"dan",alternatives:["juga","serta"],normalized:"and"},end:{primary:"selesai",alternatives:["akhir","tamat"],normalized:"end"},js:{primary:"js",alternatives:["javascript"],normalized:"js"},async:{primary:"asinkron",normalized:"async"},tell:{primary:"katakan",alternatives:["beritahu"],normalized:"tell"},default:{primary:"bawaan",normalized:"default"},init:{primary:"inisialisasi",alternatives:["mulai"],normalized:"init"},behavior:{primary:"perilaku",normalized:"behavior"},install:{primary:"pasang",alternatives:["instal"],normalized:"install"},measure:{primary:"ukur",normalized:"measure"},into:{primary:"ke dalam",normalized:"into"},before:{primary:"sebelum",normalized:"before"},after:{primary:"sesudah",alternatives:["setelah"],normalized:"after"},until:{primary:"sampai",normalized:"until"},event:{primary:"peristiwa",alternatives:["event"],normalized:"event"},from:{primary:"dari",normalized:"from"}},eventHandler:{keyword:{primary:"pada",alternatives:["ketika","saat"]},sourceMarker:{primary:"dari",position:"before"},conditionalKeyword:{primary:"ketika",alternatives:["saat","waktu"]}}};var{isLetter:Zi,isIdentifierChar:Ji}=M(/[a-zA-Z]/),dn=new Set(["di","ke","dari","pada","dengan","tanpa","untuk","oleh","antara","sebelum","sesudah","setelah","selama","sampai","hingga","sejak","menuju","tentang","terhadap","melalui","dalam","luar"]),Yi=[{native:"benar",normalized:"true"},{native:"salah",normalized:"false"},{native:"null",normalized:"null"},{native:"kosong",normalized:"null"},{native:"tidak terdefinisi",normalized:"undefined"},{native:"pertama",normalized:"first"},{native:"terakhir",normalized:"last"},{native:"selanjutnya",normalized:"next"},{native:"berikutnya",normalized:"next"},{native:"sebelumnya",normalized:"previous"},{native:"terdekat",normalized:"closest"},{native:"induk",normalized:"parent"},{native:"klik",normalized:"click"},{native:"click",normalized:"click"},{native:"masukan",normalized:"input"},{native:"input",normalized:"input"},{native:"perubahan",normalized:"change"},{native:"tombol turun",normalized:"keydown"},{native:"tombol naik",normalized:"keyup"},{native:"mouse masuk",normalized:"mouseover"},{native:"mouse keluar",normalized:"mouseout"},{native:"gulir",normalized:"scroll"},{native:"aku",normalized:"me"},{native:"ini",normalized:"me"},{native:"milikku",normalized:"my"},{native:"dia",normalized:"it"},{native:"kejadian",normalized:"event"},{native:"sasaran",normalized:"target"},{native:"detik",normalized:"s"},{native:"milidetik",normalized:"ms"},{native:"menit",normalized:"m"},{native:"jam",normalized:"h"},{native:"jika tidak",normalized:"else"},{native:"hilangkan fokus",normalized:"blur"},{native:"maka",normalized:"then"}],pt=class extends w{constructor(){super();this.language="id";this.direction="ltr";this.initializeKeywordsFromProfile(oe,Yi)}tokenize(e){let r=[],t=0;for(;t<e.length;){if(k(e[t])){t++;continue}if(L(e[t])){let a=this.tryEventModifier(e,t);if(a){r.push(a),t=a.position.end;continue}let l=this.trySelector(e,t);if(l){r.push(l),t=l.position.end;continue}}if(P(e[t])){let a=this.tryString(e,t);if(a){r.push(a),t=a.position.end;continue}}if(E(e,t)){let a=this.tryUrl(e,t);if(a){r.push(a),t=a.position.end;continue}}if(T(e[t])||e[t]==="-"&&t+1<e.length&&T(e[t+1])){let a=this.extractNumber(e,t);if(a){r.push(a),t=a.position.end;continue}}let o=this.tryVariableRef(e,t);if(o){r.push(o),t=o.position.end;continue}if(Zi(e[t])){let a=this.extractWord(e,t);if(a){r.push(a),t=a.position.end;continue}}let s=this.tryOperator(e,t);if(s){r.push(s),t=s.position.end;continue}t++}return new b(r,"id")}classifyToken(e){let r=e.toLowerCase();return dn.has(r)?"particle":this.isKeyword(r)?"keyword":e.startsWith("#")||e.startsWith(".")||e.startsWith("[")?"selector":e.startsWith('"')||e.startsWith("'")||/^\d/.test(e)?"literal":"identifier"}extractWord(e,r){let t=r,o="";for(;t<e.length&&Ji(e[t]);)o+=e[t++];if(!o)return null;let s=o.toLowerCase(),a=this.lookupKeyword(s);return a?u(o,"keyword",p(r,t),a.normalized):dn.has(s)?u(o,"particle",p(r,t)):u(o,"identifier",p(r,t))}extractNumber(e,r){let t=r,o="";for((e[t]==="-"||e[t]==="+")&&(o+=e[t++]);t<e.length&&T(e[t]);)o+=e[t++];if(t<e.length&&e[t]===".")for(o+=e[t++];t<e.length&&T(e[t]);)o+=e[t++];let s=t;for(;s<e.length&&k(e[s]);)s++;let a=e.slice(s).toLowerCase();return a.startsWith("milidetik")?(o+="ms",t=s+9):a.startsWith("detik")?(o+="s",t=s+5):a.startsWith("menit")?(o+="m",t=s+5):a.startsWith("jam")&&(o+="h",t=s+3),!o||o==="-"||o==="+"?null:u(o,"literal",p(r,t))}},Ke=new pt;C("id",Ke,oe);function pn(i){return Et(i)}function qe(i,n){return Rt(i,n)}function Ue(){return Le()}function F(i){let n="complex";return i.startsWith("#")&&!i.includes(" ")?n="id":i.startsWith(".")&&!i.includes(" ")?n="class":i.startsWith("[")&&i.endsWith("]")?n="attribute":/^[a-z][a-z0-9]*$/i.test(i)&&(n="element"),{type:"selector",value:i,selectorKind:n}}function R(i,n){let e={type:"literal",value:i};return n!==void 0?{type:"literal",value:i,dataType:n}:e}function W(i){return{type:"reference",value:i}}function ae(i,n){return{type:"property-path",object:i,property:n}}function D(i,n,e){let r={kind:"command",action:i,roles:new Map(Object.entries(n))};return e!==void 0?{...r,metadata:e}:r}function se(i,n,e,r,t){let o=new Map;o.set("event",i);let s={kind:"event-handler",action:"on",roles:o,body:n};return e!==void 0&&(s.eventModifiers=e),r!==void 0&&(s.metadata=r),t!==void 0&&t.length>0&&(s.parameterNames=t),s}function un(i,n="then",e){let r={kind:"compound",action:"compound",roles:new Map,statements:i,chainType:n};return e!==void 0&&(r.metadata=e),r}function ut(i,n){return!n||n.length===0||n.includes(i)||n.includes("expression")?!0:i==="property-path"?n.some(e=>["selector","reference","expression"].includes(e)):!1}function fn(i,n){return i.possessive?.keywords?.[n]}var _=class _{constructor(){this.stemMatchCount=0;this.totalKeywordMatches=0}matchPattern(n,e){let r=n.mark(),t=new Map;if(this.currentProfile=q(e.language),this.stemMatchCount=0,this.totalKeywordMatches=0,!this.matchTokenSequence(n,e.template.tokens,t))return n.reset(r),null;let s=this.calculateConfidence(e,t);return this.applyExtractionRules(e,t),{pattern:e,captured:t,consumedTokens:n.position()-r.position,confidence:s}}matchBest(n,e){let r=[];for(let o of e){let s=n.mark(),a=this.matchPattern(n,o);a&&r.push(a),n.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 t=r[0];return this.matchPattern(n,t.pattern),t}matchTokenSequence(n,e,r){if(this.currentProfile?.code==="ar")for(;n.peek()?.kind==="conjunction";)n.advance();for(let t of e)if(!this.matchPatternToken(n,t,r)){if(this.isOptional(t))continue;return!1}return!0}matchPatternToken(n,e,r){switch(e.type){case"literal":return this.matchLiteralToken(n,e);case"role":return this.matchRoleToken(n,e,r);case"group":return this.matchGroupToken(n,e,r);default:return!1}}matchLiteralToken(n,e){let r=n.peek();if(!r)return!1;let t=this.getMatchType(r,e.value);if(t!=="none")return this.totalKeywordMatches++,t==="stem"&&this.stemMatchCount++,n.advance(),!0;if(e.alternatives)for(let o of e.alternatives){let s=this.getMatchType(r,o);if(s!=="none")return this.totalKeywordMatches++,s==="stem"&&this.stemMatchCount++,n.advance(),!0}return!1}matchRoleToken(n,e,r){this.skipNoiseWords(n);let t=n.peek();if(!t)return e.optional||!1;let o=this.tryMatchPossessiveExpression(n);if(o)return e.expectedTypes&&e.expectedTypes.length>0&&!e.expectedTypes.includes(o.type)&&!e.expectedTypes.includes("expression")?e.optional||!1:(r.set(e.role,o),!0);let s=this.tryMatchMethodCallExpression(n);if(s)return e.expectedTypes&&e.expectedTypes.length>0&&!e.expectedTypes.includes(s.type)&&!e.expectedTypes.includes("expression")?e.optional||!1:(r.set(e.role,s),!0);let a=this.tryMatchPossessiveSelectorExpression(n);if(a)return e.expectedTypes&&e.expectedTypes.length>0&&!ut(a.type,e.expectedTypes)?e.optional||!1:(r.set(e.role,a),!0);let l=this.tryMatchPropertyAccessExpression(n);if(l)return e.expectedTypes&&e.expectedTypes.length>0&&!e.expectedTypes.includes(l.type)&&!e.expectedTypes.includes("expression")?e.optional||!1:(r.set(e.role,l),!0);let c=this.tryMatchSelectorPropertyExpression(n);if(c)return e.expectedTypes&&e.expectedTypes.length>0&&!ut(c.type,e.expectedTypes)?e.optional||!1:(r.set(e.role,c),!0);let d=this.tokenToSemanticValue(t);return!d||e.expectedTypes&&e.expectedTypes.length>0&&!e.expectedTypes.includes(d.type)?e.optional||!1:(r.set(e.role,d),n.advance(),!0)}tryMatchPossessiveExpression(n){let e=n.peek();if(!e||!this.currentProfile)return null;let r=(e.normalized||e.value).toLowerCase(),t=fn(this.currentProfile,r);if(!t)return null;let o=n.mark();n.advance();let s=n.peek();return s&&(s.kind==="identifier"||s.kind==="keyword"&&!this.isStructuralKeyword(s.value)||s.kind==="selector"&&s.value.startsWith("*"))?(n.advance(),ae(W(t),s.value)):(n.reset(o),null)}isStructuralKeyword(n){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(n.toLowerCase())}tryMatchMethodCallExpression(n){let e=n.peek();if(!e||e.kind!=="selector")return null;let r=n.mark();n.advance();let t=n.peek();if(!t||t.kind!=="operator"||t.value!==".")return n.reset(r),null;n.advance();let o=n.peek();if(!o||o.kind!=="identifier")return n.reset(r),null;n.advance();let s=n.peek();if(!s||s.kind!=="punctuation"||s.value!=="(")return n.reset(r),null;n.advance();let a=[];for(;!n.isAtEnd()&&a.length<_.MAX_METHOD_ARGS;){let c=n.peek();if(!c)break;if(c.kind==="punctuation"&&c.value===")"){n.advance();break}if(c.kind==="punctuation"&&c.value===","){n.advance();continue}a.push(c.value),n.advance()}return{type:"expression",raw:`${e.value}.${o.value}(${a.join(", ")})`}}tryMatchPropertyAccessExpression(n){let e=n.peek();if(!e||e.kind!=="identifier"&&e.kind!=="keyword")return null;let r=n.mark();n.advance();let t=n.peek();if(!t||t.kind!=="operator"||t.value!==".")return n.reset(r),null;n.advance();let o=n.peek();if(!o||o.kind!=="identifier")return n.reset(r),null;n.advance();let s=`${e.value}.${o.value}`,a=1;for(;!n.isAtEnd()&&a<_.MAX_PROPERTY_DEPTH;){let c=n.peek();if(!c||c.kind!=="operator"||c.value!==".")break;n.advance();let d=n.peek();if(!d||d.kind!=="identifier")break;n.advance(),s+=`.${d.value}`,a++}let l=n.peek();if(l&&l.kind==="punctuation"&&l.value==="("){n.advance();let c=[],d=0;for(;!n.isAtEnd()&&c.length<_.MAX_METHOD_ARGS;){let z=n.peek();if(!z)break;if(z.kind==="punctuation"&&z.value===")"){if(d===0){n.advance();break}d--}if(z.kind==="punctuation"&&z.value==="("&&d++,z.kind==="punctuation"&&z.value===","){n.advance();continue}c.push(z.value),n.advance()}return{type:"expression",raw:`${s}(${c.join(", ")})`}}return{type:"expression",raw:s}}tryMatchPossessiveSelectorExpression(n){let e=n.peek();if(!e||e.kind!=="selector")return null;let r=n.mark();n.advance();let t=n.peek();if(!t||t.kind!=="punctuation"||t.value!=="'s")return n.reset(r),null;n.advance();let o=n.peek();return!o||o.kind!=="selector"&&o.kind!=="identifier"?(n.reset(r),null):(n.advance(),ae(F(e.value),o.value))}tryMatchSelectorPropertyExpression(n){let e=n.peek();if(!e||e.kind!=="selector"||!e.value.startsWith("#"))return null;let r=n.mark();n.advance();let t=n.peek();if(!t||t.kind!=="selector"||!t.value.startsWith("."))return n.reset(r),null;let o=n.peek(1);o&&o.kind,n.advance();let s=t.value.slice(1);return ae(F(e.value),s)}matchGroupToken(n,e,r){let t=n.mark(),o=new Set(r.keys());if(!this.matchTokenSequence(n,e.tokens,r)){n.reset(t);for(let a of r.keys())o.has(a)||r.delete(a);return e.optional||!1}return!0}getMatchType(n,e){return n.value===e?"exact":n.normalized===e?"normalized":n.stem===e&&n.stemConfidence!==void 0&&n.stemConfidence>=.7?"stem":n.kind==="keyword"&&n.value.toLowerCase()===e.toLowerCase()?"case-insensitive":"none"}tokenToSemanticValue(n){switch(n.kind){case"selector":return F(n.value);case"literal":return this.parseLiteralValue(n.value);case"keyword":let e=(n.normalized||n.value).toLowerCase();return["me","you","it","result","event","target","body"].includes(e)?W(e):R(n.normalized||n.value);case"identifier":if(n.value.startsWith(":"))return W(n.value);let r=n.value.toLowerCase();return["me","you","it","result","event","target","body"].includes(r)?W(r):{type:"expression",raw:n.value};case"url":return R(n.value,"string");default:return null}}parseLiteralValue(n){if(n.startsWith('"')||n.startsWith("'")||n.startsWith("`")||n.startsWith("\u300C")){let t=n.slice(1,-1);return R(t,"string")}if(n==="true")return R(!0,"boolean");if(n==="false")return R(!1,"boolean");let e=n.match(/^(\d+(?:\.\d+)?)(ms|s|m|h)?$/);if(e){let t=parseFloat(e[1]);return e[2]?R(n,"duration"):R(t,"number")}let r=parseFloat(n);return isNaN(r)?R(n,"string"):R(r,"number")}applyExtractionRules(n,e){for(let[r,t]of Object.entries(n.extraction))!e.has(r)&&t.default&&e.set(r,t.default)}isOptional(n){return n.optional===!0}calculateConfidence(n,e){let r=0,t=0,o=c=>n.extraction?.[c]?.default!==void 0;for(let c of n.template.tokens)if(c.type==="role")t+=1,e.has(c.role)&&(r+=1);else if(c.type==="group"){for(let d of c.tokens)if(d.type==="role"){let x=o(d.role),z=.8;t+=z,e.has(d.role)?r+=z:x&&(r+=z*.6)}}let s=t>0?r/t: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(n);s=Math.min(1,s+a);let l=this.arabicPrepositionDisambiguation(n,e);return s=Math.max(0,Math.min(1,s+l)),s}calculateVSOConfidenceBoost(n){if(n.language!=="ar")return 0;let e=n.template.tokens[0];if(!e||e.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(e.value))return .15;if(e.alternatives){for(let t of e.alternatives)if(r.has(t))return .15}return 0}arabicPrepositionDisambiguation(n,e){if(n.language!=="ar")return 0;let r=0,t={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 e.entries()){let a=t[o];if(!a||a.length===0)continue;let l=s.metadata;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(n){let e=n.peek();if(!e)return;let r=e.value.toLowerCase();if(_.ENGLISH_NOISE_WORDS.has(r)){let t=n.mark();n.advance();let o=n.peek();if(o&&o.kind==="selector")return;n.reset(t)}r==="class"&&n.advance()}extractEventModifiers(n){let e={},r=!1;for(;!n.isAtEnd();){let t=n.peek();if(!t||t.kind!=="event-modifier")break;let o=t.metadata;if(!o)break;switch(r=!0,o.modifierName){case"once":e.once=!0;break;case"debounce":typeof o.value=="number"&&(e.debounce=o.value);break;case"throttle":typeof o.value=="number"&&(e.throttle=o.value);break;case"queue":(o.value==="first"||o.value==="last"||o.value==="all"||o.value==="none")&&(e.queue=o.value);break}n.advance()}return r?e:void 0}};_.MAX_PROPERTY_DEPTH=10,_.MAX_METHOD_ARGS=20,_.ENGLISH_NOISE_WORDS=new Set(["the","a","an"]);var ze=_,G=new ze;var Be=class{render(n,e){if(n.kind==="compound")return this.renderCompound(n,e);let r=Nt(e,n.action);if(r.length===0)return this.renderExplicit(n);let t=this.findBestPattern(n,r);return t?this.renderWithPattern(n,t):this.renderExplicit(n)}renderCompound(n,e){let r=n.statements.map(o=>this.render(o,e)),t=this.getChainWord(n.chainType,e);return r.join(` ${t} `)}getChainWord(n,e){let r=q(e);return r?.keywords?r.keywords[n]?.primary??n:n}renderExplicit(n){if(n.kind==="compound"){let r=n;return r.statements.map(o=>this.renderExplicit(o)).join(` ${r.chainType} `)}let e=[n.action];for(let[r,t]of n.roles)e.push(`${r}:${this.valueToString(t)}`);if(n.kind==="event-handler"){let r=n;if(r.body&&r.body.length>0){let t=r.body.map(o=>this.renderExplicit(o));e.push(`body:${t.join(" ")}`)}}return`[${e.join(" ")}]`}supportedLanguages(){return Ue()}findBestPattern(n,e){let r=e.map(t=>{let o=t.priority;for(let s of t.template.tokens)s.type==="role"&&(n.roles.has(s.role)?o+=10:s.optional||(o-=50));return t.language==="en"&&((t.id.includes("standard")||t.id.includes("en-source"))&&(o+=20),(t.id.includes("-when")||t.id.includes("-if")||t.id.includes("-upon"))&&(o-=15)),{pattern:t,score:o}});return r.sort((t,o)=>o.score-t.score),r.length>0?r[0].pattern:null}renderWithPattern(n,e){let r=[],t=e.language;for(let o of e.template.tokens){let s=this.renderPatternToken(o,n,t);s!==null&&r.push(s)}if(n.kind==="event-handler"){let o=n;if(o.body&&o.body.length>0){let s=o.body.map(a=>this.render(a,t));r.push(s.join(" "))}}return r.join(" ")}renderPatternToken(n,e,r){switch(n.type){case"literal":return n.value;case"role":{let t=e.roles.get(n.role);return t?this.valueToNaturalString(t,r):(n.optional,null)}case"group":{if(!n.tokens.filter(s=>s.type==="role"&&!s.optional).every(s=>e.roles.has(s.role))&&n.optional)return null;if(n.optional&&n.tokens.find(a=>a.type==="role"&&a.role==="destination")){let a=e.roles.get("destination");if(a?.type==="reference"&&a.value==="me")return null}let o=[];for(let s of n.tokens){let a=this.renderPatternToken(s,e,r);a!==null&&o.push(a)}return o.length>0?o.join(" "):null}default:return null}}valueToString(n){switch(n.type){case"literal":return typeof n.value=="string"?n.dataType==="string"||/\s/.test(n.value)?`"${n.value}"`:n.value:String(n.value);case"selector":return n.value;case"reference":return n.value;case"property-path":return`${this.valueToString(n.object)}'s ${n.property}`;case"expression":return n.raw}}valueToNaturalString(n,e="en"){switch(n.type){case"literal":return typeof n.value=="string"&&n.dataType==="string"?`"${n.value}"`:String(n.value);case"selector":return n.value;case"reference":return this.renderReference(n,e);case"property-path":return this.renderPropertyPath(n,e);case"expression":return n.raw}}renderReference(n,e){let r=q(e);return r?.references?r.references[n.value]??n.value:n.value}renderPropertyPath(n,e){let r=q(e),t=n.property,o=n.object.type==="reference"?n.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"?`${t} ${a}`:`${a} ${t}`}}let s=this.valueToNaturalString(n.object,e);if(r?.possessive){let{marker:a,markerPosition:l,usePossessiveAdjectives:c}=r.possessive;if(c&&o&&l==="after-object")return`${t} ${s}`;if(a)switch(l){case"between":return r.usesSpaces?`${s}${a} ${t}`:`${s}${a}${t}`;case"after-object":return`${s}${a} ${t}`;case"before-property":return`${s} ${a} ${t}`}}return e==="en"||!r?.possessive?s==="me"?`my ${t}`:s==="it"?`its ${t}`:`${s}'s ${t}`:`${s} ${t}`}},ft=new Be;function Te(i,n){return ft.render(i,n)}function Se(i){return ft.renderExplicit(i)}function $(i){let n=i.trim();if(!n.startsWith("[")||!n.endsWith("]"))throw new Error("Explicit syntax must be wrapped in brackets: [command role:value ...]");let e=n.slice(1,-1).trim();if(!e)throw new Error("Empty explicit statement");let r=eo(e);if(r.length===0)throw new Error("No command specified in explicit statement");let t=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 d=l.slice(0,c),x=l.slice(c+1);if(d==="body"&&x.startsWith("[")){let y=no(l,c+1),f=l.slice(c+1,y+1);o.set(d,{type:"expression",raw:f});continue}let z=to(x);o.set(d,z)}if(t==="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($(l.raw)),o.delete("body"),se(a,c,void 0,{sourceLanguage:"explicit"})}let s={};for(let[a,l]of o)s[a]=l;return D(t,s,{sourceLanguage:"explicit"})}function eo(i){let n=[],e="",r=!1,t="",o=0;for(let s=0;s<i.length;s++){let a=i[s];if(r){e+=a,a===t&&i[s-1]!=="\\"&&(r=!1);continue}if(a==='"'||a==="'"){r=!0,t=a,e+=a;continue}if(a==="["){o++,e+=a;continue}if(a==="]"){o--,e+=a;continue}if(a===" "&&o===0){e&&(n.push(e),e="");continue}e+=a}return e&&n.push(e),n}function to(i){if(i.startsWith("#")||i.startsWith(".")||i.startsWith("[")||i.startsWith("@")||i.startsWith("*"))return F(i);if(i.startsWith('"')||i.startsWith("'")){let e=i.slice(1,-1);return R(e,"string")}if(i==="true")return R(!0,"boolean");if(i==="false")return R(!1,"boolean");if(["me","you","it","result","event","target","body"].includes(i.toLowerCase()))return W(i.toLowerCase());let n=i.match(/^(-?\d+(?:\.\d+)?)(ms|s|m|h)?$/);if(n){let e=parseFloat(n[1]);return n[2]?R(i,"duration"):R(e,"number")}return R(i,"string")}function no(i,n){let e=0;for(let r=n;r<i.length;r++)if(i[r]==="[")e++;else if(i[r]==="]"&&(e--,e===0))return r;return i.length-1}function le(i){let n=i.trim();return n.startsWith("[")&&n.endsWith("]")}var Fe=class{parse(n,e){let r=qe(n,e),t=O(e);if(t.length===0)throw new Error(`No patterns available for language: ${e}`);let o=[...t].sort((d,x)=>x.priority-d.priority),s=o.filter(d=>d.command==="on"),a=G.matchBest(r,s);if(a)return this.buildEventHandler(a,r,e);let l=o.filter(d=>d.command!=="on"),c=G.matchBest(r,l);if(c)return this.buildCommand(c,e);throw new Error(`Could not parse input in ${e}: ${n}`)}canParse(n,e){try{return this.parse(n,e),!0}catch{return!1}}supportedLanguages(){return Ue()}buildCommand(n,e){if(!n)throw new Error("No match to build command from");let r={};for(let[t,o]of n.captured)r[t]=o;return D(n.pattern.command,r,{sourceLanguage:e,patternId:n.pattern.id})}buildEventHandler(n,e,r){if(!n)throw new Error("No match to build event handler from");let t=n.captured.get("event");if(!t)throw new Error("Event handler pattern matched but no event captured");let o=G.extractEventModifiers(e),s,a=n.captured.get("action");if(a&&a.type==="literal"){let l=a.value,c={};for(let[z,y]of n.captured)z!=="event"&&z!=="action"&&z!=="continues"&&(c[z]=y);let d=D(l,c,{sourceLanguage:r,patternId:n.pattern.id}),x=n.captured.get("continues");if(x&&x.type==="literal"&&x.value==="then"){let z=O(r).filter(g=>g.command!=="on").sort((g,v)=>v.priority-g.priority),y=O(r).filter(g=>g.id.startsWith("grammar-")&&g.id.includes("-continuation")).sort((g,v)=>v.priority-g.priority),f=this.parseBodyWithGrammarPatterns(e,z,y,r);f.length>0?s=[d,...f]:s=[d]}else s=[d]}else{let l=O(r).filter(c=>c.command!=="on").sort((c,d)=>d.priority-c.priority);s=this.parseBodyWithClauses(e,l,r)}return se(t,s,o,{sourceLanguage:r,patternId:n.pattern.id})}parseBodyWithClauses(n,e,r){let t=[],o=[];for(;!n.isAtEnd();){let s=n.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,e,r);t.push(...c),o.length=0}n.advance();continue}if(l){if(o.length>0){let c=this.parseClause(o,e,r);t.push(...c)}n.advance();break}o.push(s),n.advance()}if(o.length>0){let s=this.parseClause(o,e,r);t.push(...s)}return t.length>1?[un(t,"then",{sourceLanguage:r})]:t}parseClause(n,e,r){if(n.length===0)return[];let t=new b(n,r),o=[];for(;!t.isAtEnd();){let s=G.matchBest(t,e);s?o.push(this.buildCommand(s,r)):t.advance()}return o}parseBodyWithGrammarPatterns(n,e,r,t){let o=[];for(;!n.isAtEnd();){let s=n.peek();if(s&&this.isThenKeyword(s.value,t)){n.advance();continue}if(s&&this.isEndKeyword(s.value,t)){n.advance();break}let a=!1;if(r.length>0){let l=G.matchBest(n,r);if(l){let c=l.pattern.command,d={};for(let[y,f]of l.captured)y!=="event"&&y!=="action"&&y!=="continues"&&(d[y]=f);let x=D(c,d,{sourceLanguage:t,patternId:l.pattern.id});o.push(x),a=!0;let z=l.captured.get("continues");if(z&&z.type==="literal"&&z.value==="then")continue}}if(!a){let l=G.matchBest(n,e);l&&(o.push(this.buildCommand(l,t)),a=!0)}a||n.advance()}return o}isThenKeyword(n,e){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"]),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"]),qu:new Set(["chaymantataq","hinaspa","chaymanta"]),sw:new Set(["kisha","halafu","baadaye"])};return(r[e]||r.en).has(n.toLowerCase())}isEndKeyword(n,e){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"]),qu:new Set(["tukukuy","tukuy","puchukay"]),sw:new Set(["mwisho","maliza","tamati"])};return(r[e]||r.en).has(n.toLowerCase())}},gt=new Fe;function ce(i,n){return gt.parse(i,n)}function yt(i,n){return gt.canParse(i,n)}function ht(i,n){if(le(i))return i;let e=ce(i,n);return Se(e)}function vt(i,n){let e=$(i);return Te(e,n)}function zt(i,n){return le(i)?$(i):ce(i,n)}var ro=new Set(["me","my","myself","you","your","yourself","it","its","result","event","target","body","detail","window","document"]),io=new Set(["and","or","not","no"]),oo=new Set(["true","false","null","undefined"]),ao=new Set(["ms","s","seconds","second","milliseconds","millisecond","minutes","minute","hours","hour"]);function gn(i){let n=[],e=0,r=1,t=1;function o(){if(n.length===0)return!0;let f=n[n.length-1];return["OPERATOR","COMPARISON","LOGICAL","LPAREN","LBRACKET","LBRACE","COMMA","COLON"].includes(f.type)}function s(f=0){return i[e+f]??""}function a(){let f=i[e];return e++,f===`
2
+ `?(r++,t=1):t++,f}function l(){for(;e<i.length&&/\s/.test(i[e]);)a()}function c(f){let g="";for(;e<i.length&&f(i[e]);)g+=a();return g}function d(f){let g=f;for(a();e<i.length&&i[e]!==f;)i[e]==="\\"&&e+1<i.length&&(g+=a()),g+=a();return e<i.length&&(g+=a()),g}function x(){let f="`";for(a();e<i.length&&i[e]!=="`";)i[e]==="\\"&&e+1<i.length&&(f+=a()),f+=a();return e<i.length&&(f+=a()),f}function z(){let f="<";for(a();e<i.length&&(f+=a(),!f.endsWith("/>")););return f}function y(f,g,v){return{type:f,value:g,start:v,end:e,line:r,column:t-g.length}}for(;e<i.length&&(l(),!(e>=i.length));){let f=e,g=s();if(g==="'"&&s(1)==="s"&&!/\w/.test(s(2))){a(),a(),n.push(y("POSSESSIVE","'s",f));continue}if(g==='"'||g==="'"){let v=d(g);n.push(y("STRING",v,f));continue}if(g==="`"){let v=x();n.push(y("TEMPLATE_LITERAL",v,f));continue}if(g==="<"&&/[a-zA-Z.#\[]/.test(s(1))){let v=z();n.push(y("QUERY_SELECTOR",v,f));continue}if(g==="#"&&o()){a();let v=c(N=>/[\w-]/.test(N));n.push(y("ID_SELECTOR","#"+v,f));continue}if(g==="."&&/[a-zA-Z_-]/.test(s(1))&&o()){a();let v=c(N=>/[\w-]/.test(N));n.push(y("CLASS_SELECTOR","."+v,f));continue}if(g==="["&&o()){let v=s(1);if(v==="@"||/[a-zA-Z]/.test(v)){let N="";for(N+=a();e<i.length&&i[e]!=="]";)i[e]==='"'||i[e]==="'"?N+=d(i[e]):N+=a();e<i.length&&(N+=a()),n.push(y("ATTRIBUTE_SELECTOR",N,f));continue}}if(g==="["){a(),n.push(y("LBRACKET","[",f));continue}if(g==="]"){a(),n.push(y("RBRACKET","]",f));continue}if(/\d/.test(g)){let v=c(me=>/[\d.]/.test(me)),N=e,K=c(me=>/[a-zA-Z]/.test(me));ao.has(K)?n.push(y("TIME_EXPRESSION",v+K,f)):(e=N,n.push(y("NUMBER",v,f)));continue}if(g==="("){a(),n.push(y("LPAREN","(",f));continue}if(g===")"){a(),n.push(y("RPAREN",")",f));continue}if(g==="{"){a(),n.push(y("LBRACE","{",f));continue}if(g==="}"){a(),n.push(y("RBRACE","}",f));continue}if(g===","){a(),n.push(y("COMMA",",",f));continue}if(g===":"){a(),n.push(y("COLON",":",f));continue}if(g==="."){a(),n.push(y("DOT",".",f));continue}if(g==="+"||g==="-"||g==="*"||g==="/"||g==="%"){a(),n.push(y("OPERATOR",g,f));continue}if(g==="="||g==="!"||g==="<"||g===">"){let v=a();s()==="="&&(v+=a()),n.push(y("COMPARISON",v,f));continue}if(/[a-zA-Z_$]/.test(g)){let v=c(K=>/[\w$]/.test(K)),N=v.toLowerCase();ro.has(N)?n.push(y("CONTEXT_VAR",v,f)):io.has(N)?n.push(y("LOGICAL",v,f)):oo.has(N)?n.push(y("BOOLEAN",v,f)):n.push(y("IDENTIFIER",v,f));continue}a()}return n.push(y("EOF","",e)),n}var De=class{constructor(){this.tokens=[];this.current=0}parse(n){try{return this.tokens=gn(n),this.current=0,this.isAtEnd()?{success:!1,error:"Empty expression"}:{success:!0,node:this.parseExpression(),consumed:this.current}}catch(e){return{success:!1,error:e instanceof Error?e.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(n){return this.peek().type===n}checkValue(n){return this.peek().value.toLowerCase()===n.toLowerCase()}match(...n){for(let e of n)if(this.check(e))return this.advance(),!0;return!1}parseExpression(){return this.parseOr()}parseOr(){let n=this.parseAnd();for(;this.checkValue("or");){let e=this.advance().value,r=this.parseAnd();n=this.createBinaryExpression(e,n,r)}return n}parseAnd(){let n=this.parseEquality();for(;this.checkValue("and");){let e=this.advance().value,r=this.parseEquality();n=this.createBinaryExpression(e,n,r)}return n}parseEquality(){let n=this.parseComparison();for(;this.match("COMPARISON")||this.checkValue("is")||this.checkValue("matches")||this.checkValue("contains")||this.checkValue("in");){let e=this.previous().value,r=this.parseComparison();n=this.createBinaryExpression(e,n,r)}return n}parseComparison(){let n=this.parseAddition();for(;this.check("COMPARISON");){let e=this.advance().value,r=this.parseAddition();n=this.createBinaryExpression(e,n,r)}return n}parseAddition(){let n=this.parseMultiplication();for(;this.peek().value==="+"||this.peek().value==="-";){let e=this.advance().value,r=this.parseMultiplication();n=this.createBinaryExpression(e,n,r)}return n}parseMultiplication(){let n=this.parseUnary();for(;this.peek().value==="*"||this.peek().value==="/"||this.peek().value==="%";){let e=this.advance().value,r=this.parseUnary();n=this.createBinaryExpression(e,n,r)}return n}parseUnary(){if(this.checkValue("not")||this.checkValue("no")||this.peek().value==="-"){let n=this.advance().value,e=this.parseUnary();return this.createUnaryExpression(n,e)}return this.parsePostfix()}parsePostfix(){let n=this.parsePrimary();for(;;)if(this.match("DOT"))if(this.check("IDENTIFIER")||this.check("CONTEXT_VAR")){let e=this.advance().value;n=this.createPropertyAccess(n,e)}else break;else if(this.match("POSSESSIVE"))if(this.check("IDENTIFIER")||this.check("CONTEXT_VAR")){let e=this.advance().value;n=this.createPossessiveExpression(n,e)}else break;else if(this.match("LPAREN")){let e=this.parseArguments();n=this.createCallExpression(n,e)}else if(this.match("LBRACKET")){let e=this.parseExpression();if(!this.match("RBRACKET"))throw new Error("Expected ] after index");n=this.createPropertyAccess(n,e)}else break;return n}parsePrimary(){let n=this.peek();if(this.match("NUMBER"))return this.createLiteral(parseFloat(n.value),"number",n);if(this.match("STRING")){let e=n.value.slice(1,-1);return this.createLiteral(e,"string",n)}if(this.match("BOOLEAN")){let e=n.value==="true"?!0:n.value==="false"?!1:n.value==="null"?null:void 0;return this.createLiteral(e,n.value,n)}if(this.match("TEMPLATE_LITERAL"))return{type:"templateLiteral",value:n.value,start:n.start,end:n.end,line:n.line,column:n.column};if(this.match("TIME_EXPRESSION"))return this.parseTimeExpression(n);if(this.match("ID_SELECTOR"))return this.createSelector(n.value,"id",n);if(this.match("CLASS_SELECTOR"))return this.createSelector(n.value,"class",n);if(this.match("ATTRIBUTE_SELECTOR"))return this.createSelector(n.value,"attribute",n);if(this.match("QUERY_SELECTOR")){let e=n.value.slice(1,-2);return this.createSelector(e,"query",n)}if(this.match("CONTEXT_VAR"))return this.createContextReference(n.value,n);if(this.match("IDENTIFIER"))return this.createIdentifier(n.value,n);if(this.match("LPAREN")){let e=this.parseExpression();if(!this.match("RPAREN"))throw new Error("Expected ) after expression");return e}if(this.match("LBRACKET"))return this.parseArrayLiteral();if(this.match("LBRACE"))return this.parseObjectLiteral();throw new Error(`Unexpected token: ${n.value}`)}parseArguments(){let n=[];if(!this.check("RPAREN"))do n.push(this.parseExpression());while(this.match("COMMA"));if(!this.match("RPAREN"))throw new Error("Expected ) after arguments");return n}parseArrayLiteral(){let n=[],e=this.previous().start;if(!this.check("RBRACKET"))do n.push(this.parseExpression());while(this.match("COMMA"));if(!this.match("RBRACKET"))throw new Error("Expected ] after array elements");return{type:"arrayLiteral",elements:n,start:e,end:this.previous().end}}parseObjectLiteral(){let n=[],e=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 t=this.parseExpression();n.push({key:r,value:t})}while(this.match("COMMA"));if(!this.match("RBRACE"))throw new Error("Expected } after object properties");return{type:"objectLiteral",properties:n.map(r=>({type:"objectProperty",key:r.key,value:r.value})),start:e,end:this.previous().end}}parseTimeExpression(n){let e=n.value.match(/^(\d+(?:\.\d+)?)(ms|s|seconds?|milliseconds?|minutes?|hours?)$/i);if(!e)throw new Error(`Invalid time expression: ${n.value}`);let r=parseFloat(e[1]),t=e[2].toLowerCase();return{type:"timeExpression",value:r,unit:t,raw:n.value,start:n.start,end:n.end,line:n.line,column:n.column}}createLiteral(n,e,r){return{type:"literal",value:n,dataType:e,raw:r.value,start:r.start,end:r.end,line:r.line,column:r.column}}createSelector(n,e,r){return{type:"selector",value:n,selector:n,selectorType:e,start:r.start,end:r.end,line:r.line,column:r.column}}createContextReference(n,e){return{type:"contextReference",contextType:n,name:e.value,start:e.start,end:e.end,line:e.line,column:e.column}}createIdentifier(n,e){return{type:"identifier",name:n,start:e.start,end:e.end,line:e.line,column:e.column}}createPropertyAccess(n,e){return{type:"propertyAccess",object:n,property:typeof e=="string"?e:e.name??"",start:n.start,end:this.previous().end}}createPossessiveExpression(n,e){return{type:"possessiveExpression",object:n,property:e,start:n.start,end:this.previous().end}}createBinaryExpression(n,e,r){return{type:"binaryExpression",operator:n,left:e,right:r,start:e.start,end:r.end}}createUnaryExpression(n,e){return{type:"unaryExpression",operator:n,operand:e,prefix:!0,start:this.previous().start,end:e.end}}createCallExpression(n,e){return{type:"callExpression",callee:n,arguments:e,start:n.start,end:this.previous().end}}};function Tt(i){return new De().parse(i)}function I(i,n){switch(i.type){case"literal":return so(i);case"selector":return lo(i,n);case"reference":return co(i);case"property-path":return mo(i,n);case"expression":return po(i);default:let e=i;throw new Error(`Unknown semantic value type: ${e.type}`)}}function so(i){let n={type:"literal",value:i.value};return i.dataType?{...n,dataType:i.dataType}:n}function lo(i,n){return n&&i.value.startsWith("*")&&/^[a-zA-Z-]/.test(i.value.slice(1))&&n.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 co(i){return{type:"contextReference",contextType:i.value,name:i.value}}function mo(i,n){return{type:"propertyAccess",object:I(i.object,n),property:i.property}}function po(i){let n=Tt(i.raw);return!n.success||!n.node?{type:"identifier",name:i.raw}:n.node}function yn(i,n){return i.roles.get(n)}function m(i,n,e){let r=yn(i,n);return r?I(r,e):void 0}function h(i,n=[],e,r={}){let t={type:"command",name:i,args:n};return e&&Object.keys(e).length>0&&(t.modifiers=e),r.isBlocking&&(t.isBlocking=r.isBlocking),r.implicitTarget&&(t.implicitTarget=r.implicitTarget),t}var uo={action:"toggle",toAST(i,n){let e=m(i,"patient"),r=m(i,"destination"),t=m(i,"duration"),o=e?[e]:[],s={};return r&&(s.on=r),t&&(s.for=t),h("toggle",o,s)}},fo={action:"add",toAST(i,n){let e=m(i,"patient"),r=m(i,"destination"),t=e?[e]:[],o={};return r&&(o.to=r),h("add",t,o)}},go={action:"remove",toAST(i,n){let e=m(i,"patient"),r=m(i,"source"),t=e?[e]:[],o={};return r&&(o.from=r),h("remove",t,o)}},yo={action:"set",toAST(i,n){let e=m(i,"destination"),r=m(i,"patient"),t=[],o={};return e&&t.push(e),r&&(o.to=r),h("set",t,o)}},ho={action:"show",toAST(i,n){let e=m(i,"destination"),r=m(i,"patient"),t=m(i,"duration"),o=[],s={},a=e??r;return a&&o.push(a),t&&(s.with=t),h("show",o,s)}},vo={action:"hide",toAST(i,n){let e=m(i,"destination"),r=m(i,"patient"),t=m(i,"duration"),o=[],s={},a=e??r;return a&&o.push(a),t&&(s.with=t),h("hide",o,s)}},zo={action:"increment",toAST(i,n){let e=m(i,"destination"),r=m(i,"patient"),t=m(i,"quantity"),o=[],s={},a=e??r;return a&&o.push(a),t&&(s.by=t),h("increment",o,s)}},To={action:"decrement",toAST(i,n){let e=m(i,"destination"),r=m(i,"patient"),t=m(i,"quantity"),o=[],s={},a=e??r;return a&&o.push(a),t&&(s.by=t),h("decrement",o,s)}},So={action:"wait",toAST(i,n){let e=m(i,"duration");return h("wait",e?[e]:[],void 0,{isBlocking:!0})}},ko={action:"log",toAST(i,n){let e=m(i,"patient"),r=[];return e&&r.push(e),h("log",r)}},xo={action:"put",toAST(i,n){let e=m(i,"patient"),r=m(i,"destination"),t=yn(i,"method"),o=e?[e]:[],s={};if(r){let a=t?.type==="literal"?String(t.value):"into";s[a]=r}return h("put",o,s)}},bo={action:"fetch",toAST(i,n){let e=m(i,"source"),r=m(i,"method"),t=m(i,"responseType"),o=m(i,"patient"),s=e?[e]:[],a={};return r&&(a.with=r),t&&(a.as=t),o&&(a.body=o),h("fetch",s,a,{isBlocking:!0})}},wo={action:"append",toAST(i,n){let e=m(i,"patient"),r=m(i,"destination"),t=e?[e]:[],o={};return r&&(o.to=r),h("append",t,o)}},Lo={action:"prepend",toAST(i,n){let e=m(i,"patient"),r=m(i,"destination"),t=e?[e]:[],o={};return r&&(o.to=r),h("prepend",t,o)}},Po={action:"trigger",toAST(i,n){let e=m(i,"event"),r=m(i,"destination"),t=e?[e]:[],o={};return r&&(o.on=r),h("trigger",t,o)}},Eo={action:"send",toAST(i,n){let e=m(i,"event"),r=m(i,"destination"),t=m(i,"patient"),o=e?[e]:[],s={};return r&&(s.to=r),t&&(s.detail=t),h("send",o,s)}},Co={action:"go",toAST(i,n){let e=m(i,"source"),r=m(i,"destination"),t=[],o={};return e&&t.push(e),r&&(o.to=r),h("go",t,o)}},Ro={action:"transition",toAST(i,n){let e=m(i,"patient"),r=m(i,"goal"),t=m(i,"duration"),o=m(i,"destination"),s=e?[e]:[],a={};return r&&(a.to=r),t&&(a.over=t),o&&(a.on=o),h("transition",s,a)}},No={action:"focus",toAST(i,n){let e=m(i,"destination"),r=m(i,"patient"),t=[],o={},s=e??r;return s&&t.push(s),h("focus",t,o)}},jo={action:"blur",toAST(i,n){let e=m(i,"destination"),r=m(i,"patient"),t=[],o=e??r;return o&&t.push(o),h("blur",t)}},Mo={action:"get",toAST(i,n){let e=m(i,"source"),r=m(i,"patient"),t=[],o=e??r;return o&&t.push(o),h("get",t)}},Ao={action:"take",toAST(i,n){let e=m(i,"patient"),r=m(i,"source"),t=e?[e]:[],o={};return r&&(o.from=r),h("take",t,o)}},Io={action:"call",toAST(i,n){let e=m(i,"patient");return h("call",e?[e]:[])}},Vo={action:"return",toAST(i,n){let e=m(i,"patient");return h("return",e?[e]:[])}},Oo={action:"halt",toAST(i,n){return h("halt",[])}},Wo={action:"throw",toAST(i,n){let e=m(i,"patient");return h("throw",e?[e]:[])}},_o={action:"settle",toAST(i,n){let e=m(i,"destination"),r=m(i,"patient"),t=[],o=e??r;return o&&t.push(o),h("settle",t,void 0,{isBlocking:!0})}},Ko={action:"swap",toAST(i,n){let e=m(i,"patient"),r=m(i,"source"),t=m(i,"destination"),o=m(i,"style"),s=[],a={};return e&&s.push(e),r&&s.push(r),t&&(a.on=t),o&&(a.with=o),h("swap",s,a)}},qo={action:"morph",toAST(i,n){let e=m(i,"source"),r=m(i,"destination"),t=m(i,"patient"),o=[],s={},a=e??t;return a&&o.push(a),r&&(s.on=r),h("morph",o,s)}},Uo={action:"clone",toAST(i,n){let e=m(i,"source"),r=m(i,"destination"),t=m(i,"patient"),o=[],s={},a=e??t;return a&&o.push(a),r&&(s.into=r),h("clone",o,s)}},Bo={action:"make",toAST(i,n){let e=m(i,"patient");return h("make",e?[e]:[])}},Fo={action:"measure",toAST(i,n){let e=m(i,"patient"),r=m(i,"destination"),t=m(i,"source"),o=[],s={};e&&o.push(e);let a=r??t;return a&&(s.of=a),h("measure",o,s)}},Do={action:"tell",toAST(i,n){let e=m(i,"destination"),r=m(i,"patient"),t=[],o=e??r;return o&&t.push(o),h("tell",t)}},Go={action:"js",toAST(i,n){let e=m(i,"patient");return h("js",e?[e]:[])}},$o={action:"async",toAST(i,n){return h("async",[])}},Ho={action:"if",toAST(i,n){let e=m(i,"condition");return h("if",e?[e]:[])}},Xo={action:"unless",toAST(i,n){let e=m(i,"condition");return h("unless",e?[e]:[])}},Qo={action:"repeat",toAST(i,n){let e=m(i,"quantity"),r=m(i,"patient"),t=[],o=e??r;return o&&t.push(o),h("repeat",t)}},Zo={action:"for",toAST(i,n){let e=m(i,"patient"),r=m(i,"source"),t=e?[e]:[],o={};return r&&(o.in=r),h("for",t,o)}},Jo={action:"while",toAST(i,n){let e=m(i,"condition");return h("while",e?[e]:[])}},Yo={action:"continue",toAST(i,n){return h("continue",[])}},ea={action:"default",toAST(i,n){let e=m(i,"patient"),r=m(i,"source"),t=e?[e]:[],o={};return r&&(o.to=r),h("default",t,o)}},ta={action:"init",toAST(i,n){return h("init",[])}},na={action:"behavior",toAST(i,n){let e=m(i,"patient");return h("behavior",e?[e]:[])}},ra={action:"install",toAST(i,n){let e=m(i,"patient"),r=m(i,"destination"),t=e?[e]:[],o={};return r&&(o.on=r),h("install",t,o)}},ia={action:"on",toAST(i,n){let e=m(i,"event"),r=m(i,"source"),t=e?[e]:[],o={};return r&&(o.from=r),h("on",t,o)}},hn=new Map([["toggle",uo],["add",fo],["remove",go],["set",yo],["show",ho],["hide",vo],["increment",zo],["decrement",To],["wait",So],["log",ko],["put",xo],["fetch",bo],["append",wo],["prepend",Lo],["get",Mo],["take",Ao],["trigger",Po],["send",Eo],["on",ia],["go",Co],["transition",Ro],["focus",No],["blur",jo],["call",Io],["return",Vo],["halt",Oo],["throw",Wo],["settle",_o],["swap",Ko],["morph",qo],["clone",Uo],["measure",Fo],["make",Bo],["tell",Do],["default",ea],["js",Go],["async",$o],["if",Ho],["unless",Xo],["repeat",Qo],["for",Zo],["while",Jo],["continue",Yo],["init",ta],["behavior",na],["install",ra]]);function ke(i){return hn.get(i)}function St(i){hn.set(i.action,i)}var xe=class{constructor(n={}){this.warnings=[]}build(n){switch(n.kind){case"command":return this.buildCommand(n);case"event-handler":return this.buildEventHandler(n);case"conditional":return this.buildConditional(n);case"compound":return this.buildCompound(n);case"loop":return this.buildLoop(n);default:throw new Error(`Unknown semantic node kind: ${n.kind}`)}}buildCommand(n){let e=ke(n.action);if(e){let r=e.toAST(n,this);if("ast"in r&&"warnings"in r){let t=r;return this.warnings.push(...t.warnings),t.ast}else return r}return this.buildGenericCommand(n)}buildGenericCommand(n){let e=[],r={},t=["patient","source","quantity"],o=["destination","duration","method","style"];for(let a of t){let l=n.roles.get(a);l&&e.push(I(l))}for(let a of o){let l=n.roles.get(a);if(l){let c=this.roleToModifierKey(a);r[c]=I(l)}}let s={type:"command",name:n.action,args:e};return Object.keys(r).length>0?{...s,modifiers:r}:s}roleToModifierKey(n){return{destination:"on",duration:"for",source:"from",condition:"if",method:"via",style:"with"}[n]??n}buildEventHandler(n){let e=n.roles.get("event"),r,t;if(e?.type==="literal"){let v=String(e.value);v.includes("|")||v.includes(" or ")?(t=v.split(/\s+or\s+|\|/).map(N=>N.trim()),r=t[0]):r=v}else e?.type==="reference"?r=e.value:r="click";let o=n.body.map(v=>this.build(v)),s=n.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=n.roles.get("condition"),d=c?I(c):void 0,x=n.roles.get("destination"),z=x?I(x):void 0,y=n.eventModifiers,f=a;if(y?.from){let v=y.from;v.type==="selector"&&!a&&(f=v.value)}let g=n.parameterNames?[...n.parameterNames]:void 0;return{type:"eventHandler",event:r,commands:o,...t&&t.length>1?{events:t}:{},...f?{selector:f}:{},...l?{target:l}:{},...d?{condition:d}:{},...z?{watchTarget:z}:{},...g&&g.length>0?{args:g,params:g}:{}}}buildConditional(n){let e=n.roles.get("condition");if(!e)throw new Error("Conditional node missing condition");let r=I(e),t=n.thenBranch.map(a=>this.build(a)),o=n.elseBranch?.map(a=>this.build(a)),s=[r,{type:"block",commands:t}];return o&&o.length>0&&s.push({type:"block",commands:o}),{type:"command",name:"if",args:s}}buildCompound(n){let e=n.statements.map(t=>this.build(t));return e.length===1?e[0]:e.length===0?{type:"block",commands:[]}:{type:"CommandSequence",commands:e}}buildLoop(n){let e=n.body.map(t=>this.build(t)),r=[{type:"identifier",name:n.loopVariant}];switch(n.loopVariant){case"times":{let t=n.roles.get("quantity");t&&r.push(I(t));break}case"for":{n.loopVariable&&r.push({type:"string",value:n.loopVariable});let t=n.roles.get("source");t&&r.push(I(t));break}case"while":case"until":{let t=n.roles.get("condition");t&&r.push(I(t));break}case"forever":break}return r.push({type:"block",commands:e}),{type:"command",name:"repeat",args:r}}buildBlock(n){return{type:"block",commands:n.map(r=>this.build(r))}}};function vn(i){let n=new xe;return{ast:n.build(i),warnings:n.warnings}}var H=class{constructor(n={}){this.cache=new Map,this.config={maxSize:n.maxSize??1e3,ttlMs:n.ttlMs??0,enabled:n.enabled??!0},this.stats={hits:0,misses:0,evictions:0,expirations:0}}makeKey(n,e){return`${e}:${n}`}isExpired(n){return this.config.ttlMs===0?!1:Date.now()-n.createdAt>this.config.ttlMs}evictLRU(){let n=this.cache.keys().next().value;n!==void 0&&(this.cache.delete(n),this.stats.evictions++)}get(n,e){if(!this.config.enabled){this.stats.misses++;return}let r=this.makeKey(n,e),t=this.cache.get(r);if(!t){this.stats.misses++;return}if(this.isExpired(t)){this.cache.delete(r),this.stats.expirations++,this.stats.misses++;return}return this.cache.delete(r),t.lastAccessed=Date.now(),this.cache.set(r,t),this.stats.hits++,t.result}set(n,e,r){if(!this.config.enabled||r.confidence===0)return;let t=this.makeKey(n,e),o=Date.now();for(;this.cache.size>=this.config.maxSize;)this.evictLRU();this.cache.set(t,{result:r,createdAt:o,lastAccessed:o})}has(n,e){if(!this.config.enabled)return!1;let r=this.makeKey(n,e),t=this.cache.get(r);return t?this.isExpired(t)?(this.cache.delete(r),this.stats.expirations++,!1):!0:!1}delete(n,e){let r=this.makeKey(n,e);return this.cache.delete(r)}clear(){this.cache.clear()}resetStats(){this.stats={hits:0,misses:0,evictions:0,expirations:0}}getStats(){let n=this.stats.hits+this.stats.misses;return{hits:this.stats.hits,misses:this.stats.misses,size:this.cache.size,maxSize:this.config.maxSize,hitRate:n>0?this.stats.hits/n:0,evictions:this.stats.evictions,expirations:this.stats.expirations,enabled:this.config.enabled}}configure(n){if(n.maxSize!==void 0)for(this.config.maxSize=n.maxSize;this.cache.size>this.config.maxSize;)this.evictLRU();n.ttlMs!==void 0&&(this.config.ttlMs=n.ttlMs),n.enabled!==void 0&&(this.config.enabled=n.enabled)}enable(){this.config.enabled=!0}disable(){this.config.enabled=!1}getConfig(){return{...this.config}}},kt=new H;var be=class{constructor(n={}){this.patternMatcher=new ze,this.languages=new Set(Le()),n.cache===!1?this.cache=new H({enabled:!1}):this.cache=n.cache?new H(n.cache):kt}analyze(n,e){if(!this.supportsLanguage(e))return{confidence:0,errors:[`Language '${e}' is not supported for semantic parsing`]};let r=this.cache.get(n,e);if(r)return r;let t=this.analyzeUncached(n,e);return this.cache.set(n,e,t),t}analyzeUncached(n,e){try{let r=pn(e);if(!r)return{confidence:0,errors:[`No tokenizer available for language '${e}'`]};let t=r.tokenize(n),o=O(e);if(o.length===0)return{confidence:0,errors:[`No patterns available for language '${e}'`]};let s=this.patternMatcher.matchBest(t,o);if(!s)return{confidence:0,errors:["No pattern matched the input"]};let a=this.buildSemanticNode(s);return{confidence:s.confidence,command:{name:s.pattern.command,roles:s.captured},node:a,tokensConsumed:s.consumedTokens}}catch(r){return{confidence:0,errors:[r instanceof Error?r.message:String(r)]}}}supportsLanguage(n){return this.languages.has(n)}supportedLanguages(){return Array.from(this.languages)}getCacheStats(){return this.cache.getStats()}clearCache(){this.cache.clear()}configureCache(n){this.cache.configure(n)}buildSemanticNode(n){return{kind:"command",action:n.pattern.command,roles:n.captured,metadata:{patternId:n.pattern.id}}}};function zn(i){return new be(i)}var xt=.5,Tn=.8;function Sn(i,n=xt){return i.confidence>=n&&i.command!==void 0}var oa="1.0.0-priority",bt=["en","es","pt","fr","de","ja","zh","ko","ar","tr","id"];function aa(){return[...bt]}function kn(i){if(!bt.includes(i))throw new Error(`Language not supported in this bundle: ${i}. Supported: ${bt.join(", ")}`)}function sa(i,n){return kn(n),[...qe(i,n).tokens]}function xn(i){return kn(i),O(i)}function la(i,n){return xn(i).filter(e=>e.command===n).sort((e,r)=>r.priority-e.priority)}return Cn(ca);})();