@visulima/string
Version:
Functions for manipulating strings.
2 lines (1 loc) • 8.59 kB
JavaScript
var z=Object.defineProperty;var d=(e,s)=>z(e,"name",{value:s,configurable:!0});import{createRequire as q}from"node:module";import{j as I,s as $,k as V,R as T,l as U,m as C,n as W,o as Z,p as Q,q as N,r as X,t as v,u as S,v as M,w as ee,x as te,y as se,z as ae,A as ne,B as re,C as oe,D as le,E as ie,F as ce,G as pe,H as fe,I as he,J as ue,K as ge,L as Ae,M as O}from"../packem_shared/constants-CDcaCZKC.js";import Ee from"../packem_shared/LRUCache-Bjo6gsbC.js";const F=q(import.meta.url),k=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,J=d(e=>{if(typeof k<"u"&&k.versions&&k.versions.node){const[s,p]=k.versions.node.split(".").map(Number);if(s>22||s===22&&p>=3||s===20&&p>=16)return k.getBuiltinModule(e)}return F(e)},"__cjs_getBuiltinModule"),{stripVTControlCharacters:Y}=J("node:util");var Re=Object.defineProperty,_e=d((e,s)=>Re(e,"name",{value:s,configurable:!0}),"g");const y=new Ee(1e3),Ce=_e(e=>{const s=e.join("");if(y.has(s))return y.get(s);const p=e.map(R=>R.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`)).join("|"),u=new RegExp(p,"g");return y.set(s,u),u},"getSeparatorsRegex");var Le=Object.defineProperty,me=d((e,s)=>Le(e,"name",{value:s,configurable:!0}),"t");const Ue=me(e=>{const s=[];let p=0,u;for(I.lastIndex=0;(u=I.exec(e))!==null;)u.index>p&&s.push(e.slice(p,u.index)),s.push(u[0]),p=I.lastIndex;return p<e.length&&s.push(e.slice(p)),s.filter(Boolean)},"splitByEmoji");var de=Object.defineProperty,g=d((e,s)=>de(e,"name",{value:s,configurable:!0}),"u");const G=new Uint8Array(128),K=new Uint8Array(128),P=new Uint8Array(128);for(let e=0;e<128;e++)G[e]=e>=65&&e<=90?1:0,K[e]=e>=97&&e<=122?1:0,P[e]=e>=48&&e<=57?1:0;const w=g(e=>G[e],"isUpper"),x=g(e=>K[e],"isLower"),B=g(e=>P[e],"isDigit"),m=g((e,s,p,u,R)=>{if(e.length===0)return[];let c=!1;for(const r of Object.values(s))if(r(e[0])){c=!0;break}if(!c&&!p)return[e];const A=[...e],h=[];let _=A[0],t="other";for(const[r,a]of Object.entries(s))if(a(A[0])){t=r;break}let o=p&&u?A[0]===A[0].toLocaleUpperCase(u):!1;for(let r=1;r<A.length;r++){const a=A[r];let l="other";for(const[f,E]of Object.entries(s))if(E(a)){l=f;break}const i=p&&u?a===a.toLocaleUpperCase(u):!1;let n=!1;R?n=R(t,l,o,i,a,r,A):(t!==l&&t!=="other"&&l!=="other"&&(n=!0),p&&l!=="other"&&!o&&i&&(n=!0)),n?(h.push(_),_=a):_+=a,t=l,p&&(o=i)}return _&&_.length>0&&h.push(_),h.length>0?h:[e]},"handleScriptTransitions"),H=g((e,s=new Set)=>{if(e.length===0)return[];if(e.toUpperCase()===e)return[e];let p=0;const u=[],R=e.length;for(let c=1;c<R;c++){const A=e.codePointAt(c-1),h=e.codePointAt(c);if(s.size>0){for(const l of s)if(e.startsWith(l,p)){u.push(l),p+=l.length,c=p-1;break}if(c<p)continue}const _=A&&A<128&&w(A),t=h&&h<128&&w(h),o=A&&A<128&&x(A),r=A&&A<128&&B(A),a=h&&h<128&&B(h);if(o&&t){u.push(e.slice(p,c)),p=c;continue}if(r&&!a||!r&&a){u.push(e.slice(p,c)),p=c;continue}if(a&&!r){let l=!1,i=!1;if(c+1<R){const n=e.codePointAt(c+1);l=n&&n<128&&w(n),i=n&&n<128&&B(n)}if(!i&&l){u.push(e.slice(p,c),e.slice(c,c+1)),p=c+1;continue}}if(c+1<R){const l=e.codePointAt(c+1),i=l&&l<128&&x(l);if(_&&t&&i){const n=e.slice(p,c+1);s.has(n)||(u.push(e.slice(p,c)),p=c)}}}return p<R&&u.push(e.slice(p)),u.filter(c=>c!=="")},"splitCamelCaseFast"),D=g((e,s,p)=>{if(e.length===0)return[];const u=e===e.toLocaleUpperCase(s);if(s.startsWith("de")){if(!u&&e.replaceAll("ß","SS")===e.toLocaleUpperCase(s))return[e];const t=[...e],o=t.length,r=[];let a=t[0],l=t[0]===t[0].toLocaleUpperCase(s),i=l,n=l?0:-1;for(let f=1;f<o;f++){const E=t[f],L=E===E.toLocaleUpperCase(s);if(L===l)a+=E;else if(L)a&&a.length>0&&(r.push(a),a=E),i=!0,n=f;else{if(i&&f-n>1){const j=t[f-1],b=a.slice(0,-1);b&&b.length>0&&r.push(b),a=j+E}else a+=E;i=!1,n=-1}l=L}return a&&a.length>0&&r.push(a),r}if(s.startsWith("uk")||s.startsWith("ru")||s.startsWith("bg")||s.startsWith("sr")||s.startsWith("mk")||s.startsWith("be")){if(!U.test(e)&&!C.test(e))return[e];const t=[...e],o=t.length,r=[];let a=t[0],l=U.test(t[0])?1:C.test(t[0])?2:0,i=t[0]===t[0].toLocaleUpperCase(s);for(let f=1;f<o;f++){const E=t[f],L=U.test(E)?1:C.test(E)?2:0,j=E===E.toLocaleUpperCase(s);l!==L&&(l===1||l===2)&&(L===1||L===2)||L===l&&!i&&j?(r.push(a),a=E):a+=E,l=L,i=j}a&&a.length>0&&r.push(a);const n=[];for(let f=0;f<r.length;f++)f<r.length-1&&r[f].length===1&&C.test(r[f])&&U.test(r[f+1][0])?(n.push(r[f]+r[f+1]),f+=1):n.push(r[f]);return n}if(s.startsWith("el")){if(!W.test(e)&&!C.test(e))return[e];const t=e.match(Z)??[e],o=[];if(t.length===1){const r=t[0];if(!r||!W.test(r[0])||r.length===1)return[r||e]}for(const r of t){if(!r)continue;if(!W.test(r[0])||r.length===1){o.push(r);continue}const a=r.length;let l=r[0],i=r[0]===r[0].toLocaleUpperCase(s);for(let n=1;n<a;n++){const f=r[n],E=f===f.toLocaleUpperCase(s);!i&&E?(o.push(l),l=f):l+=f,i=E}l&&o.push(l)}return o}if(s.startsWith("ja")||s.startsWith("ko")){const t=s.startsWith("ja"),o=t?{hiragana:g(a=>X.test(a),"hiragana"),kanji:g(a=>N.test(a),"kanji"),katakana:g(a=>Q.test(a),"katakana"),latin:g(a=>C.test(a),"latin")}:{hangul:g(a=>v.test(a),"hangul"),latin:g(a=>C.test(a),"latin")},r=new Set(["が","で","と","に","の","は","へ","も","や","を"]);if(t){const a=m(e,o,!1,s,(i,n)=>i==="hiragana"&&n==="katakana"||i==="katakana"&&n==="hiragana"||i==="hiragana"&&n==="latin"||i==="katakana"&&n==="latin"||i==="kanji"&&n==="latin"||i==="latin"&&(n==="hiragana"||n==="katakana"||n==="kanji")),l=[];for(const i of a)i.length===1&&r.has(i)&&l.length>0?l[l.length-1]+=i:l.push(i);return l.length>0?l:[e]}return m(e,o,!1,s,(a,l)=>a==="hangul"&&l==="latin"||a==="latin"&&l==="hangul")}if(s.startsWith("sl")){const t=[...e],o=t.length,r=[];let a=t[0],l=t[0]===t[0].toLocaleUpperCase(s);for(let i=1;i<o;i++){const n=t[i],f=n===n.toLocaleUpperCase(s),E=/[ČŠŽĐ]/i.test(n),L=i<o-1&&t[i+1]===t[i+1].toLocaleUpperCase(s);!l&&f||E&&L?(r.push(a),a=n,E&&L&&(r.push(a),a="")):a+=n,l=f}return a&&a.length>0&&r.push(a),r}if(s.startsWith("zh"))return m(e,{han:g(t=>N.test(t),"han"),latin:g(t=>C.test(t),"latin")},!1,s);if(["ar","fa","he","ur"].includes(s.split("-")[0])){const t=g(o=>S.test(o)||M.test(o),"isRtlChar");return m(e,{latin:g(o=>C.test(o),"latin"),rtl:g(o=>t(o),"rtl")},!1,s)}if(["am","bn","gu","hi","km","kn","lo","ml","mr","ne","or","pa","si","ta","te","th"].includes(s.split("-")[0])){const t=g(o=>ee.test(o)||te.test(o)||se.test(o)||ae.test(o)||ne.test(o)||re.test(o)||oe.test(o)||le.test(o)||ie.test(o)||ce.test(o)||pe.test(o)||fe.test(o)||he.test(o)||ue.test(o)||ge.test(o)||Ae.test(o),"isIndicChar");return m(e,{indic:g(o=>t(o),"indic"),latin:g(o=>C.test(o),"latin")},!1,s)}if(["be","bg","ru","sr","uk"].includes(s))return m(e,{cyrillic:g(t=>U.test(t),"cyrillic"),latin:g(t=>C.test(t),"latin")},!0,s);if(["ar","fa","he"].includes(s))return m(e,{latin:g(t=>C.test(t),"latin"),rtl:g(t=>S.test(t)||M.test(t),"rtl")},!1,s);if(s.startsWith("ko"))return m(e,{hangul:g(t=>v.test(t),"hangul"),latin:g(t=>C.test(t),"latin")},!1,s);if(s.startsWith("uz")){if(!U.test(e)&&!C.test(e))return[e];const t=[...e],o=t.length,r=[];let a=t[0],l=t[0]===t[0].toLocaleUpperCase(s);for(let i=1;i<o;i++){const n=t[i],f=n===n.toLocaleUpperCase(s);if(O.test(n)||O.test(t[i-1])){a+=n;continue}!l&&f?(r.push(a),a=n):a+=n,l=f}return a&&a.length>0&&r.push(a),r}const R=[...e],c=R.length,A=[];let h=R[0],_=R[0]===R[0].toLocaleUpperCase(s);for(const t of p)if(e.startsWith(t)){A.push(t),h=R[t.length],_=h===h.toLocaleUpperCase(s);break}for(let t=1;t<c;t++){const o=R[t],r=o===o.toLocaleUpperCase(s);let a=!1;for(const l of p)if(e.startsWith(l,t)){A.push(h,l),t+=l.length-1,h="",a=!0;break}a||(!_&&r?(A.push(h),h=o):h+=o,_=r)}return h&&A.push(h),A},"splitCamelCaseLocale"),ke=g((e,s,p)=>{const u=[],R=T.test(e)?e.split(T).filter(Boolean):[e];for(const c of R)if(T.test(c))u.push(c);else{const A=I.test(c)?Ue(c).filter(Boolean):[c];for(const h of A)if(I.test(h))u.push(h);else if(s){const _=s.toLowerCase().split("-")[0];u.push(...D(h,_,p))}else u.push(...H(h,p))}return u},"processTextWithAnsiEmoji"),We=g((e,s={})=>{if(!e||typeof e!="string")return[];const{handleAnsi:p=!1,handleEmoji:u=!1,knownAcronyms:R=[],locale:c,normalize:A=!1,separators:h,stripAnsi:_=!1,stripEmoji:t=!1}=s,o=new Set([...R].sort((n,f)=>f.length-n.length));let r=e;_&&(r=Y(r)),t&&(r=$(r));const a=Array.isArray(h)?Ce(h):h instanceof RegExp?h:V,l=r.split(a).filter(Boolean);let i=[];for(const n of l)p||u?i.push(...ke(n,c,o)):c?i.push(...D(n,c,o)):i.push(...H(n,o));return A&&(i=i.map(n=>o.has(n)?n:c&&n===n.toLocaleUpperCase(c)?n[0]+n.slice(1).toLocaleLowerCase(c):n.toUpperCase()===n&&!o.has(n)?n.slice(0,1)+n.slice(1).toLowerCase():n)),i},"splitByCase");export{We as splitByCase};