{"version":3,"sources":["jsdelivr-header.js","/npm/yandex-translate-v2-api@1.0.6/index.js"],"names":[],"mappings":"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","file":"/npm/yandex-translate-v2-api@1.0.6/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/yandex-translate-v2-api@1.0.6/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import fetch from \"node-fetch\";\r\nimport * as fs from \"fs\";\r\nimport path from \"path\";\r\nexport class Translator {\r\n    targetLanguage = \"\";\r\n    #API_KEY = \"\";\r\n    #IAM_TOKEN = \"\";\r\n    #FOLDER_ID = \"\";\r\n    #TRANSLATE_URL = \"https://translate.api.cloud.yandex.net/translate/v2/translate\";\r\n    #DETECT_URL = \"https://translate.api.cloud.yandex.net/translate/v2/detect\";\r\n    #translatedArray = [];\r\n    static Api(apiKey, folderId, targetLanguage = \"en\") {\r\n        const translator = new Translator();\r\n        translator.#API_KEY = apiKey;\r\n        translator.#FOLDER_ID = folderId;\r\n        translator.targetLanguage = targetLanguage;\r\n        return translator;\r\n    }\r\n    static Imt(iamToken, folderId, targetLanguage = \"en\") {\r\n        const translator = new Translator();\r\n        translator.#IAM_TOKEN = iamToken;\r\n        translator.#FOLDER_ID = folderId;\r\n        translator.targetLanguage = targetLanguage;\r\n        return translator;\r\n    }\r\n    async translate(texts) {\r\n        if (typeof texts === \"string\")\r\n            texts = [texts];\r\n        const request = {\r\n            method: \"POST\",\r\n            headers: {\r\n                \"Content-Type\": \"application/json\",\r\n                Authorization: this.#API_KEY\r\n                    ? `Api-Key ${this.#API_KEY}`\r\n                    : `Bearer ${this.#IAM_TOKEN}`,\r\n            },\r\n            body: JSON.stringify({\r\n                targetLanguageCode: this.targetLanguage,\r\n                texts: texts,\r\n                folderId: this.#FOLDER_ID,\r\n            }),\r\n        };\r\n        let response = (await fetch(this.#TRANSLATE_URL, request));\r\n        response = await response.text();\r\n        response = JSON.parse(response).translations;\r\n        return response.map((item) => item.text);\r\n    }\r\n    async detect(text) {\r\n        const request = {\r\n            method: \"POST\",\r\n            headers: {\r\n                \"Content-Type\": \"application/json\",\r\n                Authorization: this.#API_KEY\r\n                    ? `Api-Key ${this.#API_KEY}`\r\n                    : `Bearer ${this.#IAM_TOKEN}`,\r\n            },\r\n            body: JSON.stringify({\r\n                text: text,\r\n                folderId: this.#FOLDER_ID,\r\n            }),\r\n        };\r\n        let response = (await fetch(this.#DETECT_URL, request));\r\n        response = await response.text();\r\n        response = JSON.parse(response).languageCode;\r\n        return response;\r\n    }\r\n    getStringArrayFromObject(obj) {\r\n        const result = [];\r\n        Object.values(obj).forEach((value) => {\r\n            if (typeof value === \"string\") {\r\n                result.push(value);\r\n            }\r\n            else if (typeof value === \"object\") {\r\n                const res = this.getStringArrayFromObject(value);\r\n                result.push(...res);\r\n            }\r\n        });\r\n        return result;\r\n    }\r\n    async translateStabilized(texts) {\r\n        if (typeof texts === \"string\")\r\n            texts = [texts];\r\n        const result = [];\r\n        if (texts.join(\"\").length > 10000) {\r\n            let silcedArray = await this.translateStabilized(texts.slice(0, texts.length - 5));\r\n            result.push(...silcedArray);\r\n            silcedArray = await this.translateStabilized(texts.slice(texts.length - 5, texts.length));\r\n            result.push(...silcedArray);\r\n        }\r\n        else {\r\n            const tempRes = await this.translate(texts);\r\n            result.push(...tempRes);\r\n        }\r\n        this.#translatedArray = result;\r\n        return result;\r\n    }\r\n    async getTranslatedObject(obj) {\r\n        if (this.#translatedArray.length === 0) {\r\n            const tmp = this.getStringArrayFromObject(obj);\r\n            await this.translateStabilized(tmp);\r\n        }\r\n        const result = {};\r\n        for (const [key, value] of Object.entries(obj)) {\r\n            if (typeof value === \"string\") {\r\n                result[key] = this.#translatedArray.shift();\r\n            }\r\n            else if (typeof value === \"object\") {\r\n                const res = await this.getTranslatedObject(value);\r\n                result[key] = { ...res };\r\n            }\r\n        }\r\n        return result;\r\n    }\r\n    async createTranslatedFile(obj, filePath, type = \"js\") {\r\n        const translatedObj = await this.getTranslatedObject(obj);\r\n        if (!fs.existsSync(path.dirname(filePath))) {\r\n            fs.mkdirSync(path.join(process.cwd(), path.dirname(filePath)), {\r\n                recursive: true,\r\n            });\r\n        }\r\n        if (type.toLowerCase() === \"json\") {\r\n            fs.writeFile(filePath, JSON.stringify(translatedObj), (err) => {\r\n                if (err) {\r\n                    console.error(err);\r\n                    return;\r\n                }\r\n                console.log(\"File was successfuly created!\");\r\n            });\r\n        }\r\n        else if (type.toLowerCase() === \"js\") {\r\n            fs.writeFile(filePath, `export default ${JSON.stringify(translatedObj)}`, (err) => {\r\n                if (err) {\r\n                    console.error(err);\r\n                    return;\r\n                }\r\n                console.log(\"File was successfuly created!\");\r\n            });\r\n        }\r\n    }\r\n}\r\n"]}