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.
- 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-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-per-Arab-Latn-1997.js +0 -11
- 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":"detector.js","sourceRoot":"","sources":["../src/detector.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
ADDED
|
@@ -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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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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
|