@translated/lara
Version:
Official Lara SDK for JavaScript and Node.js
1 lines • 27.8 kB
JavaScript
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Lara=e():t.Lara=e()}(this,()=>(()=>{"use strict";var t={328(t,e,r){var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.AudioTranslator=e.VoiceGender=e.AudioStatus=void 0;const o=r(725),i=n(r(821));var s,a;!function(t){t.INITIALIZED="initialized",t.ANALYZING="analyzing",t.PAUSED="paused",t.READY="ready",t.TRANSLATING="translating",t.TRANSLATED="translated",t.ERROR="error"}(s||(e.AudioStatus=s={})),function(t){t.MALE="male",t.FEMALE="female"}(a||(e.VoiceGender=a={})),e.AudioTranslator=class{constructor(t){this.client=t,this.s3Client=(0,i.default)()}async upload(t,e,r,n,o){const{url:i,fields:s}=await this.client.get("/v2/audio/upload-url",{filename:e});await this.s3Client.upload(i,s,t,null==o?void 0:o.contentLength);const a=(null==o?void 0:o.noTrace)?{"X-No-Trace":"true"}:{};return this.client.post("/v2/audio/translate",{source:r,target:n,s3key:s.key,adapt_to:null==o?void 0:o.adaptTo,glossaries:null==o?void 0:o.glossaries,style:null==o?void 0:o.style,voice_gender:null==o?void 0:o.voiceGender},void 0,a)}async status(t){return await this.client.get(`/v2/audio/${t}`)}async download(t){const{url:e}=await this.client.get(`/v2/audio/${t}/download-url`);return await this.s3Client.downloadStream(e)}async translate(t,e,r,n,i){const{id:a}=await this.upload(t,e,r,n,i),u=Date.now();for(;Date.now()-u<9e5;){await new Promise(t=>setTimeout(t,2e3));const{status:t,errorReason:e}=await this.status(a);if(t===s.TRANSLATED)return await this.download(a);if(t===s.ERROR)throw new o.LaraApiError(500,"AudioError",e)}throw new o.TimeoutError}}},414(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.AuthToken=e.Credentials=e.AccessKey=void 0;class r{constructor(t,e){this.id=t,this.secret=e}}e.AccessKey=r,e.Credentials=class extends r{get accessKeyId(){return this.id}get accessKeySecret(){return this.secret}},e.AuthToken=class{constructor(t,e){this.token=t,this.refreshToken=e}}},780(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.BrowserCrypto=void 0,e.BrowserCrypto=class{constructor(){this.subtle=window.crypto.subtle}async digestBase64(t){const e=new TextEncoder,r=(await this.subtle.digest("sha-256",e.encode(t))).slice(0,16);return btoa(String.fromCharCode(...new Uint8Array(r)))}async hmac(t,e){const r=new TextEncoder;r.encode(e);const n=await this.subtle.importKey("raw",r.encode(t),{name:"hmac",hash:{name:"sha-256"}},!1,["sign"]),o=await this.subtle.sign("hmac",n,r.encode(e));return btoa(String.fromCharCode(...new Uint8Array(o)))}}},326(t,e,r){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return void 0===o&&(o=new n.BrowserCrypto),o};const n=r(780);let o},50(t,e,r){var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.Documents=e.DocumentStatus=void 0;const o=r(725),i=n(r(821)),s=n(r(841));var a;!function(t){t.INITIALIZED="initialized",t.ANALYZING="analyzing",t.PAUSED="paused",t.READY="ready",t.TRANSLATING="translating",t.TRANSLATED="translated",t.ERROR="error"}(a||(e.DocumentStatus=a={})),e.Documents=class{constructor(t){this.client=t,this.s3Client=(0,i.default)()}async upload(t,e,r,n,o){const{url:i,fields:a}=await this.client.get("/v2/documents/upload-url",{filename:e});await this.s3Client.upload(i,a,t,null==o?void 0:o.contentLength);const u=(null==o?void 0:o.noTrace)?{"X-No-Trace":"true"}:{};return this.client.post("/v2/documents",{source:r,target:n,s3key:a.key,adapt_to:null==o?void 0:o.adaptTo,glossaries:null==o?void 0:o.glossaries,style:null==o?void 0:o.style,password:null==o?void 0:o.password,extraction_params:(null==o?void 0:o.extractionParams)?(0,s.default)(o.extractionParams):void 0},void 0,u)}async status(t){return await this.client.get(`/v2/documents/${t}`)}async download(t,e){const{url:r}=await this.client.get(`/v2/documents/${t}/download-url`,{output_format:null==e?void 0:e.outputFormat});return await this.s3Client.download(r)}async downloadStream(t,e){const{url:r}=await this.client.get(`/v2/documents/${t}/download-url`,{output_format:null==e?void 0:e.outputFormat});return await this.s3Client.downloadStream(r)}async translate(t,e,r,n,i){const s={adaptTo:null==i?void 0:i.adaptTo,glossaries:null==i?void 0:i.glossaries,noTrace:null==i?void 0:i.noTrace,style:null==i?void 0:i.style,password:null==i?void 0:i.password,extractionParams:null==i?void 0:i.extractionParams,contentLength:null==i?void 0:i.contentLength},{id:u}=await this.upload(t,e,r,n,s),l=(null==i?void 0:i.outputFormat)?{outputFormat:i.outputFormat}:void 0,c=Date.now();for(;Date.now()-c<9e5;){await new Promise(t=>setTimeout(t,2e3));const{status:t,errorReason:e}=await this.status(u);if(t===a.TRANSLATED)return await this.download(u,l);if(t===a.ERROR)throw new o.LaraApiError(500,"DocumentError",e)}throw new o.TimeoutError}async translateStream(t,e,r,n,i){const s={adaptTo:null==i?void 0:i.adaptTo,glossaries:null==i?void 0:i.glossaries,noTrace:null==i?void 0:i.noTrace,style:null==i?void 0:i.style,password:null==i?void 0:i.password,extractionParams:null==i?void 0:i.extractionParams,contentLength:null==i?void 0:i.contentLength},{id:u}=await this.upload(t,e,r,n,s),l=(null==i?void 0:i.outputFormat)?{outputFormat:i.outputFormat}:void 0,c=Date.now();for(;Date.now()-c<9e5;){await new Promise(t=>setTimeout(t,2e3));const{status:t,errorReason:e}=await this.status(u);if(t===a.TRANSLATED)return await this.downloadStream(u,l);if(t===a.ERROR)throw new o.LaraApiError(500,"DocumentError",e)}throw new o.TimeoutError}}},725(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.LaraApiError=e.TimeoutError=e.LaraError=void 0;class r extends Error{}e.LaraError=r,e.TimeoutError=class extends r{},e.LaraApiError=class extends r{constructor(t,e,r,n){super(r),this.statusCode=t,this.type=e,this.message=r,this.idTransaction=n}}},514(t,e,r){Object.defineProperty(e,"__esModule",{value:!0}),e.Glossaries=void 0;const n=r(725);e.Glossaries=class{constructor(t){this.client=t,this.pollingInterval=2e3}async list(){return await this.client.get("/v2/glossaries")}async create(t){return await this.client.post("/v2/glossaries",{name:t})}async get(t){try{return await this.client.get(`/v2/glossaries/${t}`)}catch(t){if(t instanceof n.LaraApiError&&404===t.statusCode)return null;throw t}}async delete(t){return await this.client.delete(`/v2/glossaries/${t}`)}async update(t,e){return await this.client.put(`/v2/glossaries/${t}`,{name:e})}async importCsv(t,e,r,n){let o=!1,i="csv/table-uni";return"boolean"==typeof r?o=r:"string"==typeof r&&(i=r,o=null!=n&&n),await this.client.post(`/v2/glossaries/${t}/import`,{compression:o?"gzip":void 0,content_type:i},{csv:e})}async getImportStatus(t){return await this.client.get(`/v2/glossaries/imports/${t}`)}async waitForImport(t,e,r){const o=Date.now();for(;t.progress<1;){if(r&&Date.now()-o>r)throw new n.TimeoutError;await new Promise(t=>setTimeout(t,this.pollingInterval)),t=await this.getImportStatus(t.id),e&&e(t)}return t}async counts(t){return await this.client.get(`/v2/glossaries/${t}/counts`)}async export(t,e,r){return await this.client.get(`/v2/glossaries/${t}/export`,{content_type:e,source:r})}async addOrReplaceEntry(t,e,r){return await this.client.put(`/v2/glossaries/${t}/content`,{terms:e,guid:r})}async deleteEntry(t,e,r){return await this.client.delete(`/v2/glossaries/${t}/content`,void 0,{term:e,guid:r})}}},731(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.ImageTranslator=void 0,e.ImageTranslator=class{constructor(t){this.client=t}async translate(t,e,r,n){const o=(null==n?void 0:n.noTrace)?{"X-No-Trace":"true"}:{};return o["Content-Type"]="multipart/form-data",this.client.post("/v2/images/translate",{source:e,target:r,adapt_to:JSON.stringify(null==n?void 0:n.adaptTo),glossaries:JSON.stringify(null==n?void 0:n.glossaries),style:null==n?void 0:n.style,text_removal:null==n?void 0:n.textRemoval},{image:t},o,!0)}async translateText(t,e,r,n){const o=(null==n?void 0:n.noTrace)?{"X-No-Trace":"true"}:{};return o["Content-Type"]="multipart/form-data",this.client.post("/v2/images/translate-text",{source:e,target:r,adapt_to:JSON.stringify(null==n?void 0:n.adaptTo),glossaries:JSON.stringify(null==n?void 0:n.glossaries),style:null==n?void 0:n.style,verbose:JSON.stringify(null==n?void 0:n.verbose)},{image:t},o)}}},629(t,e,r){Object.defineProperty(e,"__esModule",{value:!0}),e.Memories=void 0;const n=r(725);e.Memories=class{constructor(t){this.client=t,this.pollingInterval=2e3}async list(){return await this.client.get("/v2/memories")}async create(t,e){return await this.client.post("/v2/memories",{name:t,external_id:e})}async get(t){try{return await this.client.get(`/v2/memories/${t}`)}catch(t){if(t instanceof n.LaraApiError&&404===t.statusCode)return null;throw t}}async delete(t){return await this.client.delete(`/v2/memories/${t}`)}async update(t,e){return await this.client.put(`/v2/memories/${t}`,{name:e})}async connect(t){const e=await this.client.post("/v2/memories/connect",{ids:Array.isArray(t)?t:[t]});return Array.isArray(t)?e:e[0]}async importTmx(t,e,r,n){let o,i=!1;return"boolean"==typeof r?(i=r,o=n):"string"==typeof r&&(o=r),await this.client.post(`/v2/memories/${t}/import`,{compression:i?"gzip":void 0,callback_url:o},{tmx:e})}async exportAsync(t,e,r){return await this.client.get(`/v2/memories/${t}/export/async`,{callback_url:e,format:r})}async addTranslation(t,e,r,n,o,i,s,a,u){const l={source:e,target:r,sentence:n,translation:o,tuid:i,sentence_before:s,sentence_after:a};return Array.isArray(t)?(l.ids=t,await this.client.put("/v2/memories/content",l,void 0,u)):await this.client.put(`/v2/memories/${t}/content`,l,void 0,u)}async deleteTranslation(t,e,r,n,o,i,s,a){const u={source:e,target:r,sentence:n,translation:o,tuid:i,sentence_before:s,sentence_after:a};return Array.isArray(t)?(u.ids=t,await this.client.delete("/v2/memories/content",void 0,u)):await this.client.delete(`/v2/memories/${t}/content`,void 0,u)}async getImportStatus(t){return await this.client.get(`/v2/memories/imports/${t}`)}async waitForImport(t,e,r){const o=Date.now();for(;t.progress<1;){if(r&&Date.now()-o>r)throw new n.TimeoutError;await new Promise(t=>setTimeout(t,this.pollingInterval)),t=await this.getImportStatus(t.id),e&&e(t)}return t}}},631(t,e,r){Object.defineProperty(e,"__esModule",{value:!0}),e.BrowserClient=e.BrowserLaraClient=void 0;const n=r(725),o=r(412);class i extends o.LaraClient{constructor(t,e,r,n){super(e);let o=`${t.secure?"https":"http"}://${t.hostname}`;var i,s;i=t.port,s=t.secure,80===i&&!s||443===i&&s||(o+=`:${t.port}`),this.baseUrl=o,this.timeout=n}async send(t,e,r,o,i){var s;let a;if(o)if("multipart/form-data"===r["Content-Type"]){delete r["Content-Type"];const t=new FormData;for(const[e,r]of Object.entries(o))if(r)if(Array.isArray(r))for(const n of r)t.append(e,n);else t.append(e,r);a=t}else a=JSON.stringify(o,void 0,0);const u=this.timeout&&this.timeout>0?AbortSignal.timeout(this.timeout):void 0;try{const n=await fetch(this.baseUrl+e,{headers:r,method:t,body:a,signal:u});return i&&n.status>=200&&n.status<300?{statusCode:n.status,body:n.body,headers:Object.fromEntries(n.headers)}:(null===(s=n.headers.get("Content-Type"))||void 0===s?void 0:s.includes("text/csv"))?{statusCode:n.status,body:{content:await n.text()},headers:Object.fromEntries(n.headers)}:{statusCode:n.status,body:await n.json(),headers:Object.fromEntries(n.headers)}}catch(t){if(t instanceof Error&&("AbortError"===t.name||"TimeoutError"===t.name))throw new n.TimeoutError(`Request timed out after ${this.timeout}ms`);throw t}}async*sendAndGetStream(t,e,r,o){let i;if(o)if("multipart/form-data"===r["Content-Type"]){delete r["Content-Type"];const t=new FormData;for(const[e,r]of Object.entries(o))if(r)if(Array.isArray(r))for(const n of r)t.append(e,n);else t.append(e,r);i=t}else i=JSON.stringify(o,void 0,0);const s=this.timeout&&this.timeout>0?AbortSignal.timeout(this.timeout):void 0;let a;try{a=await fetch(this.baseUrl+e,{headers:r,method:t,body:i,signal:s})}catch(t){if(t instanceof Error&&("AbortError"===t.name||"TimeoutError"===t.name))throw new n.TimeoutError(`Request timed out after ${this.timeout}ms`);throw t}if(!a.body)throw new Error("Response body is not available for streaming");const u=a.body.getReader(),l=new TextDecoder;let c="";try{for(;;){let t;try{t=await u.read()}catch(t){if(t instanceof Error&&("AbortError"===t.name||"TimeoutError"===t.name))throw new n.TimeoutError(`Request timed out after ${this.timeout}ms`);throw t}const{done:e,value:r}=t;if(e){if(c.trim())try{const t=JSON.parse(c);yield{statusCode:t.status||a.status,body:t.data||t,headers:Object.fromEntries(a.headers)}}catch(t){}break}c+=l.decode(r,{stream:!0});const o=c.split("\n");c=o.pop()||"";for(const t of o)if(t.trim())try{const e=JSON.parse(t);yield{statusCode:e.status||a.status,body:e.data||e,headers:Object.fromEntries(a.headers)}}catch(t){}}}finally{u.releaseLock()}}wrapMultiPartFile(t){if(t instanceof File)return t;throw new TypeError(`Invalid file input in the browser. Expected an instance of File but received ${typeof t}.`)}}e.BrowserLaraClient=i;class s{static async get(t,e){return s.send("GET",t,e)}static async send(t,e,r,n){var o;let i;if(n)if(r&&"multipart/form-data"===r["Content-Type"]){delete r["Content-Type"];const t=new FormData;for(const[e,r]of Object.entries(n))if(r)if(Array.isArray(r))for(const n of r)t.append(e,n);else t.append(e,r);i=t}else i=JSON.stringify(n,void 0,0);const s=await fetch(e,{headers:r,method:t,body:i});return{statusCode:s.status,headers:Object.fromEntries(s.headers),body:(null===(o=s.headers.get("Content-Type"))||void 0===o?void 0:o.includes("application/json"))?await s.json():await s.text()}}}e.BrowserClient=s},412(t,e,r){var n=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.LaraClient=void 0;const o=r(414),i=n(r(326)),s=r(725),a=r(741),u=r(311);e.LaraClient=class{constructor(t){if(this.crypto=(0,i.default)(),this.extraHeaders={},t instanceof o.AccessKey)this.accessKey=t;else{if(!(t instanceof o.AuthToken))throw new Error("Invalid authentication method provided");this.authToken=t}}setExtraHeader(t,e){this.extraHeaders[t]=e}get(t,e,r){return this.request("GET",this.buildPathWithQuery(t,e),void 0,void 0,r)}delete(t,e,r,n){return this.request("DELETE",this.buildPathWithQuery(t,e),r,void 0,n)}post(t,e,r,n,o){return this.request("POST",t,e,r,n,void 0,o)}async*postAndGetStream(t,e,r,n){for await(const o of this.requestStream("POST",t,e,r,n))yield o}put(t,e,r,n){return this.request("PUT",t,e,r,n)}async request(t,e,r,n,o,i=0,s){await this.ensureAuthenticated();const u=e.startsWith("/")?e:`/${e}`,l=await this.buildRequestHeaders(r,n,o),c=this.buildRequestBody(r,n);l.Authorization=`Bearer ${this.token}`;const d=await this.send(t,u,l,c,s);if(this.isSuccessResponse(d))return s?d.body:(0,a.parseContent)(d.body);if(401===d.statusCode&&i<1)return this.token=void 0,await this.refreshOrReauthenticate(),this.request(t,e,r,n,o,i+1,s);throw this.createApiError(d)}async*requestStream(t,e,r,n,o,i=0){await this.ensureAuthenticated();const s=e.startsWith("/")?e:`/${e}`,u=await this.buildRequestHeaders(r,n,o),l=this.buildRequestBody(r,n);u.Authorization=`Bearer ${this.token}`;for await(const c of this.sendAndGetStream(t,s,u,l)){if(401===c.statusCode&&i<1)return this.token=void 0,await this.refreshOrReauthenticate(),void(yield*this.requestStream(t,e,r,n,o,i+1));if(!this.isSuccessResponse(c))throw this.createApiError(c);yield(0,a.parseContent)(c.body)}}isTokenExpired(t=5e3){if(!this.token)return!0;try{const e=this.token.split(".");if(3!==e.length)return!0;let r=e[1].replace(/-/g,"+").replace(/_/g,"/");for(;r.length%4;)r+="=";const n="undefined"!=typeof Buffer?Buffer.from(r,"base64").toString("utf-8"):atob(r),{exp:o}=JSON.parse(n);return"number"==typeof o&&1e3*o<=Date.now()+t}catch{return!0}}async ensureAuthenticated(){if(!this.token||this.isTokenExpired()){if(this.token=void 0,this.authenticationPromise)return this.authenticationPromise;this.authenticationPromise=this.performAuthentication();try{await this.authenticationPromise,this.authenticationPromise=void 0}catch(t){if(this.authenticationPromise=void 0,t instanceof s.LaraApiError&&(401===t.statusCode||403===t.statusCode))throw t;try{this.authenticationPromise=this.performAuthentication(),await this.authenticationPromise,this.authenticationPromise=void 0}catch(t){throw this.authenticationPromise=void 0,t instanceof s.LaraApiError?t:new s.LaraApiError(500,"AuthenticationError",t.message)}}}}async performAuthentication(){return this.authToken?(this.token=this.authToken.token,this.refreshToken=this.authToken.refreshToken,void(this.authToken=void 0)):this.doRefreshOrReauthenticate()}refreshOrReauthenticate(){return this.refreshPromise||(this.refreshPromise=this.doRefreshOrReauthenticate().finally(()=>{this.refreshPromise=void 0})),this.refreshPromise}async doRefreshOrReauthenticate(){if(this.refreshToken)try{return void await this.refreshTokens()}catch(t){if(this.refreshToken=void 0,!this.accessKey)throw t}if(!this.accessKey)throw new Error("No authentication method available for token renewal");await this.authenticateWithAccessKey()}async refreshTokens(){const t={Authorization:`Bearer ${this.refreshToken}`,"X-Lara-Date":(new Date).toUTCString(),...this.extraHeaders},e=await this.send("POST","/v2/auth/refresh",t);this.handleAuthResponse(e)}async authenticateWithAccessKey(){if(!this.accessKey)throw new Error("No access key provided");const t={id:this.accessKey.id},e=await this.crypto.digestBase64(JSON.stringify(t)),r={"Content-Type":"application/json","X-Lara-Date":(new Date).toUTCString(),"Content-MD5":e,...this.extraHeaders};r.Authorization=`Lara:${await this.sign("POST","/v2/auth",r)}`;const n=await this.send("POST","/v2/auth",r,t);this.handleAuthResponse(n)}buildPathWithQuery(t,e){const r=this.filterNullish(e);return r?`${t}?${new URLSearchParams(r).toString()}`:t}async buildRequestHeaders(t,e,r){const n={"X-Lara-Date":(new Date).toUTCString(),"X-Lara-SDK-Name":"lara-node","X-Lara-SDK-Version":u.version,...this.filterNullish(this.extraHeaders),...this.filterNullish(r)},o=this.filterNullish(t);if(e)n["Content-Type"]="multipart/form-data";else if(o){n["Content-Type"]="application/json";const t=JSON.stringify(o,void 0,0);n["Content-Length"]=(new TextEncoder).encode(t).length.toString()}return n}buildRequestBody(t,e){const r=this.filterNullish(t);if(e){const t={};for(const[r,n]of Object.entries(e))t[r]=this.wrapMultiPartFile(n);return{...t,...r}}return r}filterNullish(t){if(!t)return;const e=Object.fromEntries(Object.entries(t).filter(([t,e])=>null!=e));return Object.keys(e).length>0?e:void 0}isSuccessResponse(t){return t.statusCode>=200&&t.statusCode<300}handleAuthResponse(t){if(this.isSuccessResponse(t)){this.token=t.body.token;const e=t.headers["x-lara-refresh-token"];return void(e&&(this.refreshToken=e))}throw this.createApiError(t)}createApiError(t){const e=t.body||{};return new s.LaraApiError(t.statusCode,e.type||"UnknownError",e.message||"An unknown error occurred")}async sign(t,e,r){if(!this.accessKey)throw new Error("Access key not provided for signing");const n=r["X-Lara-Date"].trim(),o=(r["Content-MD5"]||"").trim(),i=(r["Content-Type"]||"").trim(),s=`${(r["X-HTTP-Method-Override"]||t).trim().toUpperCase()}\n${e}\n${o}\n${i}\n${n}`;return this.crypto.hmac(this.accessKey.secret,s)}}},837(t,e,r){Object.defineProperty(e,"__esModule",{value:!0}),e.HttpClient=e.LaraClient=void 0,e.default=function(t,e,r,i){const s=new URL(e||n.DEFAULT_BASE_URL);if("https:"!==s.protocol&&"http:"!==s.protocol)throw new TypeError(`Invalid URL (protocol): ${s.protocol}`);const a={secure:"https:"===s.protocol,hostname:s.hostname,port:s.port?parseInt(s.port,10):"https:"===s.protocol?443:80};return new o.BrowserLaraClient(a,t,null==r||r,i)};const n=r(221),o=r(631);var i=r(412);Object.defineProperty(e,"LaraClient",{enumerable:!0,get:function(){return i.LaraClient}});var s=r(631);Object.defineProperty(e,"HttpClient",{enumerable:!0,get:function(){return s.BrowserClient}})},343(t,e,r){Object.defineProperty(e,"__esModule",{value:!0}),e.BrowserS3Client=void 0;const n=r(364);class o extends n.S3Client{async _upload(t,e,r){const n=new FormData;for(const[t,r]of Object.entries(e))n.append(t,r);n.append("file",r),await fetch(t,{method:"POST",body:n})}async download(t){return(await fetch(t)).blob()}async downloadStream(t){const e=await fetch(t);if(!e.body)throw new Error("Response body is null");return e.body}wrapMultiPartFile(t){if(t instanceof File)return t;throw new TypeError(`Invalid file input in the browser. Expected an instance of File but received ${typeof t}.`)}}e.BrowserS3Client=o},364(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.S3Client=void 0,e.S3Client=class{async upload(t,e,r,n){return this._upload(t,e,this.wrapMultiPartFile(r),n)}}},821(t,e,r){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return new n.BrowserS3Client};const n=r(343)},816(t,e,r){Object.defineProperty(e,"__esModule",{value:!0}),e.Styleguides=void 0;const n=r(725);e.Styleguides=class{constructor(t){this.client=t}async list(){return await this.client.get("/v2/styleguides")}async get(t){try{return await this.client.get(`/v2/styleguides/${t}`)}catch(t){if(t instanceof n.LaraApiError&&404===t.statusCode)return null;throw t}}}},660(t,e,r){var n,o=this&&this.__createBinding||(Object.create?function(t,e,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(e,r);o&&!("get"in o?!e.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,o)}:function(t,e,r,n){void 0===n&&(n=r),t[n]=e[r]}),i=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),s=this&&this.__importStar||(n=function(t){return n=Object.getOwnPropertyNames||function(t){var e=[];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[e.length]=r);return e},n(t)},function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r=n(t),s=0;s<r.length;s++)"default"!==r[s]&&o(e,t,r[s]);return i(e,t),e});Object.defineProperty(e,"__esModule",{value:!0}),e.Translator=void 0;const a=r(328),u=r(50),l=r(514),c=r(731),d=r(629),h=s(r(837)),f=r(816),p=r(221),y=r(311);e.Translator=class{constructor(t,e){this.client=(0,h.default)(t,null==e?void 0:e.serverUrl,null==e?void 0:e.keepAlive,null==e?void 0:e.connectionTimeoutMs),this.memories=new d.Memories(this.client),this.documents=new u.Documents(this.client),this.glossaries=new l.Glossaries(this.client),this.styleguides=new f.Styleguides(this.client),this.audio=new a.AudioTranslator(this.client),this.images=new c.ImageTranslator(this.client)}get version(){return y.version}async getLanguages(){return await this.client.get("/v2/languages")}async translate(t,e,r,n,o){const i={};if(null==n?void 0:n.headers)for(const[t,e]of Object.entries(n.headers))i[t]=e;(null==n?void 0:n.noTrace)&&(i["X-No-Trace"]="true");const s=this.client.postAndGetStream("/v2/translate",{q:t,source:e,target:r,source_hint:null==n?void 0:n.sourceHint,content_type:null==n?void 0:n.contentType,multiline:!1!==(null==n?void 0:n.multiline),adapt_to:null==n?void 0:n.adaptTo,glossaries:null==n?void 0:n.glossaries,instructions:null==n?void 0:n.instructions,timeout:null==n?void 0:n.timeoutInMillis,priority:null==n?void 0:n.priority,use_cache:null==n?void 0:n.useCache,cache_ttl:null==n?void 0:n.cacheTTLSeconds,verbose:null==n?void 0:n.verbose,style:null==n?void 0:n.style,reasoning:null==n?void 0:n.reasoning,metadata:null==n?void 0:n.metadata,profanities_detect:null==n?void 0:n.profanitiesDetect,profanities_handling:null==n?void 0:n.profanitiesHandling,styleguide_id:null==n?void 0:n.styleguideId,styleguide_reasoning:null==n?void 0:n.styleguideReasoning,styleguide_explanation_language:null==n?void 0:n.styleguideExplanationLanguage},void 0,i);let a;for await(const t of s)(null==n?void 0:n.reasoning)&&o&&o(t),a=t;if(!a)throw new Error("No translation result received.");return a}async detect(t,e,r){return await this.client.post("/v2/detect/language",{q:t,hint:e,passlist:r})}async detectProfanities(t,e,r){return await this.client.post("/v2/detect/profanities",{text:t,language:e,content_type:r})}async qualityEstimation(t,e,r,n){return await this.client.post("/v2/detect/quality-estimation",{source:t,target:e,sentence:r,translation:n})}static async getLoginUrl(t){t||(t=p.DEFAULT_BASE_URL);const{body:e}=await h.HttpClient.get(`${t.replace(/\/+$/,"")}/v2/auth/login-page`);return e}}},221(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.DEFAULT_BASE_URL=void 0,e.DEFAULT_BASE_URL="https://api.laratranslate.com"},741(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.parseContent=function t(e){if(null==e)return e;if(Array.isArray(e))return e.map(t);if("string"==typeof e)return e.match(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.[0-9]{3}Z$/)?new Date(e):e;if("object"==typeof e){const r={};for(const[n,o]of Object.entries(e))r[n.replace(/_([a-z])/g,(t,e)=>e.toUpperCase())]=t(o);return r}return e}},311(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.version=void 0,e.version="1.11.1"},841(t,e){Object.defineProperty(e,"__esModule",{value:!0});const r=t=>{if("string"==typeof t)return t;if(Array.isArray(t))return t.map(r);if("object"==typeof t&&null!==t){const e={};for(const[n,o]of Object.entries(t))e[n.replace(/([A-Z])/g,"_$1").toLowerCase()]=r(o);return e}return t};e.default=r}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var i=e[n]={exports:{}};return t[n].call(i.exports,i,i.exports,r),i.exports}var n={};return(()=>{var t=n;Object.defineProperty(t,"__esModule",{value:!0}),t.version=t.Translator=t.Styleguides=t.Memories=t.ImageTranslator=t.Glossaries=t.TimeoutError=t.LaraError=t.LaraApiError=t.Documents=t.DocumentStatus=t.Credentials=t.AuthToken=t.AccessKey=t.VoiceGender=t.AudioTranslator=t.AudioStatus=void 0;var e=r(328);Object.defineProperty(t,"AudioStatus",{enumerable:!0,get:function(){return e.AudioStatus}}),Object.defineProperty(t,"AudioTranslator",{enumerable:!0,get:function(){return e.AudioTranslator}}),Object.defineProperty(t,"VoiceGender",{enumerable:!0,get:function(){return e.VoiceGender}});var o=r(414);Object.defineProperty(t,"AccessKey",{enumerable:!0,get:function(){return o.AccessKey}}),Object.defineProperty(t,"AuthToken",{enumerable:!0,get:function(){return o.AuthToken}}),Object.defineProperty(t,"Credentials",{enumerable:!0,get:function(){return o.Credentials}});var i=r(50);Object.defineProperty(t,"DocumentStatus",{enumerable:!0,get:function(){return i.DocumentStatus}}),Object.defineProperty(t,"Documents",{enumerable:!0,get:function(){return i.Documents}});var s=r(725);Object.defineProperty(t,"LaraApiError",{enumerable:!0,get:function(){return s.LaraApiError}}),Object.defineProperty(t,"LaraError",{enumerable:!0,get:function(){return s.LaraError}}),Object.defineProperty(t,"TimeoutError",{enumerable:!0,get:function(){return s.TimeoutError}});var a=r(514);Object.defineProperty(t,"Glossaries",{enumerable:!0,get:function(){return a.Glossaries}});var u=r(731);Object.defineProperty(t,"ImageTranslator",{enumerable:!0,get:function(){return u.ImageTranslator}});var l=r(629);Object.defineProperty(t,"Memories",{enumerable:!0,get:function(){return l.Memories}});var c=r(816);Object.defineProperty(t,"Styleguides",{enumerable:!0,get:function(){return c.Styleguides}});var d=r(660);Object.defineProperty(t,"Translator",{enumerable:!0,get:function(){return d.Translator}});var h=r(311);Object.defineProperty(t,"version",{enumerable:!0,get:function(){return h.version}})})(),n})());