@bkm016/calcite 0.0.0-stage → 0.2.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 +21 -0
- package/README.md +416 -2
- package/THIRD_PARTY_NOTICES.md +44 -0
- package/dist/accounts.d.ts +46 -0
- package/dist/accounts.js +194 -0
- package/dist/accounts.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +332 -0
- package/dist/cli.js.map +1 -0
- package/dist/client-core.d.ts +66 -0
- package/dist/client-core.js +530 -0
- package/dist/client-core.js.map +1 -0
- package/dist/client.d.ts +127 -0
- package/dist/client.js +185 -0
- package/dist/client.js.map +1 -0
- package/dist/display.d.ts +23 -0
- package/dist/display.js +164 -0
- package/dist/display.js.map +1 -0
- package/dist/hmc.d.ts +53 -0
- package/dist/hmc.js +168 -0
- package/dist/hmc.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/install.d.ts +48 -0
- package/dist/install.js +119 -0
- package/dist/install.js.map +1 -0
- package/dist/java.d.ts +37 -0
- package/dist/java.js +222 -0
- package/dist/java.js.map +1 -0
- package/dist/loaders.d.ts +41 -0
- package/dist/loaders.js +86 -0
- package/dist/loaders.js.map +1 -0
- package/dist/lock.d.ts +13 -0
- package/dist/lock.js +79 -0
- package/dist/lock.js.map +1 -0
- package/dist/log.d.ts +13 -0
- package/dist/log.js +20 -0
- package/dist/log.js.map +1 -0
- package/dist/manager.d.ts +15 -0
- package/dist/manager.js +65 -0
- package/dist/manager.js.map +1 -0
- package/dist/mcp.d.ts +13 -0
- package/dist/mcp.js +377 -0
- package/dist/mcp.js.map +1 -0
- package/dist/mods.d.ts +21 -0
- package/dist/mods.js +135 -0
- package/dist/mods.js.map +1 -0
- package/dist/mojang.d.ts +54 -0
- package/dist/mojang.js +73 -0
- package/dist/mojang.js.map +1 -0
- package/dist/names.d.ts +53 -0
- package/dist/names.js +267 -0
- package/dist/names.js.map +1 -0
- package/dist/net.d.ts +26 -0
- package/dist/net.js +286 -0
- package/dist/net.js.map +1 -0
- package/dist/options.d.ts +14 -0
- package/dist/options.js +50 -0
- package/dist/options.js.map +1 -0
- package/dist/paths.d.ts +29 -0
- package/dist/paths.js +49 -0
- package/dist/paths.js.map +1 -0
- package/dist/probe-server.d.ts +28 -0
- package/dist/probe-server.js +132 -0
- package/dist/probe-server.js.map +1 -0
- package/dist/types.d.ts +235 -0
- package/dist/types.js +25 -0
- package/dist/types.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.js +11 -0
- package/dist/version.js.map +1 -0
- package/dist/zip.d.ts +5 -0
- package/dist/zip.js +65 -0
- package/dist/zip.js.map +1 -0
- package/package.json +57 -4
- package/vendor/calcite-probe.jar +0 -0
package/dist/java.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"java.js","sourceRoot":"","sources":["../src/java.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAG9C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAW3B,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;AAE/D,qFAAqF;AACrF,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,MAAM,IAAI,GAAG,sCAAsC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAY;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC/B,OAAO,GAAG,CAAC,iBAAiB,CAAC;QAC7B,OAAO,GAAG,CAAC,aAAa,CAAC;QACzB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,2BAA2B,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1H,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,GAAW;IAChC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,mGAAmG;AACnG,KAAK,UAAU,oBAAoB,CAAC,KAAmB;IACrD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,WAAW,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxH,CAAC;IACD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1G,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,KAAK,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACtI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC3G,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,mCAAmC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,kCAAkC,CAAC,CAAC,CAAC;IACpH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAC5H,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/D,mFAAmF;IACnF,KAAK,MAAM,OAAO,IAAI,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAElG,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;YACvF,IAAI,UAAU,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3B,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAmB;IACxD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAoB,EAAE;QAC5C,IAAI,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACrB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,QAAuB,EAAE,KAAa;IAC7D,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IACxD,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACjC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,UAAU;IACjB,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,OAAO;YACV,OAAO,SAAS,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC;QACf,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB;YACE,MAAM,IAAI,KAAK,CAAC,+CAA+C,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED,SAAS,YAAY;IACnB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,KAAK;YACR,OAAO,KAAK,CAAC;QACf,KAAK,OAAO;YACV,OAAO,SAAS,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,KAAK,CAAC;QACf;YACE,MAAM,IAAI,KAAK,CAAC,+CAA+C,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAOD,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAmB,EAAE,KAAa;IACnE,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;IACxB,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IAClE,OAAO,QAAQ,CAAC,GAAG,MAAM,OAAO,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,IAAI,KAAgC,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,6CAA6C,KAAK,yBAAyB,IAAI,eAAe,KAAK,OAAO,EAAE,iBAAiB,CAAC;YAC1I,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACpE,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,KAAK;gBAAE,MAAM;QACnB,CAAC;QACD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,KAAK,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAC3E,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;QACjC,GAAG,CAAC,IAAI,CAAC,uBAAuB,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,GAAG,MAAM,UAAU,CAAC;QACpC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,kEAAkE;QAClE,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QACtF,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,MAAM,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9B,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,oCAAoC,MAAM,EAAE,CAAC,CAAC;QACrG,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,KAAK,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;YACvF,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,CAAC;oBAAE,OAAO,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAWD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAmB,EAAE,KAAa,EAAE,OAA0B,EAAE;IAC/F,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3E,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAChG,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,8DAA8D,CAAC,CAAC;IAC/H,CAAC;IACD,OAAO,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAEtC,yGAAyG;AACzG,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,KAAmB,EAAE,OAAoC,EAAE;IAClG,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,gBAAgB,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAC5E,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,yBAAyB,mBAAmB,iEAAiE,CAAC,CAAC;IACjI,CAAC;IACD,OAAO,YAAY,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { CalcitePaths } from './paths.js';
|
|
2
|
+
export declare const LOADERS: readonly ["fabric", "forge", "neoforge"];
|
|
3
|
+
export type LoaderKind = (typeof LOADERS)[number];
|
|
4
|
+
/** A requested mod loader: "fabric", "neoforge@21.11.45", ... */
|
|
5
|
+
export interface LoaderSpec {
|
|
6
|
+
kind: LoaderKind;
|
|
7
|
+
/** Loader version; the newest installed (or HeadlessMC's default) when omitted. */
|
|
8
|
+
build?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface LoaderVersionJson {
|
|
11
|
+
id: string;
|
|
12
|
+
inheritsFrom?: string;
|
|
13
|
+
mainClass?: string;
|
|
14
|
+
libraries?: {
|
|
15
|
+
name: string;
|
|
16
|
+
}[];
|
|
17
|
+
arguments?: {
|
|
18
|
+
game?: unknown[];
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/** A loader version installed in the shared minecraft/versions directory. */
|
|
22
|
+
export interface InstalledLoader {
|
|
23
|
+
kind: LoaderKind;
|
|
24
|
+
build: string;
|
|
25
|
+
/** Version id of the loader profile, e.g. "fabric-loader-0.19.5-1.21.11". */
|
|
26
|
+
id: string;
|
|
27
|
+
json: LoaderVersionJson;
|
|
28
|
+
}
|
|
29
|
+
/** Parses "fabric", "fabric@0.19.5", "neoforge@21.11.45", "forge@47.4.26"; "vanilla"/"none"/"" mean no loader. */
|
|
30
|
+
export declare function parseLoader(spec: string | undefined): LoaderSpec | undefined;
|
|
31
|
+
export declare function formatLoader(spec: LoaderSpec): string;
|
|
32
|
+
/** The loader build encoded in a version id of {@code kind} for Minecraft {@code mc}, if it is one. */
|
|
33
|
+
export declare function loaderBuild(kind: LoaderKind, id: string, mc: string): string | undefined;
|
|
34
|
+
/** Orders loader builds numerically ("0.19.10" > "0.19.5", "21.11.45" > "21.11.9"). */
|
|
35
|
+
export declare function compareBuilds(a: string, b: string): number;
|
|
36
|
+
/** Loader versions of {@code kind} installed for Minecraft {@code mc}, newest first. */
|
|
37
|
+
export declare function installedLoaders(paths: CalcitePaths, mc: string, kind: LoaderKind): Promise<InstalledLoader[]>;
|
|
38
|
+
/** The installed loader matching {@code spec} (exact build, or the newest one when no build is given). */
|
|
39
|
+
export declare function findLoader(paths: CalcitePaths, mc: string, spec: LoaderSpec): Promise<InstalledLoader | undefined>;
|
|
40
|
+
/** Value of a game argument such as "--fml.mcpVersion" in a loader profile. */
|
|
41
|
+
export declare function loaderGameArg(json: LoaderVersionJson, name: string): string | undefined;
|
package/dist/loaders.js
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { readdir, readFile } from 'node:fs/promises';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { CalciteError } from './types.js';
|
|
4
|
+
export const LOADERS = ['fabric', 'forge', 'neoforge'];
|
|
5
|
+
/** Parses "fabric", "fabric@0.19.5", "neoforge@21.11.45", "forge@47.4.26"; "vanilla"/"none"/"" mean no loader. */
|
|
6
|
+
export function parseLoader(spec) {
|
|
7
|
+
const s = spec?.trim().toLowerCase();
|
|
8
|
+
if (!s || s === 'vanilla' || s === 'none')
|
|
9
|
+
return undefined;
|
|
10
|
+
const at = s.indexOf('@');
|
|
11
|
+
const kind = (at < 0 ? s : s.slice(0, at));
|
|
12
|
+
const build = at < 0 ? undefined : s.slice(at + 1);
|
|
13
|
+
if (!LOADERS.includes(kind)) {
|
|
14
|
+
throw new CalciteError('bad_loader', `Unknown mod loader "${spec}" (supported: ${LOADERS.join(', ')}, optionally with @version)`);
|
|
15
|
+
}
|
|
16
|
+
if (build !== undefined && !/^[a-z0-9][a-z0-9._+-]{0,63}$/.test(build)) {
|
|
17
|
+
throw new CalciteError('bad_loader', `Invalid ${kind} version "${build}"`);
|
|
18
|
+
}
|
|
19
|
+
return { kind, build };
|
|
20
|
+
}
|
|
21
|
+
export function formatLoader(spec) {
|
|
22
|
+
return spec.build ? `${spec.kind}@${spec.build}` : spec.kind;
|
|
23
|
+
}
|
|
24
|
+
/** The loader build encoded in a version id of {@code kind} for Minecraft {@code mc}, if it is one. */
|
|
25
|
+
export function loaderBuild(kind, id, mc) {
|
|
26
|
+
const escaped = mc.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
27
|
+
const pattern = {
|
|
28
|
+
fabric: new RegExp(`^fabric-loader-(.+)-${escaped}$`),
|
|
29
|
+
forge: new RegExp(`^${escaped}-forge-(.+)$`),
|
|
30
|
+
neoforge: /^neoforge-(.+)$/,
|
|
31
|
+
}[kind];
|
|
32
|
+
return pattern.exec(id)?.[1];
|
|
33
|
+
}
|
|
34
|
+
/** Orders loader builds numerically ("0.19.10" > "0.19.5", "21.11.45" > "21.11.9"). */
|
|
35
|
+
export function compareBuilds(a, b) {
|
|
36
|
+
const pa = a.split(/[.+-]/);
|
|
37
|
+
const pb = b.split(/[.+-]/);
|
|
38
|
+
for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
|
|
39
|
+
const x = pa[i] ?? '';
|
|
40
|
+
const y = pb[i] ?? '';
|
|
41
|
+
const nx = /^\d+$/.test(x) ? Number(x) : NaN;
|
|
42
|
+
const ny = /^\d+$/.test(y) ? Number(y) : NaN;
|
|
43
|
+
const d = !Number.isNaN(nx) && !Number.isNaN(ny) ? nx - ny : x.localeCompare(y);
|
|
44
|
+
if (d !== 0)
|
|
45
|
+
return d;
|
|
46
|
+
}
|
|
47
|
+
return 0;
|
|
48
|
+
}
|
|
49
|
+
/** Loader versions of {@code kind} installed for Minecraft {@code mc}, newest first. */
|
|
50
|
+
export async function installedLoaders(paths, mc, kind) {
|
|
51
|
+
const dir = join(paths.minecraft, 'versions');
|
|
52
|
+
let ids;
|
|
53
|
+
try {
|
|
54
|
+
ids = await readdir(dir);
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return [];
|
|
58
|
+
}
|
|
59
|
+
const found = [];
|
|
60
|
+
for (const id of ids) {
|
|
61
|
+
const build = loaderBuild(kind, id, mc);
|
|
62
|
+
if (!build)
|
|
63
|
+
continue;
|
|
64
|
+
try {
|
|
65
|
+
const json = JSON.parse(await readFile(join(dir, id, `${id}.json`), 'utf8'));
|
|
66
|
+
if (json.inheritsFrom === mc)
|
|
67
|
+
found.push({ kind, build, id, json });
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
// incomplete install
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return found.sort((a, b) => compareBuilds(b.build, a.build));
|
|
74
|
+
}
|
|
75
|
+
/** The installed loader matching {@code spec} (exact build, or the newest one when no build is given). */
|
|
76
|
+
export async function findLoader(paths, mc, spec) {
|
|
77
|
+
const all = await installedLoaders(paths, mc, spec.kind);
|
|
78
|
+
return spec.build ? all.find((l) => l.build === spec.build) : all[0];
|
|
79
|
+
}
|
|
80
|
+
/** Value of a game argument such as "--fml.mcpVersion" in a loader profile. */
|
|
81
|
+
export function loaderGameArg(json, name) {
|
|
82
|
+
const args = json.arguments?.game ?? [];
|
|
83
|
+
const i = args.indexOf(name);
|
|
84
|
+
return i >= 0 && typeof args[i + 1] === 'string' ? args[i + 1] : undefined;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=loaders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loaders.js","sourceRoot":"","sources":["../src/loaders.ts"],"names":[],"mappings":"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"}
|
package/dist/lock.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface LockOptions {
|
|
2
|
+
/** How long to wait for a busy lock (0 = fail immediately). */
|
|
3
|
+
timeoutMs?: number;
|
|
4
|
+
/** A lock older than this is considered abandoned even if its owner pid is alive (pid reuse). */
|
|
5
|
+
staleMs?: number;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Cross-process lock based on an atomic mkdir. A lock whose owner process is gone (or that is older than
|
|
9
|
+
* {@code staleMs}) is taken over. Returns the release function.
|
|
10
|
+
*/
|
|
11
|
+
export declare function acquireLock(dir: string, { timeoutMs, staleMs }?: LockOptions): Promise<() => Promise<void>>;
|
|
12
|
+
/** Runs {@code fn} while holding the lock. */
|
|
13
|
+
export declare function withLock<T>(dir: string, fn: () => Promise<T>, opts?: LockOptions): Promise<T>;
|
package/dist/lock.js
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { mkdir, readFile, rm, stat, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
|
+
function alive(pid) {
|
|
4
|
+
try {
|
|
5
|
+
process.kill(pid, 0);
|
|
6
|
+
return true;
|
|
7
|
+
}
|
|
8
|
+
catch (err) {
|
|
9
|
+
return err.code === 'EPERM';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Cross-process lock based on an atomic mkdir. A lock whose owner process is gone (or that is older than
|
|
14
|
+
* {@code staleMs}) is taken over. Returns the release function.
|
|
15
|
+
*/
|
|
16
|
+
export async function acquireLock(dir, { timeoutMs = 10 * 60_000, staleMs = Infinity } = {}) {
|
|
17
|
+
const deadline = Date.now() + timeoutMs;
|
|
18
|
+
let wait = 50;
|
|
19
|
+
for (;;) {
|
|
20
|
+
try {
|
|
21
|
+
await mkdir(dir);
|
|
22
|
+
await writeFile(join(dir, 'owner'), String(process.pid));
|
|
23
|
+
let released = false;
|
|
24
|
+
return async () => {
|
|
25
|
+
if (released)
|
|
26
|
+
return;
|
|
27
|
+
released = true;
|
|
28
|
+
await rm(dir, { recursive: true, force: true });
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
const code = err.code;
|
|
33
|
+
if (code === 'ENOENT') {
|
|
34
|
+
await mkdir(dirname(dir), { recursive: true });
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
if (code !== 'EEXIST')
|
|
38
|
+
throw err;
|
|
39
|
+
}
|
|
40
|
+
let stale = false;
|
|
41
|
+
try {
|
|
42
|
+
const info = await stat(dir);
|
|
43
|
+
let owner = 0;
|
|
44
|
+
try {
|
|
45
|
+
owner = Number(await readFile(join(dir, 'owner'), 'utf8'));
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// owner not written yet
|
|
49
|
+
}
|
|
50
|
+
if (owner > 0)
|
|
51
|
+
stale = !alive(owner) || Date.now() - info.mtimeMs > staleMs;
|
|
52
|
+
else
|
|
53
|
+
stale = Date.now() - info.mtimeMs > 10_000;
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
continue; // lock vanished meanwhile
|
|
57
|
+
}
|
|
58
|
+
if (stale) {
|
|
59
|
+
await rm(dir, { recursive: true, force: true });
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
if (Date.now() >= deadline) {
|
|
63
|
+
throw new Error(`Lock is held by another process: ${dir}`);
|
|
64
|
+
}
|
|
65
|
+
await new Promise((r) => setTimeout(r, wait));
|
|
66
|
+
wait = Math.min(wait * 2, 1000);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/** Runs {@code fn} while holding the lock. */
|
|
70
|
+
export async function withLock(dir, fn, opts = {}) {
|
|
71
|
+
const release = await acquireLock(dir, { staleMs: 30 * 60_000, ...opts });
|
|
72
|
+
try {
|
|
73
|
+
return await fn();
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
await release();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=lock.js.map
|
package/dist/lock.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../src/lock.ts"],"names":[],"mappings":"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"}
|
package/dist/log.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logging. Everything goes to stderr: stdout is reserved for the MCP stdio transport and for CLI output.
|
|
3
|
+
* Level via CALCITE_LOG_LEVEL (debug|info|warn|error|silent), default info.
|
|
4
|
+
*/
|
|
5
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
|
|
6
|
+
export declare function setLogLevel(next: LogLevel): void;
|
|
7
|
+
export interface Logger {
|
|
8
|
+
debug(message: string): void;
|
|
9
|
+
info(message: string): void;
|
|
10
|
+
warn(message: string): void;
|
|
11
|
+
error(message: string): void;
|
|
12
|
+
}
|
|
13
|
+
export declare function logger(scope: string): Logger;
|
package/dist/log.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const ORDER = { debug: 10, info: 20, warn: 30, error: 40, silent: 100 };
|
|
2
|
+
let level = process.env.CALCITE_LOG_LEVEL in ORDER ? process.env.CALCITE_LOG_LEVEL : 'info';
|
|
3
|
+
export function setLogLevel(next) {
|
|
4
|
+
level = next;
|
|
5
|
+
}
|
|
6
|
+
function write(at, scope, message) {
|
|
7
|
+
if (ORDER[at] < ORDER[level])
|
|
8
|
+
return;
|
|
9
|
+
const time = new Date().toISOString().slice(11, 23);
|
|
10
|
+
process.stderr.write(`${time} ${at.toUpperCase().padEnd(5)} [${scope}] ${message}\n`);
|
|
11
|
+
}
|
|
12
|
+
export function logger(scope) {
|
|
13
|
+
return {
|
|
14
|
+
debug: (m) => write('debug', scope, m),
|
|
15
|
+
info: (m) => write('info', scope, m),
|
|
16
|
+
warn: (m) => write('warn', scope, m),
|
|
17
|
+
error: (m) => write('error', scope, m),
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=log.js.map
|
package/dist/log.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAMA,MAAM,KAAK,GAA6B,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAElG,IAAI,KAAK,GAAc,OAAO,CAAC,GAAG,CAAC,iBAA8B,IAAI,KAAK,CAAC,CAAC,CAAE,OAAO,CAAC,GAAG,CAAC,iBAA8B,CAAC,CAAC,CAAC,MAAM,CAAC;AAElI,MAAM,UAAU,WAAW,CAAC,IAAc;IACxC,KAAK,GAAG,IAAI,CAAC;AACf,CAAC;AAED,SAAS,KAAK,CAAC,EAAY,EAAE,KAAa,EAAE,OAAe;IACzD,IAAI,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO;IACrC,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,OAAO,IAAI,CAAC,CAAC;AACxF,CAAC;AASD,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACtC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACpC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACpC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;KACvC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Client, type ClientOptions, type ClientStatus } from './client.js';
|
|
2
|
+
/** Owns several named clients in one process; stops them all on shutdown. */
|
|
3
|
+
export declare class ClientManager {
|
|
4
|
+
private readonly clients;
|
|
5
|
+
private exitHooked;
|
|
6
|
+
get(name: string): Client;
|
|
7
|
+
/** The only client when exactly one exists, otherwise the named one. */
|
|
8
|
+
resolve(name?: string): Client;
|
|
9
|
+
list(): ClientStatus[];
|
|
10
|
+
/** Creates and starts a client. A stopped/crashed client with the same name is replaced. */
|
|
11
|
+
launch(options: ClientOptions): Promise<Client>;
|
|
12
|
+
stop(name: string): Promise<void>;
|
|
13
|
+
stopAll(): Promise<void>;
|
|
14
|
+
private hookExit;
|
|
15
|
+
}
|
package/dist/manager.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Client, CalciteError } from './client.js';
|
|
2
|
+
/** Owns several named clients in one process; stops them all on shutdown. */
|
|
3
|
+
export class ClientManager {
|
|
4
|
+
clients = new Map();
|
|
5
|
+
exitHooked = false;
|
|
6
|
+
get(name) {
|
|
7
|
+
const client = this.clients.get(name);
|
|
8
|
+
if (!client) {
|
|
9
|
+
const known = [...this.clients.keys()];
|
|
10
|
+
throw new CalciteError('unknown_client', `No client named "${name}"${known.length ? ` (running: ${known.join(', ')})` : ''}`);
|
|
11
|
+
}
|
|
12
|
+
return client;
|
|
13
|
+
}
|
|
14
|
+
/** The only client when exactly one exists, otherwise the named one. */
|
|
15
|
+
resolve(name) {
|
|
16
|
+
if (name)
|
|
17
|
+
return this.get(name);
|
|
18
|
+
if (this.clients.size === 1)
|
|
19
|
+
return [...this.clients.values()][0];
|
|
20
|
+
if (this.clients.size === 0)
|
|
21
|
+
throw new CalciteError('no_clients', 'No client is running; launch one first');
|
|
22
|
+
throw new CalciteError('ambiguous_client', `Several clients are running (${[...this.clients.keys()].join(', ')}); pass a name`);
|
|
23
|
+
}
|
|
24
|
+
list() {
|
|
25
|
+
return [...this.clients.values()].map((c) => c.status());
|
|
26
|
+
}
|
|
27
|
+
/** Creates and starts a client. A stopped/crashed client with the same name is replaced. */
|
|
28
|
+
async launch(options) {
|
|
29
|
+
const existing = this.clients.get(options.name);
|
|
30
|
+
if (existing && !['stopped', 'crashed', 'idle'].includes(existing.phase)) {
|
|
31
|
+
throw new CalciteError('already_running', `Client "${options.name}" is already ${existing.phase}`);
|
|
32
|
+
}
|
|
33
|
+
this.hookExit();
|
|
34
|
+
const client = new Client(options);
|
|
35
|
+
this.clients.set(options.name, client);
|
|
36
|
+
try {
|
|
37
|
+
await client.start();
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
this.clients.delete(options.name);
|
|
41
|
+
throw err;
|
|
42
|
+
}
|
|
43
|
+
return client;
|
|
44
|
+
}
|
|
45
|
+
async stop(name) {
|
|
46
|
+
const client = this.get(name);
|
|
47
|
+
await client.stop();
|
|
48
|
+
this.clients.delete(name);
|
|
49
|
+
}
|
|
50
|
+
async stopAll() {
|
|
51
|
+
await Promise.allSettled([...this.clients.values()].map((c) => c.stop()));
|
|
52
|
+
this.clients.clear();
|
|
53
|
+
}
|
|
54
|
+
hookExit() {
|
|
55
|
+
if (this.exitHooked)
|
|
56
|
+
return;
|
|
57
|
+
this.exitHooked = true;
|
|
58
|
+
const shutdown = (signal) => {
|
|
59
|
+
void this.stopAll().finally(() => process.exit(signal === 'SIGINT' ? 130 : 143));
|
|
60
|
+
};
|
|
61
|
+
process.once('SIGINT', shutdown);
|
|
62
|
+
process.once('SIGTERM', shutdown);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { type ClientOptions } from './client.js';
|
|
3
|
+
import { ClientManager } from './manager.js';
|
|
4
|
+
export interface McpOptions {
|
|
5
|
+
/** Defaults applied to launch_client calls. */
|
|
6
|
+
defaults?: Partial<ClientOptions>;
|
|
7
|
+
}
|
|
8
|
+
export declare function createMcpServer(opts?: McpOptions): {
|
|
9
|
+
server: McpServer;
|
|
10
|
+
manager: ClientManager;
|
|
11
|
+
};
|
|
12
|
+
/** Runs the MCP server over stdio until the client disconnects. stdout carries only protocol messages. */
|
|
13
|
+
export declare function runMcpStdio(opts?: McpOptions): Promise<void>;
|