@translated/lara 2.0.0-beta.8 → 2.0.0-beta.9
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/lib/index.d.mts +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +1 -1
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.d.mts
CHANGED
|
@@ -197,7 +197,7 @@ declare class Documents {
|
|
|
197
197
|
private readonly pollingInterval;
|
|
198
198
|
private readonly maxWaitTime;
|
|
199
199
|
constructor(client: AxiosInstance);
|
|
200
|
-
upload(file: UploadableFile,
|
|
200
|
+
upload(file: UploadableFile, filename: string, source: string | undefined, target: string, options?: DocumentUploadOptions): Promise<Document>;
|
|
201
201
|
status(id: string): Promise<Document>;
|
|
202
202
|
download(id: string, options?: DocumentDownloadOptions): Promise<DownloadResult>;
|
|
203
203
|
translate(file: UploadableFile, filenane: string, source: string | undefined, target: string, options?: DocumentTranslateOptions): Promise<DownloadResult>;
|
package/lib/index.d.ts
CHANGED
|
@@ -197,7 +197,7 @@ declare class Documents {
|
|
|
197
197
|
private readonly pollingInterval;
|
|
198
198
|
private readonly maxWaitTime;
|
|
199
199
|
constructor(client: AxiosInstance);
|
|
200
|
-
upload(file: UploadableFile,
|
|
200
|
+
upload(file: UploadableFile, filename: string, source: string | undefined, target: string, options?: DocumentUploadOptions): Promise<Document>;
|
|
201
201
|
status(id: string): Promise<Document>;
|
|
202
202
|
download(id: string, options?: DocumentDownloadOptions): Promise<DownloadResult>;
|
|
203
203
|
translate(file: UploadableFile, filenane: string, source: string | undefined, target: string, options?: DocumentTranslateOptions): Promise<DownloadResult>;
|
package/lib/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var K=Object.create;var v=Object.defineProperty;var z=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var X=Object.getPrototypeOf,q=Object.prototype.hasOwnProperty;var H=(n,e)=>{for(var t in e)v(n,t,{get:e[t],enumerable:!0})},G=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of B(e))!q.call(n,r)&&r!==t&&v(n,r,{get:()=>e[r],enumerable:!(s=z(e,r))||s.enumerable});return n};var R=(n,e,t)=>(t=n!=null?K(X(n)):{},G(e||!n||!n.__esModule?v(t,"default",{value:n,enumerable:!0}):t,n)),Z=n=>G(v({},"__esModule",{value:!0}),n);var Q={};H(Q,{DocumentStatus:()=>U,LaraApiError:()=>y,LaraError:()=>p,LaraTimeoutError:()=>u,Translator:()=>M});module.exports=Z(Q);var h=R(require("axios"));var p=class extends Error{},u=class extends p{},y=class extends p{constructor(e,t,s){super(t),this.statusCode=e,this.message=t,this.idTransaction=s}};var F=n=>{let e=new FormData;for(let[t,s]of Object.entries(n))if(s)if(Array.isArray(s))for(let r of s)e.append(t,r);else e.append(t,s);return[e,{}]};var L=R(require("form-data")),S=n=>{let e=new L.default;for(let[t,s]of Object.entries(n))if(s)if(Array.isArray(s))for(let r of s)e.append(t,r);else e.append(t,s);return[e,{...e.getHeaders()}]};var P;typeof window!="undefined"?P=F:P=S;var g=P;var f=n=>new Promise(e=>setTimeout(e,n));var w=class{constructor(e){this.pollingInterval=2e3;this.client=e}async list(){let{data:e}=await this.client.get("/v2/memories");return e}async create(e,t){let{data:s}=await this.client.post("/v2/memories",{name:e,external_id:t});return s}async get(e){let{data:t}=await this.client.get(`/v2/memories/${e}`);return t}async delete(e){let{data:t}=await this.client.delete(`/v2/memories/${e}`);return t}async update(e,t){let{data:s}=await this.client.put(`/v2/memories/${e}`,{name:t});return s}async addTranslation(e,t,s,r,a,i,o,l,m){let c=Array.isArray(e)?"/v2/memories/content":`/v2/memories/${e}/content`,{data:d}=await this.client.put(c,{ids:Array.isArray(e)?e:void 0,source:t,target:s,sentence:r,translation:a,tuid:i,sentence_before:o,sentence_after:l},{headers:m});return d}async deleteTranslation(e,t,s,r,a,i,o,l){let m=Array.isArray(e)?"/v2/memories/content":`/v2/memories/${e}/content`,{data:c}=await this.client.delete(m,{data:{ids:Array.isArray(e)?e:void 0,source:t,target:s,sentence:r,translation:a,tuid:i,sentence_before:o,sentence_after:l}});return c}async importTmx(e,t,s=!1){let[r,a]=g({tmx:t,compression:s?"gzip":void 0}),{data:i}=await this.client.post(`/v2/memories/${e}/import`,r,{headers:a});return i}async getImportStatus(e){let{data:t}=await this.client.get(`/v2/memories/imports/${e}`);return t}async waitForImport(e,t,s){let r=Date.now();for(;e.progress<1;){if(s&&Date.now()-r>s)throw new u;await f(this.pollingInterval),e=await this.getImportStatus(e.id),t&&t(e)}return e}async connect(e){let{data:t}=await this.client.post("/v2/memories/connect",{ids:Array.isArray(e)?e:[e]});return Array.isArray(e)?t:t[0]}};var _="2.0.0-beta.7";var A=n=>Object.entries(n).reduce((e,[t,s])=>(s!=null&&e.push(`${encodeURIComponent(t)}=${encodeURIComponent(s)}`),e),[]).join("&");var k=typeof window=="undefined";var T=class{constructor(e){this.pollingInterval=2e3;this.client=e}async list(){let{data:e}=await this.client.get("/v2/glossaries");return e}async create(e){let{data:t}=await this.client.post("/v2/glossaries",{name:e});return t}async get(e){let{data:t}=await this.client.get(`/v2/glossaries/${e}`);return t}async delete(e){let{data:t}=await this.client.delete(`/v2/glossaries/${e}`);return t}async update(e,t){let{data:s}=await this.client.put(`/v2/glossaries/${e}`,{name:t});return s}async importCsv(e,t,s=!1){let[r,a]=g({csv:t,compression:s?"gzip":void 0}),{data:i}=await this.client.post(`/v2/glossaries/${e}/import`,r,{headers:a});return i}async getImportStatus(e){let{data:t}=await this.client.get(`/v2/glossaries/imports/${e}`);return t}async waitForImport(e,t,s){let r=Date.now();for(;e.progress<1;){if(s&&Date.now()-r>s)throw new u;await f(this.pollingInterval),e=await this.getImportStatus(e.id),t&&t(e)}return e}async counts(e){let{data:t}=await this.client.get(`/v2/glossaries/${e}/counts`);return t}async export(e,t,s){let r=A({content_type:t,source:s});if(k){let{data:a}=await this.client.get(`/v2/glossaries/${e}/export?${r}`,{responseType:"stream"});return a}else{let{data:a}=await this.client.get(`/v2/glossaries/${e}/export?${r}`,{responseType:"blob"});return a.stream()}}};var I=R(require("axios"));var U=(o=>(o.INITIALIZED="initialized",o.ANALYZING="analyzing",o.PAUSED="paused",o.READY="ready",o.TRANSLATING="translating",o.TRANSLATED="translated",o.ERROR="error",o))(U||{});var O=n=>{if(typeof n=="string")return n;if(Array.isArray(n))return n.map(O);if(typeof n=="object"&&n!==null){let e={};for(let[t,s]of Object.entries(n)){let r=t.replace(/([A-Z])/g,"_$1").toLowerCase();e[r]=O(s)}return e}return n},E=O;var b=class{constructor(e){this.pollingInterval=2e3;this.maxWaitTime=1e3*60*15;this.client=e}async upload(e,t,s,r,a){let{data:i}=await this.client.get(`/v2/documents/upload-url?filename=${encodeURIComponent(t)}`),{url:o,fields:l}=i,[m,c]=g({...l,file:e});await I.default.post(o,m,{headers:c});let d=a!=null&&a.noTrace?{"X-Lara-No-Trace":"true"}:void 0,{data:D}=await this.client.post("/v2/documents",{source:s,target:r,s3key:l.key,adapt_to:a==null?void 0:a.adaptTo,glossaries:a==null?void 0:a.glossaries,style:a==null?void 0:a.style,password:a==null?void 0:a.password,extraction_params:a!=null&&a.extractionParams?E(a.extractionParams):void 0},d?{headers:d}:void 0);return D}async status(e){let{data:t}=await this.client.get(`/v2/documents/${e}`);return t}async download(e,t){let s=A({output_format:t==null?void 0:t.outputFormat}),{data:r}=await this.client.get(`/v2/documents/${e}/download-url?${s}`);if(k){let{data:a}=await I.default.get(r.url,{responseType:"stream"});return a}else{let{data:a}=await I.default.get(r.url,{responseType:"blob"});return a.stream()}}async translate(e,t,s,r,a){let i={adaptTo:a==null?void 0:a.adaptTo,glossaries:a==null?void 0:a.glossaries,noTrace:a==null?void 0:a.noTrace,style:a==null?void 0:a.style,password:a==null?void 0:a.password,extractionParams:a==null?void 0:a.extractionParams},{id:o}=await this.upload(e,t,s,r,i),l={outputFormat:a==null?void 0:a.outputFormat},m=Date.now();for(;Date.now()-m<this.maxWaitTime;){await f(this.pollingInterval);let{status:c,errorReason:d}=await this.status(o);if(c==="translated")return await this.download(o,l);if(c==="error")throw new y(500,d,"unknown")}throw new u}};var $=n=>{if(typeof n=="string")return n;if(Array.isArray(n))return n.map($);if(typeof n=="object"&&n!==null){let e={};for(let[t,s]of Object.entries(n)){let r=t.replace(/_([a-z])/g,(a,i)=>i.toUpperCase());e[r]=$(s)}return e}return n},j=$;var x="https://api.laratranslate.com",M=class n{constructor(e,t,s,r){var a;this.accessKey=e,this.credentials=t,this.authToken=s,this.options=r||{},this.client=h.default.create({baseURL:(a=r==null?void 0:r.serverUrl)!=null?a:x,headers:{"X-Lara-SDK-Name":"lara-node","X-Lara-SDK-Version":_,"X-Lara-Date":new Date().toUTCString(),...(r==null?void 0:r.extraHeaders)||{}}}),this.client.interceptors.request.use(async i=>{let o=await this.authenticate();return i.headers.Authorization=`Bearer ${o}`,i},Promise.reject),this.client.interceptors.response.use(i=>(i.config.responseType!=="stream"&&i.data&&typeof i.data=="object"&&(i.data=j(i.data)),i),async i=>{var l,m,c,d,D,C;let o=i.config;if(!o.isRetry&&i.response&&i.response.status===401&&i.response.data.message==="jwt expired"){this.token=void 0;let N=await this.authenticate();return o.isRetry=!0,o.headers.Authorization=`Bearer ${N}`,this.client(o)}return Promise.reject(new y((m=(l=i.response)==null?void 0:l.status)!=null?m:500,(D=(d=(c=i.response)==null?void 0:c.data)==null?void 0:d.message)!=null?D:i.message,(C=i.response)==null?void 0:C.headers["x-transaction-id"]))}),this.memories=new w(this.client),this.glossaries=new T(this.client),this.documents=new b(this.client)}async authenticate(){var e,t,s,r,a,i;if(this.token)return this.token;if(this.refreshToken){let{data:o,headers:l}=await h.default.post(`${(t=(e=this.options)==null?void 0:e.serverUrl)!=null?t:x}/v2/auth/refresh`,null,{headers:{authorization:`Bearer ${this.refreshToken}`,"X-Lara-Date":new Date().toUTCString()}});return this.token=o.token,this.refreshToken=l["x-lara-refresh-token"],this.token}else if(this.accessKey){let{data:o,headers:l}=await h.default.post(`${(r=(s=this.options)==null?void 0:s.serverUrl)!=null?r:x}/v2/auth`,this.accessKey,{headers:{"X-Lara-Date":new Date().toUTCString()}});return this.token=o.token,this.refreshToken=l["x-lara-refresh-token"],this.token}else if(this.credentials){let{data:o,headers:l}=await h.default.post(`${(i=(a=this.options)==null?void 0:a.serverUrl)!=null?i:x}/v2/auth/Unknown/login`,this.credentials,{headers:{"X-Lara-Date":new Date().toUTCString()}});return this.token=o.token,this.refreshToken=l["x-lara-refresh-token"],this.token}else{if(this.authToken)return this.token=this.authToken.token,this.refreshToken=this.authToken.refresh_token,this.authToken=void 0,this.token;throw new Error("No authentication method provided")}}async translate(e,t,s,r){let a={};if(r!=null&&r.headers)for(let[o,l]of Object.entries(r.headers))a[o]=l;r!=null&&r.noTrace&&(a["X-No-Trace"]="true");let{data:i}=await this.client.post("/v2/translate",{q:e,source:t||void 0,target:s,source_hint:r==null?void 0:r.sourceHint,content_type:r==null?void 0:r.contentType,multiline:(r==null?void 0:r.multiline)!==!1,adapt_to:r==null?void 0:r.adaptTo,glossaries:r==null?void 0:r.glossaries,instructions:r==null?void 0:r.instructions,timeout:r==null?void 0:r.timeoutInMillis,priority:r==null?void 0:r.priority,use_cache:r==null?void 0:r.useCache,cache_ttl:r==null?void 0:r.cacheTTLSeconds,verbose:r==null?void 0:r.verbose,style:r==null?void 0:r.style},a);return i}async getLanguages(){let{data:e}=await this.client.get("/v2/languages");return e}static async getLoginUrl(e){let{data:t}=await h.default.get(`${e!=null?e:x}/v2/auth/login-page`);return t}static byAccessKey(e,t,s){return new n({id:e,secret:t},void 0,void 0,s)}static byCredentials(e,t,s){return new n(void 0,{email:e,password:t},void 0,s)}static byAuthToken(e,t,s){return new n(void 0,void 0,{token:e,refresh_token:t},s)}};0&&(module.exports={DocumentStatus,LaraApiError,LaraError,LaraTimeoutError,Translator});
|
|
1
|
+
"use strict";var Z=Object.create;var A=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var V=Object.getPrototypeOf,J=Object.prototype.hasOwnProperty;var W=(n,e)=>{for(var t in e)A(n,t,{get:e[t],enumerable:!0})},F=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Y(e))!J.call(n,r)&&r!==t&&A(n,r,{get:()=>e[r],enumerable:!(s=Q(e,r))||s.enumerable});return n};var h=(n,e,t)=>(t=n!=null?Z(V(n)):{},F(e||!n||!n.__esModule?A(t,"default",{value:n,enumerable:!0}):t,n)),ee=n=>F(A({},"__esModule",{value:!0}),n);var te={};W(te,{DocumentStatus:()=>P,LaraApiError:()=>y,LaraError:()=>w,LaraTimeoutError:()=>u,Translator:()=>M});module.exports=ee(te);var p=h(require("axios"));var w=class extends Error{},u=class extends w{},y=class extends w{constructor(e,t,s){super(t),this.statusCode=e,this.message=t,this.idTransaction=s}};var G=n=>{let e=new FormData;for(let[t,s]of Object.entries(n))if(s)if(Array.isArray(s))for(let r of s)e.append(t,r);else e.append(t,s);return[e,{}]};var S=h(require("form-data")),L=n=>{let e=new S.default;for(let[t,s]of Object.entries(n))if(s)if(Array.isArray(s))for(let r of s)e.append(t,r);else e.append(t,s);return[e,{...e.getHeaders()}]};var I;typeof window!="undefined"?I=G:I=L;var g=I;var f=n=>new Promise(e=>setTimeout(e,n));var b=class{constructor(e){this.pollingInterval=2e3;this.client=e}async list(){let{data:e}=await this.client.get("/v2/memories");return e}async create(e,t){let{data:s}=await this.client.post("/v2/memories",{name:e,external_id:t});return s}async get(e){let{data:t}=await this.client.get(`/v2/memories/${e}`);return t}async delete(e){let{data:t}=await this.client.delete(`/v2/memories/${e}`);return t}async update(e,t){let{data:s}=await this.client.put(`/v2/memories/${e}`,{name:t});return s}async addTranslation(e,t,s,r,a,i,o,l,m){let c=Array.isArray(e)?"/v2/memories/content":`/v2/memories/${e}/content`,{data:d}=await this.client.put(c,{ids:Array.isArray(e)?e:void 0,source:t,target:s,sentence:r,translation:a,tuid:i,sentence_before:o,sentence_after:l},{headers:m});return d}async deleteTranslation(e,t,s,r,a,i,o,l){let m=Array.isArray(e)?"/v2/memories/content":`/v2/memories/${e}/content`,{data:c}=await this.client.delete(m,{data:{ids:Array.isArray(e)?e:void 0,source:t,target:s,sentence:r,translation:a,tuid:i,sentence_before:o,sentence_after:l}});return c}async importTmx(e,t,s=!1){let[r,a]=g({tmx:t,compression:s?"gzip":void 0}),{data:i}=await this.client.post(`/v2/memories/${e}/import`,r,{headers:a});return i}async getImportStatus(e){let{data:t}=await this.client.get(`/v2/memories/imports/${e}`);return t}async waitForImport(e,t,s){let r=Date.now();for(;e.progress<1;){if(s&&Date.now()-r>s)throw new u;await f(this.pollingInterval),e=await this.getImportStatus(e.id),t&&t(e)}return e}async connect(e){let{data:t}=await this.client.post("/v2/memories/connect",{ids:Array.isArray(e)?e:[e]});return Array.isArray(e)?t:t[0]}};var _="2.0.0-beta.8";var k=n=>Object.entries(n).reduce((e,[t,s])=>(s!=null&&e.push(`${encodeURIComponent(t)}=${encodeURIComponent(s)}`),e),[]).join("&");var R=typeof window=="undefined";var T=class{constructor(e){this.pollingInterval=2e3;this.client=e}async list(){let{data:e}=await this.client.get("/v2/glossaries");return e}async create(e){let{data:t}=await this.client.post("/v2/glossaries",{name:e});return t}async get(e){let{data:t}=await this.client.get(`/v2/glossaries/${e}`);return t}async delete(e){let{data:t}=await this.client.delete(`/v2/glossaries/${e}`);return t}async update(e,t){let{data:s}=await this.client.put(`/v2/glossaries/${e}`,{name:t});return s}async importCsv(e,t,s=!1){let[r,a]=g({csv:t,compression:s?"gzip":void 0}),{data:i}=await this.client.post(`/v2/glossaries/${e}/import`,r,{headers:a});return i}async getImportStatus(e){let{data:t}=await this.client.get(`/v2/glossaries/imports/${e}`);return t}async waitForImport(e,t,s){let r=Date.now();for(;e.progress<1;){if(s&&Date.now()-r>s)throw new u;await f(this.pollingInterval),e=await this.getImportStatus(e.id),t&&t(e)}return e}async counts(e){let{data:t}=await this.client.get(`/v2/glossaries/${e}/counts`);return t}async export(e,t,s){let r=k({content_type:t,source:s});if(R){let{data:a}=await this.client.get(`/v2/glossaries/${e}/export?${r}`,{responseType:"stream"});return a}else{let{data:a}=await this.client.get(`/v2/glossaries/${e}/export?${r}`,{responseType:"blob"});return a.stream()}}};var X=h(require("axios"));var P=(o=>(o.INITIALIZED="initialized",o.ANALYZING="analyzing",o.PAUSED="paused",o.READY="ready",o.TRANSLATING="translating",o.TRANSLATED="translated",o.ERROR="error",o))(P||{});var U=n=>{if(typeof n=="string")return n;if(Array.isArray(n))return n.map(U);if(typeof n=="object"&&n!==null){let e={};for(let[t,s]of Object.entries(n)){let r=t.replace(/([A-Z])/g,"_$1").toLowerCase();e[r]=U(s)}return e}return n},E=U;var j=h(require("axios")),N=async n=>{let{data:e}=await j.default.get(n,{responseType:"blob"});return e.stream()};var K=h(require("axios")),z=async n=>{let{data:e}=await K.default.get(n,{responseType:"stream"});return e};var O;R?O=z:O=N;var B=O;var x=class{constructor(e){this.pollingInterval=2e3;this.maxWaitTime=1e3*60*15;this.client=e}async upload(e,t,s,r,a){let{data:i}=await this.client.get(`/v2/documents/upload-url?filename=${encodeURIComponent(t)}`),{url:o,fields:l}=i,[m,c]=g({...l,file:e});await X.default.post(o,m,{headers:c});let d=a!=null&&a.noTrace?{"X-Lara-No-Trace":"true"}:void 0,{data:v}=await this.client.post("/v2/documents",{source:s,target:r,s3key:l.key,adapt_to:a==null?void 0:a.adaptTo,glossaries:a==null?void 0:a.glossaries,style:a==null?void 0:a.style,password:a==null?void 0:a.password,extraction_params:a!=null&&a.extractionParams?E(a.extractionParams):void 0},d?{headers:d}:void 0);return v}async status(e){let{data:t}=await this.client.get(`/v2/documents/${e}`);return t}async download(e,t){let s=k({output_format:t==null?void 0:t.outputFormat}),{data:r}=await this.client.get(`/v2/documents/${e}/download-url?${s}`);return await B(r.url)}async translate(e,t,s,r,a){let i={adaptTo:a==null?void 0:a.adaptTo,glossaries:a==null?void 0:a.glossaries,noTrace:a==null?void 0:a.noTrace,style:a==null?void 0:a.style,password:a==null?void 0:a.password,extractionParams:a==null?void 0:a.extractionParams},{id:o}=await this.upload(e,t,s,r,i),l={outputFormat:a==null?void 0:a.outputFormat},m=Date.now();for(;Date.now()-m<this.maxWaitTime;){await f(this.pollingInterval);let{status:c,errorReason:d}=await this.status(o);if(c==="translated")return await this.download(o,l);if(c==="error")throw new y(500,d,"unknown")}throw new u}};var $=n=>{if(typeof n=="string")return n;if(Array.isArray(n))return n.map($);if(typeof n=="object"&&n!==null){let e={};for(let[t,s]of Object.entries(n)){let r=t.replace(/_([a-z])/g,(a,i)=>i.toUpperCase());e[r]=$(s)}return e}return n},q=$;var D="https://api.laratranslate.com",M=class n{constructor(e,t,s,r){var a;this.accessKey=e,this.credentials=t,this.authToken=s,this.options=r||{},this.client=p.default.create({baseURL:(a=r==null?void 0:r.serverUrl)!=null?a:D,headers:{"X-Lara-SDK-Name":"lara-node","X-Lara-SDK-Version":_,"X-Lara-Date":new Date().toUTCString(),...(r==null?void 0:r.extraHeaders)||{}}}),this.client.interceptors.request.use(async i=>{let o=await this.authenticate();return i.headers.Authorization=`Bearer ${o}`,i},Promise.reject),this.client.interceptors.response.use(i=>(i.config.responseType!=="stream"&&i.data&&typeof i.data=="object"&&(i.data=q(i.data)),i),async i=>{var l,m,c,d,v,C;let o=i.config;if(!o.isRetry&&i.response&&i.response.status===401&&i.response.data.message==="jwt expired"){this.token=void 0;let H=await this.authenticate();return o.isRetry=!0,o.headers.Authorization=`Bearer ${H}`,this.client(o)}return Promise.reject(new y((m=(l=i.response)==null?void 0:l.status)!=null?m:500,(v=(d=(c=i.response)==null?void 0:c.data)==null?void 0:d.message)!=null?v:i.message,(C=i.response)==null?void 0:C.headers["x-transaction-id"]))}),this.memories=new b(this.client),this.glossaries=new T(this.client),this.documents=new x(this.client)}async authenticate(){var e,t,s,r,a,i;if(this.token)return this.token;if(this.refreshToken){let{data:o,headers:l}=await p.default.post(`${(t=(e=this.options)==null?void 0:e.serverUrl)!=null?t:D}/v2/auth/refresh`,null,{headers:{authorization:`Bearer ${this.refreshToken}`,"X-Lara-Date":new Date().toUTCString()}});return this.token=o.token,this.refreshToken=l["x-lara-refresh-token"],this.token}else if(this.accessKey){let{data:o,headers:l}=await p.default.post(`${(r=(s=this.options)==null?void 0:s.serverUrl)!=null?r:D}/v2/auth`,this.accessKey,{headers:{"X-Lara-Date":new Date().toUTCString()}});return this.token=o.token,this.refreshToken=l["x-lara-refresh-token"],this.token}else if(this.credentials){let{data:o,headers:l}=await p.default.post(`${(i=(a=this.options)==null?void 0:a.serverUrl)!=null?i:D}/v2/auth/Unknown/login`,this.credentials,{headers:{"X-Lara-Date":new Date().toUTCString()}});return this.token=o.token,this.refreshToken=l["x-lara-refresh-token"],this.token}else{if(this.authToken)return this.token=this.authToken.token,this.refreshToken=this.authToken.refresh_token,this.authToken=void 0,this.token;throw new Error("No authentication method provided")}}async translate(e,t,s,r){let a={};if(r!=null&&r.headers)for(let[o,l]of Object.entries(r.headers))a[o]=l;r!=null&&r.noTrace&&(a["X-No-Trace"]="true");let{data:i}=await this.client.post("/v2/translate",{q:e,source:t||void 0,target:s,source_hint:r==null?void 0:r.sourceHint,content_type:r==null?void 0:r.contentType,multiline:(r==null?void 0:r.multiline)!==!1,adapt_to:r==null?void 0:r.adaptTo,glossaries:r==null?void 0:r.glossaries,instructions:r==null?void 0:r.instructions,timeout:r==null?void 0:r.timeoutInMillis,priority:r==null?void 0:r.priority,use_cache:r==null?void 0:r.useCache,cache_ttl:r==null?void 0:r.cacheTTLSeconds,verbose:r==null?void 0:r.verbose,style:r==null?void 0:r.style},a);return i}async getLanguages(){let{data:e}=await this.client.get("/v2/languages");return e}static async getLoginUrl(e){let{data:t}=await p.default.get(`${e!=null?e:D}/v2/auth/login-page`);return t}static byAccessKey(e,t,s){return new n({id:e,secret:t},void 0,void 0,s)}static byCredentials(e,t,s){return new n(void 0,{email:e,password:t},void 0,s)}static byAuthToken(e,t,s){return new n(void 0,void 0,{token:e,refresh_token:t},s)}};0&&(module.exports={DocumentStatus,LaraApiError,LaraError,LaraTimeoutError,Translator});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/Translator.ts","../src/utils/errors.ts","../src/utils/formdata/browser.ts","../src/utils/formdata/node.ts","../src/utils/formdata/index.ts","../src/utils/sleep.ts","../src/Memories.ts","../src/sdk-version.ts","../src/utils/toQueryString.ts","../src/utils/isNode.ts","../src/Glossaries.ts","../src/Documents.ts","../src/models/documents.ts","../src/utils/toSnakeCase.ts","../src/utils/toCamelCase.ts"],"sourcesContent":["export * from './Translator';\nexport * from './models';\nexport * from './utils/errors';\n","import axios, { AxiosInstance } from 'axios';\nimport {\n AccessKey,\n Credentials,\n AuthToken,\n TranslatorOptions,\n TextBlock,\n TranslateOptions,\n TextResult,\n AuthenticationResponse,\n} from './models';\nimport Memories from './Memories';\nimport { version } from './sdk-version';\nimport Glossaries from './Glossaries';\nimport Documents from './Documents';\nimport toCamelCase from './utils/toCamelCase';\nimport { LaraApiError } from './utils/errors';\n\nconst DEFAULT_BASE_URL = 'https://api.laratranslate.com';\n\nexport class Translator {\n private readonly accessKey?: AccessKey;\n private readonly credentials?: Credentials;\n private authToken?: AuthToken;\n\n public readonly memories: Memories;\n public readonly glossaries: Glossaries;\n public readonly documents: Documents;\n\n private token?: string;\n private refreshToken?: string;\n\n private readonly options?: TranslatorOptions;\n\n private readonly client: AxiosInstance;\n\n constructor(accessKey?: AccessKey, credentials?: Credentials, authToken?: AuthToken, options?: TranslatorOptions) {\n this.accessKey = accessKey;\n this.credentials = credentials;\n this.authToken = authToken;\n\n this.options = options || {};\n\n this.client = axios.create({\n baseURL: options?.serverUrl ?? DEFAULT_BASE_URL,\n headers: {\n 'X-Lara-SDK-Name': 'lara-node',\n 'X-Lara-SDK-Version': version,\n 'X-Lara-Date': new Date().toUTCString(),\n ...(options?.extraHeaders || {}),\n },\n });\n\n // Intercept request to add authentication header\n this.client.interceptors.request.use(async (request) => {\n const token = await this.authenticate();\n\n request.headers.Authorization = `Bearer ${token}`;\n return request;\n }, Promise.reject);\n\n // Intercepts errors to handle authentication errors\n this.client.interceptors.response.use(\n (response) => {\n // Convert payload in camel case if needed\n if (response.config.responseType !== 'stream' && response.data && typeof response.data === 'object') {\n response.data = toCamelCase(response.data);\n }\n\n return response;\n },\n async (error) => {\n const originalRequest = error.config;\n\n if (!originalRequest.isRetry && error.response && error.response.status === 401 && error.response.data.message === 'jwt expired') {\n this.token = undefined;\n const token = await this.authenticate();\n originalRequest.isRetry = true;\n originalRequest.headers.Authorization = `Bearer ${token}`;\n return this.client(originalRequest);\n }\n\n return Promise.reject(\n new LaraApiError(\n error.response?.status ?? 500,\n error.response?.data?.message ?? error.message,\n error.response?.headers['x-transaction-id'],\n ),\n );\n },\n );\n\n this.memories = new Memories(this.client);\n this.glossaries = new Glossaries(this.client);\n this.documents = new Documents(this.client);\n }\n\n private async authenticate(): Promise<string> {\n // If the token is set, return it\n if (this.token) return this.token;\n\n // If we have a refresh token, use it to get a new token\n if (this.refreshToken) {\n const { data, headers } = await axios.post<AuthenticationResponse>(\n `${this.options?.serverUrl ?? DEFAULT_BASE_URL}/v2/auth/refresh`,\n null,\n {\n headers: {\n authorization: `Bearer ${this.refreshToken}`,\n 'X-Lara-Date': new Date().toUTCString(),\n },\n },\n );\n\n this.token = data.token;\n this.refreshToken = headers['x-lara-refresh-token'];\n return this.token;\n } else if (this.accessKey) {\n // Use access key to get a new token\n const { data, headers } = await axios.post<AuthenticationResponse>(\n `${this.options?.serverUrl ?? DEFAULT_BASE_URL}/v2/auth`,\n this.accessKey,\n {\n headers: {\n 'X-Lara-Date': new Date().toUTCString(),\n },\n },\n );\n\n this.token = data.token;\n this.refreshToken = headers['x-lara-refresh-token'];\n return this.token;\n } else if (this.credentials) {\n // Use credentials to get a new token\n const { data, headers } = await axios.post<AuthenticationResponse>(\n //FIXME: client id should be set\n `${this.options?.serverUrl ?? DEFAULT_BASE_URL}/v2/auth/Unknown/login`,\n this.credentials,\n {\n headers: {\n 'X-Lara-Date': new Date().toUTCString(),\n },\n },\n );\n\n this.token = data.token;\n this.refreshToken = headers['x-lara-refresh-token'];\n return this.token;\n } else if (this.authToken) {\n // Use the provided auth token\n this.token = this.authToken.token;\n this.refreshToken = this.authToken.refresh_token;\n this.authToken = undefined;\n return this.token;\n } else {\n throw new Error('No authentication method provided');\n }\n }\n\n async translate<T extends string | string[] | TextBlock[]>(\n text: T,\n source: string | undefined,\n target: string,\n options?: TranslateOptions,\n ): Promise<TextResult<T>> {\n const headers: Record<string, string> = {};\n\n if (options?.headers) {\n for (const [name, value] of Object.entries(options.headers)) {\n headers[name] = value;\n }\n }\n\n if (options?.noTrace) headers['X-No-Trace'] = 'true';\n\n const { data } = await this.client.post<TextResult<T>>(\n `/v2/translate`,\n {\n q: text,\n source: !!source ? source : undefined,\n target,\n source_hint: options?.sourceHint,\n content_type: options?.contentType,\n multiline: options?.multiline !== false,\n adapt_to: options?.adaptTo,\n glossaries: options?.glossaries,\n instructions: options?.instructions,\n timeout: options?.timeoutInMillis,\n priority: options?.priority,\n use_cache: options?.useCache,\n cache_ttl: options?.cacheTTLSeconds,\n verbose: options?.verbose,\n style: options?.style,\n },\n headers,\n );\n\n return data;\n }\n\n async getLanguages(): Promise<string[]> {\n const { data } = await this.client.get<string[]>(`/v2/languages`);\n return data;\n }\n\n static async getLoginUrl(serverUrl?: string): Promise<string> {\n const { data } = await axios.get<string>(`${serverUrl ?? DEFAULT_BASE_URL}/v2/auth/login-page`);\n return data;\n }\n\n static byAccessKey(id: string, secret: string, options?: TranslatorOptions): Translator {\n return new Translator({ id, secret }, undefined, undefined, options);\n }\n\n static byCredentials(email: string, password: string, options?: TranslatorOptions): Translator {\n return new Translator(undefined, { email, password }, undefined, options);\n }\n\n static byAuthToken(token: string, refresh_token: string, options?: TranslatorOptions): Translator {\n return new Translator(undefined, undefined, { token, refresh_token }, options);\n }\n}\n","export class LaraError extends Error {}\n\nexport class LaraTimeoutError extends LaraError {}\n\nexport class LaraApiError extends LaraError {\n public readonly statusCode: number;\n public readonly message: string;\n public readonly idTransaction: string;\n\n constructor(statusCode: number, message: string, idTransaction: string) {\n super(message);\n this.statusCode = statusCode;\n this.message = message;\n this.idTransaction = idTransaction;\n }\n}\n","export default (data: Record<string, any>) => {\n const formData = new FormData();\n for (const [key, value] of Object.entries(data)) {\n if (!value) continue;\n if (Array.isArray(value)) {\n for (const v of value) formData.append(key, v);\n } else {\n formData.append(key, value);\n }\n }\n\n return [formData, {}];\n};\n","import FormData from 'form-data';\n\nexport default (data: Record<string, any>): [FormData, { [key: string]: any }] => {\n const formData = new FormData();\n for (const [key, value] of Object.entries(data)) {\n if (!value) continue;\n if (Array.isArray(value)) {\n for (const v of value) formData.append(key, v);\n } else {\n formData.append(key, value);\n }\n }\n\n return [formData, { ...formData.getHeaders() }];\n};\n","import browserForm from './browser.js';\nimport nodeForm from './node.js';\n\nlet form;\n\nif (typeof window !== 'undefined') {\n form = browserForm;\n} else {\n form = nodeForm;\n}\n\nexport default form as (data: Record<string, any>) => [any, { [key: string]: any }];\n","export default (millis: number) => new Promise((resolve) => setTimeout(resolve, millis));\n","import { AxiosInstance } from 'axios';\nimport { LaraTimeoutError } from './utils/errors';\nimport { Memory, MemoryImport, UploadableFile } from './models';\nimport toFormData from './utils/formdata';\nimport sleep from './utils/sleep';\n\nexport default class Memories {\n private readonly client: AxiosInstance;\n private readonly pollingInterval: number = 2000;\n\n constructor(client: AxiosInstance) {\n this.client = client;\n }\n\n public async list(): Promise<Memory[]> {\n const { data } = await this.client.get<Memory[]>('/v2/memories');\n return data;\n }\n\n public async create(name: string, externalId?: string): Promise<Memory> {\n const { data } = await this.client.post<Memory>('/v2/memories', {\n name,\n external_id: externalId,\n });\n return data;\n }\n\n public async get(id: string): Promise<Memory> {\n const { data } = await this.client.get<Memory>(`/v2/memories/${id}`);\n return data;\n }\n\n public async delete(id: string): Promise<Memory> {\n const { data } = await this.client.delete<Memory>(`/v2/memories/${id}`);\n return data;\n }\n\n public async update(id: string, name: string): Promise<Memory> {\n const { data } = await this.client.put<Memory>(`/v2/memories/${id}`, { name });\n return data;\n }\n\n public async addTranslation(\n id: string | string[],\n source: string,\n target: string,\n sentence: string,\n translation: string,\n tuid?: string,\n sentenceBefore?: string,\n sentenceAfter?: string,\n headers?: Record<string, any>,\n ): Promise<MemoryImport> {\n const url = Array.isArray(id) ? '/v2/memories/content' : `/v2/memories/${id}/content`;\n const { data } = await this.client.put<MemoryImport>(\n url,\n {\n ids: Array.isArray(id) ? id : undefined,\n source,\n target,\n sentence,\n translation,\n tuid,\n sentence_before: sentenceBefore,\n sentence_after: sentenceAfter,\n },\n {\n headers,\n },\n );\n return data;\n }\n\n public async deleteTranslation(\n id: string | string[],\n source: string,\n target: string,\n sentence?: string,\n translation?: string,\n tuid?: string,\n sentenceBefore?: string,\n sentenceAfter?: string,\n ): Promise<MemoryImport> {\n const url = Array.isArray(id) ? '/v2/memories/content' : `/v2/memories/${id}/content`;\n const { data } = await this.client.delete<MemoryImport>(url, {\n data: {\n ids: Array.isArray(id) ? id : undefined,\n source,\n target,\n sentence,\n translation,\n tuid,\n sentence_before: sentenceBefore,\n sentence_after: sentenceAfter,\n },\n });\n return data;\n }\n\n public async importTmx(id: string, tmx: UploadableFile, gzip: boolean = false) {\n const [formData, headers] = toFormData({\n tmx,\n compression: gzip ? 'gzip' : undefined,\n });\n\n const { data } = await this.client.post<MemoryImport>(`/v2/memories/${id}/import`, formData, {\n headers,\n });\n\n return data;\n }\n\n public async getImportStatus(id: string): Promise<MemoryImport> {\n const { data } = await this.client.get(`/v2/memories/imports/${id}`);\n return data;\n }\n\n public async waitForImport(\n mImport: MemoryImport,\n updateCallback?: (mImport: MemoryImport) => void,\n maxWaitTime?: number,\n ): Promise<MemoryImport> {\n const start = Date.now();\n\n while (mImport.progress < 1.0) {\n if (maxWaitTime && Date.now() - start > maxWaitTime) throw new LaraTimeoutError();\n\n await sleep(this.pollingInterval);\n\n mImport = await this.getImportStatus(mImport.id);\n\n updateCallback && updateCallback(mImport);\n }\n\n return mImport;\n }\n\n public async connect<T extends string | string[]>(ids: T): Promise<T extends string ? Memory : Memory[]> {\n const { data } = await this.client.post<Memory[]>('/v2/memories/connect', {\n ids: Array.isArray(ids) ? ids : [ids],\n });\n\n return (Array.isArray(ids) ? data : data[0]) as T extends string ? Memory : Memory[];\n }\n}\n","export const version = '2.0.0-beta.7';\n","export default (params: Record<string, any>): string =>\n Object.entries(params)\n .reduce((acc, [key, value]) => {\n if (value !== undefined && value !== null) {\n acc.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`);\n }\n return acc;\n }, [] as string[])\n .join('&');\n","export default typeof window === 'undefined';\n","import { Readable } from 'node:stream';\nimport { blob } from 'stream/consumers';\nimport { AxiosInstance } from 'axios';\nimport { LaraTimeoutError } from './utils/errors';\nimport { DownloadResult, Glossary, GlossaryCounts, GlossaryImport, UploadableFile } from './models';\nimport toFormData from './utils/formdata';\nimport sleep from './utils/sleep';\nimport toQueryString from './utils/toQueryString';\nimport isNode from './utils/isNode';\n\nexport default class Glossaries {\n private readonly client: AxiosInstance;\n private readonly pollingInterval: number = 2000;\n\n constructor(client: AxiosInstance) {\n this.client = client;\n }\n\n public async list(): Promise<Glossary[]> {\n const { data } = await this.client.get<Glossary[]>('/v2/glossaries');\n return data;\n }\n\n public async create(name: string): Promise<Glossary> {\n const { data } = await this.client.post<Glossary>('/v2/glossaries', {\n name,\n });\n return data;\n }\n\n public async get(id: string): Promise<Glossary> {\n const { data } = await this.client.get<Glossary>(`/v2/glossaries/${id}`);\n return data;\n }\n\n public async delete(id: string): Promise<Glossary> {\n const { data } = await this.client.delete<Glossary>(`/v2/glossaries/${id}`);\n return data;\n }\n\n public async update(id: string, name: string): Promise<Glossary> {\n const { data } = await this.client.put<Glossary>(`/v2/glossaries/${id}`, { name });\n return data;\n }\n\n public async importCsv(id: string, csv: UploadableFile, gzip: boolean = false): Promise<GlossaryImport> {\n const [formData, headers] = toFormData({\n csv,\n compression: gzip ? 'gzip' : undefined,\n });\n\n const { data } = await this.client.post<GlossaryImport>(`/v2/glossaries/${id}/import`, formData, { headers });\n return data;\n }\n\n public async getImportStatus(id: string): Promise<GlossaryImport> {\n const { data } = await this.client.get<GlossaryImport>(`/v2/glossaries/imports/${id}`);\n return data;\n }\n\n public async waitForImport(\n gImport: GlossaryImport,\n updateCallback?: (mImport: GlossaryImport) => void,\n maxWaitTime?: number,\n ): Promise<GlossaryImport> {\n const start = Date.now();\n\n while (gImport.progress < 1.0) {\n if (maxWaitTime && Date.now() - start > maxWaitTime) throw new LaraTimeoutError();\n\n await sleep(this.pollingInterval);\n\n gImport = await this.getImportStatus(gImport.id);\n\n updateCallback && updateCallback(gImport);\n }\n\n return gImport;\n }\n\n public async counts(id: string): Promise<GlossaryCounts> {\n const { data } = await this.client.get<GlossaryCounts>(`/v2/glossaries/${id}/counts`);\n return data;\n }\n\n public async export(id: string, contentType: 'csv/table-uni', source?: string): Promise<DownloadResult> {\n const queryString = toQueryString({\n content_type: contentType,\n source,\n });\n\n if (isNode) {\n const { data } = await this.client.get<Readable>(`/v2/glossaries/${id}/export?${queryString}`, {\n responseType: 'stream',\n });\n return data;\n } else {\n const { data } = await this.client.get<Blob>(`/v2/glossaries/${id}/export?${queryString}`, {\n responseType: 'blob',\n });\n return data.stream();\n }\n }\n}\n","import { Readable } from 'node:stream';\nimport axios, { AxiosInstance } from 'axios';\nimport {\n Document,\n DocumentDownloadOptions,\n DocumentStatus,\n DocumentTranslateOptions,\n DocumentUploadOptions,\n DownloadResult,\n UploadableFile,\n UploadUrlData,\n} from './models';\nimport toFormData from './utils/formdata';\nimport toSnakeCase from './utils/toSnakeCase';\nimport sleep from './utils/sleep';\nimport { LaraApiError, LaraTimeoutError } from './utils/errors';\nimport toQueryString from './utils/toQueryString';\nimport isNode from './utils/isNode';\n\nexport default class Documents {\n private readonly client: AxiosInstance;\n private readonly pollingInterval: number = 2000;\n private readonly maxWaitTime: number = 1000 * 60 * 15; // 15 minutes\n\n constructor(client: AxiosInstance) {\n this.client = client;\n }\n\n public async upload(\n file: UploadableFile,\n filenane: string,\n source: string | undefined,\n target: string,\n options?: DocumentUploadOptions,\n ): Promise<Document> {\n const { data: s3UploadUrlData } = await this.client.get<UploadUrlData>(\n `/v2/documents/upload-url?filename=${encodeURIComponent(filenane)}`,\n );\n const { url, fields } = s3UploadUrlData;\n\n const [formData, headers] = toFormData({\n ...fields,\n file,\n });\n\n await axios.post(url, formData, { headers });\n\n const noTraceHeader = options?.noTrace ? { 'X-Lara-No-Trace': 'true' } : undefined;\n\n const { data } = await this.client.post<Document>(\n `/v2/documents`,\n {\n source,\n target,\n s3key: fields.key,\n adapt_to: options?.adaptTo,\n glossaries: options?.glossaries,\n style: options?.style,\n password: options?.password,\n extraction_params: options?.extractionParams ? toSnakeCase(options.extractionParams) : undefined,\n },\n noTraceHeader ? { headers: noTraceHeader } : undefined,\n );\n\n return data;\n }\n\n public async status(id: string): Promise<Document> {\n const { data } = await this.client.get<Document>(`/v2/documents/${id}`);\n return data;\n }\n\n public async download(id: string, options?: DocumentDownloadOptions): Promise<DownloadResult> {\n const queryString = toQueryString({\n output_format: options?.outputFormat,\n });\n\n const { data } = await this.client.get<{ url: string }>(`/v2/documents/${id}/download-url?${queryString}`);\n\n if (isNode) {\n const { data: downloadedData } = await axios.get<Readable>(data.url, {\n responseType: 'stream',\n });\n return downloadedData;\n } else {\n const { data: downloadedData } = await axios.get<Blob>(data.url, {\n responseType: 'blob',\n });\n return downloadedData.stream();\n }\n }\n\n public async translate(\n file: UploadableFile,\n filenane: string,\n source: string | undefined,\n target: string,\n options?: DocumentTranslateOptions,\n ): Promise<DownloadResult> {\n const uploadOptions: DocumentUploadOptions = {\n adaptTo: options?.adaptTo,\n glossaries: options?.glossaries,\n noTrace: options?.noTrace,\n style: options?.style,\n password: options?.password,\n extractionParams: options?.extractionParams,\n };\n\n const { id } = await this.upload(file, filenane, source, target, uploadOptions);\n\n const downloadOptions: DocumentDownloadOptions = {\n outputFormat: options?.outputFormat,\n };\n\n const start = Date.now();\n\n while (Date.now() - start < this.maxWaitTime) {\n await sleep(this.pollingInterval);\n\n const { status, errorReason } = await this.status(id);\n\n if (status === DocumentStatus.TRANSLATED) return await this.download(id, downloadOptions);\n if (status === DocumentStatus.ERROR) throw new LaraApiError(500, errorReason as string, 'unknown');\n }\n\n throw new LaraTimeoutError();\n }\n}\n","import { TranslationStyle } from './translator';\n\nexport interface Document {\n readonly id: string;\n readonly status: DocumentStatus;\n readonly source?: string;\n readonly target: string;\n readonly filename: string;\n readonly createdAt: Date;\n readonly updatedAt: Date;\n readonly options?: DocumentOptions;\n readonly translatedChars?: number;\n readonly totalChars?: number;\n readonly errorReason?: string;\n}\n\nexport enum DocumentStatus {\n INITIALIZED = 'initialized', // just been created\n ANALYZING = 'analyzing', // being analyzed for language detection and chars count\n PAUSED = 'paused', // paused after analysis, needs user confirm\n READY = 'ready', // ready to be translated\n TRANSLATING = 'translating',\n TRANSLATED = 'translated',\n ERROR = 'error',\n}\nexport type DocumentOptions = {\n adaptTo?: string[];\n glossaries?: string[];\n noTrace?: boolean;\n style?: TranslationStyle;\n};\n\nexport type DocumentUploadOptions = DocumentOptions & {\n password?: string;\n extractionParams?: DocxExtractionParams;\n};\n\nexport type DocumentDownloadOptions = {\n outputFormat?: string;\n};\n\nexport type DocumentTranslateOptions = DocumentUploadOptions & DocumentDownloadOptions;\n\nexport interface DocxExtractionParams {\n extractComments?: boolean;\n accepsRevisions?: boolean;\n}\n\ninterface S3UploadFields {\n acl: string;\n bucket: string;\n key: string;\n}\n\nexport interface UploadUrlData {\n url: string;\n fields: S3UploadFields;\n}\n","const toSnakeCase = (content: any): any => {\n if (typeof content === 'string') return content;\n if (Array.isArray(content)) return content.map(toSnakeCase);\n\n if (typeof content === 'object' && content !== null) {\n const result: Record<string, any> = {};\n for (const [key, value] of Object.entries(content)) {\n const snakeKey = key.replace(/([A-Z])/g, '_$1').toLowerCase();\n result[snakeKey] = toSnakeCase(value);\n }\n return result;\n }\n\n return content;\n};\n\nexport default toSnakeCase;\n","const toCamelCase = (content: any): any => {\n if (typeof content === 'string') return content;\n if (Array.isArray(content)) return content.map(toCamelCase);\n\n if (typeof content === 'object' && content !== null) {\n const result: Record<string, any> = {};\n for (const [key, value] of Object.entries(content)) {\n const camelKey = key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());\n result[camelKey] = toCamelCase(value);\n }\n return result;\n }\n\n return content;\n};\n\nexport default toCamelCase;\n"],"mappings":"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","names":["index_exports","__export","DocumentStatus","LaraApiError","LaraError","LaraTimeoutError","Translator","__toCommonJS","import_axios","LaraError","LaraTimeoutError","LaraApiError","statusCode","message","idTransaction","browser_default","data","formData","key","value","v","import_form_data","node_default","data","formData","FormData","key","value","v","form","browser_default","node_default","formdata_default","sleep_default","millis","resolve","Memories","client","data","name","externalId","id","source","target","sentence","translation","tuid","sentenceBefore","sentenceAfter","headers","url","tmx","gzip","formData","formdata_default","mImport","updateCallback","maxWaitTime","start","LaraTimeoutError","sleep_default","ids","version","toQueryString_default","params","acc","key","value","isNode_default","Glossaries","client","data","name","id","csv","gzip","formData","headers","formdata_default","gImport","updateCallback","maxWaitTime","start","LaraTimeoutError","sleep_default","contentType","source","queryString","toQueryString_default","isNode_default","import_axios","DocumentStatus","toSnakeCase","content","result","key","value","snakeKey","toSnakeCase_default","Documents","client","file","filenane","source","target","options","s3UploadUrlData","url","fields","formData","headers","formdata_default","axios","noTraceHeader","data","toSnakeCase_default","id","queryString","toQueryString_default","isNode_default","downloadedData","uploadOptions","downloadOptions","start","sleep_default","status","errorReason","LaraApiError","LaraTimeoutError","toCamelCase","content","result","key","value","camelKey","_","letter","toCamelCase_default","DEFAULT_BASE_URL","Translator","_Translator","accessKey","credentials","authToken","options","_a","axios","version","request","token","response","toCamelCase_default","error","_b","_c","_d","_e","_f","originalRequest","LaraApiError","Memories","Glossaries","Documents","data","headers","text","source","target","name","value","serverUrl","id","secret","email","password","refresh_token"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/Translator.ts","../src/utils/errors.ts","../src/utils/formdata/browser.ts","../src/utils/formdata/node.ts","../src/utils/formdata/index.ts","../src/utils/sleep.ts","../src/Memories.ts","../src/sdk-version.ts","../src/utils/toQueryString.ts","../src/utils/isNode.ts","../src/Glossaries.ts","../src/Documents.ts","../src/models/documents.ts","../src/utils/toSnakeCase.ts","../src/utils/downloadFromS3/browser.ts","../src/utils/downloadFromS3/node.ts","../src/utils/downloadFromS3/index.ts","../src/utils/toCamelCase.ts"],"sourcesContent":["export * from './Translator';\nexport * from './models';\nexport * from './utils/errors';\n","import axios, { AxiosInstance } from 'axios';\nimport {\n AccessKey,\n Credentials,\n AuthToken,\n TranslatorOptions,\n TextBlock,\n TranslateOptions,\n TextResult,\n AuthenticationResponse,\n} from './models';\nimport Memories from './Memories';\nimport { version } from './sdk-version';\nimport Glossaries from './Glossaries';\nimport Documents from './Documents';\nimport toCamelCase from './utils/toCamelCase';\nimport { LaraApiError } from './utils/errors';\n\nconst DEFAULT_BASE_URL = 'https://api.laratranslate.com';\n\nexport class Translator {\n private readonly accessKey?: AccessKey;\n private readonly credentials?: Credentials;\n private authToken?: AuthToken;\n\n public readonly memories: Memories;\n public readonly glossaries: Glossaries;\n public readonly documents: Documents;\n\n private token?: string;\n private refreshToken?: string;\n\n private readonly options?: TranslatorOptions;\n\n private readonly client: AxiosInstance;\n\n constructor(accessKey?: AccessKey, credentials?: Credentials, authToken?: AuthToken, options?: TranslatorOptions) {\n this.accessKey = accessKey;\n this.credentials = credentials;\n this.authToken = authToken;\n\n this.options = options || {};\n\n this.client = axios.create({\n baseURL: options?.serverUrl ?? DEFAULT_BASE_URL,\n headers: {\n 'X-Lara-SDK-Name': 'lara-node',\n 'X-Lara-SDK-Version': version,\n 'X-Lara-Date': new Date().toUTCString(),\n ...(options?.extraHeaders || {}),\n },\n });\n\n // Intercept request to add authentication header\n this.client.interceptors.request.use(async (request) => {\n const token = await this.authenticate();\n\n request.headers.Authorization = `Bearer ${token}`;\n return request;\n }, Promise.reject);\n\n // Intercepts errors to handle authentication errors\n this.client.interceptors.response.use(\n (response) => {\n // Convert payload in camel case if needed\n if (response.config.responseType !== 'stream' && response.data && typeof response.data === 'object') {\n response.data = toCamelCase(response.data);\n }\n\n return response;\n },\n async (error) => {\n const originalRequest = error.config;\n\n if (!originalRequest.isRetry && error.response && error.response.status === 401 && error.response.data.message === 'jwt expired') {\n this.token = undefined;\n const token = await this.authenticate();\n originalRequest.isRetry = true;\n originalRequest.headers.Authorization = `Bearer ${token}`;\n return this.client(originalRequest);\n }\n\n return Promise.reject(\n new LaraApiError(\n error.response?.status ?? 500,\n error.response?.data?.message ?? error.message,\n error.response?.headers['x-transaction-id'],\n ),\n );\n },\n );\n\n this.memories = new Memories(this.client);\n this.glossaries = new Glossaries(this.client);\n this.documents = new Documents(this.client);\n }\n\n private async authenticate(): Promise<string> {\n // If the token is set, return it\n if (this.token) return this.token;\n\n // If we have a refresh token, use it to get a new token\n if (this.refreshToken) {\n const { data, headers } = await axios.post<AuthenticationResponse>(\n `${this.options?.serverUrl ?? DEFAULT_BASE_URL}/v2/auth/refresh`,\n null,\n {\n headers: {\n authorization: `Bearer ${this.refreshToken}`,\n 'X-Lara-Date': new Date().toUTCString(),\n },\n },\n );\n\n this.token = data.token;\n this.refreshToken = headers['x-lara-refresh-token'];\n return this.token;\n } else if (this.accessKey) {\n // Use access key to get a new token\n const { data, headers } = await axios.post<AuthenticationResponse>(\n `${this.options?.serverUrl ?? DEFAULT_BASE_URL}/v2/auth`,\n this.accessKey,\n {\n headers: {\n 'X-Lara-Date': new Date().toUTCString(),\n },\n },\n );\n\n this.token = data.token;\n this.refreshToken = headers['x-lara-refresh-token'];\n return this.token;\n } else if (this.credentials) {\n // Use credentials to get a new token\n const { data, headers } = await axios.post<AuthenticationResponse>(\n //FIXME: client id should be set\n `${this.options?.serverUrl ?? DEFAULT_BASE_URL}/v2/auth/Unknown/login`,\n this.credentials,\n {\n headers: {\n 'X-Lara-Date': new Date().toUTCString(),\n },\n },\n );\n\n this.token = data.token;\n this.refreshToken = headers['x-lara-refresh-token'];\n return this.token;\n } else if (this.authToken) {\n // Use the provided auth token\n this.token = this.authToken.token;\n this.refreshToken = this.authToken.refresh_token;\n this.authToken = undefined;\n return this.token;\n } else {\n throw new Error('No authentication method provided');\n }\n }\n\n async translate<T extends string | string[] | TextBlock[]>(\n text: T,\n source: string | undefined,\n target: string,\n options?: TranslateOptions,\n ): Promise<TextResult<T>> {\n const headers: Record<string, string> = {};\n\n if (options?.headers) {\n for (const [name, value] of Object.entries(options.headers)) {\n headers[name] = value;\n }\n }\n\n if (options?.noTrace) headers['X-No-Trace'] = 'true';\n\n const { data } = await this.client.post<TextResult<T>>(\n `/v2/translate`,\n {\n q: text,\n source: !!source ? source : undefined,\n target,\n source_hint: options?.sourceHint,\n content_type: options?.contentType,\n multiline: options?.multiline !== false,\n adapt_to: options?.adaptTo,\n glossaries: options?.glossaries,\n instructions: options?.instructions,\n timeout: options?.timeoutInMillis,\n priority: options?.priority,\n use_cache: options?.useCache,\n cache_ttl: options?.cacheTTLSeconds,\n verbose: options?.verbose,\n style: options?.style,\n },\n headers,\n );\n\n return data;\n }\n\n async getLanguages(): Promise<string[]> {\n const { data } = await this.client.get<string[]>(`/v2/languages`);\n return data;\n }\n\n static async getLoginUrl(serverUrl?: string): Promise<string> {\n const { data } = await axios.get<string>(`${serverUrl ?? DEFAULT_BASE_URL}/v2/auth/login-page`);\n return data;\n }\n\n static byAccessKey(id: string, secret: string, options?: TranslatorOptions): Translator {\n return new Translator({ id, secret }, undefined, undefined, options);\n }\n\n static byCredentials(email: string, password: string, options?: TranslatorOptions): Translator {\n return new Translator(undefined, { email, password }, undefined, options);\n }\n\n static byAuthToken(token: string, refresh_token: string, options?: TranslatorOptions): Translator {\n return new Translator(undefined, undefined, { token, refresh_token }, options);\n }\n}\n","export class LaraError extends Error {}\n\nexport class LaraTimeoutError extends LaraError {}\n\nexport class LaraApiError extends LaraError {\n public readonly statusCode: number;\n public readonly message: string;\n public readonly idTransaction: string;\n\n constructor(statusCode: number, message: string, idTransaction: string) {\n super(message);\n this.statusCode = statusCode;\n this.message = message;\n this.idTransaction = idTransaction;\n }\n}\n","export default (data: Record<string, any>) => {\n const formData = new FormData();\n for (const [key, value] of Object.entries(data)) {\n if (!value) continue;\n if (Array.isArray(value)) {\n for (const v of value) formData.append(key, v);\n } else {\n formData.append(key, value);\n }\n }\n\n return [formData, {}];\n};\n","import FormData from 'form-data';\n\nexport default (data: Record<string, any>): [FormData, { [key: string]: any }] => {\n const formData = new FormData();\n for (const [key, value] of Object.entries(data)) {\n if (!value) continue;\n if (Array.isArray(value)) {\n for (const v of value) formData.append(key, v);\n } else {\n formData.append(key, value);\n }\n }\n\n return [formData, { ...formData.getHeaders() }];\n};\n","import browserForm from './browser.js';\nimport nodeForm from './node.js';\n\nlet form;\n\nif (typeof window !== 'undefined') {\n form = browserForm;\n} else {\n form = nodeForm;\n}\n\nexport default form as (data: Record<string, any>) => [any, { [key: string]: any }];\n","export default (millis: number) => new Promise((resolve) => setTimeout(resolve, millis));\n","import { AxiosInstance } from 'axios';\nimport { LaraTimeoutError } from './utils/errors';\nimport { Memory, MemoryImport, UploadableFile } from './models';\nimport toFormData from './utils/formdata';\nimport sleep from './utils/sleep';\n\nexport default class Memories {\n private readonly client: AxiosInstance;\n private readonly pollingInterval: number = 2000;\n\n constructor(client: AxiosInstance) {\n this.client = client;\n }\n\n public async list(): Promise<Memory[]> {\n const { data } = await this.client.get<Memory[]>('/v2/memories');\n return data;\n }\n\n public async create(name: string, externalId?: string): Promise<Memory> {\n const { data } = await this.client.post<Memory>('/v2/memories', {\n name,\n external_id: externalId,\n });\n return data;\n }\n\n public async get(id: string): Promise<Memory> {\n const { data } = await this.client.get<Memory>(`/v2/memories/${id}`);\n return data;\n }\n\n public async delete(id: string): Promise<Memory> {\n const { data } = await this.client.delete<Memory>(`/v2/memories/${id}`);\n return data;\n }\n\n public async update(id: string, name: string): Promise<Memory> {\n const { data } = await this.client.put<Memory>(`/v2/memories/${id}`, { name });\n return data;\n }\n\n public async addTranslation(\n id: string | string[],\n source: string,\n target: string,\n sentence: string,\n translation: string,\n tuid?: string,\n sentenceBefore?: string,\n sentenceAfter?: string,\n headers?: Record<string, any>,\n ): Promise<MemoryImport> {\n const url = Array.isArray(id) ? '/v2/memories/content' : `/v2/memories/${id}/content`;\n const { data } = await this.client.put<MemoryImport>(\n url,\n {\n ids: Array.isArray(id) ? id : undefined,\n source,\n target,\n sentence,\n translation,\n tuid,\n sentence_before: sentenceBefore,\n sentence_after: sentenceAfter,\n },\n {\n headers,\n },\n );\n return data;\n }\n\n public async deleteTranslation(\n id: string | string[],\n source: string,\n target: string,\n sentence?: string,\n translation?: string,\n tuid?: string,\n sentenceBefore?: string,\n sentenceAfter?: string,\n ): Promise<MemoryImport> {\n const url = Array.isArray(id) ? '/v2/memories/content' : `/v2/memories/${id}/content`;\n const { data } = await this.client.delete<MemoryImport>(url, {\n data: {\n ids: Array.isArray(id) ? id : undefined,\n source,\n target,\n sentence,\n translation,\n tuid,\n sentence_before: sentenceBefore,\n sentence_after: sentenceAfter,\n },\n });\n return data;\n }\n\n public async importTmx(id: string, tmx: UploadableFile, gzip: boolean = false) {\n const [formData, headers] = toFormData({\n tmx,\n compression: gzip ? 'gzip' : undefined,\n });\n\n const { data } = await this.client.post<MemoryImport>(`/v2/memories/${id}/import`, formData, {\n headers,\n });\n\n return data;\n }\n\n public async getImportStatus(id: string): Promise<MemoryImport> {\n const { data } = await this.client.get(`/v2/memories/imports/${id}`);\n return data;\n }\n\n public async waitForImport(\n mImport: MemoryImport,\n updateCallback?: (mImport: MemoryImport) => void,\n maxWaitTime?: number,\n ): Promise<MemoryImport> {\n const start = Date.now();\n\n while (mImport.progress < 1.0) {\n if (maxWaitTime && Date.now() - start > maxWaitTime) throw new LaraTimeoutError();\n\n await sleep(this.pollingInterval);\n\n mImport = await this.getImportStatus(mImport.id);\n\n updateCallback && updateCallback(mImport);\n }\n\n return mImport;\n }\n\n public async connect<T extends string | string[]>(ids: T): Promise<T extends string ? Memory : Memory[]> {\n const { data } = await this.client.post<Memory[]>('/v2/memories/connect', {\n ids: Array.isArray(ids) ? ids : [ids],\n });\n\n return (Array.isArray(ids) ? data : data[0]) as T extends string ? Memory : Memory[];\n }\n}\n","export const version = '2.0.0-beta.8';\n","export default (params: Record<string, any>): string =>\n Object.entries(params)\n .reduce((acc, [key, value]) => {\n if (value !== undefined && value !== null) {\n acc.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`);\n }\n return acc;\n }, [] as string[])\n .join('&');\n","export default typeof window === 'undefined';\n","import { Readable } from 'node:stream';\nimport { blob } from 'stream/consumers';\nimport { AxiosInstance } from 'axios';\nimport { LaraTimeoutError } from './utils/errors';\nimport { DownloadResult, Glossary, GlossaryCounts, GlossaryImport, UploadableFile } from './models';\nimport toFormData from './utils/formdata';\nimport sleep from './utils/sleep';\nimport toQueryString from './utils/toQueryString';\nimport isNode from './utils/isNode';\n\nexport default class Glossaries {\n private readonly client: AxiosInstance;\n private readonly pollingInterval: number = 2000;\n\n constructor(client: AxiosInstance) {\n this.client = client;\n }\n\n public async list(): Promise<Glossary[]> {\n const { data } = await this.client.get<Glossary[]>('/v2/glossaries');\n return data;\n }\n\n public async create(name: string): Promise<Glossary> {\n const { data } = await this.client.post<Glossary>('/v2/glossaries', {\n name,\n });\n return data;\n }\n\n public async get(id: string): Promise<Glossary> {\n const { data } = await this.client.get<Glossary>(`/v2/glossaries/${id}`);\n return data;\n }\n\n public async delete(id: string): Promise<Glossary> {\n const { data } = await this.client.delete<Glossary>(`/v2/glossaries/${id}`);\n return data;\n }\n\n public async update(id: string, name: string): Promise<Glossary> {\n const { data } = await this.client.put<Glossary>(`/v2/glossaries/${id}`, { name });\n return data;\n }\n\n public async importCsv(id: string, csv: UploadableFile, gzip: boolean = false): Promise<GlossaryImport> {\n const [formData, headers] = toFormData({\n csv,\n compression: gzip ? 'gzip' : undefined,\n });\n\n const { data } = await this.client.post<GlossaryImport>(`/v2/glossaries/${id}/import`, formData, { headers });\n return data;\n }\n\n public async getImportStatus(id: string): Promise<GlossaryImport> {\n const { data } = await this.client.get<GlossaryImport>(`/v2/glossaries/imports/${id}`);\n return data;\n }\n\n public async waitForImport(\n gImport: GlossaryImport,\n updateCallback?: (mImport: GlossaryImport) => void,\n maxWaitTime?: number,\n ): Promise<GlossaryImport> {\n const start = Date.now();\n\n while (gImport.progress < 1.0) {\n if (maxWaitTime && Date.now() - start > maxWaitTime) throw new LaraTimeoutError();\n\n await sleep(this.pollingInterval);\n\n gImport = await this.getImportStatus(gImport.id);\n\n updateCallback && updateCallback(gImport);\n }\n\n return gImport;\n }\n\n public async counts(id: string): Promise<GlossaryCounts> {\n const { data } = await this.client.get<GlossaryCounts>(`/v2/glossaries/${id}/counts`);\n return data;\n }\n\n public async export(id: string, contentType: 'csv/table-uni', source?: string): Promise<DownloadResult> {\n const queryString = toQueryString({\n content_type: contentType,\n source,\n });\n\n if (isNode) {\n const { data } = await this.client.get<Readable>(`/v2/glossaries/${id}/export?${queryString}`, {\n responseType: 'stream',\n });\n return data;\n } else {\n const { data } = await this.client.get<Blob>(`/v2/glossaries/${id}/export?${queryString}`, {\n responseType: 'blob',\n });\n return data.stream();\n }\n }\n}\n","import axios, { AxiosInstance } from 'axios';\nimport {\n Document,\n DocumentDownloadOptions,\n DocumentStatus,\n DocumentTranslateOptions,\n DocumentUploadOptions,\n DownloadResult,\n UploadableFile,\n UploadUrlData,\n} from './models';\nimport toFormData from './utils/formdata';\nimport toSnakeCase from './utils/toSnakeCase';\nimport sleep from './utils/sleep';\nimport { LaraApiError, LaraTimeoutError } from './utils/errors';\nimport toQueryString from './utils/toQueryString';\nimport downloadFromS3 from './utils/downloadFromS3';\n\nexport default class Documents {\n private readonly client: AxiosInstance;\n private readonly pollingInterval: number = 2000;\n private readonly maxWaitTime: number = 1000 * 60 * 15; // 15 minutes\n\n constructor(client: AxiosInstance) {\n this.client = client;\n }\n\n public async upload(\n file: UploadableFile,\n filename: string,\n source: string | undefined,\n target: string,\n options?: DocumentUploadOptions,\n ): Promise<Document> {\n const { data: s3UploadUrlData } = await this.client.get<UploadUrlData>(\n `/v2/documents/upload-url?filename=${encodeURIComponent(filename)}`,\n );\n const { url, fields } = s3UploadUrlData;\n\n const [formData, headers] = toFormData({\n ...fields,\n file,\n });\n\n await axios.post(url, formData, { headers });\n\n const noTraceHeader = options?.noTrace ? { 'X-Lara-No-Trace': 'true' } : undefined;\n\n const { data } = await this.client.post<Document>(\n `/v2/documents`,\n {\n source,\n target,\n s3key: fields.key,\n adapt_to: options?.adaptTo,\n glossaries: options?.glossaries,\n style: options?.style,\n password: options?.password,\n extraction_params: options?.extractionParams ? toSnakeCase(options.extractionParams) : undefined,\n },\n noTraceHeader ? { headers: noTraceHeader } : undefined,\n );\n\n return data;\n }\n\n public async status(id: string): Promise<Document> {\n const { data } = await this.client.get<Document>(`/v2/documents/${id}`);\n return data;\n }\n\n public async download(id: string, options?: DocumentDownloadOptions): Promise<DownloadResult> {\n const queryString = toQueryString({\n output_format: options?.outputFormat,\n });\n\n const { data } = await this.client.get<{ url: string }>(`/v2/documents/${id}/download-url?${queryString}`);\n\n return await downloadFromS3(data.url);\n }\n\n public async translate(\n file: UploadableFile,\n filenane: string,\n source: string | undefined,\n target: string,\n options?: DocumentTranslateOptions,\n ): Promise<DownloadResult> {\n const uploadOptions: DocumentUploadOptions = {\n adaptTo: options?.adaptTo,\n glossaries: options?.glossaries,\n noTrace: options?.noTrace,\n style: options?.style,\n password: options?.password,\n extractionParams: options?.extractionParams,\n };\n\n const { id } = await this.upload(file, filenane, source, target, uploadOptions);\n\n const downloadOptions: DocumentDownloadOptions = {\n outputFormat: options?.outputFormat,\n };\n\n const start = Date.now();\n\n while (Date.now() - start < this.maxWaitTime) {\n await sleep(this.pollingInterval);\n\n const { status, errorReason } = await this.status(id);\n\n if (status === DocumentStatus.TRANSLATED) return await this.download(id, downloadOptions);\n if (status === DocumentStatus.ERROR) throw new LaraApiError(500, errorReason as string, 'unknown');\n }\n\n throw new LaraTimeoutError();\n }\n}\n","import { TranslationStyle } from './translator';\n\nexport interface Document {\n readonly id: string;\n readonly status: DocumentStatus;\n readonly source?: string;\n readonly target: string;\n readonly filename: string;\n readonly createdAt: Date;\n readonly updatedAt: Date;\n readonly options?: DocumentOptions;\n readonly translatedChars?: number;\n readonly totalChars?: number;\n readonly errorReason?: string;\n}\n\nexport enum DocumentStatus {\n INITIALIZED = 'initialized', // just been created\n ANALYZING = 'analyzing', // being analyzed for language detection and chars count\n PAUSED = 'paused', // paused after analysis, needs user confirm\n READY = 'ready', // ready to be translated\n TRANSLATING = 'translating',\n TRANSLATED = 'translated',\n ERROR = 'error',\n}\nexport type DocumentOptions = {\n adaptTo?: string[];\n glossaries?: string[];\n noTrace?: boolean;\n style?: TranslationStyle;\n};\n\nexport type DocumentUploadOptions = DocumentOptions & {\n password?: string;\n extractionParams?: DocxExtractionParams;\n};\n\nexport type DocumentDownloadOptions = {\n outputFormat?: string;\n};\n\nexport type DocumentTranslateOptions = DocumentUploadOptions & DocumentDownloadOptions;\n\nexport interface DocxExtractionParams {\n extractComments?: boolean;\n accepsRevisions?: boolean;\n}\n\ninterface S3UploadFields {\n acl: string;\n bucket: string;\n key: string;\n}\n\nexport interface UploadUrlData {\n url: string;\n fields: S3UploadFields;\n}\n","const toSnakeCase = (content: any): any => {\n if (typeof content === 'string') return content;\n if (Array.isArray(content)) return content.map(toSnakeCase);\n\n if (typeof content === 'object' && content !== null) {\n const result: Record<string, any> = {};\n for (const [key, value] of Object.entries(content)) {\n const snakeKey = key.replace(/([A-Z])/g, '_$1').toLowerCase();\n result[snakeKey] = toSnakeCase(value);\n }\n return result;\n }\n\n return content;\n};\n\nexport default toSnakeCase;\n","import axios from 'axios';\n\nexport default async (url: string) => {\n const { data } = await axios.get<Blob>(url, {\n responseType: 'blob',\n });\n return data.stream();\n};\n","import { Readable } from 'node:stream';\nimport axios from 'axios';\n\nexport default async (url: string) => {\n const { data } = await axios.get<Readable>(url, {\n responseType: 'stream',\n });\n return data;\n};\n","import isNode from '../isNode';\nimport { DownloadResult } from '../../models';\nimport browserDownload from './browser';\nimport nodeDownload from './node';\n\nlet downloadFromS3;\n\nif (isNode) {\n downloadFromS3 = nodeDownload;\n} else {\n downloadFromS3 = browserDownload;\n}\n\nexport default downloadFromS3 as (url: string) => Promise<DownloadResult>;\n","const toCamelCase = (content: any): any => {\n if (typeof content === 'string') return content;\n if (Array.isArray(content)) return content.map(toCamelCase);\n\n if (typeof content === 'object' && content !== null) {\n const result: Record<string, any> = {};\n for (const [key, value] of Object.entries(content)) {\n const camelKey = key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());\n result[camelKey] = toCamelCase(value);\n }\n return result;\n }\n\n return content;\n};\n\nexport default toCamelCase;\n"],"mappings":"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","names":["index_exports","__export","DocumentStatus","LaraApiError","LaraError","LaraTimeoutError","Translator","__toCommonJS","import_axios","LaraError","LaraTimeoutError","LaraApiError","statusCode","message","idTransaction","browser_default","data","formData","key","value","v","import_form_data","node_default","data","formData","FormData","key","value","v","form","browser_default","node_default","formdata_default","sleep_default","millis","resolve","Memories","client","data","name","externalId","id","source","target","sentence","translation","tuid","sentenceBefore","sentenceAfter","headers","url","tmx","gzip","formData","formdata_default","mImport","updateCallback","maxWaitTime","start","LaraTimeoutError","sleep_default","ids","version","toQueryString_default","params","acc","key","value","isNode_default","Glossaries","client","data","name","id","csv","gzip","formData","headers","formdata_default","gImport","updateCallback","maxWaitTime","start","LaraTimeoutError","sleep_default","contentType","source","queryString","toQueryString_default","isNode_default","import_axios","DocumentStatus","toSnakeCase","content","result","key","value","snakeKey","toSnakeCase_default","import_axios","browser_default","url","data","axios","import_axios","node_default","url","data","axios","downloadFromS3","isNode_default","node_default","browser_default","downloadFromS3_default","Documents","client","file","filename","source","target","options","s3UploadUrlData","url","fields","formData","headers","formdata_default","axios","noTraceHeader","data","toSnakeCase_default","id","queryString","toQueryString_default","downloadFromS3_default","filenane","uploadOptions","downloadOptions","start","sleep_default","status","errorReason","LaraApiError","LaraTimeoutError","toCamelCase","content","result","key","value","camelKey","_","letter","toCamelCase_default","DEFAULT_BASE_URL","Translator","_Translator","accessKey","credentials","authToken","options","_a","axios","version","request","token","response","toCamelCase_default","error","_b","_c","_d","_e","_f","originalRequest","LaraApiError","Memories","Glossaries","Documents","data","headers","text","source","target","name","value","serverUrl","id","secret","email","password","refresh_token"]}
|
package/lib/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import b from"axios";var D=class extends Error{},u=class extends D{},y=class extends D{constructor(e,r,s){super(r),this.statusCode=e,this.message=r,this.idTransaction=s}};var O=n=>{let e=new FormData;for(let[r,s]of Object.entries(n))if(s)if(Array.isArray(s))for(let t of s)e.append(r,t);else e.append(r,s);return[e,{}]};import N from"form-data";var $=n=>{let e=new N;for(let[r,s]of Object.entries(n))if(s)if(Array.isArray(s))for(let t of s)e.append(r,t);else e.append(r,s);return[e,{...e.getHeaders()}]};var k;typeof window!="undefined"?k=O:k=$;var g=k;var f=n=>new Promise(e=>setTimeout(e,n));var p=class{constructor(e){this.pollingInterval=2e3;this.client=e}async list(){let{data:e}=await this.client.get("/v2/memories");return e}async create(e,r){let{data:s}=await this.client.post("/v2/memories",{name:e,external_id:r});return s}async get(e){let{data:r}=await this.client.get(`/v2/memories/${e}`);return r}async delete(e){let{data:r}=await this.client.delete(`/v2/memories/${e}`);return r}async update(e,r){let{data:s}=await this.client.put(`/v2/memories/${e}`,{name:r});return s}async addTranslation(e,r,s,t,a,i,o,l,m){let c=Array.isArray(e)?"/v2/memories/content":`/v2/memories/${e}/content`,{data:d}=await this.client.put(c,{ids:Array.isArray(e)?e:void 0,source:r,target:s,sentence:t,translation:a,tuid:i,sentence_before:o,sentence_after:l},{headers:m});return d}async deleteTranslation(e,r,s,t,a,i,o,l){let m=Array.isArray(e)?"/v2/memories/content":`/v2/memories/${e}/content`,{data:c}=await this.client.delete(m,{data:{ids:Array.isArray(e)?e:void 0,source:r,target:s,sentence:t,translation:a,tuid:i,sentence_before:o,sentence_after:l}});return c}async importTmx(e,r,s=!1){let[t,a]=g({tmx:r,compression:s?"gzip":void 0}),{data:i}=await this.client.post(`/v2/memories/${e}/import`,t,{headers:a});return i}async getImportStatus(e){let{data:r}=await this.client.get(`/v2/memories/imports/${e}`);return r}async waitForImport(e,r,s){let t=Date.now();for(;e.progress<1;){if(s&&Date.now()-t>s)throw new u;await f(this.pollingInterval),e=await this.getImportStatus(e.id),r&&r(e)}return e}async connect(e){let{data:r}=await this.client.post("/v2/memories/connect",{ids:Array.isArray(e)?e:[e]});return Array.isArray(e)?r:r[0]}};var M="2.0.0-beta.8";var v=n=>Object.entries(n).reduce((e,[r,s])=>(s!=null&&e.push(`${encodeURIComponent(r)}=${encodeURIComponent(s)}`),e),[]).join("&");var A=typeof window=="undefined";var h=class{constructor(e){this.pollingInterval=2e3;this.client=e}async list(){let{data:e}=await this.client.get("/v2/glossaries");return e}async create(e){let{data:r}=await this.client.post("/v2/glossaries",{name:e});return r}async get(e){let{data:r}=await this.client.get(`/v2/glossaries/${e}`);return r}async delete(e){let{data:r}=await this.client.delete(`/v2/glossaries/${e}`);return r}async update(e,r){let{data:s}=await this.client.put(`/v2/glossaries/${e}`,{name:r});return s}async importCsv(e,r,s=!1){let[t,a]=g({csv:r,compression:s?"gzip":void 0}),{data:i}=await this.client.post(`/v2/glossaries/${e}/import`,t,{headers:a});return i}async getImportStatus(e){let{data:r}=await this.client.get(`/v2/glossaries/imports/${e}`);return r}async waitForImport(e,r,s){let t=Date.now();for(;e.progress<1;){if(s&&Date.now()-t>s)throw new u;await f(this.pollingInterval),e=await this.getImportStatus(e.id),r&&r(e)}return e}async counts(e){let{data:r}=await this.client.get(`/v2/glossaries/${e}/counts`);return r}async export(e,r,s){let t=v({content_type:r,source:s});if(A){let{data:a}=await this.client.get(`/v2/glossaries/${e}/export?${t}`,{responseType:"stream"});return a}else{let{data:a}=await this.client.get(`/v2/glossaries/${e}/export?${t}`,{responseType:"blob"});return a.stream()}}};import B from"axios";var C=(o=>(o.INITIALIZED="initialized",o.ANALYZING="analyzing",o.PAUSED="paused",o.READY="ready",o.TRANSLATING="translating",o.TRANSLATED="translated",o.ERROR="error",o))(C||{});var R=n=>{if(typeof n=="string")return n;if(Array.isArray(n))return n.map(R);if(typeof n=="object"&&n!==null){let e={};for(let[r,s]of Object.entries(n)){let t=r.replace(/([A-Z])/g,"_$1").toLowerCase();e[t]=R(s)}return e}return n},F=R;import K from"axios";var G=async n=>{let{data:e}=await K.get(n,{responseType:"blob"});return e.stream()};import z from"axios";var S=async n=>{let{data:e}=await z.get(n,{responseType:"stream"});return e};var I;A?I=S:I=G;var L=I;var w=class{constructor(e){this.pollingInterval=2e3;this.maxWaitTime=1e3*60*15;this.client=e}async upload(e,r,s,t,a){let{data:i}=await this.client.get(`/v2/documents/upload-url?filename=${encodeURIComponent(r)}`),{url:o,fields:l}=i,[m,c]=g({...l,file:e});await B.post(o,m,{headers:c});let d=a!=null&&a.noTrace?{"X-Lara-No-Trace":"true"}:void 0,{data:x}=await this.client.post("/v2/documents",{source:s,target:t,s3key:l.key,adapt_to:a==null?void 0:a.adaptTo,glossaries:a==null?void 0:a.glossaries,style:a==null?void 0:a.style,password:a==null?void 0:a.password,extraction_params:a!=null&&a.extractionParams?F(a.extractionParams):void 0},d?{headers:d}:void 0);return x}async status(e){let{data:r}=await this.client.get(`/v2/documents/${e}`);return r}async download(e,r){let s=v({output_format:r==null?void 0:r.outputFormat}),{data:t}=await this.client.get(`/v2/documents/${e}/download-url?${s}`);return await L(t.url)}async translate(e,r,s,t,a){let i={adaptTo:a==null?void 0:a.adaptTo,glossaries:a==null?void 0:a.glossaries,noTrace:a==null?void 0:a.noTrace,style:a==null?void 0:a.style,password:a==null?void 0:a.password,extractionParams:a==null?void 0:a.extractionParams},{id:o}=await this.upload(e,r,s,t,i),l={outputFormat:a==null?void 0:a.outputFormat},m=Date.now();for(;Date.now()-m<this.maxWaitTime;){await f(this.pollingInterval);let{status:c,errorReason:d}=await this.status(o);if(c==="translated")return await this.download(o,l);if(c==="error")throw new y(500,d,"unknown")}throw new u}};var P=n=>{if(typeof n=="string")return n;if(Array.isArray(n))return n.map(P);if(typeof n=="object"&&n!==null){let e={};for(let[r,s]of Object.entries(n)){let t=r.replace(/_([a-z])/g,(a,i)=>i.toUpperCase());e[t]=P(s)}return e}return n},_=P;var T="https://api.laratranslate.com",E=class n{constructor(e,r,s,t){var a;this.accessKey=e,this.credentials=r,this.authToken=s,this.options=t||{},this.client=b.create({baseURL:(a=t==null?void 0:t.serverUrl)!=null?a:T,headers:{"X-Lara-SDK-Name":"lara-node","X-Lara-SDK-Version":M,"X-Lara-Date":new Date().toUTCString(),...(t==null?void 0:t.extraHeaders)||{}}}),this.client.interceptors.request.use(async i=>{let o=await this.authenticate();return i.headers.Authorization=`Bearer ${o}`,i},Promise.reject),this.client.interceptors.response.use(i=>(i.config.responseType!=="stream"&&i.data&&typeof i.data=="object"&&(i.data=_(i.data)),i),async i=>{var l,m,c,d,x,U;let o=i.config;if(!o.isRetry&&i.response&&i.response.status===401&&i.response.data.message==="jwt expired"){this.token=void 0;let j=await this.authenticate();return o.isRetry=!0,o.headers.Authorization=`Bearer ${j}`,this.client(o)}return Promise.reject(new y((m=(l=i.response)==null?void 0:l.status)!=null?m:500,(x=(d=(c=i.response)==null?void 0:c.data)==null?void 0:d.message)!=null?x:i.message,(U=i.response)==null?void 0:U.headers["x-transaction-id"]))}),this.memories=new p(this.client),this.glossaries=new h(this.client),this.documents=new w(this.client)}async authenticate(){var e,r,s,t,a,i;if(this.token)return this.token;if(this.refreshToken){let{data:o,headers:l}=await b.post(`${(r=(e=this.options)==null?void 0:e.serverUrl)!=null?r:T}/v2/auth/refresh`,null,{headers:{authorization:`Bearer ${this.refreshToken}`,"X-Lara-Date":new Date().toUTCString()}});return this.token=o.token,this.refreshToken=l["x-lara-refresh-token"],this.token}else if(this.accessKey){let{data:o,headers:l}=await b.post(`${(t=(s=this.options)==null?void 0:s.serverUrl)!=null?t:T}/v2/auth`,this.accessKey,{headers:{"X-Lara-Date":new Date().toUTCString()}});return this.token=o.token,this.refreshToken=l["x-lara-refresh-token"],this.token}else if(this.credentials){let{data:o,headers:l}=await b.post(`${(i=(a=this.options)==null?void 0:a.serverUrl)!=null?i:T}/v2/auth/Unknown/login`,this.credentials,{headers:{"X-Lara-Date":new Date().toUTCString()}});return this.token=o.token,this.refreshToken=l["x-lara-refresh-token"],this.token}else{if(this.authToken)return this.token=this.authToken.token,this.refreshToken=this.authToken.refresh_token,this.authToken=void 0,this.token;throw new Error("No authentication method provided")}}async translate(e,r,s,t){let a={};if(t!=null&&t.headers)for(let[o,l]of Object.entries(t.headers))a[o]=l;t!=null&&t.noTrace&&(a["X-No-Trace"]="true");let{data:i}=await this.client.post("/v2/translate",{q:e,source:r||void 0,target:s,source_hint:t==null?void 0:t.sourceHint,content_type:t==null?void 0:t.contentType,multiline:(t==null?void 0:t.multiline)!==!1,adapt_to:t==null?void 0:t.adaptTo,glossaries:t==null?void 0:t.glossaries,instructions:t==null?void 0:t.instructions,timeout:t==null?void 0:t.timeoutInMillis,priority:t==null?void 0:t.priority,use_cache:t==null?void 0:t.useCache,cache_ttl:t==null?void 0:t.cacheTTLSeconds,verbose:t==null?void 0:t.verbose,style:t==null?void 0:t.style},a);return i}async getLanguages(){let{data:e}=await this.client.get("/v2/languages");return e}static async getLoginUrl(e){let{data:r}=await b.get(`${e!=null?e:T}/v2/auth/login-page`);return r}static byAccessKey(e,r,s){return new n({id:e,secret:r},void 0,void 0,s)}static byCredentials(e,r,s){return new n(void 0,{email:e,password:r},void 0,s)}static byAuthToken(e,r,s){return new n(void 0,void 0,{token:e,refresh_token:r},s)}};export{C as DocumentStatus,y as LaraApiError,D as LaraError,u as LaraTimeoutError,E as Translator};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/lib/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Translator.ts","../src/utils/errors.ts","../src/utils/formdata/browser.ts","../src/utils/formdata/node.ts","../src/utils/formdata/index.ts","../src/utils/sleep.ts","../src/Memories.ts","../src/sdk-version.ts","../src/utils/toQueryString.ts","../src/utils/isNode.ts","../src/Glossaries.ts","../src/Documents.ts","../src/models/documents.ts","../src/utils/toSnakeCase.ts","../src/utils/toCamelCase.ts"],"sourcesContent":["import axios, { AxiosInstance } from 'axios';\nimport {\n AccessKey,\n Credentials,\n AuthToken,\n TranslatorOptions,\n TextBlock,\n TranslateOptions,\n TextResult,\n AuthenticationResponse,\n} from './models';\nimport Memories from './Memories';\nimport { version } from './sdk-version';\nimport Glossaries from './Glossaries';\nimport Documents from './Documents';\nimport toCamelCase from './utils/toCamelCase';\nimport { LaraApiError } from './utils/errors';\n\nconst DEFAULT_BASE_URL = 'https://api.laratranslate.com';\n\nexport class Translator {\n private readonly accessKey?: AccessKey;\n private readonly credentials?: Credentials;\n private authToken?: AuthToken;\n\n public readonly memories: Memories;\n public readonly glossaries: Glossaries;\n public readonly documents: Documents;\n\n private token?: string;\n private refreshToken?: string;\n\n private readonly options?: TranslatorOptions;\n\n private readonly client: AxiosInstance;\n\n constructor(accessKey?: AccessKey, credentials?: Credentials, authToken?: AuthToken, options?: TranslatorOptions) {\n this.accessKey = accessKey;\n this.credentials = credentials;\n this.authToken = authToken;\n\n this.options = options || {};\n\n this.client = axios.create({\n baseURL: options?.serverUrl ?? DEFAULT_BASE_URL,\n headers: {\n 'X-Lara-SDK-Name': 'lara-node',\n 'X-Lara-SDK-Version': version,\n 'X-Lara-Date': new Date().toUTCString(),\n ...(options?.extraHeaders || {}),\n },\n });\n\n // Intercept request to add authentication header\n this.client.interceptors.request.use(async (request) => {\n const token = await this.authenticate();\n\n request.headers.Authorization = `Bearer ${token}`;\n return request;\n }, Promise.reject);\n\n // Intercepts errors to handle authentication errors\n this.client.interceptors.response.use(\n (response) => {\n // Convert payload in camel case if needed\n if (response.config.responseType !== 'stream' && response.data && typeof response.data === 'object') {\n response.data = toCamelCase(response.data);\n }\n\n return response;\n },\n async (error) => {\n const originalRequest = error.config;\n\n if (!originalRequest.isRetry && error.response && error.response.status === 401 && error.response.data.message === 'jwt expired') {\n this.token = undefined;\n const token = await this.authenticate();\n originalRequest.isRetry = true;\n originalRequest.headers.Authorization = `Bearer ${token}`;\n return this.client(originalRequest);\n }\n\n return Promise.reject(\n new LaraApiError(\n error.response?.status ?? 500,\n error.response?.data?.message ?? error.message,\n error.response?.headers['x-transaction-id'],\n ),\n );\n },\n );\n\n this.memories = new Memories(this.client);\n this.glossaries = new Glossaries(this.client);\n this.documents = new Documents(this.client);\n }\n\n private async authenticate(): Promise<string> {\n // If the token is set, return it\n if (this.token) return this.token;\n\n // If we have a refresh token, use it to get a new token\n if (this.refreshToken) {\n const { data, headers } = await axios.post<AuthenticationResponse>(\n `${this.options?.serverUrl ?? DEFAULT_BASE_URL}/v2/auth/refresh`,\n null,\n {\n headers: {\n authorization: `Bearer ${this.refreshToken}`,\n 'X-Lara-Date': new Date().toUTCString(),\n },\n },\n );\n\n this.token = data.token;\n this.refreshToken = headers['x-lara-refresh-token'];\n return this.token;\n } else if (this.accessKey) {\n // Use access key to get a new token\n const { data, headers } = await axios.post<AuthenticationResponse>(\n `${this.options?.serverUrl ?? DEFAULT_BASE_URL}/v2/auth`,\n this.accessKey,\n {\n headers: {\n 'X-Lara-Date': new Date().toUTCString(),\n },\n },\n );\n\n this.token = data.token;\n this.refreshToken = headers['x-lara-refresh-token'];\n return this.token;\n } else if (this.credentials) {\n // Use credentials to get a new token\n const { data, headers } = await axios.post<AuthenticationResponse>(\n //FIXME: client id should be set\n `${this.options?.serverUrl ?? DEFAULT_BASE_URL}/v2/auth/Unknown/login`,\n this.credentials,\n {\n headers: {\n 'X-Lara-Date': new Date().toUTCString(),\n },\n },\n );\n\n this.token = data.token;\n this.refreshToken = headers['x-lara-refresh-token'];\n return this.token;\n } else if (this.authToken) {\n // Use the provided auth token\n this.token = this.authToken.token;\n this.refreshToken = this.authToken.refresh_token;\n this.authToken = undefined;\n return this.token;\n } else {\n throw new Error('No authentication method provided');\n }\n }\n\n async translate<T extends string | string[] | TextBlock[]>(\n text: T,\n source: string | undefined,\n target: string,\n options?: TranslateOptions,\n ): Promise<TextResult<T>> {\n const headers: Record<string, string> = {};\n\n if (options?.headers) {\n for (const [name, value] of Object.entries(options.headers)) {\n headers[name] = value;\n }\n }\n\n if (options?.noTrace) headers['X-No-Trace'] = 'true';\n\n const { data } = await this.client.post<TextResult<T>>(\n `/v2/translate`,\n {\n q: text,\n source: !!source ? source : undefined,\n target,\n source_hint: options?.sourceHint,\n content_type: options?.contentType,\n multiline: options?.multiline !== false,\n adapt_to: options?.adaptTo,\n glossaries: options?.glossaries,\n instructions: options?.instructions,\n timeout: options?.timeoutInMillis,\n priority: options?.priority,\n use_cache: options?.useCache,\n cache_ttl: options?.cacheTTLSeconds,\n verbose: options?.verbose,\n style: options?.style,\n },\n headers,\n );\n\n return data;\n }\n\n async getLanguages(): Promise<string[]> {\n const { data } = await this.client.get<string[]>(`/v2/languages`);\n return data;\n }\n\n static async getLoginUrl(serverUrl?: string): Promise<string> {\n const { data } = await axios.get<string>(`${serverUrl ?? DEFAULT_BASE_URL}/v2/auth/login-page`);\n return data;\n }\n\n static byAccessKey(id: string, secret: string, options?: TranslatorOptions): Translator {\n return new Translator({ id, secret }, undefined, undefined, options);\n }\n\n static byCredentials(email: string, password: string, options?: TranslatorOptions): Translator {\n return new Translator(undefined, { email, password }, undefined, options);\n }\n\n static byAuthToken(token: string, refresh_token: string, options?: TranslatorOptions): Translator {\n return new Translator(undefined, undefined, { token, refresh_token }, options);\n }\n}\n","export class LaraError extends Error {}\n\nexport class LaraTimeoutError extends LaraError {}\n\nexport class LaraApiError extends LaraError {\n public readonly statusCode: number;\n public readonly message: string;\n public readonly idTransaction: string;\n\n constructor(statusCode: number, message: string, idTransaction: string) {\n super(message);\n this.statusCode = statusCode;\n this.message = message;\n this.idTransaction = idTransaction;\n }\n}\n","export default (data: Record<string, any>) => {\n const formData = new FormData();\n for (const [key, value] of Object.entries(data)) {\n if (!value) continue;\n if (Array.isArray(value)) {\n for (const v of value) formData.append(key, v);\n } else {\n formData.append(key, value);\n }\n }\n\n return [formData, {}];\n};\n","import FormData from 'form-data';\n\nexport default (data: Record<string, any>): [FormData, { [key: string]: any }] => {\n const formData = new FormData();\n for (const [key, value] of Object.entries(data)) {\n if (!value) continue;\n if (Array.isArray(value)) {\n for (const v of value) formData.append(key, v);\n } else {\n formData.append(key, value);\n }\n }\n\n return [formData, { ...formData.getHeaders() }];\n};\n","import browserForm from './browser.js';\nimport nodeForm from './node.js';\n\nlet form;\n\nif (typeof window !== 'undefined') {\n form = browserForm;\n} else {\n form = nodeForm;\n}\n\nexport default form as (data: Record<string, any>) => [any, { [key: string]: any }];\n","export default (millis: number) => new Promise((resolve) => setTimeout(resolve, millis));\n","import { AxiosInstance } from 'axios';\nimport { LaraTimeoutError } from './utils/errors';\nimport { Memory, MemoryImport, UploadableFile } from './models';\nimport toFormData from './utils/formdata';\nimport sleep from './utils/sleep';\n\nexport default class Memories {\n private readonly client: AxiosInstance;\n private readonly pollingInterval: number = 2000;\n\n constructor(client: AxiosInstance) {\n this.client = client;\n }\n\n public async list(): Promise<Memory[]> {\n const { data } = await this.client.get<Memory[]>('/v2/memories');\n return data;\n }\n\n public async create(name: string, externalId?: string): Promise<Memory> {\n const { data } = await this.client.post<Memory>('/v2/memories', {\n name,\n external_id: externalId,\n });\n return data;\n }\n\n public async get(id: string): Promise<Memory> {\n const { data } = await this.client.get<Memory>(`/v2/memories/${id}`);\n return data;\n }\n\n public async delete(id: string): Promise<Memory> {\n const { data } = await this.client.delete<Memory>(`/v2/memories/${id}`);\n return data;\n }\n\n public async update(id: string, name: string): Promise<Memory> {\n const { data } = await this.client.put<Memory>(`/v2/memories/${id}`, { name });\n return data;\n }\n\n public async addTranslation(\n id: string | string[],\n source: string,\n target: string,\n sentence: string,\n translation: string,\n tuid?: string,\n sentenceBefore?: string,\n sentenceAfter?: string,\n headers?: Record<string, any>,\n ): Promise<MemoryImport> {\n const url = Array.isArray(id) ? '/v2/memories/content' : `/v2/memories/${id}/content`;\n const { data } = await this.client.put<MemoryImport>(\n url,\n {\n ids: Array.isArray(id) ? id : undefined,\n source,\n target,\n sentence,\n translation,\n tuid,\n sentence_before: sentenceBefore,\n sentence_after: sentenceAfter,\n },\n {\n headers,\n },\n );\n return data;\n }\n\n public async deleteTranslation(\n id: string | string[],\n source: string,\n target: string,\n sentence?: string,\n translation?: string,\n tuid?: string,\n sentenceBefore?: string,\n sentenceAfter?: string,\n ): Promise<MemoryImport> {\n const url = Array.isArray(id) ? '/v2/memories/content' : `/v2/memories/${id}/content`;\n const { data } = await this.client.delete<MemoryImport>(url, {\n data: {\n ids: Array.isArray(id) ? id : undefined,\n source,\n target,\n sentence,\n translation,\n tuid,\n sentence_before: sentenceBefore,\n sentence_after: sentenceAfter,\n },\n });\n return data;\n }\n\n public async importTmx(id: string, tmx: UploadableFile, gzip: boolean = false) {\n const [formData, headers] = toFormData({\n tmx,\n compression: gzip ? 'gzip' : undefined,\n });\n\n const { data } = await this.client.post<MemoryImport>(`/v2/memories/${id}/import`, formData, {\n headers,\n });\n\n return data;\n }\n\n public async getImportStatus(id: string): Promise<MemoryImport> {\n const { data } = await this.client.get(`/v2/memories/imports/${id}`);\n return data;\n }\n\n public async waitForImport(\n mImport: MemoryImport,\n updateCallback?: (mImport: MemoryImport) => void,\n maxWaitTime?: number,\n ): Promise<MemoryImport> {\n const start = Date.now();\n\n while (mImport.progress < 1.0) {\n if (maxWaitTime && Date.now() - start > maxWaitTime) throw new LaraTimeoutError();\n\n await sleep(this.pollingInterval);\n\n mImport = await this.getImportStatus(mImport.id);\n\n updateCallback && updateCallback(mImport);\n }\n\n return mImport;\n }\n\n public async connect<T extends string | string[]>(ids: T): Promise<T extends string ? Memory : Memory[]> {\n const { data } = await this.client.post<Memory[]>('/v2/memories/connect', {\n ids: Array.isArray(ids) ? ids : [ids],\n });\n\n return (Array.isArray(ids) ? data : data[0]) as T extends string ? Memory : Memory[];\n }\n}\n","export const version = '2.0.0-beta.7';\n","export default (params: Record<string, any>): string =>\n Object.entries(params)\n .reduce((acc, [key, value]) => {\n if (value !== undefined && value !== null) {\n acc.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`);\n }\n return acc;\n }, [] as string[])\n .join('&');\n","export default typeof window === 'undefined';\n","import { Readable } from 'node:stream';\nimport { blob } from 'stream/consumers';\nimport { AxiosInstance } from 'axios';\nimport { LaraTimeoutError } from './utils/errors';\nimport { DownloadResult, Glossary, GlossaryCounts, GlossaryImport, UploadableFile } from './models';\nimport toFormData from './utils/formdata';\nimport sleep from './utils/sleep';\nimport toQueryString from './utils/toQueryString';\nimport isNode from './utils/isNode';\n\nexport default class Glossaries {\n private readonly client: AxiosInstance;\n private readonly pollingInterval: number = 2000;\n\n constructor(client: AxiosInstance) {\n this.client = client;\n }\n\n public async list(): Promise<Glossary[]> {\n const { data } = await this.client.get<Glossary[]>('/v2/glossaries');\n return data;\n }\n\n public async create(name: string): Promise<Glossary> {\n const { data } = await this.client.post<Glossary>('/v2/glossaries', {\n name,\n });\n return data;\n }\n\n public async get(id: string): Promise<Glossary> {\n const { data } = await this.client.get<Glossary>(`/v2/glossaries/${id}`);\n return data;\n }\n\n public async delete(id: string): Promise<Glossary> {\n const { data } = await this.client.delete<Glossary>(`/v2/glossaries/${id}`);\n return data;\n }\n\n public async update(id: string, name: string): Promise<Glossary> {\n const { data } = await this.client.put<Glossary>(`/v2/glossaries/${id}`, { name });\n return data;\n }\n\n public async importCsv(id: string, csv: UploadableFile, gzip: boolean = false): Promise<GlossaryImport> {\n const [formData, headers] = toFormData({\n csv,\n compression: gzip ? 'gzip' : undefined,\n });\n\n const { data } = await this.client.post<GlossaryImport>(`/v2/glossaries/${id}/import`, formData, { headers });\n return data;\n }\n\n public async getImportStatus(id: string): Promise<GlossaryImport> {\n const { data } = await this.client.get<GlossaryImport>(`/v2/glossaries/imports/${id}`);\n return data;\n }\n\n public async waitForImport(\n gImport: GlossaryImport,\n updateCallback?: (mImport: GlossaryImport) => void,\n maxWaitTime?: number,\n ): Promise<GlossaryImport> {\n const start = Date.now();\n\n while (gImport.progress < 1.0) {\n if (maxWaitTime && Date.now() - start > maxWaitTime) throw new LaraTimeoutError();\n\n await sleep(this.pollingInterval);\n\n gImport = await this.getImportStatus(gImport.id);\n\n updateCallback && updateCallback(gImport);\n }\n\n return gImport;\n }\n\n public async counts(id: string): Promise<GlossaryCounts> {\n const { data } = await this.client.get<GlossaryCounts>(`/v2/glossaries/${id}/counts`);\n return data;\n }\n\n public async export(id: string, contentType: 'csv/table-uni', source?: string): Promise<DownloadResult> {\n const queryString = toQueryString({\n content_type: contentType,\n source,\n });\n\n if (isNode) {\n const { data } = await this.client.get<Readable>(`/v2/glossaries/${id}/export?${queryString}`, {\n responseType: 'stream',\n });\n return data;\n } else {\n const { data } = await this.client.get<Blob>(`/v2/glossaries/${id}/export?${queryString}`, {\n responseType: 'blob',\n });\n return data.stream();\n }\n }\n}\n","import { Readable } from 'node:stream';\nimport axios, { AxiosInstance } from 'axios';\nimport {\n Document,\n DocumentDownloadOptions,\n DocumentStatus,\n DocumentTranslateOptions,\n DocumentUploadOptions,\n DownloadResult,\n UploadableFile,\n UploadUrlData,\n} from './models';\nimport toFormData from './utils/formdata';\nimport toSnakeCase from './utils/toSnakeCase';\nimport sleep from './utils/sleep';\nimport { LaraApiError, LaraTimeoutError } from './utils/errors';\nimport toQueryString from './utils/toQueryString';\nimport isNode from './utils/isNode';\n\nexport default class Documents {\n private readonly client: AxiosInstance;\n private readonly pollingInterval: number = 2000;\n private readonly maxWaitTime: number = 1000 * 60 * 15; // 15 minutes\n\n constructor(client: AxiosInstance) {\n this.client = client;\n }\n\n public async upload(\n file: UploadableFile,\n filenane: string,\n source: string | undefined,\n target: string,\n options?: DocumentUploadOptions,\n ): Promise<Document> {\n const { data: s3UploadUrlData } = await this.client.get<UploadUrlData>(\n `/v2/documents/upload-url?filename=${encodeURIComponent(filenane)}`,\n );\n const { url, fields } = s3UploadUrlData;\n\n const [formData, headers] = toFormData({\n ...fields,\n file,\n });\n\n await axios.post(url, formData, { headers });\n\n const noTraceHeader = options?.noTrace ? { 'X-Lara-No-Trace': 'true' } : undefined;\n\n const { data } = await this.client.post<Document>(\n `/v2/documents`,\n {\n source,\n target,\n s3key: fields.key,\n adapt_to: options?.adaptTo,\n glossaries: options?.glossaries,\n style: options?.style,\n password: options?.password,\n extraction_params: options?.extractionParams ? toSnakeCase(options.extractionParams) : undefined,\n },\n noTraceHeader ? { headers: noTraceHeader } : undefined,\n );\n\n return data;\n }\n\n public async status(id: string): Promise<Document> {\n const { data } = await this.client.get<Document>(`/v2/documents/${id}`);\n return data;\n }\n\n public async download(id: string, options?: DocumentDownloadOptions): Promise<DownloadResult> {\n const queryString = toQueryString({\n output_format: options?.outputFormat,\n });\n\n const { data } = await this.client.get<{ url: string }>(`/v2/documents/${id}/download-url?${queryString}`);\n\n if (isNode) {\n const { data: downloadedData } = await axios.get<Readable>(data.url, {\n responseType: 'stream',\n });\n return downloadedData;\n } else {\n const { data: downloadedData } = await axios.get<Blob>(data.url, {\n responseType: 'blob',\n });\n return downloadedData.stream();\n }\n }\n\n public async translate(\n file: UploadableFile,\n filenane: string,\n source: string | undefined,\n target: string,\n options?: DocumentTranslateOptions,\n ): Promise<DownloadResult> {\n const uploadOptions: DocumentUploadOptions = {\n adaptTo: options?.adaptTo,\n glossaries: options?.glossaries,\n noTrace: options?.noTrace,\n style: options?.style,\n password: options?.password,\n extractionParams: options?.extractionParams,\n };\n\n const { id } = await this.upload(file, filenane, source, target, uploadOptions);\n\n const downloadOptions: DocumentDownloadOptions = {\n outputFormat: options?.outputFormat,\n };\n\n const start = Date.now();\n\n while (Date.now() - start < this.maxWaitTime) {\n await sleep(this.pollingInterval);\n\n const { status, errorReason } = await this.status(id);\n\n if (status === DocumentStatus.TRANSLATED) return await this.download(id, downloadOptions);\n if (status === DocumentStatus.ERROR) throw new LaraApiError(500, errorReason as string, 'unknown');\n }\n\n throw new LaraTimeoutError();\n }\n}\n","import { TranslationStyle } from './translator';\n\nexport interface Document {\n readonly id: string;\n readonly status: DocumentStatus;\n readonly source?: string;\n readonly target: string;\n readonly filename: string;\n readonly createdAt: Date;\n readonly updatedAt: Date;\n readonly options?: DocumentOptions;\n readonly translatedChars?: number;\n readonly totalChars?: number;\n readonly errorReason?: string;\n}\n\nexport enum DocumentStatus {\n INITIALIZED = 'initialized', // just been created\n ANALYZING = 'analyzing', // being analyzed for language detection and chars count\n PAUSED = 'paused', // paused after analysis, needs user confirm\n READY = 'ready', // ready to be translated\n TRANSLATING = 'translating',\n TRANSLATED = 'translated',\n ERROR = 'error',\n}\nexport type DocumentOptions = {\n adaptTo?: string[];\n glossaries?: string[];\n noTrace?: boolean;\n style?: TranslationStyle;\n};\n\nexport type DocumentUploadOptions = DocumentOptions & {\n password?: string;\n extractionParams?: DocxExtractionParams;\n};\n\nexport type DocumentDownloadOptions = {\n outputFormat?: string;\n};\n\nexport type DocumentTranslateOptions = DocumentUploadOptions & DocumentDownloadOptions;\n\nexport interface DocxExtractionParams {\n extractComments?: boolean;\n accepsRevisions?: boolean;\n}\n\ninterface S3UploadFields {\n acl: string;\n bucket: string;\n key: string;\n}\n\nexport interface UploadUrlData {\n url: string;\n fields: S3UploadFields;\n}\n","const toSnakeCase = (content: any): any => {\n if (typeof content === 'string') return content;\n if (Array.isArray(content)) return content.map(toSnakeCase);\n\n if (typeof content === 'object' && content !== null) {\n const result: Record<string, any> = {};\n for (const [key, value] of Object.entries(content)) {\n const snakeKey = key.replace(/([A-Z])/g, '_$1').toLowerCase();\n result[snakeKey] = toSnakeCase(value);\n }\n return result;\n }\n\n return content;\n};\n\nexport default toSnakeCase;\n","const toCamelCase = (content: any): any => {\n if (typeof content === 'string') return content;\n if (Array.isArray(content)) return content.map(toCamelCase);\n\n if (typeof content === 'object' && content !== null) {\n const result: Record<string, any> = {};\n for (const [key, value] of Object.entries(content)) {\n const camelKey = key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());\n result[camelKey] = toCamelCase(value);\n }\n return result;\n }\n\n return content;\n};\n\nexport default toCamelCase;\n"],"mappings":"AAAA,OAAOA,MAA8B,QCA9B,IAAMC,EAAN,cAAwB,KAAM,CAAC,EAEzBC,EAAN,cAA+BD,CAAU,CAAC,EAEpCE,EAAN,cAA2BF,CAAU,CAK1C,YAAYG,EAAoBC,EAAiBC,EAAuB,CACtE,MAAMD,CAAO,EACb,KAAK,WAAaD,EAClB,KAAK,QAAUC,EACf,KAAK,cAAgBC,CACvB,CACF,ECfA,IAAOC,EAASC,GAA8B,CAC5C,IAAMC,EAAW,IAAI,SACrB,OAAW,CAACC,EAAKC,CAAK,IAAK,OAAO,QAAQH,CAAI,EAC5C,GAAKG,EACL,GAAI,MAAM,QAAQA,CAAK,EACrB,QAAWC,KAAKD,EAAOF,EAAS,OAAOC,EAAKE,CAAC,OAE7CH,EAAS,OAAOC,EAAKC,CAAK,EAI9B,MAAO,CAACF,EAAU,CAAC,CAAC,CACtB,ECZA,OAAOI,MAAc,YAErB,IAAOC,EAASC,GAAkE,CAChF,IAAMC,EAAW,IAAIH,EACrB,OAAW,CAACI,EAAKC,CAAK,IAAK,OAAO,QAAQH,CAAI,EAC5C,GAAKG,EACL,GAAI,MAAM,QAAQA,CAAK,EACrB,QAAWC,KAAKD,EAAOF,EAAS,OAAOC,EAAKE,CAAC,OAE7CH,EAAS,OAAOC,EAAKC,CAAK,EAI9B,MAAO,CAACF,EAAU,CAAE,GAAGA,EAAS,WAAW,CAAE,CAAC,CAChD,ECXA,IAAII,EAEA,OAAO,QAAW,YACpBA,EAAOC,EAEPD,EAAOE,EAGT,IAAOC,EAAQH,ECXf,IAAOI,EAASC,GAAmB,IAAI,QAASC,GAAY,WAAWA,EAASD,CAAM,CAAC,ECMvF,IAAqBE,EAArB,KAA8B,CAI5B,YAAYC,EAAuB,CAFnC,KAAiB,gBAA0B,IAGzC,KAAK,OAASA,CAChB,CAEA,MAAa,MAA0B,CACrC,GAAM,CAAE,KAAAC,CAAK,EAAI,MAAM,KAAK,OAAO,IAAc,cAAc,EAC/D,OAAOA,CACT,CAEA,MAAa,OAAOC,EAAcC,EAAsC,CACtE,GAAM,CAAE,KAAAF,CAAK,EAAI,MAAM,KAAK,OAAO,KAAa,eAAgB,CAC9D,KAAAC,EACA,YAAaC,CACf,CAAC,EACD,OAAOF,CACT,CAEA,MAAa,IAAIG,EAA6B,CAC5C,GAAM,CAAE,KAAAH,CAAK,EAAI,MAAM,KAAK,OAAO,IAAY,gBAAgBG,CAAE,EAAE,EACnE,OAAOH,CACT,CAEA,MAAa,OAAOG,EAA6B,CAC/C,GAAM,CAAE,KAAAH,CAAK,EAAI,MAAM,KAAK,OAAO,OAAe,gBAAgBG,CAAE,EAAE,EACtE,OAAOH,CACT,CAEA,MAAa,OAAOG,EAAYF,EAA+B,CAC7D,GAAM,CAAE,KAAAD,CAAK,EAAI,MAAM,KAAK,OAAO,IAAY,gBAAgBG,CAAE,GAAI,CAAE,KAAAF,CAAK,CAAC,EAC7E,OAAOD,CACT,CAEA,MAAa,eACXG,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACuB,CACvB,IAAMC,EAAM,MAAM,QAAQT,CAAE,EAAI,uBAAyB,gBAAgBA,CAAE,WACrE,CAAE,KAAAH,CAAK,EAAI,MAAM,KAAK,OAAO,IACjCY,EACA,CACE,IAAK,MAAM,QAAQT,CAAE,EAAIA,EAAK,OAC9B,OAAAC,EACA,OAAAC,EACA,SAAAC,EACA,YAAAC,EACA,KAAAC,EACA,gBAAiBC,EACjB,eAAgBC,CAClB,EACA,CACE,QAAAC,CACF,CACF,EACA,OAAOX,CACT,CAEA,MAAa,kBACXG,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACuB,CACvB,IAAME,EAAM,MAAM,QAAQT,CAAE,EAAI,uBAAyB,gBAAgBA,CAAE,WACrE,CAAE,KAAAH,CAAK,EAAI,MAAM,KAAK,OAAO,OAAqBY,EAAK,CAC3D,KAAM,CACJ,IAAK,MAAM,QAAQT,CAAE,EAAIA,EAAK,OAC9B,OAAAC,EACA,OAAAC,EACA,SAAAC,EACA,YAAAC,EACA,KAAAC,EACA,gBAAiBC,EACjB,eAAgBC,CAClB,CACF,CAAC,EACD,OAAOV,CACT,CAEA,MAAa,UAAUG,EAAYU,EAAqBC,EAAgB,GAAO,CAC7E,GAAM,CAACC,EAAUJ,CAAO,EAAIK,EAAW,CACrC,IAAAH,EACA,YAAaC,EAAO,OAAS,MAC/B,CAAC,EAEK,CAAE,KAAAd,CAAK,EAAI,MAAM,KAAK,OAAO,KAAmB,gBAAgBG,CAAE,UAAWY,EAAU,CAC3F,QAAAJ,CACF,CAAC,EAED,OAAOX,CACT,CAEA,MAAa,gBAAgBG,EAAmC,CAC9D,GAAM,CAAE,KAAAH,CAAK,EAAI,MAAM,KAAK,OAAO,IAAI,wBAAwBG,CAAE,EAAE,EACnE,OAAOH,CACT,CAEA,MAAa,cACXiB,EACAC,EACAC,EACuB,CACvB,IAAMC,EAAQ,KAAK,IAAI,EAEvB,KAAOH,EAAQ,SAAW,GAAK,CAC7B,GAAIE,GAAe,KAAK,IAAI,EAAIC,EAAQD,EAAa,MAAM,IAAIE,EAE/D,MAAMC,EAAM,KAAK,eAAe,EAEhCL,EAAU,MAAM,KAAK,gBAAgBA,EAAQ,EAAE,EAE/CC,GAAkBA,EAAeD,CAAO,CAC1C,CAEA,OAAOA,CACT,CAEA,MAAa,QAAqCM,EAAuD,CACvG,GAAM,CAAE,KAAAvB,CAAK,EAAI,MAAM,KAAK,OAAO,KAAe,uBAAwB,CACxE,IAAK,MAAM,QAAQuB,CAAG,EAAIA,EAAM,CAACA,CAAG,CACtC,CAAC,EAED,OAAQ,MAAM,QAAQA,CAAG,EAAIvB,EAAOA,EAAK,CAAC,CAC5C,CACF,EChJO,IAAMwB,EAAU,eCAvB,IAAOC,EAASC,GACd,OAAO,QAAQA,CAAM,EAClB,OAAO,CAACC,EAAK,CAACC,EAAKC,CAAK,KACIA,GAAU,MACnCF,EAAI,KAAK,GAAG,mBAAmBC,CAAG,CAAC,IAAI,mBAAmBC,CAAK,CAAC,EAAE,EAE7DF,GACN,CAAC,CAAa,EAChB,KAAK,GAAG,ECRb,IAAOG,EAAQ,OAAO,QAAW,YCUjC,IAAqBC,EAArB,KAAgC,CAI9B,YAAYC,EAAuB,CAFnC,KAAiB,gBAA0B,IAGzC,KAAK,OAASA,CAChB,CAEA,MAAa,MAA4B,CACvC,GAAM,CAAE,KAAAC,CAAK,EAAI,MAAM,KAAK,OAAO,IAAgB,gBAAgB,EACnE,OAAOA,CACT,CAEA,MAAa,OAAOC,EAAiC,CACnD,GAAM,CAAE,KAAAD,CAAK,EAAI,MAAM,KAAK,OAAO,KAAe,iBAAkB,CAClE,KAAAC,CACF,CAAC,EACD,OAAOD,CACT,CAEA,MAAa,IAAIE,EAA+B,CAC9C,GAAM,CAAE,KAAAF,CAAK,EAAI,MAAM,KAAK,OAAO,IAAc,kBAAkBE,CAAE,EAAE,EACvE,OAAOF,CACT,CAEA,MAAa,OAAOE,EAA+B,CACjD,GAAM,CAAE,KAAAF,CAAK,EAAI,MAAM,KAAK,OAAO,OAAiB,kBAAkBE,CAAE,EAAE,EAC1E,OAAOF,CACT,CAEA,MAAa,OAAOE,EAAYD,EAAiC,CAC/D,GAAM,CAAE,KAAAD,CAAK,EAAI,MAAM,KAAK,OAAO,IAAc,kBAAkBE,CAAE,GAAI,CAAE,KAAAD,CAAK,CAAC,EACjF,OAAOD,CACT,CAEA,MAAa,UAAUE,EAAYC,EAAqBC,EAAgB,GAAgC,CACtG,GAAM,CAACC,EAAUC,CAAO,EAAIC,EAAW,CACrC,IAAAJ,EACA,YAAaC,EAAO,OAAS,MAC/B,CAAC,EAEK,CAAE,KAAAJ,CAAK,EAAI,MAAM,KAAK,OAAO,KAAqB,kBAAkBE,CAAE,UAAWG,EAAU,CAAE,QAAAC,CAAQ,CAAC,EAC5G,OAAON,CACT,CAEA,MAAa,gBAAgBE,EAAqC,CAChE,GAAM,CAAE,KAAAF,CAAK,EAAI,MAAM,KAAK,OAAO,IAAoB,0BAA0BE,CAAE,EAAE,EACrF,OAAOF,CACT,CAEA,MAAa,cACXQ,EACAC,EACAC,EACyB,CACzB,IAAMC,EAAQ,KAAK,IAAI,EAEvB,KAAOH,EAAQ,SAAW,GAAK,CAC7B,GAAIE,GAAe,KAAK,IAAI,EAAIC,EAAQD,EAAa,MAAM,IAAIE,EAE/D,MAAMC,EAAM,KAAK,eAAe,EAEhCL,EAAU,MAAM,KAAK,gBAAgBA,EAAQ,EAAE,EAE/CC,GAAkBA,EAAeD,CAAO,CAC1C,CAEA,OAAOA,CACT,CAEA,MAAa,OAAON,EAAqC,CACvD,GAAM,CAAE,KAAAF,CAAK,EAAI,MAAM,KAAK,OAAO,IAAoB,kBAAkBE,CAAE,SAAS,EACpF,OAAOF,CACT,CAEA,MAAa,OAAOE,EAAYY,EAA8BC,EAA0C,CACtG,IAAMC,EAAcC,EAAc,CAChC,aAAcH,EACd,OAAAC,CACF,CAAC,EAED,GAAIG,EAAQ,CACV,GAAM,CAAE,KAAAlB,CAAK,EAAI,MAAM,KAAK,OAAO,IAAc,kBAAkBE,CAAE,WAAWc,CAAW,GAAI,CAC7F,aAAc,QAChB,CAAC,EACD,OAAOhB,CACT,KAAO,CACL,GAAM,CAAE,KAAAA,CAAK,EAAI,MAAM,KAAK,OAAO,IAAU,kBAAkBE,CAAE,WAAWc,CAAW,GAAI,CACzF,aAAc,MAChB,CAAC,EACD,OAAOhB,EAAK,OAAO,CACrB,CACF,CACF,ECtGA,OAAOmB,MAA8B,QCe9B,IAAKC,OACVA,EAAA,YAAc,cACdA,EAAA,UAAY,YACZA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,YAAc,cACdA,EAAA,WAAa,aACbA,EAAA,MAAQ,QAPEA,OAAA,IChBZ,IAAMC,EAAeC,GAAsB,CACzC,GAAI,OAAOA,GAAY,SAAU,OAAOA,EACxC,GAAI,MAAM,QAAQA,CAAO,EAAG,OAAOA,EAAQ,IAAID,CAAW,EAE1D,GAAI,OAAOC,GAAY,UAAYA,IAAY,KAAM,CACnD,IAAMC,EAA8B,CAAC,EACrC,OAAW,CAACC,EAAKC,CAAK,IAAK,OAAO,QAAQH,CAAO,EAAG,CAClD,IAAMI,EAAWF,EAAI,QAAQ,WAAY,KAAK,EAAE,YAAY,EAC5DD,EAAOG,CAAQ,EAAIL,EAAYI,CAAK,CACtC,CACA,OAAOF,CACT,CAEA,OAAOD,CACT,EAEOK,EAAQN,EFGf,IAAqBO,EAArB,KAA+B,CAK7B,YAAYC,EAAuB,CAHnC,KAAiB,gBAA0B,IAC3C,KAAiB,YAAsB,IAAO,GAAK,GAGjD,KAAK,OAASA,CAChB,CAEA,MAAa,OACXC,EACAC,EACAC,EACAC,EACAC,EACmB,CACnB,GAAM,CAAE,KAAMC,CAAgB,EAAI,MAAM,KAAK,OAAO,IAClD,qCAAqC,mBAAmBJ,CAAQ,CAAC,EACnE,EACM,CAAE,IAAAK,EAAK,OAAAC,CAAO,EAAIF,EAElB,CAACG,EAAUC,CAAO,EAAIC,EAAW,CACrC,GAAGH,EACH,KAAAP,CACF,CAAC,EAED,MAAMW,EAAM,KAAKL,EAAKE,EAAU,CAAE,QAAAC,CAAQ,CAAC,EAE3C,IAAMG,EAAgBR,GAAA,MAAAA,EAAS,QAAU,CAAE,kBAAmB,MAAO,EAAI,OAEnE,CAAE,KAAAS,CAAK,EAAI,MAAM,KAAK,OAAO,KACjC,gBACA,CACE,OAAAX,EACA,OAAAC,EACA,MAAOI,EAAO,IACd,SAAUH,GAAA,YAAAA,EAAS,QACnB,WAAYA,GAAA,YAAAA,EAAS,WACrB,MAAOA,GAAA,YAAAA,EAAS,MAChB,SAAUA,GAAA,YAAAA,EAAS,SACnB,kBAAmBA,GAAA,MAAAA,EAAS,iBAAmBU,EAAYV,EAAQ,gBAAgB,EAAI,MACzF,EACAQ,EAAgB,CAAE,QAASA,CAAc,EAAI,MAC/C,EAEA,OAAOC,CACT,CAEA,MAAa,OAAOE,EAA+B,CACjD,GAAM,CAAE,KAAAF,CAAK,EAAI,MAAM,KAAK,OAAO,IAAc,iBAAiBE,CAAE,EAAE,EACtE,OAAOF,CACT,CAEA,MAAa,SAASE,EAAYX,EAA4D,CAC5F,IAAMY,EAAcC,EAAc,CAChC,cAAeb,GAAA,YAAAA,EAAS,YAC1B,CAAC,EAEK,CAAE,KAAAS,CAAK,EAAI,MAAM,KAAK,OAAO,IAAqB,iBAAiBE,CAAE,iBAAiBC,CAAW,EAAE,EAEzG,GAAIE,EAAQ,CACV,GAAM,CAAE,KAAMC,CAAe,EAAI,MAAMR,EAAM,IAAcE,EAAK,IAAK,CACnE,aAAc,QAChB,CAAC,EACD,OAAOM,CACT,KAAO,CACL,GAAM,CAAE,KAAMA,CAAe,EAAI,MAAMR,EAAM,IAAUE,EAAK,IAAK,CAC/D,aAAc,MAChB,CAAC,EACD,OAAOM,EAAe,OAAO,CAC/B,CACF,CAEA,MAAa,UACXnB,EACAC,EACAC,EACAC,EACAC,EACyB,CACzB,IAAMgB,EAAuC,CAC3C,QAAShB,GAAA,YAAAA,EAAS,QAClB,WAAYA,GAAA,YAAAA,EAAS,WACrB,QAASA,GAAA,YAAAA,EAAS,QAClB,MAAOA,GAAA,YAAAA,EAAS,MAChB,SAAUA,GAAA,YAAAA,EAAS,SACnB,iBAAkBA,GAAA,YAAAA,EAAS,gBAC7B,EAEM,CAAE,GAAAW,CAAG,EAAI,MAAM,KAAK,OAAOf,EAAMC,EAAUC,EAAQC,EAAQiB,CAAa,EAExEC,EAA2C,CAC/C,aAAcjB,GAAA,YAAAA,EAAS,YACzB,EAEMkB,EAAQ,KAAK,IAAI,EAEvB,KAAO,KAAK,IAAI,EAAIA,EAAQ,KAAK,aAAa,CAC5C,MAAMC,EAAM,KAAK,eAAe,EAEhC,GAAM,CAAE,OAAAC,EAAQ,YAAAC,CAAY,EAAI,MAAM,KAAK,OAAOV,CAAE,EAEpD,GAAIS,IAAW,aAA2B,OAAO,MAAM,KAAK,SAAST,EAAIM,CAAe,EACxF,GAAIG,IAAW,QAAsB,MAAM,IAAIE,EAAa,IAAKD,EAAuB,SAAS,CACnG,CAEA,MAAM,IAAIE,CACZ,CACF,EG/HA,IAAMC,EAAeC,GAAsB,CACzC,GAAI,OAAOA,GAAY,SAAU,OAAOA,EACxC,GAAI,MAAM,QAAQA,CAAO,EAAG,OAAOA,EAAQ,IAAID,CAAW,EAE1D,GAAI,OAAOC,GAAY,UAAYA,IAAY,KAAM,CACnD,IAAMC,EAA8B,CAAC,EACrC,OAAW,CAACC,EAAKC,CAAK,IAAK,OAAO,QAAQH,CAAO,EAAG,CAClD,IAAMI,EAAWF,EAAI,QAAQ,YAAa,CAACG,EAAGC,IAAWA,EAAO,YAAY,CAAC,EAC7EL,EAAOG,CAAQ,EAAIL,EAAYI,CAAK,CACtC,CACA,OAAOF,CACT,CAEA,OAAOD,CACT,EAEOO,EAAQR,EdEf,IAAMS,EAAmB,gCAEZC,EAAN,MAAMC,CAAW,CAgBtB,YAAYC,EAAuBC,EAA2BC,EAAuBC,EAA6B,CApCpH,IAAAC,EAqCI,KAAK,UAAYJ,EACjB,KAAK,YAAcC,EACnB,KAAK,UAAYC,EAEjB,KAAK,QAAUC,GAAW,CAAC,EAE3B,KAAK,OAASE,EAAM,OAAO,CACzB,SAASD,EAAAD,GAAA,YAAAA,EAAS,YAAT,KAAAC,EAAsBP,EAC/B,QAAS,CACP,kBAAmB,YACnB,qBAAsBS,EACtB,cAAe,IAAI,KAAK,EAAE,YAAY,EACtC,IAAIH,GAAA,YAAAA,EAAS,eAAgB,CAAC,CAChC,CACF,CAAC,EAGD,KAAK,OAAO,aAAa,QAAQ,IAAI,MAAOI,GAAY,CACtD,IAAMC,EAAQ,MAAM,KAAK,aAAa,EAEtC,OAAAD,EAAQ,QAAQ,cAAgB,UAAUC,CAAK,GACxCD,CACT,EAAG,QAAQ,MAAM,EAGjB,KAAK,OAAO,aAAa,SAAS,IAC/BE,IAEKA,EAAS,OAAO,eAAiB,UAAYA,EAAS,MAAQ,OAAOA,EAAS,MAAS,WACzFA,EAAS,KAAOC,EAAYD,EAAS,IAAI,GAGpCA,GAET,MAAOE,GAAU,CAvEvB,IAAAP,EAAAQ,EAAAC,EAAAC,EAAAC,EAAAC,EAwEQ,IAAMC,EAAkBN,EAAM,OAE9B,GAAI,CAACM,EAAgB,SAAWN,EAAM,UAAYA,EAAM,SAAS,SAAW,KAAOA,EAAM,SAAS,KAAK,UAAY,cAAe,CAChI,KAAK,MAAQ,OACb,IAAMH,EAAQ,MAAM,KAAK,aAAa,EACtC,OAAAS,EAAgB,QAAU,GAC1BA,EAAgB,QAAQ,cAAgB,UAAUT,CAAK,GAChD,KAAK,OAAOS,CAAe,CACpC,CAEA,OAAO,QAAQ,OACb,IAAIC,GACFN,GAAAR,EAAAO,EAAM,WAAN,YAAAP,EAAgB,SAAhB,KAAAQ,EAA0B,KAC1BG,GAAAD,GAAAD,EAAAF,EAAM,WAAN,YAAAE,EAAgB,OAAhB,YAAAC,EAAsB,UAAtB,KAAAC,EAAiCJ,EAAM,SACvCK,EAAAL,EAAM,WAAN,YAAAK,EAAgB,QAAQ,mBAC1B,CACF,CACF,CACF,EAEA,KAAK,SAAW,IAAIG,EAAS,KAAK,MAAM,EACxC,KAAK,WAAa,IAAIC,EAAW,KAAK,MAAM,EAC5C,KAAK,UAAY,IAAIC,EAAU,KAAK,MAAM,CAC5C,CAEA,MAAc,cAAgC,CAjGhD,IAAAjB,EAAAQ,EAAAC,EAAAC,EAAAC,EAAAC,EAmGI,GAAI,KAAK,MAAO,OAAO,KAAK,MAG5B,GAAI,KAAK,aAAc,CACrB,GAAM,CAAE,KAAAM,EAAM,QAAAC,CAAQ,EAAI,MAAMlB,EAAM,KACpC,IAAGO,GAAAR,EAAA,KAAK,UAAL,YAAAA,EAAc,YAAd,KAAAQ,EAA2Bf,CAAgB,mBAC9C,KACA,CACE,QAAS,CACP,cAAe,UAAU,KAAK,YAAY,GAC1C,cAAe,IAAI,KAAK,EAAE,YAAY,CACxC,CACF,CACF,EAEA,YAAK,MAAQyB,EAAK,MAClB,KAAK,aAAeC,EAAQ,sBAAsB,EAC3C,KAAK,KACd,SAAW,KAAK,UAAW,CAEzB,GAAM,CAAE,KAAAD,EAAM,QAAAC,CAAQ,EAAI,MAAMlB,EAAM,KACpC,IAAGS,GAAAD,EAAA,KAAK,UAAL,YAAAA,EAAc,YAAd,KAAAC,EAA2BjB,CAAgB,WAC9C,KAAK,UACL,CACE,QAAS,CACP,cAAe,IAAI,KAAK,EAAE,YAAY,CACxC,CACF,CACF,EAEA,YAAK,MAAQyB,EAAK,MAClB,KAAK,aAAeC,EAAQ,sBAAsB,EAC3C,KAAK,KACd,SAAW,KAAK,YAAa,CAE3B,GAAM,CAAE,KAAAD,EAAM,QAAAC,CAAQ,EAAI,MAAMlB,EAAM,KAEpC,IAAGW,GAAAD,EAAA,KAAK,UAAL,YAAAA,EAAc,YAAd,KAAAC,EAA2BnB,CAAgB,yBAC9C,KAAK,YACL,CACE,QAAS,CACP,cAAe,IAAI,KAAK,EAAE,YAAY,CACxC,CACF,CACF,EAEA,YAAK,MAAQyB,EAAK,MAClB,KAAK,aAAeC,EAAQ,sBAAsB,EAC3C,KAAK,KACd,KAAO,IAAI,KAAK,UAEd,YAAK,MAAQ,KAAK,UAAU,MAC5B,KAAK,aAAe,KAAK,UAAU,cACnC,KAAK,UAAY,OACV,KAAK,MAEZ,MAAM,IAAI,MAAM,mCAAmC,EAEvD,CAEA,MAAM,UACJC,EACAC,EACAC,EACAvB,EACwB,CACxB,IAAMoB,EAAkC,CAAC,EAEzC,GAAIpB,GAAA,MAAAA,EAAS,QACX,OAAW,CAACwB,EAAMC,CAAK,IAAK,OAAO,QAAQzB,EAAQ,OAAO,EACxDoB,EAAQI,CAAI,EAAIC,EAIhBzB,GAAA,MAAAA,EAAS,UAASoB,EAAQ,YAAY,EAAI,QAE9C,GAAM,CAAE,KAAAD,CAAK,EAAI,MAAM,KAAK,OAAO,KACjC,gBACA,CACE,EAAGE,EACH,OAAUC,GAAkB,OAC5B,OAAAC,EACA,YAAavB,GAAA,YAAAA,EAAS,WACtB,aAAcA,GAAA,YAAAA,EAAS,YACvB,WAAWA,GAAA,YAAAA,EAAS,aAAc,GAClC,SAAUA,GAAA,YAAAA,EAAS,QACnB,WAAYA,GAAA,YAAAA,EAAS,WACrB,aAAcA,GAAA,YAAAA,EAAS,aACvB,QAASA,GAAA,YAAAA,EAAS,gBAClB,SAAUA,GAAA,YAAAA,EAAS,SACnB,UAAWA,GAAA,YAAAA,EAAS,SACpB,UAAWA,GAAA,YAAAA,EAAS,gBACpB,QAASA,GAAA,YAAAA,EAAS,QAClB,MAAOA,GAAA,YAAAA,EAAS,KAClB,EACAoB,CACF,EAEA,OAAOD,CACT,CAEA,MAAM,cAAkC,CACtC,GAAM,CAAE,KAAAA,CAAK,EAAI,MAAM,KAAK,OAAO,IAAc,eAAe,EAChE,OAAOA,CACT,CAEA,aAAa,YAAYO,EAAqC,CAC5D,GAAM,CAAE,KAAAP,CAAK,EAAI,MAAMjB,EAAM,IAAY,GAAGwB,GAAA,KAAAA,EAAahC,CAAgB,qBAAqB,EAC9F,OAAOyB,CACT,CAEA,OAAO,YAAYQ,EAAYC,EAAgB5B,EAAyC,CACtF,OAAO,IAAIJ,EAAW,CAAE,GAAA+B,EAAI,OAAAC,CAAO,EAAG,OAAW,OAAW5B,CAAO,CACrE,CAEA,OAAO,cAAc6B,EAAeC,EAAkB9B,EAAyC,CAC7F,OAAO,IAAIJ,EAAW,OAAW,CAAE,MAAAiC,EAAO,SAAAC,CAAS,EAAG,OAAW9B,CAAO,CAC1E,CAEA,OAAO,YAAYK,EAAe0B,EAAuB/B,EAAyC,CAChG,OAAO,IAAIJ,EAAW,OAAW,OAAW,CAAE,MAAAS,EAAO,cAAA0B,CAAc,EAAG/B,CAAO,CAC/E,CACF","names":["axios","LaraError","LaraTimeoutError","LaraApiError","statusCode","message","idTransaction","browser_default","data","formData","key","value","v","FormData","node_default","data","formData","key","value","v","form","browser_default","node_default","formdata_default","sleep_default","millis","resolve","Memories","client","data","name","externalId","id","source","target","sentence","translation","tuid","sentenceBefore","sentenceAfter","headers","url","tmx","gzip","formData","formdata_default","mImport","updateCallback","maxWaitTime","start","LaraTimeoutError","sleep_default","ids","version","toQueryString_default","params","acc","key","value","isNode_default","Glossaries","client","data","name","id","csv","gzip","formData","headers","formdata_default","gImport","updateCallback","maxWaitTime","start","LaraTimeoutError","sleep_default","contentType","source","queryString","toQueryString_default","isNode_default","axios","DocumentStatus","toSnakeCase","content","result","key","value","snakeKey","toSnakeCase_default","Documents","client","file","filenane","source","target","options","s3UploadUrlData","url","fields","formData","headers","formdata_default","axios","noTraceHeader","data","toSnakeCase_default","id","queryString","toQueryString_default","isNode_default","downloadedData","uploadOptions","downloadOptions","start","sleep_default","status","errorReason","LaraApiError","LaraTimeoutError","toCamelCase","content","result","key","value","camelKey","_","letter","toCamelCase_default","DEFAULT_BASE_URL","Translator","_Translator","accessKey","credentials","authToken","options","_a","axios","version","request","token","response","toCamelCase_default","error","_b","_c","_d","_e","_f","originalRequest","LaraApiError","Memories","Glossaries","Documents","data","headers","text","source","target","name","value","serverUrl","id","secret","email","password","refresh_token"]}
|
|
1
|
+
{"version":3,"sources":["../src/Translator.ts","../src/utils/errors.ts","../src/utils/formdata/browser.ts","../src/utils/formdata/node.ts","../src/utils/formdata/index.ts","../src/utils/sleep.ts","../src/Memories.ts","../src/sdk-version.ts","../src/utils/toQueryString.ts","../src/utils/isNode.ts","../src/Glossaries.ts","../src/Documents.ts","../src/models/documents.ts","../src/utils/toSnakeCase.ts","../src/utils/downloadFromS3/browser.ts","../src/utils/downloadFromS3/node.ts","../src/utils/downloadFromS3/index.ts","../src/utils/toCamelCase.ts"],"sourcesContent":["import axios, { AxiosInstance } from 'axios';\nimport {\n AccessKey,\n Credentials,\n AuthToken,\n TranslatorOptions,\n TextBlock,\n TranslateOptions,\n TextResult,\n AuthenticationResponse,\n} from './models';\nimport Memories from './Memories';\nimport { version } from './sdk-version';\nimport Glossaries from './Glossaries';\nimport Documents from './Documents';\nimport toCamelCase from './utils/toCamelCase';\nimport { LaraApiError } from './utils/errors';\n\nconst DEFAULT_BASE_URL = 'https://api.laratranslate.com';\n\nexport class Translator {\n private readonly accessKey?: AccessKey;\n private readonly credentials?: Credentials;\n private authToken?: AuthToken;\n\n public readonly memories: Memories;\n public readonly glossaries: Glossaries;\n public readonly documents: Documents;\n\n private token?: string;\n private refreshToken?: string;\n\n private readonly options?: TranslatorOptions;\n\n private readonly client: AxiosInstance;\n\n constructor(accessKey?: AccessKey, credentials?: Credentials, authToken?: AuthToken, options?: TranslatorOptions) {\n this.accessKey = accessKey;\n this.credentials = credentials;\n this.authToken = authToken;\n\n this.options = options || {};\n\n this.client = axios.create({\n baseURL: options?.serverUrl ?? DEFAULT_BASE_URL,\n headers: {\n 'X-Lara-SDK-Name': 'lara-node',\n 'X-Lara-SDK-Version': version,\n 'X-Lara-Date': new Date().toUTCString(),\n ...(options?.extraHeaders || {}),\n },\n });\n\n // Intercept request to add authentication header\n this.client.interceptors.request.use(async (request) => {\n const token = await this.authenticate();\n\n request.headers.Authorization = `Bearer ${token}`;\n return request;\n }, Promise.reject);\n\n // Intercepts errors to handle authentication errors\n this.client.interceptors.response.use(\n (response) => {\n // Convert payload in camel case if needed\n if (response.config.responseType !== 'stream' && response.data && typeof response.data === 'object') {\n response.data = toCamelCase(response.data);\n }\n\n return response;\n },\n async (error) => {\n const originalRequest = error.config;\n\n if (!originalRequest.isRetry && error.response && error.response.status === 401 && error.response.data.message === 'jwt expired') {\n this.token = undefined;\n const token = await this.authenticate();\n originalRequest.isRetry = true;\n originalRequest.headers.Authorization = `Bearer ${token}`;\n return this.client(originalRequest);\n }\n\n return Promise.reject(\n new LaraApiError(\n error.response?.status ?? 500,\n error.response?.data?.message ?? error.message,\n error.response?.headers['x-transaction-id'],\n ),\n );\n },\n );\n\n this.memories = new Memories(this.client);\n this.glossaries = new Glossaries(this.client);\n this.documents = new Documents(this.client);\n }\n\n private async authenticate(): Promise<string> {\n // If the token is set, return it\n if (this.token) return this.token;\n\n // If we have a refresh token, use it to get a new token\n if (this.refreshToken) {\n const { data, headers } = await axios.post<AuthenticationResponse>(\n `${this.options?.serverUrl ?? DEFAULT_BASE_URL}/v2/auth/refresh`,\n null,\n {\n headers: {\n authorization: `Bearer ${this.refreshToken}`,\n 'X-Lara-Date': new Date().toUTCString(),\n },\n },\n );\n\n this.token = data.token;\n this.refreshToken = headers['x-lara-refresh-token'];\n return this.token;\n } else if (this.accessKey) {\n // Use access key to get a new token\n const { data, headers } = await axios.post<AuthenticationResponse>(\n `${this.options?.serverUrl ?? DEFAULT_BASE_URL}/v2/auth`,\n this.accessKey,\n {\n headers: {\n 'X-Lara-Date': new Date().toUTCString(),\n },\n },\n );\n\n this.token = data.token;\n this.refreshToken = headers['x-lara-refresh-token'];\n return this.token;\n } else if (this.credentials) {\n // Use credentials to get a new token\n const { data, headers } = await axios.post<AuthenticationResponse>(\n //FIXME: client id should be set\n `${this.options?.serverUrl ?? DEFAULT_BASE_URL}/v2/auth/Unknown/login`,\n this.credentials,\n {\n headers: {\n 'X-Lara-Date': new Date().toUTCString(),\n },\n },\n );\n\n this.token = data.token;\n this.refreshToken = headers['x-lara-refresh-token'];\n return this.token;\n } else if (this.authToken) {\n // Use the provided auth token\n this.token = this.authToken.token;\n this.refreshToken = this.authToken.refresh_token;\n this.authToken = undefined;\n return this.token;\n } else {\n throw new Error('No authentication method provided');\n }\n }\n\n async translate<T extends string | string[] | TextBlock[]>(\n text: T,\n source: string | undefined,\n target: string,\n options?: TranslateOptions,\n ): Promise<TextResult<T>> {\n const headers: Record<string, string> = {};\n\n if (options?.headers) {\n for (const [name, value] of Object.entries(options.headers)) {\n headers[name] = value;\n }\n }\n\n if (options?.noTrace) headers['X-No-Trace'] = 'true';\n\n const { data } = await this.client.post<TextResult<T>>(\n `/v2/translate`,\n {\n q: text,\n source: !!source ? source : undefined,\n target,\n source_hint: options?.sourceHint,\n content_type: options?.contentType,\n multiline: options?.multiline !== false,\n adapt_to: options?.adaptTo,\n glossaries: options?.glossaries,\n instructions: options?.instructions,\n timeout: options?.timeoutInMillis,\n priority: options?.priority,\n use_cache: options?.useCache,\n cache_ttl: options?.cacheTTLSeconds,\n verbose: options?.verbose,\n style: options?.style,\n },\n headers,\n );\n\n return data;\n }\n\n async getLanguages(): Promise<string[]> {\n const { data } = await this.client.get<string[]>(`/v2/languages`);\n return data;\n }\n\n static async getLoginUrl(serverUrl?: string): Promise<string> {\n const { data } = await axios.get<string>(`${serverUrl ?? DEFAULT_BASE_URL}/v2/auth/login-page`);\n return data;\n }\n\n static byAccessKey(id: string, secret: string, options?: TranslatorOptions): Translator {\n return new Translator({ id, secret }, undefined, undefined, options);\n }\n\n static byCredentials(email: string, password: string, options?: TranslatorOptions): Translator {\n return new Translator(undefined, { email, password }, undefined, options);\n }\n\n static byAuthToken(token: string, refresh_token: string, options?: TranslatorOptions): Translator {\n return new Translator(undefined, undefined, { token, refresh_token }, options);\n }\n}\n","export class LaraError extends Error {}\n\nexport class LaraTimeoutError extends LaraError {}\n\nexport class LaraApiError extends LaraError {\n public readonly statusCode: number;\n public readonly message: string;\n public readonly idTransaction: string;\n\n constructor(statusCode: number, message: string, idTransaction: string) {\n super(message);\n this.statusCode = statusCode;\n this.message = message;\n this.idTransaction = idTransaction;\n }\n}\n","export default (data: Record<string, any>) => {\n const formData = new FormData();\n for (const [key, value] of Object.entries(data)) {\n if (!value) continue;\n if (Array.isArray(value)) {\n for (const v of value) formData.append(key, v);\n } else {\n formData.append(key, value);\n }\n }\n\n return [formData, {}];\n};\n","import FormData from 'form-data';\n\nexport default (data: Record<string, any>): [FormData, { [key: string]: any }] => {\n const formData = new FormData();\n for (const [key, value] of Object.entries(data)) {\n if (!value) continue;\n if (Array.isArray(value)) {\n for (const v of value) formData.append(key, v);\n } else {\n formData.append(key, value);\n }\n }\n\n return [formData, { ...formData.getHeaders() }];\n};\n","import browserForm from './browser.js';\nimport nodeForm from './node.js';\n\nlet form;\n\nif (typeof window !== 'undefined') {\n form = browserForm;\n} else {\n form = nodeForm;\n}\n\nexport default form as (data: Record<string, any>) => [any, { [key: string]: any }];\n","export default (millis: number) => new Promise((resolve) => setTimeout(resolve, millis));\n","import { AxiosInstance } from 'axios';\nimport { LaraTimeoutError } from './utils/errors';\nimport { Memory, MemoryImport, UploadableFile } from './models';\nimport toFormData from './utils/formdata';\nimport sleep from './utils/sleep';\n\nexport default class Memories {\n private readonly client: AxiosInstance;\n private readonly pollingInterval: number = 2000;\n\n constructor(client: AxiosInstance) {\n this.client = client;\n }\n\n public async list(): Promise<Memory[]> {\n const { data } = await this.client.get<Memory[]>('/v2/memories');\n return data;\n }\n\n public async create(name: string, externalId?: string): Promise<Memory> {\n const { data } = await this.client.post<Memory>('/v2/memories', {\n name,\n external_id: externalId,\n });\n return data;\n }\n\n public async get(id: string): Promise<Memory> {\n const { data } = await this.client.get<Memory>(`/v2/memories/${id}`);\n return data;\n }\n\n public async delete(id: string): Promise<Memory> {\n const { data } = await this.client.delete<Memory>(`/v2/memories/${id}`);\n return data;\n }\n\n public async update(id: string, name: string): Promise<Memory> {\n const { data } = await this.client.put<Memory>(`/v2/memories/${id}`, { name });\n return data;\n }\n\n public async addTranslation(\n id: string | string[],\n source: string,\n target: string,\n sentence: string,\n translation: string,\n tuid?: string,\n sentenceBefore?: string,\n sentenceAfter?: string,\n headers?: Record<string, any>,\n ): Promise<MemoryImport> {\n const url = Array.isArray(id) ? '/v2/memories/content' : `/v2/memories/${id}/content`;\n const { data } = await this.client.put<MemoryImport>(\n url,\n {\n ids: Array.isArray(id) ? id : undefined,\n source,\n target,\n sentence,\n translation,\n tuid,\n sentence_before: sentenceBefore,\n sentence_after: sentenceAfter,\n },\n {\n headers,\n },\n );\n return data;\n }\n\n public async deleteTranslation(\n id: string | string[],\n source: string,\n target: string,\n sentence?: string,\n translation?: string,\n tuid?: string,\n sentenceBefore?: string,\n sentenceAfter?: string,\n ): Promise<MemoryImport> {\n const url = Array.isArray(id) ? '/v2/memories/content' : `/v2/memories/${id}/content`;\n const { data } = await this.client.delete<MemoryImport>(url, {\n data: {\n ids: Array.isArray(id) ? id : undefined,\n source,\n target,\n sentence,\n translation,\n tuid,\n sentence_before: sentenceBefore,\n sentence_after: sentenceAfter,\n },\n });\n return data;\n }\n\n public async importTmx(id: string, tmx: UploadableFile, gzip: boolean = false) {\n const [formData, headers] = toFormData({\n tmx,\n compression: gzip ? 'gzip' : undefined,\n });\n\n const { data } = await this.client.post<MemoryImport>(`/v2/memories/${id}/import`, formData, {\n headers,\n });\n\n return data;\n }\n\n public async getImportStatus(id: string): Promise<MemoryImport> {\n const { data } = await this.client.get(`/v2/memories/imports/${id}`);\n return data;\n }\n\n public async waitForImport(\n mImport: MemoryImport,\n updateCallback?: (mImport: MemoryImport) => void,\n maxWaitTime?: number,\n ): Promise<MemoryImport> {\n const start = Date.now();\n\n while (mImport.progress < 1.0) {\n if (maxWaitTime && Date.now() - start > maxWaitTime) throw new LaraTimeoutError();\n\n await sleep(this.pollingInterval);\n\n mImport = await this.getImportStatus(mImport.id);\n\n updateCallback && updateCallback(mImport);\n }\n\n return mImport;\n }\n\n public async connect<T extends string | string[]>(ids: T): Promise<T extends string ? Memory : Memory[]> {\n const { data } = await this.client.post<Memory[]>('/v2/memories/connect', {\n ids: Array.isArray(ids) ? ids : [ids],\n });\n\n return (Array.isArray(ids) ? data : data[0]) as T extends string ? Memory : Memory[];\n }\n}\n","export const version = '2.0.0-beta.8';\n","export default (params: Record<string, any>): string =>\n Object.entries(params)\n .reduce((acc, [key, value]) => {\n if (value !== undefined && value !== null) {\n acc.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`);\n }\n return acc;\n }, [] as string[])\n .join('&');\n","export default typeof window === 'undefined';\n","import { Readable } from 'node:stream';\nimport { blob } from 'stream/consumers';\nimport { AxiosInstance } from 'axios';\nimport { LaraTimeoutError } from './utils/errors';\nimport { DownloadResult, Glossary, GlossaryCounts, GlossaryImport, UploadableFile } from './models';\nimport toFormData from './utils/formdata';\nimport sleep from './utils/sleep';\nimport toQueryString from './utils/toQueryString';\nimport isNode from './utils/isNode';\n\nexport default class Glossaries {\n private readonly client: AxiosInstance;\n private readonly pollingInterval: number = 2000;\n\n constructor(client: AxiosInstance) {\n this.client = client;\n }\n\n public async list(): Promise<Glossary[]> {\n const { data } = await this.client.get<Glossary[]>('/v2/glossaries');\n return data;\n }\n\n public async create(name: string): Promise<Glossary> {\n const { data } = await this.client.post<Glossary>('/v2/glossaries', {\n name,\n });\n return data;\n }\n\n public async get(id: string): Promise<Glossary> {\n const { data } = await this.client.get<Glossary>(`/v2/glossaries/${id}`);\n return data;\n }\n\n public async delete(id: string): Promise<Glossary> {\n const { data } = await this.client.delete<Glossary>(`/v2/glossaries/${id}`);\n return data;\n }\n\n public async update(id: string, name: string): Promise<Glossary> {\n const { data } = await this.client.put<Glossary>(`/v2/glossaries/${id}`, { name });\n return data;\n }\n\n public async importCsv(id: string, csv: UploadableFile, gzip: boolean = false): Promise<GlossaryImport> {\n const [formData, headers] = toFormData({\n csv,\n compression: gzip ? 'gzip' : undefined,\n });\n\n const { data } = await this.client.post<GlossaryImport>(`/v2/glossaries/${id}/import`, formData, { headers });\n return data;\n }\n\n public async getImportStatus(id: string): Promise<GlossaryImport> {\n const { data } = await this.client.get<GlossaryImport>(`/v2/glossaries/imports/${id}`);\n return data;\n }\n\n public async waitForImport(\n gImport: GlossaryImport,\n updateCallback?: (mImport: GlossaryImport) => void,\n maxWaitTime?: number,\n ): Promise<GlossaryImport> {\n const start = Date.now();\n\n while (gImport.progress < 1.0) {\n if (maxWaitTime && Date.now() - start > maxWaitTime) throw new LaraTimeoutError();\n\n await sleep(this.pollingInterval);\n\n gImport = await this.getImportStatus(gImport.id);\n\n updateCallback && updateCallback(gImport);\n }\n\n return gImport;\n }\n\n public async counts(id: string): Promise<GlossaryCounts> {\n const { data } = await this.client.get<GlossaryCounts>(`/v2/glossaries/${id}/counts`);\n return data;\n }\n\n public async export(id: string, contentType: 'csv/table-uni', source?: string): Promise<DownloadResult> {\n const queryString = toQueryString({\n content_type: contentType,\n source,\n });\n\n if (isNode) {\n const { data } = await this.client.get<Readable>(`/v2/glossaries/${id}/export?${queryString}`, {\n responseType: 'stream',\n });\n return data;\n } else {\n const { data } = await this.client.get<Blob>(`/v2/glossaries/${id}/export?${queryString}`, {\n responseType: 'blob',\n });\n return data.stream();\n }\n }\n}\n","import axios, { AxiosInstance } from 'axios';\nimport {\n Document,\n DocumentDownloadOptions,\n DocumentStatus,\n DocumentTranslateOptions,\n DocumentUploadOptions,\n DownloadResult,\n UploadableFile,\n UploadUrlData,\n} from './models';\nimport toFormData from './utils/formdata';\nimport toSnakeCase from './utils/toSnakeCase';\nimport sleep from './utils/sleep';\nimport { LaraApiError, LaraTimeoutError } from './utils/errors';\nimport toQueryString from './utils/toQueryString';\nimport downloadFromS3 from './utils/downloadFromS3';\n\nexport default class Documents {\n private readonly client: AxiosInstance;\n private readonly pollingInterval: number = 2000;\n private readonly maxWaitTime: number = 1000 * 60 * 15; // 15 minutes\n\n constructor(client: AxiosInstance) {\n this.client = client;\n }\n\n public async upload(\n file: UploadableFile,\n filename: string,\n source: string | undefined,\n target: string,\n options?: DocumentUploadOptions,\n ): Promise<Document> {\n const { data: s3UploadUrlData } = await this.client.get<UploadUrlData>(\n `/v2/documents/upload-url?filename=${encodeURIComponent(filename)}`,\n );\n const { url, fields } = s3UploadUrlData;\n\n const [formData, headers] = toFormData({\n ...fields,\n file,\n });\n\n await axios.post(url, formData, { headers });\n\n const noTraceHeader = options?.noTrace ? { 'X-Lara-No-Trace': 'true' } : undefined;\n\n const { data } = await this.client.post<Document>(\n `/v2/documents`,\n {\n source,\n target,\n s3key: fields.key,\n adapt_to: options?.adaptTo,\n glossaries: options?.glossaries,\n style: options?.style,\n password: options?.password,\n extraction_params: options?.extractionParams ? toSnakeCase(options.extractionParams) : undefined,\n },\n noTraceHeader ? { headers: noTraceHeader } : undefined,\n );\n\n return data;\n }\n\n public async status(id: string): Promise<Document> {\n const { data } = await this.client.get<Document>(`/v2/documents/${id}`);\n return data;\n }\n\n public async download(id: string, options?: DocumentDownloadOptions): Promise<DownloadResult> {\n const queryString = toQueryString({\n output_format: options?.outputFormat,\n });\n\n const { data } = await this.client.get<{ url: string }>(`/v2/documents/${id}/download-url?${queryString}`);\n\n return await downloadFromS3(data.url);\n }\n\n public async translate(\n file: UploadableFile,\n filenane: string,\n source: string | undefined,\n target: string,\n options?: DocumentTranslateOptions,\n ): Promise<DownloadResult> {\n const uploadOptions: DocumentUploadOptions = {\n adaptTo: options?.adaptTo,\n glossaries: options?.glossaries,\n noTrace: options?.noTrace,\n style: options?.style,\n password: options?.password,\n extractionParams: options?.extractionParams,\n };\n\n const { id } = await this.upload(file, filenane, source, target, uploadOptions);\n\n const downloadOptions: DocumentDownloadOptions = {\n outputFormat: options?.outputFormat,\n };\n\n const start = Date.now();\n\n while (Date.now() - start < this.maxWaitTime) {\n await sleep(this.pollingInterval);\n\n const { status, errorReason } = await this.status(id);\n\n if (status === DocumentStatus.TRANSLATED) return await this.download(id, downloadOptions);\n if (status === DocumentStatus.ERROR) throw new LaraApiError(500, errorReason as string, 'unknown');\n }\n\n throw new LaraTimeoutError();\n }\n}\n","import { TranslationStyle } from './translator';\n\nexport interface Document {\n readonly id: string;\n readonly status: DocumentStatus;\n readonly source?: string;\n readonly target: string;\n readonly filename: string;\n readonly createdAt: Date;\n readonly updatedAt: Date;\n readonly options?: DocumentOptions;\n readonly translatedChars?: number;\n readonly totalChars?: number;\n readonly errorReason?: string;\n}\n\nexport enum DocumentStatus {\n INITIALIZED = 'initialized', // just been created\n ANALYZING = 'analyzing', // being analyzed for language detection and chars count\n PAUSED = 'paused', // paused after analysis, needs user confirm\n READY = 'ready', // ready to be translated\n TRANSLATING = 'translating',\n TRANSLATED = 'translated',\n ERROR = 'error',\n}\nexport type DocumentOptions = {\n adaptTo?: string[];\n glossaries?: string[];\n noTrace?: boolean;\n style?: TranslationStyle;\n};\n\nexport type DocumentUploadOptions = DocumentOptions & {\n password?: string;\n extractionParams?: DocxExtractionParams;\n};\n\nexport type DocumentDownloadOptions = {\n outputFormat?: string;\n};\n\nexport type DocumentTranslateOptions = DocumentUploadOptions & DocumentDownloadOptions;\n\nexport interface DocxExtractionParams {\n extractComments?: boolean;\n accepsRevisions?: boolean;\n}\n\ninterface S3UploadFields {\n acl: string;\n bucket: string;\n key: string;\n}\n\nexport interface UploadUrlData {\n url: string;\n fields: S3UploadFields;\n}\n","const toSnakeCase = (content: any): any => {\n if (typeof content === 'string') return content;\n if (Array.isArray(content)) return content.map(toSnakeCase);\n\n if (typeof content === 'object' && content !== null) {\n const result: Record<string, any> = {};\n for (const [key, value] of Object.entries(content)) {\n const snakeKey = key.replace(/([A-Z])/g, '_$1').toLowerCase();\n result[snakeKey] = toSnakeCase(value);\n }\n return result;\n }\n\n return content;\n};\n\nexport default toSnakeCase;\n","import axios from 'axios';\n\nexport default async (url: string) => {\n const { data } = await axios.get<Blob>(url, {\n responseType: 'blob',\n });\n return data.stream();\n};\n","import { Readable } from 'node:stream';\nimport axios from 'axios';\n\nexport default async (url: string) => {\n const { data } = await axios.get<Readable>(url, {\n responseType: 'stream',\n });\n return data;\n};\n","import isNode from '../isNode';\nimport { DownloadResult } from '../../models';\nimport browserDownload from './browser';\nimport nodeDownload from './node';\n\nlet downloadFromS3;\n\nif (isNode) {\n downloadFromS3 = nodeDownload;\n} else {\n downloadFromS3 = browserDownload;\n}\n\nexport default downloadFromS3 as (url: string) => Promise<DownloadResult>;\n","const toCamelCase = (content: any): any => {\n if (typeof content === 'string') return content;\n if (Array.isArray(content)) return content.map(toCamelCase);\n\n if (typeof content === 'object' && content !== null) {\n const result: Record<string, any> = {};\n for (const [key, value] of Object.entries(content)) {\n const camelKey = key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());\n result[camelKey] = toCamelCase(value);\n }\n return result;\n }\n\n return content;\n};\n\nexport default toCamelCase;\n"],"mappings":"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","names":["axios","LaraError","LaraTimeoutError","LaraApiError","statusCode","message","idTransaction","browser_default","data","formData","key","value","v","FormData","node_default","data","formData","key","value","v","form","browser_default","node_default","formdata_default","sleep_default","millis","resolve","Memories","client","data","name","externalId","id","source","target","sentence","translation","tuid","sentenceBefore","sentenceAfter","headers","url","tmx","gzip","formData","formdata_default","mImport","updateCallback","maxWaitTime","start","LaraTimeoutError","sleep_default","ids","version","toQueryString_default","params","acc","key","value","isNode_default","Glossaries","client","data","name","id","csv","gzip","formData","headers","formdata_default","gImport","updateCallback","maxWaitTime","start","LaraTimeoutError","sleep_default","contentType","source","queryString","toQueryString_default","isNode_default","axios","DocumentStatus","toSnakeCase","content","result","key","value","snakeKey","toSnakeCase_default","axios","browser_default","url","data","axios","node_default","url","data","downloadFromS3","isNode_default","node_default","browser_default","downloadFromS3_default","Documents","client","file","filename","source","target","options","s3UploadUrlData","url","fields","formData","headers","formdata_default","axios","noTraceHeader","data","toSnakeCase_default","id","queryString","toQueryString_default","downloadFromS3_default","filenane","uploadOptions","downloadOptions","start","sleep_default","status","errorReason","LaraApiError","LaraTimeoutError","toCamelCase","content","result","key","value","camelKey","_","letter","toCamelCase_default","DEFAULT_BASE_URL","Translator","_Translator","accessKey","credentials","authToken","options","_a","axios","version","request","token","response","toCamelCase_default","error","_b","_c","_d","_e","_f","originalRequest","LaraApiError","Memories","Glossaries","Documents","data","headers","text","source","target","name","value","serverUrl","id","secret","email","password","refresh_token"]}
|