UNPKG

@visulima/string

Version:

Functions for manipulating strings.

2 lines (1 loc) 11.1 kB
"use strict";var Y=Object.defineProperty;var w=(i,t)=>Y(i,"name",{value:t,configurable:!0});Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("./packem_shared/constants-DEcMFLn8.cjs");var q=Object.defineProperty,p=w((i,t)=>q(i,"name",{value:t,configurable:!0}),"E");function T(i){return i===161||i===164||i===167||i===168||i===170||i===173||i===174||i>=176&&i<=180||i>=182&&i<=186||i>=188&&i<=191||i===198||i===208||i===215||i===216||i>=222&&i<=225||i===230||i>=232&&i<=234||i===236||i===237||i===240||i===242||i===243||i>=247&&i<=250||i===252||i===254||i===257||i===273||i===275||i===283||i===294||i===295||i===299||i>=305&&i<=307||i===312||i>=319&&i<=322||i===324||i>=328&&i<=331||i===333||i===338||i===339||i===358||i===359||i===363||i===462||i===464||i===466||i===468||i===470||i===472||i===474||i===476||i===593||i===609||i===708||i===711||i>=713&&i<=715||i===717||i===720||i>=728&&i<=731||i===733||i===735||i>=768&&i<=879||i>=913&&i<=929||i>=931&&i<=937||i>=945&&i<=961||i>=963&&i<=969||i===1025||i>=1040&&i<=1103||i===1105||i===8208||i>=8211&&i<=8214||i===8216||i===8217||i===8220||i===8221||i>=8224&&i<=8226||i>=8228&&i<=8231||i===8240||i===8242||i===8243||i===8245||i===8251||i===8254||i===8308||i===8319||i>=8321&&i<=8324||i===8364||i===8451||i===8453||i===8457||i===8467||i===8470||i===8481||i===8482||i===8486||i===8491||i===8531||i===8532||i>=8539&&i<=8542||i>=8544&&i<=8555||i>=8560&&i<=8569||i===8585||i>=8592&&i<=8601||i===8632||i===8633||i===8658||i===8660||i===8679||i===8704||i===8706||i===8707||i===8711||i===8712||i===8715||i===8719||i===8721||i===8725||i===8730||i>=8733&&i<=8736||i===8739||i===8741||i>=8743&&i<=8748||i===8750||i>=8756&&i<=8759||i===8764||i===8765||i===8776||i===8780||i===8786||i===8800||i===8801||i>=8804&&i<=8807||i===8810||i===8811||i===8814||i===8815||i===8834||i===8835||i===8838||i===8839||i===8853||i===8857||i===8869||i===8895||i===8978||i>=9312&&i<=9449||i>=9451&&i<=9547||i>=9552&&i<=9587||i>=9600&&i<=9615||i>=9618&&i<=9621||i===9632||i===9633||i>=9635&&i<=9641||i===9650||i===9651||i===9654||i===9655||i===9660||i===9661||i===9664||i===9665||i>=9670&&i<=9672||i===9675||i>=9678&&i<=9681||i>=9698&&i<=9701||i===9711||i===9733||i===9734||i===9737||i===9742||i===9743||i===9756||i===9758||i===9792||i===9794||i===9824||i===9825||i>=9827&&i<=9829||i>=9831&&i<=9834||i===9836||i===9837||i===9839||i===9886||i===9887||i===9919||i>=9926&&i<=9933||i>=9935&&i<=9939||i>=9941&&i<=9953||i===9955||i===9960||i===9961||i>=9963&&i<=9969||i===9972||i>=9974&&i<=9977||i===9979||i===9980||i===9982||i===9983||i===10045||i>=10102&&i<=10111||i>=11094&&i<=11097||i>=12872&&i<=12879||i>=57344&&i<=63743||i>=65024&&i<=65039||i===65533||i>=127232&&i<=127242||i>=127248&&i<=127277||i>=127280&&i<=127337||i>=127344&&i<=127373||i===127375||i===127376||i>=127387&&i<=127404||i>=917760&&i<=917999||i>=983040&&i<=1048573||i>=1048576&&i<=1114109}w(T,"A");p(T,"isAmbiguous");function I(i){return i===12288||i>=65281&&i<=65376||i>=65504&&i<=65510}w(I,"B");p(I,"isFullWidth");function x(i){return i>=4352&&i<=4447||i===8986||i===8987||i===9001||i===9002||i>=9193&&i<=9196||i===9200||i===9203||i===9725||i===9726||i===9748||i===9749||i>=9776&&i<=9783||i>=9800&&i<=9811||i===9855||i>=9866&&i<=9871||i===9875||i===9889||i===9898||i===9899||i===9917||i===9918||i===9924||i===9925||i===9934||i===9940||i===9962||i===9970||i===9971||i===9973||i===9978||i===9981||i===9989||i===9994||i===9995||i===10024||i===10060||i===10062||i>=10067&&i<=10069||i===10071||i>=10133&&i<=10135||i===10160||i===10175||i===11035||i===11036||i===11088||i===11093||i>=11904&&i<=11929||i>=11931&&i<=12019||i>=12032&&i<=12245||i>=12272&&i<=12287||i>=12289&&i<=12350||i>=12353&&i<=12438||i>=12441&&i<=12543||i>=12549&&i<=12591||i>=12593&&i<=12686||i>=12688&&i<=12773||i>=12783&&i<=12830||i>=12832&&i<=12871||i>=12880&&i<=42124||i>=42128&&i<=42182||i>=43360&&i<=43388||i>=44032&&i<=55203||i>=63744&&i<=64255||i>=65040&&i<=65049||i>=65072&&i<=65106||i>=65108&&i<=65126||i>=65128&&i<=65131||i>=94176&&i<=94180||i===94192||i===94193||i>=94208&&i<=100343||i>=100352&&i<=101589||i>=101631&&i<=101640||i>=110576&&i<=110579||i>=110581&&i<=110587||i===110589||i===110590||i>=110592&&i<=110882||i===110898||i>=110928&&i<=110930||i===110933||i>=110948&&i<=110951||i>=110960&&i<=111355||i>=119552&&i<=119638||i>=119648&&i<=119670||i===126980||i===127183||i===127374||i>=127377&&i<=127386||i>=127488&&i<=127490||i>=127504&&i<=127547||i>=127552&&i<=127560||i===127568||i===127569||i>=127584&&i<=127589||i>=127744&&i<=127776||i>=127789&&i<=127797||i>=127799&&i<=127868||i>=127870&&i<=127891||i>=127904&&i<=127946||i>=127951&&i<=127955||i>=127968&&i<=127984||i===127988||i>=127992&&i<=128062||i===128064||i>=128066&&i<=128252||i>=128255&&i<=128317||i>=128331&&i<=128334||i>=128336&&i<=128359||i===128378||i===128405||i===128406||i===128420||i>=128507&&i<=128591||i>=128640&&i<=128709||i===128716||i>=128720&&i<=128722||i>=128725&&i<=128727||i>=128732&&i<=128735||i===128747||i===128748||i>=128756&&i<=128764||i>=128992&&i<=129003||i===129008||i>=129292&&i<=129338||i>=129340&&i<=129349||i>=129351&&i<=129535||i>=129648&&i<=129660||i>=129664&&i<=129673||i>=129679&&i<=129734||i>=129742&&i<=129756||i>=129759&&i<=129769||i>=129776&&i<=129784||i>=131072&&i<=196605||i>=196608&&i<=262141}w(x,"C");p(x,"isWide");function _(i){return T(i)?"ambiguous":I(i)?"fullwidth":i===8361||i>=65377&&i<=65470||i>=65474&&i<=65479||i>=65482&&i<=65487||i>=65490&&i<=65495||i>=65498&&i<=65500||i>=65512&&i<=65518?"halfwidth":i>=32&&i<=126||i===162||i===163||i===165||i===166||i===172||i===175||i>=10214&&i<=10221||i===10629||i===10630?"narrow":x(i)?"wide":"neutral"}w(_,"t$1");p(_,"getCategory");var D=Object.defineProperty,k=w((i,t)=>D(i,"name",{value:t,configurable:!0}),"t");function v(i){if(!Number.isSafeInteger(i))throw new TypeError(`Expected a code point, got \`${typeof i}\`.`)}w(v,"a");k(v,"validate");function C(i){return v(i),_(i)}w(C,"eastAsianWidthType");k(C,"eastAsianWidthType");function L(i,{ambiguousAsWide:t=!1}={}){return v(i),I(i)||x(i)||t&&T(i)?2:1}w(L,"eastAsianWidth");k(L,"eastAsianWidth");k(i=>!(I(i)||x(i)),"_isNarrowWidth");var R=Object.defineProperty,M=w((i,t)=>R(i,"name",{value:t,configurable:!0}),"b");const P=new Map,g=/(?:[\u0020-\u007E\u00A0-\u00FF](?!\uFE0F)){1,1000}/y,W=M(i=>i>=32&&i<=126?"latin":i===8203||i===8204||i===8205||i===8288?"zero":i<=31||i>=127&&i<=159?"control":i>=160&&i<=255||i>=9472&&i<=9599?"latin":i>=4352&&i<=4607||i>=11904&&i<=40959||i>=44032&&i<=55215||i>=63744&&i<=64255||i>=65280&&i<=65519&&!(i>=65377&&i<=65439)||i>=12352&&i<=12543?"wide":i===8230?"latin":"other","getCharType"),G=M((i,t)=>{const e=Math.floor(i/65536),l=i%65536;let h=P.get(e);if(h||(h=new Map,P.set(e,h)),h.has(l))return h.get(l);let c;if(W(i)==="latin")c=t.width.regular;else if(W(i)==="control")c=t.width.control;else if(W(i)==="wide")c=t.width.wide;else switch(C(i)){case"ambiguous":{c=t.width.ambiguousIsNarrow?t.width.regular:t.width.wide;break}case"fullwidth":{c=t.width.fullWidth;break}case"wide":{c=t.width.wide;break}default:c=t.width.regular}return h.set(l,c),c},"getCachedCharWidth"),H=M(i=>i>=768&&i<=879||i>=6832&&i<=6911||i>=7616&&i<=7679||i>=8400&&i<=8447||i>=65056&&i<=65071||i>=917760&&i<=917999||i>=65024&&i<=65039||i>=3633&&i<=3642||i>=3655&&i<=3662||i>=3761&&i<=3769||i>=3771&&i<=3772||i>=3784&&i<=3789||i>=2304&&i<=2307||i>=2362&&i<=2383||i>=2385&&i<=2391||i>=2402&&i<=2403||i>=2433&&i<=2435||i>=2492&&i<=2500||i>=2509&&i<=2509||i>=2561&&i<=2563||i>=2620&&i<=2637||i>=1611&&i<=1631||i>=1648&&i<=1648||i>=1750&&i<=1773||i>=2276&&i<=2302||i>=1425&&i<=1469||i>=1471&&i<=1471||i>=1473&&i<=1474||i>=1476&&i<=1477||i>=1479&&i<=1479||i>=3893&&i<=3893||i>=3895&&i<=3895||i>=3897&&i<=3897||i>=3953&&i<=3966||i>=3968&&i<=3972||i>=3974&&i<=3975?!0:i>=768&&i<=777||i>=803&&i<=803,"isCombiningCharacter"),E=M((i,t={})=>{if(!i||i.length===0)return{ellipsed:!1,index:0,truncated:!1,width:0};const e={truncation:{countAnsiEscapeCodes:t.countAnsiEscapeCodes??!1,ellipsis:t.ellipsis??"",ellipsisWidth:t.ellipsisWidth??(t.ellipsis?E(t.ellipsis,{...t,ellipsis:"",ellipsisWidth:0,limit:Number.POSITIVE_INFINITY}).width:0),limit:t.limit??Number.POSITIVE_INFINITY},width:{ambiguousIsNarrow:t.ambiguousIsNarrow??!1,ansi:t.ansiWidth??0,control:t.controlWidth??0,emoji:t.emojiWidth??2,fullWidth:t.fullWidth??2,halfWidth:t.halfWidth??1,regular:t.regularWidth??1,tab:t.tabWidth??8,wide:t.wideWidth??2}},l=Math.max(0,e.truncation.limit-e.truncation.ellipsisWidth),{length:h}=i,c=h>1e4;let a=0,n=0,r=h,s=!1;const B=i.includes("\x1B")||i.includes("›");for(;a<h;){if(B&&(i[a]==="\x1B"||i[a]==="›")){if(i.startsWith("\x1B]8;;",a)){const u="\x07",m=`\x1B]8;;${u}`,$=m.length,N=i.indexOf(u,a+5);if(N!==-1){const A=i.indexOf(m,N+1);if(A!==-1){const z=A+$,V=i.slice(N+1,A).replace(o.c,""),S=E(V,{ambiguousIsNarrow:e.width.ambiguousIsNarrow,ansiWidth:e.width.ansi,controlWidth:e.width.control,countAnsiEscapeCodes:!1,ellipsis:e.truncation.ellipsis,ellipsisWidth:e.truncation.ellipsisWidth,emojiWidth:e.width.emoji,fullWidth:e.width.fullWidth,halfWidth:e.width.halfWidth,limit:Math.max(0,l-n),regularWidth:e.width.regular,tabWidth:e.width.tab,wideWidth:e.width.wide}),j=S.width;if(S.truncated)s=!0,r=Math.min(r,a);else if(n+j>l&&(r=Math.min(r,a),s=!0,n+j>e.truncation.limit))break;if(n+=j,a=z,s&&n>=e.truncation.limit)break;continue}}}if(o.c.lastIndex=a,o.c.test(i)){const u=o.c.lastIndex-a,m=e.truncation.countAnsiEscapeCodes?u:e.width.ansi;if(n+m>l&&(r=Math.min(r,a),n+m>e.truncation.limit)){s=!0;break}n+=m,a=o.c.lastIndex;continue}}const f=i.codePointAt(a);if(f===8203||f===65279||f>=8288&&f<=8292){a+=1;continue}if(f===9){if(n+e.width.tab>l&&(r=Math.min(r,a),n+e.width.tab>e.truncation.limit)){s=!0;break}n+=e.width.tab,a+=1;continue}if(g.lastIndex=a,g.test(i)){const u=(g.lastIndex-a)*e.width.regular;if(n+u>l){const m=Math.floor((l-n)/e.width.regular);if(r=Math.min(r,a+m),n+u>e.truncation.limit){s=!0;break}}n+=u,a=g.lastIndex;continue}if((f<=31||f>=127&&f<=159)&&(o.N.lastIndex=a,o.N.test(i))){const u=(o.N.lastIndex-a)*e.width.control;if(n+u>l&&(r=Math.min(r,a+Math.floor((l-n)/e.width.control)),n+u>e.truncation.limit)){s=!0;break}n+=u,a=o.N.lastIndex;continue}if(o.j.lastIndex=a,o.j.test(i)){if(n+e.width.emoji>l&&(r=Math.min(r,a),n+e.width.emoji>e.truncation.limit)){s=!0;break}n+=e.width.emoji,a=o.j.lastIndex;continue}const b=i.codePointAt(a)??0;if(H(b)){a+=b>65535?2:1;continue}let d;if(c)d=G(b,e);else switch(W(b)){case"control":{d=e.width.control;break}case"latin":{d=e.width.regular;break}case"wide":{d=e.width.wide;break}case"zero":{d=0;break}default:switch(C(b)){case"ambiguous":{d=e.width.ambiguousIsNarrow?e.width.regular:e.width.wide;break}case"fullwidth":{d=e.width.fullWidth;break}case"wide":{d=e.width.wide;break}default:d=e.width.regular}}if(n+d>l&&(r=Math.min(r,a),n+d>e.truncation.limit)){s=!0;break}n+=d,a+=b>65535?2:1}let y=n,O=!1;return s&&e.truncation.limit>=e.truncation.ellipsisWidth&&(y=e.truncation.limit,O=!0),{ellipsed:O,index:s?r:h,truncated:s,width:y}},"getStringTruncatedWidth");exports.getStringTruncatedWidth=E;