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 @@
1
+ {"version":3,"file":"litert-web.js","sourceRoot":"","sources":["../../../src/ml/session/litert-web.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Node.js backend — wraps onnxruntime-node.
3
+ *
4
+ * Server-only: requires Node native modules. Imported lazily by the
5
+ * session factory only when the runtime detects a Node environment.
6
+ * Don't import this from browser bundles.
7
+ */
8
+ import type { InferenceSession } from "../types.js";
9
+ export declare function createNodeSession(modelData: ArrayBuffer | Uint8Array): Promise<InferenceSession>;
10
+ //# sourceMappingURL=onnx-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onnx-node.d.ts","sourceRoot":"","sources":["../../../src/ml/session/onnx-node.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAKjB,MAAM,aAAa,CAAA;AA8EpB,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,WAAW,GAAG,UAAU,GAClC,OAAO,CAAC,gBAAgB,CAAC,CAE3B"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Node.js backend — wraps onnxruntime-node.
3
+ *
4
+ * Server-only: requires Node native modules. Imported lazily by the
5
+ * session factory only when the runtime detects a Node environment.
6
+ * Don't import this from browser bundles.
7
+ */
8
+ async function loadOrt() {
9
+ try {
10
+ return (await import("onnxruntime-node"));
11
+ }
12
+ catch (e) {
13
+ throw new Error("onnxruntime-node is required for ML inference in Node. Install with: npm install onnxruntime-node", { cause: e });
14
+ }
15
+ }
16
+ class NodeInferenceSession {
17
+ session;
18
+ ort;
19
+ inputNames;
20
+ outputNames;
21
+ inputMetadata;
22
+ constructor(session, ort) {
23
+ this.session = session;
24
+ this.ort = ort;
25
+ this.inputNames = session.inputNames;
26
+ this.outputNames = session.outputNames;
27
+ const raw = session.inputMetadata;
28
+ if (Array.isArray(raw)) {
29
+ this.inputMetadata = raw;
30
+ }
31
+ }
32
+ static async create(modelData) {
33
+ const ort = await loadOrt();
34
+ const session = await ort.InferenceSession.create(modelData);
35
+ return new NodeInferenceSession(session, ort);
36
+ }
37
+ async run(inputs) {
38
+ const feeds = {};
39
+ for (const [name, tensor] of Object.entries(inputs)) {
40
+ feeds[name] = new this.ort.Tensor(tensor.type, tensor.data, tensor.dims);
41
+ }
42
+ const outputs = await this.session.run(feeds);
43
+ const out = {};
44
+ for (const [name, value] of Object.entries(outputs)) {
45
+ const v = value;
46
+ out[name] = {
47
+ name,
48
+ type: v.type,
49
+ data: v.data,
50
+ dims: v.dims,
51
+ };
52
+ }
53
+ return out;
54
+ }
55
+ async dispose() {
56
+ await this.session.release();
57
+ }
58
+ }
59
+ export async function createNodeSession(modelData) {
60
+ return NodeInferenceSession.create(modelData);
61
+ }
62
+ //# sourceMappingURL=onnx-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onnx-node.js","sourceRoot":"","sources":["../../../src/ml/session/onnx-node.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA0BH,KAAK,UAAU,OAAO;IACpB,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAA8B,CAAA;IACxE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,mGAAmG,EACnG,EAAE,KAAK,EAAE,CAAC,EAAE,CACb,CAAA;IACH,CAAC;AACH,CAAC;AAED,MAAM,oBAAoB;IACP,OAAO,CAAiB;IACxB,GAAG,CAAgB;IAC3B,UAAU,CAAmB;IAC7B,WAAW,CAAmB;IAC9B,aAAa,CAC4E;IAElG,YAAoB,OAAwB,EAAE,GAAmB;QAC/D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;QACpC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;QACtC,MAAM,GAAG,GAAI,OAAuC,CAAC,aAAa,CAAA;QAClE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,GAA4C,CAAA;QACnE,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAmC;QACrD,MAAM,GAAG,GAAG,MAAM,OAAO,EAAE,CAAA;QAC3B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC5D,OAAO,IAAI,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC/C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAuB;QAC/B,MAAM,KAAK,GAA4B,EAAE,CAAA;QACzC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAC1E,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC7C,MAAM,GAAG,GAA2B,EAAE,CAAA;QACtC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,MAAM,CAAC,GAAG,KAA2D,CAAA;YACrE,GAAG,CAAC,IAAI,CAAC,GAAG;gBACV,IAAI;gBACJ,IAAI,EAAE,CAAC,CAAC,IAAsB;gBAC9B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;aACb,CAAA;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;IAC9B,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAAmC;IAEnC,OAAO,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AAC/C,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Browser backend — wraps onnxruntime-web with WebGPU + WASM fallback.
3
+ *
4
+ * Imported lazily by the session factory. Bundlers will only include
5
+ * this in browser builds.
6
+ *
7
+ * onnxruntime-web is a peer dep; users install it if they need ML.
8
+ * Without it, calling rababa() from the browser throws a clear error.
9
+ */
10
+ import type { InferenceSession } from "../types.js";
11
+ export interface WebSessionOptions {
12
+ /**
13
+ * Try WebGPU first, fall back to WASM if WebGPU is unavailable or
14
+ * fails to initialize. Default: `true` — most browsers shipped WebGPU
15
+ * by default as of Nov 2025 (Chrome 113+, Safari 17+, Firefox 141+).
16
+ *
17
+ * Set to `false` to force WASM only — useful for debugging WebGPU
18
+ * quirks or in environments where the GPU driver is known to be bad.
19
+ */
20
+ webgpu?: boolean;
21
+ }
22
+ export declare function createWebSession(modelData: ArrayBuffer | Uint8Array, opts?: WebSessionOptions): Promise<InferenceSession>;
23
+ //# sourceMappingURL=onnx-web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onnx-web.d.ts","sourceRoot":"","sources":["../../../src/ml/session/onnx-web.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAKjB,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,iBAAiB;IAChC;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAuGD,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,WAAW,GAAG,UAAU,EACnC,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAE3B"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Browser backend — wraps onnxruntime-web with WebGPU + WASM fallback.
3
+ *
4
+ * Imported lazily by the session factory. Bundlers will only include
5
+ * this in browser builds.
6
+ *
7
+ * onnxruntime-web is a peer dep; users install it if they need ML.
8
+ * Without it, calling rababa() from the browser throws a clear error.
9
+ */
10
+ let cached;
11
+ async function loadOrt() {
12
+ if (!cached) {
13
+ cached = (async () => {
14
+ try {
15
+ const mod = (await import("onnxruntime-web"));
16
+ // Use SIMD when available (~2x faster for WASM fallback path).
17
+ mod.env.wasm.simd = true;
18
+ return mod;
19
+ }
20
+ catch (e) {
21
+ cached = undefined;
22
+ throw new Error("onnxruntime-web is required for ML inference in the browser. Install with: npm install onnxruntime-web", { cause: e });
23
+ }
24
+ })();
25
+ }
26
+ return cached;
27
+ }
28
+ class WebInferenceSession {
29
+ session;
30
+ ort;
31
+ inputNames;
32
+ outputNames;
33
+ constructor(session, ort) {
34
+ this.session = session;
35
+ this.ort = ort;
36
+ this.inputNames = session.inputNames;
37
+ this.outputNames = session.outputNames;
38
+ }
39
+ static async create(modelData, opts = {}) {
40
+ const ort = await loadOrt();
41
+ // Execution provider preference — onnxruntime-web picks the first
42
+ // available; WebGPU silently falls back to WASM when unavailable.
43
+ const executionProviders = opts.webgpu === false ? ["wasm"] : ["webgpu", "wasm"];
44
+ const session = await ort.InferenceSession.create(modelData, {
45
+ executionProviders,
46
+ });
47
+ return new WebInferenceSession(session, ort);
48
+ }
49
+ async run(inputs) {
50
+ const feeds = {};
51
+ for (const [name, tensor] of Object.entries(inputs)) {
52
+ feeds[name] = new this.ort.Tensor(tensor.type, tensor.data, tensor.dims);
53
+ }
54
+ const outputs = await this.session.run(feeds);
55
+ const out = {};
56
+ for (const [name, value] of Object.entries(outputs)) {
57
+ const v = value;
58
+ out[name] = {
59
+ name,
60
+ type: v.type,
61
+ data: v.data,
62
+ dims: v.dims,
63
+ };
64
+ }
65
+ return out;
66
+ }
67
+ async dispose() {
68
+ await this.session.release();
69
+ }
70
+ }
71
+ export async function createWebSession(modelData, opts = {}) {
72
+ return WebInferenceSession.create(modelData, opts);
73
+ }
74
+ //# sourceMappingURL=onnx-web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onnx-web.js","sourceRoot":"","sources":["../../../src/ml/session/onnx-web.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * ML types — used by the model registry, sessions, and individual model
3
+ * implementations. Discriminated unions throughout so adding a new
4
+ * model kind or backend is purely additive (OCP).
5
+ */
6
+ /**
7
+ * Discriminated union of every supported model kind. Add a new variant
8
+ * here + register a factory; nothing else changes.
9
+ */
10
+ export type ModelKind = "rababa" | "secryst";
11
+ /**
12
+ * Reference to a model the runtime can provision. Discriminated by
13
+ * `kind` so the registry can dispatch to the right factory.
14
+ */
15
+ export interface ModelRef {
16
+ readonly kind: ModelKind;
17
+ /** Model-specific identifier (e.g. "200" for rababa max-len-200). */
18
+ readonly id: string;
19
+ /** Optional override URL for the model file (otherwise from manifest). */
20
+ readonly url?: string;
21
+ }
22
+ /**
23
+ * Input to an ONNX inference call. The runtime hands the model a
24
+ * Record of named tensors.
25
+ */
26
+ export type TensorData = Int8Array | Uint8Array | Int16Array | Int32Array | Float32Array | Float64Array | BigInt64Array;
27
+ export interface Tensor {
28
+ readonly name: string;
29
+ readonly data: TensorData;
30
+ readonly dims: readonly number[];
31
+ readonly type: "int8" | "uint8" | "int16" | "int32" | "int64" | "float32" | "float64";
32
+ }
33
+ export interface InferenceInputs {
34
+ readonly [name: string]: Tensor;
35
+ }
36
+ export interface InferenceOutputs {
37
+ readonly [name: string]: Tensor;
38
+ }
39
+ /**
40
+ * An inference session wraps an ONNX model. Both Node and browser
41
+ * backends implement this interface; callers don't know which.
42
+ */
43
+ export interface SessionInputMetadata {
44
+ readonly name: string;
45
+ readonly type: string;
46
+ readonly shape: ReadonlyArray<string | number>;
47
+ }
48
+ export interface InferenceSession {
49
+ /** Run inference with named inputs. Returns named outputs. */
50
+ run(inputs: InferenceInputs): Promise<InferenceOutputs>;
51
+ /** Input names the model accepts. */
52
+ inputNames: readonly string[];
53
+ /** Input shapes/types when the backend exposes them (used for
54
+ * zero-length KV pasts whose static dims must match the graph). */
55
+ readonly inputMetadata?: readonly SessionInputMetadata[] | undefined;
56
+ /** Output names the model produces. */
57
+ outputNames: readonly string[];
58
+ /** Free native resources held by the session. */
59
+ dispose(): Promise<void>;
60
+ }
61
+ /**
62
+ * A loaded model — has a session plus any auxiliary artifacts
63
+ * (vocabularies, configs). Each ModelKind has its own subclass
64
+ * extending this; the registry returns Model implementations
65
+ * generically.
66
+ */
67
+ export interface Model {
68
+ readonly kind: ModelKind;
69
+ /** Free native resources. */
70
+ dispose(): Promise<void>;
71
+ }
72
+ /**
73
+ * Universal text-transform interface. Every ML model — rababa,
74
+ * secryst, ByT5, or future kinds — implements this single method.
75
+ *
76
+ * The interpreter calls `transform(input)` for ANY async funcall,
77
+ * regardless of model kind. No per-model branching in the interpreter
78
+ * (OCP: adding a new model kind doesn't change the interpreter).
79
+ *
80
+ * MECE: the interface knows about text transformation. It does NOT
81
+ * know about Arabic diacritization, Thai transliteration, or any
82
+ * domain-specific concept.
83
+ */
84
+ export interface MLModel extends Model {
85
+ /**
86
+ * Transform input text into output text.
87
+ *
88
+ * Rababa: undiacritized Arabic → diacritized Arabic
89
+ * Secryst: source script → target script
90
+ * Future models: any text-to-text transformation
91
+ */
92
+ transform(input: string): Promise<string>;
93
+ }
94
+ /**
95
+ * Factory for a model. Given a provisioned bundle (session + auxiliary
96
+ * data), return a Model implementation.
97
+ *
98
+ * Each kind registers exactly one factory (MECE).
99
+ */
100
+ export type ModelFactory = (params: ModelLoadParams) => Promise<MLModel>;
101
+ export interface ModelLoadParams {
102
+ readonly session: InferenceSession;
103
+ readonly artifacts: ModelArtifacts;
104
+ }
105
+ /**
106
+ * Auxiliary files that ship alongside the model ONNX file:
107
+ * vocabularies, configs, metadata. Loaded by the provisioner before
108
+ * the factory is called.
109
+ */
110
+ export interface ModelArtifacts {
111
+ readonly [filename: string]: Uint8Array | string;
112
+ }
113
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ml/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE5C;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,0EAA0E;IAC1E,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GACpB,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,CAAA;AAEhG,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAA;CACtF;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,CAAA;CAC/C;AAED,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,GAAG,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACvD,qCAAqC;IACrC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7B;wEACoE;IACpE,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,oBAAoB,EAAE,GAAG,SAAS,CAAA;IACpE,uCAAuC;IACvC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAA;IAC9B,iDAAiD;IACjD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,6BAA6B;IAC7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,OAAQ,SAAQ,KAAK;IACpC;;;;;;OAMG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CAC1C;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAExE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAA;IAClC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAA;CACnC;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAA;CACjD"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * ML types — used by the model registry, sessions, and individual model
3
+ * implementations. Discriminated unions throughout so adding a new
4
+ * model kind or backend is purely additive (OCP).
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ml/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Item compilation — convert AST Items into RegExp source or literal string.
3
+ *
4
+ * Items are decomposed into their compiled form ONCE per stage, then
5
+ * reused across many string inputs. This avoids redundant work and
6
+ * keeps the interpreter's inner loop tight (DRY + performance).
7
+ */
8
+ import type { Item } from "../types.js";
9
+ import type { ExecutionContext } from "./context.js";
10
+ /** Compiled form of a pattern Item. */
11
+ export interface CompiledItem {
12
+ /** RegExp source. */
13
+ readonly re: string;
14
+ /** Literal value (for replacement strings). */
15
+ readonly literal: string;
16
+ }
17
+ /**
18
+ * Compile an Item into a RegExp source string + literal value.
19
+ * Visitor-free dispatch — adding a new Item kind = adding a case here.
20
+ *
21
+ * Note: this is intentionally a single switch with exhaustive type
22
+ * coverage. New Item kinds force this switch to be updated, which is
23
+ * good — it surfaces the change rather than hiding it.
24
+ */
25
+ export declare function compileItem(item: Item, ctx: ExecutionContext): CompiledItem;
26
+ /**
27
+ * Compile an Item to a literal string only (no regex semantics).
28
+ * Used by the parallel-replace executor which needs exact strings.
29
+ *
30
+ * Returns `null` if the Item cannot be represented as a literal
31
+ * (captures, regex-only constructs). The caller decides whether to
32
+ * fall back to sequential execution.
33
+ */
34
+ export declare function compileToLiteral(item: Item, ctx: ExecutionContext): string | null;
35
+ /**
36
+ * Expand a `from` item into ALL possible literal strings for parallel
37
+ * replace. `any` items produce one entry per alternative. Other items
38
+ * produce a single entry (or null if not literal).
39
+ *
40
+ * This is the multi-valued counterpart of `compileToLiteral`.
41
+ */
42
+ export declare function expandFromLiterals(item: Item, ctx: ExecutionContext): string[] | null;
43
+ /**
44
+ * Compute the max-length estimate for an Item. Mirrors Ruby's
45
+ * `Node::Item#max_length`, which is used to sort parallel rules
46
+ * (longest first) before building the megaregexp fallback.
47
+ *
48
+ * The estimate need not be exact — it only governs sort order within
49
+ * a parallel block. Stdlib aliases count as length 1 (matching Ruby),
50
+ * `none` is 0.
51
+ */
52
+ export declare function maxLengthOfItem(item: Item, ctx: ExecutionContext): number;
53
+ //# sourceMappingURL=compile-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile-item.d.ts","sourceRoot":"","sources":["../../src/runtime/compile-item.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAGpD,uCAAuC;AACvC,MAAM,WAAW,YAAY;IAC3B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,gBAAgB,GAAG,YAAY,CAqE3E;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CA4CjF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,gBAAgB,GAAG,MAAM,EAAE,GAAG,IAAI,CA2DrF;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAyBzE"}
@@ -0,0 +1,278 @@
1
+ /**
2
+ * Item compilation — convert AST Items into RegExp source or literal string.
3
+ *
4
+ * Items are decomposed into their compiled form ONCE per stage, then
5
+ * reused across many string inputs. This avoids redundant work and
6
+ * keeps the interpreter's inner loop tight (DRY + performance).
7
+ */
8
+ import { regexpEscape } from "../stdlib.js";
9
+ /**
10
+ * Compile an Item into a RegExp source string + literal value.
11
+ * Visitor-free dispatch — adding a new Item kind = adding a case here.
12
+ *
13
+ * Note: this is intentionally a single switch with exhaustive type
14
+ * coverage. New Item kinds force this switch to be updated, which is
15
+ * good — it surfaces the change rather than hiding it.
16
+ */
17
+ export function compileItem(item, ctx) {
18
+ switch (item.kind) {
19
+ case "string":
20
+ return { re: regexpEscape(item.value), literal: item.value };
21
+ case "capture_group": {
22
+ const inner = compileItem(item.data, ctx);
23
+ return { re: `(${inner.re})`, literal: inner.literal };
24
+ }
25
+ case "capture_ref": {
26
+ const id = item.id;
27
+ return { re: `\\${id}`, literal: `$${id}` };
28
+ }
29
+ case "alias": {
30
+ // Stdlib aliases (single characters like \w, \b, etc.)
31
+ const stdlib = STDLIB_ALIASES[item.name];
32
+ if (stdlib)
33
+ return stdlib;
34
+ const resolved = ctx.resolveAlias(item.name);
35
+ if (!resolved)
36
+ return { re: "", literal: "" };
37
+ return compileItem(resolved, ctx);
38
+ }
39
+ case "any": {
40
+ const parts = item.of.map((i) => compileItem(i, ctx).re);
41
+ // Mirror Ruby's Any#nth_string: the literal form picks the first
42
+ // alternative. Sub rules with `to: any("ie")` use this for the
43
+ // canonical replacement.
44
+ const firstLit = item.of.length > 0 ? compileItem(item.of[0], ctx).literal : "";
45
+ return { re: `(?:${parts.join("|")})`, literal: firstLit };
46
+ }
47
+ case "any_char_class": {
48
+ // Build a JS char class. Range → [first-last], chars → [abc].
49
+ // Both forms are escaped so a literal `]` or `-` survives.
50
+ if (item.range) {
51
+ const [first, last] = item.range;
52
+ return {
53
+ re: `[${regexpEscape(first)}-${regexpEscape(last)}]`,
54
+ literal: first ?? "",
55
+ };
56
+ }
57
+ if (item.chars && item.chars.length > 0) {
58
+ const escaped = item.chars.map((c) => regexpEscape(c)).join("");
59
+ return { re: `[${escaped}]`, literal: item.chars[0] };
60
+ }
61
+ return { re: "[^]", literal: "" };
62
+ }
63
+ case "group": {
64
+ const compiled = item.items.map((i) => compileItem(i, ctx));
65
+ const re = compiled.map((c) => c.re).join("");
66
+ const literal = compiled.map((c) => c.literal).join("");
67
+ return { re: `(?:${re})`, literal };
68
+ }
69
+ case "repeat": {
70
+ const inner = compileItem(item.item, ctx).re;
71
+ const { min, max } = item;
72
+ const maxVal = max === null ? Infinity : max;
73
+ const quant = maxVal === Infinity ? (min === 0 ? "*" : "+") : `{${min},${maxVal}}`;
74
+ return { re: `(?:${inner})${quant}`, literal: "" };
75
+ }
76
+ case "stage_ref":
77
+ // Stage references are handled by the executor, not by item compilation.
78
+ return { re: "", literal: "" };
79
+ }
80
+ }
81
+ /**
82
+ * Compile an Item to a literal string only (no regex semantics).
83
+ * Used by the parallel-replace executor which needs exact strings.
84
+ *
85
+ * Returns `null` if the Item cannot be represented as a literal
86
+ * (captures, regex-only constructs). The caller decides whether to
87
+ * fall back to sequential execution.
88
+ */
89
+ export function compileToLiteral(item, ctx) {
90
+ switch (item.kind) {
91
+ case "string":
92
+ return item.value;
93
+ case "alias": {
94
+ const stdlib = STDLIB_ALIASES[item.name];
95
+ if (stdlib)
96
+ return stdlib.literal === "" ? null : stdlib.literal;
97
+ const resolved = ctx.resolveAlias(item.name);
98
+ if (!resolved)
99
+ return null;
100
+ return compileToLiteral(resolved, ctx);
101
+ }
102
+ case "capture_group":
103
+ case "capture_ref":
104
+ case "repeat":
105
+ case "stage_ref":
106
+ return null;
107
+ case "any_char_class": {
108
+ // Mirror Ruby's Any#nth_string: first char of the class.
109
+ if (item.chars && item.chars.length > 0)
110
+ return item.chars[0];
111
+ if (item.range)
112
+ return item.range[0];
113
+ return null;
114
+ }
115
+ case "any": {
116
+ // `any` represents alternative spellings (e.g. "te" vs "t" for the
117
+ // same source char). Ruby picks the first option in non-iterating
118
+ // mode; we match that.
119
+ if (item.of.length === 0)
120
+ return null;
121
+ return compileToLiteral(item.of[0], ctx);
122
+ }
123
+ case "group": {
124
+ let out = "";
125
+ for (const child of item.items) {
126
+ const lit = compileToLiteral(child, ctx);
127
+ if (lit === null)
128
+ return null;
129
+ out += lit;
130
+ }
131
+ return out;
132
+ }
133
+ }
134
+ }
135
+ /**
136
+ * Expand a `from` item into ALL possible literal strings for parallel
137
+ * replace. `any` items produce one entry per alternative. Other items
138
+ * produce a single entry (or null if not literal).
139
+ *
140
+ * This is the multi-valued counterpart of `compileToLiteral`.
141
+ */
142
+ export function expandFromLiterals(item, ctx) {
143
+ switch (item.kind) {
144
+ case "string":
145
+ return [item.value];
146
+ case "alias": {
147
+ const stdlib = STDLIB_ALIASES[item.name];
148
+ if (stdlib)
149
+ return null;
150
+ const resolved = ctx.resolveAlias(item.name);
151
+ if (!resolved)
152
+ return null;
153
+ return expandFromLiterals(resolved, ctx);
154
+ }
155
+ case "any_char_class": {
156
+ // Mirror Ruby's parallel-tree expansion: one entry per char.
157
+ // For ranges, expand every code point — same as Ruby's Any#data
158
+ // when value is a Range.
159
+ if (item.chars)
160
+ return [...item.chars];
161
+ if (item.range) {
162
+ const [first, last] = item.range;
163
+ const start = first.codePointAt(0);
164
+ const end = last.codePointAt(0);
165
+ const out = [];
166
+ for (let cp = start; cp <= end; cp++)
167
+ out.push(String.fromCodePoint(cp));
168
+ return out;
169
+ }
170
+ return null;
171
+ }
172
+ case "any": {
173
+ const out = [];
174
+ for (const child of item.of) {
175
+ const lit = expandFromLiterals(child, ctx);
176
+ if (lit === null)
177
+ return null;
178
+ out.push(...lit);
179
+ }
180
+ return out;
181
+ }
182
+ case "group": {
183
+ // Cartesian product of all children's alternatives.
184
+ let combos = [""];
185
+ for (const child of item.items) {
186
+ const childAlts = expandFromLiterals(child, ctx);
187
+ if (childAlts === null)
188
+ return null;
189
+ const next = [];
190
+ for (const prefix of combos) {
191
+ for (const suffix of childAlts) {
192
+ next.push(prefix + suffix);
193
+ }
194
+ }
195
+ combos = next;
196
+ }
197
+ return combos;
198
+ }
199
+ default:
200
+ return null;
201
+ }
202
+ }
203
+ /**
204
+ * Compute the max-length estimate for an Item. Mirrors Ruby's
205
+ * `Node::Item#max_length`, which is used to sort parallel rules
206
+ * (longest first) before building the megaregexp fallback.
207
+ *
208
+ * The estimate need not be exact — it only governs sort order within
209
+ * a parallel block. Stdlib aliases count as length 1 (matching Ruby),
210
+ * `none` is 0.
211
+ */
212
+ export function maxLengthOfItem(item, ctx) {
213
+ switch (item.kind) {
214
+ case "string":
215
+ return item.value.length;
216
+ case "capture_group":
217
+ return maxLengthOfItem(item.data, ctx);
218
+ case "capture_ref":
219
+ return 1;
220
+ case "alias": {
221
+ if (item.name === "none")
222
+ return 0;
223
+ if (STDLIB_ALIASES[item.name])
224
+ return 1;
225
+ const resolved = ctx.resolveAlias(item.name);
226
+ return resolved ? maxLengthOfItem(resolved, ctx) : 1;
227
+ }
228
+ case "any":
229
+ return item.of.reduce((m, i) => Math.max(m, maxLengthOfItem(i, ctx)), 0);
230
+ case "any_char_class":
231
+ return 1;
232
+ case "group":
233
+ return item.items.reduce((sum, i) => sum + maxLengthOfItem(i, ctx), 0);
234
+ case "repeat":
235
+ return maxLengthOfItem(item.item, ctx);
236
+ case "stage_ref":
237
+ return 1;
238
+ }
239
+ }
240
+ /**
241
+ * Stdlib alias table — single-character aliases like `:word`, `:boundary`.
242
+ * Mirrors Interscript::Stdlib::ALIASES in Ruby.
243
+ */
244
+ const STDLIB_ALIASES = Object.freeze({
245
+ any_character: { re: ".", literal: "" },
246
+ none: { re: "", literal: "" },
247
+ space: { re: " ", literal: " " },
248
+ whitespace: { re: "\\s+", literal: " " },
249
+ // Boundary is implemented as Unicode-aware lookarounds so that
250
+ // Cyrillic, Arabic, Devanagari etc. get correct word boundaries
251
+ // (66 maps rely on this). Ruby's \b is ASCII-only by default, but
252
+ // most maps work because their boundary usage is at start-of-string
253
+ // or after whitespace — cases where ASCII \b happens to coincide
254
+ // with the Unicode form.
255
+ boundary: {
256
+ re: "(?:(?<![\\p{L}\\p{M}])(?=[\\p{L}\\p{M}])|(?<=[\\p{L}\\p{M}])(?![\\p{L}\\p{M}]))",
257
+ literal: "",
258
+ },
259
+ non_word_boundary: {
260
+ re: "(?:(?<=[\\p{L}\\p{M}])(?=[\\p{L}\\p{M}])|(?<![\\p{L}\\p{M}])(?![\\p{L}\\p{M}]))",
261
+ literal: "",
262
+ },
263
+ // word / not_word mirror Ruby's default ASCII-only \w / \W. Only one
264
+ // map (odni-che-Cyrl-Latn-2015) uses these aliases — its palochka
265
+ // rule depends on Cyrillic being treated as non-word. ASCII-only
266
+ // here is harmless to the 65+ maps that use boundary instead.
267
+ word: { re: "[A-Za-z0-9_]", literal: "" },
268
+ not_word: { re: "[^A-Za-z0-9_]", literal: "" },
269
+ alpha: { re: "[a-zA-Z]", literal: "" },
270
+ not_alpha: { re: "[^a-zA-Z]", literal: "" },
271
+ digit: { re: "[0-9]", literal: "" },
272
+ not_digit: { re: "[^0-9]", literal: "" },
273
+ line_start: { re: "^", literal: "" },
274
+ line_end: { re: "(?=\\n|$)", literal: "" },
275
+ string_start: { re: "^", literal: "" },
276
+ string_end: { re: "$", literal: "" },
277
+ });
278
+ //# sourceMappingURL=compile-item.js.map