UNPKG

anylang

Version:

A translator's kit that uses the free APIs of Google Translate, Yandex, Bing, ChatGPT, and other LLMs

94 lines (92 loc) 8.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TartuNLPTranslator = void 0; var _zod = _interopRequireDefault(require("zod")); var _BaseTranslator = require("../BaseTranslator"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; class TartuNLPTranslator extends _BaseTranslator.BaseTranslator { static isSupportedAutoFrom() { return false; } static getSupportedLanguages() { // eslint-disable // prettier-ignore return ["en", "et", "de", "lt", "lv", "fi", "ru", "no", "hu", "se"]; // eslint-enable } getLengthLimit() { return 5000; } getRequestsTimeout() { return 300; } checkLimitExceeding(text) { if (Array.isArray(text)) { const arrayLen = text.reduce((acc, text) => acc + text.length, 0); const extra = arrayLen - this.getLengthLimit(); return extra > 0 ? extra : 0; } else { const extra = text.length - this.getLengthLimit(); return extra > 0 ? extra : 0; } } translate(text, from, to) { return __awaiter(this, void 0, void 0, function* () { return this.translateBatch([text], from, to).then(resp => resp[0]); }); } translateBatch(text, from, to) { return __awaiter(this, void 0, void 0, function* () { return this.fetch('https://api.tartunlp.ai/translation/v2', { responseType: 'json', method: 'POST', headers: Object.assign({ 'Content-Type': 'application/json' }, this.options.headers), body: JSON.stringify({ text, src: from, tgt: to }) }).then(rsp => { return _zod.default.object({ result: _zod.default.string().array() }).parse(rsp.data, { error: () => 'Unexpected data' }).result; }); }); } } exports.TartuNLPTranslator = TartuNLPTranslator; TartuNLPTranslator.translatorName = 'TartuNLPTranslator'; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRvcnMvVGFydHVOTFBUcmFuc2xhdG9yL2luZGV4LmpzIiwibmFtZXMiOlsiX3pvZCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX0Jhc2VUcmFuc2xhdG9yIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiVGFydHVOTFBUcmFuc2xhdG9yIiwiQmFzZVRyYW5zbGF0b3IiLCJpc1N1cHBvcnRlZEF1dG9Gcm9tIiwiZ2V0U3VwcG9ydGVkTGFuZ3VhZ2VzIiwiZ2V0TGVuZ3RoTGltaXQiLCJnZXRSZXF1ZXN0c1RpbWVvdXQiLCJjaGVja0xpbWl0RXhjZWVkaW5nIiwidGV4dCIsIkFycmF5IiwiaXNBcnJheSIsImFycmF5TGVuIiwicmVkdWNlIiwiYWNjIiwibGVuZ3RoIiwiZXh0cmEiLCJ0cmFuc2xhdGUiLCJmcm9tIiwidG8iLCJ0cmFuc2xhdGVCYXRjaCIsInRoZW4iLCJyZXNwIiwiZmV0Y2giLCJyZXNwb25zZVR5cGUiLCJtZXRob2QiLCJoZWFkZXJzIiwiT2JqZWN0IiwiYXNzaWduIiwib3B0aW9ucyIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5Iiwic3JjIiwidGd0IiwicnNwIiwieiIsIm9iamVjdCIsInJlc3VsdCIsInN0cmluZyIsImFycmF5IiwicGFyc2UiLCJkYXRhIiwiZXJyb3IiLCJ0cmFuc2xhdG9yTmFtZSJdLCJzb3VyY2VzIjpbInRyYW5zbGF0b3JzL1RhcnR1TkxQVHJhbnNsYXRvci9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeiBmcm9tICd6b2QnO1xuXG5pbXBvcnQgeyBCYXNlVHJhbnNsYXRvciB9IGZyb20gJy4uL0Jhc2VUcmFuc2xhdG9yJztcblxuZXhwb3J0IGNsYXNzIFRhcnR1TkxQVHJhbnNsYXRvciBleHRlbmRzIEJhc2VUcmFuc2xhdG9yIHtcblx0cHVibGljIHN0YXRpYyByZWFkb25seSB0cmFuc2xhdG9yTmFtZSA9ICdUYXJ0dU5MUFRyYW5zbGF0b3InO1xuXG5cdHB1YmxpYyBzdGF0aWMgaXNTdXBwb3J0ZWRBdXRvRnJvbSgpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIGdldFN1cHBvcnRlZExhbmd1YWdlcygpOiBzdHJpbmdbXSB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGVcblx0XHQvLyBwcmV0dGllci1pZ25vcmVcblx0XHRyZXR1cm4gW1xuXHRcdFx0XCJlblwiLCBcImV0XCIsIFwiZGVcIiwgXCJsdFwiLCBcImx2XCIsXG5cdFx0XHRcImZpXCIsIFwicnVcIiwgXCJub1wiLCBcImh1XCIsIFwic2VcIixcblx0XHRdO1xuXHRcdC8vIGVzbGludC1lbmFibGVcblx0fVxuXG5cdHB1YmxpYyBnZXRMZW5ndGhMaW1pdCgpIHtcblx0XHRyZXR1cm4gNTAwMDtcblx0fVxuXG5cdHB1YmxpYyBnZXRSZXF1ZXN0c1RpbWVvdXQoKSB7XG5cdFx0cmV0dXJuIDMwMDtcblx0fVxuXG5cdHB1YmxpYyBjaGVja0xpbWl0RXhjZWVkaW5nKHRleHQ6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodGV4dCkpIHtcblx0XHRcdGNvbnN0IGFycmF5TGVuID0gdGV4dC5yZWR1Y2UoKGFjYywgdGV4dCkgPT4gYWNjICsgdGV4dC5sZW5ndGgsIDApO1xuXHRcdFx0Y29uc3QgZXh0cmEgPSBhcnJheUxlbiAtIHRoaXMuZ2V0TGVuZ3RoTGltaXQoKTtcblx0XHRcdHJldHVybiBleHRyYSA+IDAgPyBleHRyYSA6IDA7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IGV4dHJhID0gdGV4dC5sZW5ndGggLSB0aGlzLmdldExlbmd0aExpbWl0KCk7XG5cdFx0XHRyZXR1cm4gZXh0cmEgPiAwID8gZXh0cmEgOiAwO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBhc3luYyB0cmFuc2xhdGUodGV4dDogc3RyaW5nLCBmcm9tOiBzdHJpbmcsIHRvOiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gdGhpcy50cmFuc2xhdGVCYXRjaChbdGV4dF0sIGZyb20sIHRvKS50aGVuKChyZXNwKSA9PiByZXNwWzBdKTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyB0cmFuc2xhdGVCYXRjaCh0ZXh0OiBzdHJpbmdbXSwgZnJvbTogc3RyaW5nLCB0bzogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIHRoaXMuZmV0Y2goJ2h0dHBzOi8vYXBpLnRhcnR1bmxwLmFpL3RyYW5zbGF0aW9uL3YyJywge1xuXHRcdFx0cmVzcG9uc2VUeXBlOiAnanNvbicsXG5cdFx0XHRtZXRob2Q6ICdQT1NUJyxcblx0XHRcdGhlYWRlcnM6IHtcblx0XHRcdFx0J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcblx0XHRcdFx0Li4udGhpcy5vcHRpb25zLmhlYWRlcnMsXG5cdFx0XHR9LFxuXHRcdFx0Ym9keTogSlNPTi5zdHJpbmdpZnkoeyB0ZXh0LCBzcmM6IGZyb20sIHRndDogdG8gfSksXG5cdFx0fSkudGhlbigocnNwKSA9PiB7XG5cdFx0XHRyZXR1cm4gelxuXHRcdFx0XHQub2JqZWN0KHsgcmVzdWx0OiB6LnN0cmluZygpLmFycmF5KCkgfSlcblx0XHRcdFx0LnBhcnNlKHJzcC5kYXRhLCB7IGVycm9yOiAoKSA9PiAnVW5leHBlY3RlZCBkYXRhJyB9KS5yZXN1bHQ7XG5cdFx0fSk7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsSUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsZUFBQSxHQUFBRCxPQUFBO0FBQW1ELFNBQUFELHVCQUFBRyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTdDLE1BQU9HLGtCQUFtQixTQUFRQyw4QkFBYztFQUc5QyxPQUFPQyxtQkFBbUJBLENBQUE7SUFDaEMsT0FBTyxLQUFLO0VBQ2I7RUFFTyxPQUFPQyxxQkFBcUJBLENBQUE7SUFDbEM7SUFDQTtJQUNBLE9BQU8sQ0FDTixJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUM1QixJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUM1QjtJQUNEO0VBQ0Q7RUFFT0MsY0FBY0EsQ0FBQTtJQUNwQixPQUFPLElBQUk7RUFDWjtFQUVPQyxrQkFBa0JBLENBQUE7SUFDeEIsT0FBTyxHQUFHO0VBQ1g7RUFFT0MsbUJBQW1CQSxDQUFDQyxJQUF1QjtJQUNqRCxJQUFJQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0YsSUFBSSxDQUFDLEVBQUU7TUFDeEIsTUFBTUcsUUFBUSxHQUFHSCxJQUFJLENBQUNJLE1BQU0sQ0FBQyxDQUFDQyxHQUFHLEVBQUVMLElBQUksS0FBS0ssR0FBRyxHQUFHTCxJQUFJLENBQUNNLE1BQU0sRUFBRSxDQUFDLENBQUM7TUFDakUsTUFBTUMsS0FBSyxHQUFHSixRQUFRLEdBQUcsSUFBSSxDQUFDTixjQUFjLEVBQUU7TUFDOUMsT0FBT1UsS0FBSyxHQUFHLENBQUMsR0FBR0EsS0FBSyxHQUFHLENBQUM7SUFDN0IsQ0FBQyxNQUFNO01BQ04sTUFBTUEsS0FBSyxHQUFHUCxJQUFJLENBQUNNLE1BQU0sR0FBRyxJQUFJLENBQUNULGNBQWMsRUFBRTtNQUNqRCxPQUFPVSxLQUFLLEdBQUcsQ0FBQyxHQUFHQSxLQUFLLEdBQUcsQ0FBQztJQUM3QjtFQUNEO0VBRWFDLFNBQVNBLENBQUNSLElBQVksRUFBRVMsSUFBWSxFQUFFQyxFQUFVOztNQUM1RCxPQUFPLElBQUksQ0FBQ0MsY0FBYyxDQUFDLENBQUNYLElBQUksQ0FBQyxFQUFFUyxJQUFJLEVBQUVDLEVBQUUsQ0FBQyxDQUFDRSxJQUFJLENBQUVDLElBQUksSUFBS0EsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7O0VBRVlGLGNBQWNBLENBQUNYLElBQWMsRUFBRVMsSUFBWSxFQUFFQyxFQUFVOztNQUNuRSxPQUFPLElBQUksQ0FBQ0ksS0FBSyxDQUFDLHdDQUF3QyxFQUFFO1FBQzNEQyxZQUFZLEVBQUUsTUFBTTtRQUNwQkMsTUFBTSxFQUFFLE1BQU07UUFDZEMsT0FBTyxFQUFBQyxNQUFBLENBQUFDLE1BQUE7VUFDTixjQUFjLEVBQUU7UUFBa0IsR0FDL0IsSUFBSSxDQUFDQyxPQUFPLENBQUNILE9BQU8sQ0FDdkI7UUFDREksSUFBSSxFQUFFQyxJQUFJLENBQUNDLFNBQVMsQ0FBQztVQUFFdkIsSUFBSTtVQUFFd0IsR0FBRyxFQUFFZixJQUFJO1VBQUVnQixHQUFHLEVBQUVmO1FBQUUsQ0FBRTtPQUNqRCxDQUFDLENBQUNFLElBQUksQ0FBRWMsR0FBRyxJQUFJO1FBQ2YsT0FBT0MsWUFBQyxDQUNOQyxNQUFNLENBQUM7VUFBRUMsTUFBTSxFQUFFRixZQUFDLENBQUNHLE1BQU0sRUFBRSxDQUFDQyxLQUFLO1FBQUUsQ0FBRSxDQUFDLENBQ3RDQyxLQUFLLENBQUNOLEdBQUcsQ0FBQ08sSUFBSSxFQUFFO1VBQUVDLEtBQUssRUFBRUEsQ0FBQSxLQUFNO1FBQWlCLENBQUUsQ0FBQyxDQUFDTCxNQUFNO01BQzdELENBQUMsQ0FBQztJQUNILENBQUM7Ozs7QUFyRHNCcEMsa0JBQUEsQ0FBQTBDLGNBQWMsR0FBRyxvQkFBb0IiLCJpZ25vcmVMaXN0IjpbXX0=