@visulima/string 1.4.0 → 1.4.1

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,9 @@
1
+ ## @visulima/string [1.4.1](https://github.com/visulima/visulima/compare/@visulima/string@1.4.0...@visulima/string@1.4.1) (2025-05-31)
2
+
3
+ ### Bug Fixes
4
+
5
+ * **string:** add align-text and word-wrap modules to package.json ([6c9db17](https://github.com/visulima/visulima/commit/6c9db174387e9da6bd5f99b6e4e48c12aa19b313))
6
+
1
7
  ## @visulima/string [1.4.0](https://github.com/visulima/visulima/compare/@visulima/string@1.3.0...@visulima/string@1.4.0) (2025-05-31)
2
8
 
3
9
  ### Features
@@ -1,2 +1,2 @@
1
- "use strict";var d=Object.defineProperty;var g=(t,e)=>d(t,"name",{value:e,configurable:!0});Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const h=require("../get-string-width.cjs");var c=Object.defineProperty,a=g((t,e)=>c(t,"name",{value:e,configurable:!0}),"n");const p=a((t,e)=>Math.floor((t-e)/2),"halfDiff"),m=a((t,e)=>t-e,"fullDiff"),S=a((t,e={})=>{const l=e.align??"center";if(l==="left")return t;const o=e.split??`
1
+ "use strict";var d=Object.defineProperty;var g=(t,e)=>d(t,"name",{value:e,configurable:!0});Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const h=require("./get-string-width.cjs");var c=Object.defineProperty,a=g((t,e)=>c(t,"name",{value:e,configurable:!0}),"n");const p=a((t,e)=>Math.floor((t-e)/2),"halfDiff"),m=a((t,e)=>t-e,"fullDiff"),S=a((t,e={})=>{const l=e.align??"center";if(l==="left")return t;const o=e.split??`
2
2
  `,f=e.pad??" ",u=l==="right"?m:p;let s=!1;Array.isArray(t)||(s=!0,t=String(t).split(o));let i,n=0;return t=t.map(r=>(r=String(r),i=h.getStringWidth(r,e.stringWidthOptions),n=Math.max(i,n),{str:r,width:i})).map(r=>Array.from({length:u(n,r.width)+1}).join(f)+r.str),s?t.join(o):t},"alignText");exports.alignText=S;
@@ -0,0 +1,13 @@
1
+ import { StringWidthOptions } from './get-string-width.cjs';
2
+ import './get-string-truncated-width.cjs';
3
+
4
+ type AlignTextOptions = {
5
+ align?: "center" | "left" | "right";
6
+ pad?: string;
7
+ split?: string;
8
+ stringWidthOptions?: StringWidthOptions;
9
+ };
10
+ declare const alignText: (text: string[] | string, options?: AlignTextOptions) => string[] | string;
11
+
12
+ export { alignText };
13
+ export type { AlignTextOptions };
@@ -0,0 +1,13 @@
1
+ import { StringWidthOptions } from './get-string-width.mjs';
2
+ import './get-string-truncated-width.mjs';
3
+
4
+ type AlignTextOptions = {
5
+ align?: "center" | "left" | "right";
6
+ pad?: string;
7
+ split?: string;
8
+ stringWidthOptions?: StringWidthOptions;
9
+ };
10
+ declare const alignText: (text: string[] | string, options?: AlignTextOptions) => string[] | string;
11
+
12
+ export { alignText };
13
+ export type { AlignTextOptions };
@@ -0,0 +1,13 @@
1
+ import { StringWidthOptions } from './get-string-width.js';
2
+ import './get-string-truncated-width.js';
3
+
4
+ type AlignTextOptions = {
5
+ align?: "center" | "left" | "right";
6
+ pad?: string;
7
+ split?: string;
8
+ stringWidthOptions?: StringWidthOptions;
9
+ };
10
+ declare const alignText: (text: string[] | string, options?: AlignTextOptions) => string[] | string;
11
+
12
+ export { alignText };
13
+ export type { AlignTextOptions };
@@ -1,2 +1,2 @@
1
- var p=Object.defineProperty;var s=(t,r)=>p(t,"name",{value:r,configurable:!0});import{getStringWidth as c}from"../get-string-width.mjs";var d=Object.defineProperty,i=s((t,r)=>d(t,"name",{value:r,configurable:!0}),"n");const m=i((t,r)=>Math.floor((t-r)/2),"halfDiff"),u=i((t,r)=>t-r,"fullDiff"),j=i((t,r={})=>{const l=r.align??"center";if(l==="left")return t;const o=r.split??`
1
+ var p=Object.defineProperty;var s=(t,r)=>p(t,"name",{value:r,configurable:!0});import{getStringWidth as c}from"./get-string-width.mjs";var d=Object.defineProperty,i=s((t,r)=>d(t,"name",{value:r,configurable:!0}),"n");const m=i((t,r)=>Math.floor((t-r)/2),"halfDiff"),u=i((t,r)=>t-r,"fullDiff"),j=i((t,r={})=>{const l=r.align??"center";if(l==="left")return t;const o=r.split??`
2
2
  `,g=r.pad??" ",h=l==="right"?u:m;let f=!1;Array.isArray(t)||(f=!0,t=String(t).split(o));let n,a=0;return t=t.map(e=>(e=String(e),n=c(e,r.stringWidthOptions),a=Math.max(n,a),{str:e,width:n})).map(e=>Array.from({length:h(a,e.width)+1}).join(g)+e.str),f?t.join(o):t},"alignText");export{j as alignText};
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("./packem_shared/alignText-CLZJuPP6.cjs"),r=require("./case/camel-case.cjs"),s=require("./case/capital-case.cjs"),t=require("./case/constant-case.cjs"),i=require("./case/dot-case.cjs"),u=require("./case/flat-case.cjs"),n=require("./case/flip-case.cjs"),c=require("./case/identify-case.cjs"),l=require("./case/kebab-case.cjs"),C=require("./case/lower-first.cjs"),q=require("./case/no-case.cjs"),p=require("./case/pascal-case.cjs"),d=require("./case/pascal-snake-case.cjs"),o=require("./case/path-case.cjs"),g=require("./case/sentence-case.cjs"),_=require("./case/snake-case.cjs"),S=require("./case/split-by-case.cjs"),W=require("./case/title-case.cjs"),f=require("./case/train-case.cjs"),b=require("./case/upper-first.cjs"),h=require("./packem_shared/joinSegments-CDHNMXsF.cjs"),y=require("./get-string-truncated-width.cjs"),k=require("./get-string-width.cjs"),T=require("./outdent.cjs"),m=require("./packem_shared/replaceString-Ce8TI_-L.cjs"),M=require("./slice.cjs"),w=require("./packem_shared/slugify-CH3GI7E5.cjs"),F=require("./packem_shared/transliterate-CToQ-aeM.cjs"),j=require("./truncate.cjs"),e=require("./packem_shared/WrapMode-DR7vv3px.cjs");exports.alignText=a.alignText;exports.camelCase=r;exports.capitalCase=s;exports.constantCase=t;exports.dotCase=i;exports.flatCase=u;exports.flipCase=n.flipCase;exports.identifyCase=c;exports.kebabCase=l.kebabCase;exports.lowerFirst=C;exports.noCase=q;exports.pascalCase=p;exports.pascalSnakeCase=d;exports.pathCase=o;exports.sentenceCase=g;exports.snakeCase=_;exports.splitByCase=S.splitByCase;exports.titleCase=W;exports.trainCase=f;exports.upperFirst=b;exports.joinSegments=h;exports.getStringTruncatedWidth=y.getStringTruncatedWidth;exports.getStringWidth=k.getStringWidth;exports.outdent=T.outdent;exports.replaceString=m;exports.slice=M.slice;exports.slugify=w;exports.transliterate=F;exports.truncate=j.truncate;exports.WrapMode=e.WrapMode;exports.wordWrap=e.wordWrap;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("./align-text.cjs"),r=require("./case/camel-case.cjs"),s=require("./case/capital-case.cjs"),t=require("./case/constant-case.cjs"),i=require("./case/dot-case.cjs"),u=require("./case/flat-case.cjs"),n=require("./case/flip-case.cjs"),c=require("./case/identify-case.cjs"),l=require("./case/kebab-case.cjs"),C=require("./case/lower-first.cjs"),q=require("./case/no-case.cjs"),p=require("./case/pascal-case.cjs"),d=require("./case/pascal-snake-case.cjs"),o=require("./case/path-case.cjs"),g=require("./case/sentence-case.cjs"),_=require("./case/snake-case.cjs"),S=require("./case/split-by-case.cjs"),W=require("./case/title-case.cjs"),f=require("./case/train-case.cjs"),b=require("./case/upper-first.cjs"),h=require("./packem_shared/joinSegments-CDHNMXsF.cjs"),y=require("./get-string-truncated-width.cjs"),k=require("./get-string-width.cjs"),T=require("./outdent.cjs"),m=require("./packem_shared/replaceString-Ce8TI_-L.cjs"),w=require("./slice.cjs"),F=require("./packem_shared/slugify-CH3GI7E5.cjs"),M=require("./packem_shared/transliterate-CToQ-aeM.cjs"),j=require("./truncate.cjs"),e=require("./word-wrap.cjs");exports.alignText=a.alignText;exports.camelCase=r;exports.capitalCase=s;exports.constantCase=t;exports.dotCase=i;exports.flatCase=u;exports.flipCase=n.flipCase;exports.identifyCase=c;exports.kebabCase=l.kebabCase;exports.lowerFirst=C;exports.noCase=q;exports.pascalCase=p;exports.pascalSnakeCase=d;exports.pathCase=o;exports.sentenceCase=g;exports.snakeCase=_;exports.splitByCase=S.splitByCase;exports.titleCase=W;exports.trainCase=f;exports.upperFirst=b;exports.joinSegments=h;exports.getStringTruncatedWidth=y.getStringTruncatedWidth;exports.getStringWidth=k.getStringWidth;exports.outdent=T.outdent;exports.replaceString=m;exports.slice=w.slice;exports.slugify=F;exports.transliterate=M;exports.truncate=j.truncate;exports.WrapMode=e.WrapMode;exports.wordWrap=e.wordWrap;
package/dist/index.d.cts CHANGED
@@ -1,5 +1,4 @@
1
- import { StringWidthOptions } from './get-string-width.cjs';
2
- export { getStringWidth } from './get-string-width.cjs';
1
+ export { AlignTextOptions, alignText } from './align-text.cjs';
3
2
  export { default as camelCase } from './case/camel-case.cjs';
4
3
  export { default as capitalCase } from './case/capital-case.cjs';
5
4
  export { default as constantCase } from './case/constant-case.cjs';
@@ -22,40 +21,19 @@ export { a as CamelCase, b as CapitalCase, C as CaseOptions, c as ConstantCase,
22
21
  export { default as upperFirst } from './case/upper-first.cjs';
23
22
  export { joinSegments } from './case/index.cjs';
24
23
  export { StringTruncatedWidthOptions, StringTruncatedWidthResult, getStringTruncatedWidth } from './get-string-truncated-width.cjs';
24
+ export { StringWidthOptions, getStringWidth } from './get-string-width.cjs';
25
25
  export { Outdent, Options as OutdentOptions, outdent } from './outdent.cjs';
26
26
  import { O as OptionReplaceArray, k as IntervalArray, l as SlugifyOptions, m as OptionsTransliterate } from './packem_shared/types-BSdIWVzn.cjs';
27
27
  export { A as All, n as Any, C as CharAt, o as Charmap, a as Concat, E as EndsWith, I as Includes, p as Interval, q as IsBooleanLiteral, r as IsNumberLiteral, j as IsStringLiteral, s as IsStringLiteralArray, J as Join, L as Length, M as Math, N as NodeLocale, t as OptionReplaceCombined, u as OptionReplaceObject, P as PadEnd, b as PadStart, v as Repeat, R as Replace, c as ReplaceAll, w as Reverse, S as Slice, d as Split, e as StartsWith, T as ToLowerCase, f as ToUpperCase, g as Trim, h as TrimEnd, i as TrimStart } from './packem_shared/types-BSdIWVzn.cjs';
28
28
  export { SliceOptions, slice } from './slice.cjs';
29
29
  export { TruncateOptions, truncate } from './truncate.cjs';
30
+ export { WordWrapOptions, WrapMode, wordWrap } from './word-wrap.cjs';
30
31
  import './packem_shared/lru-cache-B_t27XwI.cjs';
31
32
 
32
- type AlignTextOptions = {
33
- align?: "center" | "left" | "right";
34
- pad?: string;
35
- split?: string;
36
- stringWidthOptions?: StringWidthOptions;
37
- };
38
- declare const alignText: (text: string[] | string, options?: AlignTextOptions) => string[] | string;
39
-
40
33
  declare const replaceString: (source: string, searches: OptionReplaceArray, ignoreRanges: IntervalArray) => string;
41
34
 
42
35
  declare const slugify: (input: string, options?: SlugifyOptions) => string;
43
36
 
44
37
  declare const transliterate: (source: string, options?: OptionsTransliterate) => string;
45
38
 
46
- declare const WrapMode: {
47
- readonly BREAK_AT_CHARACTERS: "BREAK_AT_CHARACTERS";
48
- readonly PRESERVE_WORDS: "PRESERVE_WORDS";
49
- readonly STRICT_WIDTH: "STRICT_WIDTH";
50
- readonly BREAK_WORDS: "BREAK_WORDS";
51
- };
52
- interface WordWrapOptions {
53
- removeZeroWidthCharacters?: boolean;
54
- trim?: boolean;
55
- width?: number;
56
- wrapMode?: keyof typeof WrapMode;
57
- }
58
- declare const wordWrap: (string: string, options?: WordWrapOptions) => string;
59
-
60
- export { IntervalArray, OptionReplaceArray, OptionsTransliterate, SlugifyOptions, StringWidthOptions, WrapMode, alignText, replaceString, slugify, transliterate, wordWrap };
61
- export type { AlignTextOptions, WordWrapOptions };
39
+ export { IntervalArray, OptionReplaceArray, OptionsTransliterate, SlugifyOptions, replaceString, slugify, transliterate };
package/dist/index.d.mts CHANGED
@@ -1,5 +1,4 @@
1
- import { StringWidthOptions } from './get-string-width.mjs';
2
- export { getStringWidth } from './get-string-width.mjs';
1
+ export { AlignTextOptions, alignText } from './align-text.mjs';
3
2
  export { default as camelCase } from './case/camel-case.mjs';
4
3
  export { default as capitalCase } from './case/capital-case.mjs';
5
4
  export { default as constantCase } from './case/constant-case.mjs';
@@ -22,40 +21,19 @@ export { a as CamelCase, b as CapitalCase, C as CaseOptions, c as ConstantCase,
22
21
  export { default as upperFirst } from './case/upper-first.mjs';
23
22
  export { joinSegments } from './case/index.mjs';
24
23
  export { StringTruncatedWidthOptions, StringTruncatedWidthResult, getStringTruncatedWidth } from './get-string-truncated-width.mjs';
24
+ export { StringWidthOptions, getStringWidth } from './get-string-width.mjs';
25
25
  export { Outdent, Options as OutdentOptions, outdent } from './outdent.mjs';
26
26
  import { O as OptionReplaceArray, k as IntervalArray, l as SlugifyOptions, m as OptionsTransliterate } from './packem_shared/types-BSdIWVzn.mjs';
27
27
  export { A as All, n as Any, C as CharAt, o as Charmap, a as Concat, E as EndsWith, I as Includes, p as Interval, q as IsBooleanLiteral, r as IsNumberLiteral, j as IsStringLiteral, s as IsStringLiteralArray, J as Join, L as Length, M as Math, N as NodeLocale, t as OptionReplaceCombined, u as OptionReplaceObject, P as PadEnd, b as PadStart, v as Repeat, R as Replace, c as ReplaceAll, w as Reverse, S as Slice, d as Split, e as StartsWith, T as ToLowerCase, f as ToUpperCase, g as Trim, h as TrimEnd, i as TrimStart } from './packem_shared/types-BSdIWVzn.mjs';
28
28
  export { SliceOptions, slice } from './slice.mjs';
29
29
  export { TruncateOptions, truncate } from './truncate.mjs';
30
+ export { WordWrapOptions, WrapMode, wordWrap } from './word-wrap.mjs';
30
31
  import './packem_shared/lru-cache-B_t27XwI.mjs';
31
32
 
32
- type AlignTextOptions = {
33
- align?: "center" | "left" | "right";
34
- pad?: string;
35
- split?: string;
36
- stringWidthOptions?: StringWidthOptions;
37
- };
38
- declare const alignText: (text: string[] | string, options?: AlignTextOptions) => string[] | string;
39
-
40
33
  declare const replaceString: (source: string, searches: OptionReplaceArray, ignoreRanges: IntervalArray) => string;
41
34
 
42
35
  declare const slugify: (input: string, options?: SlugifyOptions) => string;
43
36
 
44
37
  declare const transliterate: (source: string, options?: OptionsTransliterate) => string;
45
38
 
46
- declare const WrapMode: {
47
- readonly BREAK_AT_CHARACTERS: "BREAK_AT_CHARACTERS";
48
- readonly PRESERVE_WORDS: "PRESERVE_WORDS";
49
- readonly STRICT_WIDTH: "STRICT_WIDTH";
50
- readonly BREAK_WORDS: "BREAK_WORDS";
51
- };
52
- interface WordWrapOptions {
53
- removeZeroWidthCharacters?: boolean;
54
- trim?: boolean;
55
- width?: number;
56
- wrapMode?: keyof typeof WrapMode;
57
- }
58
- declare const wordWrap: (string: string, options?: WordWrapOptions) => string;
59
-
60
- export { IntervalArray, OptionReplaceArray, OptionsTransliterate, SlugifyOptions, StringWidthOptions, WrapMode, alignText, replaceString, slugify, transliterate, wordWrap };
61
- export type { AlignTextOptions, WordWrapOptions };
39
+ export { IntervalArray, OptionReplaceArray, OptionsTransliterate, SlugifyOptions, replaceString, slugify, transliterate };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
- import { StringWidthOptions } from './get-string-width.js';
2
- export { getStringWidth } from './get-string-width.js';
1
+ export { AlignTextOptions, alignText } from './align-text.js';
3
2
  export { default as camelCase } from './case/camel-case.js';
4
3
  export { default as capitalCase } from './case/capital-case.js';
5
4
  export { default as constantCase } from './case/constant-case.js';
@@ -22,40 +21,19 @@ export { a as CamelCase, b as CapitalCase, C as CaseOptions, c as ConstantCase,
22
21
  export { default as upperFirst } from './case/upper-first.js';
23
22
  export { joinSegments } from './case/index.js';
24
23
  export { StringTruncatedWidthOptions, StringTruncatedWidthResult, getStringTruncatedWidth } from './get-string-truncated-width.js';
24
+ export { StringWidthOptions, getStringWidth } from './get-string-width.js';
25
25
  export { Outdent, Options as OutdentOptions, outdent } from './outdent.js';
26
26
  import { O as OptionReplaceArray, k as IntervalArray, l as SlugifyOptions, m as OptionsTransliterate } from './packem_shared/types-BSdIWVzn.js';
27
27
  export { A as All, n as Any, C as CharAt, o as Charmap, a as Concat, E as EndsWith, I as Includes, p as Interval, q as IsBooleanLiteral, r as IsNumberLiteral, j as IsStringLiteral, s as IsStringLiteralArray, J as Join, L as Length, M as Math, N as NodeLocale, t as OptionReplaceCombined, u as OptionReplaceObject, P as PadEnd, b as PadStart, v as Repeat, R as Replace, c as ReplaceAll, w as Reverse, S as Slice, d as Split, e as StartsWith, T as ToLowerCase, f as ToUpperCase, g as Trim, h as TrimEnd, i as TrimStart } from './packem_shared/types-BSdIWVzn.js';
28
28
  export { SliceOptions, slice } from './slice.js';
29
29
  export { TruncateOptions, truncate } from './truncate.js';
30
+ export { WordWrapOptions, WrapMode, wordWrap } from './word-wrap.js';
30
31
  import './packem_shared/lru-cache-B_t27XwI.js';
31
32
 
32
- type AlignTextOptions = {
33
- align?: "center" | "left" | "right";
34
- pad?: string;
35
- split?: string;
36
- stringWidthOptions?: StringWidthOptions;
37
- };
38
- declare const alignText: (text: string[] | string, options?: AlignTextOptions) => string[] | string;
39
-
40
33
  declare const replaceString: (source: string, searches: OptionReplaceArray, ignoreRanges: IntervalArray) => string;
41
34
 
42
35
  declare const slugify: (input: string, options?: SlugifyOptions) => string;
43
36
 
44
37
  declare const transliterate: (source: string, options?: OptionsTransliterate) => string;
45
38
 
46
- declare const WrapMode: {
47
- readonly BREAK_AT_CHARACTERS: "BREAK_AT_CHARACTERS";
48
- readonly PRESERVE_WORDS: "PRESERVE_WORDS";
49
- readonly STRICT_WIDTH: "STRICT_WIDTH";
50
- readonly BREAK_WORDS: "BREAK_WORDS";
51
- };
52
- interface WordWrapOptions {
53
- removeZeroWidthCharacters?: boolean;
54
- trim?: boolean;
55
- width?: number;
56
- wrapMode?: keyof typeof WrapMode;
57
- }
58
- declare const wordWrap: (string: string, options?: WordWrapOptions) => string;
59
-
60
- export { IntervalArray, OptionReplaceArray, OptionsTransliterate, SlugifyOptions, StringWidthOptions, WrapMode, alignText, replaceString, slugify, transliterate, wordWrap };
61
- export type { AlignTextOptions, WordWrapOptions };
39
+ export { IntervalArray, OptionReplaceArray, OptionsTransliterate, SlugifyOptions, replaceString, slugify, transliterate };
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{alignText as a}from"./packem_shared/alignText-BCKbnqhC.mjs";import{default as o}from"./case/camel-case.mjs";import{default as s}from"./case/capital-case.mjs";import{default as l}from"./case/constant-case.mjs";import{default as x}from"./case/dot-case.mjs";import{default as u}from"./case/flat-case.mjs";import{flipCase as n}from"./case/flip-case.mjs";import{default as c}from"./case/identify-case.mjs";import{kebabCase as S}from"./case/kebab-case.mjs";import{default as h}from"./case/lower-first.mjs";import{default as y}from"./case/no-case.mjs";import{default as w}from"./case/pascal-case.mjs";import{default as T}from"./case/pascal-snake-case.mjs";import{default as B}from"./case/path-case.mjs";import{default as q}from"./case/sentence-case.mjs";import{default as z}from"./case/snake-case.mjs";import{splitByCase as D}from"./case/split-by-case.mjs";import{default as G}from"./case/title-case.mjs";import{default as I}from"./case/train-case.mjs";import{default as K}from"./case/upper-first.mjs";import{default as N}from"./packem_shared/joinSegments-H7QJ7rwJ.mjs";import{getStringTruncatedWidth as P}from"./get-string-truncated-width.mjs";import{getStringWidth as R}from"./get-string-width.mjs";import{outdent as V}from"./outdent.mjs";import{default as Y}from"./packem_shared/replaceString-D7R-5VFX.mjs";import{slice as _}from"./slice.mjs";import{default as ee}from"./packem_shared/slugify-B1vlQQO1.mjs";import{default as ae}from"./packem_shared/transliterate-BXaP38Sh.mjs";import{truncate as oe}from"./truncate.mjs";import{WrapMode as se,wordWrap as pe}from"./packem_shared/WrapMode-BZ3jkEf1.mjs";export{se as WrapMode,a as alignText,o as camelCase,s as capitalCase,l as constantCase,x as dotCase,u as flatCase,n as flipCase,P as getStringTruncatedWidth,R as getStringWidth,c as identifyCase,N as joinSegments,S as kebabCase,h as lowerFirst,y as noCase,V as outdent,w as pascalCase,T as pascalSnakeCase,B as pathCase,Y as replaceString,q as sentenceCase,_ as slice,ee as slugify,z as snakeCase,D as splitByCase,G as titleCase,I as trainCase,ae as transliterate,oe as truncate,K as upperFirst,pe as wordWrap};
1
+ import{alignText as a}from"./align-text.mjs";import{default as o}from"./case/camel-case.mjs";import{default as s}from"./case/capital-case.mjs";import{default as l}from"./case/constant-case.mjs";import{default as x}from"./case/dot-case.mjs";import{default as u}from"./case/flat-case.mjs";import{flipCase as n}from"./case/flip-case.mjs";import{default as c}from"./case/identify-case.mjs";import{kebabCase as S}from"./case/kebab-case.mjs";import{default as h}from"./case/lower-first.mjs";import{default as y}from"./case/no-case.mjs";import{default as w}from"./case/pascal-case.mjs";import{default as T}from"./case/pascal-snake-case.mjs";import{default as B}from"./case/path-case.mjs";import{default as q}from"./case/sentence-case.mjs";import{default as z}from"./case/snake-case.mjs";import{splitByCase as D}from"./case/split-by-case.mjs";import{default as G}from"./case/title-case.mjs";import{default as I}from"./case/train-case.mjs";import{default as K}from"./case/upper-first.mjs";import{default as N}from"./packem_shared/joinSegments-H7QJ7rwJ.mjs";import{getStringTruncatedWidth as P}from"./get-string-truncated-width.mjs";import{getStringWidth as R}from"./get-string-width.mjs";import{outdent as V}from"./outdent.mjs";import{default as Y}from"./packem_shared/replaceString-D7R-5VFX.mjs";import{slice as _}from"./slice.mjs";import{default as ee}from"./packem_shared/slugify-B1vlQQO1.mjs";import{default as ae}from"./packem_shared/transliterate-BXaP38Sh.mjs";import{truncate as oe}from"./truncate.mjs";import{WrapMode as se,wordWrap as pe}from"./word-wrap.mjs";export{se as WrapMode,a as alignText,o as camelCase,s as capitalCase,l as constantCase,x as dotCase,u as flatCase,n as flipCase,P as getStringTruncatedWidth,R as getStringWidth,c as identifyCase,N as joinSegments,S as kebabCase,h as lowerFirst,y as noCase,V as outdent,w as pascalCase,T as pascalSnakeCase,B as pathCase,Y as replaceString,q as sentenceCase,_ as slice,ee as slugify,z as snakeCase,D as splitByCase,G as titleCase,I as trainCase,ae as transliterate,oe as truncate,K as upperFirst,pe as wordWrap};
@@ -0,0 +1,8 @@
1
+ "use strict";var O=Object.defineProperty;var m=(t,e)=>O(t,"name",{value:e,configurable:!0});Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const f=require("./packem_shared/constants-D3K8u3G8.cjs"),S=require("./get-string-width.cjs");var T=Object.defineProperty,_=m((t,e)=>T(t,"name",{value:e,configurable:!0}),"n");let R=class{static{m(this,"m")}static{_(this,"AnsiStateTracker")}activeForeground=null;activeBackground=null;activeFormatting=[];processEscape(e){const i=/\x1B\[(\d+)m/.exec(e);if(!i)return;const r=Number.parseInt(i[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 i={"\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=i[r];l&&e.push(l)})}return this.activeForeground&&e.push("\x1B[39m"),this.activeBackground&&e.push("\x1B[49m"),e.join("")}};var $=Object.defineProperty,w=m((t,e)=>$(t,"name",{value:e,configurable:!0}),"o");const F=w((t,e)=>{if(!f.O.has(t[e]))return{isInsideEscape:!1,isInsideLinkEscape:!1};const i=!0,r=t.slice(e+1,e+1+f.P.length).join("")===f.P;return{isInsideEscape:i,isInsideLinkEscape:r}},"checkEscapeSequence"),C=w((t,e={})=>{const i=new R;let r="",l=!1,a=!1,n="",s="",u=!1;const h=[...t];for(let c=0;c<h.length;c++){const o=h[c];if(o&&f.O.has(o)){if(r){const p=e.getWidth?.(r)??0,E={isEscapeSequence:!1,isGrapheme:!0,text:r,width:p};if(u&&(E.isHyperlink=!0,E.hyperlinkUrl=s),e.onSegment?.(E,i)===!1)return;r=""}if(l=!0,n=o,a=F(h,c).isInsideLinkEscape,a){let p=c+1;for(s="";p<h.length;){const k=h[p];if(k===f.S)break;s+=k,p++}s=s.slice(4);const E={hyperlinkUrl:s,isEscapeSequence:!0,isGrapheme:!1,isHyperlink:!0,isHyperlinkStart:!0,width:0};if(e.onSegment?.(E,i)===!1)return;c=p,u=!0,l=!1,a=!1,n="";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,i)===!1)return;u=!1,s="",c++,l=!1,n="";continue}}if(l){if(n!==o&&(n+=o),o===f.Q){l=!1,i.processEscape(n);const p={isEscapeSequence:!0,isGrapheme:!1,text:n,width:0};if(e.onSegment?.(p,i)===!1)return;n=""}continue}r+=o;const g=e.getWidth?.(r)??0,d={isEscapeSequence:!1,isGrapheme:!0,text:r,width:g};if(u&&(d.isHyperlink=!0,d.hyperlinkUrl=s),e.onSegment?.(d,i)===!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,i)}if(n){const c={isEscapeSequence:!0,isGrapheme:!1,text:n,width:0};e.onSegment?.(c,i)}},"processAnsiString");var H=Object.defineProperty,j=m((t,e)=>H(t,"name",{value:e,configurable:!0}),"t$1");const b=j(t=>`${f.O.values().next().value}${f.T}${t}${f.Q}`,"wrapAnsiCode");var I=Object.defineProperty,P=m((t,e)=>I(t,"name",{value:e,configurable:!0}),"t");const W=P(t=>`${f.O.values().next().value}${f.P}${t}${f.S}`,"wrapAnsiHyperlink");var q=Object.defineProperty,D=m((t,e)=>q(t,"name",{value:e,configurable:!0}),"l");const G=D(t=>{if(t.length===0)return"";if(t.length===1)return t[0];let e="",i,r;const l=t.join(`
2
+ `),a=[...l];let n=0;for(const[s,u]of a.entries()){if(e+=u,f.O.has(u)){const c=f.U.exec(l.slice(n))?.groups??{};if(c.code!==void 0){const o=Number.parseFloat(c.code);i=o===f.W?void 0:o}else c.uri!==void 0&&(r=c.uri.length===0?void 0:c.uri)}const h=f.V.get(Number(i));a[s+1]===`
3
+ `?(r&&(e+=W("")),i&&h&&(e+=b(h))):u===`
4
+ `&&(i&&h&&(e+=b(i)),r&&(e+=W(r))),n+=u.length}return e},"preserveAnsi");var K=Object.defineProperty,v=m((t,e)=>K(t,"name",{value:e,configurable:!0}),"h");const x=v(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=v(t=>{const e=t.split(" ");let i=e.length;for(;i>0&&S.getStringWidth(e[i-1])===0;)i--;return i===e.length?t:e.slice(0,i).join(" ")+e.slice(i).join("")},"stringVisibleTrimSpacesRight"),y=v((t,e,i)=>{if(t.length===0)return[""];if(e<=0)return[t];const r=[],l=new R;let a="",n=0,s=!1,u=!1,h="";for(let c=0;c<t.length;c++){const o=t[c];if(f.O.has(o)){s=!0,h=o,a+=o,u=F([...t],c).isInsideLinkEscape;continue}if(s){h+=o,a+=o,u?o===f.S&&(s=u=!1):o===f.Q&&(s=!1,l.processEscape(h));continue}const g=S.getStringWidth(o),d=o===" ";if(g===0){a+=o;continue}if(n+g>e&&(a&&r.push(a+l.getEndEscapesForAllActiveAttributes()),a=l.getStartEscapesForAllActiveAttributes(),n=S.getStringWidth(a),d&&i)){for(;c<t.length&&t[c]===" "&&(c++,!(c>=t.length)););c<t.length&&c--;continue}if(a+=o,n+=g,n===e&&c<t.length-1&&(r.push(a+l.getEndEscapesForAllActiveAttributes()),a=l.getStartEscapesForAllActiveAttributes(),n=S.getStringWidth(a),c+1<t.length&&t[c+1]===" "&&i)){for(c++;c<t.length&&t[c]===" ";)c++;c--}}return a&&r.push(a+l.getEndEscapesForAllActiveAttributes()),i?r.map(c=>A(c)):r},"wrapWithBreakAtWidth"),L=v((t,e,i)=>{if(t.length===0)return[];const r=i?t.trim():t;if(r.length===0)return[];const l=[];let a="",n=0;return C(r,{getWidth:S.getStringWidth,onSegment:v((s,u)=>{if(s.isEscapeSequence)a+=s.text;else{const h=s.text===" ";if(s.width===0)return a+=s.text,!0;if(n+s.width>e&&(a&&l.push(a),a=u.getStartEscapesForAllActiveAttributes(),n=0,h))return i||l.push(u.getStartEscapesForAllActiveAttributes()+s.text),!0;a+=s.text,n+=s.width}return!0},"onSegment")}),a&&l.push(a),i?l.map(s=>A(s)):l},"wrapCharByChar"),M=v((t,e,i)=>{if(t.length===0)return[];const r=i?t.trim():t;if(r.length===0)return[];const l=r.split(/(?=\s)|(?<=\s)/),a=[];let n="",s=0,u=0;for(;u<l.length;){const h=l[u],c=/^\s+$/.test(h),o=S.getStringWidth(h);if(h.length===0){u++;continue}if(i&&c&&s===0){u++;continue}if(s+o>e&&s>0){i?a.push(A(n)):a.push(n),n="",s=0;continue}n+=h,s+=o,u++}return n&&(i?a.push(A(n)):a.push(n)),a},"wrapWithWordBoundaries"),U=v((t,e,i)=>{if(t.length===0)return[];const r=i?t.trim():t;if(r.length===0)return[];const l=r.split(/(?=\s)|(?<=\s)/),a=[];let n="",s=0,u=0;for(;u<l.length;){const h=l[u],c=/^\s+$/.test(h),o=S.getStringWidth(h);if(h.length===0){u++;continue}if(i&&c&&s===0){u++;continue}if(o>e){n&&a.push(x(i?A(n):n));const g=y(h,e,i);if(g.length>0){for(let d=0;d<g.length-1;d++)a.push(g[d]);n=g[g.length-1],s=S.getStringWidth(n)}else n="",s=0;u++;continue}if(s+o>e&&s>0&&(a.push(x(i?A(n):n)),n="",s=0,i&&c)){u++;continue}n+=h,s+=o,u++}return n&&a.push(x(i?A(n):n)),a},"wrapAndBreakWords"),B={BREAK_AT_CHARACTERS:"BREAK_AT_CHARACTERS",PRESERVE_WORDS:"PRESERVE_WORDS",STRICT_WIDTH:"STRICT_WIDTH",BREAK_WORDS:"BREAK_WORDS"},V=v((t,e={})=>{const{removeZeroWidthCharacters:i=!0,trim:r=!0,width:l=80,wrapMode:a=B.PRESERVE_WORDS}=e;if(r&&t.trim()==="")return"";let n=String(t).normalize("NFC").replaceAll(`\r
5
+ `,`
6
+ `);return i&&(n=n.replaceAll(f.X,"")),n.split(`
7
+ `).map(s=>{if(r&&s.trim()==="")return"";let u;switch(a){case B.STRICT_WIDTH:{u=y(s,l,r);break}case B.BREAK_AT_CHARACTERS:{u=L(s,l,r);break}case B.BREAK_WORDS:{u=U(s,l,r);break}default:u=M(s,l,r)}return G(u)}).join(`
8
+ `)},"wordWrap");exports.WrapMode=B;exports.wordWrap=V;
@@ -0,0 +1,16 @@
1
+ declare const WrapMode: {
2
+ readonly BREAK_AT_CHARACTERS: "BREAK_AT_CHARACTERS";
3
+ readonly PRESERVE_WORDS: "PRESERVE_WORDS";
4
+ readonly STRICT_WIDTH: "STRICT_WIDTH";
5
+ readonly BREAK_WORDS: "BREAK_WORDS";
6
+ };
7
+ interface WordWrapOptions {
8
+ removeZeroWidthCharacters?: boolean;
9
+ trim?: boolean;
10
+ width?: number;
11
+ wrapMode?: keyof typeof WrapMode;
12
+ }
13
+ declare const wordWrap: (string: string, options?: WordWrapOptions) => string;
14
+
15
+ export { WrapMode, wordWrap };
16
+ export type { WordWrapOptions };
@@ -0,0 +1,16 @@
1
+ declare const WrapMode: {
2
+ readonly BREAK_AT_CHARACTERS: "BREAK_AT_CHARACTERS";
3
+ readonly PRESERVE_WORDS: "PRESERVE_WORDS";
4
+ readonly STRICT_WIDTH: "STRICT_WIDTH";
5
+ readonly BREAK_WORDS: "BREAK_WORDS";
6
+ };
7
+ interface WordWrapOptions {
8
+ removeZeroWidthCharacters?: boolean;
9
+ trim?: boolean;
10
+ width?: number;
11
+ wrapMode?: keyof typeof WrapMode;
12
+ }
13
+ declare const wordWrap: (string: string, options?: WordWrapOptions) => string;
14
+
15
+ export { WrapMode, wordWrap };
16
+ export type { WordWrapOptions };
@@ -0,0 +1,16 @@
1
+ declare const WrapMode: {
2
+ readonly BREAK_AT_CHARACTERS: "BREAK_AT_CHARACTERS";
3
+ readonly PRESERVE_WORDS: "PRESERVE_WORDS";
4
+ readonly STRICT_WIDTH: "STRICT_WIDTH";
5
+ readonly BREAK_WORDS: "BREAK_WORDS";
6
+ };
7
+ interface WordWrapOptions {
8
+ removeZeroWidthCharacters?: boolean;
9
+ trim?: boolean;
10
+ width?: number;
11
+ wrapMode?: keyof typeof WrapMode;
12
+ }
13
+ declare const wordWrap: (string: string, options?: WordWrapOptions) => string;
14
+
15
+ export { WrapMode, wordWrap };
16
+ export type { WordWrapOptions };
@@ -0,0 +1,8 @@
1
+ var y=Object.defineProperty;var m=(t,e)=>y(t,"name",{value:e,configurable:!0});import{O as S,P as R,Q as k,S as b,T as O,U as H,V as $,W as P,X as j}from"./packem_shared/constants-Cd17VNEv.mjs";import{getStringWidth as d}from"./get-string-width.mjs";var D=Object.defineProperty,N=m((t,e)=>D(t,"name",{value:e,configurable:!0}),"n");let w=class{static{m(this,"m")}static{N(this,"AnsiStateTracker")}activeForeground=null;activeBackground=null;activeFormatting=[];processEscape(e){const i=/\x1B\[(\d+)m/.exec(e);if(!i)return;const r=Number.parseInt(i[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 i={"\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=i[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 i=!0,r=t.slice(e+1,e+1+R.length).join("")===R;return{isInsideEscape:i,isInsideLinkEscape:r}},"checkEscapeSequence"),G=T((t,e={})=>{const i=new w;let r="",l=!1,a=!1,n="",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,i)===!1)return;r=""}if(l=!0,n=o,a=I(h,c).isInsideLinkEscape,a){let p=c+1;for(s="";p<h.length;){const _=h[p];if(_===b)break;s+=_,p++}s=s.slice(4);const v={hyperlinkUrl:s,isEscapeSequence:!0,isGrapheme:!1,isHyperlink:!0,isHyperlinkStart:!0,width:0};if(e.onSegment?.(v,i)===!1)return;c=p,u=!0,l=!1,a=!1,n="";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,i)===!1)return;u=!1,s="",c++,l=!1,n="";continue}}if(l){if(n!==o&&(n+=o),o===k){l=!1,i.processEscape(n);const p={isEscapeSequence:!0,isGrapheme:!1,text:n,width:0};if(e.onSegment?.(p,i)===!1)return;n=""}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,i)===!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,i)}if(n){const c={isEscapeSequence:!0,isGrapheme:!1,text:n,width:0};e.onSegment?.(c,i)}},"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="",i,r;const l=t.join(`
2
+ `),a=[...l];let n=0;for(const[s,u]of a.entries()){if(e+=u,S.has(u)){const c=H.exec(l.slice(n))?.groups??{};if(c.code!==void 0){const o=Number.parseFloat(c.code);i=o===P?void 0:o}else c.uri!==void 0&&(r=c.uri.length===0?void 0:c.uri)}const h=$.get(Number(i));a[s+1]===`
3
+ `?(r&&(e+=W("")),i&&h&&(e+=F(h))):u===`
4
+ `&&(i&&h&&(e+=F(i)),r&&(e+=W(r))),n+=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 i=e.length;for(;i>0&&d(e[i-1])===0;)i--;return i===e.length?t:e.slice(0,i).join(" ")+e.slice(i).join("")},"stringVisibleTrimSpacesRight"),C=E((t,e,i)=>{if(t.length===0)return[""];if(e<=0)return[t];const r=[],l=new w;let a="",n=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(n+f>e&&(a&&r.push(a+l.getEndEscapesForAllActiveAttributes()),a=l.getStartEscapesForAllActiveAttributes(),n=d(a),g&&i)){for(;c<t.length&&t[c]===" "&&(c++,!(c>=t.length)););c<t.length&&c--;continue}if(a+=o,n+=f,n===e&&c<t.length-1&&(r.push(a+l.getEndEscapesForAllActiveAttributes()),a=l.getStartEscapesForAllActiveAttributes(),n=d(a),c+1<t.length&&t[c+1]===" "&&i)){for(c++;c<t.length&&t[c]===" ";)c++;c--}}return a&&r.push(a+l.getEndEscapesForAllActiveAttributes()),i?r.map(c=>A(c)):r},"wrapWithBreakAtWidth"),X=E((t,e,i)=>{if(t.length===0)return[];const r=i?t.trim():t;if(r.length===0)return[];const l=[];let a="",n=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(n+s.width>e&&(a&&l.push(a),a=u.getStartEscapesForAllActiveAttributes(),n=0,h))return i||l.push(u.getStartEscapesForAllActiveAttributes()+s.text),!0;a+=s.text,n+=s.width}return!0},"onSegment")}),a&&l.push(a),i?l.map(s=>A(s)):l},"wrapCharByChar"),J=E((t,e,i)=>{if(t.length===0)return[];const r=i?t.trim():t;if(r.length===0)return[];const l=r.split(/(?=\s)|(?<=\s)/),a=[];let n="",s=0,u=0;for(;u<l.length;){const h=l[u],c=/^\s+$/.test(h),o=d(h);if(h.length===0){u++;continue}if(i&&c&&s===0){u++;continue}if(s+o>e&&s>0){i?a.push(A(n)):a.push(n),n="",s=0;continue}n+=h,s+=o,u++}return n&&(i?a.push(A(n)):a.push(n)),a},"wrapWithWordBoundaries"),Y=E((t,e,i)=>{if(t.length===0)return[];const r=i?t.trim():t;if(r.length===0)return[];const l=r.split(/(?=\s)|(?<=\s)/),a=[];let n="",s=0,u=0;for(;u<l.length;){const h=l[u],c=/^\s+$/.test(h),o=d(h);if(h.length===0){u++;continue}if(i&&c&&s===0){u++;continue}if(o>e){n&&a.push(x(i?A(n):n));const f=C(h,e,i);if(f.length>0){for(let g=0;g<f.length-1;g++)a.push(f[g]);n=f[f.length-1],s=d(n)}else n="",s=0;u++;continue}if(s+o>e&&s>0&&(a.push(x(i?A(n):n)),n="",s=0,i&&c)){u++;continue}n+=h,s+=o,u++}return n&&a.push(x(i?A(n):n)),a},"wrapAndBreakWords"),B={BREAK_AT_CHARACTERS:"BREAK_AT_CHARACTERS",PRESERVE_WORDS:"PRESERVE_WORDS",STRICT_WIDTH:"STRICT_WIDTH",BREAK_WORDS:"BREAK_WORDS"},ne=E((t,e={})=>{const{removeZeroWidthCharacters:i=!0,trim:r=!0,width:l=80,wrapMode:a=B.PRESERVE_WORDS}=e;if(r&&t.trim()==="")return"";let n=String(t).normalize("NFC").replaceAll(`\r
5
+ `,`
6
+ `);return i&&(n=n.replaceAll(j,"")),n.split(`
7
+ `).map(s=>{if(r&&s.trim()==="")return"";let u;switch(a){case B.STRICT_WIDTH:{u=C(s,l,r);break}case B.BREAK_AT_CHARACTERS:{u=X(s,l,r);break}case B.BREAK_WORDS:{u=Y(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": "1.4.0",
3
+ "version": "1.4.1",
4
4
  "description": "Functions for manipulating strings.",
5
5
  "keywords": [
6
6
  "visulima",
@@ -215,6 +215,26 @@
215
215
  "default": "./dist/case/pascal-case.mjs"
216
216
  }
217
217
  },
218
+ "./align-text": {
219
+ "require": {
220
+ "types": "./dist/align-text.d.cts",
221
+ "default": "./dist/align-text.cjs"
222
+ },
223
+ "import": {
224
+ "types": "./dist/align-text.d.mts",
225
+ "default": "./dist/align-text.mjs"
226
+ }
227
+ },
228
+ "./word-wrap": {
229
+ "require": {
230
+ "types": "./dist/word-wrap.d.cts",
231
+ "default": "./dist/word-wrap.cjs"
232
+ },
233
+ "import": {
234
+ "types": "./dist/word-wrap.d.mts",
235
+ "default": "./dist/word-wrap.mjs"
236
+ }
237
+ },
218
238
  "./slice": {
219
239
  "require": {
220
240
  "types": "./dist/slice.d.cts",
@@ -425,6 +445,12 @@
425
445
  "case/pascal-case": [
426
446
  "./dist/case/pascal-case.d.ts"
427
447
  ],
448
+ "align-text": [
449
+ "./dist/align-text.d.ts"
450
+ ],
451
+ "word-wrap": [
452
+ "./dist/word-wrap.d.ts"
453
+ ],
428
454
  "slice": [
429
455
  "./dist/slice.d.ts"
430
456
  ],
@@ -1,8 +0,0 @@
1
- var y=Object.defineProperty;var m=(t,e)=>y(t,"name",{value:e,configurable:!0});import{O as S,P as R,Q as k,S as b,T as O,U as H,V as $,W as P,X as N}from"./constants-Cd17VNEv.mjs";import{getStringWidth as d}from"../get-string-width.mjs";var j=Object.defineProperty,D=m((t,e)=>j(t,"name",{value:e,configurable:!0}),"n");let w=class{static{m(this,"m")}static{D(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++}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++,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
- `),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
- `?(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 J=Object.defineProperty,E=m((t,e)=>J(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++,!(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++;c<t.length&&t[c]===" ";)c++;c--}}return a&&r.push(a+l.getEndEscapesForAllActiveAttributes()),n?r.map(c=>A(c)):r},"wrapWithBreakAtWidth"),Q=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"),X=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++;continue}if(n&&c&&s===0){u++;continue}if(s+o>e&&s>0){n?a.push(A(i)):a.push(i),i="",s=0;continue}i+=h,s+=o,u++}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++;continue}if(n&&c&&s===0){u++;continue}if(o>e){i&&a.push(x(n?A(i):i));const f=C(h,e,n);if(console.log(JSON.stringify(f)),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++;continue}if(s+o>e&&s>0&&(a.push(x(n?A(i):i)),i="",s=0,n&&c)){u++;continue}i+=h,s+=o,u++}return i&&a.push(x(n?A(i):i)),a},"wrapAndBreakWords"),B={BREAK_AT_CHARACTERS:"BREAK_AT_CHARACTERS",PRESERVE_WORDS:"PRESERVE_WORDS",STRICT_WIDTH:"STRICT_WIDTH",BREAK_WORDS:"BREAK_WORDS"},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
5
- `,`
6
- `);return n&&(i=i.replaceAll(N,"")),i.split(`
7
- `).map(s=>{if(r&&s.trim()==="")return"";let u;switch(a){case B.STRICT_WIDTH:{u=C(s,l,r);break}case B.BREAK_AT_CHARACTERS:{u=Q(s,l,r);break}case B.BREAK_WORDS:{u=Y(s,l,r);break}default:u=X(s,l,r)}return z(u)}).join(`
8
- `)},"wordWrap");export{B as WrapMode,ie as wordWrap};
@@ -1,8 +0,0 @@
1
- "use strict";var O=Object.defineProperty;var m=(t,e)=>O(t,"name",{value:e,configurable:!0});Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const g=require("./constants-D3K8u3G8.cjs"),S=require("../get-string-width.cjs");var T=Object.defineProperty,_=m((t,e)=>T(t,"name",{value:e,configurable:!0}),"n");let R=class{static{m(this,"m")}static{_(this,"AnsiStateTracker")}activeForeground=null;activeBackground=null;activeFormatting=[];processEscape(e){const i=/\x1B\[(\d+)m/.exec(e);if(!i)return;const r=Number.parseInt(i[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 i={"\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=i[r];l&&e.push(l)})}return this.activeForeground&&e.push("\x1B[39m"),this.activeBackground&&e.push("\x1B[49m"),e.join("")}};var $=Object.defineProperty,w=m((t,e)=>$(t,"name",{value:e,configurable:!0}),"o");const F=w((t,e)=>{if(!g.O.has(t[e]))return{isInsideEscape:!1,isInsideLinkEscape:!1};const i=!0,r=t.slice(e+1,e+1+g.P.length).join("")===g.P;return{isInsideEscape:i,isInsideLinkEscape:r}},"checkEscapeSequence"),C=w((t,e={})=>{const i=new R;let r="",l=!1,a=!1,n="",s="",u=!1;const h=[...t];for(let c=0;c<h.length;c++){const o=h[c];if(o&&g.O.has(o)){if(r){const p=e.getWidth?.(r)??0,E={isEscapeSequence:!1,isGrapheme:!0,text:r,width:p};if(u&&(E.isHyperlink=!0,E.hyperlinkUrl=s),e.onSegment?.(E,i)===!1)return;r=""}if(l=!0,n=o,a=F(h,c).isInsideLinkEscape,a){let p=c+1;for(s="";p<h.length;){const k=h[p];if(k===g.S)break;s+=k,p++}s=s.slice(4);const E={hyperlinkUrl:s,isEscapeSequence:!0,isGrapheme:!1,isHyperlink:!0,isHyperlinkStart:!0,width:0};if(e.onSegment?.(E,i)===!1)return;c=p,u=!0,l=!1,a=!1,n="";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,i)===!1)return;u=!1,s="",c++,l=!1,n="";continue}}if(l){if(n!==o&&(n+=o),o===g.Q){l=!1,i.processEscape(n);const p={isEscapeSequence:!0,isGrapheme:!1,text:n,width:0};if(e.onSegment?.(p,i)===!1)return;n=""}continue}r+=o;const f=e.getWidth?.(r)??0,d={isEscapeSequence:!1,isGrapheme:!0,text:r,width:f};if(u&&(d.isHyperlink=!0,d.hyperlinkUrl=s),e.onSegment?.(d,i)===!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,i)}if(n){const c={isEscapeSequence:!0,isGrapheme:!1,text:n,width:0};e.onSegment?.(c,i)}},"processAnsiString");var H=Object.defineProperty,j=m((t,e)=>H(t,"name",{value:e,configurable:!0}),"t$1");const b=j(t=>`${g.O.values().next().value}${g.T}${t}${g.Q}`,"wrapAnsiCode");var I=Object.defineProperty,P=m((t,e)=>I(t,"name",{value:e,configurable:!0}),"t");const W=P(t=>`${g.O.values().next().value}${g.P}${t}${g.S}`,"wrapAnsiHyperlink");var q=Object.defineProperty,D=m((t,e)=>q(t,"name",{value:e,configurable:!0}),"l");const G=D(t=>{if(t.length===0)return"";if(t.length===1)return t[0];let e="",i,r;const l=t.join(`
2
- `),a=[...l];let n=0;for(const[s,u]of a.entries()){if(e+=u,g.O.has(u)){const c=g.U.exec(l.slice(n))?.groups??{};if(c.code!==void 0){const o=Number.parseFloat(c.code);i=o===g.W?void 0:o}else c.uri!==void 0&&(r=c.uri.length===0?void 0:c.uri)}const h=g.V.get(Number(i));a[s+1]===`
3
- `?(r&&(e+=W("")),i&&h&&(e+=b(h))):u===`
4
- `&&(i&&h&&(e+=b(i)),r&&(e+=W(r))),n+=u.length}return e},"preserveAnsi");var K=Object.defineProperty,v=m((t,e)=>K(t,"name",{value:e,configurable:!0}),"h");const x=v(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=v(t=>{const e=t.split(" ");let i=e.length;for(;i>0&&S.getStringWidth(e[i-1])===0;)i--;return i===e.length?t:e.slice(0,i).join(" ")+e.slice(i).join("")},"stringVisibleTrimSpacesRight"),y=v((t,e,i)=>{if(t.length===0)return[""];if(e<=0)return[t];const r=[],l=new R;let a="",n=0,s=!1,u=!1,h="";for(let c=0;c<t.length;c++){const o=t[c];if(g.O.has(o)){s=!0,h=o,a+=o,u=F([...t],c).isInsideLinkEscape;continue}if(s){h+=o,a+=o,u?o===g.S&&(s=u=!1):o===g.Q&&(s=!1,l.processEscape(h));continue}const f=S.getStringWidth(o),d=o===" ";if(f===0){a+=o;continue}if(n+f>e&&(a&&r.push(a+l.getEndEscapesForAllActiveAttributes()),a=l.getStartEscapesForAllActiveAttributes(),n=S.getStringWidth(a),d&&i)){for(;c<t.length&&t[c]===" "&&(c++,!(c>=t.length)););c<t.length&&c--;continue}if(a+=o,n+=f,n===e&&c<t.length-1&&(r.push(a+l.getEndEscapesForAllActiveAttributes()),a=l.getStartEscapesForAllActiveAttributes(),n=S.getStringWidth(a),c+1<t.length&&t[c+1]===" "&&i)){for(c++;c<t.length&&t[c]===" ";)c++;c--}}return a&&r.push(a+l.getEndEscapesForAllActiveAttributes()),i?r.map(c=>A(c)):r},"wrapWithBreakAtWidth"),L=v((t,e,i)=>{if(t.length===0)return[];const r=i?t.trim():t;if(r.length===0)return[];const l=[];let a="",n=0;return C(r,{getWidth:S.getStringWidth,onSegment:v((s,u)=>{if(s.isEscapeSequence)a+=s.text;else{const h=s.text===" ";if(s.width===0)return a+=s.text,!0;if(n+s.width>e&&(a&&l.push(a),a=u.getStartEscapesForAllActiveAttributes(),n=0,h))return i||l.push(u.getStartEscapesForAllActiveAttributes()+s.text),!0;a+=s.text,n+=s.width}return!0},"onSegment")}),a&&l.push(a),i?l.map(s=>A(s)):l},"wrapCharByChar"),M=v((t,e,i)=>{if(t.length===0)return[];const r=i?t.trim():t;if(r.length===0)return[];const l=r.split(/(?=\s)|(?<=\s)/),a=[];let n="",s=0,u=0;for(;u<l.length;){const h=l[u],c=/^\s+$/.test(h),o=S.getStringWidth(h);if(h.length===0){u++;continue}if(i&&c&&s===0){u++;continue}if(s+o>e&&s>0){i?a.push(A(n)):a.push(n),n="",s=0;continue}n+=h,s+=o,u++}return n&&(i?a.push(A(n)):a.push(n)),a},"wrapWithWordBoundaries"),N=v((t,e,i)=>{if(t.length===0)return[];const r=i?t.trim():t;if(r.length===0)return[];const l=r.split(/(?=\s)|(?<=\s)/),a=[];let n="",s=0,u=0;for(;u<l.length;){const h=l[u],c=/^\s+$/.test(h),o=S.getStringWidth(h);if(h.length===0){u++;continue}if(i&&c&&s===0){u++;continue}if(o>e){n&&a.push(x(i?A(n):n));const f=y(h,e,i);if(console.log(JSON.stringify(f)),f.length>0){for(let d=0;d<f.length-1;d++)a.push(f[d]);n=f[f.length-1],s=S.getStringWidth(n)}else n="",s=0;u++;continue}if(s+o>e&&s>0&&(a.push(x(i?A(n):n)),n="",s=0,i&&c)){u++;continue}n+=h,s+=o,u++}return n&&a.push(x(i?A(n):n)),a},"wrapAndBreakWords"),B={BREAK_AT_CHARACTERS:"BREAK_AT_CHARACTERS",PRESERVE_WORDS:"PRESERVE_WORDS",STRICT_WIDTH:"STRICT_WIDTH",BREAK_WORDS:"BREAK_WORDS"},U=v((t,e={})=>{const{removeZeroWidthCharacters:i=!0,trim:r=!0,width:l=80,wrapMode:a=B.PRESERVE_WORDS}=e;if(r&&t.trim()==="")return"";let n=String(t).normalize("NFC").replaceAll(`\r
5
- `,`
6
- `);return i&&(n=n.replaceAll(g.X,"")),n.split(`
7
- `).map(s=>{if(r&&s.trim()==="")return"";let u;switch(a){case B.STRICT_WIDTH:{u=y(s,l,r);break}case B.BREAK_AT_CHARACTERS:{u=L(s,l,r);break}case B.BREAK_WORDS:{u=N(s,l,r);break}default:u=M(s,l,r)}return G(u)}).join(`
8
- `)},"wordWrap");exports.WrapMode=B;exports.wordWrap=U;