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":"detector.js","sourceRoot":"","sources":["../src/detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Typed error hierarchy for Interscript-TS.
3
+ *
4
+ * Hierarchy is intentionally shallow so callers can rescue a single base
5
+ * class or a specific subclass without traversing a deep inheritance tree
6
+ * (MECE: each error class has exactly one responsibility).
7
+ */
8
+ export declare class InterscriptError extends Error {
9
+ readonly cause?: unknown;
10
+ constructor(message: string, options?: {
11
+ cause?: unknown;
12
+ });
13
+ }
14
+ export declare class MapNotFoundError extends InterscriptError {
15
+ readonly systemCode: string;
16
+ constructor(systemCode: string);
17
+ }
18
+ export declare class SystemConversionError extends InterscriptError {
19
+ }
20
+ export declare class MapLogicError extends InterscriptError {
21
+ }
22
+ export declare class DependencyMissingError extends InterscriptError {
23
+ readonly dependency: string;
24
+ constructor(dependency: string);
25
+ }
26
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,SAAkB,KAAK,CAAC,EAAE,OAAO,CAAA;gBAErB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAK3D;AAED,qBAAa,gBAAiB,SAAQ,gBAAgB;IACpD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;gBACf,UAAU,EAAE,MAAM;CAI/B;AAED,qBAAa,qBAAsB,SAAQ,gBAAgB;CAAG;AAE9D,qBAAa,aAAc,SAAQ,gBAAgB;CAAG;AAEtD,qBAAa,sBAAuB,SAAQ,gBAAgB;IAC1D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;gBACf,UAAU,EAAE,MAAM;CAI/B"}
package/dist/errors.js ADDED
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Typed error hierarchy for Interscript-TS.
3
+ *
4
+ * Hierarchy is intentionally shallow so callers can rescue a single base
5
+ * class or a specific subclass without traversing a deep inheritance tree
6
+ * (MECE: each error class has exactly one responsibility).
7
+ */
8
+ export class InterscriptError extends Error {
9
+ cause;
10
+ constructor(message, options) {
11
+ super(message, options);
12
+ this.name = new.target.name;
13
+ this.cause = options?.cause;
14
+ }
15
+ }
16
+ export class MapNotFoundError extends InterscriptError {
17
+ systemCode;
18
+ constructor(systemCode) {
19
+ super(`Map not found: ${systemCode}`);
20
+ this.systemCode = systemCode;
21
+ }
22
+ }
23
+ export class SystemConversionError extends InterscriptError {
24
+ }
25
+ export class MapLogicError extends InterscriptError {
26
+ }
27
+ export class DependencyMissingError extends InterscriptError {
28
+ dependency;
29
+ constructor(dependency) {
30
+ super(`Map dependency missing: ${dependency}`);
31
+ this.dependency = dependency;
32
+ }
33
+ }
34
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACvB,KAAK,CAAU;IAEjC,YAAY,OAAe,EAAE,OAA6B;QACxD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAA;QAC3B,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,CAAA;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,gBAAgB;IAC3C,UAAU,CAAQ;IAC3B,YAAY,UAAkB;QAC5B,KAAK,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAA;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,gBAAgB;CAAG;AAE9D,MAAM,OAAO,aAAc,SAAQ,gBAAgB;CAAG;AAEtD,MAAM,OAAO,sBAAuB,SAAQ,gBAAgB;IACjD,UAAU,CAAQ;IAC3B,YAAY,UAAkB;QAC5B,KAAK,CAAC,2BAA2B,UAAU,EAAE,CAAC,CAAA;QAC9C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;CACF"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * HTTP map loading strategy — fetches map IR from a base URL on demand.
3
+ *
4
+ * Browser-safe: uses the global `fetch()`. Suitable for browser bundles,
5
+ * Cloudflare Workers, Deno, Bun. Node 18+ also has global fetch.
6
+ *
7
+ * Two-tier caching: in-memory (instant) + optional persistent via
8
+ * localStorage (survives reloads). Set `cacheKeyPrefix` to enable.
9
+ */
10
+ import type { LoadStrategy, SystemCode } from "./index.js";
11
+ export interface HttpStrategyOptions {
12
+ /**
13
+ * Base URL or function returning a URL for a given system code.
14
+ * Defaults to `/maps/${code}.json` (works with the interscript.org
15
+ * deployment).
16
+ */
17
+ readonly baseUrl?: string | ((code: SystemCode) => string);
18
+ /**
19
+ * Optional request init passed to fetch() (headers, mode, etc.).
20
+ */
21
+ readonly fetchInit?: RequestInit;
22
+ /**
23
+ * Persistent cache prefix. When set, fetched maps are stored in
24
+ * localStorage so they survive page reloads. Disabled by default.
25
+ */
26
+ readonly cacheKeyPrefix?: string;
27
+ }
28
+ /**
29
+ * Strategy that fetches map IR over HTTP on demand.
30
+ *
31
+ * Async: returns a Promise. Use `MapLoader.loadAsync()` or
32
+ * `InterscriptRuntime.transliterate()` (which auto-awaits async
33
+ * strategies when present).
34
+ *
35
+ * Caching:
36
+ * - In-memory: every fetched map stays in the loader's cache for
37
+ * the lifetime of the page/process.
38
+ * - Persistent: optional localStorage cache (set `cacheKeyPrefix`)
39
+ * so maps don't re-fetch on subsequent visits.
40
+ */
41
+ export declare function httpStrategy(options?: HttpStrategyOptions): LoadStrategy;
42
+ //# sourceMappingURL=http-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-loader.d.ts","sourceRoot":"","sources":["../src/http-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAgC,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAGxF,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC,CAAA;IAC1D;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,CAAA;IAChC;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CACjC;AA2CD;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,YAAY,CA6B5E"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * HTTP map loading strategy — fetches map IR from a base URL on demand.
3
+ *
4
+ * Browser-safe: uses the global `fetch()`. Suitable for browser bundles,
5
+ * Cloudflare Workers, Deno, Bun. Node 18+ also has global fetch.
6
+ *
7
+ * Two-tier caching: in-memory (instant) + optional persistent via
8
+ * localStorage (survives reloads). Set `cacheKeyPrefix` to enable.
9
+ */
10
+ import { normaliseMap } from "./loaders.js";
11
+ const MAX_CACHE_AGE_MS = 30 * 24 * 60 * 60 * 1000; // 30 days
12
+ function resolveUrl(code, baseUrl) {
13
+ if (typeof baseUrl === "function")
14
+ return baseUrl(code);
15
+ if (baseUrl)
16
+ return baseUrl.replace(/\/$/, "") + "/" + code + ".json";
17
+ return `/maps/${code}.json`;
18
+ }
19
+ function readPersistent(prefix, code) {
20
+ if (typeof localStorage === "undefined")
21
+ return undefined;
22
+ try {
23
+ const raw = localStorage.getItem(prefix + code);
24
+ if (!raw)
25
+ return undefined;
26
+ const entry = JSON.parse(raw);
27
+ if (Date.now() - entry.fetchedAt > MAX_CACHE_AGE_MS)
28
+ return undefined;
29
+ return entry;
30
+ }
31
+ catch {
32
+ return undefined;
33
+ }
34
+ }
35
+ function writePersistent(prefix, code, json) {
36
+ if (typeof localStorage === "undefined")
37
+ return;
38
+ try {
39
+ const entry = {
40
+ schemaVersion: 1,
41
+ fetchedAt: Date.now(),
42
+ json,
43
+ };
44
+ localStorage.setItem(prefix + code, JSON.stringify(entry));
45
+ }
46
+ catch {
47
+ // Quota exceeded or serialization failure — silently drop.
48
+ }
49
+ }
50
+ /**
51
+ * Strategy that fetches map IR over HTTP on demand.
52
+ *
53
+ * Async: returns a Promise. Use `MapLoader.loadAsync()` or
54
+ * `InterscriptRuntime.transliterate()` (which auto-awaits async
55
+ * strategies when present).
56
+ *
57
+ * Caching:
58
+ * - In-memory: every fetched map stays in the loader's cache for
59
+ * the lifetime of the page/process.
60
+ * - Persistent: optional localStorage cache (set `cacheKeyPrefix`)
61
+ * so maps don't re-fetch on subsequent visits.
62
+ */
63
+ export function httpStrategy(options = {}) {
64
+ const inMemory = new Map();
65
+ return async (systemCode) => {
66
+ const cached = inMemory.get(systemCode);
67
+ if (cached)
68
+ return cached;
69
+ if (options.cacheKeyPrefix) {
70
+ const entry = readPersistent(options.cacheKeyPrefix, systemCode);
71
+ if (entry) {
72
+ const map = normaliseMap(entry.json);
73
+ inMemory.set(systemCode, map);
74
+ return map;
75
+ }
76
+ }
77
+ const url = resolveUrl(systemCode, options.baseUrl);
78
+ let res;
79
+ try {
80
+ res = await fetch(url, options.fetchInit);
81
+ }
82
+ catch {
83
+ return undefined;
84
+ }
85
+ if (!res.ok)
86
+ return undefined;
87
+ const json = (await res.json());
88
+ if (options.cacheKeyPrefix)
89
+ writePersistent(options.cacheKeyPrefix, systemCode, json);
90
+ const map = normaliseMap(json);
91
+ inMemory.set(systemCode, map);
92
+ return map;
93
+ };
94
+ }
95
+ //# sourceMappingURL=http-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-loader.js","sourceRoot":"","sources":["../src/http-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Public API surface of Interscript-TS.
3
+ *
4
+ * Mirrors `interscript-ruby/lib/interscript.rb`:
5
+ * - transliterate(systemCode, input)
6
+ * - loadMap(systemCode)
7
+ * - detect(input, output)
8
+ *
9
+ * The runtime is configured with a MapLoader. Callers can supply their
10
+ * own (e.g. for browser fetch, for fs reads) without modifying the
11
+ * interpreter (OCP).
12
+ */
13
+ import type { CompiledMap, DetectionResult, DetectOptions, SystemCode } from "./types.js";
14
+ import { type LoadStrategy } from "./loader.js";
15
+ export { InterscriptError, MapNotFoundError, SystemConversionError, DependencyMissingError, MapLogicError, } from "./errors.js";
16
+ export type { CompiledMap, CompiledMapJson, DetectionResult, DetectOptions, FunctionDef, MapInfo, SystemCode, Stage, Rule, Item, SubRule, RunRule, FuncallRule, ParallelRule, SequentialRule, StringItem, CaptureGroupItem, CaptureRefItem, AliasItem, AnyItem, GroupItem, RepeatItem, StageItem, } from "./types.js";
17
+ export type { LoadStrategy, MapLoader } from "./loader.js";
18
+ export { normaliseMap, bundledStrategy } from "./loaders.js";
19
+ export { httpStrategy, type HttpStrategyOptions } from "./http-loader.js";
20
+ export { iscStrategy, iscBundledStrategy, type IscStrategyOptions } from "./isc/loader.js";
21
+ export type { IscDocument, IscItem, IscRule, IscStage, IscStageItem, IscTest, IscConstraint, } from "./isc/types.js";
22
+ export { parseIsc } from "./isc/parser.js";
23
+ export { IscParseError } from "./isc/types.js";
24
+ export { iscToCompiledMap } from "./isc/converter.js";
25
+ export { setRababaConfig, resetRababaConfigs, type RababaConfigEntry } from "./stdlib/ml.js";
26
+ export interface InterscriptConfig {
27
+ /** Strategies consulted in order when loading a map. */
28
+ readonly strategies?: LoadStrategy[];
29
+ /** Default stage to execute if not specified. Default: "main". */
30
+ readonly defaultStage?: string;
31
+ }
32
+ /** Configure the default runtime with custom strategies. */
33
+ export declare function configure(config: InterscriptConfig): void;
34
+ /** Public API — mirrors Interscript.transliterate from Ruby. */
35
+ export declare function transliterate(systemCode: SystemCode, input: string, stage?: string): string;
36
+ /**
37
+ * Async transliterate. Use when async strategies (httpStrategy) are
38
+ * configured and the map may not be in the cache yet.
39
+ */
40
+ export declare function transliterateAsync(systemCode: SystemCode, input: string, stage?: string): Promise<string>;
41
+ /** Public API — mirrors Interscript.load. */
42
+ export declare function loadMap(systemCode: SystemCode): CompiledMap;
43
+ /** Async version — needed when async strategies may be used. */
44
+ export declare function loadMapAsync(systemCode: SystemCode): Promise<CompiledMap>;
45
+ /** Public API — mirrors Interscript.detect. */
46
+ export declare function detect(input: string, output: string, opts?: DetectOptions): DetectionResult[];
47
+ /** Reset the default runtime (mainly for tests). */
48
+ export declare function reset(): void;
49
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACzF,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AAU1D,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,GACd,MAAM,aAAa,CAAA;AACpB,YAAY,EACV,WAAW,EACX,eAAe,EACf,eAAe,EACf,aAAa,EACb,WAAW,EACX,OAAO,EACP,UAAU,EACV,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,OAAO,EACP,WAAW,EACX,YAAY,EACZ,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,OAAO,EACP,SAAS,EACT,UAAU,EACV,SAAS,GACV,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAK1D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC1F,YAAY,EACV,WAAW,EACX,OAAO,EACP,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,aAAa,GACd,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAE5F,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,CAAA;IACpC,kEAAkE;IAClE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B;AAoID,4DAA4D;AAC5D,wBAAgB,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAEzD;AASD,gEAAgE;AAChE,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3F;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,6CAA6C;AAC7C,wBAAgB,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,WAAW,CAE3D;AAED,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAEzE;AAED,+CAA+C;AAC/C,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,eAAe,EAAE,CAE7F;AAED,oDAAoD;AACpD,wBAAgB,KAAK,IAAI,IAAI,CAE5B"}
package/dist/index.js ADDED
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Public API surface of Interscript-TS.
3
+ *
4
+ * Mirrors `interscript-ruby/lib/interscript.rb`:
5
+ * - transliterate(systemCode, input)
6
+ * - loadMap(systemCode)
7
+ * - detect(input, output)
8
+ *
9
+ * The runtime is configured with a MapLoader. Callers can supply their
10
+ * own (e.g. for browser fetch, for fs reads) without modifying the
11
+ * interpreter (OCP).
12
+ */
13
+ import { MapLoader } from "./loader.js";
14
+ import { executeStage, executeStageAsync } from "./runtime/interpreter.js";
15
+ import { DependencyMissingError, InterscriptError, MapNotFoundError, SystemConversionError, } from "./errors.js";
16
+ import { detectInMaps } from "./detector.js";
17
+ export { InterscriptError, MapNotFoundError, SystemConversionError, DependencyMissingError, MapLogicError, } from "./errors.js";
18
+ // Only re-export browser-safe loaders from the main entry. Filesystem
19
+ // strategies live in `./loaders.node.ts` and pull in `node:fs`; importing
20
+ // them via the main entry would break browser bundles. Node callers
21
+ // (CLI, server tests) should import directly from `./loaders.node.js`.
22
+ export { normaliseMap, bundledStrategy } from "./loaders.js";
23
+ export { httpStrategy } from "./http-loader.js";
24
+ export { iscStrategy, iscBundledStrategy } from "./isc/loader.js";
25
+ export { parseIsc } from "./isc/parser.js";
26
+ export { IscParseError } from "./isc/types.js";
27
+ export { iscToCompiledMap } from "./isc/converter.js";
28
+ export { setRababaConfig, resetRababaConfigs } from "./stdlib/ml.js";
29
+ const DEFAULT_STAGE = "main";
30
+ class InterscriptRuntime {
31
+ loader;
32
+ defaultStage;
33
+ constructor(config = {}) {
34
+ this.loader = new MapLoader(config.strategies ?? []);
35
+ this.defaultStage = config.defaultStage ?? DEFAULT_STAGE;
36
+ }
37
+ /**
38
+ * Pre-load a map so subsequent transliterate() calls are fast.
39
+ * Throws MapNotFoundError if the map can't be located.
40
+ */
41
+ loadMap(systemCode) {
42
+ const map = this.loader.load(systemCode);
43
+ for (const dep of map.dependencies) {
44
+ try {
45
+ this.loader.load(dep);
46
+ }
47
+ catch (e) {
48
+ if (e instanceof MapNotFoundError) {
49
+ throw new DependencyMissingError(dep);
50
+ }
51
+ throw e;
52
+ }
53
+ }
54
+ return map;
55
+ }
56
+ /**
57
+ * Async pre-load. Required when async strategies (HTTP) are configured
58
+ * and the map isn't already cached.
59
+ *
60
+ * Recursively loads all transitive dependencies so the synchronous
61
+ * execution path can resolve deps without awaiting.
62
+ */
63
+ async loadMapAsync(systemCode) {
64
+ const map = await this.loader.loadAsync(systemCode);
65
+ // Recursively load every transitive dep. The synchronous executor
66
+ // calls loader.load() during execution and can't await async
67
+ // strategies — so we preload the entire closure upfront.
68
+ const seen = new Set();
69
+ const queue = [...map.dependencies];
70
+ while (queue.length > 0) {
71
+ const dep = queue.shift();
72
+ if (seen.has(dep))
73
+ continue;
74
+ seen.add(dep);
75
+ try {
76
+ const depMap = await this.loader.loadAsync(dep);
77
+ for (const d of depMap.dependencies) {
78
+ if (!seen.has(d))
79
+ queue.push(d);
80
+ }
81
+ }
82
+ catch (e) {
83
+ if (e instanceof MapNotFoundError) {
84
+ throw new DependencyMissingError(dep);
85
+ }
86
+ throw e;
87
+ }
88
+ }
89
+ return map;
90
+ }
91
+ /**
92
+ * Transliterate `input` using `systemCode`. Loads the map on first use,
93
+ * caches it.
94
+ */
95
+ transliterate(systemCode, input, stage) {
96
+ try {
97
+ const map = this.loadMap(systemCode);
98
+ const stageName = stage ?? this.defaultStage;
99
+ return executeStage(map, stageName, input, this.loader);
100
+ }
101
+ catch (e) {
102
+ if (e instanceof InterscriptError)
103
+ throw e;
104
+ throw new SystemConversionError(`Transliteration failed for ${systemCode}: ${e.message}`, { cause: e });
105
+ }
106
+ }
107
+ /**
108
+ * Async transliterate. Required when the configured strategies include
109
+ * async loaders (e.g. httpStrategy) and the map may not be cached.
110
+ * Also handles ML-powered maps (rababa, secryst) — use this instead
111
+ * of transliterate() for any map that might contain ML funcalls.
112
+ */
113
+ async transliterateAsync(systemCode, input, stage) {
114
+ try {
115
+ const map = await this.loadMapAsync(systemCode);
116
+ const stageName = stage ?? this.defaultStage;
117
+ return await executeStageAsync(map, stageName, input, this.loader);
118
+ }
119
+ catch (e) {
120
+ if (e instanceof InterscriptError)
121
+ throw e;
122
+ throw new SystemConversionError(`Transliteration failed for ${systemCode}: ${e.message}`, { cause: e });
123
+ }
124
+ }
125
+ /** List all maps currently loaded in the cache. */
126
+ loadedMaps() {
127
+ return this.loader.loadedMaps();
128
+ }
129
+ /** Direct loader access (for detector + advanced use). */
130
+ getLoader() {
131
+ return this.loader;
132
+ }
133
+ /**
134
+ * Detect which transliteration system best explains how `input` became
135
+ * `output`. Returns candidates ranked by edit distance.
136
+ *
137
+ * Iterates every loaded map; for large map sets, supply `mapPattern`
138
+ * to pre-filter.
139
+ */
140
+ detect(input, output, opts = {}, knownMaps) {
141
+ return detectInMaps(input, output, this.loader, opts, knownMaps);
142
+ }
143
+ }
144
+ let defaultRuntime;
145
+ /** Configure the default runtime with custom strategies. */
146
+ export function configure(config) {
147
+ defaultRuntime = new InterscriptRuntime(config);
148
+ }
149
+ function runtime() {
150
+ if (!defaultRuntime) {
151
+ defaultRuntime = new InterscriptRuntime();
152
+ }
153
+ return defaultRuntime;
154
+ }
155
+ /** Public API — mirrors Interscript.transliterate from Ruby. */
156
+ export function transliterate(systemCode, input, stage) {
157
+ return runtime().transliterate(systemCode, input, stage);
158
+ }
159
+ /**
160
+ * Async transliterate. Use when async strategies (httpStrategy) are
161
+ * configured and the map may not be in the cache yet.
162
+ */
163
+ export function transliterateAsync(systemCode, input, stage) {
164
+ return runtime().transliterateAsync(systemCode, input, stage);
165
+ }
166
+ /** Public API — mirrors Interscript.load. */
167
+ export function loadMap(systemCode) {
168
+ return runtime().loadMap(systemCode);
169
+ }
170
+ /** Async version — needed when async strategies may be used. */
171
+ export function loadMapAsync(systemCode) {
172
+ return runtime().loadMapAsync(systemCode);
173
+ }
174
+ /** Public API — mirrors Interscript.detect. */
175
+ export function detect(input, output, opts) {
176
+ return runtime().detect(input, output, opts);
177
+ }
178
+ /** Reset the default runtime (mainly for tests). */
179
+ export function reset() {
180
+ defaultRuntime = undefined;
181
+ }
182
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Converts an IscDocument (parsed from .isc source) to a CompiledMapJson
3
+ * (the runtime representation consumed by the existing TS runtime).
4
+ *
5
+ * This bridges the ISC parser output to the existing runtime without
6
+ * modifying any runtime code (OCP).
7
+ */
8
+ import type { IscDocument } from "./types.js";
9
+ import type { CompiledMapJson } from "../types.js";
10
+ export declare function iscToCompiledMap(doc: IscDocument): CompiledMapJson;
11
+ //# sourceMappingURL=converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/isc/converter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,YAAY,CAAA;AAC7E,OAAO,KAAK,EAMV,eAAe,EAahB,MAAM,aAAa,CAAA;AAEpB,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,GAAG,eAAe,CAgClE"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Converts an IscDocument (parsed from .isc source) to a CompiledMapJson
3
+ * (the runtime representation consumed by the existing TS runtime).
4
+ *
5
+ * This bridges the ISC parser output to the existing runtime without
6
+ * modifying any runtime code (OCP).
7
+ */
8
+ export function iscToCompiledMap(doc) {
9
+ const aliases = {};
10
+ for (const a of doc.aliases) {
11
+ aliases[a.name] = convertItem(a.value);
12
+ }
13
+ // Build alias → target system code map for run-rule resolution.
14
+ const depAliases = new Map();
15
+ for (const d of doc.dependencies) {
16
+ if (d.aliasName)
17
+ depAliases.set(d.aliasName, d.target);
18
+ }
19
+ const resolveDep = (name) => depAliases.get(name) ?? name;
20
+ const stages = doc.stages.map((s) => convertStage(s, resolveDep));
21
+ if (Object.keys(doc.metadata).length === 0) {
22
+ return {
23
+ schemaVersion: 1,
24
+ systemCode: doc.systemCode,
25
+ dependencies: doc.dependencies.map((d) => d.target),
26
+ stages,
27
+ aliases,
28
+ functions: {},
29
+ };
30
+ }
31
+ return {
32
+ schemaVersion: 1,
33
+ systemCode: doc.systemCode,
34
+ dependencies: doc.dependencies.map((d) => d.target),
35
+ metadata: doc.metadata,
36
+ stages,
37
+ aliases,
38
+ functions: {},
39
+ };
40
+ }
41
+ function convertStage(stage, resolveDep) {
42
+ return {
43
+ kind: "stage",
44
+ name: stage.name,
45
+ rules: stage.body.map((item) => convertStageItem(item, resolveDep)),
46
+ };
47
+ }
48
+ function convertStageItem(item, resolveDep) {
49
+ switch (item.kind) {
50
+ case "parallel": {
51
+ const r = { kind: "parallel", rules: item.rules.map(convertRule) };
52
+ return r;
53
+ }
54
+ case "sequence": {
55
+ const r = { kind: "sequential", rules: item.rules.map(convertRule) };
56
+ return r;
57
+ }
58
+ case "bare_rule":
59
+ return convertRule(item.rule);
60
+ case "run": {
61
+ const r = item.dependency
62
+ ? { kind: "run", stage: item.stage, docName: resolveDep(item.dependency) }
63
+ : { kind: "run", stage: item.stage };
64
+ return r;
65
+ }
66
+ case "separate": {
67
+ if (item.separator && item.separator.type === "string") {
68
+ const r = {
69
+ kind: "funcall",
70
+ name: "separate",
71
+ kwargs: { separator: item.separator.value },
72
+ };
73
+ return r;
74
+ }
75
+ const r = { kind: "funcall", name: "separate" };
76
+ return r;
77
+ }
78
+ case "compose": {
79
+ const r = { kind: "funcall", name: "compose" };
80
+ return r;
81
+ }
82
+ case "decompose": {
83
+ const r = { kind: "funcall", name: "decompose" };
84
+ return r;
85
+ }
86
+ case "string_case": {
87
+ const r = { kind: "funcall", name: item.op };
88
+ return r;
89
+ }
90
+ case "funcall": {
91
+ const r = { kind: "funcall", name: item.name, kwargs: item.kwargs };
92
+ return r;
93
+ }
94
+ }
95
+ }
96
+ function convertRule(rule) {
97
+ const before = findConstraint(rule, "before");
98
+ const after = findConstraint(rule, "after");
99
+ const notBefore = findConstraint(rule, "not_before");
100
+ const notAfter = findConstraint(rule, "not_after");
101
+ // `to` may be a function (upcase/downcase/title_case/etc.) — represented
102
+ // as FuncallInline rather than an Item.
103
+ const toItem = rule.to;
104
+ const to = toItem.type === "function" ? { kind: "funcall_inline", name: toItem.name } : convertItem(toItem);
105
+ const r = {
106
+ kind: "sub",
107
+ from: convertItem(rule.from),
108
+ to,
109
+ ...(before !== undefined ? { before } : {}),
110
+ ...(after !== undefined ? { after } : {}),
111
+ ...(notBefore !== undefined ? { notBefore } : {}),
112
+ ...(notAfter !== undefined ? { notAfter } : {}),
113
+ };
114
+ return r;
115
+ }
116
+ function findConstraint(rule, kind) {
117
+ const c = rule.constraints.find((x) => x.kind === kind);
118
+ return c ? convertItem(c.item) : undefined;
119
+ }
120
+ function convertItem(item) {
121
+ switch (item.type) {
122
+ case "string": {
123
+ const r = { kind: "string", value: item.value };
124
+ return r;
125
+ }
126
+ case "none": {
127
+ const r = { kind: "string", value: "" };
128
+ return r;
129
+ }
130
+ case "primitive": {
131
+ const r = { kind: "alias", name: item.name };
132
+ return r;
133
+ }
134
+ case "function": {
135
+ // Functions in non-`to` positions are unexpected — fall back to alias
136
+ // lookup so a clear error surfaces at runtime.
137
+ const r = { kind: "alias", name: item.name };
138
+ return r;
139
+ }
140
+ case "alias_ref": {
141
+ const r = { kind: "alias", name: item.name };
142
+ return r;
143
+ }
144
+ case "capture": {
145
+ const r = { kind: "capture_ref", id: item.index };
146
+ return r;
147
+ }
148
+ case "capture_group": {
149
+ const r = { kind: "capture_group", data: convertItem(item.inner) };
150
+ return r;
151
+ }
152
+ case "concat": {
153
+ const parts = item.parts.map(convertItem);
154
+ if (parts.length === 1)
155
+ return parts[0];
156
+ const r = { kind: "group", items: parts };
157
+ return r;
158
+ }
159
+ case "set": {
160
+ const r = { kind: "any", of: item.items.map(convertItem) };
161
+ return r;
162
+ }
163
+ case "range": {
164
+ const r = { kind: "any_char_class", range: [item.lo, item.hi] };
165
+ return r;
166
+ }
167
+ case "maybe": {
168
+ const r = { kind: "repeat", item: convertItem(item.inner), min: 0, max: 1 };
169
+ return r;
170
+ }
171
+ case "some": {
172
+ const r = { kind: "repeat", item: convertItem(item.inner), min: 1, max: null };
173
+ return r;
174
+ }
175
+ }
176
+ }
177
+ //# sourceMappingURL=converter.js.map