interscript 2.4.1 → 3.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 (478) hide show
  1. package/LICENSE +25 -0
  2. package/README.md +90 -41
  3. package/dist/cli.d.ts +25 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +327 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/detector.d.ts +22 -0
  8. package/dist/detector.d.ts.map +1 -0
  9. package/dist/detector.js +73 -0
  10. package/dist/detector.js.map +1 -0
  11. package/dist/errors.d.ts +26 -0
  12. package/dist/errors.d.ts.map +1 -0
  13. package/dist/errors.js +34 -0
  14. package/dist/errors.js.map +1 -0
  15. package/dist/http-loader.d.ts +42 -0
  16. package/dist/http-loader.d.ts.map +1 -0
  17. package/dist/http-loader.js +95 -0
  18. package/dist/http-loader.js.map +1 -0
  19. package/dist/index.d.ts +49 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +182 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/isc/converter.d.ts +11 -0
  24. package/dist/isc/converter.d.ts.map +1 -0
  25. package/dist/isc/converter.js +177 -0
  26. package/dist/isc/converter.js.map +1 -0
  27. package/dist/isc/index.d.ts +16 -0
  28. package/dist/isc/index.d.ts.map +1 -0
  29. package/dist/isc/index.js +15 -0
  30. package/dist/isc/index.js.map +1 -0
  31. package/dist/isc/loader.d.ts +22 -0
  32. package/dist/isc/loader.d.ts.map +1 -0
  33. package/dist/isc/loader.js +47 -0
  34. package/dist/isc/loader.js.map +1 -0
  35. package/dist/isc/parser.d.ts +14 -0
  36. package/dist/isc/parser.d.ts.map +1 -0
  37. package/dist/isc/parser.js +734 -0
  38. package/dist/isc/parser.js.map +1 -0
  39. package/dist/isc/types.d.ts +110 -0
  40. package/dist/isc/types.d.ts.map +1 -0
  41. package/dist/isc/types.js +19 -0
  42. package/dist/isc/types.js.map +1 -0
  43. package/dist/loader.d.ts +49 -0
  44. package/dist/loader.d.ts.map +1 -0
  45. package/dist/loader.js +93 -0
  46. package/dist/loader.js.map +1 -0
  47. package/dist/loaders.d.ts +23 -0
  48. package/dist/loaders.d.ts.map +1 -0
  49. package/dist/loaders.js +40 -0
  50. package/dist/loaders.js.map +1 -0
  51. package/dist/loaders.node.d.ts +25 -0
  52. package/dist/loaders.node.d.ts.map +1 -0
  53. package/dist/loaders.node.js +42 -0
  54. package/dist/loaders.node.js.map +1 -0
  55. package/dist/ml/imf/index.d.ts +6 -0
  56. package/dist/ml/imf/index.d.ts.map +1 -0
  57. package/dist/ml/imf/index.js +6 -0
  58. package/dist/ml/imf/index.js.map +1 -0
  59. package/dist/ml/imf/loader.d.ts +19 -0
  60. package/dist/ml/imf/loader.d.ts.map +1 -0
  61. package/dist/ml/imf/loader.js +59 -0
  62. package/dist/ml/imf/loader.js.map +1 -0
  63. package/dist/ml/imf/model.d.ts +28 -0
  64. package/dist/ml/imf/model.d.ts.map +1 -0
  65. package/dist/ml/imf/model.js +181 -0
  66. package/dist/ml/imf/model.js.map +1 -0
  67. package/dist/ml/imf/registry.d.ts +30 -0
  68. package/dist/ml/imf/registry.d.ts.map +1 -0
  69. package/dist/ml/imf/registry.js +140 -0
  70. package/dist/ml/imf/registry.js.map +1 -0
  71. package/dist/ml/imf/tokens.d.ts +13 -0
  72. package/dist/ml/imf/tokens.d.ts.map +1 -0
  73. package/dist/ml/imf/tokens.js +32 -0
  74. package/dist/ml/imf/tokens.js.map +1 -0
  75. package/dist/ml/index.d.ts +24 -0
  76. package/dist/ml/index.d.ts.map +1 -0
  77. package/dist/ml/index.js +25 -0
  78. package/dist/ml/index.js.map +1 -0
  79. package/dist/ml/models/rababa/cleaner.d.ts +11 -0
  80. package/dist/ml/models/rababa/cleaner.d.ts.map +1 -0
  81. package/dist/ml/models/rababa/cleaner.js +21 -0
  82. package/dist/ml/models/rababa/cleaner.js.map +1 -0
  83. package/dist/ml/models/rababa/diacritizer.d.ts +37 -0
  84. package/dist/ml/models/rababa/diacritizer.d.ts.map +1 -0
  85. package/dist/ml/models/rababa/diacritizer.js +172 -0
  86. package/dist/ml/models/rababa/diacritizer.js.map +1 -0
  87. package/dist/ml/models/rababa/encoder.d.ts +40 -0
  88. package/dist/ml/models/rababa/encoder.d.ts.map +1 -0
  89. package/dist/ml/models/rababa/encoder.js +57 -0
  90. package/dist/ml/models/rababa/encoder.js.map +1 -0
  91. package/dist/ml/models/rababa/haraqat.d.ts +49 -0
  92. package/dist/ml/models/rababa/haraqat.d.ts.map +1 -0
  93. package/dist/ml/models/rababa/haraqat.js +89 -0
  94. package/dist/ml/models/rababa/haraqat.js.map +1 -0
  95. package/dist/ml/models/rababa/index.d.ts +12 -0
  96. package/dist/ml/models/rababa/index.d.ts.map +1 -0
  97. package/dist/ml/models/rababa/index.js +14 -0
  98. package/dist/ml/models/rababa/index.js.map +1 -0
  99. package/dist/ml/models/rababa/reconciler.d.ts +29 -0
  100. package/dist/ml/models/rababa/reconciler.d.ts.map +1 -0
  101. package/dist/ml/models/rababa/reconciler.js +81 -0
  102. package/dist/ml/models/rababa/reconciler.js.map +1 -0
  103. package/dist/ml/models/secryst/index.d.ts +10 -0
  104. package/dist/ml/models/secryst/index.d.ts.map +1 -0
  105. package/dist/ml/models/secryst/index.js +12 -0
  106. package/dist/ml/models/secryst/index.js.map +1 -0
  107. package/dist/ml/models/secryst/masks.d.ts +33 -0
  108. package/dist/ml/models/secryst/masks.d.ts.map +1 -0
  109. package/dist/ml/models/secryst/masks.js +73 -0
  110. package/dist/ml/models/secryst/masks.js.map +1 -0
  111. package/dist/ml/models/secryst/translator.d.ts +31 -0
  112. package/dist/ml/models/secryst/translator.d.ts.map +1 -0
  113. package/dist/ml/models/secryst/translator.js +112 -0
  114. package/dist/ml/models/secryst/translator.js.map +1 -0
  115. package/dist/ml/models/secryst/vocab.d.ts +39 -0
  116. package/dist/ml/models/secryst/vocab.d.ts.map +1 -0
  117. package/dist/ml/models/secryst/vocab.js +85 -0
  118. package/dist/ml/models/secryst/vocab.js.map +1 -0
  119. package/dist/ml/provision/base.d.ts +14 -0
  120. package/dist/ml/provision/base.d.ts.map +1 -0
  121. package/dist/ml/provision/base.js +19 -0
  122. package/dist/ml/provision/base.js.map +1 -0
  123. package/dist/ml/provision/index.d.ts +62 -0
  124. package/dist/ml/provision/index.d.ts.map +1 -0
  125. package/dist/ml/provision/index.js +107 -0
  126. package/dist/ml/provision/index.js.map +1 -0
  127. package/dist/ml/provision/manifest.d.ts +79 -0
  128. package/dist/ml/provision/manifest.d.ts.map +1 -0
  129. package/dist/ml/provision/manifest.js +122 -0
  130. package/dist/ml/provision/manifest.js.map +1 -0
  131. package/dist/ml/registry.d.ts +35 -0
  132. package/dist/ml/registry.d.ts.map +1 -0
  133. package/dist/ml/registry.js +76 -0
  134. package/dist/ml/registry.js.map +1 -0
  135. package/dist/ml/session/index.d.ts +55 -0
  136. package/dist/ml/session/index.d.ts.map +1 -0
  137. package/dist/ml/session/index.js +57 -0
  138. package/dist/ml/session/index.js.map +1 -0
  139. package/dist/ml/session/litert-web.d.ts +50 -0
  140. package/dist/ml/session/litert-web.d.ts.map +1 -0
  141. package/dist/ml/session/litert-web.js +146 -0
  142. package/dist/ml/session/litert-web.js.map +1 -0
  143. package/dist/ml/session/onnx-node.d.ts +10 -0
  144. package/dist/ml/session/onnx-node.d.ts.map +1 -0
  145. package/dist/ml/session/onnx-node.js +62 -0
  146. package/dist/ml/session/onnx-node.js.map +1 -0
  147. package/dist/ml/session/onnx-web.d.ts +23 -0
  148. package/dist/ml/session/onnx-web.d.ts.map +1 -0
  149. package/dist/ml/session/onnx-web.js +74 -0
  150. package/dist/ml/session/onnx-web.js.map +1 -0
  151. package/dist/ml/types.d.ts +113 -0
  152. package/dist/ml/types.d.ts.map +1 -0
  153. package/dist/ml/types.js +7 -0
  154. package/dist/ml/types.js.map +1 -0
  155. package/dist/runtime/compile-item.d.ts +53 -0
  156. package/dist/runtime/compile-item.d.ts.map +1 -0
  157. package/dist/runtime/compile-item.js +278 -0
  158. package/dist/runtime/compile-item.js.map +1 -0
  159. package/dist/runtime/context.d.ts +33 -0
  160. package/dist/runtime/context.d.ts.map +1 -0
  161. package/dist/runtime/context.js +67 -0
  162. package/dist/runtime/context.js.map +1 -0
  163. package/dist/runtime/executor.d.ts +18 -0
  164. package/dist/runtime/executor.d.ts.map +1 -0
  165. package/dist/runtime/executor.js +228 -0
  166. package/dist/runtime/executor.js.map +1 -0
  167. package/dist/runtime/interpreter.d.ts +30 -0
  168. package/dist/runtime/interpreter.d.ts.map +1 -0
  169. package/dist/runtime/interpreter.js +130 -0
  170. package/dist/runtime/interpreter.js.map +1 -0
  171. package/dist/stdlib/ml.d.ts +55 -0
  172. package/dist/stdlib/ml.d.ts.map +1 -0
  173. package/dist/stdlib/ml.js +114 -0
  174. package/dist/stdlib/ml.js.map +1 -0
  175. package/dist/stdlib.d.ts +96 -0
  176. package/dist/stdlib.d.ts.map +1 -0
  177. package/dist/stdlib.js +160 -0
  178. package/dist/stdlib.js.map +1 -0
  179. package/dist/types.d.ts +167 -0
  180. package/dist/types.d.ts.map +1 -0
  181. package/dist/types.js +13 -0
  182. package/dist/types.js.map +1 -0
  183. package/package.json +78 -18
  184. package/LICENSE.md +0 -31
  185. package/README.adoc +0 -78
  186. package/src/maps/acadsin-zho-Hani-Latn-2002.js +0 -9
  187. package/src/maps/alalc-amh-Ethi-Latn-1997.js +0 -8
  188. package/src/maps/alalc-amh-Ethi-Latn-2011.js +0 -7
  189. package/src/maps/alalc-ara-Arab-Latn-1997.js +0 -8
  190. package/src/maps/alalc-asm-Deva-Latn-1997.js +0 -50
  191. package/src/maps/alalc-asm-Deva-Latn-2012.js +0 -7
  192. package/src/maps/alalc-aze-Arab-Latn-1997.js +0 -11
  193. package/src/maps/alalc-aze-Cyrl-Latn-1997.js +0 -9
  194. package/src/maps/alalc-bel-Cyrl-Latn-1997.js +0 -8
  195. package/src/maps/alalc-ben-Beng-Latn-1997.js +0 -52
  196. package/src/maps/alalc-ben-Beng-Latn-2017.js +0 -9
  197. package/src/maps/alalc-bul-Cyrl-Latn-1997.js +0 -10
  198. package/src/maps/alalc-div-Thaa-Latn-1997.js +0 -38
  199. package/src/maps/alalc-div-Thaa-Latn-2012.js +0 -7
  200. package/src/maps/alalc-ell-Grek-Latn-1997.js +0 -25
  201. package/src/maps/alalc-ell-Grek-Latn-2010.js +0 -27
  202. package/src/maps/alalc-guj-Gujr-Latn-1997.js +0 -50
  203. package/src/maps/alalc-guj-Gujr-Latn-2011.js +0 -7
  204. package/src/maps/alalc-hin-Deva-Latn-1997.js +0 -60
  205. package/src/maps/alalc-hin-Deva-Latn-2011.js +0 -7
  206. package/src/maps/alalc-kan-Kana-Latn-1997.js +0 -51
  207. package/src/maps/alalc-kan-Kana-Latn-2011.js +0 -7
  208. package/src/maps/alalc-kat-Geok-Latn-1997.js +0 -8
  209. package/src/maps/alalc-kat-Geok-Latn-2011.js +0 -7
  210. package/src/maps/alalc-kat-Geor-Latn-1997.js +0 -8
  211. package/src/maps/alalc-kat-Geor-Latn-2011.js +0 -7
  212. package/src/maps/alalc-kor-Hang-Latn-1997.js +0 -9
  213. package/src/maps/alalc-mal-Mlym-Latn-1997.js +0 -52
  214. package/src/maps/alalc-mal-Mlym-Latn-2012.js +0 -7
  215. package/src/maps/alalc-mar-Deva-Latn-1997.js +0 -13
  216. package/src/maps/alalc-mar-Deva-Latn-2011.js +0 -7
  217. package/src/maps/alalc-mkd-Cyrl-Latn-1997.js +0 -17
  218. package/src/maps/alalc-mkd-Cyrl-Latn-2013.js +0 -17
  219. package/src/maps/alalc-mon-Cyrl-Latn-1997.js +0 -8
  220. package/src/maps/alalc-ori-Orya-Latn-1997.js +0 -55
  221. package/src/maps/alalc-ori-Orya-Latn-2011.js +0 -7
  222. package/src/maps/alalc-pan-Guru-Latn-1997.js +0 -17
  223. package/src/maps/alalc-pan-Guru-Latn-2011.js +0 -7
  224. package/src/maps/alalc-per-Arab-Latn-1997.js +0 -11
  225. package/src/maps/alalc-pli-Deva-Latn-2012.js +0 -13
  226. package/src/maps/alalc-pra-Deva-Latn-2012.js +0 -7
  227. package/src/maps/alalc-rus-Cyrl-Latn-1997.js +0 -9
  228. package/src/maps/alalc-rus-Cyrl-Latn-2012.js +0 -9
  229. package/src/maps/alalc-san-Deva-Latn-2012.js +0 -49
  230. package/src/maps/alalc-sin-Sinh-Latn-1997.js +0 -54
  231. package/src/maps/alalc-sin-Sinh-Latn-2011.js +0 -7
  232. package/src/maps/alalc-srp-Cyrl-Latn-1997.js +0 -17
  233. package/src/maps/alalc-srp-Cyrl-Latn-2013.js +0 -15
  234. package/src/maps/alalc-tam-Taml-Latn-1997.js +0 -9
  235. package/src/maps/alalc-tam-Taml-Latn-2011.js +0 -7
  236. package/src/maps/alalc-tel-Telu-Latn-1997.js +0 -54
  237. package/src/maps/alalc-tel-Telu-Latn-2011.js +0 -7
  238. package/src/maps/alalc-tir-Ethi-Latn-1997.js +0 -8
  239. package/src/maps/alalc-tir-Ethi-Latn-2011.js +0 -7
  240. package/src/maps/alalc-ukr-Cyrl-Latn-1997.js +0 -9
  241. package/src/maps/alalc-ukr-Cyrl-Latn-2011.js +0 -7
  242. package/src/maps/apcbg-bul-Cyrl-Latn-1995.js +0 -8
  243. package/src/maps/az-aze-Cyrl-Latn-1939.js +0 -8
  244. package/src/maps/az-aze-Cyrl-Latn-1958.js +0 -11
  245. package/src/maps/bas-rus-Cyrl-Latn-2017-bss.js +0 -10
  246. package/src/maps/bas-rus-Cyrl-Latn-2017-oss.js +0 -10
  247. package/src/maps/bgn-jpn-Hrkt-Latn-1962.js +0 -10
  248. package/src/maps/bgn-kor-Hang-Latn-1943.js +0 -9
  249. package/src/maps/bgn-kor-Kore-Latn-1943.js +0 -10
  250. package/src/maps/bgna-bul-Cyrl-Latn-2006.js +0 -7
  251. package/src/maps/bgna-bul-Cyrl-Latn-2009.js +0 -7
  252. package/src/maps/bgnpcgn-amh-Ethi-Latn-1967.js +0 -8
  253. package/src/maps/bgnpcgn-ara-Arab-Latn-1956.js +0 -25
  254. package/src/maps/bgnpcgn-arm-Armn-Latn-1981.js +0 -8
  255. package/src/maps/bgnpcgn-aze-Cyrl-Latn-1993.js +0 -8
  256. package/src/maps/bgnpcgn-bak-Cyrl-Latn-2007.js +0 -16
  257. package/src/maps/bgnpcgn-bal-Arab-Latn-2008.js +0 -9
  258. package/src/maps/bgnpcgn-bel-Cyrl-Latn-1979.js +0 -12
  259. package/src/maps/bgnpcgn-bul-Cyrl-Latn-1952.js +0 -12
  260. package/src/maps/bgnpcgn-bul-Cyrl-Latn-2013.js +0 -10
  261. package/src/maps/bgnpcgn-che-Cyrl-Latn-2008.js +0 -15
  262. package/src/maps/bgnpcgn-deu-Latn-Latn-2000.js +0 -12
  263. package/src/maps/bgnpcgn-div-Thaa-Latn-1972.js +0 -13
  264. package/src/maps/bgnpcgn-div-Thaa-Latn-1988.js +0 -9
  265. package/src/maps/bgnpcgn-ell-Grek-Latn-1962.js +0 -52
  266. package/src/maps/bgnpcgn-ell-Grek-Latn-1996.js +0 -7
  267. package/src/maps/bgnpcgn-fao-Latn-Latn-1964.js +0 -11
  268. package/src/maps/bgnpcgn-fao-Latn-Latn-1968.js +0 -7
  269. package/src/maps/bgnpcgn-fas-Arab-Latn-1956.js +0 -8
  270. package/src/maps/bgnpcgn-isl-Latn-Latn-1964.js +0 -10
  271. package/src/maps/bgnpcgn-isl-Latn-Latn-1968.js +0 -7
  272. package/src/maps/bgnpcgn-jpn-Hrkt-Latn-1976.js +0 -10
  273. package/src/maps/bgnpcgn-kat-Geor-Latn-1981.js +0 -8
  274. package/src/maps/bgnpcgn-kat-Geor-Latn-2009.js +0 -7
  275. package/src/maps/bgnpcgn-kaz-Cyrl-Latn-1979.js +0 -8
  276. package/src/maps/bgnpcgn-kir-Cyrl-Latn-1979.js +0 -8
  277. package/src/maps/bgnpcgn-kor-Hang-Latn-kn-1945.js +0 -52
  278. package/src/maps/bgnpcgn-kor-Hang-Latn-rok-2011.js +0 -8
  279. package/src/maps/bgnpcgn-kor-Kore-Latn-rok-2011.js +0 -8
  280. package/src/maps/bgnpcgn-kur-Arab-Latn-2007.js +0 -9
  281. package/src/maps/bgnpcgn-mkd-Cyrl-Latn-1981.js +0 -15
  282. package/src/maps/bgnpcgn-mkd-Cyrl-Latn-2013.js +0 -17
  283. package/src/maps/bgnpcgn-mon-Cyrl-Latn-1964.js +0 -12
  284. package/src/maps/bgnpcgn-nep-Deva-Latn-2011.js +0 -13
  285. package/src/maps/bgnpcgn-per-Arab-Latn-1958.js +0 -10
  286. package/src/maps/bgnpcgn-prs-Arab-Latn-2007.js +0 -25
  287. package/src/maps/bgnpcgn-prs-Arab-Latn-yaghoubi.js +0 -8
  288. package/src/maps/bgnpcgn-pus-Arab-Latn-1968.js +0 -26
  289. package/src/maps/bgnpcgn-ron-Cyrl-Latn-2002.js +0 -23
  290. package/src/maps/bgnpcgn-rue-Cyrl-Latn-2016.js +0 -8
  291. package/src/maps/bgnpcgn-rus-Cyrl-Latn-1947.js +0 -52
  292. package/src/maps/bgnpcgn-sme-Latn-Latn-1984.js +0 -8
  293. package/src/maps/bgnpcgn-srp-Cyrl-Latn-1962.js +0 -7
  294. package/src/maps/bgnpcgn-srp-Cyrl-Latn-2005.js +0 -15
  295. package/src/maps/bgnpcgn-tat-Cyrl-Latn-2007.js +0 -27
  296. package/src/maps/bgnpcgn-tgk-Cyrl-Latn-1994.js +0 -12
  297. package/src/maps/bgnpcgn-tir-Ethi-Latn-2007.js +0 -8
  298. package/src/maps/bgnpcgn-ukr-Cyrl-Latn-1965.js +0 -9
  299. package/src/maps/bgnpcgn-ukr-Cyrl-Latn-2019.js +0 -9
  300. package/src/maps/bgnpcgn-urd-Arab-Latn-2007.js +0 -25
  301. package/src/maps/bgnpcgn-uzb-Cyrl-Latn-1979.js +0 -12
  302. package/src/maps/bgnpcgn-uzb-Cyrl-Latn-2000.js +0 -11
  303. package/src/maps/bgnpcgn-zho-Hans-Latn-1979.js +0 -8
  304. package/src/maps/bis-asm-Beng-Latn-13194-1991.js +0 -14
  305. package/src/maps/bis-ben-Beng-Latn-13194-1991.js +0 -14
  306. package/src/maps/bis-dev-Deva-Latn-13194-1991.js +0 -14
  307. package/src/maps/bis-guj-Gujr-Latn-13194-1991.js +0 -14
  308. package/src/maps/bis-kan-Kana-Latn-13194-1991.js +0 -14
  309. package/src/maps/bis-mlm-Mlym-Latn-13194-1991.js +0 -14
  310. package/src/maps/bis-ori-Orya-Latn-13194-1991.js +0 -14
  311. package/src/maps/bis-pnj-Guru-Latn-13194-1991.js +0 -14
  312. package/src/maps/bis-tel-Telu-Latn-13194-1991.js +0 -14
  313. package/src/maps/bis-tml-Taml-Latn-13194-1991.js +0 -14
  314. package/src/maps/by-bel-Cyrl-Latn-1998.js +0 -19
  315. package/src/maps/by-bel-Cyrl-Latn-2007.js +0 -7
  316. package/src/maps/din-grc-Grek-Latn-31634-2011-t1.js +0 -23
  317. package/src/maps/din-hin-Deva-Latn-33904-2018.js +0 -9
  318. package/src/maps/din-kat-Geor-Latn-32707-2010.js +0 -8
  319. package/src/maps/din-mar-Deva-Latn-33904-2018.js +0 -9
  320. package/src/maps/din-nep-Deva-Latn-33904-2018.js +0 -9
  321. package/src/maps/din-pli-Deva-Latn-33904-2018.js +0 -7
  322. package/src/maps/din-pra-Deva-Latn-33904-2018.js +0 -7
  323. package/src/maps/din-san-Deva-Latn-33904-2018.js +0 -51
  324. package/src/maps/din-tam-Taml-Latn-33903-2016.js +0 -34
  325. package/src/maps/dos-nep-Deva-Latn-1997.js +0 -9
  326. package/src/maps/elot-ell-Grek-Latn-743-1982-tl.js +0 -53
  327. package/src/maps/elot-ell-Grek-Latn-743-1982-ts.js +0 -53
  328. package/src/maps/elot-ell-Grek-Latn-743-2001-tl.js +0 -7
  329. package/src/maps/elot-ell-Grek-Latn-743-2001-ts.js +0 -7
  330. package/src/maps/ggg-kat-Geor-Latn-2002.js +0 -8
  331. package/src/maps/gki-bel-Cyrl-Latn-1992.js +0 -9
  332. package/src/maps/gki-bel-Cyrl-Latn-2000.js +0 -18
  333. package/src/maps/gost-rus-Cyrl-Latn-16876-71-1983.js +0 -10
  334. package/src/maps/gost-rus-Cyrl-Latn-7.79-2000-2002.js +0 -9
  335. package/src/maps/hk-yue-Hani-Latn-1888.js +0 -10
  336. package/src/maps/icao-bel-Cyrl-Latn-9303.js +0 -8
  337. package/src/maps/icao-bul-Cyrl-Latn-9303.js +0 -8
  338. package/src/maps/icao-fas-Arab-Latn-9303.js +0 -8
  339. package/src/maps/icao-heb-Hebr-Latn-9303.js +0 -8
  340. package/src/maps/icao-mkd-Cyrl-Latn-9303.js +0 -8
  341. package/src/maps/icao-rus-Cyrl-Latn-9303.js +0 -8
  342. package/src/maps/icao-srp-Cyrl-Latn-9303.js +0 -8
  343. package/src/maps/icao-ukr-Cyrl-Latn-9303.js +0 -8
  344. package/src/maps/index.json +0 -1
  345. package/src/maps/iso-ara-Arab-Latn-233-1984.js +0 -24
  346. package/src/maps/iso-ara-Arab-Latn-233-2-1993.js +0 -12
  347. package/src/maps/iso-asm-Beng-Latn-15919-2001.js +0 -9
  348. package/src/maps/iso-ben-Beng-Latn-15919-2001.js +0 -9
  349. package/src/maps/iso-ell-Grek-Latn-843-1997-t1.js +0 -15
  350. package/src/maps/iso-ell-Grek-Latn-843-1997-t2.js +0 -9
  351. package/src/maps/iso-guj-Gujr-Latn-15919-2001.js +0 -9
  352. package/src/maps/iso-hin-Deva-Latn-15919-2001.js +0 -7
  353. package/src/maps/iso-inc-Deva-Latn-15919-2001.js +0 -7
  354. package/src/maps/iso-jpn-Hrkt-Latn-3602-1989.js +0 -10
  355. package/src/maps/iso-kan-Kana-Latn-15919-2001.js +0 -9
  356. package/src/maps/iso-kat-Geor-Latn-9984-1996.js +0 -8
  357. package/src/maps/iso-kor-Hang-Latn-1996-method1.js +0 -14
  358. package/src/maps/iso-kor-Hang-Latn-1996-method2.js +0 -13
  359. package/src/maps/iso-mal-Mlym-Latn-15919-2001.js +0 -12
  360. package/src/maps/iso-mar-Deva-Latn-15919-2001.js +0 -7
  361. package/src/maps/iso-nep-Deva-Latn-15919-2001.js +0 -7
  362. package/src/maps/iso-ori-Orya-Latn-15919-2001.js +0 -9
  363. package/src/maps/iso-pan-Guru-Latn-15919-2001.js +0 -9
  364. package/src/maps/iso-pli-Beng-Latn-15919-2001.js +0 -7
  365. package/src/maps/iso-pli-Deva-Latn-15919-2001.js +0 -7
  366. package/src/maps/iso-pli-Sinh-Latn-15919-2001.js +0 -9
  367. package/src/maps/iso-pli-Thai-Latn-15919-2001.js +0 -7
  368. package/src/maps/iso-pra-Deva-Latn-15919-2001.js +0 -7
  369. package/src/maps/iso-prs-Arab-Latn-233-3-1999.js +0 -8
  370. package/src/maps/iso-rus-Cyrl-Latn-9-1995.js +0 -8
  371. package/src/maps/iso-san-Deva-Latn-15919-2001.js +0 -9
  372. package/src/maps/iso-tam-Taml-Latn-15919-2001.js +0 -9
  373. package/src/maps/iso-tel-Telu-Latn-15919-2001.js +0 -9
  374. package/src/maps/iso-tha-Thai-Latn-11940-1998.js +0 -9
  375. package/src/maps/kp-kor-Hang-Latn-2002.js +0 -78
  376. package/src/maps/lshk-yue-Hani-Latn-jyutping-1993.js +0 -8
  377. package/src/maps/masm-mon-Cyrl-Latn-5217-2012.js +0 -8
  378. package/src/maps/masm-mon-Latn-Cyrl-5217-2012.js +0 -18
  379. package/src/maps/mext-jpn-Hrkt-Latn-1954.js +0 -16
  380. package/src/maps/moct-kor-Hang-Latn-2000.js +0 -112
  381. package/src/maps/mofa-jpn-Hrkt-Latn-1989.js +0 -14
  382. package/src/maps/mv-div-Thaa-Latn-1987.js +0 -58
  383. package/src/maps/mvd-bel-Cyrl-Latn-2008.js +0 -36
  384. package/src/maps/mvd-bel-Cyrl-Latn-2010.js +0 -11
  385. package/src/maps/mvd-rus-Cyrl-Latn-2008.js +0 -19
  386. package/src/maps/mvd-rus-Cyrl-Latn-2010.js +0 -9
  387. package/src/maps/odni-ara-Arab-Latn-2004.js +0 -7
  388. package/src/maps/odni-ara-Arab-Latn-2015.js +0 -10
  389. package/src/maps/odni-aze-Cyrl-Latn-2015.js +0 -18
  390. package/src/maps/odni-bel-Cyrl-Latn-2015.js +0 -8
  391. package/src/maps/odni-bul-Cyrl-Latn-2005.js +0 -8
  392. package/src/maps/odni-bul-Cyrl-Latn-2015.js +0 -13
  393. package/src/maps/odni-che-Cyrl-Latn-2015.js +0 -13
  394. package/src/maps/odni-fas-Arab-Latn-2004.js +0 -8
  395. package/src/maps/odni-fas-Arab-Latn-2015.js +0 -8
  396. package/src/maps/odni-hin-Deva-Latn-2004.js +0 -8
  397. package/src/maps/odni-hin-Deva-Latn-2015.js +0 -8
  398. package/src/maps/odni-kat-Geor-Latn-2015.js +0 -8
  399. package/src/maps/odni-kaz-Cyrl-Latn-2015.js +0 -20
  400. package/src/maps/odni-kir-Cyrl-Latn-2015.js +0 -18
  401. package/src/maps/odni-kor-Hang-Latn-2015.js +0 -92
  402. package/src/maps/odni-mkd-Cyrl-Latn-2005.js +0 -7
  403. package/src/maps/odni-mkd-Cyrl-Latn-2015.js +0 -8
  404. package/src/maps/odni-prs-Arab-Latn-2004.js +0 -9
  405. package/src/maps/odni-prs-Arab-Latn-2015.js +0 -9
  406. package/src/maps/odni-pus-Arab-Latn-2011.js +0 -10
  407. package/src/maps/odni-rus-Cyrl-Latn-2015.js +0 -8
  408. package/src/maps/odni-srp-Cyrl-Latn-2005.js +0 -7
  409. package/src/maps/odni-srp-Cyrl-Latn-2015.js +0 -8
  410. package/src/maps/odni-tat-Cyrl-Latn-2015.js +0 -19
  411. package/src/maps/odni-tgk-Cyrl-Latn-2015.js +0 -21
  412. package/src/maps/odni-tuk-Cyrl-Latn-2015.js +0 -13
  413. package/src/maps/odni-uig-Cyrl-Latn-2015.js +0 -17
  414. package/src/maps/odni-ukr-Cyrl-Latn-2015.js +0 -9
  415. package/src/maps/odni-urd-Arab-Latn-2015.js +0 -8
  416. package/src/maps/odni-uzb-Cyrl-Latn-2015.js +0 -13
  417. package/src/maps/posix.js +0 -5
  418. package/src/maps/sac-zho-Hans-Latn-1979.js +0 -8
  419. package/src/maps/sasm-mon-Mong-Latn-general-1978.js +0 -8
  420. package/src/maps/sasm-mon-Mong-Latn-phonetic-1978.js +0 -9
  421. package/src/maps/ses-ara-Arab-Latn-1930.js +0 -10
  422. package/src/maps/stategeocadastre-ukr-Cyrl-Latn-1993.js +0 -19
  423. package/src/maps/ua-ukr-Cyrl-Latn-1996.js +0 -21
  424. package/src/maps/ua-ukr-Cyrl-Latn-2007.js +0 -16
  425. package/src/maps/ua-ukr-Cyrl-Latn-2010.js +0 -11
  426. package/src/maps/un-amh-Ethi-Latn-2016.js +0 -9
  427. package/src/maps/un-ara-Arab-Latn-1971.js +0 -13
  428. package/src/maps/un-ara-Arab-Latn-1972.js +0 -13
  429. package/src/maps/un-ara-Arab-Latn-2017.js +0 -24
  430. package/src/maps/un-asm-Beng-Latn-1972.js +0 -50
  431. package/src/maps/un-bel-Cyrl-Latn-2007.js +0 -7
  432. package/src/maps/un-ben-Beng-Latn-2016.js +0 -8
  433. package/src/maps/un-bul-Cyrl-Latn-1977.js +0 -14
  434. package/src/maps/un-ell-Grek-Latn-1987-phonetic.js +0 -83
  435. package/src/maps/un-ell-Grek-Latn-1987-tl.js +0 -7
  436. package/src/maps/un-ell-Grek-Latn-1987-ts.js +0 -7
  437. package/src/maps/un-guj-Gujr-Latn-1972.js +0 -45
  438. package/src/maps/un-hin-Deva-Latn-2016.js +0 -91
  439. package/src/maps/un-kan-Kana-Latn-2016.js +0 -45
  440. package/src/maps/un-mal-Mlym-Latn-1972.js +0 -48
  441. package/src/maps/un-mar-Deva-Latn-2016.js +0 -11
  442. package/src/maps/un-mkd-Cyrl-Latn-1977.js +0 -21
  443. package/src/maps/un-mon-Mong-Latn-general-2013.js +0 -7
  444. package/src/maps/un-mon-Mong-Latn-phonetic-2013.js +0 -7
  445. package/src/maps/un-nep-Deva-Latn-1972.js +0 -91
  446. package/src/maps/un-nep-Deva-Latn-2013.js +0 -7
  447. package/src/maps/un-ori-Orya-Latn-1972.js +0 -48
  448. package/src/maps/un-pan-Guru-Latn-1972.js +0 -87
  449. package/src/maps/un-prs-Arab-Latn-1967.js +0 -11
  450. package/src/maps/un-rus-Cyrl-Latn-1987.js +0 -9
  451. package/src/maps/un-sin-Sinh-Latn-1972.js +0 -46
  452. package/src/maps/un-srp-Cyrl-Latn-1997.js +0 -7
  453. package/src/maps/un-tam-Taml-Latn-1972.js +0 -34
  454. package/src/maps/un-tel-Telu-Latn-1972.js +0 -46
  455. package/src/maps/un-ukr-Cyrl-Latn-1998.js +0 -10
  456. package/src/maps/un-ukr-Cyrl-Latn-2012.js +0 -7
  457. package/src/maps/un-urd-Arab-Latn-1972.js +0 -25
  458. package/src/maps/unicode.js +0 -7
  459. package/src/maps/var-Cyrl.js +0 -7
  460. package/src/maps/var-amh-Ethi-Latn-eae-2003.js +0 -8
  461. package/src/maps/var-gez-Ethi-Latn-eae-2003.js +0 -7
  462. package/src/maps/var-hin-Deva-Latn-hunterian-1872.js +0 -12
  463. package/src/maps/var-jpn-Hrkt-Latn-hepburn-1886.js +0 -18
  464. package/src/maps/var-jpn-Hrkt-Latn-hepburn-1954.js +0 -17
  465. package/src/maps/var-kor-Hang-Hang-jamo.js +0 -8
  466. package/src/maps/var-kor-Hang-Latn-mr-1939.js +0 -355
  467. package/src/maps/var-kor-Kore-Hang-2013.js +0 -8
  468. package/src/maps/var-kor-Kore-Latn-mr-1939.js +0 -10
  469. package/src/maps/var-kor.js +0 -19
  470. package/src/maps/var-mar-Deva-Latn-hunterian-1872.js +0 -7
  471. package/src/maps/var-mon-Mong-Latn-1930.js +0 -8
  472. package/src/maps/var-mon-Mong-Latn-lessing.js +0 -14
  473. package/src/maps/var-mon-Mong-Latn-vpmc.js +0 -10
  474. package/src/maps/var-pra-Deva-Latn-iast-1912.js +0 -7
  475. package/src/maps/var-san-Deva-Latn-iast-1912.js +0 -9
  476. package/src/maps/var-zho-Hani-Latn-wd-1979.js +0 -13
  477. package/src/stdlib.js +0 -294
  478. package/test/test.js +0 -26
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Rababa diacritizer — port of `rababa/lib/rababa/arabic/diacritizer.rb`.
3
+ *
4
+ * Pipeline:
5
+ * text → clean → strip diacritics → encode to IDs
6
+ * → ONNX inference ({src, lengths}) → logits
7
+ * → argmax over classes → haraqat IDs
8
+ * → combine: original letters + predicted haraqat
9
+ * → reconcile with original input (preserves non-Arabic chars)
10
+ *
11
+ * The model file is loaded by the provisioner; we receive an
12
+ * InferenceSession + config artifacts.
13
+ */
14
+ import { ArabicEncoder } from "./encoder.js";
15
+ import { reconcileStrings } from "./reconciler.js";
16
+ import { ID_TO_HARAAQAT, INPUT_ID_TO_SYMBOL } from "./haraqat.js";
17
+ const DEFAULT_CONFIG = {
18
+ maxLen: 200,
19
+ batchSize: 1,
20
+ textEncoder: "ArabicEncoderWithStartSymbol",
21
+ textCleaner: "valid_arabic_cleaners",
22
+ };
23
+ class RababaModelImpl {
24
+ kind = "rababa";
25
+ session;
26
+ encoder;
27
+ config;
28
+ constructor(session, config) {
29
+ this.session = session;
30
+ this.config = config;
31
+ this.encoder = new ArabicEncoder({
32
+ cleaner: config.textCleaner === "valid_arabic_cleaners" ? "arabic" : "basic",
33
+ startSymbol: config.textEncoder === "ArabicEncoderWithStartSymbol",
34
+ });
35
+ }
36
+ async diacritize(text) {
37
+ // Truncate if too long
38
+ let truncated = text;
39
+ if (truncated.length > this.config.maxLen) {
40
+ truncated = truncated.slice(0, this.config.maxLen);
41
+ }
42
+ // Clean → strip existing diacritics → encode
43
+ const cleaned = this.encoder.clean(truncated);
44
+ const stripped = this.stripDiacritics(cleaned);
45
+ const sequence = this.encoder.inputToSequence(stripped);
46
+ if (sequence.length === 0)
47
+ return truncated;
48
+ // Replicate the sequence batch_size times, padded to maxLen.
49
+ // The trained rababa model is fixed-shape [batch_size, max_len].
50
+ // We replicate the input row batch_size times (matching Ruby's
51
+ // diacritize_text) and pad each row to maxLen with the pad token.
52
+ const batchSize = this.config.batchSize;
53
+ const maxLen = this.config.maxLen;
54
+ const padToken = this.encoder.inputPadId;
55
+ const flat = [];
56
+ for (let b = 0; b < batchSize; b++) {
57
+ for (let i = 0; i < maxLen; i++) {
58
+ flat.push(i < sequence.length ? sequence[i] : padToken);
59
+ }
60
+ }
61
+ // Inference: {src, lengths}
62
+ const src = {
63
+ name: "src",
64
+ type: "int64",
65
+ data: new BigInt64Array(flat.map((n) => BigInt(n))),
66
+ dims: [batchSize, maxLen],
67
+ };
68
+ const lengths = {
69
+ name: "lengths",
70
+ type: "int64",
71
+ data: new BigInt64Array(Array(batchSize).fill(BigInt(maxLen))),
72
+ dims: [batchSize],
73
+ };
74
+ const outputs = await this.session.run({ src, lengths });
75
+ // Outputs[0] is the predictions tensor: [batch, seq, classes].
76
+ const out = outputs[this.session.outputNames[0]];
77
+ if (!out)
78
+ throw new Error("Rababa model produced no output");
79
+ const preds = argmaxBatch(out, sequence.length);
80
+ const combined = combineTextAndHaraqat(sequence, preds, this.encoder.inputPadId);
81
+ return reconcileStrings(cleaned, combined);
82
+ }
83
+ /** Unified MLModel interface — delegates to diacritize. */
84
+ async transform(input) {
85
+ return this.diacritize(input);
86
+ }
87
+ /**
88
+ * Strip haraqat from text — direct port of the Ruby
89
+ * remove_diacritics. We reuse the encoder's vocab check.
90
+ */
91
+ stripDiacritics(text) {
92
+ return Array.from(text)
93
+ .filter((c) => !/[ً-ْ]/.test(c))
94
+ .join("");
95
+ }
96
+ async dispose() {
97
+ await this.session.dispose();
98
+ }
99
+ }
100
+ /**
101
+ * Argmax over the last axis of a [batch, seq, classes] tensor.
102
+ * Returns one class index per (batch, seq) position.
103
+ */
104
+ function argmaxBatch(tensor, seqLen) {
105
+ const dims = tensor.dims;
106
+ // Last dim is classes
107
+ const classCount = dims[dims.length - 1];
108
+ const out = [];
109
+ // Treat data as flat floats or ints
110
+ const data = tensor.data;
111
+ for (let i = 0; i < seqLen; i++) {
112
+ let best = 0;
113
+ let bestVal = -Infinity;
114
+ const base = i * classCount;
115
+ for (let c = 0; c < classCount; c++) {
116
+ const v = typeof data[base + c] === "bigint" ? Number(data[base + c]) : data[base + c];
117
+ if (v > bestVal) {
118
+ bestVal = v;
119
+ best = c;
120
+ }
121
+ }
122
+ out.push(best);
123
+ }
124
+ return out;
125
+ }
126
+ /**
127
+ * Combine input token IDs + haraqat IDs into a diacritized string.
128
+ * Direct port of `combine_text_and_haraqat`.
129
+ */
130
+ function combineTextAndHaraqat(vecTxt, vecHaraqat, padId) {
131
+ let text = "";
132
+ for (let i = 0; i < vecTxt.length; i++) {
133
+ const txt = vecTxt[i];
134
+ if (txt === padId)
135
+ break;
136
+ const haraq = vecHaraqat[i] ?? 0;
137
+ const symbol = INPUT_ID_TO_SYMBOL[txt] ?? "";
138
+ const haraqStr = ID_TO_HARAAQAT[haraq] ?? "";
139
+ // Skip the pad and unused start tokens in the target vocab —
140
+ // they decode to "P" or "" and shouldn't appear in output.
141
+ if (haraqStr === "P")
142
+ continue;
143
+ text += symbol + haraqStr;
144
+ }
145
+ return text;
146
+ }
147
+ /**
148
+ * Factory: builds a RababaModel from a session + artifacts.
149
+ *
150
+ * Registered as the factory for kind "rababa" in src/ml/index.ts.
151
+ */
152
+ export async function createRababaModel(params) {
153
+ const config = params.config ?? parseConfig(params.artifacts["config.json"]);
154
+ return new RababaModelImpl(params.session, config);
155
+ }
156
+ function parseConfig(raw) {
157
+ if (!raw)
158
+ return DEFAULT_CONFIG;
159
+ try {
160
+ const json = typeof raw === "string" ? JSON.parse(raw) : JSON.parse(new TextDecoder().decode(raw));
161
+ return {
162
+ maxLen: Number(json.max_len ?? json.maxLen ?? DEFAULT_CONFIG.maxLen),
163
+ batchSize: Number(json.batch_size ?? json.batchSize ?? DEFAULT_CONFIG.batchSize),
164
+ textEncoder: (json.text_encoder ?? DEFAULT_CONFIG.textEncoder),
165
+ textCleaner: (json.text_cleaner ?? DEFAULT_CONFIG.textCleaner),
166
+ };
167
+ }
168
+ catch {
169
+ return DEFAULT_CONFIG;
170
+ }
171
+ }
172
+ //# sourceMappingURL=diacritizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diacritizer.js","sourceRoot":"","sources":["../../../../src/ml/models/rababa/diacritizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Text encoder — port of `rababa/lib/rababa/arabic/encoders.rb`.
3
+ *
4
+ * Converts input text into integer sequences the model can consume.
5
+ * Two methods:
6
+ * - inputToSequence(text): string → number[] (token IDs)
7
+ * - reverse: optional, defaults to false (matches Ruby default)
8
+ *
9
+ * The Ruby BasicArabicEncoder + ArabicEncoderWithStartSymbol collapse
10
+ * to a single class with options — they share the same vocab.
11
+ */
12
+ export interface ArabicEncoderOptions {
13
+ readonly cleaner?: "basic" | "arabic";
14
+ readonly reverseInput?: boolean;
15
+ readonly startSymbol?: boolean;
16
+ }
17
+ export declare class ArabicEncoder {
18
+ readonly inputSymbolToId: Readonly<Record<string, number>>;
19
+ readonly inputIdToSymbol: readonly string[];
20
+ readonly inputPadId: number;
21
+ readonly startSymbolId: number | null;
22
+ private readonly cleanerType;
23
+ private readonly reverse;
24
+ constructor(opts?: ArabicEncoderOptions);
25
+ clean(text: string): string;
26
+ /**
27
+ * Strip existing haraqat from `text`. Used before encoding so the
28
+ * model doesn't see its own output as input.
29
+ */
30
+ removeDiacritics(text: string): string;
31
+ /**
32
+ * Convert a cleaned, diacritics-stripped string into a sequence
33
+ * of token IDs.
34
+ *
35
+ * Skips characters not in the vocab (the Ruby version's
36
+ * `.map.reject { |i| i.nil? }`).
37
+ */
38
+ inputToSequence(text: string): number[];
39
+ }
40
+ //# sourceMappingURL=encoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../../../src/ml/models/rababa/encoder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,qBAAa,aAAa;IACxB,QAAQ,CAAC,eAAe,mCAAqB;IAC7C,QAAQ,CAAC,eAAe,oBAAqB;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,IAAI,GAAE,oBAAyB;IAO3C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI3B;;;OAGG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAMtC;;;;;;OAMG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;CASxC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Text encoder — port of `rababa/lib/rababa/arabic/encoders.rb`.
3
+ *
4
+ * Converts input text into integer sequences the model can consume.
5
+ * Two methods:
6
+ * - inputToSequence(text): string → number[] (token IDs)
7
+ * - reverse: optional, defaults to false (matches Ruby default)
8
+ *
9
+ * The Ruby BasicArabicEncoder + ArabicEncoderWithStartSymbol collapse
10
+ * to a single class with options — they share the same vocab.
11
+ */
12
+ import { INPUT_ID_TO_SYMBOL, INPUT_SYMBOL_TO_ID, PAD_SYMBOL } from "./haraqat.js";
13
+ import { cleanArabic, cleanBasic } from "./cleaner.js";
14
+ export class ArabicEncoder {
15
+ inputSymbolToId = INPUT_SYMBOL_TO_ID;
16
+ inputIdToSymbol = INPUT_ID_TO_SYMBOL;
17
+ inputPadId;
18
+ startSymbolId;
19
+ cleanerType;
20
+ reverse;
21
+ constructor(opts = {}) {
22
+ this.cleanerType = opts.cleaner ?? "arabic";
23
+ this.reverse = opts.reverseInput ?? false;
24
+ this.inputPadId = INPUT_SYMBOL_TO_ID[PAD_SYMBOL];
25
+ this.startSymbolId = opts.startSymbol ? 0 : null;
26
+ }
27
+ clean(text) {
28
+ return this.cleanerType === "arabic" ? cleanArabic(text) : cleanBasic(text);
29
+ }
30
+ /**
31
+ * Strip existing haraqat from `text`. Used before encoding so the
32
+ * model doesn't see its own output as input.
33
+ */
34
+ removeDiacritics(text) {
35
+ return Array.from(text)
36
+ .filter((c) => !(c in this.inputSymbolToId === false && /[ً-ْ]/.test(c)))
37
+ .join("");
38
+ }
39
+ /**
40
+ * Convert a cleaned, diacritics-stripped string into a sequence
41
+ * of token IDs.
42
+ *
43
+ * Skips characters not in the vocab (the Ruby version's
44
+ * `.map.reject { |i| i.nil? }`).
45
+ */
46
+ inputToSequence(text) {
47
+ const chars = this.reverse ? Array.from(text).reverse() : Array.from(text);
48
+ const out = [];
49
+ for (const c of chars) {
50
+ const id = this.inputSymbolToId[c];
51
+ if (id !== undefined)
52
+ out.push(id);
53
+ }
54
+ return out;
55
+ }
56
+ }
57
+ //# sourceMappingURL=encoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../../../src/ml/models/rababa/encoder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAQtD,MAAM,OAAO,aAAa;IACf,eAAe,GAAG,kBAAkB,CAAA;IACpC,eAAe,GAAG,kBAAkB,CAAA;IACpC,UAAU,CAAQ;IAClB,aAAa,CAAe;IACpB,WAAW,CAAoB;IAC/B,OAAO,CAAS;IAEjC,YAAY,OAA6B,EAAE;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAA;QAC3C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,IAAI,KAAK,CAAA;QACzC,IAAI,CAAC,UAAU,GAAG,kBAAkB,CAAC,UAAU,CAAE,CAAA;QACjD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAC7E,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,IAAY;QAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aACxE,IAAI,CAAC,EAAE,CAAC,CAAA;IACb,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,IAAY;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1E,MAAM,GAAG,GAAa,EAAE,CAAA;QACxB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;YAClC,IAAI,EAAE,KAAK,SAAS;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACpC,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Arabic haraqat (diacritic marks) + character classes.
3
+ *
4
+ * Direct port of `rababa/lib/rababa/arabic.rb` constants. These are
5
+ * Unicode code-point references — kept exactly as the Ruby source
6
+ * defines them so the encoder vocab matches the trained model.
7
+ */
8
+ /** Single haraqat (basic diacritics). */
9
+ export declare const HARAQAT: readonly ["ْ", "ّ", "ٌ", "ٍ", "ِ", "ً", "َ", "ُ"];
10
+ /** Unicode escapes of HARAQAT for clarity. */
11
+ export declare const UHARAQAT: readonly ["ْ", "ّ", "ٌ", "ٍ", "ِ", "ً", "َ", "ُ"];
12
+ /** Punctuations allowed by the Arabic cleaner. */
13
+ export declare const PUNCTUATIONS: readonly [".", "،", ":", "؛", "-", "؟"];
14
+ /** Arabic characters the model accepts (including space). */
15
+ export declare const ARAB_CHARS = "\u0649\u0639\u0638\u062D\u0631\u0633\u064A\u0634\u0636\u0642 \u062B\u0644\u0635\u0637\u0643\u0622\u0645\u0627\u0625\u0647\u0632\u0621\u0623\u0641\u0624\u063A\u062C\u0626\u062F\u0629\u062E\u0648\u0628\u0630\u062A\u0646";
16
+ /** Arabic characters without the space. */
17
+ export declare const ARAB_CHARS_NO_SPACE = "\u0649\u0639\u0638\u062D\u0631\u0633\u064A\u0634\u0636\u0642\u062B\u0644\u0635\u0637\u0643\u0622\u0645\u0627\u0625\u0647\u0632\u0621\u0623\u0641\u0624\u063A\u062C\u0626\u062F\u0629\u062E\u0648\u0628\u0630\u062A\u0646";
18
+ /** Valid Arabic characters for the cleaner's whitelist. */
19
+ export declare const VALID_ARABIC: string[];
20
+ /**
21
+ * Map of basic haraqat → display name. Used for human-readable
22
+ * diagnostics; the model uses indices into ALL_POSSIBLE_HARAQAT.
23
+ */
24
+ export declare const BASIC_HARAQAT: Readonly<Record<string, string>>;
25
+ /**
26
+ * Complete output vocabulary: every haraqat combination the model
27
+ * can predict. Index into this dict = target token ID.
28
+ *
29
+ * Order matters — must match the model's training-time vocab order.
30
+ */
31
+ export declare const ALL_POSSIBLE_HARAQAT: Readonly<Record<string, string>>;
32
+ /**
33
+ * Reverse lookup: haraqat string → index. Matches the encoder's
34
+ * `@target_symbol_to_id`.
35
+ */
36
+ export declare const HARAAQAT_TO_ID: Readonly<Record<string, number>>;
37
+ export declare const ID_TO_HARAAQAT: readonly string[];
38
+ /**
39
+ * Input vocab used by BasicArabicEncoder. Index 0 = pad ("P");
40
+ * remaining indices match the source's input_chars string.
41
+ *
42
+ * Direct port of `rababa/lib/rababa/arabic/encoders.rb:84`.
43
+ */
44
+ export declare const INPUT_CHARS = "\u0628\u0636.\u063A\u0649\u0647\u0638\u062E\u0629\u061F:\u0637\u0633\u060C\u061B\u0641\u0646\u062F\u0624\u0644\u0648\u0626\u0622\u0643-\u064A\u0630\u0627\u0635\u0634\u062D\u0632\u0621\u0645\u0623\u062C\u0625 \u062A\u0631\u0642\u0639\u062B";
45
+ export declare const PAD_SYMBOL = "P";
46
+ export declare const INPUT_VOCAB: readonly string[];
47
+ export declare const INPUT_SYMBOL_TO_ID: Readonly<Record<string, number>>;
48
+ export declare const INPUT_ID_TO_SYMBOL: readonly string[];
49
+ //# sourceMappingURL=haraqat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"haraqat.d.ts","sourceRoot":"","sources":["../../../../src/ml/models/rababa/haraqat.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,yCAAyC;AACzC,eAAO,MAAM,OAAO,mDAAoD,CAAA;AAExE,8CAA8C;AAC9C,eAAO,MAAM,QAAQ,mDAAoD,CAAA;AAEzE,kDAAkD;AAClD,eAAO,MAAM,YAAY,yCAA0C,CAAA;AAEnE,6DAA6D;AAC7D,eAAO,MAAM,UAAU,8NAA0C,CAAA;AAEjE,2CAA2C;AAC3C,eAAO,MAAM,mBAAmB,6NAAyC,CAAA;AAEzE,2DAA2D;AAC3D,eAAO,MAAM,YAAY,UAA8B,CAAA;AAEvD;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASzD,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBhE,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE3D,CAAA;AAaD,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAI3C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,mPAAgD,CAAA;AAExE,eAAO,MAAM,UAAU,MAAM,CAAA;AAC7B,eAAO,MAAM,WAAW,EAAE,SAAS,MAAM,EAAiC,CAAA;AAC1E,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE/D,CAAA;AACD,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAAgB,CAAA"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Arabic haraqat (diacritic marks) + character classes.
3
+ *
4
+ * Direct port of `rababa/lib/rababa/arabic.rb` constants. These are
5
+ * Unicode code-point references — kept exactly as the Ruby source
6
+ * defines them so the encoder vocab matches the trained model.
7
+ */
8
+ /** Single haraqat (basic diacritics). */
9
+ export const HARAQAT = ["ْ", "ّ", "ٌ", "ٍ", "ِ", "ً", "َ", "ُ"];
10
+ /** Unicode escapes of HARAQAT for clarity. */
11
+ export const UHARAQAT = ["ْ", "ّ", "ٌ", "ٍ", "ِ", "ً", "َ", "ُ"];
12
+ /** Punctuations allowed by the Arabic cleaner. */
13
+ export const PUNCTUATIONS = [".", "،", ":", "؛", "-", "؟"];
14
+ /** Arabic characters the model accepts (including space). */
15
+ export const ARAB_CHARS = "ىعظحرسيشضق ثلصطكآماإهزءأفؤغجئدةخوبذتن";
16
+ /** Arabic characters without the space. */
17
+ export const ARAB_CHARS_NO_SPACE = "ىعظحرسيشضقثلصطكآماإهزءأفؤغجئدةخوبذتن";
18
+ /** Valid Arabic characters for the cleaner's whitelist. */
19
+ export const VALID_ARABIC = [...HARAQAT, ...ARAB_CHARS];
20
+ /**
21
+ * Map of basic haraqat → display name. Used for human-readable
22
+ * diagnostics; the model uses indices into ALL_POSSIBLE_HARAQAT.
23
+ */
24
+ export const BASIC_HARAQAT = Object.freeze({
25
+ "َ": "Fatha",
26
+ "ً": "Fathatah",
27
+ "ُ": "Damma",
28
+ "ٌ": "Dammatan",
29
+ "ِ": "Kasra",
30
+ "ٍ": "Kasratan",
31
+ "ْ": "Sukun",
32
+ "ّ": "Shaddah",
33
+ });
34
+ /**
35
+ * Complete output vocabulary: every haraqat combination the model
36
+ * can predict. Index into this dict = target token ID.
37
+ *
38
+ * Order matters — must match the model's training-time vocab order.
39
+ */
40
+ export const ALL_POSSIBLE_HARAQAT = Object.freeze({
41
+ "": "No Diacritic",
42
+ "َ": "Fatha",
43
+ "ً": "Fathatah",
44
+ "ُ": "Damma",
45
+ "ٌ": "Dammatan",
46
+ "ِ": "Kasra",
47
+ "ٍ": "Kasratan",
48
+ "ْ": "Sukun",
49
+ "ّ": "Shaddah",
50
+ "َّ": "Shaddah + Fatha",
51
+ "ًّ": "Shaddah + Fathatah",
52
+ "ُّ": "Shaddah + Damma",
53
+ "ٌّ": "Shaddah + Dammatan",
54
+ "ِّ": "Shaddah + Kasra",
55
+ "ٍّ": "Shaddah + Kasratan",
56
+ });
57
+ /**
58
+ * Reverse lookup: haraqat string → index. Matches the encoder's
59
+ * `@target_symbol_to_id`.
60
+ */
61
+ export const HARAAQAT_TO_ID = Object.freeze(Object.fromEntries(Object.keys(ALL_POSSIBLE_HARAQAT).map((k, i) => [k, i])));
62
+ /**
63
+ * Reverse lookup: index → haraqat string. Matches the encoder's
64
+ * `@target_id_to_symbol`.
65
+ *
66
+ * The model's target vocab is `[@pad] + ALL_POSSIBLE_HARAQAT.keys`,
67
+ * so index 0 = pad ("P", treated as no-op) and indices 1..15 are
68
+ * the haraqat combinations. The model output has 17 classes (extra
69
+ * slot for start token "s" used during training); the last index
70
+ * is unused at inference time and decodes to "".
71
+ */
72
+ const TARGET_PAD_SYMBOL = "P";
73
+ export const ID_TO_HARAAQAT = [
74
+ TARGET_PAD_SYMBOL,
75
+ ...Object.keys(ALL_POSSIBLE_HARAQAT),
76
+ "",
77
+ ];
78
+ /**
79
+ * Input vocab used by BasicArabicEncoder. Index 0 = pad ("P");
80
+ * remaining indices match the source's input_chars string.
81
+ *
82
+ * Direct port of `rababa/lib/rababa/arabic/encoders.rb:84`.
83
+ */
84
+ export const INPUT_CHARS = "بض.غىهظخة؟:طس،؛فندؤلوئآك-يذاصشحزءمأجإ ترقعث";
85
+ export const PAD_SYMBOL = "P";
86
+ export const INPUT_VOCAB = [PAD_SYMBOL, ...INPUT_CHARS];
87
+ export const INPUT_SYMBOL_TO_ID = Object.freeze(Object.fromEntries(INPUT_VOCAB.map((s, i) => [s, i])));
88
+ export const INPUT_ID_TO_SYMBOL = INPUT_VOCAB;
89
+ //# sourceMappingURL=haraqat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"haraqat.js","sourceRoot":"","sources":["../../../../src/ml/models/rababa/haraqat.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,yCAAyC;AACzC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAA;AAExE,8CAA8C;AAC9C,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAA;AAEzE,kDAAkD;AAClD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAA;AAEnE,6DAA6D;AAC7D,MAAM,CAAC,MAAM,UAAU,GAAG,uCAAuC,CAAA;AAEjE,2CAA2C;AAC3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,sCAAsC,CAAA;AAEzE,2DAA2D;AAC3D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,CAAA;AAEvD;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAqC,MAAM,CAAC,MAAM,CAAC;IAC3E,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,SAAS;CACf,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAqC,MAAM,CAAC,MAAM,CAAC;IAClF,EAAE,EAAE,cAAc;IAClB,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,oBAAoB;CAC3B,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAqC,MAAM,CAAC,MAAM,CAC3E,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAC5E,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAC7B,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,iBAAiB;IACjB,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC;IACpC,EAAE;CACH,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,6CAA6C,CAAA;AAExE,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAA;AAC7B,MAAM,CAAC,MAAM,WAAW,GAAsB,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,CAAA;AAC1E,MAAM,CAAC,MAAM,kBAAkB,GAAqC,MAAM,CAAC,MAAM,CAC/E,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CACtD,CAAA;AACD,MAAM,CAAC,MAAM,kBAAkB,GAAsB,WAAW,CAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Rababa model registration — side-effect import.
3
+ *
4
+ * Importing this module registers the "rababa" factory with the ML
5
+ * registry. Done in `src/ml/index.ts` so end users don't need to.
6
+ */
7
+ export type { RababaModel, RababaConfig } from "./diacritizer.js";
8
+ export { ArabicEncoder } from "./encoder.js";
9
+ export { reconcileStrings } from "./reconciler.js";
10
+ export { cleanArabic, cleanBasic, collapseWhitespace } from "./cleaner.js";
11
+ export * from "./haraqat.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ml/models/rababa/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAC1E,cAAc,cAAc,CAAA"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Rababa model registration — side-effect import.
3
+ *
4
+ * Importing this module registers the "rababa" factory with the ML
5
+ * registry. Done in `src/ml/index.ts` so end users don't need to.
6
+ */
7
+ import { registerModel } from "../../registry.js";
8
+ import { createRababaModel } from "./diacritizer.js";
9
+ registerModel("rababa", async (params) => createRababaModel(params));
10
+ export { ArabicEncoder } from "./encoder.js";
11
+ export { reconcileStrings } from "./reconciler.js";
12
+ export { cleanArabic, cleanBasic, collapseWhitespace } from "./cleaner.js";
13
+ export * from "./haraqat.js";
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ml/models/rababa/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAA;AAGpE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAC1E,cAAc,cAAc,CAAA"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Reconciler — port of `rababa/lib/rababa/arabic/reconciler.rb`.
3
+ *
4
+ * Given:
5
+ * - strOriginal: original text including digits, punctuation, etc.
6
+ * - strDiacritized: model output (Arabic letters + haraqat only;
7
+ * non-Arabic chars dropped by the encoder)
8
+ *
9
+ * Produce a merged string where:
10
+ * - Arabic letters from `strOriginal` get the haraqat from the
11
+ * matching position in `strDiacritized`
12
+ * - Non-Arabic chars from `strOriginal` are preserved at their
13
+ * original positions
14
+ *
15
+ * The Ruby algorithm:
16
+ * 1. Build pivot map: pairs of (idx_dia, idx_ori) where the chars match
17
+ * 2. Walk both strings, emitting chars from original until next pivot,
18
+ * then chars from diacritized until next pivot, then the matched
19
+ * char itself
20
+ * 3. Finalize: remaining diacritized chars, then remaining original chars
21
+ *
22
+ * Direct port — same shape, same edge cases.
23
+ */
24
+ /**
25
+ * Merge original + diacritized into the final output. Direct port of
26
+ * `reconcile_strings`.
27
+ */
28
+ export declare function reconcileStrings(strOriginal: string, strDiacritized: string): string;
29
+ //# sourceMappingURL=reconciler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconciler.d.ts","sourceRoot":"","sources":["../../../../src/ml/models/rababa/reconciler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAkCH;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CA2BpF"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Reconciler — port of `rababa/lib/rababa/arabic/reconciler.rb`.
3
+ *
4
+ * Given:
5
+ * - strOriginal: original text including digits, punctuation, etc.
6
+ * - strDiacritized: model output (Arabic letters + haraqat only;
7
+ * non-Arabic chars dropped by the encoder)
8
+ *
9
+ * Produce a merged string where:
10
+ * - Arabic letters from `strOriginal` get the haraqat from the
11
+ * matching position in `strDiacritized`
12
+ * - Non-Arabic chars from `strOriginal` are preserved at their
13
+ * original positions
14
+ *
15
+ * The Ruby algorithm:
16
+ * 1. Build pivot map: pairs of (idx_dia, idx_ori) where the chars match
17
+ * 2. Walk both strings, emitting chars from original until next pivot,
18
+ * then chars from diacritized until next pivot, then the matched
19
+ * char itself
20
+ * 3. Finalize: remaining diacritized chars, then remaining original chars
21
+ *
22
+ * Direct port — same shape, same edge cases.
23
+ */
24
+ import { ARAB_CHARS_NO_SPACE } from "./haraqat.js";
25
+ const HARAQAT_SET = new Set(["ْ", "ّ", "ٌ", "ٍ", "ِ", "ً", "َ", "ُ"]);
26
+ const ARAB_CHARS_SET = new Set(ARAB_CHARS_NO_SPACE);
27
+ /**
28
+ * Find indices where `dOriginal` and `dDiacritized` agree. Two-pointer
29
+ * scan: for each char in diacritized, find next matching char in original.
30
+ */
31
+ function buildPivotMap(dOriginal, dDiacritized) {
32
+ const out = [];
33
+ let idxOri = 0;
34
+ for (let idxDia = 0; idxDia < dDiacritized.length; idxDia++) {
35
+ const cDia = dDiacritized[idxDia];
36
+ for (let i = idxOri; i <= dOriginal.length; i++) {
37
+ if (cDia === dOriginal[i]) {
38
+ idxOri = i;
39
+ out.push({ idxDia, idxOri });
40
+ // Skip past arabic letters to avoid double-counting
41
+ if (ARAB_CHARS_SET.has(cDia))
42
+ idxOri++;
43
+ break;
44
+ }
45
+ }
46
+ }
47
+ return out;
48
+ }
49
+ /**
50
+ * Merge original + diacritized into the final output. Direct port of
51
+ * `reconcile_strings`.
52
+ */
53
+ export function reconcileStrings(strOriginal, strDiacritized) {
54
+ const dOriginal = Array.from(strOriginal).filter((c) => !HARAQAT_SET.has(c));
55
+ const dDiacritized = Array.from(strDiacritized);
56
+ const pivots = buildPivotMap(dOriginal, dDiacritized);
57
+ let out = "";
58
+ let ptDia = 0;
59
+ let ptOri = 0;
60
+ for (const { idxDia, idxOri } of pivots) {
61
+ if (ptOri < idxOri) {
62
+ for (let i = ptOri; i < idxOri; i++)
63
+ out += dOriginal[i];
64
+ }
65
+ if (ptDia < idxDia) {
66
+ for (let i = ptDia; i < idxDia; i++)
67
+ out += dDiacritized[i];
68
+ }
69
+ out += dOriginal[idxOri] ?? "";
70
+ ptDia = idxDia + 1;
71
+ ptOri = idxOri + 1;
72
+ }
73
+ // Trailing diacritized chars
74
+ for (let i = ptDia; i < dDiacritized.length; i++)
75
+ out += dDiacritized[i];
76
+ // Trailing original chars
77
+ for (let i = ptOri; i < dOriginal.length; i++)
78
+ out += dOriginal[i];
79
+ return out;
80
+ }
81
+ //# sourceMappingURL=reconciler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../../../../src/ml/models/rababa/reconciler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Secryst model registration — side-effect import.
3
+ *
4
+ * Importing this module registers the "secryst" factory with the ML
5
+ * registry. Done in `src/ml/index.ts` so end users don't need to.
6
+ */
7
+ export type { SecrystModel } from "./translator.js";
8
+ export { Vocab, parseVocabYaml, buildVocabs } from "./vocab.js";
9
+ export { causalMask, paddingMask, buildMasks } from "./masks.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ml/models/secryst/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Secryst model registration — side-effect import.
3
+ *
4
+ * Importing this module registers the "secryst" factory with the ML
5
+ * registry. Done in `src/ml/index.ts` so end users don't need to.
6
+ */
7
+ import { registerModel } from "../../registry.js";
8
+ import { createSecrystModel } from "./translator.js";
9
+ registerModel("secryst", async (params) => createSecrystModel(params));
10
+ export { Vocab, parseVocabYaml, buildVocabs } from "./vocab.js";
11
+ export { causalMask, paddingMask, buildMasks } from "./masks.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ml/models/secryst/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEpD,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAA;AAGtE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA"}