@visulima/string 2.0.1 → 2.0.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/CHANGELOG.md CHANGED
@@ -1,3 +1,29 @@
1
+ ## @visulima/string [2.0.3](https://github.com/visulima/visulima/compare/@visulima/string@2.0.2...@visulima/string@2.0.3) (2025-11-05)
2
+
3
+ ### Bug Fixes
4
+
5
+ * added new tests for handling Japanese text in word wrapping functionality. ([c4a7c00](https://github.com/visulima/visulima/commit/c4a7c00a5606e1ab80bdc22538e5a7ea6263250b))
6
+ * update dependencies across multiple packages ([36a47f2](https://github.com/visulima/visulima/commit/36a47f26d65d25a7b4d8371186710e7d0ab61a2b))
7
+
8
+ ### Miscellaneous Chores
9
+
10
+ * update dependencies across multiple packages ([c526462](https://github.com/visulima/visulima/commit/c52646260c2ae8bbf85692e642f305f47a158d4e))
11
+
12
+
13
+ ### Dependencies
14
+
15
+ * **@visulima/colorize:** upgraded to 1.4.26
16
+
17
+ ## @visulima/string [2.0.2](https://github.com/visulima/visulima/compare/@visulima/string@2.0.1...@visulima/string@2.0.2) (2025-10-22)
18
+
19
+ ### Bug Fixes
20
+
21
+ * **string/truncate:** don't replace single-character strings with the ellipsis ([#559](https://github.com/visulima/visulima/issues/559)) ([91f185d](https://github.com/visulima/visulima/commit/91f185d669240986da883035e59432050058272e))
22
+
23
+ ### Miscellaneous Chores
24
+
25
+ * update package dependencies and configurations ([7bfe7e7](https://github.com/visulima/visulima/commit/7bfe7e71869580900aab50efb064b4293994ed9a))
26
+
1
27
  ## @visulima/string [2.0.1](https://github.com/visulima/visulima/compare/@visulima/string@2.0.0...@visulima/string@2.0.1) (2025-10-21)
2
28
 
3
29
  ### Bug Fixes
@@ -23,7 +49,7 @@
23
49
  ### Bug Fixes
24
50
 
25
51
  * Adjusted the node engine requirement to support versions 20.19 and above ([7a2a2c0](https://github.com/visulima/visulima/commit/7a2a2c003a3627ee3052095b5624e6bf20db28d9))
26
- * update @visulima/packem to 2.0.0-alpha.30 across multiple packages for improved compatibility ([27b346e](https://github.com/visulima/visulima/commit/27b346eaa1c0fb0e420d9a9824482028307f4249))
52
+ * update @visulima/packem to 2.0.0-alpha.32 across multiple packages for improved compatibility ([27b346e](https://github.com/visulima/visulima/commit/27b346eaa1c0fb0e420d9a9824482028307f4249))
27
53
 
28
54
  ### Miscellaneous Chores
29
55
 
@@ -1 +1 @@
1
- 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};
1
+ var z=Object.defineProperty;var m=(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 L,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=m(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=m((e,s)=>Re(e,"name",{value:s,configurable:!0}),"g");const y=new Ee(1e3),Le=_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 Ce=Object.defineProperty,de=m((e,s)=>Ce(e,"name",{value:s,configurable:!0}),"t");const Ue=de(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 me=Object.defineProperty,g=m((e,s)=>me(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"),d=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],C=E===E.toLocaleUpperCase(s);if(C===l)a+=E;else if(C)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=C}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)&&!L.test(e))return[e];const t=[...e],o=t.length,r=[];let a=t[0],l=U.test(t[0])?1:L.test(t[0])?2:0,i=t[0]===t[0].toLocaleUpperCase(s);for(let f=1;f<o;f++){const E=t[f],C=U.test(E)?1:L.test(E)?2:0,j=E===E.toLocaleUpperCase(s);l!==C&&(l===1||l===2)&&(C===1||C===2)||C===l&&!i&&j?(r.push(a),a=E):a+=E,l=C,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&&L.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)&&!L.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=>L.test(a),"latin")}:{hangul:g(a=>v.test(a),"hangul"),latin:g(a=>L.test(a),"latin")},r=new Set(["が","で","と","に","の","は","へ","も","や","を"]);if(t){const a=d(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 d(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),C=i<o-1&&t[i+1]===t[i+1].toLocaleUpperCase(s);!l&&f||E&&C?(r.push(a),a=n,E&&C&&(r.push(a),a="")):a+=n,l=f}return a&&a.length>0&&r.push(a),r}if(s.startsWith("zh"))return d(e,{han:g(t=>N.test(t),"han"),latin:g(t=>L.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 d(e,{latin:g(o=>L.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 d(e,{indic:g(o=>t(o),"indic"),latin:g(o=>L.test(o),"latin")},!1,s)}if(["be","bg","ru","sr","uk"].includes(s))return d(e,{cyrillic:g(t=>U.test(t),"cyrillic"),latin:g(t=>L.test(t),"latin")},!0,s);if(["ar","fa","he"].includes(s))return d(e,{latin:g(t=>L.test(t),"latin"),rtl:g(t=>S.test(t)||M.test(t),"rtl")},!1,s);if(s.startsWith("ko"))return d(e,{hangul:g(t=>v.test(t),"hangul"),latin:g(t=>L.test(t),"latin")},!1,s);if(s.startsWith("uz")){if(!U.test(e)&&!L.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)?Le(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};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{alignText as t}from"./align-text.js";import{default as o}from"./case/camel-case.js";import{default as s}from"./case/capital-case.js";import{default as m}from"./case/constant-case.js";import{default as x}from"./case/dot-case.js";import{default as d}from"./case/flat-case.js";import{flipCase as u}from"./case/flip-case.js";import{default as C}from"./case/identify-case.js";import{kebabCase as S}from"./case/kebab-case.js";import{default as y}from"./case/lower-first.js";import{default as k}from"./case/no-case.js";import{default as b}from"./case/pascal-case.js";import{default as O}from"./case/pascal-snake-case.js";import{default as T}from"./case/path-case.js";import{default as B}from"./case/sentence-case.js";import{default as M}from"./case/snake-case.js";import{splitByCase as P}from"./case/split-by-case.js";import{default as v}from"./case/title-case.js";import{default as A}from"./case/train-case.js";import{default as G}from"./case/upper-first.js";import{default as I}from"./packem_shared/joinSegments-DTGeJBZG.js";import{closestString as K}from"./closest-string.js";import{compareSimilarity as Q}from"./compare-similarity.js";import{getStringTruncatedWidth as V}from"./get-string-truncated-width.js";import{getStringWidth as Y}from"./get-string-width.js";import{closest as _,distance as $}from"./packem_shared/closest-uarbVSbs.js";import{closestN as re}from"./packem_shared/closestN-DjNxwK0t.js";import{outdent as ae}from"./outdent.js";import{default as fe}from"./packem_shared/replaceString-DwIZyvoL.js";import{slice as pe}from"./slice.js";import{default as le}from"./slugify.js";import{default as ie}from"./packem_shared/transliterate-CxVHmZUa.js";import{truncate as ne}from"./truncate.js";import{escapeRegExp as ce,findStringOccurrences as Ce,hasChinese as ge,hasPunctuationOrSpace as Se,inRange as he}from"./utilities.js";import{wordSimilaritySort as We}from"./word-similarity-sort.js";import{WrapMode as we,wordWrap as be}from"./word-wrap.js";export{we as WrapMode,t as alignText,o as camelCase,s as capitalCase,_ as closest,re as closestN,K as closestString,Q as compareSimilarity,m as constantCase,$ as distance,x as dotCase,ce as escapeRegExp,Ce as findStringOccurrences,d as flatCase,u as flipCase,V as getStringTruncatedWidth,Y as getStringWidth,ge as hasChinese,Se as hasPunctuationOrSpace,C as identifyCase,he as inRange,I as joinSegments,S as kebabCase,y as lowerFirst,k as noCase,ae as outdent,b as pascalCase,O as pascalSnakeCase,T as pathCase,fe as replaceString,B as sentenceCase,pe as slice,le as slugify,M as snakeCase,P as splitByCase,v as titleCase,A as trainCase,ie as transliterate,ne as truncate,G as upperFirst,We as wordSimilaritySort,be as wordWrap};
1
+ import{alignText as t}from"./align-text.js";import{default as o}from"./case/camel-case.js";import{default as s}from"./case/capital-case.js";import{default as m}from"./case/constant-case.js";import{default as x}from"./case/dot-case.js";import{default as d}from"./case/flat-case.js";import{flipCase as u}from"./case/flip-case.js";import{default as C}from"./case/identify-case.js";import{kebabCase as S}from"./case/kebab-case.js";import{default as y}from"./case/lower-first.js";import{default as k}from"./case/no-case.js";import{default as b}from"./case/pascal-case.js";import{default as O}from"./case/pascal-snake-case.js";import{default as T}from"./case/path-case.js";import{default as B}from"./case/sentence-case.js";import{default as M}from"./case/snake-case.js";import{splitByCase as P}from"./case/split-by-case.js";import{default as v}from"./case/title-case.js";import{default as A}from"./case/train-case.js";import{default as G}from"./case/upper-first.js";import{default as I}from"./packem_shared/joinSegments-DTGeJBZG.js";import{closestString as K}from"./closest-string.js";import{compareSimilarity as Q}from"./compare-similarity.js";import{getStringTruncatedWidth as V}from"./get-string-truncated-width.js";import{getStringWidth as Y}from"./get-string-width.js";import{closestN as _}from"./packem_shared/closestN-DjNxwK0t.js";import{outdent as ee}from"./outdent.js";import{default as te}from"./packem_shared/replaceString-DwIZyvoL.js";import{slice as oe}from"./slice.js";import{default as se}from"./slugify.js";import{default as me}from"./packem_shared/transliterate-CxVHmZUa.js";import{truncate as xe}from"./truncate.js";import{escapeRegExp as de,findStringOccurrences as ne,hasChinese as ue,hasPunctuationOrSpace as ce,inRange as Ce}from"./utilities.js";import{wordSimilaritySort as Se}from"./word-similarity-sort.js";import{WrapMode as ye,wordWrap as We}from"./word-wrap.js";import{closest as we,distance as be}from"./packem_shared/closest-uarbVSbs.js";export{ye as WrapMode,t as alignText,o as camelCase,s as capitalCase,we as closest,_ as closestN,K as closestString,Q as compareSimilarity,m as constantCase,be as distance,x as dotCase,de as escapeRegExp,ne as findStringOccurrences,d as flatCase,u as flipCase,V as getStringTruncatedWidth,Y as getStringWidth,ue as hasChinese,ce as hasPunctuationOrSpace,C as identifyCase,Ce as inRange,I as joinSegments,S as kebabCase,y as lowerFirst,k as noCase,ee as outdent,b as pascalCase,O as pascalSnakeCase,T as pathCase,te as replaceString,B as sentenceCase,oe as slice,se as slugify,M as snakeCase,P as splitByCase,v as titleCase,A as trainCase,me as transliterate,xe as truncate,G as upperFirst,Se as wordSimilaritySort,We as wordWrap};
package/dist/outdent.js CHANGED
@@ -1 +1 @@
1
- var w=Object.defineProperty;var h=(e,n)=>w(e,"name",{value:n,configurable:!0});import{d as L,e as R,f as S,g as W,h as y,i as O}from"./packem_shared/constants-CDcaCZKC.js";var d=Object.defineProperty,g=h((e,n)=>d(e,"name",{value:n,configurable:!0}),"c");const x=Object.prototype.hasOwnProperty,A=g((e,n)=>x.call(e,n),"has"),T=g((e,n)=>{for(const r in n)A(n,r)&&(e[r]=n[r]);return e},"extend"),p=g((e,n,r)=>{if(e.length===0)return[];let t=0;const a=O.exec(e[0]);a&&(t=a[1].length);const i=`(\\r\\n|\\r|\\n).{0,${t}}`,c=new RegExp(i,"g");n&&(e=e.slice(1));const{newline:l,trimLeadingNewline:_,trimTrailingNewline:N}=r,o=typeof l=="string",E=e.length,f=Array.from({length:E});for(let u=0;u<E;u++){let s=e[u];s=s.replace(c,"$1"),u===0&&_&&(s=s.replace(S,"")),u===E-1&&N&&(s=s.replace(W,"")),o&&(s=s.replaceAll(y,l)),f[u]=s}return f},"internalOutdentArray"),b=g((e,n)=>{const r=Array.from({length:e.length+n.length});let t=0;const a=e.length;for(;t<a-1;t++)r[t*2]=e[t],r[t*2+1]=String(n[t]);return r[t*2]=e[t],r.join("")},"concatStringsAndValues"),v=g(e=>A(e,"raw")&&A(e,"length"),"isTemplateStringsArray"),H=new WeakMap,I=g(e=>{const n=e.cache!==!1,r=n?e.cacheStore??H:null,t=e.newline!==void 0;function a(i,...c){if(v(i)){const l=i,_=c.length;if(l.length===1&&l[0]==="")return"";if(_===0){if(n&&r&&!t){const f=r.get(l);if(f)return f[0]}const E=p(l,!1,e);return n&&r&&r.set(l,E),E[0]}const N=(c[0]===a||c[0]===m)&&L.test(l[0])&&R.test(l[1]);let o;return n&&r&&!t&&(o=r.get(l)),o||(o=p(l,N,e),n&&r&&r.set(l,o)),b(o,N?c.slice(1):c)}return I(T(T({},e),i))}return h(a,"g"),g(a,"outdent"),T(a,{string(i){return i===""||!i?"":p([i],!1,e)[0]}})},"createInstance"),m=I({cache:!0,newline:null,trimLeadingNewline:!0,trimTrailingNewline:!0}),C=m;export{C as outdent};
1
+ var L=Object.defineProperty;var h=(e,n)=>L(e,"name",{value:n,configurable:!0});import{d as R,e as S,f as m,g as W,h as y,i as O}from"./packem_shared/constants-CDcaCZKC.js";var d=Object.defineProperty,g=h((e,n)=>d(e,"name",{value:n,configurable:!0}),"c");const x=Object.prototype.hasOwnProperty,A=g((e,n)=>x.call(e,n),"has"),T=g((e,n)=>{for(const r in n)A(n,r)&&(e[r]=n[r]);return e},"extend"),p=g((e,n,r)=>{if(e.length===0)return[];let t=0;const a=O.exec(e[0]);a&&(t=a[1].length);const i=`(\\r\\n|\\r|\\n).{0,${t}}`,c=new RegExp(i,"g");n&&(e=e.slice(1));const{newline:l,trimLeadingNewline:_,trimTrailingNewline:N}=r,o=typeof l=="string",E=e.length,f=Array.from({length:E});for(let u=0;u<E;u++){let s=e[u];s=s.replace(c,"$1"),u===0&&_&&(s=s.replace(m,"")),u===E-1&&N&&(s=s.replace(W,"")),o&&(s=s.replaceAll(y,l)),f[u]=s}return f},"internalOutdentArray"),b=g((e,n)=>{const r=Array.from({length:e.length+n.length});let t=0;const a=e.length;for(;t<a-1;t++)r[t*2]=e[t],r[t*2+1]=String(n[t]);return r[t*2]=e[t],r.join("")},"concatStringsAndValues"),v=g(e=>A(e,"raw")&&A(e,"length"),"isTemplateStringsArray"),H=new WeakMap,I=g(e=>{const n=e.cache!==!1,r=n?e.cacheStore??H:null,t=e.newline!==void 0;function a(i,...c){if(v(i)){const l=i,_=c.length;if(l.length===1&&l[0]==="")return"";if(_===0){if(n&&r&&!t){const f=r.get(l);if(f)return f[0]}const E=p(l,!1,e);return n&&r&&r.set(l,E),E[0]}const N=(c[0]===a||c[0]===w)&&R.test(l[0])&&S.test(l[1]);let o;return n&&r&&!t&&(o=r.get(l)),o||(o=p(l,N,e),n&&r&&r.set(l,o)),b(o,N?c.slice(1):c)}return I(T(T({},e),i))}return h(a,"g"),g(a,"outdent"),T(a,{string(i){return i===""||!i?"":p([i],!1,e)[0]}})},"createInstance"),w=I({cache:!0,newline:null,trimLeadingNewline:!0,trimTrailingNewline:!0}),C=w;export{C as outdent};
package/dist/truncate.js CHANGED
@@ -1 +1 @@
1
- var g=Object.defineProperty;var h=(t,i)=>g(t,"name",{value:i,configurable:!0});import{getStringTruncatedWidth as l}from"./get-string-truncated-width.js";import{slice as d}from"./slice.js";var b=Object.defineProperty,p=h((t,i)=>b(t,"name",{value:i,configurable:!0}),"h");const u="…",y=3,f=p((t,i,e=!1)=>{if(t.charAt(i)===" ")return i;const r=e?1:-1,a=Math.min(y,e?t.length-i:i);for(let c=1;c<=a;c++){const n=i+c*r;if(t.charAt(n)===" ")return n}return i},"findNearestSpace"),T=p((t,i,e={})=>{if(typeof t!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof t}`);if(typeof i!="number")throw new TypeError(`Expected \`limit\` to be a number, got ${typeof i}`);if(t===""||i<=0)return"";t=t.normalize("NFC");const{ellipsis:r=u,position:a="end",preferTruncationOnSpace:c=!1}=e;let n=e.ellipsisWidth??r===u?1:void 0;if(n===void 0&&(n=l(r,{...e.width,ellipsis:"",ellipsisWidth:0,limit:Number.POSITIVE_INFINITY}).width),i===1&&n===1)return r;if(i===1)return"";const{width:o}=l(t,{...e.width,ellipsis:r,ellipsisWidth:n});if(o<=i)return t;switch(a){case"end":{if(c){const s=f(t,i-1);return d(t,0,s,{width:e.width})+r}return d(t,0,i-n,{width:e.width})+r}case"middle":{const s=Math.floor(i/2);if(c){const w=f(t,s),m=f(t,o-(i-s)+1,!0);return d(t,0,w)+r+d(t,m,o).trim()}return d(t,0,s,{width:e.width})+r+d(t,o-(i-s)+n,o,{width:e.width})}case"start":{if(c){const s=f(t,o-i+1,!0);return r+d(t,s,o).trim()}return r+d(t,o-i+n,o,{width:e.width})}default:throw new Error(`Invalid position: expected 'start', 'middle' or 'end', got '${a}'`)}},"truncate");export{T as truncate};
1
+ var g=Object.defineProperty;var l=(t,i)=>g(t,"name",{value:i,configurable:!0});import{getStringTruncatedWidth as p}from"./get-string-truncated-width.js";import{slice as d}from"./slice.js";var b=Object.defineProperty,f=l((t,i)=>b(t,"name",{value:i,configurable:!0}),"h");const u="…",y=3,h=f((t,i,e=!1)=>{if(t.charAt(i)===" ")return i;const r=e?1:-1,c=Math.min(y,e?t.length-i:i);for(let a=1;a<=c;a++){const n=i+a*r;if(t.charAt(n)===" ")return n}return i},"findNearestSpace"),T=f((t,i,e={})=>{if(typeof t!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof t}`);if(typeof i!="number")throw new TypeError(`Expected \`limit\` to be a number, got ${typeof i}`);if(t===""||i<=0)return"";t=t.normalize("NFC");const{ellipsis:r=u,position:c="end",preferTruncationOnSpace:a=!1}=e;let n=e.ellipsisWidth??r===u?1:void 0;n===void 0&&(n=p(r,{...e.width,ellipsis:"",ellipsisWidth:0,limit:Number.POSITIVE_INFINITY}).width);const{width:o}=p(t,{...e.width,ellipsis:r,ellipsisWidth:n});if(o<=i)return t;switch(c){case"end":{if(a){const s=h(t,i-1);return d(t,0,s,{width:e.width})+r}return d(t,0,i-n,{width:e.width})+r}case"middle":{const s=Math.floor(i/2);if(a){const w=h(t,s),m=h(t,o-(i-s)+1,!0);return d(t,0,w)+r+d(t,m,o).trim()}return d(t,0,s,{width:e.width})+r+d(t,o-(i-s)+n,o,{width:e.width})}case"start":{if(a){const s=h(t,o-i+1,!0);return r+d(t,s,o).trim()}return r+d(t,o-i+n,o,{width:e.width})}default:throw new Error(`Invalid position: expected 'start', 'middle' or 'end', got '${c}'`)}},"truncate");export{T as truncate};
package/dist/word-wrap.js CHANGED
@@ -1,8 +1,8 @@
1
- var y=Object.defineProperty;var m=(t,e)=>y(t,"name",{value:e,configurable:!0});import{O as S,P as k,Q as b,S as R,T as O,U as H,V as $,W as P,X as j}from"./packem_shared/constants-CDcaCZKC.js";import{getStringWidth as d}from"./get-string-width.js";var D=Object.defineProperty,N=m((t,e)=>D(t,"name",{value:e,configurable:!0}),"n");let w=class{static{m(this,"u")}static{N(this,"AnsiStateTracker")}activeForeground=null;activeBackground=null;activeFormatting=[];processEscape(e){const n=/\x1B\[(\d+)m/.exec(e);if(!n)return;const r=Number.parseInt(n[1],10);switch(r){case 0:{this.activeForeground=null,this.activeBackground=null,this.activeFormatting=[];break}case 39:{this.activeForeground=null;break}case 49:{this.activeBackground=null;break}default:if(r>=30&&r<=37||r>=90&&r<=97)this.activeForeground=e;else if(r>=40&&r<=47||r>=100&&r<=107)this.activeBackground=e;else if([1,2,3,4,7,8,9].includes(r))this.activeFormatting.push(e);else if([22,23,24,27,28,29].includes(r)){const l={22:"[1m",23:"[3m",24:"[4m",27:"[7m",28:"[8m",29:"[9m"}[r];l&&(this.activeFormatting=this.activeFormatting.filter(a=>!a.includes(l)))}}}getStartEscapesForAllActiveAttributes(){return[this.activeBackground,this.activeForeground,...this.activeFormatting].filter(Boolean).join("")}getEndEscapesForAllActiveAttributes(){const e=[];if(this.activeFormatting.length>0){const n={"\x1B[1m":"\x1B[22m","\x1B[2m":"\x1B[22m","\x1B[3m":"\x1B[23m","\x1B[4m":"\x1B[24m","\x1B[7m":"\x1B[27m","\x1B[8m":"\x1B[28m","\x1B[9m":"\x1B[29m"};[...this.activeFormatting].reverse().forEach(r=>{const l=n[r];l&&e.push(l)})}return this.activeForeground&&e.push("\x1B[39m"),this.activeBackground&&e.push("\x1B[49m"),e.join("")}};var q=Object.defineProperty,T=m((t,e)=>q(t,"name",{value:e,configurable:!0}),"u");const C=T((t,e)=>{if(!S.has(t[e]))return{isInsideEscape:!1,isInsideLinkEscape:!1};const n=!0,r=t.slice(e+1,e+1+R.length).join("")===R;return{isInsideEscape:n,isInsideLinkEscape:r}},"checkEscapeSequence"),G=T((t,e={})=>{const n=new w;let r="",l=!1,a=!1,i="",s="",u=!1;const h=[...t];for(let c=0;c<h.length;c++){const o=h[c];if(o&&S.has(o)){if(r){const p=e.getWidth?.(r)??0,v={isEscapeSequence:!1,isGrapheme:!0,text:r,width:p};if(u&&(v.isHyperlink=!0,v.hyperlinkUrl=s),e.onSegment?.(v,n)===!1)return;r=""}if(l=!0,i=o,a=C(h,c).isInsideLinkEscape,a){let p=c+1;for(s="";p<h.length;){const _=h[p];if(_===b)break;s+=_,p+=1}s=s.slice(4);const v={hyperlinkUrl:s,isEscapeSequence:!0,isGrapheme:!1,isHyperlink:!0,isHyperlinkStart:!0,width:0};if(e.onSegment?.(v,n)===!1)return;c=p,u=!0,l=!1,a=!1,i="";continue}if(c+1<h.length&&h[c+1]==="\\"&&u){const p={isEscapeSequence:!0,isGrapheme:!1,isHyperlink:!0,isHyperlinkEnd:!0,width:0};if(e.onSegment?.(p,n)===!1)return;u=!1,s="",c+=1,l=!1,i="";continue}}if(l){if(i!==o&&(i+=o),o===k){l=!1,n.processEscape(i);const p={isEscapeSequence:!0,isGrapheme:!1,text:i,width:0};if(e.onSegment?.(p,n)===!1)return;i=""}continue}r+=o;const f=e.getWidth?.(r)??0,g={isEscapeSequence:!1,isGrapheme:!0,text:r,width:f};if(u&&(g.isHyperlink=!0,g.hyperlinkUrl=s),e.onSegment?.(g,n)===!1)return;r=""}if(r){const c=e.getWidth?.(r)??0,o={isEscapeSequence:!1,isGrapheme:!0,text:r,width:c};u&&(o.isHyperlink=!0,o.hyperlinkUrl=s),e.onSegment?.(o,n)}if(i){const c={isEscapeSequence:!0,isGrapheme:!1,text:i,width:0};e.onSegment?.(c,n)}},"processAnsiString");var L=Object.defineProperty,K=m((t,e)=>L(t,"name",{value:e,configurable:!0}),"t$1");const F=K(t=>`${S.values().next().value}${O}${t}${k}`,"wrapAnsiCode");var U=Object.defineProperty,V=m((t,e)=>U(t,"name",{value:e,configurable:!0}),"t");const W=V(t=>`${S.values().next().value}${R}${t}${b}`,"wrapAnsiHyperlink");var M=Object.defineProperty,Z=m((t,e)=>M(t,"name",{value:e,configurable:!0}),"p");const z=Z(t=>{if(t.length===0)return"";if(t.length===1)return t[0];let e="",n,r;const l=t.join(`
1
+ var y=Object.defineProperty;var m=(t,e)=>y(t,"name",{value:e,configurable:!0});import{O as S,P as k,Q as b,S as R,T as O,U as H,V as $,W as P,X as j}from"./packem_shared/constants-CDcaCZKC.js";import{getStringWidth as d}from"./get-string-width.js";var D=Object.defineProperty,N=m((t,e)=>D(t,"name",{value:e,configurable:!0}),"n");class w{static{m(this,"u")}static{N(this,"AnsiStateTracker")}activeForeground=null;activeBackground=null;activeFormatting=[];processEscape(e){const n=/\x1B\[(\d+)m/.exec(e);if(!n)return;const r=Number.parseInt(n[1],10);switch(r){case 0:{this.activeForeground=null,this.activeBackground=null,this.activeFormatting=[];break}case 39:{this.activeForeground=null;break}case 49:{this.activeBackground=null;break}default:if(r>=30&&r<=37||r>=90&&r<=97)this.activeForeground=e;else if(r>=40&&r<=47||r>=100&&r<=107)this.activeBackground=e;else if([1,2,3,4,7,8,9].includes(r))this.activeFormatting.push(e);else if([22,23,24,27,28,29].includes(r)){const l={22:"[1m",23:"[3m",24:"[4m",27:"[7m",28:"[8m",29:"[9m"}[r];l&&(this.activeFormatting=this.activeFormatting.filter(a=>!a.includes(l)))}}}getStartEscapesForAllActiveAttributes(){return[this.activeBackground,this.activeForeground,...this.activeFormatting].filter(Boolean).join("")}getEndEscapesForAllActiveAttributes(){const e=[];if(this.activeFormatting.length>0){const n={"\x1B[1m":"\x1B[22m","\x1B[2m":"\x1B[22m","\x1B[3m":"\x1B[23m","\x1B[4m":"\x1B[24m","\x1B[7m":"\x1B[27m","\x1B[8m":"\x1B[28m","\x1B[9m":"\x1B[29m"};[...this.activeFormatting].reverse().forEach(r=>{const l=n[r];l&&e.push(l)})}return this.activeForeground&&e.push("\x1B[39m"),this.activeBackground&&e.push("\x1B[49m"),e.join("")}}var q=Object.defineProperty,T=m((t,e)=>q(t,"name",{value:e,configurable:!0}),"o");const I=T((t,e)=>{if(!S.has(t[e]))return{isInsideEscape:!1,isInsideLinkEscape:!1};const n=!0,r=t.slice(e+1,e+1+R.length).join("")===R;return{isInsideEscape:n,isInsideLinkEscape:r}},"checkEscapeSequence"),G=T((t,e={})=>{const n=new w;let r="",l=!1,a=!1,i="",s="",u=!1;const h=[...t];for(let c=0;c<h.length;c++){const o=h[c];if(o&&S.has(o)){if(r){const p=e.getWidth?.(r)??0,v={isEscapeSequence:!1,isGrapheme:!0,text:r,width:p};if(u&&(v.isHyperlink=!0,v.hyperlinkUrl=s),e.onSegment?.(v,n)===!1)return;r=""}if(l=!0,i=o,a=I(h,c).isInsideLinkEscape,a){let p=c+1;for(s="";p<h.length;){const _=h[p];if(_===b)break;s+=_,p+=1}s=s.slice(4);const v={hyperlinkUrl:s,isEscapeSequence:!0,isGrapheme:!1,isHyperlink:!0,isHyperlinkStart:!0,width:0};if(e.onSegment?.(v,n)===!1)return;c=p,u=!0,l=!1,a=!1,i="";continue}if(c+1<h.length&&h[c+1]==="\\"&&u){const p={isEscapeSequence:!0,isGrapheme:!1,isHyperlink:!0,isHyperlinkEnd:!0,width:0};if(e.onSegment?.(p,n)===!1)return;u=!1,s="",c+=1,l=!1,i="";continue}}if(l){if(i!==o&&(i+=o),o===k){l=!1,n.processEscape(i);const p={isEscapeSequence:!0,isGrapheme:!1,text:i,width:0};if(e.onSegment?.(p,n)===!1)return;i=""}continue}r+=o;const f=e.getWidth?.(r)??0,g={isEscapeSequence:!1,isGrapheme:!0,text:r,width:f};if(u&&(g.isHyperlink=!0,g.hyperlinkUrl=s),e.onSegment?.(g,n)===!1)return;r=""}if(r){const c=e.getWidth?.(r)??0,o={isEscapeSequence:!1,isGrapheme:!0,text:r,width:c};u&&(o.isHyperlink=!0,o.hyperlinkUrl=s),e.onSegment?.(o,n)}if(i){const c={isEscapeSequence:!0,isGrapheme:!1,text:i,width:0};e.onSegment?.(c,n)}},"processAnsiString");var L=Object.defineProperty,K=m((t,e)=>L(t,"name",{value:e,configurable:!0}),"t$1");const F=K(t=>`${S.values().next().value}${O}${t}${k}`,"wrapAnsiCode");var U=Object.defineProperty,V=m((t,e)=>U(t,"name",{value:e,configurable:!0}),"t");const W=V(t=>`${S.values().next().value}${R}${t}${b}`,"wrapAnsiHyperlink");var M=Object.defineProperty,Z=m((t,e)=>M(t,"name",{value:e,configurable:!0}),"l");const z=Z(t=>{if(t.length===0)return"";if(t.length===1)return t[0];let e="",n,r;const l=t.join(`
2
2
  `),a=[...l];let i=0;for(const[s,u]of a.entries()){if(e+=u,S.has(u)){const c=H.exec(l.slice(i))?.groups??{};if(c.code!==void 0){const o=Number.parseFloat(c.code);n=o===P?void 0:o}else c.uri!==void 0&&(r=c.uri.length===0?void 0:c.uri)}const h=$.get(Number(n));a[s+1]===`
3
3
  `?(r&&(e+=W("")),n&&h&&(e+=F(h))):u===`
4
- `&&(n&&h&&(e+=F(n)),r&&(e+=W(r))),i+=u.length}return e},"preserveAnsi");var Q=Object.defineProperty,E=m((t,e)=>Q(t,"name",{value:e,configurable:!0}),"h");const x=E(t=>{if(!t.includes("\x1B"))return t;let e=t;return t.includes("\x1B[30m")&&(e+="\x1B[39m"),t.includes("\x1B[42m")&&(e+="\x1B[49m"),e},"resetAnsiAtLineBreak"),A=E(t=>{const e=t.split(" ");let n=e.length;for(;n>0&&d(e[n-1])===0;)n--;return n===e.length?t:e.slice(0,n).join(" ")+e.slice(n).join("")},"stringVisibleTrimSpacesRight"),I=E((t,e,n)=>{if(t.length===0)return[""];if(e<=0)return[t];const r=[],l=new w;let a="",i=0,s=!1,u=!1,h="";for(let c=0;c<t.length;c++){const o=t[c];if(S.has(o)){s=!0,h=o,a+=o,u=C([...t],c).isInsideLinkEscape;continue}if(s){h+=o,a+=o,u?o===b&&(s=u=!1):o===k&&(s=!1,l.processEscape(h));continue}const f=d(o),g=o===" ";if(f===0){a+=o;continue}if(i+f>e&&(a&&r.push(a+l.getEndEscapesForAllActiveAttributes()),a=l.getStartEscapesForAllActiveAttributes(),i=d(a),g&&n)){for(;c<t.length&&t[c]===" "&&(c+=1,!(c>=t.length)););c<t.length&&c--;continue}if(a+=o,i+=f,i===e&&c<t.length-1&&(r.push(a+l.getEndEscapesForAllActiveAttributes()),a=l.getStartEscapesForAllActiveAttributes(),i=d(a),c+1<t.length&&t[c+1]===" "&&n)){for(c+=1;c<t.length&&t[c]===" ";)c+=1;c--}}return a&&r.push(a+l.getEndEscapesForAllActiveAttributes()),n?r.map(c=>A(c)):r},"wrapWithBreakAtWidth"),X=E((t,e,n)=>{if(t.length===0)return[];const r=n?t.trim():t;if(r.length===0)return[];const l=[];let a="",i=0;return G(r,{getWidth:d,onSegment:E((s,u)=>{if(s.isEscapeSequence)a+=s.text;else{const h=s.text===" ";if(s.width===0)return a+=s.text,!0;if(i+s.width>e&&(a&&l.push(a),a=u.getStartEscapesForAllActiveAttributes(),i=0,h))return n||l.push(u.getStartEscapesForAllActiveAttributes()+s.text),!0;a+=s.text,i+=s.width}return!0},"onSegment")}),a&&l.push(a),n?l.map(s=>A(s)):l},"wrapCharByChar"),J=E((t,e,n)=>{if(t.length===0)return[];const r=n?t.trim():t;if(r.length===0)return[];const l=r.split(/(?=\s)|(?<=\s)/),a=[];let i="",s=0,u=0;for(;u<l.length;){const h=l[u],c=/^\s+$/.test(h),o=d(h);if(h.length===0){u+=1;continue}if(n&&c&&s===0){u+=1;continue}if(s+o>e&&s>0){n?a.push(A(i)):a.push(i),i="",s=0;continue}i+=h,s+=o,u+=1}return i&&(n?a.push(A(i)):a.push(i)),a},"wrapWithWordBoundaries"),Y=E((t,e,n)=>{if(t.length===0)return[];const r=n?t.trim():t;if(r.length===0)return[];const l=r.split(/(?=\s)|(?<=\s)/),a=[];let i="",s=0,u=0;for(;u<l.length;){const h=l[u],c=/^\s+$/.test(h),o=d(h);if(h.length===0){u+=1;continue}if(n&&c&&s===0){u+=1;continue}if(o>e){i&&a.push(x(n?A(i):i));const f=I(h,e,n);if(f.length>0){for(let g=0;g<f.length-1;g++)a.push(f[g]);i=f[f.length-1],s=d(i)}else i="",s=0;u+=1;continue}if(s+o>e&&s>0&&(a.push(x(n?A(i):i)),i="",s=0,n&&c)){u+=1;continue}i+=h,s+=o,u+=1}return i&&a.push(x(n?A(i):i)),a},"wrapAndBreakWords"),B={BREAK_AT_CHARACTERS:"BREAK_AT_CHARACTERS",BREAK_WORDS:"BREAK_WORDS",PRESERVE_WORDS:"PRESERVE_WORDS",STRICT_WIDTH:"STRICT_WIDTH"},ie=E((t,e={})=>{const{removeZeroWidthCharacters:n=!0,trim:r=!0,width:l=80,wrapMode:a=B.PRESERVE_WORDS}=e;if(r&&t.trim()==="")return"";let i=String(t).normalize("NFC").replaceAll(`\r
4
+ `&&(n&&h&&(e+=F(n)),r&&(e+=W(r))),i+=u.length}return e},"preserveAnsi");var Q=Object.defineProperty,E=m((t,e)=>Q(t,"name",{value:e,configurable:!0}),"h");const x=E(t=>{if(!t.includes("\x1B"))return t;let e=t;return t.includes("\x1B[30m")&&(e+="\x1B[39m"),t.includes("\x1B[42m")&&(e+="\x1B[49m"),e},"resetAnsiAtLineBreak"),A=E(t=>{const e=t.split(" ");let n=e.length;for(;n>0&&d(e[n-1])===0;)n--;return n===e.length?t:e.slice(0,n).join(" ")+e.slice(n).join("")},"stringVisibleTrimSpacesRight"),C=E((t,e,n)=>{if(t.length===0)return[""];if(e<=0)return[t];const r=[],l=new w;let a="",i=0,s=!1,u=!1,h="";for(let c=0;c<t.length;c++){const o=t[c];if(S.has(o)){s=!0,h=o,a+=o,u=I([...t],c).isInsideLinkEscape;continue}if(s){h+=o,a+=o,u?o===b&&(s=u=!1):o===k&&(s=!1,l.processEscape(h));continue}const f=d(o),g=o===" ";if(f===0){a+=o;continue}if(i+f>e&&(a&&r.push(a+l.getEndEscapesForAllActiveAttributes()),a=l.getStartEscapesForAllActiveAttributes(),i=d(a),g&&n)){for(;c<t.length&&t[c]===" "&&(c+=1,!(c>=t.length)););c<t.length&&c--;continue}if(a+=o,i+=f,i===e&&c<t.length-1&&(r.push(a+l.getEndEscapesForAllActiveAttributes()),a=l.getStartEscapesForAllActiveAttributes(),i=d(a),c+1<t.length&&t[c+1]===" "&&n)){for(c+=1;c<t.length&&t[c]===" ";)c+=1;c--}}return a&&r.push(a+l.getEndEscapesForAllActiveAttributes()),n?r.map(c=>A(c)):r},"wrapWithBreakAtWidth"),X=E((t,e,n)=>{if(t.length===0)return[];const r=n?t.trim():t;if(r.length===0)return[];const l=[];let a="",i=0;return G(r,{getWidth:d,onSegment:E((s,u)=>{if(s.isEscapeSequence)a+=s.text;else{const h=s.text===" ";if(s.width===0)return a+=s.text,!0;if(i+s.width>e&&(a&&l.push(a),a=u.getStartEscapesForAllActiveAttributes(),i=0,h))return n||l.push(u.getStartEscapesForAllActiveAttributes()+s.text),!0;a+=s.text,i+=s.width}return!0},"onSegment")}),a&&l.push(a),n?l.map(s=>A(s)):l},"wrapCharByChar"),J=E((t,e,n)=>{if(t.length===0)return[];const r=n?t.trim():t;if(r.length===0)return[];const l=r.split(/(?=\s)|(?<=\s)/),a=[];let i="",s=0,u=0;for(;u<l.length;){const h=l[u],c=/^\s+$/.test(h),o=d(h);if(h.length===0){u+=1;continue}if(n&&c&&s===0){u+=1;continue}if(s+o>e&&s>0){n?a.push(A(i)):a.push(i),i="",s=0;continue}i+=h,s+=o,u+=1}return i&&(n?a.push(A(i)):a.push(i)),a},"wrapWithWordBoundaries"),Y=E((t,e,n)=>{if(t.length===0)return[];const r=n?t.trim():t;if(r.length===0)return[];const l=r.split(/(?=\s)|(?<=\s)/),a=[];let i="",s=0,u=0;for(;u<l.length;){const h=l[u],c=/^\s+$/.test(h),o=d(h);if(h.length===0){u+=1;continue}if(n&&c&&s===0){u+=1;continue}if(o>e){i&&a.push(x(n?A(i):i));const f=C(h,e,n);if(f.length>0){for(let g=0;g<f.length-1;g++)a.push(f[g]);i=f[f.length-1],s=d(i)}else i="",s=0;u+=1;continue}if(s+o>e&&s>0&&(a.push(x(n?A(i):i)),i="",s=0,n&&c)){u+=1;continue}i+=h,s+=o,u+=1}return i&&a.push(x(n?A(i):i)),a},"wrapAndBreakWords"),B={BREAK_AT_CHARACTERS:"BREAK_AT_CHARACTERS",BREAK_WORDS:"BREAK_WORDS",PRESERVE_WORDS:"PRESERVE_WORDS",STRICT_WIDTH:"STRICT_WIDTH"},ne=E((t,e={})=>{const{removeZeroWidthCharacters:n=!0,trim:r=!0,width:l=80,wrapMode:a=B.PRESERVE_WORDS}=e;if(r&&t.trim()==="")return"";let i=String(t).normalize("NFC").replaceAll(`\r
5
5
  `,`
6
6
  `);return n&&(i=i.replaceAll(j,"")),i.split(`
7
- `).map(s=>{if(r&&s.trim()==="")return"";let u;switch(a){case B.BREAK_AT_CHARACTERS:{u=X(s,l,r);break}case B.BREAK_WORDS:{u=Y(s,l,r);break}case B.STRICT_WIDTH:{u=I(s,l,r);break}default:u=J(s,l,r)}return z(u)}).join(`
8
- `)},"wordWrap");export{B as WrapMode,ie as wordWrap};
7
+ `).map(s=>{if(r&&s.trim()==="")return"";let u;switch(a){case B.BREAK_AT_CHARACTERS:{u=X(s,l,r);break}case B.BREAK_WORDS:{u=Y(s,l,r);break}case B.STRICT_WIDTH:{u=C(s,l,r);break}default:u=J(s,l,r)}return z(u)}).join(`
8
+ `)},"wordWrap");export{B as WrapMode,ne as wordWrap};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visulima/string",
3
- "version": "2.0.1",
3
+ "version": "2.0.3",
4
4
  "description": "Functions for manipulating strings.",
5
5
  "keywords": [
6
6
  "visulima",