lipilekhika 0.0.0-alpha.1 → 0.0.0-alpha.2
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 -1
- package/dist/esm/index.mjs +2 -0
- package/dist/index.d.ts +1 -1
- package/dist/lipilekhika.umd.js +2 -2
- package/package.json +9 -2
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function J(r,t,i,_){const{accessor:o,compareFn:s}=_??{},e=o??((n,c)=>n[c]);let a=0,h=t.length-1,p=-1;for(;a<=h;){const n=Math.floor((a+h)/2),c=t[n],l=e(r,c);let m;s?m=s(i,l):m=i<l?-1:i>l?1:0,m===0?(p=c,h=n-1):m<0?h=n-1:a=n+1}return p}function nt(r,t,i){const{accessor:_,compareFn:o}=i??{},s=_??((p,n)=>p[n]);let e=0,a=r.length-1,h=-1;for(;e<=a;){const p=Math.floor((e+a)/2),n=s(r,p);let c;o?c=o(t,n):c=t<n?-1:t>n?1:0,c===0?(h=p,a=p-1):c<0?a=p-1:e=p+1}return h}const kt=(r,t,i)=>{const _=r[t];return _?typeof _=="function"?_():Promise.resolve(_):new Promise((o,s)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(s.bind(null,new Error("Unknown variable dynamic import: "+t+(t.split("/").length!==i?". Note that variables only represent file names one level deep.":""))))})},W=async r=>(await kt(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/${r}.json`,3)).default,Y={"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]}]}},vt=(r,t)=>{const i=r.krama_text_arr[t]?.[0];return typeof i=="string"?i:null},C=(r,t)=>vt(r,t)??"",Z=(r,t)=>J(r.krama_text_arr,r.krama_text_arr_index,t,{accessor:(i,_)=>i[_][0]}),gt=()=>{let r=[];function t(n){n&&r.push(n)}function i(n){for(const c of n)t(c)}function _(){return r.at(-1)}function o(){return _()?.at(-1)}function s(){const n=_();if(!n)return;const c=n.at(-1),l=n.slice(0,-1);return l?r[r.length-1]=l:r.pop(),c}function e(n,c){r.splice(-n,n,...c.filter(Boolean))}function a(n,c){const l=s();if(!l){i(n),i(c);return}i(n),t(l),i(c)}function h(n){const c=r.at(n);return c?{cp:n,ch:c,width:c.length}:null}function p(n,c){n<0&&(n=r.length+n),!(n<0||n>=r.length)&&(r[n]=c)}return{emit:t,emitPieces:i,lastPiece:_,lastChar:o,popLastChar:s,rewriteTailPieces:e,withLastCharMovedAfter:a,toString:()=>r.join(""),rewriteAt:p,peekAt:h}},xt=r=>{let t=[];function i(){t=[]}function _(){return t.length}function o(l){return t.at(l)}function s(){return t.at(-1)}function e(){return s()?.[0]}function a(){return s()?.[1]?.type}function h(l){return o(l)?.[1]?.type}function p(l){return o(l)?.[0]}function n(l){return a()===l}function c(l){const m=l[0];m!==void 0&&m.length>0&&t.push(l),t.length>r&&t.shift()}return{clear:i,length:_,at:o,last:s,lastText:e,lastType:a,typeAt:h,textAt:p,isLastType:n,push:c}},At=r=>{let t=0;function i(a){const h=r.codePointAt(a);if(h===void 0)return null;const p=String.fromCodePoint(h);return{cp:h,ch:p,width:p.length}}function _(){return i(t)}function o(a){return i(t+a)}function s(a){t+=a}function e(a,h){return r.substring(a,h)}return{get pos(){return t},peek:_,peekAt:i,peekAtOffsetUnits:o,advance:s,slice:e}},it=(r,t,i,_)=>{for(let o=0;o<i.length;o++){const s=i[i.length-1-o],e=r(t-o);if(e===null)return{matched:!1,matchedLen:0};const a=Z(_,e.ch);if(a===-1||a!==s)return{matched:!1,matchedLen:0}}return{matched:!0,matchedLen:i.length}},st=(r,t)=>r.map(i=>C(t,i)).filter(Boolean),wt=["²","³","⁴"],E=r=>!!r&&wt.indexOf(r)!==-1,I=r=>r==="Tamil-Extended",G=(r,t,i,_)=>{if(t.length===0)return;if(!_){r.emitPieces(t);return}const o=t[0]??"";if(o[0]===i){const s=o.slice(1),e=[];s&&e.push(s);for(let a=1;a<t.length;a++)e.push(t[a]);r.withLastCharMovedAfter([i],e)}else r.withLastCharMovedAfter(t,[])},Tt=[" ",`
|
|
2
|
-
`,"\r"," ",",",";","!","@","?","%"],bt=3;function b(r,t,i,_){const{from_script_name:o,to_script_name:s,from_script_data:e,to_script_data:a,trans_options:h,result:p,prev_context:n,BRAHMIC_HALANT:c,BRAHMIC_NUQTA:l,typing_mode:m}=r;let d=!1;if((l&&n.typeAt(-3)==="vyanjana"&&n.textAt(-2)===l&&n.typeAt(-1)==="mAtrA"||n.typeAt(-2)==="vyanjana"&&n.typeAt(-1)==="mAtrA")&&(!t||t[1]?.type==="anya")&&n.clear(),e.script_type==="brahmic"&&a.script_type==="other")t[0]!==c&&(!(I(o)&&t[0]&&t[0].length>0)||t[0].charAt(0)!==c)&&(!l||t[0]!==l)&&(n.typeAt(-1)==="vyanjana"||l&&n.typeAt(-2)==="vyanjana"&&n.textAt(-1)===l)&&(t[1]?.type!=="mAtrA"&&t[0]!==c||t[1]?.type==="anya"||t[1]===null||t[1]===void 0)&&p.emit(a.schwa_character);else if(e.script_type==="other"&&a.script_type==="brahmic")if(n.typeAt(-1)==="vyanjana"&&(t[1]?.type==="mAtrA"||t[1]?.type==="svara")){const Q=t[1].type==="svara"?C(a,t[1].mAtrA_krama_ref?.[0]??-1):t[0];I(s)&&E(p.lastChar())?G(p,[Q],a.halant,!0):G(p,[Q],a.halant,!1),d=!0}else n.typeAt(-1)==="vyanjana"&&!(t[0]===c||t[1]?.type==="mAtrA")&&(I(s)&&E(p.lastChar())?G(p,[c],a.halant,!0):(G(p,[c],a.halant,!1),s==="Sinhala"&&h["all_to_sinhala:use_conjuct_enabling_halant"]&&p.rewriteAt(-1,p.lastPiece()+"")));let w=!1;return m&&(i===void 0||i.length===0)&&!_&&(w=!0,t[1]?.type==="vyanjana"&&(w=!1),w&&n.clear()),(!m||!_&&!w)&&n.push(t),d}function _t(r,t,i){const{custom_rules:_,cursor:o,result:s,from_script_data:e,to_script_data:a}=r,h=t+i;for(let p=0;p<_.length;p++){if(_[p].use_replace===!0)continue;const n=_[p];if(n.type==="replace_prev_krama_keys"){if(n.check_in==="input"){const c=it(o.peekAt,h,n.prev,e),l=o.peekAt(t);if(c.matched&&l!==null){const m=l.ch,d=Z(e,m);if(d!==-1&&n.following.indexOf(d)!==-1){const w=st(n.replace_with,a);s.rewriteTailPieces(c.matchedLen,w)}}}else if(n.check_in==="output"){const c=s.lastPiece();if(!c)continue;const l=Z(a,c);if(l!==-1&&n.following.indexOf(l)!==-1){const m=it(s.peekAt,-2,n.prev,a);if(m.matched){const d=st(n.replace_with,a);s.rewriteTailPieces(m.matchedLen+1,[...d,c])}}}}else if(n.type==="direct_replace"){const c=n.check_in==="output"?a:e;for(const l of n.to_replace){const m=it(s.peekAt,-1,l,c);if(!m.matched)continue;if(n.replace_text){s.rewriteTailPieces(m.matchedLen,[n.replace_text]);break}const d=st(n.replace_with,c);s.rewriteTailPieces(m.matchedLen,d);break}}}}const mt=(r,t,i)=>{if(!i)return{};const _={};for(const[o,s]of Object.entries(i??{})){if(!s||!(o in Y))continue;const e=Y[o];(e.from_script_type!==void 0&&(e.from_script_type==="all"||e.from_script_type===r.script_type)||e.from_script_name!==void 0&&e.from_script_name.includes(r.script_name))&&(e.to_script_type!==void 0&&(e.to_script_type==="all"||e.to_script_type===t.script_type)||e.to_script_name!==void 0&&e.to_script_name.includes(t.script_name))&&(_[o]=!0)}return _},pt=(r,t)=>r.replace_with.map(i=>C(t,i)).join(""),ut=(r,t,i,_)=>{if(i.length===0)return r;for(const o of i)if(!(o.use_replace!==!0||o.check_in!==_)){if(o.type==="replace_prev_krama_keys"){const s=o.prev.map(e=>C(t,e)).join("");for(let e of o.following){const a=C(t,e);if(!a)continue;const h=pt(o,t)+a;r=r.replaceAll(s+a,h)}}else if(o.type==="direct_replace"){const s=o.to_replace.map(e=>e.map(a=>C(t,a)).join(""));for(let e of s)r=r.replaceAll(e,pt(o,t))}}return r},ft=async(r,t,i,_,o)=>{const s=o?.typing_mode??!1;if(s&&t!=="Normal")throw new Error("Typing mode is only supported with Normal script as the input");const e=await W(t),a=await W(i),h=mt(e,a,_),p=Object.keys(h).flatMap(z=>Y[z].rules);r=ut(r,e,p,"input");const n=gt();let c=0;const l=At(r),m=xt(bt),d=e.script_type==="brahmic"&&a.script_type==="other"||e.script_type==="other"&&a.script_type==="brahmic"||s&&t==="Normal"&&a.script_type==="other",w=e.script_type==="brahmic"&&a.script_type==="other"?e.nuqta??null:e.script_type==="other"&&a.script_type==="brahmic"?a.nuqta??null:null,Q=e.script_type==="brahmic"&&a.script_type==="other"?e.halant:e.script_type==="other"&&a.script_type==="brahmic"?a.halant:null,x={from_script_name:t,to_script_name:i,from_script_data:e,to_script_data:a,trans_options:h,custom_rules:p,cursor:l,result:n,prev_context:m,BRAHMIC_NUQTA:w,BRAHMIC_HALANT:Q,typing_mode:s};let y=-1;for(;l.pos<r.length;){c=l.pos;const z=l.peek();if(!z)break;const et=z.ch,q=z.width,lt=q===2?1:q;if(y!==-1&&c>=y){y=-1,l.advance(q);continue}if(Tt.indexOf(et)!==-1){l.advance(q),d&&(b(x,[" ",null]),m.clear()),n.emit(et);continue}let M=-1;{let T=0,R=-1;const j=d&&e.script_type==="other"&&a.script_type==="brahmic"&&(m.typeAt(-1)==="vyanjana"||w&&m.typeAt(-2)==="vyanjana"&&m.textAt(-1)===w);for(;;){const V=l.peekAt(c+lt+T),N=V?.ch??"";y!==-1&&N&&E(N)&&(T+=V?.width??0);const f=c+lt+T,A=y!==-1?l.slice(c,y)+(f>y?l.slice(y+1,f):""):l.slice(c,f),k=nt(e.text_to_krama_map,A,{accessor:(v,P)=>v[P][0]});if(k===-1){M=-1;break}const L=e.text_to_krama_map[k];if(j&&L[1].krama&&L[1].krama.length>=1){const v=L[1].krama,P=v[0],S=a.krama_text_arr[P]?.[1],rt=a.list[S??-1]?.type;if(v.length===1&&S!==null&&S!==void 0&&(rt==="svara"||rt==="mAtrA"))R=k;else if(R!==-1){M=R;break}}if(L[1].next&&L[1].next.length>0){const v=l.peekAt(f),P=v?.ch;if(I(t)&&e.script_type==="brahmic"){const U=v?l.peekAt(f+v.width):null,S=U?.ch,$=(v&&U?l.peekAt(f+v.width+U.width):null)?.ch;if(y===-1&&S!==void 0&&E(S)&&L[1].next.indexOf(S)!==-1){const X=nt(e.text_to_krama_map,A+S,{accessor:(O,g)=>O[g][0]}),F=J(e.krama_text_arr,e.krama_text_arr_index,P??"",{accessor:(O,g)=>O[g][0]});if(X!==-1&&F!==-1){M=X;const O=e.krama_text_arr[F],g=e.list[O[1]??-1]?.type;if(P===e.halant||g==="mAtrA"){y=f+(v?.width??0);break}}}else if(y===-1&&$!==void 0&&E($)&&L[1].next.indexOf($)!==-1){const X=nt(e.text_to_krama_map,A+$,{accessor:(g,D)=>g[D][0]}),F=J(e.krama_text_arr,e.krama_text_arr_index,P??"",{accessor:(g,D)=>g[D][0]}),O=J(e.krama_text_arr,e.krama_text_arr_index,S??"",{accessor:(g,D)=>g[D][0]});if(X!==-1&&F!==-1&&O!==-1){const g=e.krama_text_arr[F],D=e.krama_text_arr[O];M=X;const dt=e.list[g[1]??-1]?.type,yt=e.list[D[1]??-1]?.type;if(dt==="mAtrA"&&yt==="mAtrA"){y=f+(v?.width??0)+(U?.width??0);break}}}}if(P!==void 0&&L[1].next.indexOf(P)!==-1){T+=v?.width??0;continue}}M=k;break}}const u=M!==-1?e.text_to_krama_map[M]:null;if(u!==null){const T=y!==-1&&u[0].length>1&&e.list[e.krama_text_arr[u[1].krama?.[0]??-1]?.[1]??-1]?.type==="vyanjana"&&E(u[0].at(-1)??void 0)?1:0,R=u[0].length-T;if(l.advance(R),c=l.pos,u[1].krama!==null&&u[1].krama!==void 0&&u[1].krama.some(j=>j!==-1)){const j=u[1].krama.map(f=>C(a,f)),V=j.join("");let N=!1;if(d)if(e.script_type==="brahmic"&&a.script_type==="other"){let f=null;if(u[1].fallback_list_ref!==void 0&&u[1].fallback_list_ref!==null)f=e.list[u[1].fallback_list_ref];else if(!u[1].krama||u[1].krama.length===0)f=null;else{const A=u[1].krama.map(k=>e.list[e.krama_text_arr[k][1]??-1]);I(t)&&A.some(k=>k?.type==="mAtrA")&&A.some(k=>k?.type==="vyanjana")?f={...A[0],type:"anya"}:I(t)&&A.length>1&&A.some(k=>k==null)?f=A.at(-1):f=A[0]}N=b(x,[u[0],f])}else if(a.script_type==="brahmic"&&e.script_type==="other"){let f=null;u[1].fallback_list_ref!==void 0&&u[1].fallback_list_ref!==null?f=a.list[u[1].fallback_list_ref]:f=u[1].krama&&u[1].krama.length>0?a.list[a.krama_text_arr[u[1].krama[0]]?.[1]??-1]??null:null,s&&t==="Normal"?N=b(x,[u[0],f],u[1].next??void 0):N=b(x,[u[0],f])}else s&&t==="Normal"&&a.script_type==="other"&&(N=b(x,[u[0],null],u[1].next??void 0));N||(a.script_type==="brahmic"&&I(i)&&(a.list[u[1].krama?.at(-1)??-1]?.type==="mAtrA"||V===a.halant)&&E(n.lastChar())?G(n,j,a.halant,!0):n.emitPieces(j)),_t(x,c,-R);continue}else if(u[1].krama!==null&&u[1].krama!==void 0&&u[1].krama.some(j=>j===-1)){n.emit(u[0]),s&&b(x,[u[0],null],u[1].next??void 0);continue}}else l.advance(q),c=l.pos;const H=u===null?et:u[0],K=Z(e,H);if(K===-1){d&&(b(x,[H,null]),m.clear()),n.emit(H);continue}let at=!1;if(d&&(e.script_type==="brahmic"?at=b(x,[H,e.list[e.krama_text_arr[K][1]??-1]]):a.script_type==="brahmic"&&(at=b(x,[H,a.list[a.krama_text_arr[K][1]??-1]]))),!at){const T=C(a,K);a.script_type==="brahmic"&&I(i)&&(a.list[a.krama_text_arr[K][1]??-1]?.type==="mAtrA"||T===a.halant)&&E(n.lastChar())?G(n,[T],a.halant,!0):n.emit(T)}_t(x,c,-q)}d&&b(x,[void 0,null],void 0,!0);let tt=n.toString();return tt=ut(tt,a,p,"output"),{output:tt,context_length:m.length()}},jt={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},Pt={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},St={script_list:jt,lang_list:Pt},{script_list:Nt,lang_list:Lt}=St,ct=Object.keys(Nt),ot=Object.keys(Lt),Ot=Array.from(new Set([...ot,...ct])),Et={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"},ht={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",rom:"Romanized",gur:"Gurumukhi",as:"Assamese",sa:"Devanagari",san:"Devanagari",hin:"Devanagari",hi:"Devanagari",mar:"Devanagari",ne:"Devanagari",nep:"Devanagari",pun:"Gurumukhi"};function It(r){return r.toLowerCase().replace(/(^|-)([a-z])/g,(t,i,_)=>i+_.toUpperCase())}const B=r=>{const t=It(r);return ct.includes(t)?t:ot.includes(t)?Et[t]:r.toLocaleLowerCase()in ht?ht[r.toLocaleLowerCase()]:null},Ct=async r=>{const t=B(r);if(!t)throw new Error(`Invalid script name: ${r}`);return await W(t)};async function Mt(r,t,i,_){const o=B(t);if(!o)throw new Error(`Invalid script name: ${t}`);const s=B(i);if(!s)throw new Error(`Invalid script name: ${i}`);return o===s?r:(await ft(r,o,s,_)).output}async function Dt(r,t){const i=B(r);if(!i)throw new Error(`Invalid script name: ${r}`);const _=B(t);if(!_)throw new Error(`Invalid script name: ${t}`);const o=await W(i),s=await W(_);return Object.keys(mt(o,s,Object.fromEntries(Object.keys(Y).map(e=>[e,!0]))))}async function qt(r,t){const i=B(t);if(!i)throw new Error(`Invalid script name: ${t}`);let _="",o="",s="";for(let e=0;e<r.length;e++){o+=r[e];const{context_length:a,output:h}=await ft(o,"Normal",i,{},{typing_mode:!0});a>0?s=h:a===0&&(o="",s="",_+=h)}return s.length>0&&(_+=s),_}exports.ALL_LANG_SCRIPT_LIST=Ot;exports.LANG_LIST=ot;exports.SCRIPT_LIST=ct;exports.emulateTyping=qt;exports.getAllOptions=Dt;exports.preloadScriptData=Ct;exports.transliterate=Mt;
|
|
2
|
+
`,"\r"," ",",",";","!","@","?","%"],bt=3;function b(r,t,i,_){const{from_script_name:o,to_script_name:s,from_script_data:e,to_script_data:a,trans_options:h,result:p,prev_context:n,BRAHMIC_HALANT:c,BRAHMIC_NUQTA:l,typing_mode:m}=r;let d=!1;if((l&&n.typeAt(-3)==="vyanjana"&&n.textAt(-2)===l&&n.typeAt(-1)==="mAtrA"||n.typeAt(-2)==="vyanjana"&&n.typeAt(-1)==="mAtrA")&&(!t||t[1]?.type==="anya")&&n.clear(),e.script_type==="brahmic"&&a.script_type==="other")t[0]!==c&&(!(I(o)&&t[0]&&t[0].length>0)||t[0].charAt(0)!==c)&&(!l||t[0]!==l)&&(n.typeAt(-1)==="vyanjana"||l&&n.typeAt(-2)==="vyanjana"&&n.textAt(-1)===l)&&(t[1]?.type!=="mAtrA"&&t[0]!==c||t[1]?.type==="anya"||t[1]===null||t[1]===void 0)&&p.emit(a.schwa_character);else if(e.script_type==="other"&&a.script_type==="brahmic")if(n.typeAt(-1)==="vyanjana"&&(t[1]?.type==="mAtrA"||t[1]?.type==="svara")){const Q=t[1].type==="svara"?C(a,t[1].mAtrA_krama_ref?.[0]??-1):t[0];I(s)&&E(p.lastChar())?G(p,[Q],a.halant,!0):G(p,[Q],a.halant,!1),d=!0}else n.typeAt(-1)==="vyanjana"&&!(t[0]===c||t[1]?.type==="mAtrA")&&(I(s)&&E(p.lastChar())?G(p,[c],a.halant,!0):(G(p,[c],a.halant,!1),s==="Sinhala"&&h["all_to_sinhala:use_conjuct_enabling_halant"]&&p.rewriteAt(-1,p.lastPiece()+"")));let w=!1;return m&&(i===void 0||i.length===0)&&!_&&(w=!0,t[1]?.type==="vyanjana"&&(w=!1),w&&n.clear()),(!m||!_&&!w)&&n.push(t),d}function _t(r,t,i){const{custom_rules:_,cursor:o,result:s,from_script_data:e,to_script_data:a}=r,h=t+i;for(let p=0;p<_.length;p++){if(_[p].use_replace===!0)continue;const n=_[p];if(n.type==="replace_prev_krama_keys"){if(n.check_in==="input"){const c=it(o.peekAt,h,n.prev,e),l=o.peekAt(t);if(c.matched&&l!==null){const m=l.ch,d=Z(e,m);if(d!==-1&&n.following.indexOf(d)!==-1){const w=st(n.replace_with,a);s.rewriteTailPieces(c.matchedLen,w)}}}else if(n.check_in==="output"){const c=s.lastPiece();if(!c)continue;const l=Z(a,c);if(l!==-1&&n.following.indexOf(l)!==-1){const m=it(s.peekAt,-2,n.prev,a);if(m.matched){const d=st(n.replace_with,a);s.rewriteTailPieces(m.matchedLen+1,[...d,c])}}}}else if(n.type==="direct_replace"){const c=n.check_in==="output"?a:e;for(const l of n.to_replace){const m=it(s.peekAt,-1,l,c);if(!m.matched)continue;if(n.replace_text){s.rewriteTailPieces(m.matchedLen,[n.replace_text]);break}const d=st(n.replace_with,c);s.rewriteTailPieces(m.matchedLen,d);break}}}}const mt=(r,t,i)=>{if(!i)return{};const _={};for(const[o,s]of Object.entries(i??{})){if(!s||!(o in Y))continue;const e=Y[o];(e.from_script_type!==void 0&&(e.from_script_type==="all"||e.from_script_type===r.script_type)||e.from_script_name!==void 0&&e.from_script_name.includes(r.script_name))&&(e.to_script_type!==void 0&&(e.to_script_type==="all"||e.to_script_type===t.script_type)||e.to_script_name!==void 0&&e.to_script_name.includes(t.script_name))&&(_[o]=!0)}return _},pt=(r,t)=>r.replace_with.map(i=>C(t,i)).join(""),ut=(r,t,i,_)=>{if(i.length===0)return r;for(const o of i)if(!(o.use_replace!==!0||o.check_in!==_)){if(o.type==="replace_prev_krama_keys"){const s=o.prev.map(e=>C(t,e)).join("");for(let e of o.following){const a=C(t,e);if(!a)continue;const h=pt(o,t)+a;r=r.replaceAll(s+a,h)}}else if(o.type==="direct_replace"){const s=o.to_replace.map(e=>e.map(a=>C(t,a)).join(""));for(let e of s)r=r.replaceAll(e,pt(o,t))}}return r},ft=async(r,t,i,_,o)=>{const s=o?.typing_mode??!1;if(s&&t!=="Normal")throw new Error("Typing mode is only supported with Normal script as the input");const e=await W(t),a=await W(i),h=mt(e,a,_),p=Object.keys(h).flatMap(z=>Y[z].rules);r=ut(r,e,p,"input");const n=gt();let c=0;const l=At(r),m=xt(bt),d=e.script_type==="brahmic"&&a.script_type==="other"||e.script_type==="other"&&a.script_type==="brahmic"||s&&t==="Normal"&&a.script_type==="other",w=e.script_type==="brahmic"&&a.script_type==="other"?e.nuqta??null:e.script_type==="other"&&a.script_type==="brahmic"?a.nuqta??null:null,Q=e.script_type==="brahmic"&&a.script_type==="other"?e.halant:e.script_type==="other"&&a.script_type==="brahmic"?a.halant:null,x={from_script_name:t,to_script_name:i,from_script_data:e,to_script_data:a,trans_options:h,custom_rules:p,cursor:l,result:n,prev_context:m,BRAHMIC_NUQTA:w,BRAHMIC_HALANT:Q,typing_mode:s};let y=-1;for(;l.pos<r.length;){c=l.pos;const z=l.peek();if(!z)break;const et=z.ch,q=z.width,lt=q===2?1:q;if(y!==-1&&c>=y){y=-1,l.advance(q);continue}if(Tt.indexOf(et)!==-1){l.advance(q),d&&(b(x,[" ",null]),m.clear()),n.emit(et);continue}let M=-1;{let T=0,R=-1;const j=d&&e.script_type==="other"&&a.script_type==="brahmic"&&(m.typeAt(-1)==="vyanjana"||w&&m.typeAt(-2)==="vyanjana"&&m.textAt(-1)===w);for(;;){const V=l.peekAt(c+lt+T),N=V?.ch??"";y!==-1&&N&&E(N)&&(T+=V?.width??0);const f=c+lt+T,A=y!==-1?l.slice(c,y)+(f>y?l.slice(y+1,f):""):l.slice(c,f),k=nt(e.text_to_krama_map,A,{accessor:(v,P)=>v[P][0]});if(k===-1){M=-1;break}const L=e.text_to_krama_map[k];if(j&&L[1].krama&&L[1].krama.length>=1){const v=L[1].krama,P=v[0],S=a.krama_text_arr[P]?.[1],rt=a.list[S??-1]?.type;if(v.length===1&&S!==null&&S!==void 0&&(rt==="svara"||rt==="mAtrA"))R=k;else if(R!==-1){M=R;break}}if(L[1].next&&L[1].next.length>0){const v=l.peekAt(f),P=v?.ch;if(I(t)&&e.script_type==="brahmic"){const U=v?l.peekAt(f+v.width):null,S=U?.ch,$=(v&&U?l.peekAt(f+v.width+U.width):null)?.ch;if(y===-1&&S!==void 0&&E(S)&&L[1].next.indexOf(S)!==-1){const X=nt(e.text_to_krama_map,A+S,{accessor:(O,g)=>O[g][0]}),F=J(e.krama_text_arr,e.krama_text_arr_index,P??"",{accessor:(O,g)=>O[g][0]});if(X!==-1&&F!==-1){M=X;const O=e.krama_text_arr[F],g=e.list[O[1]??-1]?.type;if(P===e.halant||g==="mAtrA"){y=f+(v?.width??0);break}}}else if(y===-1&&$!==void 0&&E($)&&L[1].next.indexOf($)!==-1){const X=nt(e.text_to_krama_map,A+$,{accessor:(g,D)=>g[D][0]}),F=J(e.krama_text_arr,e.krama_text_arr_index,P??"",{accessor:(g,D)=>g[D][0]}),O=J(e.krama_text_arr,e.krama_text_arr_index,S??"",{accessor:(g,D)=>g[D][0]});if(X!==-1&&F!==-1&&O!==-1){const g=e.krama_text_arr[F],D=e.krama_text_arr[O];M=X;const dt=e.list[g[1]??-1]?.type,yt=e.list[D[1]??-1]?.type;if(dt==="mAtrA"&&yt==="mAtrA"){y=f+(v?.width??0)+(U?.width??0);break}}}}if(P!==void 0&&L[1].next.indexOf(P)!==-1){T+=v?.width??0;continue}}M=k;break}}const u=M!==-1?e.text_to_krama_map[M]:null;if(u!==null){const T=y!==-1&&u[0].length>1&&e.list[e.krama_text_arr[u[1].krama?.[0]??-1]?.[1]??-1]?.type==="vyanjana"&&E(u[0].at(-1)??void 0)?1:0,R=u[0].length-T;if(l.advance(R),c=l.pos,u[1].krama!==null&&u[1].krama!==void 0&&u[1].krama.some(j=>j!==-1)){const j=u[1].krama.map(f=>C(a,f)),V=j.join("");let N=!1;if(d)if(e.script_type==="brahmic"&&a.script_type==="other"){let f=null;if(u[1].fallback_list_ref!==void 0&&u[1].fallback_list_ref!==null)f=e.list[u[1].fallback_list_ref];else if(!u[1].krama||u[1].krama.length===0)f=null;else{const A=u[1].krama.map(k=>e.list[e.krama_text_arr[k][1]??-1]);I(t)&&A.some(k=>k?.type==="mAtrA")&&A.some(k=>k?.type==="vyanjana")?f={...A[0],type:"anya"}:I(t)&&A.length>1&&A.some(k=>k==null)?f=A.at(-1):f=A[0]}N=b(x,[u[0],f])}else if(a.script_type==="brahmic"&&e.script_type==="other"){let f=null;u[1].fallback_list_ref!==void 0&&u[1].fallback_list_ref!==null?f=a.list[u[1].fallback_list_ref]:f=u[1].krama&&u[1].krama.length>0?a.list[a.krama_text_arr[u[1].krama[0]]?.[1]??-1]??null:null,s&&t==="Normal"?N=b(x,[u[0],f],u[1].next??void 0):N=b(x,[u[0],f])}else s&&t==="Normal"&&a.script_type==="other"&&(N=b(x,[u[0],null],u[1].next??void 0));N||(a.script_type==="brahmic"&&I(i)&&(a.list[u[1].krama?.at(-1)??-1]?.type==="mAtrA"||V===a.halant)&&E(n.lastChar())?G(n,j,a.halant,!0):n.emitPieces(j)),_t(x,c,-R);continue}else if(u[1].krama!==null&&u[1].krama!==void 0&&u[1].krama.some(j=>j===-1)){n.emit(u[0]),s&&b(x,[u[0],null],u[1].next??void 0);continue}}else l.advance(q),c=l.pos;const H=u===null?et:u[0],K=Z(e,H);if(K===-1){d&&(b(x,[H,null]),m.clear()),n.emit(H);continue}let at=!1;if(d&&(e.script_type==="brahmic"?at=b(x,[H,e.list[e.krama_text_arr[K][1]??-1]]):a.script_type==="brahmic"&&(at=b(x,[H,a.list[a.krama_text_arr[K][1]??-1]]))),!at){const T=C(a,K);a.script_type==="brahmic"&&I(i)&&(a.list[a.krama_text_arr[K][1]??-1]?.type==="mAtrA"||T===a.halant)&&E(n.lastChar())?G(n,[T],a.halant,!0):n.emit(T)}_t(x,c,-q)}d&&b(x,[void 0,null],void 0,!0);let tt=n.toString();return tt=ut(tt,a,p,"output"),{output:tt,context_length:m.length()}},jt={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},Pt={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},St={script_list:jt,lang_list:Pt},{script_list:Nt,lang_list:Lt}=St,ct=Object.keys(Nt),ot=Object.keys(Lt),Ot=Array.from(new Set([...ot,...ct])),Et={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"},ht={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 It(r){return r.toLowerCase().replace(/(^|-)([a-z])/g,(t,i,_)=>i+_.toUpperCase())}const B=r=>{const t=It(r);return ct.includes(t)?t:ot.includes(t)?Et[t]:r.toLocaleLowerCase()in ht?ht[r.toLocaleLowerCase()]:null},Ct=async r=>{const t=B(r);if(!t)throw new Error(`Invalid script name: ${r}`);return await W(t)};async function Mt(r,t,i,_){const o=B(t);if(!o)throw new Error(`Invalid script name: ${t}`);const s=B(i);if(!s)throw new Error(`Invalid script name: ${i}`);return o===s?r:(await ft(r,o,s,_)).output}async function Dt(r,t){const i=B(r);if(!i)throw new Error(`Invalid script name: ${r}`);const _=B(t);if(!_)throw new Error(`Invalid script name: ${t}`);const o=await W(i),s=await W(_);return Object.keys(mt(o,s,Object.fromEntries(Object.keys(Y).map(e=>[e,!0]))))}async function qt(r,t){const i=B(t);if(!i)throw new Error(`Invalid script name: ${t}`);let _="",o="",s="";for(let e=0;e<r.length;e++){o+=r[e];const{context_length:a,output:h}=await ft(o,"Normal",i,{},{typing_mode:!0});a>0?s=h:a===0&&(o="",s="",_+=h)}return s.length>0&&(_+=s),_}exports.ALL_LANG_SCRIPT_LIST=Ot;exports.LANG_LIST=ot;exports.SCRIPT_LIST=ct;exports.emulateTyping=qt;exports.getAllOptions=Dt;exports.preloadScriptData=Ct;exports.transliterate=Mt;
|
package/dist/esm/index.mjs
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export declare const ALL_LANG_SCRIPT_LIST: script_and_lang_list_type[];
|
|
|
2
2
|
|
|
3
3
|
declare type alternate_script_type = (typeof ALTERNATES)[number];
|
|
4
4
|
|
|
5
|
-
declare const ALTERNATES: readonly ["dev", "te", "tel", "tam", "tam-ex", "ben", "be", "ka", "kan", "gu", "guj", "mal", "or", "od", "oriya", "si", "sinh", "sin", "en", "eng", "la", "lat", "rom", "gur", "as", "sa", "san", "hin", "hi", "mar", "ne", "nep", "pun"];
|
|
5
|
+
declare const ALTERNATES: readonly ["dev", "te", "tel", "tam", "tam-ex", "ben", "be", "ka", "kan", "gu", "guj", "mal", "or", "od", "oriya", "si", "sinh", "sin", "en", "eng", "la", "lat", "nor", "norm", "rom", "gur", "as", "sa", "san", "hin", "hi", "mar", "ne", "nep", "pun"];
|
|
6
6
|
|
|
7
7
|
declare type CommonListTypeAttributes = {
|
|
8
8
|
text: string;
|
package/dist/lipilekhika.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(A,
|
|
2
|
-
`,"\r"," ",",",";","!","@","?","%"],wt=3;function T(n,t,i,_){const{from_script_name:s,to_script_name:c,from_script_data:e,to_script_data:a,trans_options:h,result:p,prev_context:r,BRAHMIC_HALANT:l,BRAHMIC_NUQTA:o,typing_mode:f}=n;let d=!1;if((o&&r.typeAt(-3)==="vyanjana"&&r.textAt(-2)===o&&r.typeAt(-1)==="mAtrA"||r.typeAt(-2)==="vyanjana"&&r.typeAt(-1)==="mAtrA")&&(!t||t[1]?.type==="anya")&&r.clear(),e.script_type==="brahmic"&&a.script_type==="other")t[0]!==l&&(!(C(s)&&t[0]&&t[0].length>0)||t[0].charAt(0)!==l)&&(!o||t[0]!==o)&&(r.typeAt(-1)==="vyanjana"||o&&r.typeAt(-2)==="vyanjana"&&r.textAt(-1)===o)&&(t[1]?.type!=="mAtrA"&&t[0]!==l||t[1]?.type==="anya"||t[1]===null||t[1]===void 0)&&p.emit(a.schwa_character);else if(e.script_type==="other"&&a.script_type==="brahmic")if(r.typeAt(-1)==="vyanjana"&&(t[1]?.type==="mAtrA"||t[1]?.type==="svara")){const Z=t[1].type==="svara"?P(a,t[1].mAtrA_krama_ref?.[0]??-1):t[0];C(c)&&I(p.lastChar())?z(p,[Z],a.halant,!0):z(p,[Z],a.halant,!1),d=!0}else r.typeAt(-1)==="vyanjana"&&!(t[0]===l||t[1]?.type==="mAtrA")&&(C(c)&&I(p.lastChar())?z(p,[l],a.halant,!0):(z(p,[l],a.halant,!1),c==="Sinhala"&&h["all_to_sinhala:use_conjuct_enabling_halant"]&&p.rewriteAt(-1,p.lastPiece()+"")));let b=!1;return f&&(i===void 0||i.length===0)&&!_&&(b=!0,t[1]?.type==="vyanjana"&&(b=!1),b&&r.clear()),(!f||!_&&!b)&&r.push(t),d}function _t(n,t,i){const{custom_rules:_,cursor:s,result:c,from_script_data:e,to_script_data:a}=n,h=t+i;for(let p=0;p<_.length;p++){if(_[p].use_replace===!0)continue;const r=_[p];if(r.type==="replace_prev_krama_keys"){if(r.check_in==="input"){const l=at(s.peekAt,h,r.prev,e),o=s.peekAt(t);if(l.matched&&o!==null){const f=o.ch,d=Y(e,f);if(d!==-1&&r.following.indexOf(d)!==-1){const b=nt(r.replace_with,a);c.rewriteTailPieces(l.matchedLen,b)}}}else if(r.check_in==="output"){const l=c.lastPiece();if(!l)continue;const o=Y(a,l);if(o!==-1&&r.following.indexOf(o)!==-1){const f=at(c.peekAt,-2,r.prev,a);if(f.matched){const d=nt(r.replace_with,a);c.rewriteTailPieces(f.matchedLen+1,[...d,l])}}}}else if(r.type==="direct_replace"){const l=r.check_in==="output"?a:e;for(const o of r.to_replace){const f=at(c.peekAt,-1,o,l);if(!f.matched)continue;if(r.replace_text){c.rewriteTailPieces(f.matchedLen,[r.replace_text]);break}const d=nt(r.replace_with,l);c.rewriteTailPieces(f.matchedLen,d);break}}}}const pt=(n,t,i)=>{if(!i)return{};const _={};for(const[s,c]of Object.entries(i??{})){if(!c||!(s in J))continue;const e=J[s];(e.from_script_type!==void 0&&(e.from_script_type==="all"||e.from_script_type===n.script_type)||e.from_script_name!==void 0&&e.from_script_name.includes(n.script_name))&&(e.to_script_type!==void 0&&(e.to_script_type==="all"||e.to_script_type===t.script_type)||e.to_script_name!==void 0&&e.to_script_name.includes(t.script_name))&&(_[s]=!0)}return _},ut=(n,t)=>n.replace_with.map(i=>P(t,i)).join(""),ht=(n,t,i,_)=>{if(i.length===0)return n;for(const s of i)if(!(s.use_replace!==!0||s.check_in!==_)){if(s.type==="replace_prev_krama_keys"){const c=s.prev.map(e=>P(t,e)).join("");for(let e of s.following){const a=P(t,e);if(!a)continue;const h=ut(s,t)+a;n=n.replaceAll(c+a,h)}}else if(s.type==="direct_replace"){const c=s.to_replace.map(e=>e.map(a=>P(t,a)).join(""));for(let e of c)n=n.replaceAll(e,ut(s,t))}}return n},ft=async(n,t,i,_,s)=>{const c=s?.typing_mode??!1;if(c&&t!=="Normal")throw new Error("Typing mode is only supported with Normal script as the input");const e=await K(t),a=await K(i),h=pt(e,a,_),p=Object.keys(h).flatMap(U=>J[U].rules);n=ht(n,e,p,"input");const r=kt();let l=0;const o=vt(n),f=gt(wt),d=e.script_type==="brahmic"&&a.script_type==="other"||e.script_type==="other"&&a.script_type==="brahmic"||c&&t==="Normal"&&a.script_type==="other",b=e.script_type==="brahmic"&&a.script_type==="other"?e.nuqta??null:e.script_type==="other"&&a.script_type==="brahmic"?a.nuqta??null:null,Z=e.script_type==="brahmic"&&a.script_type==="other"?e.halant:e.script_type==="other"&&a.script_type==="brahmic"?a.halant:null,x={from_script_name:t,to_script_name:i,from_script_data:e,to_script_data:a,trans_options:h,custom_rules:p,cursor:o,result:r,prev_context:f,BRAHMIC_NUQTA:b,BRAHMIC_HALANT:Z,typing_mode:c};let y=-1;for(;o.pos<n.length;){l=o.pos;const U=o.peek();if(!U)break;const lt=U.ch,$=U.width,dt=$===2?1:$;if(y!==-1&&l>=y){y=-1,o.advance($);continue}if(xt.indexOf(lt)!==-1){o.advance($),d&&(T(x,[" ",null]),f.clear()),r.emit(lt);continue}let R=-1;{let S=0,H=-1;const j=d&&e.script_type==="other"&&a.script_type==="brahmic"&&(f.typeAt(-1)==="vyanjana"||b&&f.typeAt(-2)==="vyanjana"&&f.textAt(-1)===b);for(;;){const tt=o.peekAt(l+dt+S),E=tt?.ch??"";y!==-1&&E&&I(E)&&(S+=tt?.width??0);const m=l+dt+S,w=y!==-1?o.slice(l,y)+(m>y?o.slice(y+1,m):""):o.slice(l,m),k=et(e.text_to_krama_map,w,{accessor:(g,L)=>g[L][0]});if(k===-1){R=-1;break}const M=e.text_to_krama_map[k];if(j&&M[1].krama&&M[1].krama.length>=1){const g=M[1].krama,L=g[0],N=a.krama_text_arr[L]?.[1],ot=a.list[N??-1]?.type;if(g.length===1&&N!==null&&N!==void 0&&(ot==="svara"||ot==="mAtrA"))H=k;else if(H!==-1){R=H;break}}if(M[1].next&&M[1].next.length>0){const g=o.peekAt(m),L=g?.ch;if(C(t)&&e.script_type==="brahmic"){const F=g?o.peekAt(m+g.width):null,N=F?.ch,W=(g&&F?o.peekAt(m+g.width+F.width):null)?.ch;if(y===-1&&N!==void 0&&I(N)&&M[1].next.indexOf(N)!==-1){const Q=et(e.text_to_krama_map,w+N,{accessor:(D,v)=>D[v][0]}),V=O(e.krama_text_arr,e.krama_text_arr_index,L??"",{accessor:(D,v)=>D[v][0]});if(Q!==-1&&V!==-1){R=Q;const D=e.krama_text_arr[V],v=e.list[D[1]??-1]?.type;if(L===e.halant||v==="mAtrA"){y=m+(g?.width??0);break}}}else if(y===-1&&W!==void 0&&I(W)&&M[1].next.indexOf(W)!==-1){const Q=et(e.text_to_krama_map,w+W,{accessor:(v,G)=>v[G][0]}),V=O(e.krama_text_arr,e.krama_text_arr_index,L??"",{accessor:(v,G)=>v[G][0]}),D=O(e.krama_text_arr,e.krama_text_arr_index,N??"",{accessor:(v,G)=>v[G][0]});if(Q!==-1&&V!==-1&&D!==-1){const v=e.krama_text_arr[V],G=e.krama_text_arr[D];R=Q;const Et=e.list[v[1]??-1]?.type,Mt=e.list[G[1]??-1]?.type;if(Et==="mAtrA"&&Mt==="mAtrA"){y=m+(g?.width??0)+(F?.width??0);break}}}}if(L!==void 0&&M[1].next.indexOf(L)!==-1){S+=g?.width??0;continue}}R=k;break}}const u=R!==-1?e.text_to_krama_map[R]:null;if(u!==null){const S=y!==-1&&u[0].length>1&&e.list[e.krama_text_arr[u[1].krama?.[0]??-1]?.[1]??-1]?.type==="vyanjana"&&I(u[0].at(-1)??void 0)?1:0,H=u[0].length-S;if(o.advance(H),l=o.pos,u[1].krama!==null&&u[1].krama!==void 0&&u[1].krama.some(j=>j!==-1)){const j=u[1].krama.map(m=>P(a,m)),tt=j.join("");let E=!1;if(d)if(e.script_type==="brahmic"&&a.script_type==="other"){let m=null;if(u[1].fallback_list_ref!==void 0&&u[1].fallback_list_ref!==null)m=e.list[u[1].fallback_list_ref];else if(!u[1].krama||u[1].krama.length===0)m=null;else{const w=u[1].krama.map(k=>e.list[e.krama_text_arr[k][1]??-1]);C(t)&&w.some(k=>k?.type==="mAtrA")&&w.some(k=>k?.type==="vyanjana")?m={...w[0],type:"anya"}:C(t)&&w.length>1&&w.some(k=>k==null)?m=w.at(-1):m=w[0]}E=T(x,[u[0],m])}else if(a.script_type==="brahmic"&&e.script_type==="other"){let m=null;u[1].fallback_list_ref!==void 0&&u[1].fallback_list_ref!==null?m=a.list[u[1].fallback_list_ref]:m=u[1].krama&&u[1].krama.length>0?a.list[a.krama_text_arr[u[1].krama[0]]?.[1]??-1]??null:null,c&&t==="Normal"?E=T(x,[u[0],m],u[1].next??void 0):E=T(x,[u[0],m])}else c&&t==="Normal"&&a.script_type==="other"&&(E=T(x,[u[0],null],u[1].next??void 0));E||(a.script_type==="brahmic"&&C(i)&&(a.list[u[1].krama?.at(-1)??-1]?.type==="mAtrA"||tt===a.halant)&&I(r.lastChar())?z(r,j,a.halant,!0):r.emitPieces(j)),_t(x,l,-H);continue}else if(u[1].krama!==null&&u[1].krama!==void 0&&u[1].krama.some(j=>j===-1)){r.emit(u[0]),c&&T(x,[u[0],null],u[1].next??void 0);continue}}else o.advance($),l=o.pos;const X=u===null?lt:u[0],q=Y(e,X);if(q===-1){d&&(T(x,[X,null]),f.clear()),r.emit(X);continue}let st=!1;if(d&&(e.script_type==="brahmic"?st=T(x,[X,e.list[e.krama_text_arr[q][1]??-1]]):a.script_type==="brahmic"&&(st=T(x,[X,a.list[a.krama_text_arr[q][1]??-1]]))),!st){const S=P(a,q);a.script_type==="brahmic"&&C(i)&&(a.list[a.krama_text_arr[q][1]??-1]?.type==="mAtrA"||S===a.halant)&&I(r.lastChar())?z(r,[S],a.halant,!0):r.emit(S)}_t(x,l,-$)}d&&T(x,[void 0,null],void 0,!0);let ct=r.toString();return ct=ht(ct,a,p,"output"),{output:ct,context_length:f.length()}},Tt={script_list:{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},lang_list:{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}},{script_list:bt,lang_list:St}=Tt,rt=Object.keys(bt),it=Object.keys(St),jt=Array.from(new Set([...it,...rt])),Lt={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"},mt={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",rom:"Romanized",gur:"Gurumukhi",as:"Assamese",sa:"Devanagari",san:"Devanagari",hin:"Devanagari",hi:"Devanagari",mar:"Devanagari",ne:"Devanagari",nep:"Devanagari",pun:"Gurumukhi"};function Nt(n){return n.toLowerCase().replace(/(^|-)([a-z])/g,(t,i,_)=>i+_.toUpperCase())}const B=n=>{const t=Nt(n);return rt.includes(t)?t:it.includes(t)?Lt[t]:n.toLocaleLowerCase()in mt?mt[n.toLocaleLowerCase()]:null},Ot=async n=>{const t=B(n);if(!t)throw new Error(`Invalid script name: ${n}`);return await K(t)};async function Pt(n,t,i,_){const s=B(t);if(!s)throw new Error(`Invalid script name: ${t}`);const c=B(i);if(!c)throw new Error(`Invalid script name: ${i}`);return s===c?n:(await ft(n,s,c,_)).output}async function It(n,t){const i=B(n);if(!i)throw new Error(`Invalid script name: ${n}`);const _=B(t);if(!_)throw new Error(`Invalid script name: ${t}`);const s=await K(i),c=await K(_);return Object.keys(pt(s,c,Object.fromEntries(Object.keys(J).map(e=>[e,!0]))))}async function Ct(n,t){const i=B(t);if(!i)throw new Error(`Invalid script name: ${t}`);let _="",s="",c="";for(let e=0;e<n.length;e++){s+=n[e];const{context_length:a,output:h}=await ft(s,"Normal",i,{},{typing_mode:!0});a>0?c=h:a===0&&(s="",c="",_+=h)}return c.length>0&&(_+=c),_}A.ALL_LANG_SCRIPT_LIST=jt,A.LANG_LIST=it,A.SCRIPT_LIST=rt,A.emulateTyping=Ct,A.getAllOptions=It,A.preloadScriptData=Ot,A.transliterate=Pt,Object.defineProperty(A,Symbol.toStringTag,{value:"Module"})}));
|
|
1
|
+
(function(A,C){typeof exports=="object"&&typeof module<"u"?C(exports):typeof define=="function"&&define.amd?define(["exports"],C):(A=typeof globalThis<"u"?globalThis:A||self,C(A.lipilekhika={}))})(this,(function(A){"use strict";function C(n,t,i,_){const{accessor:c,compareFn:l}=_??{},e=c??((r,o)=>r[o]);let a=0,h=t.length-1,p=-1;for(;a<=h;){const r=Math.floor((a+h)/2),o=t[r],s=e(n,o);let f;l?f=l(i,s):f=i<s?-1:i>s?1:0,f===0?(p=o,h=r-1):f<0?h=r-1:a=r+1}return p}function et(n,t,i){const{accessor:_,compareFn:c}=i??{},l=_??((p,r)=>p[r]);let e=0,a=n.length-1,h=-1;for(;e<=a;){const p=Math.floor((e+a)/2),r=l(n,p);let o;c?o=c(t,r):o=t<r?-1:t>r?1:0,o===0?(h=p,a=p-1):o<0?a=p-1:e=p+1}return h}const at={},U=async n=>{{if(at[n])return at[n];const i=`https://cdn.jsdelivr.net/npm/lipilekhika@0.0.0-alpha.2/dist/umd_json/script_data/${n}.json`,c=await(await fetch(i)).json();return at[n]=c,c}},J={"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]}]}},kt=(n,t)=>{const i=n.krama_text_arr[t]?.[0];return typeof i=="string"?i:null},O=(n,t)=>kt(n,t)??"",Y=(n,t)=>C(n.krama_text_arr,n.krama_text_arr_index,t,{accessor:(i,_)=>i[_][0]}),gt=()=>{let n=[];function t(r){r&&n.push(r)}function i(r){for(const o of r)t(o)}function _(){return n.at(-1)}function c(){return _()?.at(-1)}function l(){const r=_();if(!r)return;const o=r.at(-1),s=r.slice(0,-1);return s?n[n.length-1]=s:n.pop(),o}function e(r,o){n.splice(-r,r,...o.filter(Boolean))}function a(r,o){const s=l();if(!s){i(r),i(o);return}i(r),t(s),i(o)}function h(r){const o=n.at(r);return o?{cp:r,ch:o,width:o.length}:null}function p(r,o){r<0&&(r=n.length+r),!(r<0||r>=n.length)&&(n[r]=o)}return{emit:t,emitPieces:i,lastPiece:_,lastChar:c,popLastChar:l,rewriteTailPieces:e,withLastCharMovedAfter:a,toString:()=>n.join(""),rewriteAt:p,peekAt:h}},vt=n=>{let t=[];function i(){t=[]}function _(){return t.length}function c(s){return t.at(s)}function l(){return t.at(-1)}function e(){return l()?.[0]}function a(){return l()?.[1]?.type}function h(s){return c(s)?.[1]?.type}function p(s){return c(s)?.[0]}function r(s){return a()===s}function o(s){const f=s[0];f!==void 0&&f.length>0&&t.push(s),t.length>n&&t.shift()}return{clear:i,length:_,at:c,last:l,lastText:e,lastType:a,typeAt:h,textAt:p,isLastType:r,push:o}},At=n=>{let t=0;function i(a){const h=n.codePointAt(a);if(h===void 0)return null;const p=String.fromCodePoint(h);return{cp:h,ch:p,width:p.length}}function _(){return i(t)}function c(a){return i(t+a)}function l(a){t+=a}function e(a,h){return n.substring(a,h)}return{get pos(){return t},peek:_,peekAt:i,peekAtOffsetUnits:c,advance:l,slice:e}},nt=(n,t,i,_)=>{for(let c=0;c<i.length;c++){const l=i[i.length-1-c],e=n(t-c);if(e===null)return{matched:!1,matchedLen:0};const a=Y(_,e.ch);if(a===-1||a!==l)return{matched:!1,matchedLen:0}}return{matched:!0,matchedLen:i.length}},rt=(n,t)=>n.map(i=>O(t,i)).filter(Boolean),xt=["²","³","⁴"],P=n=>!!n&&xt.indexOf(n)!==-1,I=n=>n==="Tamil-Extended",z=(n,t,i,_)=>{if(t.length===0)return;if(!_){n.emitPieces(t);return}const c=t[0]??"";if(c[0]===i){const l=c.slice(1),e=[];l&&e.push(l);for(let a=1;a<t.length;a++)e.push(t[a]);n.withLastCharMovedAfter([i],e)}else n.withLastCharMovedAfter(t,[])},wt=[" ",`
|
|
2
|
+
`,"\r"," ",",",";","!","@","?","%"],Tt=3;function T(n,t,i,_){const{from_script_name:c,to_script_name:l,from_script_data:e,to_script_data:a,trans_options:h,result:p,prev_context:r,BRAHMIC_HALANT:o,BRAHMIC_NUQTA:s,typing_mode:f}=n;let d=!1;if((s&&r.typeAt(-3)==="vyanjana"&&r.textAt(-2)===s&&r.typeAt(-1)==="mAtrA"||r.typeAt(-2)==="vyanjana"&&r.typeAt(-1)==="mAtrA")&&(!t||t[1]?.type==="anya")&&r.clear(),e.script_type==="brahmic"&&a.script_type==="other")t[0]!==o&&(!(I(c)&&t[0]&&t[0].length>0)||t[0].charAt(0)!==o)&&(!s||t[0]!==s)&&(r.typeAt(-1)==="vyanjana"||s&&r.typeAt(-2)==="vyanjana"&&r.textAt(-1)===s)&&(t[1]?.type!=="mAtrA"&&t[0]!==o||t[1]?.type==="anya"||t[1]===null||t[1]===void 0)&&p.emit(a.schwa_character);else if(e.script_type==="other"&&a.script_type==="brahmic")if(r.typeAt(-1)==="vyanjana"&&(t[1]?.type==="mAtrA"||t[1]?.type==="svara")){const Z=t[1].type==="svara"?O(a,t[1].mAtrA_krama_ref?.[0]??-1):t[0];I(l)&&P(p.lastChar())?z(p,[Z],a.halant,!0):z(p,[Z],a.halant,!1),d=!0}else r.typeAt(-1)==="vyanjana"&&!(t[0]===o||t[1]?.type==="mAtrA")&&(I(l)&&P(p.lastChar())?z(p,[o],a.halant,!0):(z(p,[o],a.halant,!1),l==="Sinhala"&&h["all_to_sinhala:use_conjuct_enabling_halant"]&&p.rewriteAt(-1,p.lastPiece()+"")));let b=!1;return f&&(i===void 0||i.length===0)&&!_&&(b=!0,t[1]?.type==="vyanjana"&&(b=!1),b&&r.clear()),(!f||!_&&!b)&&r.push(t),d}function pt(n,t,i){const{custom_rules:_,cursor:c,result:l,from_script_data:e,to_script_data:a}=n,h=t+i;for(let p=0;p<_.length;p++){if(_[p].use_replace===!0)continue;const r=_[p];if(r.type==="replace_prev_krama_keys"){if(r.check_in==="input"){const o=nt(c.peekAt,h,r.prev,e),s=c.peekAt(t);if(o.matched&&s!==null){const f=s.ch,d=Y(e,f);if(d!==-1&&r.following.indexOf(d)!==-1){const b=rt(r.replace_with,a);l.rewriteTailPieces(o.matchedLen,b)}}}else if(r.check_in==="output"){const o=l.lastPiece();if(!o)continue;const s=Y(a,o);if(s!==-1&&r.following.indexOf(s)!==-1){const f=nt(l.peekAt,-2,r.prev,a);if(f.matched){const d=rt(r.replace_with,a);l.rewriteTailPieces(f.matchedLen+1,[...d,o])}}}}else if(r.type==="direct_replace"){const o=r.check_in==="output"?a:e;for(const s of r.to_replace){const f=nt(l.peekAt,-1,s,o);if(!f.matched)continue;if(r.replace_text){l.rewriteTailPieces(f.matchedLen,[r.replace_text]);break}const d=rt(r.replace_with,o);l.rewriteTailPieces(f.matchedLen,d);break}}}}const ut=(n,t,i)=>{if(!i)return{};const _={};for(const[c,l]of Object.entries(i??{})){if(!l||!(c in J))continue;const e=J[c];(e.from_script_type!==void 0&&(e.from_script_type==="all"||e.from_script_type===n.script_type)||e.from_script_name!==void 0&&e.from_script_name.includes(n.script_name))&&(e.to_script_type!==void 0&&(e.to_script_type==="all"||e.to_script_type===t.script_type)||e.to_script_name!==void 0&&e.to_script_name.includes(t.script_name))&&(_[c]=!0)}return _},ht=(n,t)=>n.replace_with.map(i=>O(t,i)).join(""),ft=(n,t,i,_)=>{if(i.length===0)return n;for(const c of i)if(!(c.use_replace!==!0||c.check_in!==_)){if(c.type==="replace_prev_krama_keys"){const l=c.prev.map(e=>O(t,e)).join("");for(let e of c.following){const a=O(t,e);if(!a)continue;const h=ht(c,t)+a;n=n.replaceAll(l+a,h)}}else if(c.type==="direct_replace"){const l=c.to_replace.map(e=>e.map(a=>O(t,a)).join(""));for(let e of l)n=n.replaceAll(e,ht(c,t))}}return n},mt=async(n,t,i,_,c)=>{const l=c?.typing_mode??!1;if(l&&t!=="Normal")throw new Error("Typing mode is only supported with Normal script as the input");const e=await U(t),a=await U(i),h=ut(e,a,_),p=Object.keys(h).flatMap(K=>J[K].rules);n=ft(n,e,p,"input");const r=gt();let o=0;const s=At(n),f=vt(Tt),d=e.script_type==="brahmic"&&a.script_type==="other"||e.script_type==="other"&&a.script_type==="brahmic"||l&&t==="Normal"&&a.script_type==="other",b=e.script_type==="brahmic"&&a.script_type==="other"?e.nuqta??null:e.script_type==="other"&&a.script_type==="brahmic"?a.nuqta??null:null,Z=e.script_type==="brahmic"&&a.script_type==="other"?e.halant:e.script_type==="other"&&a.script_type==="brahmic"?a.halant:null,x={from_script_name:t,to_script_name:i,from_script_data:e,to_script_data:a,trans_options:h,custom_rules:p,cursor:s,result:r,prev_context:f,BRAHMIC_NUQTA:b,BRAHMIC_HALANT:Z,typing_mode:l};let y=-1;for(;s.pos<n.length;){o=s.pos;const K=s.peek();if(!K)break;const ot=K.ch,$=K.width,yt=$===2?1:$;if(y!==-1&&o>=y){y=-1,s.advance($);continue}if(wt.indexOf(ot)!==-1){s.advance($),d&&(T(x,[" ",null]),f.clear()),r.emit(ot);continue}let R=-1;{let S=0,H=-1;const j=d&&e.script_type==="other"&&a.script_type==="brahmic"&&(f.typeAt(-1)==="vyanjana"||b&&f.typeAt(-2)==="vyanjana"&&f.textAt(-1)===b);for(;;){const tt=s.peekAt(o+yt+S),E=tt?.ch??"";y!==-1&&E&&P(E)&&(S+=tt?.width??0);const m=o+yt+S,w=y!==-1?s.slice(o,y)+(m>y?s.slice(y+1,m):""):s.slice(o,m),k=et(e.text_to_krama_map,w,{accessor:(g,L)=>g[L][0]});if(k===-1){R=-1;break}const D=e.text_to_krama_map[k];if(j&&D[1].krama&&D[1].krama.length>=1){const g=D[1].krama,L=g[0],N=a.krama_text_arr[L]?.[1],_t=a.list[N??-1]?.type;if(g.length===1&&N!==null&&N!==void 0&&(_t==="svara"||_t==="mAtrA"))H=k;else if(H!==-1){R=H;break}}if(D[1].next&&D[1].next.length>0){const g=s.peekAt(m),L=g?.ch;if(I(t)&&e.script_type==="brahmic"){const F=g?s.peekAt(m+g.width):null,N=F?.ch,W=(g&&F?s.peekAt(m+g.width+F.width):null)?.ch;if(y===-1&&N!==void 0&&P(N)&&D[1].next.indexOf(N)!==-1){const Q=et(e.text_to_krama_map,w+N,{accessor:(M,v)=>M[v][0]}),V=C(e.krama_text_arr,e.krama_text_arr_index,L??"",{accessor:(M,v)=>M[v][0]});if(Q!==-1&&V!==-1){R=Q;const M=e.krama_text_arr[V],v=e.list[M[1]??-1]?.type;if(L===e.halant||v==="mAtrA"){y=m+(g?.width??0);break}}}else if(y===-1&&W!==void 0&&P(W)&&D[1].next.indexOf(W)!==-1){const Q=et(e.text_to_krama_map,w+W,{accessor:(v,G)=>v[G][0]}),V=C(e.krama_text_arr,e.krama_text_arr_index,L??"",{accessor:(v,G)=>v[G][0]}),M=C(e.krama_text_arr,e.krama_text_arr_index,N??"",{accessor:(v,G)=>v[G][0]});if(Q!==-1&&V!==-1&&M!==-1){const v=e.krama_text_arr[V],G=e.krama_text_arr[M];R=Q;const Dt=e.list[v[1]??-1]?.type,Mt=e.list[G[1]??-1]?.type;if(Dt==="mAtrA"&&Mt==="mAtrA"){y=m+(g?.width??0)+(F?.width??0);break}}}}if(L!==void 0&&D[1].next.indexOf(L)!==-1){S+=g?.width??0;continue}}R=k;break}}const u=R!==-1?e.text_to_krama_map[R]:null;if(u!==null){const S=y!==-1&&u[0].length>1&&e.list[e.krama_text_arr[u[1].krama?.[0]??-1]?.[1]??-1]?.type==="vyanjana"&&P(u[0].at(-1)??void 0)?1:0,H=u[0].length-S;if(s.advance(H),o=s.pos,u[1].krama!==null&&u[1].krama!==void 0&&u[1].krama.some(j=>j!==-1)){const j=u[1].krama.map(m=>O(a,m)),tt=j.join("");let E=!1;if(d)if(e.script_type==="brahmic"&&a.script_type==="other"){let m=null;if(u[1].fallback_list_ref!==void 0&&u[1].fallback_list_ref!==null)m=e.list[u[1].fallback_list_ref];else if(!u[1].krama||u[1].krama.length===0)m=null;else{const w=u[1].krama.map(k=>e.list[e.krama_text_arr[k][1]??-1]);I(t)&&w.some(k=>k?.type==="mAtrA")&&w.some(k=>k?.type==="vyanjana")?m={...w[0],type:"anya"}:I(t)&&w.length>1&&w.some(k=>k==null)?m=w.at(-1):m=w[0]}E=T(x,[u[0],m])}else if(a.script_type==="brahmic"&&e.script_type==="other"){let m=null;u[1].fallback_list_ref!==void 0&&u[1].fallback_list_ref!==null?m=a.list[u[1].fallback_list_ref]:m=u[1].krama&&u[1].krama.length>0?a.list[a.krama_text_arr[u[1].krama[0]]?.[1]??-1]??null:null,l&&t==="Normal"?E=T(x,[u[0],m],u[1].next??void 0):E=T(x,[u[0],m])}else l&&t==="Normal"&&a.script_type==="other"&&(E=T(x,[u[0],null],u[1].next??void 0));E||(a.script_type==="brahmic"&&I(i)&&(a.list[u[1].krama?.at(-1)??-1]?.type==="mAtrA"||tt===a.halant)&&P(r.lastChar())?z(r,j,a.halant,!0):r.emitPieces(j)),pt(x,o,-H);continue}else if(u[1].krama!==null&&u[1].krama!==void 0&&u[1].krama.some(j=>j===-1)){r.emit(u[0]),l&&T(x,[u[0],null],u[1].next??void 0);continue}}else s.advance($),o=s.pos;const X=u===null?ot:u[0],q=Y(e,X);if(q===-1){d&&(T(x,[X,null]),f.clear()),r.emit(X);continue}let st=!1;if(d&&(e.script_type==="brahmic"?st=T(x,[X,e.list[e.krama_text_arr[q][1]??-1]]):a.script_type==="brahmic"&&(st=T(x,[X,a.list[a.krama_text_arr[q][1]??-1]]))),!st){const S=O(a,q);a.script_type==="brahmic"&&I(i)&&(a.list[a.krama_text_arr[q][1]??-1]?.type==="mAtrA"||S===a.halant)&&P(r.lastChar())?z(r,[S],a.halant,!0):r.emit(S)}pt(x,o,-$)}d&&T(x,[void 0,null],void 0,!0);let lt=r.toString();return lt=ft(lt,a,p,"output"),{output:lt,context_length:f.length()}},bt={script_list:{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},lang_list:{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}},{script_list:St,lang_list:jt}=bt,it=Object.keys(St),ct=Object.keys(jt),Lt=Array.from(new Set([...ct,...it])),Nt={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"},dt={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 Ct(n){return n.toLowerCase().replace(/(^|-)([a-z])/g,(t,i,_)=>i+_.toUpperCase())}const B=n=>{const t=Ct(n);return it.includes(t)?t:ct.includes(t)?Nt[t]:n.toLocaleLowerCase()in dt?dt[n.toLocaleLowerCase()]:null},Ot=async n=>{const t=B(n);if(!t)throw new Error(`Invalid script name: ${n}`);return await U(t)};async function Pt(n,t,i,_){const c=B(t);if(!c)throw new Error(`Invalid script name: ${t}`);const l=B(i);if(!l)throw new Error(`Invalid script name: ${i}`);return c===l?n:(await mt(n,c,l,_)).output}async function It(n,t){const i=B(n);if(!i)throw new Error(`Invalid script name: ${n}`);const _=B(t);if(!_)throw new Error(`Invalid script name: ${t}`);const c=await U(i),l=await U(_);return Object.keys(ut(c,l,Object.fromEntries(Object.keys(J).map(e=>[e,!0]))))}async function Et(n,t){const i=B(t);if(!i)throw new Error(`Invalid script name: ${t}`);let _="",c="",l="";for(let e=0;e<n.length;e++){c+=n[e];const{context_length:a,output:h}=await mt(c,"Normal",i,{},{typing_mode:!0});a>0?l=h:a===0&&(c="",l="",_+=h)}return l.length>0&&(_+=l),_}A.ALL_LANG_SCRIPT_LIST=Lt,A.LANG_LIST=ct,A.SCRIPT_LIST=it,A.emulateTyping=Et,A.getAllOptions=It,A.preloadScriptData=Ot,A.transliterate=Pt,Object.defineProperty(A,Symbol.toStringTag,{value:"Module"})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lipilekhika",
|
|
3
|
-
"version": "0.0.0-alpha.
|
|
3
|
+
"version": "0.0.0-alpha.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "https://github.com/shubhattin/lipilekhika/tree/main/packages/js",
|
|
@@ -8,11 +8,17 @@
|
|
|
8
8
|
"main": "./dist/cjs/index.cjs",
|
|
9
9
|
"module": "./dist/esm/index.mjs",
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
|
+
"unpkg": "./dist/lipilekhika.umd.js",
|
|
12
|
+
"jsdelivr": "./dist/lipilekhika.umd.js",
|
|
13
|
+
"browser": "./dist/lipilekhika.umd.js",
|
|
11
14
|
"exports": {
|
|
12
15
|
".": {
|
|
13
16
|
"types": "./dist/index.d.ts",
|
|
14
17
|
"import": "./dist/esm/index.mjs",
|
|
15
18
|
"require": "./dist/cjs/index.cjs"
|
|
19
|
+
},
|
|
20
|
+
"./umd": {
|
|
21
|
+
"default": "./dist/lipilekhika.umd.js"
|
|
16
22
|
}
|
|
17
23
|
},
|
|
18
24
|
"files": [
|
|
@@ -26,7 +32,8 @@
|
|
|
26
32
|
"test:ui": "vitest --ui",
|
|
27
33
|
"coverage": "vitest run --coverage",
|
|
28
34
|
"format": "prettier --write .",
|
|
29
|
-
"make-script-data": "bun src/make_script_data/make_output_script_data.ts"
|
|
35
|
+
"make-script-data": "bun src/make_script_data/make_output_script_data.ts",
|
|
36
|
+
"publish:cli": "bun run build && npm publish"
|
|
30
37
|
},
|
|
31
38
|
"devDependencies": {
|
|
32
39
|
"@microsoft/api-extractor": "^7.55.2",
|