interscript 2.4.5 → 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.
- package/LICENSE +25 -0
- package/README.md +90 -41
- package/dist/cli.d.ts +25 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +327 -0
- package/dist/cli.js.map +1 -0
- package/dist/detector.d.ts +22 -0
- package/dist/detector.d.ts.map +1 -0
- package/dist/detector.js +73 -0
- package/dist/detector.js.map +1 -0
- package/dist/errors.d.ts +26 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +34 -0
- package/dist/errors.js.map +1 -0
- package/dist/http-loader.d.ts +42 -0
- package/dist/http-loader.d.ts.map +1 -0
- package/dist/http-loader.js +95 -0
- package/dist/http-loader.js.map +1 -0
- package/dist/index.d.ts +49 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +182 -0
- package/dist/index.js.map +1 -0
- package/dist/isc/converter.d.ts +11 -0
- package/dist/isc/converter.d.ts.map +1 -0
- package/dist/isc/converter.js +177 -0
- package/dist/isc/converter.js.map +1 -0
- package/dist/isc/index.d.ts +16 -0
- package/dist/isc/index.d.ts.map +1 -0
- package/dist/isc/index.js +15 -0
- package/dist/isc/index.js.map +1 -0
- package/dist/isc/loader.d.ts +22 -0
- package/dist/isc/loader.d.ts.map +1 -0
- package/dist/isc/loader.js +47 -0
- package/dist/isc/loader.js.map +1 -0
- package/dist/isc/parser.d.ts +14 -0
- package/dist/isc/parser.d.ts.map +1 -0
- package/dist/isc/parser.js +734 -0
- package/dist/isc/parser.js.map +1 -0
- package/dist/isc/types.d.ts +110 -0
- package/dist/isc/types.d.ts.map +1 -0
- package/dist/isc/types.js +19 -0
- package/dist/isc/types.js.map +1 -0
- package/dist/loader.d.ts +49 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +93 -0
- package/dist/loader.js.map +1 -0
- package/dist/loaders.d.ts +23 -0
- package/dist/loaders.d.ts.map +1 -0
- package/dist/loaders.js +40 -0
- package/dist/loaders.js.map +1 -0
- package/dist/loaders.node.d.ts +25 -0
- package/dist/loaders.node.d.ts.map +1 -0
- package/dist/loaders.node.js +42 -0
- package/dist/loaders.node.js.map +1 -0
- package/dist/ml/imf/index.d.ts +6 -0
- package/dist/ml/imf/index.d.ts.map +1 -0
- package/dist/ml/imf/index.js +6 -0
- package/dist/ml/imf/index.js.map +1 -0
- package/dist/ml/imf/loader.d.ts +19 -0
- package/dist/ml/imf/loader.d.ts.map +1 -0
- package/dist/ml/imf/loader.js +59 -0
- package/dist/ml/imf/loader.js.map +1 -0
- package/dist/ml/imf/model.d.ts +28 -0
- package/dist/ml/imf/model.d.ts.map +1 -0
- package/dist/ml/imf/model.js +181 -0
- package/dist/ml/imf/model.js.map +1 -0
- package/dist/ml/imf/registry.d.ts +30 -0
- package/dist/ml/imf/registry.d.ts.map +1 -0
- package/dist/ml/imf/registry.js +140 -0
- package/dist/ml/imf/registry.js.map +1 -0
- package/dist/ml/imf/tokens.d.ts +13 -0
- package/dist/ml/imf/tokens.d.ts.map +1 -0
- package/dist/ml/imf/tokens.js +32 -0
- package/dist/ml/imf/tokens.js.map +1 -0
- package/dist/ml/index.d.ts +24 -0
- package/dist/ml/index.d.ts.map +1 -0
- package/dist/ml/index.js +25 -0
- package/dist/ml/index.js.map +1 -0
- package/dist/ml/models/rababa/cleaner.d.ts +11 -0
- package/dist/ml/models/rababa/cleaner.d.ts.map +1 -0
- package/dist/ml/models/rababa/cleaner.js +21 -0
- package/dist/ml/models/rababa/cleaner.js.map +1 -0
- package/dist/ml/models/rababa/diacritizer.d.ts +37 -0
- package/dist/ml/models/rababa/diacritizer.d.ts.map +1 -0
- package/dist/ml/models/rababa/diacritizer.js +172 -0
- package/dist/ml/models/rababa/diacritizer.js.map +1 -0
- package/dist/ml/models/rababa/encoder.d.ts +40 -0
- package/dist/ml/models/rababa/encoder.d.ts.map +1 -0
- package/dist/ml/models/rababa/encoder.js +57 -0
- package/dist/ml/models/rababa/encoder.js.map +1 -0
- package/dist/ml/models/rababa/haraqat.d.ts +49 -0
- package/dist/ml/models/rababa/haraqat.d.ts.map +1 -0
- package/dist/ml/models/rababa/haraqat.js +89 -0
- package/dist/ml/models/rababa/haraqat.js.map +1 -0
- package/dist/ml/models/rababa/index.d.ts +12 -0
- package/dist/ml/models/rababa/index.d.ts.map +1 -0
- package/dist/ml/models/rababa/index.js +14 -0
- package/dist/ml/models/rababa/index.js.map +1 -0
- package/dist/ml/models/rababa/reconciler.d.ts +29 -0
- package/dist/ml/models/rababa/reconciler.d.ts.map +1 -0
- package/dist/ml/models/rababa/reconciler.js +81 -0
- package/dist/ml/models/rababa/reconciler.js.map +1 -0
- package/dist/ml/models/secryst/index.d.ts +10 -0
- package/dist/ml/models/secryst/index.d.ts.map +1 -0
- package/dist/ml/models/secryst/index.js +12 -0
- package/dist/ml/models/secryst/index.js.map +1 -0
- package/dist/ml/models/secryst/masks.d.ts +33 -0
- package/dist/ml/models/secryst/masks.d.ts.map +1 -0
- package/dist/ml/models/secryst/masks.js +73 -0
- package/dist/ml/models/secryst/masks.js.map +1 -0
- package/dist/ml/models/secryst/translator.d.ts +31 -0
- package/dist/ml/models/secryst/translator.d.ts.map +1 -0
- package/dist/ml/models/secryst/translator.js +112 -0
- package/dist/ml/models/secryst/translator.js.map +1 -0
- package/dist/ml/models/secryst/vocab.d.ts +39 -0
- package/dist/ml/models/secryst/vocab.d.ts.map +1 -0
- package/dist/ml/models/secryst/vocab.js +85 -0
- package/dist/ml/models/secryst/vocab.js.map +1 -0
- package/dist/ml/provision/base.d.ts +14 -0
- package/dist/ml/provision/base.d.ts.map +1 -0
- package/dist/ml/provision/base.js +19 -0
- package/dist/ml/provision/base.js.map +1 -0
- package/dist/ml/provision/index.d.ts +62 -0
- package/dist/ml/provision/index.d.ts.map +1 -0
- package/dist/ml/provision/index.js +107 -0
- package/dist/ml/provision/index.js.map +1 -0
- package/dist/ml/provision/manifest.d.ts +79 -0
- package/dist/ml/provision/manifest.d.ts.map +1 -0
- package/dist/ml/provision/manifest.js +122 -0
- package/dist/ml/provision/manifest.js.map +1 -0
- package/dist/ml/registry.d.ts +35 -0
- package/dist/ml/registry.d.ts.map +1 -0
- package/dist/ml/registry.js +76 -0
- package/dist/ml/registry.js.map +1 -0
- package/dist/ml/session/index.d.ts +55 -0
- package/dist/ml/session/index.d.ts.map +1 -0
- package/dist/ml/session/index.js +57 -0
- package/dist/ml/session/index.js.map +1 -0
- package/dist/ml/session/litert-web.d.ts +50 -0
- package/dist/ml/session/litert-web.d.ts.map +1 -0
- package/dist/ml/session/litert-web.js +146 -0
- package/dist/ml/session/litert-web.js.map +1 -0
- package/dist/ml/session/onnx-node.d.ts +10 -0
- package/dist/ml/session/onnx-node.d.ts.map +1 -0
- package/dist/ml/session/onnx-node.js +62 -0
- package/dist/ml/session/onnx-node.js.map +1 -0
- package/dist/ml/session/onnx-web.d.ts +23 -0
- package/dist/ml/session/onnx-web.d.ts.map +1 -0
- package/dist/ml/session/onnx-web.js +74 -0
- package/dist/ml/session/onnx-web.js.map +1 -0
- package/dist/ml/types.d.ts +113 -0
- package/dist/ml/types.d.ts.map +1 -0
- package/dist/ml/types.js +7 -0
- package/dist/ml/types.js.map +1 -0
- package/dist/runtime/compile-item.d.ts +53 -0
- package/dist/runtime/compile-item.d.ts.map +1 -0
- package/dist/runtime/compile-item.js +278 -0
- package/dist/runtime/compile-item.js.map +1 -0
- package/dist/runtime/context.d.ts +33 -0
- package/dist/runtime/context.d.ts.map +1 -0
- package/dist/runtime/context.js +67 -0
- package/dist/runtime/context.js.map +1 -0
- package/dist/runtime/executor.d.ts +18 -0
- package/dist/runtime/executor.d.ts.map +1 -0
- package/dist/runtime/executor.js +228 -0
- package/dist/runtime/executor.js.map +1 -0
- package/dist/runtime/interpreter.d.ts +30 -0
- package/dist/runtime/interpreter.d.ts.map +1 -0
- package/dist/runtime/interpreter.js +130 -0
- package/dist/runtime/interpreter.js.map +1 -0
- package/dist/stdlib/ml.d.ts +55 -0
- package/dist/stdlib/ml.d.ts.map +1 -0
- package/dist/stdlib/ml.js +114 -0
- package/dist/stdlib/ml.js.map +1 -0
- package/dist/stdlib.d.ts +96 -0
- package/dist/stdlib.d.ts.map +1 -0
- package/dist/stdlib.js +160 -0
- package/dist/stdlib.js.map +1 -0
- package/dist/types.d.ts +167 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +13 -0
- package/dist/types.js.map +1 -0
- package/package.json +78 -18
- package/LICENSE.md +0 -31
- package/README.adoc +0 -78
- package/src/maps/acadsin-zho-Hani-Latn-2002.js +0 -9
- package/src/maps/alalc-amh-Ethi-Latn-1997.js +0 -8
- package/src/maps/alalc-amh-Ethi-Latn-2011.js +0 -7
- package/src/maps/alalc-ara-Arab-Latn-1997.js +0 -8
- package/src/maps/alalc-asm-Deva-Latn-1997.js +0 -50
- package/src/maps/alalc-asm-Deva-Latn-2012.js +0 -7
- package/src/maps/alalc-aze-Arab-Latn-1997.js +0 -11
- package/src/maps/alalc-aze-Cyrl-Latn-1997.js +0 -9
- package/src/maps/alalc-bel-Cyrl-Latn-1997.js +0 -8
- package/src/maps/alalc-ben-Beng-Latn-1997.js +0 -52
- package/src/maps/alalc-ben-Beng-Latn-2017.js +0 -9
- package/src/maps/alalc-bul-Cyrl-Latn-1997.js +0 -10
- package/src/maps/alalc-div-Thaa-Latn-1997.js +0 -38
- package/src/maps/alalc-div-Thaa-Latn-2012.js +0 -7
- package/src/maps/alalc-ell-Grek-Latn-1997.js +0 -25
- package/src/maps/alalc-ell-Grek-Latn-2010.js +0 -27
- package/src/maps/alalc-fas-Arab-Latn-1997.js +0 -11
- package/src/maps/alalc-guj-Gujr-Latn-1997.js +0 -50
- package/src/maps/alalc-guj-Gujr-Latn-2011.js +0 -7
- package/src/maps/alalc-hin-Deva-Latn-1997.js +0 -60
- package/src/maps/alalc-hin-Deva-Latn-2011.js +0 -7
- package/src/maps/alalc-kan-Kana-Latn-1997.js +0 -51
- package/src/maps/alalc-kan-Kana-Latn-2011.js +0 -7
- package/src/maps/alalc-kat-Geok-Latn-1997.js +0 -8
- package/src/maps/alalc-kat-Geok-Latn-2011.js +0 -7
- package/src/maps/alalc-kat-Geor-Latn-1997.js +0 -8
- package/src/maps/alalc-kat-Geor-Latn-2011.js +0 -7
- package/src/maps/alalc-kor-Hang-Latn-1997.js +0 -9
- package/src/maps/alalc-mal-Mlym-Latn-1997.js +0 -52
- package/src/maps/alalc-mal-Mlym-Latn-2012.js +0 -7
- package/src/maps/alalc-mar-Deva-Latn-1997.js +0 -13
- package/src/maps/alalc-mar-Deva-Latn-2011.js +0 -7
- package/src/maps/alalc-mkd-Cyrl-Latn-1997.js +0 -17
- package/src/maps/alalc-mkd-Cyrl-Latn-2013.js +0 -17
- package/src/maps/alalc-mon-Cyrl-Latn-1997.js +0 -8
- package/src/maps/alalc-ori-Orya-Latn-1997.js +0 -55
- package/src/maps/alalc-ori-Orya-Latn-2011.js +0 -7
- package/src/maps/alalc-pan-Guru-Latn-1997.js +0 -17
- package/src/maps/alalc-pan-Guru-Latn-2011.js +0 -7
- package/src/maps/alalc-pli-Deva-Latn-2012.js +0 -13
- package/src/maps/alalc-pra-Deva-Latn-2012.js +0 -7
- package/src/maps/alalc-rus-Cyrl-Latn-1997.js +0 -9
- package/src/maps/alalc-rus-Cyrl-Latn-2012.js +0 -9
- package/src/maps/alalc-san-Deva-Latn-2012.js +0 -49
- package/src/maps/alalc-sin-Sinh-Latn-1997.js +0 -54
- package/src/maps/alalc-sin-Sinh-Latn-2011.js +0 -7
- package/src/maps/alalc-srp-Cyrl-Latn-1997.js +0 -17
- package/src/maps/alalc-srp-Cyrl-Latn-2013.js +0 -15
- package/src/maps/alalc-tam-Taml-Latn-1997.js +0 -9
- package/src/maps/alalc-tam-Taml-Latn-2011.js +0 -7
- package/src/maps/alalc-tel-Telu-Latn-1997.js +0 -54
- package/src/maps/alalc-tel-Telu-Latn-2011.js +0 -7
- package/src/maps/alalc-tir-Ethi-Latn-1997.js +0 -8
- package/src/maps/alalc-tir-Ethi-Latn-2011.js +0 -7
- package/src/maps/alalc-ukr-Cyrl-Latn-1997.js +0 -9
- package/src/maps/alalc-ukr-Cyrl-Latn-2011.js +0 -7
- package/src/maps/apcbg-bul-Cyrl-Latn-1995.js +0 -8
- package/src/maps/az-aze-Cyrl-Latn-1939.js +0 -8
- package/src/maps/az-aze-Cyrl-Latn-1958.js +0 -11
- package/src/maps/bas-rus-Cyrl-Latn-2017-bss.js +0 -10
- package/src/maps/bas-rus-Cyrl-Latn-2017-oss.js +0 -10
- package/src/maps/bgn-jpn-Hrkt-Latn-1962.js +0 -10
- package/src/maps/bgn-kor-Hang-Latn-1943.js +0 -9
- package/src/maps/bgn-kor-Kore-Latn-1943.js +0 -10
- package/src/maps/bgna-bul-Cyrl-Latn-2006.js +0 -7
- package/src/maps/bgna-bul-Cyrl-Latn-2009.js +0 -7
- package/src/maps/bgnpcgn-amh-Ethi-Latn-1967.js +0 -8
- package/src/maps/bgnpcgn-ara-Arab-Latn-1956.js +0 -25
- package/src/maps/bgnpcgn-arm-Armn-Latn-1981.js +0 -8
- package/src/maps/bgnpcgn-aze-Cyrl-Latn-1993.js +0 -8
- package/src/maps/bgnpcgn-bak-Cyrl-Latn-2007.js +0 -16
- package/src/maps/bgnpcgn-bal-Arab-Latn-2008.js +0 -9
- package/src/maps/bgnpcgn-bel-Cyrl-Latn-1979.js +0 -12
- package/src/maps/bgnpcgn-bul-Cyrl-Latn-1952.js +0 -12
- package/src/maps/bgnpcgn-bul-Cyrl-Latn-2013.js +0 -10
- package/src/maps/bgnpcgn-che-Cyrl-Latn-2008.js +0 -15
- package/src/maps/bgnpcgn-deu-Latn-Latn-2000.js +0 -12
- package/src/maps/bgnpcgn-div-Thaa-Latn-1972.js +0 -13
- package/src/maps/bgnpcgn-div-Thaa-Latn-1988.js +0 -9
- package/src/maps/bgnpcgn-ell-Grek-Latn-1962.js +0 -52
- package/src/maps/bgnpcgn-ell-Grek-Latn-1996.js +0 -7
- package/src/maps/bgnpcgn-fao-Latn-Latn-1964.js +0 -11
- package/src/maps/bgnpcgn-fao-Latn-Latn-1968.js +0 -7
- package/src/maps/bgnpcgn-fas-Arab-Latn-1956.js +0 -8
- package/src/maps/bgnpcgn-isl-Latn-Latn-1964.js +0 -10
- package/src/maps/bgnpcgn-isl-Latn-Latn-1968.js +0 -7
- package/src/maps/bgnpcgn-jpn-Hrkt-Latn-1976.js +0 -10
- package/src/maps/bgnpcgn-kat-Geor-Latn-1981.js +0 -8
- package/src/maps/bgnpcgn-kat-Geor-Latn-2009.js +0 -7
- package/src/maps/bgnpcgn-kaz-Cyrl-Latn-1979.js +0 -8
- package/src/maps/bgnpcgn-kir-Cyrl-Latn-1979.js +0 -8
- package/src/maps/bgnpcgn-kor-Hang-Latn-kn-1945.js +0 -52
- package/src/maps/bgnpcgn-kor-Hang-Latn-rok-2011.js +0 -8
- package/src/maps/bgnpcgn-kor-Kore-Latn-rok-2011.js +0 -8
- package/src/maps/bgnpcgn-kur-Arab-Latn-2007.js +0 -9
- package/src/maps/bgnpcgn-mkd-Cyrl-Latn-1981.js +0 -15
- package/src/maps/bgnpcgn-mkd-Cyrl-Latn-2013.js +0 -17
- package/src/maps/bgnpcgn-mon-Cyrl-Latn-1964.js +0 -12
- package/src/maps/bgnpcgn-nep-Deva-Latn-2011.js +0 -13
- package/src/maps/bgnpcgn-per-Arab-Latn-1958.js +0 -10
- package/src/maps/bgnpcgn-prs-Arab-Latn-2007.js +0 -25
- package/src/maps/bgnpcgn-prs-Arab-Latn-yaghoubi.js +0 -8
- package/src/maps/bgnpcgn-pus-Arab-Latn-1968.js +0 -26
- package/src/maps/bgnpcgn-ron-Cyrl-Latn-2002.js +0 -23
- package/src/maps/bgnpcgn-rue-Cyrl-Latn-2016.js +0 -8
- package/src/maps/bgnpcgn-rus-Cyrl-Latn-1947.js +0 -52
- package/src/maps/bgnpcgn-sme-Latn-Latn-1984.js +0 -8
- package/src/maps/bgnpcgn-srp-Cyrl-Latn-1962.js +0 -7
- package/src/maps/bgnpcgn-srp-Cyrl-Latn-2005.js +0 -15
- package/src/maps/bgnpcgn-tat-Cyrl-Latn-2007.js +0 -27
- package/src/maps/bgnpcgn-tgk-Cyrl-Latn-1994.js +0 -12
- package/src/maps/bgnpcgn-tir-Ethi-Latn-2007.js +0 -8
- package/src/maps/bgnpcgn-ukr-Cyrl-Latn-1965.js +0 -9
- package/src/maps/bgnpcgn-ukr-Cyrl-Latn-2019.js +0 -9
- package/src/maps/bgnpcgn-urd-Arab-Latn-2007.js +0 -25
- package/src/maps/bgnpcgn-uzb-Cyrl-Latn-1979.js +0 -12
- package/src/maps/bgnpcgn-uzb-Cyrl-Latn-2000.js +0 -11
- package/src/maps/bgnpcgn-zho-Hans-Latn-1979.js +0 -8
- package/src/maps/bis-asm-Beng-Latn-13194-1991.js +0 -14
- package/src/maps/bis-ben-Beng-Latn-13194-1991.js +0 -14
- package/src/maps/bis-dev-Deva-Latn-13194-1991.js +0 -14
- package/src/maps/bis-guj-Gujr-Latn-13194-1991.js +0 -14
- package/src/maps/bis-kan-Kana-Latn-13194-1991.js +0 -14
- package/src/maps/bis-mlm-Mlym-Latn-13194-1991.js +0 -14
- package/src/maps/bis-ori-Orya-Latn-13194-1991.js +0 -14
- package/src/maps/bis-pnj-Guru-Latn-13194-1991.js +0 -14
- package/src/maps/bis-tel-Telu-Latn-13194-1991.js +0 -14
- package/src/maps/bis-tml-Taml-Latn-13194-1991.js +0 -14
- package/src/maps/by-bel-Cyrl-Latn-1998.js +0 -19
- package/src/maps/by-bel-Cyrl-Latn-2007.js +0 -7
- package/src/maps/din-grc-Grek-Latn-31634-2011-t1.js +0 -23
- package/src/maps/din-hin-Deva-Latn-33904-2018.js +0 -9
- package/src/maps/din-kat-Geor-Latn-32707-2010.js +0 -8
- package/src/maps/din-mar-Deva-Latn-33904-2018.js +0 -9
- package/src/maps/din-nep-Deva-Latn-33904-2018.js +0 -9
- package/src/maps/din-pli-Deva-Latn-33904-2018.js +0 -7
- package/src/maps/din-pra-Deva-Latn-33904-2018.js +0 -7
- package/src/maps/din-san-Deva-Latn-33904-2018.js +0 -51
- package/src/maps/din-tam-Taml-Latn-33903-2016.js +0 -34
- package/src/maps/dos-nep-Deva-Latn-1997.js +0 -9
- package/src/maps/elot-ell-Grek-Latn-743-1982-tl.js +0 -53
- package/src/maps/elot-ell-Grek-Latn-743-1982-ts.js +0 -53
- package/src/maps/elot-ell-Grek-Latn-743-2001-tl.js +0 -7
- package/src/maps/elot-ell-Grek-Latn-743-2001-ts.js +0 -7
- package/src/maps/ggg-kat-Geor-Latn-2002.js +0 -8
- package/src/maps/gki-bel-Cyrl-Latn-1992.js +0 -9
- package/src/maps/gki-bel-Cyrl-Latn-2000.js +0 -18
- package/src/maps/gost-rus-Cyrl-Latn-16876-71-1983.js +0 -10
- package/src/maps/gost-rus-Cyrl-Latn-7.79-2000-2002.js +0 -9
- package/src/maps/hk-yue-Hani-Latn-1888.js +0 -10
- package/src/maps/icao-bel-Cyrl-Latn-9303.js +0 -8
- package/src/maps/icao-bul-Cyrl-Latn-9303.js +0 -8
- package/src/maps/icao-fas-Arab-Latn-9303.js +0 -8
- package/src/maps/icao-heb-Hebr-Latn-9303.js +0 -8
- package/src/maps/icao-mkd-Cyrl-Latn-9303.js +0 -8
- package/src/maps/icao-rus-Cyrl-Latn-9303.js +0 -8
- package/src/maps/icao-srp-Cyrl-Latn-9303.js +0 -8
- package/src/maps/icao-ukr-Cyrl-Latn-9303.js +0 -8
- package/src/maps/index.json +0 -1
- package/src/maps/iso-ara-Arab-Latn-233-1984.js +0 -24
- package/src/maps/iso-ara-Arab-Latn-233-2-1993.js +0 -12
- package/src/maps/iso-asm-Beng-Latn-15919-2001.js +0 -9
- package/src/maps/iso-ben-Beng-Latn-15919-2001.js +0 -9
- package/src/maps/iso-ell-Grek-Latn-843-1997-t1.js +0 -15
- package/src/maps/iso-ell-Grek-Latn-843-1997-t2.js +0 -9
- package/src/maps/iso-guj-Gujr-Latn-15919-2001.js +0 -9
- package/src/maps/iso-hin-Deva-Latn-15919-2001.js +0 -7
- package/src/maps/iso-inc-Deva-Latn-15919-2001.js +0 -7
- package/src/maps/iso-jpn-Hrkt-Latn-3602-1989.js +0 -10
- package/src/maps/iso-kan-Kana-Latn-15919-2001.js +0 -9
- package/src/maps/iso-kat-Geor-Latn-9984-1996.js +0 -8
- package/src/maps/iso-kor-Hang-Latn-1996-method1.js +0 -14
- package/src/maps/iso-kor-Hang-Latn-1996-method2.js +0 -13
- package/src/maps/iso-mal-Mlym-Latn-15919-2001.js +0 -12
- package/src/maps/iso-mar-Deva-Latn-15919-2001.js +0 -7
- package/src/maps/iso-nep-Deva-Latn-15919-2001.js +0 -7
- package/src/maps/iso-ori-Orya-Latn-15919-2001.js +0 -9
- package/src/maps/iso-pan-Guru-Latn-15919-2001.js +0 -9
- package/src/maps/iso-pli-Beng-Latn-15919-2001.js +0 -7
- package/src/maps/iso-pli-Deva-Latn-15919-2001.js +0 -7
- package/src/maps/iso-pli-Sinh-Latn-15919-2001.js +0 -9
- package/src/maps/iso-pli-Thai-Latn-15919-2001.js +0 -7
- package/src/maps/iso-pra-Deva-Latn-15919-2001.js +0 -7
- package/src/maps/iso-prs-Arab-Latn-233-3-1999.js +0 -8
- package/src/maps/iso-rus-Cyrl-Latn-9-1995.js +0 -8
- package/src/maps/iso-san-Deva-Latn-15919-2001.js +0 -9
- package/src/maps/iso-tam-Taml-Latn-15919-2001.js +0 -9
- package/src/maps/iso-tel-Telu-Latn-15919-2001.js +0 -9
- package/src/maps/iso-tha-Thai-Latn-11940-1998.js +0 -9
- package/src/maps/kp-kor-Hang-Latn-2002.js +0 -78
- package/src/maps/lshk-yue-Hani-Latn-jyutping-1993.js +0 -8
- package/src/maps/masm-mon-Cyrl-Latn-5217-2012.js +0 -8
- package/src/maps/masm-mon-Latn-Cyrl-5217-2012.js +0 -18
- package/src/maps/mext-jpn-Hrkt-Latn-1954.js +0 -16
- package/src/maps/moct-kor-Hang-Latn-2000.js +0 -112
- package/src/maps/mofa-jpn-Hrkt-Latn-1989.js +0 -14
- package/src/maps/mv-div-Thaa-Latn-1987.js +0 -58
- package/src/maps/mvd-bel-Cyrl-Latn-2008.js +0 -36
- package/src/maps/mvd-bel-Cyrl-Latn-2010.js +0 -11
- package/src/maps/mvd-rus-Cyrl-Latn-2008.js +0 -19
- package/src/maps/mvd-rus-Cyrl-Latn-2010.js +0 -9
- package/src/maps/odni-ara-Arab-Latn-2004.js +0 -7
- package/src/maps/odni-ara-Arab-Latn-2015.js +0 -10
- package/src/maps/odni-aze-Cyrl-Latn-2015.js +0 -18
- package/src/maps/odni-bel-Cyrl-Latn-2015.js +0 -8
- package/src/maps/odni-bul-Cyrl-Latn-2005.js +0 -8
- package/src/maps/odni-bul-Cyrl-Latn-2015.js +0 -13
- package/src/maps/odni-che-Cyrl-Latn-2015.js +0 -13
- package/src/maps/odni-fas-Arab-Latn-2004.js +0 -8
- package/src/maps/odni-fas-Arab-Latn-2015.js +0 -8
- package/src/maps/odni-hin-Deva-Latn-2004.js +0 -8
- package/src/maps/odni-hin-Deva-Latn-2015.js +0 -8
- package/src/maps/odni-kat-Geor-Latn-2015.js +0 -8
- package/src/maps/odni-kaz-Cyrl-Latn-2015.js +0 -20
- package/src/maps/odni-kir-Cyrl-Latn-2015.js +0 -18
- package/src/maps/odni-kor-Hang-Latn-2015.js +0 -92
- package/src/maps/odni-mkd-Cyrl-Latn-2005.js +0 -7
- package/src/maps/odni-mkd-Cyrl-Latn-2015.js +0 -8
- package/src/maps/odni-prs-Arab-Latn-2004.js +0 -9
- package/src/maps/odni-prs-Arab-Latn-2015.js +0 -9
- package/src/maps/odni-pus-Arab-Latn-2011.js +0 -10
- package/src/maps/odni-rus-Cyrl-Latn-2015.js +0 -8
- package/src/maps/odni-srp-Cyrl-Latn-2005.js +0 -7
- package/src/maps/odni-srp-Cyrl-Latn-2015.js +0 -8
- package/src/maps/odni-tat-Cyrl-Latn-2015.js +0 -19
- package/src/maps/odni-tgk-Cyrl-Latn-2015.js +0 -21
- package/src/maps/odni-tuk-Cyrl-Latn-2015.js +0 -13
- package/src/maps/odni-uig-Cyrl-Latn-2015.js +0 -17
- package/src/maps/odni-ukr-Cyrl-Latn-2015.js +0 -9
- package/src/maps/odni-urd-Arab-Latn-2015.js +0 -8
- package/src/maps/odni-uzb-Cyrl-Latn-2015.js +0 -13
- package/src/maps/posix.js +0 -5
- package/src/maps/sac-zho-Hans-Latn-1979.js +0 -8
- package/src/maps/sasm-mon-Mong-Latn-general-1978.js +0 -8
- package/src/maps/sasm-mon-Mong-Latn-phonetic-1978.js +0 -9
- package/src/maps/ses-ara-Arab-Latn-1930.js +0 -10
- package/src/maps/stategeocadastre-ukr-Cyrl-Latn-1993.js +0 -19
- package/src/maps/ua-ukr-Cyrl-Latn-1996.js +0 -21
- package/src/maps/ua-ukr-Cyrl-Latn-2007.js +0 -16
- package/src/maps/ua-ukr-Cyrl-Latn-2010.js +0 -11
- package/src/maps/un-amh-Ethi-Latn-2016.js +0 -9
- package/src/maps/un-ara-Arab-Latn-1971.js +0 -13
- package/src/maps/un-ara-Arab-Latn-1972.js +0 -13
- package/src/maps/un-ara-Arab-Latn-2017.js +0 -24
- package/src/maps/un-asm-Beng-Latn-1972.js +0 -50
- package/src/maps/un-bel-Cyrl-Latn-2007.js +0 -7
- package/src/maps/un-ben-Beng-Latn-2016.js +0 -8
- package/src/maps/un-bul-Cyrl-Latn-1977.js +0 -14
- package/src/maps/un-ell-Grek-Latn-1987-phonetic.js +0 -83
- package/src/maps/un-ell-Grek-Latn-1987-tl.js +0 -7
- package/src/maps/un-ell-Grek-Latn-1987-ts.js +0 -7
- package/src/maps/un-guj-Gujr-Latn-1972.js +0 -45
- package/src/maps/un-hin-Deva-Latn-2016.js +0 -91
- package/src/maps/un-kan-Kana-Latn-2016.js +0 -45
- package/src/maps/un-mal-Mlym-Latn-1972.js +0 -48
- package/src/maps/un-mar-Deva-Latn-2016.js +0 -11
- package/src/maps/un-mkd-Cyrl-Latn-1977.js +0 -21
- package/src/maps/un-mon-Mong-Latn-general-2013.js +0 -7
- package/src/maps/un-mon-Mong-Latn-phonetic-2013.js +0 -7
- package/src/maps/un-nep-Deva-Latn-1972.js +0 -91
- package/src/maps/un-nep-Deva-Latn-2013.js +0 -7
- package/src/maps/un-ori-Orya-Latn-1972.js +0 -48
- package/src/maps/un-pan-Guru-Latn-1972.js +0 -87
- package/src/maps/un-prs-Arab-Latn-1967.js +0 -11
- package/src/maps/un-rus-Cyrl-Latn-1987.js +0 -9
- package/src/maps/un-sin-Sinh-Latn-1972.js +0 -46
- package/src/maps/un-srp-Cyrl-Latn-1997.js +0 -7
- package/src/maps/un-tam-Taml-Latn-1972.js +0 -34
- package/src/maps/un-tel-Telu-Latn-1972.js +0 -46
- package/src/maps/un-ukr-Cyrl-Latn-1998.js +0 -10
- package/src/maps/un-ukr-Cyrl-Latn-2012.js +0 -7
- package/src/maps/un-urd-Arab-Latn-1972.js +0 -25
- package/src/maps/unicode.js +0 -7
- package/src/maps/var-Cyrl.js +0 -7
- package/src/maps/var-amh-Ethi-Latn-eae-2003.js +0 -8
- package/src/maps/var-gez-Ethi-Latn-eae-2003.js +0 -7
- package/src/maps/var-hin-Deva-Latn-hunterian-1872.js +0 -12
- package/src/maps/var-jpn-Hrkt-Latn-hepburn-1886.js +0 -18
- package/src/maps/var-jpn-Hrkt-Latn-hepburn-1954.js +0 -17
- package/src/maps/var-kor-Hang-Hang-jamo.js +0 -8
- package/src/maps/var-kor-Hang-Latn-mr-1939.js +0 -355
- package/src/maps/var-kor-Kore-Hang-2013.js +0 -8
- package/src/maps/var-kor-Kore-Latn-mr-1939.js +0 -10
- package/src/maps/var-kor.js +0 -19
- package/src/maps/var-mar-Deva-Latn-hunterian-1872.js +0 -7
- package/src/maps/var-mon-Mong-Latn-1930.js +0 -8
- package/src/maps/var-mon-Mong-Latn-lessing.js +0 -14
- package/src/maps/var-mon-Mong-Latn-vpmc.js +0 -10
- package/src/maps/var-pra-Deva-Latn-iast-1912.js +0 -7
- package/src/maps/var-san-Deva-Latn-iast-1912.js +0 -9
- package/src/maps/var-zho-Hani-Latn-wd-1979.js +0 -13
- package/src/stdlib.js +0 -294
- package/test/test.js +0 -26
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile-item.js","sourceRoot":"","sources":["../../src/runtime/compile-item.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mutable execution context — passed through interpreter invocations.
|
|
3
|
+
*
|
|
4
|
+
* Holds the in-flight string, the active compiled map, and the alias
|
|
5
|
+
* resolution cache. Pure data; mutation happens only via well-defined
|
|
6
|
+
* helpers so behaviour stays predictable.
|
|
7
|
+
*/
|
|
8
|
+
import type { CompiledMap, Item } from "../types.js";
|
|
9
|
+
import type { MapLoader } from "../loader.js";
|
|
10
|
+
export declare class ExecutionContext {
|
|
11
|
+
/** Current working string the interpreter is transforming. */
|
|
12
|
+
current: string;
|
|
13
|
+
/** Map currently being executed. */
|
|
14
|
+
readonly map: CompiledMap;
|
|
15
|
+
/** Optional loader — used to resolve run-rule dependencies. */
|
|
16
|
+
private readonly loader;
|
|
17
|
+
/** Lazily-resolved aliases. */
|
|
18
|
+
private readonly aliasCache;
|
|
19
|
+
/** Function cache so repeated function calls don't re-resolve. */
|
|
20
|
+
readonly functions: CompiledMap["functions"];
|
|
21
|
+
constructor(map: CompiledMap, initial: string, loader?: MapLoader);
|
|
22
|
+
resolveAlias(name: string): Item | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Spawn a new context for a different map (used by `run` rule with docName).
|
|
25
|
+
* Reuses the same loader; fresh alias cache.
|
|
26
|
+
*/
|
|
27
|
+
withMap(map: CompiledMap): ExecutionContext;
|
|
28
|
+
/**
|
|
29
|
+
* Load a dependency map via the configured loader. Throws if no loader.
|
|
30
|
+
*/
|
|
31
|
+
loadDependency(systemCode: string): CompiledMap;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/runtime/context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,qBAAa,gBAAgB;IAC3B,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAA;IAEf,oCAAoC;IACpC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAA;IAEzB,+DAA+D;IAC/D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAE9C,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IAErD,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;gBAEhC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS;IAOjE,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAuB5C;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,gBAAgB;IAI3C;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW;CAMhD"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mutable execution context — passed through interpreter invocations.
|
|
3
|
+
*
|
|
4
|
+
* Holds the in-flight string, the active compiled map, and the alias
|
|
5
|
+
* resolution cache. Pure data; mutation happens only via well-defined
|
|
6
|
+
* helpers so behaviour stays predictable.
|
|
7
|
+
*/
|
|
8
|
+
export class ExecutionContext {
|
|
9
|
+
/** Current working string the interpreter is transforming. */
|
|
10
|
+
current;
|
|
11
|
+
/** Map currently being executed. */
|
|
12
|
+
map;
|
|
13
|
+
/** Optional loader — used to resolve run-rule dependencies. */
|
|
14
|
+
loader;
|
|
15
|
+
/** Lazily-resolved aliases. */
|
|
16
|
+
aliasCache = new Map();
|
|
17
|
+
/** Function cache so repeated function calls don't re-resolve. */
|
|
18
|
+
functions;
|
|
19
|
+
constructor(map, initial, loader) {
|
|
20
|
+
this.map = map;
|
|
21
|
+
this.current = initial;
|
|
22
|
+
this.functions = map.functions;
|
|
23
|
+
this.loader = loader;
|
|
24
|
+
}
|
|
25
|
+
resolveAlias(name) {
|
|
26
|
+
if (this.aliasCache.has(name))
|
|
27
|
+
return this.aliasCache.get(name);
|
|
28
|
+
// Try the current map's aliases first
|
|
29
|
+
let resolved = this.map.aliases.get(name);
|
|
30
|
+
// If not found, try dependency maps' aliases (transitive resolution)
|
|
31
|
+
if (!resolved && this.loader) {
|
|
32
|
+
for (const dep of this.map.dependencies) {
|
|
33
|
+
try {
|
|
34
|
+
const depMap = this.loader.load(dep);
|
|
35
|
+
const depAlias = depMap.aliases.get(name);
|
|
36
|
+
if (depAlias) {
|
|
37
|
+
resolved = depAlias;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// dependency not loadable; skip
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (resolved)
|
|
47
|
+
this.aliasCache.set(name, resolved);
|
|
48
|
+
return resolved;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Spawn a new context for a different map (used by `run` rule with docName).
|
|
52
|
+
* Reuses the same loader; fresh alias cache.
|
|
53
|
+
*/
|
|
54
|
+
withMap(map) {
|
|
55
|
+
return new ExecutionContext(map, this.current, this.loader);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Load a dependency map via the configured loader. Throws if no loader.
|
|
59
|
+
*/
|
|
60
|
+
loadDependency(systemCode) {
|
|
61
|
+
if (!this.loader) {
|
|
62
|
+
throw new Error(`Cannot resolve dependency ${systemCode}: no loader configured`);
|
|
63
|
+
}
|
|
64
|
+
return this.loader.load(systemCode);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/runtime/context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,MAAM,OAAO,gBAAgB;IAC3B,8DAA8D;IAC9D,OAAO,CAAQ;IAEf,oCAAoC;IAC3B,GAAG,CAAa;IAEzB,+DAA+D;IAC9C,MAAM,CAAuB;IAE9C,+BAA+B;IACd,UAAU,GAAG,IAAI,GAAG,EAAgB,CAAA;IAErD,kEAAkE;IACzD,SAAS,CAA0B;IAE5C,YAAY,GAAgB,EAAE,OAAe,EAAE,MAAkB;QAC/D,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC/D,sCAAsC;QACtC,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACzC,qEAAqE;QACrE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;gBACxC,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;oBACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;oBACzC,IAAI,QAAQ,EAAE,CAAC;wBACb,QAAQ,GAAG,QAAQ,CAAA;wBACnB,MAAK;oBACP,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,gCAAgC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,QAAQ;YAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QACjD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,GAAgB;QACtB,OAAO,IAAI,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAC7D,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,UAAkB;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,UAAU,wBAAwB,CAAC,CAAA;QAClF,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACrC,CAAC;CACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rule executors — one pure function per Rule kind.
|
|
3
|
+
*
|
|
4
|
+
* Adding a new Rule kind:
|
|
5
|
+
* 1. Add a variant to `Rule` in `types.ts`
|
|
6
|
+
* 2. Register an executor here via the `executors` map
|
|
7
|
+
*
|
|
8
|
+
* Existing executors never need to change (OCP).
|
|
9
|
+
*/
|
|
10
|
+
import type { Item, Rule } from "../types.js";
|
|
11
|
+
import type { ExecutionContext } from "./context.js";
|
|
12
|
+
type RuleKind = Rule["kind"];
|
|
13
|
+
/** Dispatch a Rule to its registered executor. O(1) lookup. */
|
|
14
|
+
export declare function executeRule<K extends RuleKind>(rule: Extract<Rule, {
|
|
15
|
+
kind: K;
|
|
16
|
+
}>, ctx: ExecutionContext): void;
|
|
17
|
+
export type { Item };
|
|
18
|
+
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAW,MAAM,aAAa,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAqBpD,KAAK,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;AAwO5B,+DAA+D;AAC/D,wBAAgB,WAAW,CAAC,CAAC,SAAS,QAAQ,EAC5C,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,EAChC,GAAG,EAAE,gBAAgB,GACpB,IAAI,CAGN;AAGD,YAAY,EAAE,IAAI,EAAE,CAAA"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rule executors — one pure function per Rule kind.
|
|
3
|
+
*
|
|
4
|
+
* Adding a new Rule kind:
|
|
5
|
+
* 1. Add a variant to `Rule` in `types.ts`
|
|
6
|
+
* 2. Register an executor here via the `executors` map
|
|
7
|
+
*
|
|
8
|
+
* Existing executors never need to change (OCP).
|
|
9
|
+
*/
|
|
10
|
+
import { compileItem, compileToLiteral, expandFromLiterals, maxLengthOfItem, } from "./compile-item.js";
|
|
11
|
+
import { MapLogicError } from "../errors.js";
|
|
12
|
+
import { compileParallelTree, parallelReplaceTree, parallelMegaregexp, downcase, upcase, titleCase, separate, compose, decompose, } from "../stdlib.js";
|
|
13
|
+
/** Built-in function registry. Mirrors Interscript.functions.* in Ruby. */
|
|
14
|
+
const BUILTIN_FUNCTIONS = {
|
|
15
|
+
downcase,
|
|
16
|
+
upcase,
|
|
17
|
+
title_case: (i, o) => titleCase(i, o ?? {}),
|
|
18
|
+
separate: (i, o) => separate(i, o ?? {}),
|
|
19
|
+
compose,
|
|
20
|
+
decompose,
|
|
21
|
+
};
|
|
22
|
+
function resolveFunction(ctx, name) {
|
|
23
|
+
const fromMap = ctx.functions.get(name)?.impl;
|
|
24
|
+
if (fromMap)
|
|
25
|
+
return fromMap;
|
|
26
|
+
const builtin = BUILTIN_FUNCTIONS[name];
|
|
27
|
+
if (builtin)
|
|
28
|
+
return builtin;
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
const executors = {
|
|
32
|
+
sub: (rule, ctx) => executeSubRule(rule, ctx),
|
|
33
|
+
run: (rule, ctx) => {
|
|
34
|
+
// If docName is set, resolve via the loader (dependency map).
|
|
35
|
+
// Otherwise look up the stage in the current map.
|
|
36
|
+
const targetMap = rule.docName ? ctx.loadDependency(rule.docName) : ctx.map;
|
|
37
|
+
const target = targetMap.stages.find((s) => s.name === rule.stage);
|
|
38
|
+
if (!target)
|
|
39
|
+
throw new MapLogicError(`Stage not found: ${rule.stage}`);
|
|
40
|
+
const inner = ctx.withMap(targetMap);
|
|
41
|
+
for (const r of target.rules) {
|
|
42
|
+
executeRule(r, inner);
|
|
43
|
+
}
|
|
44
|
+
// Propagate the transformed string back to the outer context.
|
|
45
|
+
ctx.current = inner.current;
|
|
46
|
+
},
|
|
47
|
+
funcall: (rule, ctx) => {
|
|
48
|
+
const fn = resolveFunction(ctx, rule.name);
|
|
49
|
+
if (!fn)
|
|
50
|
+
throw new MapLogicError(`Unknown function: ${rule.name}`);
|
|
51
|
+
ctx.current = fn(ctx.current, rule.kwargs ?? {});
|
|
52
|
+
},
|
|
53
|
+
parallel: (rule, ctx) => {
|
|
54
|
+
// Ruby's parallel executor tries tree mode first; if ANY rule has
|
|
55
|
+
// before/after/not_before/not_after constraints OR contains a
|
|
56
|
+
// re-only stdlib alias (boundary, line_start, word, etc.) inside
|
|
57
|
+
// `from`, the whole block falls back to a single megaregexp gsub
|
|
58
|
+
// (alternation of every rule's compiled pattern, first-match-wins
|
|
59
|
+
// at each position).
|
|
60
|
+
//
|
|
61
|
+
// Splitting at the rule level (trie for unconstrained, sequential
|
|
62
|
+
// for constrained) produces different output because the trie pass
|
|
63
|
+
// mutates the string before constrained rules can compete. We must
|
|
64
|
+
// take the WHOLE block down one path or the other.
|
|
65
|
+
const subRules = [];
|
|
66
|
+
const trailingRules = [];
|
|
67
|
+
for (const inner of rule.rules) {
|
|
68
|
+
if (inner.kind === "sub" && inner.from) {
|
|
69
|
+
subRules.push(inner);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
trailingRules.push(inner);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// A rule is tree-compatible if it has no before/after clauses AND
|
|
76
|
+
// its `from` can be expanded to literal strings (no re-only aliases
|
|
77
|
+
// like boundary, no captures). If any rule fails this check, the
|
|
78
|
+
// whole block goes through megaregexp.
|
|
79
|
+
const treeCompatible = (r) => !r.before &&
|
|
80
|
+
!r.after &&
|
|
81
|
+
!r.notBefore &&
|
|
82
|
+
!r.notAfter &&
|
|
83
|
+
expandFromLiterals(r.from, ctx) !== null;
|
|
84
|
+
const anyConstrained = subRules.some((r) => !treeCompatible(r));
|
|
85
|
+
if (!anyConstrained) {
|
|
86
|
+
// Tree mode: every from must compile to literal(s)
|
|
87
|
+
const triePairs = [];
|
|
88
|
+
for (const r of subRules) {
|
|
89
|
+
if (r.to && r.to.kind === "funcall_inline")
|
|
90
|
+
continue;
|
|
91
|
+
const toLit = r.to ? compileToLiteral(r.to, ctx) : "";
|
|
92
|
+
if (toLit === null)
|
|
93
|
+
continue;
|
|
94
|
+
const fromAlts = expandFromLiterals(r.from, ctx);
|
|
95
|
+
if (fromAlts === null)
|
|
96
|
+
continue;
|
|
97
|
+
for (const fromLit of fromAlts)
|
|
98
|
+
triePairs.push([fromLit, toLit]);
|
|
99
|
+
}
|
|
100
|
+
if (triePairs.length > 0) {
|
|
101
|
+
ctx.current = parallelReplaceTree(ctx.current, compileParallelTree(triePairs));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
// Megaregexp mode: sort by max_length desc (declaration as
|
|
106
|
+
// tiebreaker), then build one alternation regex.
|
|
107
|
+
const sorted = subRules
|
|
108
|
+
.map((r, idx) => ({
|
|
109
|
+
rule: r,
|
|
110
|
+
idx,
|
|
111
|
+
len: maxLengthOfItem(r.from, ctx) +
|
|
112
|
+
(r.before ? maxLengthOfItem(r.before, ctx) : 0) +
|
|
113
|
+
(r.after ? maxLengthOfItem(r.after, ctx) : 0) +
|
|
114
|
+
(r.notBefore ? maxLengthOfItem(r.notBefore, ctx) : 0) +
|
|
115
|
+
(r.notAfter ? maxLengthOfItem(r.notAfter, ctx) : 0) +
|
|
116
|
+
(r.priority ?? 0),
|
|
117
|
+
}))
|
|
118
|
+
.sort((a, b) => b.len - a.len || a.idx - b.idx);
|
|
119
|
+
const megaRules = sorted.map(({ rule: r }) => {
|
|
120
|
+
const from = compileItem(r.from, ctx);
|
|
121
|
+
const before = r.before ? compileItem(r.before, ctx).re : "";
|
|
122
|
+
const after = r.after ? compileItem(r.after, ctx).re : "";
|
|
123
|
+
const notBefore = r.notBefore ? compileItem(r.notBefore, ctx).re : "";
|
|
124
|
+
const notAfter = r.notAfter ? compileItem(r.notAfter, ctx).re : "";
|
|
125
|
+
const pattern = [
|
|
126
|
+
before ? `(?<=${before})` : "",
|
|
127
|
+
notBefore ? `(?<!${notBefore})` : "",
|
|
128
|
+
from.re,
|
|
129
|
+
after ? `(?=${after})` : "",
|
|
130
|
+
notAfter ? `(?!${notAfter})` : "",
|
|
131
|
+
].join("");
|
|
132
|
+
const replacement = buildReplacement(r.to, ctx);
|
|
133
|
+
const replaceFn = typeof replacement === "string"
|
|
134
|
+
? (match, _groups) => resolveTemplate(replacement, match, _groups)
|
|
135
|
+
: replacement;
|
|
136
|
+
return { pattern, replace: replaceFn };
|
|
137
|
+
});
|
|
138
|
+
ctx.current = parallelMegaregexp(ctx.current, megaRules);
|
|
139
|
+
}
|
|
140
|
+
// Non-sub rules (run/funcall/etc.) execute after the parallel pass,
|
|
141
|
+
// in declaration order.
|
|
142
|
+
for (const r of trailingRules)
|
|
143
|
+
executeRule(r, ctx);
|
|
144
|
+
},
|
|
145
|
+
sequential: (rule, ctx) => {
|
|
146
|
+
for (const inner of rule.rules) {
|
|
147
|
+
executeRule(inner, ctx);
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
function executeSubRule(rule, ctx) {
|
|
152
|
+
if (!rule.from)
|
|
153
|
+
throw new MapLogicError("Sub rule missing 'from'");
|
|
154
|
+
const from = compileItem(rule.from, ctx);
|
|
155
|
+
// `before` and `after` are lookarounds — they assert without consuming.
|
|
156
|
+
// Ruby's interpreter uses Ruby gsub with capture groups, which DOES
|
|
157
|
+
// consume the surrounding context and re-inserts it via backreferences.
|
|
158
|
+
// We use lookarounds for correctness with multi-byte scripts.
|
|
159
|
+
const before = rule.before ? compileItem(rule.before, ctx).re : "";
|
|
160
|
+
const after = rule.after ? compileItem(rule.after, ctx).re : "";
|
|
161
|
+
const notBefore = rule.notBefore ? compileItem(rule.notBefore, ctx).re : "";
|
|
162
|
+
const notAfter = rule.notAfter ? compileItem(rule.notAfter, ctx).re : "";
|
|
163
|
+
const patternParts = [];
|
|
164
|
+
if (before)
|
|
165
|
+
patternParts.push(`(?<=${before})`);
|
|
166
|
+
if (notBefore)
|
|
167
|
+
patternParts.push(`(?<!${notBefore})`);
|
|
168
|
+
patternParts.push(from.re);
|
|
169
|
+
if (after)
|
|
170
|
+
patternParts.push(`(?=${after})`);
|
|
171
|
+
if (notAfter)
|
|
172
|
+
patternParts.push(`(?!${notAfter})`);
|
|
173
|
+
let re;
|
|
174
|
+
try {
|
|
175
|
+
re = new RegExp(patternParts.join(""), "gmu");
|
|
176
|
+
}
|
|
177
|
+
catch (e) {
|
|
178
|
+
throw new MapLogicError(`Invalid pattern compiled from rule: ${patternParts.join("")}`, {
|
|
179
|
+
cause: e,
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
const replacement = buildReplacement(rule.to, ctx);
|
|
183
|
+
ctx.current = ctx.current.replace(re, typeof replacement === "string"
|
|
184
|
+
? (() => {
|
|
185
|
+
// Use function to avoid $' $` $$ special-meaning bugs in
|
|
186
|
+
// String.replace replacement strings.
|
|
187
|
+
const tmpl = replacement;
|
|
188
|
+
return (match, ...args) => resolveTemplate(tmpl, match, args);
|
|
189
|
+
})()
|
|
190
|
+
: replacement);
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Resolve a replacement template against a regex match.
|
|
194
|
+
*
|
|
195
|
+
* Handles `$1`, `$2` capture-group references. Does NOT interpret
|
|
196
|
+
* `$'`, `` $` ``, `$$` — those are literal characters in our templates.
|
|
197
|
+
*/
|
|
198
|
+
function resolveTemplate(template, match, groups) {
|
|
199
|
+
return template.replace(/\$(\d+)/g, (_, n) => {
|
|
200
|
+
const idx = parseInt(n, 10);
|
|
201
|
+
return groups[idx - 1] ?? match;
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Build the replacement string for a sub rule.
|
|
206
|
+
* Handles plain Items (use their literal form) and inline funcalls.
|
|
207
|
+
*
|
|
208
|
+
* With lookaround-based patterns (no surrounding capture groups), the
|
|
209
|
+
* replacement is simply the compiled literal of the `to` item.
|
|
210
|
+
*/
|
|
211
|
+
function buildReplacement(to, ctx) {
|
|
212
|
+
if (!to)
|
|
213
|
+
return "";
|
|
214
|
+
if (to.kind === "funcall_inline") {
|
|
215
|
+
const fn = resolveFunction(ctx, to.name);
|
|
216
|
+
if (!fn)
|
|
217
|
+
throw new MapLogicError(`Unknown inline function: ${to.name}`);
|
|
218
|
+
return (match) => fn(match);
|
|
219
|
+
}
|
|
220
|
+
const compiled = compileItem(to, ctx);
|
|
221
|
+
return compiled.literal;
|
|
222
|
+
}
|
|
223
|
+
/** Dispatch a Rule to its registered executor. O(1) lookup. */
|
|
224
|
+
export function executeRule(rule, ctx) {
|
|
225
|
+
const executor = executors[rule.kind];
|
|
226
|
+
executor(rule, ctx);
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stage execution — apply a stage's rules in sequence to the context.
|
|
3
|
+
*
|
|
4
|
+
* Pure orchestrator: builds context, dispatches to rule executors,
|
|
5
|
+
* returns the final string. Holds no state itself.
|
|
6
|
+
*
|
|
7
|
+
* Two paths:
|
|
8
|
+
* - executeStage (sync): fast path for rule-only maps. Throws if
|
|
9
|
+
* the stage contains ML funcalls (rababa/secryst).
|
|
10
|
+
* - executeStageAsync (async): handles everything including ML.
|
|
11
|
+
* Falls through to the sync path for non-ML stages (zero overhead).
|
|
12
|
+
*/
|
|
13
|
+
import type { CompiledMap } from "../types.js";
|
|
14
|
+
import type { MapLoader } from "../loader.js";
|
|
15
|
+
/** Register an additional async function name (used by ML modules). */
|
|
16
|
+
export declare function registerAsyncFunction(name: string): void;
|
|
17
|
+
/**
|
|
18
|
+
* Run a single stage by name (SYNC path). Returns the transformed string.
|
|
19
|
+
*
|
|
20
|
+
* Throws if the stage contains ML funcalls — use `executeStageAsync`
|
|
21
|
+
* for those.
|
|
22
|
+
*/
|
|
23
|
+
export declare function executeStage(map: CompiledMap, stageName: string, input: string, loader?: MapLoader): string;
|
|
24
|
+
/**
|
|
25
|
+
* Run a single stage by name (ASYNC path). Handles ML funcalls.
|
|
26
|
+
*
|
|
27
|
+
* For non-ML stages, delegates to the sync path (zero overhead).
|
|
28
|
+
*/
|
|
29
|
+
export declare function executeStageAsync(map: CompiledMap, stageName: string, input: string, loader?: MapLoader): Promise<string>;
|
|
30
|
+
//# sourceMappingURL=interpreter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpreter.d.ts","sourceRoot":"","sources":["../../src/runtime/interpreter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,aAAa,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAU7C,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAExD;AAmBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,SAAS,GACjB,MAAM,CAkBR;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,MAAM,CAAC,CAiBjB"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stage execution — apply a stage's rules in sequence to the context.
|
|
3
|
+
*
|
|
4
|
+
* Pure orchestrator: builds context, dispatches to rule executors,
|
|
5
|
+
* returns the final string. Holds no state itself.
|
|
6
|
+
*
|
|
7
|
+
* Two paths:
|
|
8
|
+
* - executeStage (sync): fast path for rule-only maps. Throws if
|
|
9
|
+
* the stage contains ML funcalls (rababa/secryst).
|
|
10
|
+
* - executeStageAsync (async): handles everything including ML.
|
|
11
|
+
* Falls through to the sync path for non-ML stages (zero overhead).
|
|
12
|
+
*/
|
|
13
|
+
import { ExecutionContext } from "./context.js";
|
|
14
|
+
import { executeRule } from "./executor.js";
|
|
15
|
+
/**
|
|
16
|
+
* Set of function names that require async execution (ML inference).
|
|
17
|
+
* Populated from the ML module registration.
|
|
18
|
+
*/
|
|
19
|
+
const ASYNC_FUNCTIONS = new Set(["rababa", "secryst"]);
|
|
20
|
+
/** Register an additional async function name (used by ML modules). */
|
|
21
|
+
export function registerAsyncFunction(name) {
|
|
22
|
+
ASYNC_FUNCTIONS.add(name);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Check if a rule list contains any async funcalls.
|
|
26
|
+
* Shallow scan — doesn't recurse into parallel/sequential groups
|
|
27
|
+
* deeper than one level (sufficient for real maps).
|
|
28
|
+
*/
|
|
29
|
+
function containsAsyncFuncalls(rules) {
|
|
30
|
+
for (const r of rules) {
|
|
31
|
+
if (r.kind === "funcall" && ASYNC_FUNCTIONS.has(r.name))
|
|
32
|
+
return true;
|
|
33
|
+
if (r.kind === "parallel" || r.kind === "sequential") {
|
|
34
|
+
for (const inner of r.rules) {
|
|
35
|
+
if (inner.kind === "funcall" && ASYNC_FUNCTIONS.has(inner.name))
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Run a single stage by name (SYNC path). Returns the transformed string.
|
|
44
|
+
*
|
|
45
|
+
* Throws if the stage contains ML funcalls — use `executeStageAsync`
|
|
46
|
+
* for those.
|
|
47
|
+
*/
|
|
48
|
+
export function executeStage(map, stageName, input, loader) {
|
|
49
|
+
const stage = map.stages.find((s) => s.name === stageName);
|
|
50
|
+
if (!stage) {
|
|
51
|
+
return input;
|
|
52
|
+
}
|
|
53
|
+
if (containsAsyncFuncalls(stage.rules)) {
|
|
54
|
+
throw new Error(`Stage "${stageName}" contains ML function calls (rababa/secryst). ` +
|
|
55
|
+
`Use transliterateAsync() instead of transliterate().`);
|
|
56
|
+
}
|
|
57
|
+
const ctx = new ExecutionContext(map, input, loader);
|
|
58
|
+
for (const rule of stage.rules) {
|
|
59
|
+
executeRule(rule, ctx);
|
|
60
|
+
}
|
|
61
|
+
return ctx.current;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Run a single stage by name (ASYNC path). Handles ML funcalls.
|
|
65
|
+
*
|
|
66
|
+
* For non-ML stages, delegates to the sync path (zero overhead).
|
|
67
|
+
*/
|
|
68
|
+
export async function executeStageAsync(map, stageName, input, loader) {
|
|
69
|
+
const stage = map.stages.find((s) => s.name === stageName);
|
|
70
|
+
if (!stage) {
|
|
71
|
+
return input;
|
|
72
|
+
}
|
|
73
|
+
// Fast path: no async functions → use the sync executor directly.
|
|
74
|
+
if (!containsAsyncFuncalls(stage.rules)) {
|
|
75
|
+
return executeStage(map, stageName, input, loader);
|
|
76
|
+
}
|
|
77
|
+
// Async path: same executors, but funcall results are awaited.
|
|
78
|
+
const ctx = new ExecutionContext(map, input, loader);
|
|
79
|
+
for (const rule of stage.rules) {
|
|
80
|
+
await executeRuleAsync(rule, ctx);
|
|
81
|
+
}
|
|
82
|
+
return ctx.current;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Async rule dispatcher. Same as `executeRule` but awaits funcall
|
|
86
|
+
* results. Only used for stages that contain async functions.
|
|
87
|
+
*
|
|
88
|
+
* All non-funcall rule kinds delegate to the sync executor (they're
|
|
89
|
+
* already synchronous). Only funcall needs special handling.
|
|
90
|
+
*/
|
|
91
|
+
async function executeRuleAsync(rule, ctx) {
|
|
92
|
+
if (rule.kind === "funcall") {
|
|
93
|
+
await executeFuncallAsync(rule, ctx);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
// All other rule kinds are sync — delegate to the existing executor.
|
|
97
|
+
// This avoids duplicating the parallel/sub/run logic (DRY).
|
|
98
|
+
executeRule(rule, ctx);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Async funcall handler. Looks up the function, calls it, and awaits
|
|
102
|
+
* the result. Handles both sync functions (transparent — Promise.resolve)
|
|
103
|
+
* and async functions (rababa, secryst).
|
|
104
|
+
*
|
|
105
|
+
* OCP: doesn't hardcode which functions are async. Just awaits
|
|
106
|
+
* whatever the function returns, sync or not.
|
|
107
|
+
*/
|
|
108
|
+
async function executeFuncallAsync(rule, ctx) {
|
|
109
|
+
// Rababa has its own config-keyed model registry (see stdlib/ml.ts).
|
|
110
|
+
// The config "200" maps to a specific model URL and rababa-specific
|
|
111
|
+
// config — bypass the generic ML registry, which is keyed by task
|
|
112
|
+
// version and doesn't know about rababa configs.
|
|
113
|
+
if (rule.name === "rababa") {
|
|
114
|
+
const { rababa } = await import("../stdlib/ml.js");
|
|
115
|
+
ctx.current = await rababa(ctx.current, rule.kwargs);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
// Other ASYNC_FUNCTIONS (secryst, etc.) still go through the generic
|
|
119
|
+
// ML registry.
|
|
120
|
+
if (ASYNC_FUNCTIONS.has(rule.name)) {
|
|
121
|
+
const { loadModel } = await import("../ml/index.js");
|
|
122
|
+
const modelId = (rule.kwargs?.config ?? rule.kwargs?.model ?? "default");
|
|
123
|
+
const model = await loadModel({ kind: rule.name, id: modelId });
|
|
124
|
+
ctx.current = await model.transform(ctx.current);
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
// Fall back to the sync funcall executor for all other functions.
|
|
128
|
+
executeRule({ kind: "funcall", name: rule.name, kwargs: rule.kwargs }, ctx);
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=interpreter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpreter.js","sourceRoot":"","sources":["../../src/runtime/interpreter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rababa function — wired into the stdlib function registry.
|
|
3
|
+
*
|
|
4
|
+
* Called from rule executors when a map invokes `rababa config: "200"`.
|
|
5
|
+
* Loads the model on first use via the ML registry.
|
|
6
|
+
*
|
|
7
|
+
* Config keys (e.g. "200") map to a (model URL, rababa-specific config)
|
|
8
|
+
* pair via a registry. The registry is populated from
|
|
9
|
+
* `interscript-maps.yaml`'s `rababa-configs` section, the same source
|
|
10
|
+
* the Ruby runtime uses. Callers can override at runtime via
|
|
11
|
+
* `setRababaConfig(key, ...)`.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Rababa config — mirrors the YAML structure of `rababa-configs:` in
|
|
15
|
+
* `interscript-maps.yaml`. The `model` is a URL to the ONNX file; the
|
|
16
|
+
* `config` is passed to the diacritizer.
|
|
17
|
+
*/
|
|
18
|
+
export interface RababaConfigEntry {
|
|
19
|
+
readonly model: string;
|
|
20
|
+
readonly config: Readonly<Record<string, unknown>>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Register or replace a rababa config entry. Useful for tests and for
|
|
24
|
+
* air-gapped environments that need to point at a local model file.
|
|
25
|
+
*
|
|
26
|
+
* setRababaConfig("200", {
|
|
27
|
+
* model: "file:///path/to/model.onnx",
|
|
28
|
+
* config: { max_len: 200, batch_size: 32, ... },
|
|
29
|
+
* })
|
|
30
|
+
*/
|
|
31
|
+
export declare function setRababaConfig(key: string, entry: RababaConfigEntry): void;
|
|
32
|
+
/**
|
|
33
|
+
* Reset the rababa config registry to the defaults shipped with the
|
|
34
|
+
* library. Tests use this to undo `setRababaConfig` between cases.
|
|
35
|
+
*/
|
|
36
|
+
export declare function resetRababaConfigs(): void;
|
|
37
|
+
/**
|
|
38
|
+
* Run rababa diacritization on the input.
|
|
39
|
+
*
|
|
40
|
+
* Maps call this as `rababa config: "200"` (the Interscript DSL).
|
|
41
|
+
* The function registry in `executor.ts` dispatches funcalls with
|
|
42
|
+
* `name: "rababa"` to this function.
|
|
43
|
+
*
|
|
44
|
+
* Async — the function executor must use `transliterateAsync` when
|
|
45
|
+
* a map's stage contains a rababa call (see #67).
|
|
46
|
+
*/
|
|
47
|
+
export declare function rababa(input: string, opts?: {
|
|
48
|
+
config?: string;
|
|
49
|
+
}): Promise<string>;
|
|
50
|
+
/**
|
|
51
|
+
* Strip haraqat from text. Pure — no model required.
|
|
52
|
+
* Used by `rababa_reverse` in maps.
|
|
53
|
+
*/
|
|
54
|
+
export declare function rababaReverse(input: string): string;
|
|
55
|
+
//# sourceMappingURL=ml.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ml.d.ts","sourceRoot":"","sources":["../../src/stdlib/ml.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACnD;AAkBD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAE3E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAqDD;;;;;;;;;GASG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAI3F;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD"}
|