lipilekhika 0.0.0-alpha.22 → 0.0.0-alpha.3
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/dist/cjs/index.cjs +1 -2
- package/dist/cjs/typing-BLcGlYhq.cjs +2 -0
- package/dist/cjs/typing.cjs +1 -0
- package/dist/esm/index.mjs +31 -753
- package/dist/esm/typing-BglIxYDV.js +748 -0
- package/dist/esm/typing.mjs +6 -0
- package/dist/index.d.ts +11 -19
- package/dist/lipilekhika.umd.js +2 -2
- package/dist/typing.d.ts +96 -0
- package/package.json +6 -1
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});
|
|
2
|
-
`,"\r"," ",",",";","!","@","?","%"],Pe=3;function b(t,e,a){const{from_script_name:n,to_script_name:r,from_script_data:c,to_script_data:o,trans_options:u,result:_,prev_context:s,BRAHMIC_HALANT:i,BRAHMIC_NUQTA:l,typing_mode:p}=t,{next:h,last_extra_call:v}=a??{};let k=!1;if((l&&s.typeAt(-3)==="vyanjana"&&s.textAt(-2)===l&&s.typeAt(-1)==="mAtrA"||s.typeAt(-2)==="vyanjana"&&s.typeAt(-1)==="mAtrA")&&(!e||e[1]?.type==="anya")&&s.clear(),c.script_type==="brahmic"&&o.script_type==="other")e[0]!==i&&(!(L(n)&&e[0]&&e[0].length>0)||e[0].charAt(0)!==i)&&(!l||e[0]!==l)&&(s.typeAt(-1)==="vyanjana"||l&&s.typeAt(-2)==="vyanjana"&&s.textAt(-1)===l)&&(e[1]?.type!=="mAtrA"&&e[0]!==i||e[1]?.type==="anya"||e[1]===null||e[1]===void 0)&&_.emit(o.schwa_character);else if(c.script_type==="other"&&o.script_type==="brahmic")if(s.typeAt(-1)==="vyanjana"&&(e[1]?.type==="mAtrA"||e[1]?.type==="svara")){const d=e[1].type==="svara"?O(o,e[1].mAtrA_krama_ref?.[0]??-1):e[0];L(r)&&I(_.lastChar())?B(_,[d],o.halant,!0):B(_,[d],o.halant,!1),k=!0}else s.typeAt(-1)==="vyanjana"&&!(e[0]===i||e[1]?.type==="mAtrA")&&(L(r)&&I(_.lastChar())?B(_,[i],o.halant,!0):(B(_,[i],o.halant,!1),r==="Sinhala"&&u["all_to_sinhala:use_conjuct_enabling_halant"]&&_.rewriteAt(-1,_.lastPiece()+"")));let f=!1;return p&&(h===void 0||h.length===0)&&!v&&(f=!0,e[1]?.type==="vyanjana"&&(f=!1),f&&s.clear()),(!p||!v&&!f)&&s.push(e),k}function ue(t,e,a){const{custom_rules:n,cursor:r,result:c,from_script_data:o,to_script_data:u}=t,_=e+a;for(let s=0;s<n.length;s++){if(n[s].use_replace===!0)continue;const i=n[s];if(i.type==="replace_prev_krama_keys"){if(i.check_in==="input"){const l=ie(r.peekAt,_,i.prev,o),p=r.peekAt(e);if(l.matched&&p!==null){const h=p.ch,v=J(o,h);if(v!==-1&&i.following.indexOf(v)!==-1){const k=le(i.replace_with,u);c.rewriteTailPieces(l.matchedLen,k)}}}else if(i.check_in==="output"){const l=c.lastPiece();if(!l)continue;const p=J(u,l);if(p!==-1&&i.following.indexOf(p)!==-1){const h=ie(c.peekAt,-2,i.prev,u);if(h.matched){const v=le(i.replace_with,u);c.rewriteTailPieces(h.matchedLen+1,[...v,l])}}}}else if(i.type==="direct_replace"){const l=i.check_in==="output"?u:o;for(const p of i.to_replace){const h=ie(c.peekAt,-1,p,l);if(!h.matched)continue;if(i.replace_text){c.rewriteTailPieces(h.matchedLen,[i.replace_text]);break}const v=le(i.replace_with,l);c.rewriteTailPieces(h.matchedLen,v);break}}}}const me=(t,e,a)=>{if(!a)return{};const n={};for(const[r,c]of Object.entries(a??{})){if(!c||!(r in Y))continue;const o=Y[r];(o.from_script_type!==void 0&&(o.from_script_type==="all"||o.from_script_type===t.script_type)||o.from_script_name!==void 0&&o.from_script_name.includes(t.script_name))&&(o.to_script_type!==void 0&&(o.to_script_type==="all"||o.to_script_type===e.script_type)||o.to_script_name!==void 0&&o.to_script_name.includes(e.script_name))&&(n[r]=!0)}return n},fe=(t,e,a)=>{const n=me(t,e,a),r=Object.keys(n).flatMap(c=>Y[c].rules);return{trans_options:n,custom_rules:r}},_e=(t,e)=>t.replace_with.map(a=>O(e,a)).join(""),pe=(t,e,a,n)=>{if(a.length===0)return t;for(const r of a)if(!(r.use_replace!==!0||r.check_in!==n)){if(r.type==="replace_prev_krama_keys"){const c=r.prev.map(o=>O(e,o)).join("");for(let o of r.following){const u=O(e,o);if(!u)continue;const _=_e(r,e)+u;t=t.replaceAll(c+u,_)}}else if(r.type==="direct_replace"){const c=r.to_replace.map(o=>o.map(u=>O(e,u)).join(""));for(let o of c)t=t.replaceAll(o,_e(r,e))}}return t},ye=(t,e,a,n,r,c,o,u)=>{const _=u?.typing_mode??!1;if(_&&e!=="Normal")throw new Error("Typing mode is only supported with Normal script as the input");t=pe(t,n,o,"input");const s=xe();let i=0;const l=we(t),p=Ae(Pe),h=n.script_type==="brahmic"&&r.script_type==="other"||n.script_type==="other"&&r.script_type==="brahmic"||_&&e==="Normal"&&r.script_type==="other",v=n.script_type==="brahmic"&&r.script_type==="other"?n.nuqta??null:n.script_type==="other"&&r.script_type==="brahmic"?r.nuqta??null:null,k=n.script_type==="brahmic"&&r.script_type==="other"?n.halant:n.script_type==="other"&&r.script_type==="brahmic"?r.halant:null,f={from_script_name:e,to_script_name:a,from_script_data:n,to_script_data:r,trans_options:c,custom_rules:o,cursor:l,result:s,prev_context:p,BRAHMIC_NUQTA:v,BRAHMIC_HALANT:k,typing_mode:_};let d=-1;for(;l.pos<t.length;){i=l.pos;const Z=l.peek();if(!Z)break;const ee=Z.ch,q=Z.width,ce=q===2?1:q;if(d!==-1&&i>=d){d=-1,l.advance(q);continue}if(be.indexOf(ee)!==-1){l.advance(q),h&&(b(f,[" ",null]),p.clear()),s.emit(ee);continue}let D=-1;{let T=0,G=-1;const P=h&&n.script_type==="other"&&r.script_type==="brahmic"&&(p.typeAt(-1)==="vyanjana"||v&&p.typeAt(-2)==="vyanjana"&&p.textAt(-1)===v);for(;;){const Q=l.peekAt(i+ce+T),E=Q?.ch??"";d!==-1&&E&&I(E)&&(T+=Q?.width??0);const y=i+ce+T,w=d!==-1?l.slice(i,d)+(y>d?l.slice(d+1,y):""):l.slice(i,y),g=re(n.text_to_krama_map,w,{accessor:(x,j)=>x[j][0]});if(g===-1){D=-1;break}const N=n.text_to_krama_map[g];if(P&&N[1].krama&&N[1].krama.length>=1){const x=N[1].krama,j=x[0],S=r.krama_text_arr[j]?.[1],ne=r.list[S??-1]?.type;if(x.length===1&&S!==null&&S!==void 0&&(ne==="svara"||ne==="mAtrA"))G=g;else if(G!==-1){D=G;break}}if(N[1].next&&N[1].next.length>0){const x=l.peekAt(y),j=x?.ch;if(L(e)&&n.script_type==="brahmic"){const U=x?l.peekAt(y+x.width):null,S=U?.ch,$=(x&&U?l.peekAt(y+x.width+U.width):null)?.ch;if(d===-1&&S!==void 0&&I(S)&&N[1].next.indexOf(S)!==-1){const X=re(n.text_to_krama_map,w+S,{accessor:(C,A)=>C[A][0]}),F=V(n.krama_text_arr,n.krama_text_arr_index,j??"",{accessor:(C,A)=>C[A][0]});if(X!==-1&&F!==-1){D=X;const C=n.krama_text_arr[F],A=n.list[C[1]??-1]?.type;if(j===n.halant||A==="mAtrA"){d=y+(x?.width??0);break}}}else if(d===-1&&$!==void 0&&I($)&&N[1].next.indexOf($)!==-1){const X=re(n.text_to_krama_map,w+$,{accessor:(A,M)=>A[M][0]}),F=V(n.krama_text_arr,n.krama_text_arr_index,j??"",{accessor:(A,M)=>A[M][0]}),C=V(n.krama_text_arr,n.krama_text_arr_index,S??"",{accessor:(A,M)=>A[M][0]});if(X!==-1&&F!==-1&&C!==-1){const A=n.krama_text_arr[F],M=n.krama_text_arr[C];D=X;const de=n.list[A[1]??-1]?.type,ve=n.list[M[1]??-1]?.type;if(de==="mAtrA"&&ve==="mAtrA"){d=y+(x?.width??0)+(U?.width??0);break}}}}if(j!==void 0&&N[1].next.indexOf(j)!==-1){T+=x?.width??0;continue}}D=g;break}}const m=D!==-1?n.text_to_krama_map[D]:null;if(m!==null){const T=d!==-1&&m[0].length>1&&n.list[n.krama_text_arr[m[1].krama?.[0]??-1]?.[1]??-1]?.type==="vyanjana"&&I(m[0].at(-1)??void 0)?1:0,G=m[0].length-T;if(l.advance(G),i=l.pos,m[1].krama!==null&&m[1].krama!==void 0&&m[1].krama.some(P=>P!==-1)){const P=m[1].krama.map(y=>O(r,y)),Q=P.join("");let E=!1;if(h)if(n.script_type==="brahmic"&&r.script_type==="other"){let y=null;if(m[1].fallback_list_ref!==void 0&&m[1].fallback_list_ref!==null)y=n.list[m[1].fallback_list_ref];else if(!m[1].krama||m[1].krama.length===0)y=null;else{const w=m[1].krama.map(g=>n.list[n.krama_text_arr[g][1]??-1]);L(e)&&w.some(g=>g?.type==="mAtrA")&&w.some(g=>g?.type==="vyanjana")?y={...w[0],type:"anya"}:L(e)&&w.length>1&&w.some(g=>g==null)?y=w.at(-1):y=w[0]}E=b(f,[m[0],y])}else if(r.script_type==="brahmic"&&n.script_type==="other"){let y=null;m[1].fallback_list_ref!==void 0&&m[1].fallback_list_ref!==null?y=r.list[m[1].fallback_list_ref]:y=m[1].krama&&m[1].krama.length>0?r.list[r.krama_text_arr[m[1].krama[0]]?.[1]??-1]??null:null,_&&e==="Normal"?E=b(f,[m[0],y],{next:m[1].next??void 0}):E=b(f,[m[0],y])}else _&&e==="Normal"&&r.script_type==="other"&&(E=b(f,[m[0],null],{next:m[1].next??void 0}));E||(r.script_type==="brahmic"&&L(a)&&(r.list[m[1].krama?.at(-1)??-1]?.type==="mAtrA"||Q===r.halant)&&I(s.lastChar())?B(s,P,r.halant,!0):s.emitPieces(P)),ue(f,i,-G);continue}else if(m[1].krama!==null&&m[1].krama!==void 0&&m[1].krama.some(P=>P===-1)){s.emit(m[0]),_&&b(f,[m[0],null],{next:m[1].next??void 0});continue}}else l.advance(q),i=l.pos;const z=m===null?ee:m[0],H=J(n,z);if(H===-1){h&&(b(f,[z,null]),p.clear()),s.emit(z);continue}let te=!1;if(h&&(n.script_type==="brahmic"?te=b(f,[z,n.list[n.krama_text_arr[H][1]??-1]]):r.script_type==="brahmic"&&(te=b(f,[z,r.list[r.krama_text_arr[H][1]??-1]]))),!te){const T=O(r,H);r.script_type==="brahmic"&&L(a)&&(r.list[r.krama_text_arr[H][1]??-1]?.type==="mAtrA"||T===r.halant)&&I(s.lastChar())?B(s,[T],r.halant,!0):s.emit(T)}ue(f,i,-q)}h&&b(f,[void 0,null],{last_extra_call:!0});let W=s.toString();return W=pe(W,r,o,"output"),{output:W,context_length:p.length()}},je=async(t,e,a,n,r)=>{const[c,o]=await Promise.all([R(e),R(a)]),{trans_options:u,custom_rules:_}=fe(c,o,n);return ye(t,e,a,c,o,u,_,r)},Se={Devanagari:1,Telugu:2,Tamil:3,"Tamil-Extended":4,Bengali:5,Kannada:6,Gujarati:7,Malayalam:8,Odia:9,Sinhala:10,Normal:11,Romanized:12,Gurumukhi:13,Assamese:14,"Purna-Devanagari":15,Brahmi:16,Granth:17,Modi:18,Sharada:20,Siddham:21},Ee={English:1,Sanskrit:2,Hindi:3,Telugu:4,Tamil:5,Bengali:6,Kannada:7,Gujarati:8,Malayalam:9,Odia:10,Sinhala:11,Marathi:12,Nepali:13,Punjabi:14,Assamese:15},Ne={script_list:Se,lang_list:Ee},{script_list:Ce,lang_list:Ie}=Ne,oe=Object.keys(Ce),se=Object.keys(Ie),Le=Array.from(new Set([...se,...oe])),Oe={Bengali:"Bengali",Gujarati:"Gujarati",Hindi:"Devanagari",Kannada:"Kannada",Malayalam:"Malayalam",Odia:"Odia",Sinhala:"Sinhala",Tamil:"Tamil",Telugu:"Telugu",English:"Normal",Sanskrit:"Devanagari",Marathi:"Devanagari",Nepali:"Devanagari",Punjabi:"Gurumukhi",Assamese:"Assamese"},he={dev:"Devanagari",te:"Telugu",tel:"Telugu",tam:"Tamil","tam-ex":"Tamil-Extended",ben:"Bengali",be:"Bengali",ka:"Kannada",kan:"Kannada",gu:"Gujarati",guj:"Gujarati",mal:"Malayalam",or:"Odia",od:"Odia",oriya:"Odia",si:"Sinhala",sinh:"Sinhala",sin:"Sinhala",en:"Normal",eng:"Normal",la:"Normal",lat:"Normal",nor:"Normal",norm:"Normal",rom:"Romanized",gur:"Gurumukhi",as:"Assamese",sa:"Devanagari",san:"Devanagari",hin:"Devanagari",hi:"Devanagari",mar:"Devanagari",ne:"Devanagari",nep:"Devanagari",pun:"Gurumukhi"};function De(t){return t.toLowerCase().replace(/(^|-)([a-z])/g,(e,a,n)=>a+n.toUpperCase())}const K=t=>{const e=De(t);return oe.includes(e)?e:se.includes(e)?Oe[e]:t.toLocaleLowerCase()in he?he[t.toLocaleLowerCase()]:null},Me=async t=>{const e=K(t);if(!e)throw new Error(`Invalid script name: ${t}`);return await R(e)};async function Re(t,e,a,n){const r=K(e);if(!r)throw new Error(`Invalid script name: ${e}`);const c=K(a);if(!c)throw new Error(`Invalid script name: ${a}`);return r===c?t:(await je(t,r,c,n)).output}async function qe(t,e){const a=K(t);if(!a)throw new Error(`Invalid script name: ${t}`);const n=K(e);if(!n)throw new Error(`Invalid script name: ${e}`);const r=await R(a),c=await R(n);return Object.keys(me(r,c,Object.fromEntries(Object.keys(Y).map(o=>[o,!0]))))}function Ge(t){const e=K(t);if(!e)throw new Error(`Invalid script name: ${t}`);let a="",n="",r=null,c=null,o={},u=[];const _=(async()=>{const[l,p]=await Promise.all([R("Normal"),R(e)]);r=l,c=p;const h=fe(l,p);o=h.trans_options,u=h.custom_rules})();function s(){a="",n=""}function i(l){if(!r||!c)throw new Error("Typing context not ready. Await `ctx.ready` before calling takeKeyInputSync.");let p=l?.[0]??"";a+=p;let h=n;const{context_length:v,output:k}=ye(a,"Normal",e,r,c,o,u,{typing_mode:!0});v>0?n=k:v===0&&(a="",n="");let f=0;for(;f<k.length&&f<h.length&&k[f]===h[f];)f++;let d=k.substring(f);return{to_delete_chars_count:h.length-f,diff_add_text:d}}return{ready:_,clearContext:s,takeKeyInput:i,getCurrentOutput:()=>n}}function Be(t){return"nativeEvent"in t?t.nativeEvent:t}async function Ke(t,e,a){const n=e.currentTarget,r=Be(e);if(typeof InputEvent<"u"&&r instanceof InputEvent&&r.data!==null){await t.ready;const{diff_add_text:o,to_delete_chars_count:u}=t.takeKeyInput(r.data),_=n.value,s=(n.selectionStart??0)+1,i=s-u-2,l=_.substring(0,i),p=o;let h="";const v=_.length+1===s,k=_.length+1!==s;v?h=_.substring(s+1):k&&(h=_.substring(s-1));const f=l.length+p.length,d=l+p+h;n.value=d,n.focus(),n.selectionStart=f,n.selectionEnd=f,a?.(d)}else a?.(n.value),t.clearContext()}const ze=new Set(["Backspace","Delete","Enter","Tab","Escape","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","PageUp","PageDown"]);function He(t,e){if(t.isComposing)return!1;const a=t.key;return!a||a==="Unidentified"||a==="Process"||a==="Dead"||t.ctrlKey||t.metaKey||t.altKey?!1:ze.has(a)?(e.clearContext(),!0):!1}exports.ALL_LANG_SCRIPT_LIST=Le;exports.LANG_LIST=se;exports.SCRIPT_LIST=oe;exports.clearTypingContextOnKeyDown=He;exports.createTypingContext=Ge;exports.getAllOptions=qe;exports.handleTypingInputEvent=Ke;exports.preloadScriptData=Me;exports.transliterate=Re;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./typing-BLcGlYhq.cjs"),s=async r=>{const e=t.getNormalizedScriptName(r);if(!e)throw new Error(`Invalid script name: ${r}`);return await t.getScriptData(e)};async function l(r,e,a,o){const i=t.getNormalizedScriptName(e);if(!i)throw new Error(`Invalid script name: ${e}`);const n=t.getNormalizedScriptName(a);if(!n)throw new Error(`Invalid script name: ${a}`);return i===n?r:(await t.transliterate_text(r,i,n,o)).output}async function p(r,e){const a=t.getNormalizedScriptName(r);if(!a)throw new Error(`Invalid script name: ${r}`);const o=t.getNormalizedScriptName(e);if(!o)throw new Error(`Invalid script name: ${e}`);const i=await t.getScriptData(a),n=await t.getScriptData(o);return Object.keys(t.get_active_custom_options(i,n,Object.fromEntries(Object.keys(t.custom_options_json).map(c=>[c,!0]))))}exports.ALL_LANG_SCRIPT_LIST=t.ALL_LANG_SCRIPT_LIST;exports.LANG_LIST=t.LANG_LIST;exports.SCRIPT_LIST=t.SCRIPT_LIST;exports.typing=t.typing;exports.getAllOptions=p;exports.preloadScriptData=s;exports.transliterate=l;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";function J(t,e,i,n){const{accessor:r,compareFn:c}=n??{},s=r??((a,l)=>a[l]);let o=0,p=e.length-1,u=-1;for(;o<=p;){const a=Math.floor((o+p)/2),l=e[a],_=s(t,l);let m;c?m=c(i,_):m=i<_?-1:i>_?1:0,m===0?(u=l,p=a-1):m<0?p=a-1:o=a+1}return u}function ne(t,e,i){const{accessor:n,compareFn:r}=i??{},c=n??((u,a)=>u[a]);let s=0,o=t.length-1,p=-1;for(;s<=o;){const u=Math.floor((s+o)/2),a=c(t,u);let l;r?l=r(e,a):l=e<a?-1:e>a?1:0,l===0?(p=u,o=u-1):l<0?o=u-1:s=u+1}return p}const Ae=(t,e,i)=>{const n=t[e];return n?typeof n=="function"?n():Promise.resolve(n):new Promise((r,c)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(c.bind(null,new Error("Unknown variable dynamic import: "+e+(e.split("/").length!==i?". Note that variables only represent file names one level deep.":""))))})},re={},$=async t=>(re[t]||(re[t]=Ae(Object.assign({"../script_data/Assamese.json":()=>Promise.resolve().then(()=>require("./Assamese-Dv2Uz5Ga.cjs")),"../script_data/Bengali.json":()=>Promise.resolve().then(()=>require("./Bengali-CP-jqwb3.cjs")),"../script_data/Brahmi.json":()=>Promise.resolve().then(()=>require("./Brahmi-BOnETq6u.cjs")),"../script_data/Devanagari.json":()=>Promise.resolve().then(()=>require("./Devanagari-DogoRXY8.cjs")),"../script_data/Granth.json":()=>Promise.resolve().then(()=>require("./Granth-9Z5eCctH.cjs")),"../script_data/Gujarati.json":()=>Promise.resolve().then(()=>require("./Gujarati-CUm-ZsKN.cjs")),"../script_data/Gurumukhi.json":()=>Promise.resolve().then(()=>require("./Gurumukhi-CsObr-GI.cjs")),"../script_data/Kannada.json":()=>Promise.resolve().then(()=>require("./Kannada-SXQdSng_.cjs")),"../script_data/Malayalam.json":()=>Promise.resolve().then(()=>require("./Malayalam-IcKWWsaB.cjs")),"../script_data/Modi.json":()=>Promise.resolve().then(()=>require("./Modi-C3Chvoab.cjs")),"../script_data/Normal.json":()=>Promise.resolve().then(()=>require("./Normal-BZe6xAux.cjs")),"../script_data/Odia.json":()=>Promise.resolve().then(()=>require("./Odia-C_-bjsx6.cjs")),"../script_data/Purna-Devanagari.json":()=>Promise.resolve().then(()=>require("./Purna-Devanagari-BkPRDmig.cjs")),"../script_data/Romanized.json":()=>Promise.resolve().then(()=>require("./Romanized-B_o6BaP0.cjs")),"../script_data/Sharada.json":()=>Promise.resolve().then(()=>require("./Sharada-DfQQFnhQ.cjs")),"../script_data/Siddham.json":()=>Promise.resolve().then(()=>require("./Siddham-D4xax5q5.cjs")),"../script_data/Sinhala.json":()=>Promise.resolve().then(()=>require("./Sinhala-oz5fU6-H.cjs")),"../script_data/Tamil-Extended.json":()=>Promise.resolve().then(()=>require("./Tamil-Extended-Bg0_zDSf.cjs")),"../script_data/Tamil.json":()=>Promise.resolve().then(()=>require("./Tamil-pc27DGFa.cjs")),"../script_data/Telugu.json":()=>Promise.resolve().then(()=>require("./Telugu-C9jvVXuj.cjs"))}),`../script_data/${t}.json`,3).then(e=>e.default)),re[t]),Z={"all_to_normal:replace_pancham_varga_varna_with_n":{from_script_type:"all",to_script_name:["Normal"],check_in:"output",rules:[{type:"replace_prev_krama_keys",check_in:"output",prev:[60],following:[52,53,54,55,56,57,58,59],replace_with:[72]},{type:"replace_prev_krama_keys",check_in:"output",prev:[67],following:[61,62,63,64,65,66],replace_with:[72]}]},"brahmic_to_brahmic:replace_pancham_varga_varna_with_anuvsvAra":{from_script_type:"brahmic",to_script_type:"brahmic",check_in:"input",rules:[{type:"replace_prev_krama_keys",check_in:"input",prev:[60,49],following:[52,53,54,55,56,57,58,59],replace_with:[45]},{type:"replace_prev_krama_keys",check_in:"input",prev:[67,49],following:[61,62,63,64,65,66],replace_with:[45]},{type:"replace_prev_krama_keys",check_in:"input",prev:[81,49],following:[74,75,76,77,78,79,80],replace_with:[45]},{type:"replace_prev_krama_keys",check_in:"input",prev:[72,49],following:[68,69,70,71],replace_with:[45]},{type:"replace_prev_krama_keys",check_in:"input",prev:[88,49],following:[82,83,85,86,87],replace_with:[45]}]},"all_to_sinhala:use_conjuct_enabling_halant":{from_script_type:"all",to_script_name:["Sinhala"],check_in:"output",rules:[{type:"direct_replace",check_in:"output",to_replace:[[49]],replace_text:"්",replace_with:[]}]},"all_to_normal:remove_virAma_and_double_virAma":{from_script_type:"all",to_script_name:["Normal","Romanized"],check_in:"output",rules:[{type:"direct_replace",check_in:"output",to_replace:[[116],[115]],replace_with:[-1]}]},"all_to_normal:replace_avagraha_with_a":{from_script_type:"all",to_script_name:["Normal","Romanized"],check_in:"output",rules:[{type:"direct_replace",check_in:"output",to_replace:[[48]],replace_with:[1]}]}},we=(t,e)=>{const i=t.krama_text_arr[e]?.[0];return typeof i=="string"?i:null},O=(t,e)=>we(t,e)??"",V=(t,e)=>J(t.krama_text_arr,t.krama_text_arr_index,e,{accessor:(i,n)=>i[n][0]}),Te=()=>{let t=[];function e(a){a&&t.push(a)}function i(a){for(const l of a)e(l)}function n(){return t.at(-1)}function r(){return n()?.at(-1)}function c(){const a=n();if(!a)return;const l=a.at(-1),_=a.slice(0,-1);return _?t[t.length-1]=_:t.pop(),l}function s(a,l){t.splice(-a,a,...l.filter(Boolean))}function o(a,l){const _=c();if(!_){i(a),i(l);return}i(a),e(_),i(l)}function p(a){const l=t.at(a);return l?{cp:a,ch:l,width:l.length}:null}function u(a,l){a<0&&(a=t.length+a),!(a<0||a>=t.length)&&(t[a]=l)}return{emit:e,emitPieces:i,lastPiece:n,lastChar:r,popLastChar:c,rewriteTailPieces:s,withLastCharMovedAfter:o,toString:()=>t.join(""),rewriteAt:u,peekAt:p}},be=t=>{let e=[];function i(){e=[]}function n(){return e.length}function r(_){return e.at(_)}function c(){return e.at(-1)}function s(){return c()?.[0]}function o(){return c()?.[1]?.type}function p(_){return r(_)?.[1]?.type}function u(_){return r(_)?.[0]}function a(_){return o()===_}function l(_){const m=_[0];m!==void 0&&m.length>0&&e.push(_),e.length>t&&e.shift()}return{clear:i,length:n,at:r,last:c,lastText:s,lastType:o,typeAt:p,textAt:u,isLastType:a,push:l}},Pe=t=>{let e=0;function i(o){const p=t.codePointAt(o);if(p===void 0)return null;const u=String.fromCodePoint(p);return{cp:p,ch:u,width:u.length}}function n(){return i(e)}function r(o){return i(e+o)}function c(o){e+=o}function s(o,p){return t.substring(o,p)}return{get pos(){return e},peek:n,peekAt:i,peekAtOffsetUnits:r,advance:c,slice:s}},ae=(t,e,i,n)=>{for(let r=0;r<i.length;r++){const c=i[i.length-1-r],s=t(e-r);if(s===null)return{matched:!1,matchedLen:0};const o=V(n,s.ch);if(o===-1||o!==c)return{matched:!1,matchedLen:0}}return{matched:!0,matchedLen:i.length}},ie=(t,e)=>t.map(i=>O(e,i)).filter(Boolean),Se=["²","³","⁴"],C=t=>!!t&&Se.indexOf(t)!==-1,I=t=>t==="Tamil-Extended",H=(t,e,i,n)=>{if(e.length===0)return;if(!n){t.emitPieces(e);return}const r=e[0]??"";if(r[0]===i){const c=r.slice(1),s=[];c&&s.push(c);for(let o=1;o<e.length;o++)s.push(e[o]);t.withLastCharMovedAfter([i],s)}else t.withLastCharMovedAfter(e,[])},je=[" ",`
|
|
2
|
+
`,"\r"," ",",",";","!","@","?","%"],Ee=3;function b(t,e,i){const{from_script_name:n,to_script_name:r,from_script_data:c,to_script_data:s,trans_options:o,result:p,prev_context:u,BRAHMIC_HALANT:a,BRAHMIC_NUQTA:l,typing_mode:_}=t,{next:m,last_extra_call:v}=i??{};let k=!1;if((l&&u.typeAt(-3)==="vyanjana"&&u.textAt(-2)===l&&u.typeAt(-1)==="mAtrA"||u.typeAt(-2)==="vyanjana"&&u.typeAt(-1)==="mAtrA")&&(!e||e[1]?.type==="anya")&&u.clear(),c.script_type==="brahmic"&&s.script_type==="other")e[0]!==a&&(!(I(n)&&e[0]&&e[0].length>0)||e[0].charAt(0)!==a)&&(!l||e[0]!==l)&&(u.typeAt(-1)==="vyanjana"||l&&u.typeAt(-2)==="vyanjana"&&u.textAt(-1)===l)&&(e[1]?.type!=="mAtrA"&&e[0]!==a||e[1]?.type==="anya"||e[1]===null||e[1]===void 0)&&p.emit(s.schwa_character);else if(c.script_type==="other"&&s.script_type==="brahmic")if(u.typeAt(-1)==="vyanjana"&&(e[1]?.type==="mAtrA"||e[1]?.type==="svara")){const d=e[1].type==="svara"?O(s,e[1].mAtrA_krama_ref?.[0]??-1):e[0];I(r)&&C(p.lastChar())?H(p,[d],s.halant,!0):H(p,[d],s.halant,!1),k=!0}else u.typeAt(-1)==="vyanjana"&&!(e[0]===a||e[1]?.type==="mAtrA")&&(I(r)&&C(p.lastChar())?H(p,[a],s.halant,!0):(H(p,[a],s.halant,!1),r==="Sinhala"&&o["all_to_sinhala:use_conjuct_enabling_halant"]&&p.rewriteAt(-1,p.lastPiece()+"")));let f=!1;return _&&(m===void 0||m.length===0)&&!v&&(f=!0,e[1]?.type==="vyanjana"&&(f=!1),f&&u.clear()),(!_||!v&&!f)&&u.push(e),k}function ce(t,e,i){const{custom_rules:n,cursor:r,result:c,from_script_data:s,to_script_data:o}=t,p=e+i;for(let u=0;u<n.length;u++){if(n[u].use_replace===!0)continue;const a=n[u];if(a.type==="replace_prev_krama_keys"){if(a.check_in==="input"){const l=ae(r.peekAt,p,a.prev,s),_=r.peekAt(e);if(l.matched&&_!==null){const m=_.ch,v=V(s,m);if(v!==-1&&a.following.indexOf(v)!==-1){const k=ie(a.replace_with,o);c.rewriteTailPieces(l.matchedLen,k)}}}else if(a.check_in==="output"){const l=c.lastPiece();if(!l)continue;const _=V(o,l);if(_!==-1&&a.following.indexOf(_)!==-1){const m=ae(c.peekAt,-2,a.prev,o);if(m.matched){const v=ie(a.replace_with,o);c.rewriteTailPieces(m.matchedLen+1,[...v,l])}}}}else if(a.type==="direct_replace"){const l=a.check_in==="output"?o:s;for(const _ of a.to_replace){const m=ae(c.peekAt,-1,_,l);if(!m.matched)continue;if(a.replace_text){c.rewriteTailPieces(m.matchedLen,[a.replace_text]);break}const v=ie(a.replace_with,l);c.rewriteTailPieces(m.matchedLen,v);break}}}}const he=(t,e,i)=>{if(!i)return{};const n={};for(const[r,c]of Object.entries(i??{})){if(!c||!(r in Z))continue;const s=Z[r];(s.from_script_type!==void 0&&(s.from_script_type==="all"||s.from_script_type===t.script_type)||s.from_script_name!==void 0&&s.from_script_name.includes(t.script_name))&&(s.to_script_type!==void 0&&(s.to_script_type==="all"||s.to_script_type===e.script_type)||s.to_script_name!==void 0&&s.to_script_name.includes(e.script_name))&&(n[r]=!0)}return n},me=(t,e,i)=>{const n=he(t,e,i),r=Object.keys(n).flatMap(c=>Z[c].rules);return{trans_options:n,custom_rules:r}},ue=(t,e)=>t.replace_with.map(i=>O(e,i)).join(""),_e=(t,e,i,n)=>{if(i.length===0)return t;for(const r of i)if(!(r.use_replace!==!0||r.check_in!==n)){if(r.type==="replace_prev_krama_keys"){const c=r.prev.map(s=>O(e,s)).join("");for(let s of r.following){const o=O(e,s);if(!o)continue;const p=ue(r,e)+o;t=t.replaceAll(c+o,p)}}else if(r.type==="direct_replace"){const c=r.to_replace.map(s=>s.map(o=>O(e,o)).join(""));for(let s of c)t=t.replaceAll(s,ue(r,e))}}return t},fe=(t,e,i,n,r,c,s,o)=>{const p=o?.typing_mode??!1;if(p&&e!=="Normal")throw new Error("Typing mode is only supported with Normal script as the input");t=_e(t,n,s,"input");const u=Te();let a=0;const l=Pe(t),_=be(Ee),m=n.script_type==="brahmic"&&r.script_type==="other"||n.script_type==="other"&&r.script_type==="brahmic"||p&&e==="Normal"&&r.script_type==="other",v=n.script_type==="brahmic"&&r.script_type==="other"?n.nuqta??null:n.script_type==="other"&&r.script_type==="brahmic"?r.nuqta??null:null,k=n.script_type==="brahmic"&&r.script_type==="other"?n.halant:n.script_type==="other"&&r.script_type==="brahmic"?r.halant:null,f={from_script_name:e,to_script_name:i,from_script_data:n,to_script_data:r,trans_options:c,custom_rules:s,cursor:l,result:u,prev_context:_,BRAHMIC_NUQTA:v,BRAHMIC_HALANT:k,typing_mode:p};let d=-1;for(;l.pos<t.length;){a=l.pos;const q=l.peek();if(!q)break;const G=q.ch,K=q.width,oe=K===2?1:K;if(d!==-1&&a>=d){d=-1,l.advance(K);continue}if(je.indexOf(G)!==-1){l.advance(K),m&&(b(f,[" ",null]),_.clear()),u.emit(G);continue}let D=-1;{let T=0,B=-1;const P=m&&n.script_type==="other"&&r.script_type==="brahmic"&&(_.typeAt(-1)==="vyanjana"||v&&_.typeAt(-2)==="vyanjana"&&_.textAt(-1)===v);for(;;){const Y=l.peekAt(a+oe+T),E=Y?.ch??"";d!==-1&&E&&C(E)&&(T+=Y?.width??0);const y=a+oe+T,w=d!==-1?l.slice(a,d)+(y>d?l.slice(d+1,y):""):l.slice(a,y),g=ne(n.text_to_krama_map,w,{accessor:(x,S)=>x[S][0]});if(g===-1){D=-1;break}const N=n.text_to_krama_map[g];if(P&&N[1].krama&&N[1].krama.length>=1){const x=N[1].krama,S=x[0],j=r.krama_text_arr[S]?.[1],te=r.list[j??-1]?.type;if(x.length===1&&j!==null&&j!==void 0&&(te==="svara"||te==="mAtrA"))B=g;else if(B!==-1){D=B;break}}if(N[1].next&&N[1].next.length>0){const x=l.peekAt(y),S=x?.ch;if(I(e)&&n.script_type==="brahmic"){const X=x?l.peekAt(y+x.width):null,j=X?.ch,F=(x&&X?l.peekAt(y+x.width+X.width):null)?.ch;if(d===-1&&j!==void 0&&C(j)&&N[1].next.indexOf(j)!==-1){const W=ne(n.text_to_krama_map,w+j,{accessor:(L,A)=>L[A][0]}),Q=J(n.krama_text_arr,n.krama_text_arr_index,S??"",{accessor:(L,A)=>L[A][0]});if(W!==-1&&Q!==-1){D=W;const L=n.krama_text_arr[Q],A=n.list[L[1]??-1]?.type;if(S===n.halant||A==="mAtrA"){d=y+(x?.width??0);break}}}else if(d===-1&&F!==void 0&&C(F)&&N[1].next.indexOf(F)!==-1){const W=ne(n.text_to_krama_map,w+F,{accessor:(A,M)=>A[M][0]}),Q=J(n.krama_text_arr,n.krama_text_arr_index,S??"",{accessor:(A,M)=>A[M][0]}),L=J(n.krama_text_arr,n.krama_text_arr_index,j??"",{accessor:(A,M)=>A[M][0]});if(W!==-1&&Q!==-1&&L!==-1){const A=n.krama_text_arr[Q],M=n.krama_text_arr[L];D=W;const ge=n.list[A[1]??-1]?.type,xe=n.list[M[1]??-1]?.type;if(ge==="mAtrA"&&xe==="mAtrA"){d=y+(x?.width??0)+(X?.width??0);break}}}}if(S!==void 0&&N[1].next.indexOf(S)!==-1){T+=x?.width??0;continue}}D=g;break}}const h=D!==-1?n.text_to_krama_map[D]:null;if(h!==null){const T=d!==-1&&h[0].length>1&&n.list[n.krama_text_arr[h[1].krama?.[0]??-1]?.[1]??-1]?.type==="vyanjana"&&C(h[0].at(-1)??void 0)?1:0,B=h[0].length-T;if(l.advance(B),a=l.pos,h[1].krama!==null&&h[1].krama!==void 0&&h[1].krama.some(P=>P!==-1)){const P=h[1].krama.map(y=>O(r,y)),Y=P.join("");let E=!1;if(m)if(n.script_type==="brahmic"&&r.script_type==="other"){let y=null;if(h[1].fallback_list_ref!==void 0&&h[1].fallback_list_ref!==null)y=n.list[h[1].fallback_list_ref];else if(!h[1].krama||h[1].krama.length===0)y=null;else{const w=h[1].krama.map(g=>n.list[n.krama_text_arr[g][1]??-1]);I(e)&&w.some(g=>g?.type==="mAtrA")&&w.some(g=>g?.type==="vyanjana")?y={...w[0],type:"anya"}:I(e)&&w.length>1&&w.some(g=>g==null)?y=w.at(-1):y=w[0]}E=b(f,[h[0],y])}else if(r.script_type==="brahmic"&&n.script_type==="other"){let y=null;h[1].fallback_list_ref!==void 0&&h[1].fallback_list_ref!==null?y=r.list[h[1].fallback_list_ref]:y=h[1].krama&&h[1].krama.length>0?r.list[r.krama_text_arr[h[1].krama[0]]?.[1]??-1]??null:null,p&&e==="Normal"?E=b(f,[h[0],y],{next:h[1].next??void 0}):E=b(f,[h[0],y])}else p&&e==="Normal"&&r.script_type==="other"&&(E=b(f,[h[0],null],{next:h[1].next??void 0}));E||(r.script_type==="brahmic"&&I(i)&&(r.list[h[1].krama?.at(-1)??-1]?.type==="mAtrA"||Y===r.halant)&&C(u.lastChar())?H(u,P,r.halant,!0):u.emitPieces(P)),ce(f,a,-B);continue}else if(h[1].krama!==null&&h[1].krama!==void 0&&h[1].krama.some(P=>P===-1)){u.emit(h[0]),p&&b(f,[h[0],null],{next:h[1].next??void 0});continue}}else l.advance(K),a=l.pos;const z=h===null?G:h[0],U=V(n,z);if(U===-1){m&&(b(f,[z,null]),_.clear()),u.emit(z);continue}let ee=!1;if(m&&(n.script_type==="brahmic"?ee=b(f,[z,n.list[n.krama_text_arr[U][1]??-1]]):r.script_type==="brahmic"&&(ee=b(f,[z,r.list[r.krama_text_arr[U][1]??-1]]))),!ee){const T=O(r,U);r.script_type==="brahmic"&&I(i)&&(r.list[r.krama_text_arr[U][1]??-1]?.type==="mAtrA"||T===r.halant)&&C(u.lastChar())?H(u,[T],r.halant,!0):u.emit(T)}ce(f,a,-K)}m&&b(f,[void 0,null],{last_extra_call:!0});let R=u.toString();return R=_e(R,r,s,"output"),{output:R,context_length:_.length()}},Ne=async(t,e,i,n,r)=>{const[c,s]=await Promise.all([$(e),$(i)]),{trans_options:o,custom_rules:p}=me(c,s,n);return fe(t,e,i,c,s,o,p,r)},Le={Devanagari:1,Telugu:2,Tamil:3,"Tamil-Extended":4,Bengali:5,Kannada:6,Gujarati:7,Malayalam:8,Odia:9,Sinhala:10,Normal:11,Romanized:12,Gurumukhi:13,Assamese:14,"Purna-Devanagari":15,Brahmi:16,Granth:17,Modi:18,Sharada:20,Siddham:21},Ce={English:1,Sanskrit:2,Hindi:3,Telugu:4,Tamil:5,Bengali:6,Kannada:7,Gujarati:8,Malayalam:9,Odia:10,Sinhala:11,Marathi:12,Nepali:13,Punjabi:14,Assamese:15},Ie={script_list:Le,lang_list:Ce},{script_list:Oe,lang_list:De}=Ie,le=Object.keys(Oe),se=Object.keys(De),Me=Array.from(new Set([...se,...le])),Re={Bengali:"Bengali",Gujarati:"Gujarati",Hindi:"Devanagari",Kannada:"Kannada",Malayalam:"Malayalam",Odia:"Odia",Sinhala:"Sinhala",Tamil:"Tamil",Telugu:"Telugu",English:"Normal",Sanskrit:"Devanagari",Marathi:"Devanagari",Nepali:"Devanagari",Punjabi:"Gurumukhi",Assamese:"Assamese"},pe={dev:"Devanagari",te:"Telugu",tel:"Telugu",tam:"Tamil","tam-ex":"Tamil-Extended",ben:"Bengali",be:"Bengali",ka:"Kannada",kan:"Kannada",gu:"Gujarati",guj:"Gujarati",mal:"Malayalam",or:"Odia",od:"Odia",oriya:"Odia",si:"Sinhala",sinh:"Sinhala",sin:"Sinhala",en:"Normal",eng:"Normal",la:"Normal",lat:"Normal",nor:"Normal",norm:"Normal",rom:"Romanized",gur:"Gurumukhi",as:"Assamese",sa:"Devanagari",san:"Devanagari",hin:"Devanagari",hi:"Devanagari",mar:"Devanagari",ne:"Devanagari",nep:"Devanagari",pun:"Gurumukhi"};function qe(t){return t.toLowerCase().replace(/(^|-)([a-z])/g,(e,i,n)=>i+n.toUpperCase())}const ye=t=>{const e=qe(t);return le.includes(e)?e:se.includes(e)?Re[e]:t.toLocaleLowerCase()in pe?pe[t.toLocaleLowerCase()]:null};function de(t){const e=ye(t);if(!e)throw new Error(`Invalid script name: ${t}`);let i="",n="",r=null,c=null,s={},o=[];const p=(async()=>{const[l,_]=await Promise.all([$("Normal"),$(e)]);r=l,c=_;const m=me(l,_);s=m.trans_options,o=m.custom_rules})();function u(){i="",n=""}function a(l){if(!r||!c)throw new Error("Typing context not ready. Await `ctx.ready` before calling takeKeyInputSync.");let _=l?.[0]??"";i+=_;let m=n;const{context_length:v,output:k}=fe(i,"Normal",e,r,c,s,o,{typing_mode:!0});v>0?n=k:v===0&&(i="",n="");let f=0;for(;f<k.length&&f<m.length&&k[f]===m[f];)f++;let d=k.substring(f);return{to_delete_chars_count:m.length-f,diff_add_text:d}}return{ready:p,clearContext:u,takeKeyInput:a}}async function ve(t,e,i,n){if(!(n??!0)){i?.(e.currentTarget.value);return}const c="nativeEvent"in e,s=c?typeof InputEvent<"u"&&e?.nativeEvent instanceof InputEvent&&e.nativeEvent.data!==null:typeof InputEvent<"u"&&e instanceof InputEvent&&e.data!==null,o=c?e.nativeEvent.target:e.currentTarget;if(s){c&&i&&i(e.currentTarget.value),await t.ready;const p=c?e.nativeEvent.data:e.data,{diff_add_text:u,to_delete_chars_count:a}=t.takeKeyInput(p),l=o.value,_=(o.selectionStart??0)+1,m=_-a-2,v=l.substring(0,m),k=u;let f="";const d=l.length+1===_,R=l.length+1!==_;d?f=l.substring(_+1):R&&(f=l.substring(_-1));const q=v.length+k.length,G=v+k+f;o.value=G,o.focus(),o.selectionStart=q,o.selectionEnd=q,i?.(G)}else i?.(o.value),t.clearContext()}const Ge=new Set(["Backspace","Delete","Enter","Tab","Escape","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","PageUp","PageDown"]);function ke(t,e){if(t instanceof KeyboardEvent){if(t.isComposing)return!1;const i=t.key;if(!i||i==="Unidentified"||i==="Process"||i==="Dead"||t.ctrlKey||t.metaKey||t.altKey)return!1;if(Ge.has(i))return e.clearContext(),!0}return!1}const Ke=Object.freeze(Object.defineProperty({__proto__:null,clearTypingContextOnKeyDown:ke,createTypingContext:de,handleTypingInputEvent:ve},Symbol.toStringTag,{value:"Module"}));exports.ALL_LANG_SCRIPT_LIST=Me;exports.LANG_LIST=se;exports.SCRIPT_LIST=le;exports.clearTypingContextOnKeyDown=ke;exports.createTypingContext=de;exports.custom_options_json=Z;exports.getNormalizedScriptName=ye;exports.getScriptData=$;exports.get_active_custom_options=he;exports.handleTypingInputEvent=ve;exports.transliterate_text=Ne;exports.typing=Ke;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./typing-BLcGlYhq.cjs");exports.clearTypingContextOnKeyDown=e.clearTypingContextOnKeyDown;exports.createTypingContext=e.createTypingContext;exports.handleTypingInputEvent=e.handleTypingInputEvent;
|