tinker-translate 0.2.2 → 0.2.5

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/README.md CHANGED
@@ -9,7 +9,6 @@ A translation plugin for [TINKER](https://github.com/liriliri/tinker), supportin
9
9
  - **Google, Bing & DeepL** translation services
10
10
  - **16+ languages** support
11
11
  - **Auto-detect** source language
12
- - **i18n** support for English and Chinese
13
12
 
14
13
  ## Installation
15
14
 
@@ -1,2 +1,2 @@
1
- "use strict";const z=require("electron"),G=require("https");function v(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var E={exports:{}},y={exports:{}},T={exports:{}};(function(e,t){t=function(r){return r===void 0},e.exports=t})(T,T.exports);var I=T.exports;(function(e,t){var r=I;t=function(n,o,a){if(r(o))return n;switch(a??3){case 1:return function(s){return n.call(o,s)};case 3:return function(s,i,c){return n.call(o,s,i,c)};case 4:return function(s,i,c,p){return n.call(o,s,i,c,p)}}return function(){return n.apply(o,arguments)}},e.exports=t})(y,y.exports);var B=y.exports,S={exports:{}},A={exports:{}},b={exports:{}};(function(e,t){var r=Object.prototype.toString;t=function(n){return r.call(n)},e.exports=t})(b,b.exports);var R=b.exports;(function(e,t){var r=R;t=function(n){return r(n)==="[object Number]"},e.exports=t})(A,A.exports);var D=A.exports,C={exports:{}};(function(e,t){var r=R;t=function(n){var o=r(n);return o==="[object Function]"||o==="[object GeneratorFunction]"||o==="[object AsyncFunction]"},e.exports=t})(C,C.exports);var H=C.exports;(function(e,t){var r=D,n=H,o=Math.pow(2,53)-1;t=function(a){if(!a)return!1;var s=a.length;return r(s)&&s>=0&&s<=o&&!n(a)},e.exports=t})(S,S.exports);var J=S.exports,L={exports:{}},O={exports:{}};(function(e,t){var r=Object.prototype.hasOwnProperty;t=function(n,o){return r.call(n,o)},e.exports=t})(O,O.exports);var j=O.exports;(function(e,t){var r=j;Object.keys?t=Object.keys:t=function(n){var o=[];for(var a in n)r(n,a)&&o.push(a);return o},e.exports=t})(L,L.exports);var K=L.exports;(function(e,t){var r=B,n=J,o=I,a=K;t=s(1),t.create=s;function s(i){return function(c,p,u,d){p=r(p,d);var l,f,g;if(n(c))for(f=c.length,l=i>0?0:f-1,o(u)&&(u=c[l],l+=i);l<f&&l>=0;l+=i)u=p(u,c[l],l,c);else{var w=a(c);for(f=w.length,l=i>0?0:f-1,o(u)&&(u=c[w[l]],l+=i);l<f&&l>=0;l+=i)g=w[l],u=p(u,c[g],g,c)}return u}}e.exports=t})(E,E.exports);var X=E.exports;const Y=v(X);var k={exports:{}},P={exports:{}},M={exports:{}};(function(e,t){var r=R;Array.isArray?t=Array.isArray:t=function(n){return r(n)==="[object Array]"},e.exports=t})(M,M.exports);var Q=M.exports;(function(e,t){var r=j,n=Q;t=function(s,i){if(n(s))return s;if(i&&r(i,s))return[s];var c=[];return s.replace(o,function(p,u,d,l){c.push(d?l.replace(a,"$1"):u||p)}),c};var o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g;e.exports=t})(P,P.exports);var V=P.exports;(function(e,t){var r=I,n=V;t=function(o,a){a=n(a,o);var s;for(s=a.shift();!r(s);){if(o=o[s],o==null)return;s=a.shift()}return o},e.exports=t})(k,k.exports);var Z=k.exports;const h=v(Z);var $={exports:{}},N={exports:{}};(function(e,t){var r=/^\s+/;t=function(n,o){if(o==null)return n.trimLeft?n.trimLeft():n.replace(r,"");for(var a=0,s=n.length,i=o.length,c=!0,p,u;c&&a<s;)for(c=!1,p=-1,u=n.charAt(a);++p<i;)if(u===o[p]){c=!0,a++;break}return a>=s?"":n.substr(a,s)},e.exports=t})(N,N.exports);var tt=N.exports,U={exports:{}};(function(e,t){t=function(r,n){if(n==null){if(r.trimRight)return r.trimRight();n=` \r
2
- \f\v`}for(var o=r.length-1,a=n.length,s=!0,i,c;s&&o>=0;)for(s=!1,i=-1,c=r.charAt(o);++i<a;)if(c===n[i]){s=!0,o--;break}return o>=0?r.substring(0,o+1):""},e.exports=t})(U,U.exports);var rt=U.exports;(function(e,t){var r=tt,n=rt;t=function(o,a){return a==null&&o.trim?o.trim():r(n(o,a),a)},e.exports=t})($,$.exports);var et=$.exports;const x=v(et);function m(e,t){return new Promise((r,n)=>{const o=G.request(e,a=>{let s="";a.on("data",i=>{s+=i}),a.on("end",()=>{r({statusCode:a.statusCode,data:s})})});o.on("error",n),t&&o.write(t),o.end()})}async function nt(e,t,r){const o={hostname:"translate.google.com",port:443,path:`/translate_a/single?dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&${new URLSearchParams({client:"gtx",sl:t,tl:r,hl:r,ie:"UTF-8",oe:"UTF-8",otf:"1",ssel:"0",tsel:"0",kc:"7",q:e}).toString()}`,method:"GET",headers:{"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36"}},{statusCode:a,data:s}=await m(o);if(a!==200)throw new Error(`HTTP Error: ${a}`);const i=JSON.parse(s),c=h(i,"0"),p=Y(c??[],(u,d)=>u+(h(d,"0")??""),"");return{text:x(p)}}async function ot(){const e={hostname:"edge.microsoft.com",port:443,path:"/translate/auth",method:"GET",headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.42"}},{statusCode:t,data:r}=await m(e);if(t!==200)throw new Error(`Failed to get token: ${t}`);return r}async function at(e,t,r){const n=await ot(),o=new URLSearchParams({from:t==="auto"?"":t,to:r,"api-version":"3.0",includeSentenceLength:"true"}),a=JSON.stringify([{Text:e}]),s={hostname:"api-edge.cognitive.microsofttranslator.com",port:443,path:`/translate?${o.toString()}`,method:"POST",headers:{accept:"*/*","accept-language":"zh-TW,zh;q=0.9,ja;q=0.8,zh-CN;q=0.7,en-US;q=0.6,en;q=0.5",authorization:"Bearer "+n,"cache-control":"no-cache","content-type":"application/json","content-length":Buffer.byteLength(a),pragma:"no-cache","sec-ch-ua":'"Microsoft Edge";v="113", "Chromium";v="113", "Not-A.Brand";v="24"',"sec-ch-ua-mobile":"?0","sec-ch-ua-platform":'"Windows"',"sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":"cross-site",Referer:"https://appsumo.com/","Referrer-Policy":"strict-origin-when-cross-origin","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.42"}},{statusCode:i,data:c}=await m(s,a);if(i!==200)throw new Error(`HTTP Error: ${i}`);const p=JSON.parse(c),u=h(p,"[0].translations[0].text");if(!u)throw new Error("Invalid response format");return{text:x(u)}}var W={exports:{}};(function(e,t){t=function(r,n,o){n==null&&(n=r,r=0);var a=Math.random();return o||r%1||n%1?Math.min(r+a*(n-r+parseFloat("1e-"+((a+"").length-1))),n):r+Math.floor(a*(n-r+1))},e.exports=t})(W,W.exports);var st=W.exports;const it=v(st);var q={exports:{}},F={exports:{}};(function(e,t){t=function(r){return r==null?"":r.toString()},e.exports=t})(F,F.exports);var ct=F.exports;(function(e,t){var r=ct;t=function(n){return r(n).toLocaleUpperCase()},e.exports=t})(q,q.exports);var ut=q.exports;const _=v(ut);function pt(e){return e.split("i").length-1}function lt(e){const t=Date.now();if(e!==0){const r=e+1;return t-t%r+r}return t}function ft(){return it(1e5,199998)*1e3}async function ht(e,t,r){const n=ft(),o={jsonrpc:"2.0",method:"LMT_handle_texts",id:n,params:{splitting:"newlines",lang:{source_lang_user_selected:t!=="auto"?_(t.slice(0,2)):"auto",target_lang:_(r.slice(0,2))},texts:[{text:e,requestAlternatives:3}],timestamp:lt(pt(e))}};let a=JSON.stringify(o);(n+5)%29===0||(n+3)%13===0?a=a.replace('"method":"','"method" : "'):a=a.replace('"method":"','"method": "');const s={hostname:"www2.deepl.com",port:443,path:"/jsonrpc",method:"POST",headers:{"Content-Type":"application/json","Content-Length":Buffer.byteLength(a)}},{statusCode:i,data:c}=await m(s,a);if(i!==200)throw new Error(`HTTP Error: ${i}`);const p=JSON.parse(c),u=h(p,"result.texts[0].text");if(u)return{text:x(u)};throw new Error(h(p,"error.message")??"Invalid response format")}async function dt(e,t,r){const o=`You are a professional translator. Translate the user's text from ${t==="auto"?"auto-detected":t} to ${r}. Output only the translated text without any explanation or extra content.`,a=await tinker.callAI({messages:[{role:"system",content:o},{role:"user",content:e}]}),s=h(a,"data.content");if(!a.success||!s)throw new Error(a.error??"Invalid AI response");return{text:x(s)}}const vt={translate:async(e,t,r,n="google")=>n==="bing"?await at(e,t,r):n==="deepl"?await ht(e,t,r):n==="ai"?await dt(e,t,r):await nt(e,t,r)};z.contextBridge.exposeInMainWorld("translate",vt);
1
+ "use strict";const B=require("electron"),z=require("https");function x(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var E={exports:{}},y={exports:{}},A={exports:{}};(function(n,t){t=function(e){return e===void 0},n.exports=t})(A,A.exports);var G=A.exports;(function(n,t){var e=G;t=function(r,o,a){if(e(o))return r;switch(a??3){case 1:return function(s){return r.call(o,s)};case 3:return function(s,u,i){return r.call(o,s,u,i)};case 4:return function(s,u,i,p){return r.call(o,s,u,i,p)}}return function(){return r.apply(o,arguments)}},n.exports=t})(y,y.exports);var H=y.exports,T={exports:{}},S={exports:{}},b={exports:{}};(function(n,t){var e=Object.prototype.toString;t=function(r){return e.call(r)},n.exports=t})(b,b.exports);var R=b.exports;(function(n,t){var e=R;t=function(r){return e(r)==="[object Number]"},n.exports=t})(S,S.exports);var J=S.exports,C={exports:{}};(function(n,t){var e=R;t=function(r){var o=e(r);return o==="[object Function]"||o==="[object GeneratorFunction]"||o==="[object AsyncFunction]"},n.exports=t})(C,C.exports);var K=C.exports;(function(n,t){var e=J,r=K,o=Math.pow(2,53)-1;t=function(a){if(!a)return!1;var s=a.length;return e(s)&&s>=0&&s<=o&&!r(a)},n.exports=t})(T,T.exports);var X=T.exports,k={exports:{}},L={exports:{}};(function(n,t){var e=Object.prototype.hasOwnProperty;t=function(r,o){return e.call(r,o)},n.exports=t})(L,L.exports);var W=L.exports;(function(n,t){var e=W;Object.keys?t=Object.keys:t=function(r){var o=[];for(var a in r)e(r,a)&&o.push(a);return o},n.exports=t})(k,k.exports);var V=k.exports;(function(n,t){var e=H,r=X,o=G,a=V;t=s(1),t.create=s;function s(u){return function(i,p,c,v){p=e(p,v);var l,h,w;if(r(i))for(h=i.length,l=u>0?0:h-1,o(c)&&(c=i[l],l+=u);l<h&&l>=0;l+=u)c=p(c,i[l],l,i);else{var m=a(i);for(h=m.length,l=u>0?0:h-1,o(c)&&(c=i[m[l]],l+=u);l<h&&l>=0;l+=u)w=m[l],c=p(c,i[w],w,i)}return c}}n.exports=t})(E,E.exports);var Q=E.exports;const Y=x(Q);var O={exports:{}},M={exports:{}},P={exports:{}};(function(n,t){var e=R;Array.isArray?t=Array.isArray:t=function(r){return e(r)==="[object Array]"},n.exports=t})(P,P.exports);var Z=P.exports;(function(n,t){var e=W,r=Z;t=function(s,u){if(r(s))return s;if(u&&e(u,s))return[s];var i=[];return s.replace(o,function(p,c,v,l){i.push(v?l.replace(a,"$1"):c||p)}),i};var o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g;n.exports=t})(M,M.exports);var tt=M.exports;(function(n,t){var e=G,r=tt;t=function(o,a){a=r(a,o);var s;for(s=a.shift();!e(s);){if(o=o[s],o==null)return;s=a.shift()}return o},n.exports=t})(O,O.exports);var rt=O.exports;const d=x(rt);var U={exports:{}},$={exports:{}};(function(n,t){var e=/^\s+/;t=function(r,o){if(o==null)return r.trimLeft?r.trimLeft():r.replace(e,"");for(var a=0,s=r.length,u=o.length,i=!0,p,c;i&&a<s;)for(i=!1,p=-1,c=r.charAt(a);++p<u;)if(c===o[p]){i=!0,a++;break}return a>=s?"":r.substr(a,s)},n.exports=t})($,$.exports);var et=$.exports,I={exports:{}};(function(n,t){t=function(e,r){if(r==null){if(e.trimRight)return e.trimRight();r=` \r
2
+ \f\v`}for(var o=e.length-1,a=r.length,s=!0,u,i;s&&o>=0;)for(s=!1,u=-1,i=e.charAt(o);++u<a;)if(i===r[u]){s=!0,o--;break}return o>=0?e.substring(0,o+1):""},n.exports=t})(I,I.exports);var nt=I.exports;(function(n,t){var e=et,r=nt;t=function(o,a){return a==null&&o.trim?o.trim():e(r(o,a),a)},n.exports=t})(U,U.exports);var ot=U.exports;const D=x(ot);function g(n,t){return new Promise((e,r)=>{const o=z.request(n,a=>{let s="";a.on("data",u=>{s+=u}),a.on("end",()=>{e({statusCode:a.statusCode,data:s})})});o.on("error",r),t&&o.write(t),o.end()})}async function at(n,t,e){const o={hostname:"translate.google.com",port:443,path:`/translate_a/single?dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&${new URLSearchParams({client:"gtx",sl:t,tl:e,hl:e,ie:"UTF-8",oe:"UTF-8",otf:"1",ssel:"0",tsel:"0",kc:"7",q:n}).toString()}`,method:"GET",headers:{"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36"}},{statusCode:a,data:s}=await g(o);if(a!==200)throw new Error(`HTTP Error: ${a}`);const u=JSON.parse(s),i=d(u,"0"),p=Y(i??[],(c,v)=>c+(d(v,"0")??""),"");return{text:D(p)}}const j="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0",st="translator.5026";let f=null;async function it(){if(f&&Date.now()<f.expiresAt)return f;const{statusCode:n,data:t}=await g({hostname:"www.bing.com",port:443,path:"/translator",method:"GET",headers:{"User-Agent":j}});if(n!==200)throw new Error(`Failed to get token: ${n}`);const e=t.match(/IG:"([^"]+)"/),r=t.match(/params_AbusePreventionHelper\s*=\s*\[(\d+),\s*"([^"]+)",\s*(\d+)/);if(!e||!r)throw new Error("Failed to parse Bing auth");const o=Number(r[3]);return f={ig:e[1],key:r[1],token:r[2],expiresAt:Date.now()+Math.max(o-6e4,6e4)},f}async function ut(n,t,e){const r=await it(),o=new URLSearchParams({fromLang:t==="auto"?"auto-detect":t,to:e,text:n,token:r.token,key:r.key}).toString(),{statusCode:a,data:s}=await g({hostname:"www.bing.com",port:443,path:`/ttranslatev3?isVertical=1&IG=${r.ig}&IID=${st}`,method:"POST",headers:{"User-Agent":j,"Content-Type":"application/x-www-form-urlencoded","Content-Length":Buffer.byteLength(o),Origin:"https://www.bing.com",Referer:"https://www.bing.com/translator"}},o);if(a!==200)throw f=null,new Error(`HTTP Error: ${a}`);const u=JSON.parse(s),i=d(u,"[0].translations[0].text");if(!i)throw f=null,new Error("Invalid response format");return{text:D(i)}}var _={exports:{}};(function(n,t){t=function(e,r,o){r==null&&(r=e,e=0);var a=Math.random();return o||e%1||r%1?Math.min(e+a*(r-e+parseFloat("1e-"+((a+"").length-1))),r):e+Math.floor(a*(r-e+1))},n.exports=t})(_,_.exports);var ct=_.exports;const pt=x(ct);var F={exports:{}},N={exports:{}};(function(n,t){t=function(e){return e==null?"":e.toString()},n.exports=t})(N,N.exports);var lt=N.exports;(function(n,t){var e=lt;t=function(r){return e(r).toLocaleUpperCase()},n.exports=t})(F,F.exports);var ft=F.exports;const q=x(ft);function ht(n){return n.split("i").length-1}function vt(n){const t=Date.now();if(n!==0){const e=n+1;return t-t%e+e}return t}function dt(){return pt(1e5,199998)*1e3}async function xt(n,t,e){const r=dt(),o={jsonrpc:"2.0",method:"LMT_handle_texts",id:r,params:{splitting:"newlines",lang:{source_lang_user_selected:t!=="auto"?q(t.slice(0,2)):"auto",target_lang:q(e.slice(0,2))},texts:[{text:n,requestAlternatives:3}],timestamp:vt(ht(n))}};let a=JSON.stringify(o);(r+5)%29===0||(r+3)%13===0?a=a.replace('"method":"','"method" : "'):a=a.replace('"method":"','"method": "');const s={hostname:"www2.deepl.com",port:443,path:"/jsonrpc",method:"POST",headers:{"Content-Type":"application/json","Content-Length":Buffer.byteLength(a)}},{statusCode:u,data:i}=await g(s,a);if(u!==200)throw new Error(`HTTP Error: ${u}`);const p=JSON.parse(i),c=d(p,"result.texts[0].text");if(c)return{text:D(c)};throw new Error(d(p,"error.message")??"Invalid response format")}const gt={translate:async(n,t,e,r="google")=>r==="bing"?await ut(n,t,e):r==="deepl"?await xt(n,t,e):await at(n,t,e)};B.contextBridge.exposeInMainWorld("translate",gt);