@visulima/string 3.0.0-alpha.15 → 3.0.0-alpha.17

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.
Files changed (110) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +80 -2
  3. package/dist/align-text.js +2 -2
  4. package/dist/case/camel-case.d.ts +2 -3
  5. package/dist/case/camel-case.js +1 -1
  6. package/dist/case/capital-case.d.ts +2 -3
  7. package/dist/case/capital-case.js +1 -1
  8. package/dist/case/constant-case.d.ts +2 -3
  9. package/dist/case/constant-case.js +1 -1
  10. package/dist/case/dot-case.d.ts +2 -3
  11. package/dist/case/dot-case.js +1 -1
  12. package/dist/case/flat-case.d.ts +2 -3
  13. package/dist/case/flat-case.js +1 -1
  14. package/dist/case/flip-case.d.ts +2 -3
  15. package/dist/case/flip-case.js +1 -1
  16. package/dist/case/identify-case.d.ts +2 -3
  17. package/dist/case/identify-case.js +1 -1
  18. package/dist/case/index.d.ts +2 -3
  19. package/dist/case/index.js +1 -1
  20. package/dist/case/kebab-case.d.ts +2 -3
  21. package/dist/case/kebab-case.js +1 -1
  22. package/dist/case/lower-first.d.ts +2 -3
  23. package/dist/case/lower-first.js +1 -1
  24. package/dist/case/no-case.d.ts +2 -3
  25. package/dist/case/no-case.js +1 -1
  26. package/dist/case/pascal-case.d.ts +2 -3
  27. package/dist/case/pascal-case.js +1 -1
  28. package/dist/case/pascal-snake-case.d.ts +2 -3
  29. package/dist/case/pascal-snake-case.js +1 -1
  30. package/dist/case/path-case.d.ts +2 -3
  31. package/dist/case/path-case.js +1 -1
  32. package/dist/case/sentence-case.d.ts +2 -3
  33. package/dist/case/sentence-case.js +1 -1
  34. package/dist/case/snake-case.d.ts +2 -3
  35. package/dist/case/snake-case.js +1 -1
  36. package/dist/case/split-by-case.d.ts +2 -3
  37. package/dist/case/split-by-case.js +1 -1
  38. package/dist/case/title-case.d.ts +2 -3
  39. package/dist/case/title-case.js +1 -1
  40. package/dist/case/train-case.d.ts +2 -3
  41. package/dist/case/train-case.js +1 -1
  42. package/dist/case/upper-first.d.ts +2 -3
  43. package/dist/case/upper-first.js +1 -1
  44. package/dist/closest-string.js +1 -1
  45. package/dist/compare-similarity.js +1 -1
  46. package/dist/count-occurrences.d.ts +9 -0
  47. package/dist/count-occurrences.js +1 -0
  48. package/dist/direction.d.ts +7 -0
  49. package/dist/direction.js +1 -0
  50. package/dist/east-asian-width.d.ts +52 -0
  51. package/dist/east-asian-width.js +1 -0
  52. package/dist/excerpt.d.ts +25 -0
  53. package/dist/excerpt.js +53 -0
  54. package/dist/get-string-truncated-width.js +1 -1
  55. package/dist/get-string-width.js +1 -1
  56. package/dist/indent.d.ts +87 -0
  57. package/dist/indent.js +1 -0
  58. package/dist/index.d.ts +12 -205
  59. package/dist/index.js +1 -1
  60. package/dist/is-fullwidth-code-point.d.ts +7 -0
  61. package/dist/is-fullwidth-code-point.js +1 -0
  62. package/dist/levenshtein.d.ts +25 -0
  63. package/dist/levenshtein.js +1 -0
  64. package/dist/outdent.js +1 -1
  65. package/dist/packem_shared/_isFullWidth-Dqc3MWgl.js +1 -0
  66. package/dist/packem_shared/closest-C6YDQs4m.js +1 -0
  67. package/dist/packem_shared/constants-B7EE3d7a.js +1 -0
  68. package/dist/packem_shared/dedent-CPjAYUXh.js +1 -0
  69. package/dist/packem_shared/eastAsianWidth-DJV8Kqd-.js +1 -0
  70. package/dist/packem_shared/generate-cache-key-BqU1Cqwm.js +1 -0
  71. package/dist/packem_shared/indent-cz8WMI0e.js +1 -0
  72. package/dist/packem_shared/joinSegments-DwpAvf1_.js +1 -0
  73. package/dist/packem_shared/lru-cache-BtMSrYQJ.js +1 -0
  74. package/dist/packem_shared/normalize-german-eszett-hNMwtGjd.js +1 -0
  75. package/dist/packem_shared/redent-ByOoJ6fN.js +1 -0
  76. package/dist/packem_shared/{types.d-NJ4vcG-A.d.ts → types.d-CmNvyl4l.d.ts} +16 -2
  77. package/dist/packem_shared/{types.d-XxhGlCLZ.d.ts → types.d-fhe030jX.d.ts} +13 -3
  78. package/dist/replace-string.d.ts +10 -0
  79. package/dist/replace-string.js +1 -0
  80. package/dist/slice.js +1 -1
  81. package/dist/slugify.d.ts +1 -1
  82. package/dist/slugify.js +1 -1
  83. package/dist/test/utils.js +2 -2
  84. package/dist/test/vitest.js +1 -1
  85. package/dist/transliterate.d.ts +10 -0
  86. package/dist/{packem_shared/transliterate-D1p1yYE7.js → transliterate.js} +3 -3
  87. package/dist/truncate.js +1 -1
  88. package/dist/utilities.d.ts +1 -2
  89. package/dist/utilities.js +1 -1
  90. package/dist/word-similarity-sort.js +1 -1
  91. package/dist/word-wrap.js +7 -7
  92. package/package.json +37 -1
  93. package/dist/packem_shared/LRUCache-Dpk7Vnfr.js +0 -1
  94. package/dist/packem_shared/closest-uarbVSbs.js +0 -1
  95. package/dist/packem_shared/closestN-Daviv9V6.js +0 -1
  96. package/dist/packem_shared/constants-DmzZF6_u.js +0 -1
  97. package/dist/packem_shared/countOccurrences-DIHSCdcG.js +0 -1
  98. package/dist/packem_shared/direction-dtczwUOE.js +0 -1
  99. package/dist/packem_shared/eastAsianWidthType-GZeXsSGs.js +0 -1
  100. package/dist/packem_shared/excerpt-DhV2yoHG.js +0 -54
  101. package/dist/packem_shared/generate-cache-key-DPByFaMH.js +0 -1
  102. package/dist/packem_shared/indent-CDlPQmpe.js +0 -1
  103. package/dist/packem_shared/isFullwidthCodePoint-DJd4PBMe.js +0 -1
  104. package/dist/packem_shared/joinSegments-D27SxoCV.js +0 -1
  105. package/dist/packem_shared/lookup-CNDd-Nq4.js +0 -1
  106. package/dist/packem_shared/lru-cache.d-BVu2_gfi.d.ts +0 -12
  107. package/dist/packem_shared/normalize-german-eszett-AKfdw2MZ.js +0 -1
  108. package/dist/packem_shared/redent-BECVOaZp.js +0 -1
  109. package/dist/packem_shared/replaceString-aq-C7Wor.js +0 -1
  110. package/dist/packem_shared/stripIndent-Dt8hSxVM.js +0 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,37 @@
1
+ ## @visulima/string [3.0.0-alpha.17](https://github.com/visulima/visulima/compare/@visulima/string@3.0.0-alpha.16...@visulima/string@3.0.0-alpha.17) (2026-06-13)
2
+
3
+ ### Bug Fixes
4
+
5
+ * **string:** fix per-config char-width cache poisoning and dx gaps ([7e8dd51](https://github.com/visulima/visulima/commit/7e8dd51b1cc0cf71a8dbd6bae0d89d2cc3fb2403))
6
+ * **string:** revert wordWrap resetAnsiAtLineBreak to not defeat preserveAnsi ([cdd13d0](https://github.com/visulima/visulima/commit/cdd13d0bde781ab6c356a547f0584e0c87e64958))
7
+
8
+ ### Documentation
9
+
10
+ * **string:** refresh README ([ee62624](https://github.com/visulima/visulima/commit/ee626245007ecaf012925a21e9176e687029dbe8))
11
+
12
+ ### Code Refactoring
13
+
14
+ * **string:** apply prettier/eslint formatting cleanup ([697c076](https://github.com/visulima/visulima/commit/697c0769fa090a80631da4974ba0b0f5cee7b2d6))
15
+
16
+ ### Tests
17
+
18
+ * **string:** add regression tests for per-line ANSI re-coloring in wordWrap ([46ac426](https://github.com/visulima/visulima/commit/46ac4263ad9ad853d224227e24f4d9877be1d2d3))
19
+
20
+ ### Build System
21
+
22
+ * regenerate bundled-license manifests and types ordering ([af26588](https://github.com/visulima/visulima/commit/af26588d75aaa937fd4862800560bd4070a4878c))
23
+
24
+
25
+ ### Dependencies
26
+
27
+ * **@visulima/colorize:** upgraded to 2.0.0-alpha.14
28
+
29
+ ## @visulima/string [3.0.0-alpha.16](https://github.com/visulima/visulima/compare/@visulima/string@3.0.0-alpha.15...@visulima/string@3.0.0-alpha.16) (2026-06-04)
30
+
31
+ ### Performance Improvements
32
+
33
+ * **string:** disable esbuild keepNames in prod build ([8de9067](https://github.com/visulima/visulima/commit/8de906769625aa282246f470d4ff6dbb76cc52b2))
34
+
1
35
  ## @visulima/string [3.0.0-alpha.15](https://github.com/visulima/visulima/compare/@visulima/string@3.0.0-alpha.14...@visulima/string@3.0.0-alpha.15) (2026-06-04)
2
36
 
3
37
  ### Bug Fixes
package/README.md CHANGED
@@ -555,6 +555,47 @@ sentenceCase("AJAXRequest"); // 'Ajax request'
555
555
  sentenceCase("QueryXML123String"); // 'Query xml 123 string'
556
556
  ```
557
557
 
558
+ #### flipCase
559
+
560
+ Flips the case of every character (lower → upper, upper → lower). Accepts the same `FlipOptions` (a `CaseOptions` minus `handleEmoji`) as the other case helpers, including `cache`, `locale`, `stripEmoji`, `stripAnsi`, and `handleAnsi`.
561
+
562
+ ```typescript
563
+ import { flipCase } from "@visulima/string";
564
+
565
+ flipCase("FooBar"); // 'fOObAR'
566
+ flipCase("foobar"); // 'FOOBAR'
567
+ flipCase("FOOBAR"); // 'foobar'
568
+ flipCase("XMLHttpRequest"); // 'xmlhTTPrEQUEST'
569
+ ```
570
+
571
+ #### identifyCase
572
+
573
+ Detects the case style of a string. Returns one of `"camel" | "pascal" | "snake" | "upper_snake" | "kebab" | "title" | "sentence" | "lower" | "upper" | "mixed" | "unknown"`. Throws a `TypeError` for non-string input.
574
+
575
+ ```typescript
576
+ import { identifyCase } from "@visulima/string";
577
+
578
+ identifyCase("fooBar"); // 'camel'
579
+ identifyCase("FooBar"); // 'pascal'
580
+ identifyCase("foo_bar"); // 'snake'
581
+ identifyCase("FOO_BAR"); // 'upper_snake'
582
+ identifyCase("foo-bar"); // 'kebab'
583
+ identifyCase("foo"); // 'lower'
584
+ identifyCase("FOO"); // 'upper'
585
+ identifyCase("FooBAR"); // 'mixed'
586
+ ```
587
+
588
+ ### Excerpt (HTML-aware truncation)
589
+
590
+ `excerpt` strips HTML tags and decodes entities, then truncates the resulting plain text to a character limit. It accepts the `TruncateOptions` (minus `position`, which is fixed to `"end"`). It throws a `TypeError` if `html` is not a string or `limit` is not a number.
591
+
592
+ ```typescript
593
+ import { excerpt } from "@visulima/string";
594
+
595
+ excerpt("<p>Hello <strong>world</strong>!</p>", 10); // 'Hello worl…'
596
+ excerpt("<div>This is a <em>long</em> text</div>", 20, { ellipsis: "..." }); // 'This is a long text'
597
+ ```
598
+
558
599
  ### String Width Calculation
559
600
 
560
601
  The package provides two functions for calculating string widths: `getStringWidth` for basic width calculation and `getStringTruncatedWidth` for width calculation with truncation support.
@@ -1076,13 +1117,14 @@ It transliterates non-ASCII characters using the `transliterate` function (if en
1076
1117
  - `allowedChars?: string`: Characters allowed in the slug. Others are replaced by `separator`. (Default: `"a-zA-Z0-9-_.~"`)
1077
1118
  - `fixChineseSpacing?: boolean`: Passed to `transliterate`. Determines if a space is added between transliterated Chinese characters (default: `true`).
1078
1119
  - `ignore?: string[]`: Passed to `transliterate`. Characters/strings to ignore during the initial transliteration phase (default: `[]`).
1079
- - `lowercase?: boolean`: Convert to lowercase. (Default: `true`). Cannot be true if `uppercase` is true.
1120
+ - `locale?: string`: Locale-aware transliteration. When set, locale-specific replacements are applied _before_ the global character map, so e.g. German `ö` becomes `oe` and Serbian `đ` becomes `dj`. Only the primary subtag is used (so `"de-DE"` resolves to `"de"`); unknown locales fall back to the global map. Supported locales: `de`, `da`, `nb`, `sr`, `tr`, `vi`. (Default: `undefined`).
1121
+ - `lowercase?: boolean`: Convert to lowercase. (Default: `true`). Cannot be `true` if `uppercase` is `true` — passing both throws a `TypeError`.
1080
1122
  - `replaceAfter?: OptionReplaceCombined`: Passed to `transliterate`. Search/replace pairs to apply _after_ the character map transliteration but _before_ slugification logic (default: `[]`).
1081
1123
  - `replaceBefore?: OptionReplaceCombined`: Passed to `transliterate`. Search/replace pairs to apply _before_ any transliteration (default: `[]`).
1082
1124
  - `separator?: string`: Custom separator. (Default: `"-"`).
1083
1125
  - `transliterate?: boolean`: Whether to perform the initial transliteration of non-ASCII characters. If `false`, only case conversion and character filtering/replacement are performed on the input string. (Default: `true`).
1084
1126
  - `unknown?: string`: Passed to `transliterate`. Character to use for unknown characters during transliteration (default: `""`).
1085
- - `uppercase?: boolean`: Convert to uppercase. (Default: `false`). Cannot be true if `lowercase` is true.
1127
+ - `uppercase?: boolean`: Convert to uppercase. (Default: `false`). Cannot be `true` if `lowercase` is `true` — passing both throws a `TypeError`.
1086
1128
 
1087
1129
  **Returns:**
1088
1130
 
@@ -1101,8 +1143,44 @@ slugify("FOO BAR", { lowercase: false, uppercase: true }); // 'FOO-BAR'
1101
1143
  slugify("foo bar baz", { separator: "_", allowedChars: "a-z_" }); // 'foo_bar_baz'
1102
1144
  slugify("Keep C++", { replaceBefore: { "C++": "cpp" } }); // 'keep-cpp'
1103
1145
  slugify("Keep !@#$", { allowedChars: "a-z!@$" }); // 'keep!@$'
1146
+
1147
+ // Locale-aware transliteration
1148
+ slugify("Käse-Spätzle", { locale: "de" }); // 'kaese-spaetzle'
1149
+ slugify("Đorđe", { locale: "sr" }); // 'djordje'
1104
1150
  ```
1105
1151
 
1152
+ ### String Similarity
1153
+
1154
+ The package ships several similarity helpers built on Levenshtein edit distance, useful for "did you mean?" UX, fuzzy matching, and sorting suggestions.
1155
+
1156
+ ```typescript
1157
+ import { closest, closestN, compareSimilarity, closestString, distance, similarity, wordSimilaritySort } from "@visulima/string";
1158
+
1159
+ // Raw Levenshtein edit distance (number of single-character edits).
1160
+ distance("kitten", "sitting"); // 3
1161
+
1162
+ // Normalized similarity score in the range [0, 1] (1 === identical).
1163
+ similarity("kitten", "sitting"); // ~0.571
1164
+ similarity("foo", "foo"); // 1
1165
+
1166
+ // The single closest match from a list.
1167
+ closest("fast", ["slow", "faster", "fastest"]); // 'faster'
1168
+
1169
+ // The N closest matches, best-first.
1170
+ closestN("fast", ["slow", "faster", "fastest", "fanta"], 2); // ['faster', 'fastest']
1171
+
1172
+ // Find the closest string (with options), e.g. for command suggestions.
1173
+ closestString("instal", ["install", "uninstall", "list"]); // 'install'
1174
+
1175
+ // Sort an array by similarity to a target string.
1176
+ wordSimilaritySort("hlelo", ["hello", "world", "help"]); // ['hello', 'help', 'world']
1177
+
1178
+ // A comparator you can pass to Array#sort.
1179
+ ["bar", "baz", "foo"].sort(compareSimilarity("ba")); // ['bar', 'baz', 'foo']
1180
+ ```
1181
+
1182
+ > `compareSimilarity`, `closestString`, and `wordSimilaritySort` accept an options object (`CompareSimilarityOptions` / `ClosestStringOptions` / `WordSimilaritySortOptions`) — see the inline JSDoc for details.
1183
+
1106
1184
  ### Text Alignment
1107
1185
 
1108
1186
  The `alignText` function aligns text (including multi-line strings and strings with ANSI escape codes) to the left, center, or right. It can handle both single strings (which can be split into lines based on the `split` option) and arrays of strings.
@@ -1,2 +1,2 @@
1
- var m=Object.defineProperty;var h=(t,r)=>m(t,"name",{value:r,configurable:!0});import{getStringWidth as d}from"./get-string-width.js";var u=Object.defineProperty,l=h((t,r)=>u(t,"name",{value:r,configurable:!0}),"n");const x=l((t,r)=>Math.floor((t-r)/2),"halfDiff"),y=l((t,r)=>t-r,"fullDiff"),A=l((t,r={})=>{const o=r.align??"center";if(o==="left")return t;const f=r.split??`
2
- `,p=r.pad??" ",c=o==="right"?y:x;let s=!1,n;Array.isArray(t)?n=t:(s=!0,n=t.split(f));let a,i=0;const g=n.map(e=>(a=d(e,r.stringWidthOptions),i=Math.max(a,i),{str:e,width:a})).map(e=>Array.from({length:c(i,e.width)+1}).join(p)+e.str);return s?g.join(f):g},"alignText");export{A as alignText};
1
+ import{getStringWidth as f}from"./get-string-width.js";const m=(t,r)=>Math.floor((t-r)/2),c=(t,r)=>t-r,u=(t,r={})=>{const s=r.align??"center";if(s==="left")return t;const a=r.split??`
2
+ `,g=r.pad??" ",h=s==="right"?c:m;let l=!1,i;Array.isArray(t)?i=t:(l=!0,i=t.split(a));let o,e=0;const p=i.map(n=>(o=f(n,r.stringWidthOptions),e=Math.max(o,e),{str:n,width:o})).map(n=>Array.from({length:h(e,n.width)+1}).join(g)+n.str);return l?p.join(a):p};export{u as alignText};
@@ -1,6 +1,5 @@
1
- import { C as CaseOptions, a as CamelCase } from "../packem_shared/types.d-XxhGlCLZ.js";
2
- import "../packem_shared/types.d-NJ4vcG-A.js";
3
- import "../packem_shared/lru-cache.d-BVu2_gfi.js";
1
+ import { b as CaseOptions, C as CamelCase } from "../packem_shared/types.d-fhe030jX.js";
2
+ import "../packem_shared/types.d-CmNvyl4l.js";
4
3
  /**
5
4
  * Converts a string to camelCase.
6
5
  * @param value The string to convert.
@@ -1 +1 @@
1
- var p=Object.defineProperty;var c=(r,o)=>p(r,"name",{value:o,configurable:!0});import{R as f}from"../packem_shared/constants-DmzZF6_u.js";import h from"../packem_shared/LRUCache-Dpk7Vnfr.js";import u from"./lower-first.js";import{splitByCase as d}from"./split-by-case.js";import A from"./upper-first.js";import{a as E}from"../packem_shared/generate-cache-key-DPByFaMH.js";import j from"../packem_shared/joinSegments-D27SxoCV.js";import{l as w}from"../packem_shared/normalize-german-eszett-AKfdw2MZ.js";var y=Object.defineProperty,v=c((r,o)=>y(r,"name",{value:o,configurable:!0}),"o");const C=new h(1e3),x=v((r,o)=>{if(typeof r!="string"||!r)return"";const s=o?.cache??!1,a=o?.cacheStore??C;let t;if(s&&(t=E(r,o)),s&&t&&a.has(t))return a.get(t);let i=!0;const n=j(d(r,{handleAnsi:o?.handleAnsi,handleEmoji:o?.handleEmoji,knownAcronyms:o?.knownAcronyms,locale:o?.locale,normalize:o?.normalize,separators:void 0,stripAnsi:o?.stripAnsi,stripEmoji:o?.stripEmoji}).map(e=>{if(o?.handleAnsi&&f.test(e))return e;const l=o?.locale?.startsWith("de")?w(e):e,m=o?.locale?l.toLocaleLowerCase(o.locale):l.toLowerCase();return i?(i=!1,u(m,o)):A(m,o)}),"");return s&&t&&a.set(t,n),n},"camelCase");export{x as default};
1
+ import{c}from"../packem_shared/constants-B7EE3d7a.js";import{i as p}from"../packem_shared/lru-cache-BtMSrYQJ.js";import f from"./lower-first.js";import{splitByCase as A}from"./split-by-case.js";import h from"./upper-first.js";import{n as d}from"../packem_shared/generate-cache-key-BqU1Cqwm.js";import u from"../packem_shared/joinSegments-DwpAvf1_.js";import{a as w}from"../packem_shared/normalize-german-eszett-hNMwtGjd.js";const y=new p(1e3),_=(t,o)=>{if(typeof t!="string"||!t)return"";const i=o?.cache??!1,n=o?.cacheStore??y;let r;if(i&&(r=d(t,o)),i&&r&&n.has(r))return n.get(r);let a=!0;const e=u(A(t,{handleAnsi:o?.handleAnsi,handleEmoji:o?.handleEmoji,knownAcronyms:o?.knownAcronyms,locale:o?.locale,normalize:o?.normalize,separators:void 0,stripAnsi:o?.stripAnsi,stripEmoji:o?.stripEmoji}).map(s=>{if(o?.handleAnsi&&c.test(s))return s;const m=o?.locale?.startsWith("de")?w(s):s,l=o?.locale?m.toLocaleLowerCase(o.locale):m.toLowerCase();return a?(a=!1,f(l,o)):h(l,o)}),"");return i&&r&&n.set(r,e),e};export{_ as default};
@@ -1,6 +1,5 @@
1
- import { C as CaseOptions, b as CapitalCase } from "../packem_shared/types.d-XxhGlCLZ.js";
2
- import "../packem_shared/types.d-NJ4vcG-A.js";
3
- import "../packem_shared/lru-cache.d-BVu2_gfi.js";
1
+ import { b as CaseOptions, a as CapitalCase } from "../packem_shared/types.d-fhe030jX.js";
2
+ import "../packem_shared/types.d-CmNvyl4l.js";
4
3
  /**
5
4
  * Converts a string to Capital Case.
6
5
  * @example
@@ -1 +1 @@
1
- var c=Object.defineProperty;var l=(r,o)=>c(r,"name",{value:o,configurable:!0});import{R as p}from"../packem_shared/constants-DmzZF6_u.js";import f from"../packem_shared/LRUCache-Dpk7Vnfr.js";import{splitByCase as h}from"./split-by-case.js";import u from"./upper-first.js";import{a as A}from"../packem_shared/generate-cache-key-DPByFaMH.js";import d from"../packem_shared/joinSegments-D27SxoCV.js";import{l as y}from"../packem_shared/normalize-german-eszett-AKfdw2MZ.js";var j=Object.defineProperty,w=l((r,o)=>j(r,"name",{value:o,configurable:!0}),"l");const E=new f(1e3),R=w((r,o)=>{if(typeof r!="string")return"";const e=o?.cache??!1,s=o?.cacheStore??E;let a;if(e&&(a=A(r,o)),e&&a&&s.has(a))return s.get(a);const m=h(r,{handleAnsi:o?.handleAnsi,handleEmoji:o?.handleEmoji,knownAcronyms:o?.knownAcronyms,locale:o?.locale,normalize:o?.normalize,separators:void 0,stripAnsi:o?.stripAnsi,stripEmoji:o?.stripEmoji}).map(t=>{if(p.test(t))return t;const n=o?.locale?.startsWith("de")?y(t):t;return u(o?.locale?n.toLocaleLowerCase(o.locale):n.toLocaleLowerCase(),o)}),i=d(m," ");return e&&a&&s.set(a,i),i},"capitalCase");export{R as default};
1
+ import{c as m}from"../packem_shared/constants-B7EE3d7a.js";import{i as c}from"../packem_shared/lru-cache-BtMSrYQJ.js";import{splitByCase as p}from"./split-by-case.js";import f from"./upper-first.js";import{n as h}from"../packem_shared/generate-cache-key-BqU1Cqwm.js";import A from"../packem_shared/joinSegments-DwpAvf1_.js";import{a as d}from"../packem_shared/normalize-german-eszett-hNMwtGjd.js";const u=new c(1e3),S=(s,o)=>{if(typeof s!="string")return"";const i=o?.cache??!1,a=o?.cacheStore??u;let r;if(i&&(r=h(s,o)),i&&r&&a.has(r))return a.get(r);const l=p(s,{handleAnsi:o?.handleAnsi,handleEmoji:o?.handleEmoji,knownAcronyms:o?.knownAcronyms,locale:o?.locale,normalize:o?.normalize,separators:void 0,stripAnsi:o?.stripAnsi,stripEmoji:o?.stripEmoji}).map(t=>{if(m.test(t))return t;const e=o?.locale?.startsWith("de")?d(t):t;return f(o?.locale?e.toLocaleLowerCase(o.locale):e.toLocaleLowerCase(),o)}),n=A(l," ");return i&&r&&a.set(r,n),n};export{S as default};
@@ -1,6 +1,5 @@
1
- import { C as CaseOptions, c as ConstantCase } from "../packem_shared/types.d-XxhGlCLZ.js";
2
- import "../packem_shared/types.d-NJ4vcG-A.js";
3
- import "../packem_shared/lru-cache.d-BVu2_gfi.js";
1
+ import { b as CaseOptions, c as ConstantCase } from "../packem_shared/types.d-fhe030jX.js";
2
+ import "../packem_shared/types.d-CmNvyl4l.js";
4
3
  /**
5
4
  * Converts a string to CONSTANT_CASE.
6
5
  * @example
@@ -1 +1 @@
1
- var t=Object.defineProperty;var a=(e,r)=>t(e,"name",{value:r,configurable:!0});import o from"../packem_shared/LRUCache-Dpk7Vnfr.js";import{kebabCase as n}from"./kebab-case.js";var s=Object.defineProperty,c=a((e,r)=>s(e,"name",{value:r,configurable:!0}),"s");const p=new o(1e3),u=c((e,r)=>n(e,{cacheStore:p,...r,joiner:"_",toUpperCase:!0}),"constantCase");export{u as default};
1
+ import{i as r}from"../packem_shared/lru-cache-BtMSrYQJ.js";import{kebabCase as t}from"./kebab-case.js";const a=new r(1e3),m=(e,o)=>t(e,{cacheStore:a,...o,joiner:"_",toUpperCase:!0});export{m as default};
@@ -1,6 +1,5 @@
1
- import { C as CaseOptions, D as DotCase } from "../packem_shared/types.d-XxhGlCLZ.js";
2
- import "../packem_shared/types.d-NJ4vcG-A.js";
3
- import "../packem_shared/lru-cache.d-BVu2_gfi.js";
1
+ import { b as CaseOptions, D as DotCase } from "../packem_shared/types.d-fhe030jX.js";
2
+ import "../packem_shared/types.d-CmNvyl4l.js";
4
3
  /**
5
4
  * Converts a string to dot.case.
6
5
  * @example
@@ -1 +1 @@
1
- var a=Object.defineProperty;var o=(e,r)=>a(e,"name",{value:r,configurable:!0});import t from"../packem_shared/LRUCache-Dpk7Vnfr.js";import{kebabCase as n}from"./kebab-case.js";var i=Object.defineProperty,s=o((e,r)=>i(e,"name",{value:r,configurable:!0}),"o");const c=new t(1e3),p=s((e,r)=>n(e,{cacheStore:c,...r,joiner:"."}),"dotCase");export{p as default};
1
+ import{i as r}from"../packem_shared/lru-cache-BtMSrYQJ.js";import{kebabCase as a}from"./kebab-case.js";const t=new r(1e3),c=(e,o)=>a(e,{cacheStore:t,...o,joiner:"."});export{c as default};
@@ -1,6 +1,5 @@
1
- import { C as CaseOptions, F as FlatCase } from "../packem_shared/types.d-XxhGlCLZ.js";
2
- import "../packem_shared/types.d-NJ4vcG-A.js";
3
- import "../packem_shared/lru-cache.d-BVu2_gfi.js";
1
+ import { b as CaseOptions, F as FlatCase } from "../packem_shared/types.d-fhe030jX.js";
2
+ import "../packem_shared/types.d-CmNvyl4l.js";
4
3
  /**
5
4
  * Converts a string to flat case (all lowercase, no separators).
6
5
  * @example
@@ -1 +1 @@
1
- var o=Object.defineProperty;var r=(e,a)=>o(e,"name",{value:a,configurable:!0});import t from"../packem_shared/LRUCache-Dpk7Vnfr.js";import{kebabCase as n}from"./kebab-case.js";var f=Object.defineProperty,i=r((e,a)=>f(e,"name",{value:a,configurable:!0}),"s");const s=new t(1e3),l=i((e,a)=>n(e,{cacheStore:s,...a,joiner:""}),"flatCase");export{l as default};
1
+ import{i as r}from"../packem_shared/lru-cache-BtMSrYQJ.js";import{kebabCase as t}from"./kebab-case.js";const a=new r(1e3),c=(e,o)=>t(e,{cacheStore:a,...o,joiner:""});export{c as default};
@@ -1,6 +1,5 @@
1
- import { C as CaseOptions, d as FlipCase } from "../packem_shared/types.d-XxhGlCLZ.js";
2
- import "../packem_shared/types.d-NJ4vcG-A.js";
3
- import "../packem_shared/lru-cache.d-BVu2_gfi.js";
1
+ import { b as CaseOptions, d as FlipCase } from "../packem_shared/types.d-fhe030jX.js";
2
+ import "../packem_shared/types.d-CmNvyl4l.js";
4
3
  /**
5
4
  * Options specific to flip case operations.
6
5
  * Note: handleEmoji is not needed as the function preserves emojis by default
@@ -1 +1 @@
1
- var g=Object.defineProperty;var u=(r,e)=>g(r,"name",{value:e,configurable:!0});import{createRequire as h}from"node:module";import{s as j}from"../packem_shared/constants-DmzZF6_u.js";import b from"../packem_shared/LRUCache-Dpk7Vnfr.js";import{a as v}from"../packem_shared/generate-cache-key-DPByFaMH.js";const d=h(import.meta.url),l=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,_=u(r=>{if(typeof l<"u"&&l.versions&&l.versions.node){const[e,s]=l.versions.node.split(".").map(Number);if(e>22||e===22&&s>=3||e===20&&s>=16)return l.getBuiltinModule(r)}return d(r)},"__cjs_getBuiltinModule"),{stripVTControlCharacters:C}=_("node:util");var y=Object.defineProperty,T=u((r,e)=>y(r,"name",{value:e,configurable:!0}),"f");const L=new b(1e3),E=T((r,e)=>{if(typeof r!="string"||r.length===0)return"";const s=e?.cache??!1,c=e?.cacheStore??L;let n;if(s&&(n=v(r,e)),s&&n&&c.has(n))return c.get(n);let o=r;e?.stripEmoji&&(o=j(o)),e?.stripAnsi&&(o=C(o));let a="",t=0;for(;t<o.length;){if(e?.handleAnsi&&o[t]==="\x1B"){let f=o[t];for(t+=1;t<o.length&&o[t]!=="m";)f+=o[t],t+=1;t<o.length&&(f+=o[t],a+=f),t+=1;continue}const i=o[t],m=e?.locale?i.toLocaleLowerCase(e.locale):i.toLowerCase();let p;i===m?p=e?.locale?i.toLocaleUpperCase(e.locale):i.toUpperCase():p=m,a+=p,t+=1}return s&&n&&c.set(n,a),a},"flipCase");export{E as flipCase};
1
+ import{createRequire as m}from"node:module";import{s as _}from"../packem_shared/constants-B7EE3d7a.js";import{i as j}from"../packem_shared/lru-cache-BtMSrYQJ.js";import{n as C}from"../packem_shared/generate-cache-key-BqU1Cqwm.js";const h=m(import.meta.url),l=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,d=s=>{if(typeof l<"u"&&l.versions&&l.versions.node){const[e,n]=l.versions.node.split(".").map(Number);if(e>22||e===22&&n>=3||e===20&&n>=16)return l.getBuiltinModule(s)}return h(s)},{stripVTControlCharacters:g}=d("node:util"),b=new j(1e3),v=(s,e)=>{if(typeof s!="string"||s.length===0)return"";const n=e?.cache??!1,a=e?.cacheStore??b;let r;if(n&&(r=C(s,e)),n&&r&&a.has(r))return a.get(r);let o=s;e?.stripEmoji&&(o=_(o)),e?.stripAnsi&&(o=g(o));let c="",t=0;for(;t<o.length;){if(e?.handleAnsi&&o[t]==="\x1B"){let f=o[t];for(t+=1;t<o.length&&o[t]!=="m";)f+=o[t],t+=1;t<o.length&&(f+=o[t],c+=f),t+=1;continue}const i=o[t],u=e?.locale?i.toLocaleLowerCase(e.locale):i.toLowerCase();let p;i===u?p=e?.locale?i.toLocaleUpperCase(e.locale):i.toUpperCase():p=u,c+=p,t+=1}return n&&r&&a.set(r,c),c};export{v as flipCase};
@@ -1,6 +1,5 @@
1
- import { I as IdentifyCase } from "../packem_shared/types.d-XxhGlCLZ.js";
2
- import "../packem_shared/types.d-NJ4vcG-A.js";
3
- import "../packem_shared/lru-cache.d-BVu2_gfi.js";
1
+ import { I as IdentifyCase } from "../packem_shared/types.d-fhe030jX.js";
2
+ import "../packem_shared/types.d-CmNvyl4l.js";
4
3
  /**
5
4
  * Identifies the case style of a string.
6
5
  * @example
@@ -1 +1 @@
1
- var a=Object.defineProperty;var s=(e,t)=>a(e,"name",{value:t,configurable:!0});var i=Object.defineProperty,u=s((e,t)=>i(e,"name",{value:t,configurable:!0}),"s");const n=/^([A-Z][a-z]*)+$/,l=/[a-z]/i,o=/^[A-Z0-9_]+$/,p=/^[a-z0-9_]+$/,f=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,c=/^[a-z ]+$/,z=/^[A-Z][A-Z0-9]*$/,d=/\s+/,$=/^\d+$/,g=/^[a-z][a-z0-9]*(?:[A-Z][a-z0-9]*)+$/,A=/^[a-z]/,b=/[.!?;:,](?!\s|$)/,m=u(e=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(!e||!l.test(e))return"unknown";if(e.includes("_"))return o.test(e)?"upper_snake":p.test(e)?"snake":"mixed";if(e.includes("-"))return f.test(e)?"kebab":"mixed";if(c.test(e))return"lower";if(z.test(e))return"upper";const t=e.split(d);return t.length>1&&t.every(r=>n.test(r))||t.length>1&&$.test(t[0])&&n.test(t[1])?"title":t.length>1&&n.test(t[0])&&A.test(t[1])?"sentence":n.test(e)?"pascal":g.test(e)?"camel":b.test(e)?"unknown":"mixed"},"identifyCase");export{m as default};
1
+ const n=/^([A-Z][a-z]*)+$/,r=/[a-z]/i,a=/^[A-Z0-9_]+$/,i=/^[a-z0-9_]+$/,u=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,l=/^[a-z ]+$/,o=/^[A-Z][A-Z0-9]*$/,p=/\s+/,z=/^\d+$/,c=/^[a-z][a-z0-9]*(?:[A-Z][a-z0-9]*)+$/,f=/^[a-z]/,$=/[.!?;:,](?!\s|$)/,d=e=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(!e||!r.test(e))return"unknown";if(e.includes("_"))return a.test(e)?"upper_snake":i.test(e)?"snake":"mixed";if(e.includes("-"))return u.test(e)?"kebab":"mixed";if(l.test(e))return"lower";if(o.test(e))return"upper";const t=e.split(p);return t.length>1&&t.every(s=>n.test(s))||t.length>1&&z.test(t[0])&&n.test(t[1])?"title":t.length>1&&n.test(t[0])&&f.test(t[1])?"sentence":n.test(e)?"pascal":c.test(e)?"camel":$.test(e)?"unknown":"mixed"};export{d as default};
@@ -1,4 +1,4 @@
1
- export { type N as NodeLocale } from "../packem_shared/types.d-NJ4vcG-A.js";
1
+ export type { N as NodeLocale } from "../packem_shared/types.d-CmNvyl4l.js";
2
2
  export { default as camelCase } from "./camel-case.js";
3
3
  export { default as capitalCase } from "./capital-case.js";
4
4
  export { default as constantCase } from "./constant-case.js";
@@ -17,9 +17,8 @@ export { default as snakeCase } from "./snake-case.js";
17
17
  export { type SplitOptions, splitByCase } from "./split-by-case.js";
18
18
  export { default as titleCase } from "./title-case.js";
19
19
  export { default as trainCase } from "./train-case.js";
20
- export { type a as CamelCase, type b as CapitalCase, type C as CaseOptions, type c as ConstantCase, type D as DotCase, type F as FlatCase, type d as FlipCase, type I as IdentifyCase, type K as KebabCase, type L as LocaleOptions, type e as LowerFirst, type N as NoCase, type P as PascalCase, type f as PascalSnakeCase, type g as PathCase, type S as SentenceCase, type h as SnakeCase, type i as SplitByCase, type T as TitleCase, type j as TrainCase, type U as UpperFirst } from "../packem_shared/types.d-XxhGlCLZ.js";
20
+ export type { C as CamelCase, a as CapitalCase, b as CaseOptions, c as ConstantCase, D as DotCase, F as FlatCase, d as FlipCase, I as IdentifyCase, K as KebabCase, L as LocaleOptions, e as LowerFirst, N as NoCase, P as PascalCase, f as PascalSnakeCase, g as PathCase, S as SentenceCase, h as SnakeCase, i as SplitByCase, T as TitleCase, j as TrainCase, U as UpperFirst } from "../packem_shared/types.d-fhe030jX.js";
21
21
  export { default as upperFirst } from "./upper-first.js";
22
- import "../packem_shared/lru-cache.d-BVu2_gfi.js";
23
22
  /**
24
23
  * Joins segments with a joiner, handling ANSI sequences and emojis correctly.
25
24
  * @param segments Array of segments to join
@@ -1 +1 @@
1
- import{default as t}from"./camel-case.js";import{default as r}from"./capital-case.js";import{default as f}from"./constant-case.js";import{default as l}from"./dot-case.js";import{default as x}from"./flat-case.js";import{flipCase as u}from"./flip-case.js";import{default as n}from"./identify-case.js";import{kebabCase as c}from"./kebab-case.js";import{default as b}from"./lower-first.js";import{default as F}from"./no-case.js";import{default as g}from"./pascal-case.js";import{default as j}from"./pascal-snake-case.js";import{default as B}from"./path-case.js";import{default as v}from"./sentence-case.js";import{default as A}from"./snake-case.js";import{splitByCase as E}from"./split-by-case.js";import{default as H}from"./title-case.js";import{default as J}from"./train-case.js";import{default as L}from"./upper-first.js";import{default as N}from"../packem_shared/joinSegments-D27SxoCV.js";export{t as camelCase,r as capitalCase,f as constantCase,l as dotCase,x as flatCase,u as flipCase,n as identifyCase,N as joinSegments,c as kebabCase,b as lowerFirst,F as noCase,g as pascalCase,j as pascalSnakeCase,B as pathCase,v as sentenceCase,A as snakeCase,E as splitByCase,H as titleCase,J as trainCase,L as upperFirst};
1
+ import{default as t}from"./camel-case.js";import{default as r}from"./capital-case.js";import{default as f}from"./constant-case.js";import{default as l}from"./dot-case.js";import{default as x}from"./flat-case.js";import{flipCase as u}from"./flip-case.js";import{default as n}from"./identify-case.js";import{kebabCase as c}from"./kebab-case.js";import{default as b}from"./lower-first.js";import{default as F}from"./no-case.js";import{default as g}from"./pascal-case.js";import{default as j}from"./pascal-snake-case.js";import{default as B}from"./path-case.js";import{default as v}from"./sentence-case.js";import{default as A}from"./snake-case.js";import{splitByCase as E}from"./split-by-case.js";import{default as H}from"./title-case.js";import{default as J}from"./train-case.js";import{default as L}from"./upper-first.js";import{default as N}from"../packem_shared/joinSegments-DwpAvf1_.js";export{t as camelCase,r as capitalCase,f as constantCase,l as dotCase,x as flatCase,u as flipCase,n as identifyCase,N as joinSegments,c as kebabCase,b as lowerFirst,F as noCase,g as pascalCase,j as pascalSnakeCase,B as pathCase,v as sentenceCase,A as snakeCase,E as splitByCase,H as titleCase,J as trainCase,L as upperFirst};
@@ -1,6 +1,5 @@
1
- import { C as CaseOptions, K as KebabCase } from "../packem_shared/types.d-XxhGlCLZ.js";
2
- import "../packem_shared/types.d-NJ4vcG-A.js";
3
- import "../packem_shared/lru-cache.d-BVu2_gfi.js";
1
+ import { b as CaseOptions, K as KebabCase } from "../packem_shared/types.d-fhe030jX.js";
2
+ import "../packem_shared/types.d-CmNvyl4l.js";
4
3
  interface KebabCaseOptions extends CaseOptions {
5
4
  /**
6
5
  * String used to join words together in kebab case format.
@@ -1 +1 @@
1
- var m=Object.defineProperty;var l=(r,o)=>m(r,"name",{value:o,configurable:!0});import{R as p}from"../packem_shared/constants-DmzZF6_u.js";import f from"../packem_shared/LRUCache-Dpk7Vnfr.js";import{splitByCase as h}from"./split-by-case.js";import{a as u}from"../packem_shared/generate-cache-key-DPByFaMH.js";import A from"../packem_shared/joinSegments-D27SxoCV.js";import{l as d}from"../packem_shared/normalize-german-eszett-AKfdw2MZ.js";var C=Object.defineProperty,b=l((r,o)=>C(r,"name",{value:o,configurable:!0}),"o");const j=new f(1e3),S=b((r,o)=>{if(typeof r!="string")return"";const s=o?.cache??!1,a=o?.cacheStore??j;let e;if(s&&(e=u(r,o)),s&&e&&a.has(e))return a.get(e);const c=h(r,{handleAnsi:o?.handleAnsi,handleEmoji:o?.handleEmoji,knownAcronyms:o?.knownAcronyms,locale:o?.locale,normalize:o?.normalize,separators:void 0,stripAnsi:o?.stripAnsi,stripEmoji:o?.stripEmoji}).map(t=>{if(o?.handleAnsi&&p.test(t))return t;if(o?.toUpperCase)return o.locale?t.toLocaleUpperCase(o.locale):t.toUpperCase();const i=o?.locale?.startsWith("de")?d(t):t;return o?.locale?i.toLocaleLowerCase(o.locale):i.toLowerCase()}),n=A(c,o?.joiner??"-");return s&&e&&a.set(e,n),n},"kebabCase");export{S as kebabCase};
1
+ import{c}from"../packem_shared/constants-B7EE3d7a.js";import{i as m}from"../packem_shared/lru-cache-BtMSrYQJ.js";import{splitByCase as p}from"./split-by-case.js";import{n as f}from"../packem_shared/generate-cache-key-BqU1Cqwm.js";import h from"../packem_shared/joinSegments-DwpAvf1_.js";import{a as A}from"../packem_shared/normalize-german-eszett-hNMwtGjd.js";const d=new m(1e3),L=(s,o)=>{if(typeof s!="string")return"";const n=o?.cache??!1,e=o?.cacheStore??d;let r;if(n&&(r=f(s,o)),n&&r&&e.has(r))return e.get(r);const l=p(s,{handleAnsi:o?.handleAnsi,handleEmoji:o?.handleEmoji,knownAcronyms:o?.knownAcronyms,locale:o?.locale,normalize:o?.normalize,separators:void 0,stripAnsi:o?.stripAnsi,stripEmoji:o?.stripEmoji}).map(t=>{if(o?.handleAnsi&&c.test(t))return t;if(o?.toUpperCase)return o.locale?t.toLocaleUpperCase(o.locale):t.toUpperCase();const a=o?.locale?.startsWith("de")?A(t):t;return o?.locale?a.toLocaleLowerCase(o.locale):a.toLowerCase()}),i=h(l,o?.joiner??"-");return n&&r&&e.set(r,i),i};export{L as kebabCase};
@@ -1,6 +1,5 @@
1
- import { L as LocaleOptions, e as LowerFirst } from "../packem_shared/types.d-XxhGlCLZ.js";
2
- import "../packem_shared/types.d-NJ4vcG-A.js";
3
- import "../packem_shared/lru-cache.d-BVu2_gfi.js";
1
+ import { L as LocaleOptions, e as LowerFirst } from "../packem_shared/types.d-fhe030jX.js";
2
+ import "../packem_shared/types.d-CmNvyl4l.js";
4
3
  /**
5
4
  * Converts first character to lower case.
6
5
  * @param value The string to convert.
@@ -1 +1 @@
1
- var l=Object.defineProperty;var a=(e,o)=>l(e,"name",{value:o,configurable:!0});var t=Object.defineProperty,r=a((e,o)=>t(e,"name",{value:o,configurable:!0}),"s");const c=r((e,o)=>typeof e!="string"||e===""?"":(o?.locale?e[0].toLocaleLowerCase(o.locale):e[0].toLowerCase())+e.slice(1),"lowerFirst");export{c as default};
1
+ const a=(e,o)=>typeof e!="string"||e===""?"":(o?.locale?e[0].toLocaleLowerCase(o.locale):e[0].toLowerCase())+e.slice(1);export{a as default};
@@ -1,6 +1,5 @@
1
- import { C as CaseOptions, N as NoCase } from "../packem_shared/types.d-XxhGlCLZ.js";
2
- import "../packem_shared/types.d-NJ4vcG-A.js";
3
- import "../packem_shared/lru-cache.d-BVu2_gfi.js";
1
+ import { b as CaseOptions, N as NoCase } from "../packem_shared/types.d-fhe030jX.js";
2
+ import "../packem_shared/types.d-CmNvyl4l.js";
4
3
  /**
5
4
  * Converts a string to no case (space separated words).
6
5
  * @example
@@ -1 +1 @@
1
- var a=Object.defineProperty;var o=(e,r)=>a(e,"name",{value:r,configurable:!0});import t from"../packem_shared/LRUCache-Dpk7Vnfr.js";import{kebabCase as n}from"./kebab-case.js";var i=Object.defineProperty,s=o((e,r)=>i(e,"name",{value:r,configurable:!0}),"o");const c=new t(1e3),p=s((e,r)=>n(e,{cacheStore:c,...r,joiner:" "}),"noCase");export{p as default};
1
+ import{i as r}from"../packem_shared/lru-cache-BtMSrYQJ.js";import{kebabCase as a}from"./kebab-case.js";const t=new r(1e3),c=(e,o)=>a(e,{cacheStore:t,...o,joiner:" "});export{c as default};
@@ -1,6 +1,5 @@
1
- import { C as CaseOptions, P as PascalCase } from "../packem_shared/types.d-XxhGlCLZ.js";
2
- import "../packem_shared/types.d-NJ4vcG-A.js";
3
- import "../packem_shared/lru-cache.d-BVu2_gfi.js";
1
+ import { b as CaseOptions, P as PascalCase } from "../packem_shared/types.d-fhe030jX.js";
2
+ import "../packem_shared/types.d-CmNvyl4l.js";
4
3
  /**
5
4
  * Converts a string to PascalCase.
6
5
  * @param value The string to convert.
@@ -1 +1 @@
1
- var m=Object.defineProperty;var l=(r,o)=>m(r,"name",{value:o,configurable:!0});import{R as c}from"../packem_shared/constants-DmzZF6_u.js";import p from"../packem_shared/LRUCache-Dpk7Vnfr.js";import{splitByCase as f}from"./split-by-case.js";import h from"./upper-first.js";import{a as u}from"../packem_shared/generate-cache-key-DPByFaMH.js";import A from"../packem_shared/joinSegments-D27SxoCV.js";import{l as d}from"../packem_shared/normalize-german-eszett-AKfdw2MZ.js";var j=Object.defineProperty,w=l((r,o)=>j(r,"name",{value:o,configurable:!0}),"i");const y=new p(1e3),z=w((r,o)=>{if(typeof r!="string"||!r)return"";const e=o?.cache??!1,s=o?.cacheStore??y;let a;if(e&&(a=u(r,o)),e&&a&&s.has(a))return s.get(a);const n=A(f(r,{handleAnsi:o?.handleAnsi,handleEmoji:o?.handleEmoji,knownAcronyms:o?.knownAcronyms,locale:o?.locale,normalize:o?.normalize,separators:void 0,stripAnsi:o?.stripAnsi,stripEmoji:o?.stripEmoji}).map(t=>{if(o?.handleAnsi&&c.test(t))return t;const i=o?.locale?.startsWith("de")?d(t):t;return h(o?.locale?i.toLocaleLowerCase(o.locale):i.toLowerCase(),{locale:o?.locale})}),"");return e&&a&&s.set(a,n),n},"pascalCase");export{z as default};
1
+ import{c as e}from"../packem_shared/constants-B7EE3d7a.js";import{i as m}from"../packem_shared/lru-cache-BtMSrYQJ.js";import{splitByCase as c}from"./split-by-case.js";import p from"./upper-first.js";import{n as f}from"../packem_shared/generate-cache-key-BqU1Cqwm.js";import h from"../packem_shared/joinSegments-DwpAvf1_.js";import{a as A}from"../packem_shared/normalize-german-eszett-hNMwtGjd.js";const d=new m(1e3),L=(t,o)=>{if(typeof t!="string"||!t)return"";const n=o?.cache??!1,i=o?.cacheStore??d;let r;if(n&&(r=f(t,o)),n&&r&&i.has(r))return i.get(r);const a=h(c(t,{handleAnsi:o?.handleAnsi,handleEmoji:o?.handleEmoji,knownAcronyms:o?.knownAcronyms,locale:o?.locale,normalize:o?.normalize,separators:void 0,stripAnsi:o?.stripAnsi,stripEmoji:o?.stripEmoji}).map(s=>{if(o?.handleAnsi&&e.test(s))return s;const l=o?.locale?.startsWith("de")?A(s):s;return p(o?.locale?l.toLocaleLowerCase(o.locale):l.toLowerCase(),{locale:o?.locale})}),"");return n&&r&&i.set(r,a),a};export{L as default};
@@ -1,6 +1,5 @@
1
- import { C as CaseOptions, f as PascalSnakeCase } from "../packem_shared/types.d-XxhGlCLZ.js";
2
- import "../packem_shared/types.d-NJ4vcG-A.js";
3
- import "../packem_shared/lru-cache.d-BVu2_gfi.js";
1
+ import { b as CaseOptions, f as PascalSnakeCase } from "../packem_shared/types.d-fhe030jX.js";
2
+ import "../packem_shared/types.d-CmNvyl4l.js";
4
3
  /**
5
4
  * Converts a string to Pascal_Snake_Case.
6
5
  * @example
@@ -1 +1 @@
1
- var f=Object.defineProperty;var n=(r,e)=>f(r,"name",{value:e,configurable:!0});import l from"../packem_shared/LRUCache-Dpk7Vnfr.js";import m from"./no-case.js";import p from"./upper-first.js";import{a as s}from"../packem_shared/generate-cache-key-DPByFaMH.js";var u=Object.defineProperty,h=n((r,e)=>u(r,"name",{value:e,configurable:!0}),"n");const g=new l(1e3),S=h((r,e)=>{if(typeof r!="string")return"";const a=e?.cache??!1,o=e?.cacheStore??g;let t;if(a&&(t=s(r,e)),a&&t&&o.has(t))return o.get(t);const c=m(r,{...e,cache:!1}).split(" ").map(i=>p(i,{locale:e?.locale})).join("_");return a&&t&&o.set(t,c),c},"pascalSnakeCase");export{S as default};
1
+ import{i as n}from"../packem_shared/lru-cache-BtMSrYQJ.js";import l from"./no-case.js";import m from"./upper-first.js";import{n as p}from"../packem_shared/generate-cache-key-BqU1Cqwm.js";const s=new n(1e3),d=(r,t)=>{if(typeof r!="string")return"";const o=t?.cache??!1,c=t?.cacheStore??s;let e;if(o&&(e=p(r,t)),o&&e&&c.has(e))return c.get(e);const f=l(r,{...t,cache:!1}).split(" ").map(i=>m(i,{locale:t?.locale})).join("_");return o&&e&&c.set(e,f),f};export{d as default};
@@ -1,6 +1,5 @@
1
- import { C as CaseOptions, g as PathCase } from "../packem_shared/types.d-XxhGlCLZ.js";
2
- import "../packem_shared/types.d-NJ4vcG-A.js";
3
- import "../packem_shared/lru-cache.d-BVu2_gfi.js";
1
+ import { b as CaseOptions, g as PathCase } from "../packem_shared/types.d-fhe030jX.js";
2
+ import "../packem_shared/types.d-CmNvyl4l.js";
4
3
  /**
5
4
  * Converts a string to path/case.
6
5
  * @example
@@ -1 +1 @@
1
- var o=Object.defineProperty;var r=(e,a)=>o(e,"name",{value:a,configurable:!0});import t from"../packem_shared/LRUCache-Dpk7Vnfr.js";import{kebabCase as n}from"./kebab-case.js";var i=Object.defineProperty,s=r((e,a)=>i(e,"name",{value:a,configurable:!0}),"a");const c=new t(1e3),b=s((e,a)=>n(e,{cacheStore:c,...a,joiner:"/"}),"pathCase");export{b as default};
1
+ import{i as r}from"../packem_shared/lru-cache-BtMSrYQJ.js";import{kebabCase as t}from"./kebab-case.js";const a=new r(1e3),c=(e,o)=>t(e,{cacheStore:a,...o,joiner:"/"});export{c as default};
@@ -1,6 +1,5 @@
1
- import { C as CaseOptions, S as SentenceCase } from "../packem_shared/types.d-XxhGlCLZ.js";
2
- import "../packem_shared/types.d-NJ4vcG-A.js";
3
- import "../packem_shared/lru-cache.d-BVu2_gfi.js";
1
+ import { b as CaseOptions, S as SentenceCase } from "../packem_shared/types.d-fhe030jX.js";
2
+ import "../packem_shared/types.d-CmNvyl4l.js";
4
3
  /**
5
4
  * Converts a string to Sentence case.
6
5
  * @example
@@ -1 +1 @@
1
- var p=Object.defineProperty;var c=(o,r)=>p(o,"name",{value:r,configurable:!0});import{R as f}from"../packem_shared/constants-DmzZF6_u.js";import h from"../packem_shared/LRUCache-Dpk7Vnfr.js";import{splitByCase as u}from"./split-by-case.js";import A from"./upper-first.js";import{a as d}from"../packem_shared/generate-cache-key-DPByFaMH.js";import y from"../packem_shared/joinSegments-D27SxoCV.js";import{l as j}from"../packem_shared/normalize-german-eszett-AKfdw2MZ.js";var w=Object.defineProperty,E=c((o,r)=>w(o,"name",{value:r,configurable:!0}),"o");const v=new h(1e3),_=E((o,r)=>{if(typeof o!="string")return"";const a=r?.cache??!1,s=r?.cacheStore??v;let t;if(a&&(t=d(o,r)),a&&t&&s.has(t))return s.get(t);let i=!0;const n=y(u(o,{handleAnsi:r?.handleAnsi,handleEmoji:r?.handleEmoji,knownAcronyms:r?.knownAcronyms,locale:r?.locale,normalize:r?.normalize,separators:void 0,stripAnsi:r?.stripAnsi,stripEmoji:r?.stripEmoji}).map(e=>{if(r?.handleAnsi&&f.test(e))return e;const l=r?.locale?.startsWith("de")?j(e):e,m=r?.locale?l.toLocaleLowerCase(r.locale):l.toLowerCase();return i?(i=!1,A(m,r)):m})," ");return a&&t&&s.set(t,n),n},"sentenceCase");export{_ as default};
1
+ import{c}from"../packem_shared/constants-B7EE3d7a.js";import{i as p}from"../packem_shared/lru-cache-BtMSrYQJ.js";import{splitByCase as f}from"./split-by-case.js";import h from"./upper-first.js";import{n as A}from"../packem_shared/generate-cache-key-BqU1Cqwm.js";import d from"../packem_shared/joinSegments-DwpAvf1_.js";import{a as u}from"../packem_shared/normalize-german-eszett-hNMwtGjd.js";const w=new p(1e3),k=(s,o)=>{if(typeof s!="string")return"";const i=o?.cache??!1,a=o?.cacheStore??w;let r;if(i&&(r=A(s,o)),i&&r&&a.has(r))return a.get(r);let n=!0;const e=d(f(s,{handleAnsi:o?.handleAnsi,handleEmoji:o?.handleEmoji,knownAcronyms:o?.knownAcronyms,locale:o?.locale,normalize:o?.normalize,separators:void 0,stripAnsi:o?.stripAnsi,stripEmoji:o?.stripEmoji}).map(t=>{if(o?.handleAnsi&&c.test(t))return t;const l=o?.locale?.startsWith("de")?u(t):t,m=o?.locale?l.toLocaleLowerCase(o.locale):l.toLowerCase();return n?(n=!1,h(m,o)):m})," ");return i&&r&&a.set(r,e),e};export{k as default};
@@ -1,6 +1,5 @@
1
- import { C as CaseOptions, h as SnakeCase } from "../packem_shared/types.d-XxhGlCLZ.js";
2
- import "../packem_shared/types.d-NJ4vcG-A.js";
3
- import "../packem_shared/lru-cache.d-BVu2_gfi.js";
1
+ import { b as CaseOptions, h as SnakeCase } from "../packem_shared/types.d-fhe030jX.js";
2
+ import "../packem_shared/types.d-CmNvyl4l.js";
4
3
  /**
5
4
  * Converts a string to snake_case.
6
5
  * @example
@@ -1 +1 @@
1
- var o=Object.defineProperty;var a=(e,r)=>o(e,"name",{value:r,configurable:!0});import t from"../packem_shared/LRUCache-Dpk7Vnfr.js";import{kebabCase as n}from"./kebab-case.js";var s=Object.defineProperty,i=a((e,r)=>s(e,"name",{value:r,configurable:!0}),"s");const c=new t(1e3),p=i((e,r)=>n(e,{cacheStore:c,...r,joiner:"_"}),"snakeCase");export{p as default};
1
+ import{i as r}from"../packem_shared/lru-cache-BtMSrYQJ.js";import{kebabCase as t}from"./kebab-case.js";const a=new r(1e3),n=(e,o)=>t(e,{cacheStore:a,...o,joiner:"_"});export{n as default};
@@ -1,6 +1,5 @@
1
- import { L as LocaleOptions, i as SplitByCase } from "../packem_shared/types.d-XxhGlCLZ.js";
2
- import "../packem_shared/types.d-NJ4vcG-A.js";
3
- import "../packem_shared/lru-cache.d-BVu2_gfi.js";
1
+ import { L as LocaleOptions, i as SplitByCase } from "../packem_shared/types.d-fhe030jX.js";
2
+ import "../packem_shared/types.d-CmNvyl4l.js";
4
3
  /** Options for the `splitByCase` function. */
5
4
  interface SplitOptions extends LocaleOptions {
6
5
  /** Whether to handle ANSI escape sequences. (default: false) */
@@ -1 +1 @@
1
- var $=Object.defineProperty;var j=(e,s)=>$(e,"name",{value:s,configurable:!0});import{createRequire as V}from"node:module";import{i as b,s as ee,l as te,R as y,m as W,n as C,o as T,p as S,q as se,r as O,t as ne,u as M,v as P,w as G,x as re,y as ae,z as le,A as oe,B as ie,C as ce,D as he,E as pe,F as ue,G as fe,H as ge,I as Ae,J as Ee,K as Re,L as de,M as _e,N as K}from"../packem_shared/constants-DmzZF6_u.js";import Le from"../packem_shared/LRUCache-Dpk7Vnfr.js";const Z=V(import.meta.url),x=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Q=j(e=>{if(typeof x<"u"&&x.versions&&x.versions.node){const[s,h]=x.versions.node.split(".").map(Number);if(s>22||s===22&&h>=3||s===20&&h>=16)return x.getBuiltinModule(e)}return Z(e)},"__cjs_getBuiltinModule"),{stripVTControlCharacters:X}=Q("node:util");var Ce=Object.defineProperty,me=j((e,s)=>Ce(e,"name",{value:s,configurable:!0}),"a");const N=new Le(1e3),Ie=/[.*+?^${}()|[\]\\]/g,ke=me(e=>{const s=e.join("");if(N.has(s)){const E=N.get(s);return E.lastIndex=0,E}const h=e.map(E=>E.replaceAll(Ie,String.raw`\$&`)).join("|"),g=new RegExp(h,"g");return N.set(s,g),g},"getSeparatorsRegex");var Ue=Object.defineProperty,be=j((e,s)=>Ue(e,"name",{value:s,configurable:!0}),"t");const We=be(e=>{const s=[];let h=0,g;for(b.lastIndex=0;(g=b.exec(e))!==null;)g.index>h&&s.push(e.slice(h,g.index)),s.push(g[0]),h=b.lastIndex;return h<e.length&&s.push(e.slice(h)),s.filter(Boolean)},"splitByEmoji");var je=Object.defineProperty,A=j((e,s)=>je(e,"name",{value:s,configurable:!0}),"u");const xe=/[ČŠŽĐ]/i,z=new Uint8Array(128),D=new Uint8Array(128),J=new Uint8Array(128);for(let e=0;e<128;e++)z[e]=e>=65&&e<=90?1:0,D[e]=e>=97&&e<=122?1:0,J[e]=e>=48&&e<=57?1:0;const w=A(e=>z[e],"isUpper"),H=A(e=>D[e],"isLower"),v=A(e=>J[e],"isDigit"),U=A((e,s,h,g,E)=>{if(e.length===0)return[];let u=!1;const L=Object.values(s);for(const a of L)if(a(e[0])){u=!0;break}if(!u&&!h)return[e];const f=[...e],d=[];let n=f[0],l="other";const c=Object.entries(s);for(const a of c){const[r,i]=a;if(i(f[0])){l=r;break}}let t=h&&g?f[0]===f[0].toLocaleUpperCase(g):!1;for(let a=1;a<f.length;a++){const r=f[a];let i="other";for(const R of c){const[_,m]=R;if(m(r)){i=_;break}}const p=h&&g?r===r.toLocaleUpperCase(g):!1;let o=!1;E?o=E(l,i,t,p,r,a,f):(l!==i&&l!=="other"&&i!=="other"&&(o=!0),h&&i!=="other"&&!t&&p&&(o=!0)),o?(d.push(n),n=r):n+=r,l=i,h&&(t=p)}return n&&n.length>0&&d.push(n),d.length>0?d:[e]},"handleScriptTransitions"),ye=A((e,s,h,g)=>{if(h.size===0)return s;for(const E of h)if(e.startsWith(E,s))return g.push(E),s+E.length;return s},"detectAndProcessAcronym"),q=A((e,s=new Set)=>{if(e.length===0)return[];if(e.toUpperCase()===e)return[e];let h=0;const g=[],E=e.length;for(let u=1;u<E;u++){const L=ye(e,h,s,g);if(L!==h){h=L,u=h-1;continue}const f=e.codePointAt(u-1),d=e.codePointAt(u),n=f&&f<128&&w(f),l=d&&d<128&&w(d),c=f&&f<128&&H(f),t=f&&f<128&&v(f),a=d&&d<128&&v(d);if(c&&l){g.push(e.slice(h,u)),h=u;continue}if(t&&!a||!t&&a){g.push(e.slice(h,u)),h=u;continue}if(a&&!t){let r=!1,i=!1;if(u+1<E){const p=e.codePointAt(u+1);r=p&&p<128&&w(p),i=p&&p<128&&v(p)}if(!i&&r){g.push(e.slice(h,u),e.slice(u,u+1)),h=u+1;continue}}if(u+1<E){const r=e.codePointAt(u+1),i=r&&r<128&&H(r);if(n&&l&&i){const p=e.slice(h,u+1);s.has(p)||(g.push(e.slice(h,u)),h=u)}}}return h<E&&g.push(e.slice(h)),g.filter(u=>u!=="")},"splitCamelCaseFast"),F=A((e,s,h)=>{if(e.length===0)return[];const g=e===e.toLocaleUpperCase(s);if(s.startsWith("de")){if(!g&&e.replaceAll("ß","SS")===e.toLocaleUpperCase(s))return[e];const n=[...e],l=n.length,c=[];let t=n[0],a=n[0]===n[0].toLocaleUpperCase(s),r=a,i=a?0:-1;for(let p=1;p<l;p++){const o=n[p],R=o===o.toLocaleUpperCase(s);if(R===a)t+=o;else if(R)t&&t.length>0&&(c.push(t),t=o),r=!0,i=p;else{if(r&&p-i>1){const _=n[p-1],m=t.slice(0,-1);m&&m.length>0&&c.push(m),t=_+o}else t+=o;r=!1,i=-1}a=R}return t&&t.length>0&&c.push(t),c}if(s.startsWith("uk")||s.startsWith("ru")||s.startsWith("bg")||s.startsWith("sr")||s.startsWith("mk")||s.startsWith("be")){if(!W.test(e)&&!C.test(e))return[e];const n=[...e],l=n.length,c=[];let t=n[0];const a=n[0];let r;W.test(a)?r=1:C.test(a)?r=2:r=0;let i=a===a.toLocaleUpperCase(s);for(let o=1;o<l;o++){const R=n[o];let _;W.test(R)?_=1:C.test(R)?_=2:_=0;const m=R===R.toLocaleUpperCase(s);r!==_&&(r===1||r===2)&&(_===1||_===2)||_===r&&!i&&m?(c.push(t),t=R):t+=R,r=_,i=m}t&&t.length>0&&c.push(t);const p=[];for(let o=0;o<c.length;o++)o<c.length-1&&c[o].length===1&&C.test(c[o])&&W.test(c[o+1][0])?(p.push(c[o]+c[o+1]),o+=1):p.push(c[o]);return p}if(s.startsWith("el")){if(!T.test(e)&&!C.test(e))return[e];const n=[];S.lastIndex=0;let l;for(;(l=S.exec(e))!==null;)n.push(l[0]);n.length===0&&n.push(e);const c=[];if(n.length===1){const t=n[0];if(!t||!T.test(t[0])||t.length===1)return[t??e]}for(const t of n){if(!t)continue;if(!T.test(t[0])||t.length===1){c.push(t);continue}const a=t.length;let r=t[0],i=t[0]===t[0].toLocaleUpperCase(s);for(let p=1;p<a;p++){const o=t[p],R=o===o.toLocaleUpperCase(s);!i&&R?(c.push(r),r=o):r+=o,i=R}r&&c.push(r)}return c}if(s.startsWith("ja")||s.startsWith("ko")){const n=s.startsWith("ja"),l=n?{hiragana:A(t=>ne.test(t),"hiragana"),kanji:A(t=>O.test(t),"kanji"),katakana:A(t=>se.test(t),"katakana"),latin:A(t=>C.test(t),"latin")}:{hangul:A(t=>M.test(t),"hangul"),latin:A(t=>C.test(t),"latin")},c=new Set(["が","で","と","に","の","は","へ","も","や","を"]);if(n){const t=U(e,l,!1,s,(r,i)=>r==="hiragana"&&i==="katakana"||r==="katakana"&&i==="hiragana"||r==="hiragana"&&i==="latin"||r==="katakana"&&i==="latin"||r==="kanji"&&i==="latin"||r==="latin"&&(i==="hiragana"||i==="katakana"||i==="kanji")),a=[];for(const r of t){const i=r;i.length===1&&c.has(i)&&a.length>0?a[a.length-1]=a.at(-1)+i:a.push(i)}return a.length>0?a:[e]}return U(e,l,!1,s,(t,a)=>t==="hangul"&&a==="latin"||t==="latin"&&a==="hangul")}if(s.startsWith("sl")){const n=[...e],l=n.length,c=[];let t=n[0],a=n[0]===n[0].toLocaleUpperCase(s);for(let r=1;r<l;r++){const i=n[r],p=i===i.toLocaleUpperCase(s),o=xe.test(i),R=r<l-1&&n[r+1]===n[r+1].toLocaleUpperCase(s);!a&&p||o&&R?(c.push(t),t=i,o&&R&&(c.push(t),t="")):t+=i,a=p}return t&&t.length>0&&c.push(t),c}if(s.startsWith("zh"))return U(e,{han:A(n=>O.test(n),"han"),latin:A(n=>C.test(n),"latin")},!1,s);if(["ar","fa","he","ur"].includes(s.split("-")[0])){const n=A(l=>P.test(l)||G.test(l),"isRtlChar");return U(e,{latin:A(l=>C.test(l),"latin"),rtl:A(l=>n(l),"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 n=A(l=>re.test(l)||ae.test(l)||le.test(l)||oe.test(l)||ie.test(l)||ce.test(l)||he.test(l)||pe.test(l)||ue.test(l)||fe.test(l)||ge.test(l)||Ae.test(l)||Ee.test(l)||Re.test(l)||de.test(l)||_e.test(l),"isIndicChar");return U(e,{indic:A(l=>n(l),"indic"),latin:A(l=>C.test(l),"latin")},!1,s)}if(["be","bg","ru","sr","uk"].includes(s))return U(e,{cyrillic:A(n=>W.test(n),"cyrillic"),latin:A(n=>C.test(n),"latin")},!0,s);if(["ar","fa","he"].includes(s))return U(e,{latin:A(n=>C.test(n),"latin"),rtl:A(n=>P.test(n)||G.test(n),"rtl")},!1,s);if(s.startsWith("ko"))return U(e,{hangul:A(n=>M.test(n),"hangul"),latin:A(n=>C.test(n),"latin")},!1,s);if(s.startsWith("uz")){if(!W.test(e)&&!C.test(e))return[e];const n=[...e],l=n.length,c=[];let t=n[0],a=n[0]===n[0].toLocaleUpperCase(s);for(let r=1;r<l;r++){const i=n[r],p=i===i.toLocaleUpperCase(s);if(K.test(i)||K.test(n[r-1])){t+=i;continue}!a&&p?(c.push(t),t=i):t+=i,a=p}return t&&t.length>0&&c.push(t),c}const E=[...e],u=E.length,L=[];let f=E[0],d=E[0]===E[0].toLocaleUpperCase(s);for(const n of h)if(e.startsWith(n)){L.push(n),f=E[n.length],d=f===f.toLocaleUpperCase(s);break}for(let n=1;n<u;n++){const l=E[n],c=l===l.toLocaleUpperCase(s);let t=0;for(const a of h)if(e.startsWith(a,n)){L.push(f,a),t=a.length,f="";const r=a.at(-1);r&&(d=r===r.toLocaleUpperCase(s));break}if(t>0){n+=t-1;continue}!d&&c?(L.push(f),f=l):f+=l,d=c}return f&&L.push(f),L},"splitCamelCaseLocale"),Te=A((e,s,h)=>{const g=[],E=y.test(e)?e.split(y).filter(Boolean):[e];for(const u of E){const L=u;if(y.test(L))g.push(L);else{b.lastIndex=0;const f=b.test(L)?We(L).filter(Boolean):[L];for(const d of f)if(b.lastIndex=0,b.test(d))g.push(d);else if(s){const n=s.toLowerCase().split("-")[0];g.push(...F(d,n,h))}else g.push(...q(d,h))}}return g},"processTextWithAnsiEmoji"),Se=A((e,s={})=>{if(!e||typeof e!="string")return[];const{handleAnsi:h=!1,handleEmoji:g=!1,knownAcronyms:E=[],locale:u,normalize:L=!1,separators:f,stripAnsi:d=!1,stripEmoji:n=!1}=s,l=new Set([...E].toSorted((o,R)=>R.length-o.length));let c=e;d&&(c=X(c)),n&&(c=ee(c));let t;Array.isArray(f)?t=ke(f):f instanceof RegExp?t=f:t=te;const a=[];let r=c;const i=t.flags.includes("g")?t:new RegExp(t.source,`${t.flags}g`);for(;r.length>0;){const o=i.exec(r);if(!o){r===".."?a.push(".."):r==="."?a.push("."):r.length>0&&a.push(r);break}const R=o.index,_=o[0],m=_.length,B=r.slice(0,R),Y=r.slice(R+m);if(_.startsWith("../"))a.push(".."),r=r.slice(R+3);else if(_.startsWith("./"))a.push("."),r=r.slice(R+2);else if(R===0&&_==="..")a.push(".."),r=r.slice(2);else if(R===0&&_===".")a.push("."),r=r.slice(1);else{B.length>0&&a.push(B);let I=0;for(;(I=_.indexOf("../",I))!==-1;)a.push(".."),I+=3;for(I=0;(I=_.indexOf("./",I))!==-1;)(I===0||_[I-1]!==".")&&a.push("."),I+=2;let k=Y;for(;k.startsWith("../");)a.push(".."),k=k.slice(3);for(;k.startsWith("./");)a.push("."),k=k.slice(2);if(k===".."){a.push("..");break}else if(k==="."){a.push(".");break}else r=k}i.lastIndex=0}if(a.length===0){const o=c.split(t).filter(Boolean);a.push(...o)}let p=[];for(const o of a)h||g?p.push(...Te(o,u,l)):u?p.push(...F(o,u,l)):p.push(...q(o,l));return L&&(p=p.map(o=>l.has(o)?o:u&&o===o.toLocaleUpperCase(u)?o[0]+o.slice(1).toLocaleLowerCase(u):o.toUpperCase()===o&&!l.has(o)?o.slice(0,1)+o.slice(1).toLowerCase():o)),p},"splitByCase");export{Se as splitByCase};
1
+ import{createRequire as Y}from"node:module";import{b as m,s as Z,l as Q,c as x,m as W,n as C,o as N,p as B,q as S,r as X,t as M,u as ee,v as G,w as K,x as H,y as te,z as se,A as ne,B as re,C as le,D as oe,E as ie,F as ae,G as ce,H as he,I as ue,J as pe,K as fe,L as ge,M as Ae,N as Ee}from"../packem_shared/constants-B7EE3d7a.js";import{i as Re}from"../packem_shared/lru-cache-BtMSrYQJ.js";const F=Y(import.meta.url),b=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,V=e=>{if(typeof b<"u"&&b.versions&&b.versions.node){const[r,h]=b.versions.node.split(".").map(Number);if(r>22||r===22&&h>=3||r===20&&h>=16)return b.getBuiltinModule(e)}return F(e)},{stripVTControlCharacters:$}=V("node:util"),T=new Re(1e3),_e=/[.*+?^${}()|[\]\\]/g,Le=e=>{const r=e.join("");if(T.has(r)){const A=T.get(r);return A.lastIndex=0,A}const h=e.map(A=>A.replaceAll(_e,String.raw`\$&`)).join("|"),g=new RegExp(h,"g");return T.set(r,g),g},Ce=e=>{const r=[];let h=0,g;for(m.lastIndex=0;(g=m.exec(e))!==null;)g.index>h&&r.push(e.slice(h,g.index)),r.push(g[0]),h=m.lastIndex;return h<e.length&&r.push(e.slice(h)),r.filter(Boolean)},de=/[ČŠŽĐ]/i,P=new Uint8Array(128),v=new Uint8Array(128),z=new Uint8Array(128);for(let e=0;e<128;e++)P[e]=e>=65&&e<=90?1:0,v[e]=e>=97&&e<=122?1:0,z[e]=e>=48&&e<=57?1:0;const j=e=>P[e],O=e=>v[e],w=e=>z[e],k=(e,r,h,g,A)=>{if(e.length===0)return[];let p=!1;const L=Object.values(r);for(const l of L)if(l(e[0])){p=!0;break}if(!p&&!h)return[e];const f=[...e],R=[];let s=f[0],o="other";const c=Object.entries(r);for(const l of c){const[n,a]=l;if(a(f[0])){o=n;break}}let t=h&&g?f[0]===f[0].toLocaleUpperCase(g):!1;for(let l=1;l<f.length;l++){const n=f[l];let a="other";for(const E of c){const[_,d]=E;if(d(n)){a=_;break}}const u=h&&g?n===n.toLocaleUpperCase(g):!1;let i=!1;A?i=A(o,a,t,u,n,l,f):(o!==a&&o!=="other"&&a!=="other"&&(i=!0),h&&a!=="other"&&!t&&u&&(i=!0)),i?(R.push(s),s=n):s+=n,o=a,h&&(t=u)}return s&&s.length>0&&R.push(s),R.length>0?R:[e]},Ue=(e,r,h,g)=>{if(h.size===0)return r;for(const A of h)if(e.startsWith(A,r))return g.push(A),r+A.length;return r},D=(e,r=new Set)=>{if(e.length===0)return[];if(e.toUpperCase()===e)return[e];let h=0;const g=[],A=e.length;for(let p=1;p<A;p++){const L=Ue(e,h,r,g);if(L!==h){h=L,p=h-1;continue}const f=e.codePointAt(p-1),R=e.codePointAt(p),s=f&&f<128&&j(f),o=R&&R<128&&j(R),c=f&&f<128&&O(f),t=f&&f<128&&w(f),l=R&&R<128&&w(R);if(c&&o){g.push(e.slice(h,p)),h=p;continue}if(t&&!l||!t&&l){g.push(e.slice(h,p)),h=p;continue}if(l&&!t){let n=!1,a=!1;if(p+1<A){const u=e.codePointAt(p+1);n=u&&u<128&&j(u),a=u&&u<128&&w(u)}if(!a&&n){g.push(e.slice(h,p),e.slice(p,p+1)),h=p+1;continue}}if(p+1<A){const n=e.codePointAt(p+1),a=n&&n<128&&O(n);if(s&&o&&a){const u=e.slice(h,p+1);r.has(u)||(g.push(e.slice(h,p)),h=p)}}}return h<A&&g.push(e.slice(h)),g.filter(p=>p!=="")},q=(e,r,h)=>{if(e.length===0)return[];const g=e===e.toLocaleUpperCase(r);if(r.startsWith("de")){if(!g&&e.replaceAll("ß","SS")===e.toLocaleUpperCase(r))return[e];const s=[...e],o=s.length,c=[];let t=s[0],l=s[0]===s[0].toLocaleUpperCase(r),n=l,a=l?0:-1;for(let u=1;u<o;u++){const i=s[u],E=i===i.toLocaleUpperCase(r);if(E===l)t+=i;else if(E)t&&t.length>0&&(c.push(t),t=i),n=!0,a=u;else{if(n&&u-a>1){const _=s[u-1],d=t.slice(0,-1);d&&d.length>0&&c.push(d),t=_+i}else t+=i;n=!1,a=-1}l=E}return t&&t.length>0&&c.push(t),c}if(r.startsWith("uk")||r.startsWith("ru")||r.startsWith("bg")||r.startsWith("sr")||r.startsWith("mk")||r.startsWith("be")){if(!W.test(e)&&!C.test(e))return[e];const s=[...e],o=s.length,c=[];let t=s[0];const l=s[0];let n;W.test(l)?n=1:C.test(l)?n=2:n=0;let a=l===l.toLocaleUpperCase(r);for(let i=1;i<o;i++){const E=s[i];let _;W.test(E)?_=1:C.test(E)?_=2:_=0;const d=E===E.toLocaleUpperCase(r);n!==_&&(n===1||n===2)&&(_===1||_===2)||_===n&&!a&&d?(c.push(t),t=E):t+=E,n=_,a=d}t&&t.length>0&&c.push(t);const u=[];for(let i=0;i<c.length;i++)i<c.length-1&&c[i].length===1&&C.test(c[i])&&W.test(c[i+1][0])?(u.push(c[i]+c[i+1]),i+=1):u.push(c[i]);return u}if(r.startsWith("el")){if(!N.test(e)&&!C.test(e))return[e];const s=[];B.lastIndex=0;let o;for(;(o=B.exec(e))!==null;)s.push(o[0]);s.length===0&&s.push(e);const c=[];if(s.length===1){const t=s[0];if(!t||!N.test(t[0])||t.length===1)return[t??e]}for(const t of s){if(!t)continue;if(!N.test(t[0])||t.length===1){c.push(t);continue}const l=t.length;let n=t[0],a=t[0]===t[0].toLocaleUpperCase(r);for(let u=1;u<l;u++){const i=t[u],E=i===i.toLocaleUpperCase(r);!a&&E?(c.push(n),n=i):n+=i,a=E}n&&c.push(n)}return c}if(r.startsWith("ja")||r.startsWith("ko")){const s=r.startsWith("ja"),o=s?{hiragana:t=>ee.test(t),kanji:t=>M.test(t),katakana:t=>X.test(t),latin:t=>C.test(t)}:{hangul:t=>G.test(t),latin:t=>C.test(t)},c=new Set(["が","で","と","に","の","は","へ","も","や","を"]);if(s){const t=k(e,o,!1,r,(n,a)=>n==="hiragana"&&a==="katakana"||n==="katakana"&&a==="hiragana"||n==="hiragana"&&a==="latin"||n==="katakana"&&a==="latin"||n==="kanji"&&a==="latin"||n==="latin"&&(a==="hiragana"||a==="katakana"||a==="kanji")),l=[];for(const n of t){const a=n;a.length===1&&c.has(a)&&l.length>0?l[l.length-1]=l.at(-1)+a:l.push(a)}return l.length>0?l:[e]}return k(e,o,!1,r,(t,l)=>t==="hangul"&&l==="latin"||t==="latin"&&l==="hangul")}if(r.startsWith("sl")){const s=[...e],o=s.length,c=[];let t=s[0],l=s[0]===s[0].toLocaleUpperCase(r);for(let n=1;n<o;n++){const a=s[n],u=a===a.toLocaleUpperCase(r),i=de.test(a),E=n<o-1&&s[n+1]===s[n+1].toLocaleUpperCase(r);!l&&u||i&&E?(c.push(t),t=a,i&&E&&(c.push(t),t="")):t+=a,l=u}return t&&t.length>0&&c.push(t),c}if(r.startsWith("zh"))return k(e,{han:s=>M.test(s),latin:s=>C.test(s)},!1,r);if(["ar","fa","he","ur"].includes(r.split("-")[0])){const s=o=>K.test(o)||H.test(o);return k(e,{latin:o=>C.test(o),rtl:o=>s(o)},!1,r)}if(["am","bn","gu","hi","km","kn","lo","ml","mr","ne","or","pa","si","ta","te","th"].includes(r.split("-")[0])){const s=o=>te.test(o)||se.test(o)||ne.test(o)||re.test(o)||le.test(o)||oe.test(o)||ie.test(o)||ae.test(o)||ce.test(o)||he.test(o)||ue.test(o)||pe.test(o)||fe.test(o)||ge.test(o)||Ae.test(o)||Ee.test(o);return k(e,{indic:o=>s(o),latin:o=>C.test(o)},!1,r)}if(["be","bg","ru","sr","uk"].includes(r))return k(e,{cyrillic:s=>W.test(s),latin:s=>C.test(s)},!0,r);if(["ar","fa","he"].includes(r))return k(e,{latin:s=>C.test(s),rtl:s=>K.test(s)||H.test(s)},!1,r);if(r.startsWith("ko"))return k(e,{hangul:s=>G.test(s),latin:s=>C.test(s)},!1,r);if(r.startsWith("uz")){if(!W.test(e)&&!C.test(e))return[e];const s=[...e],o=s.length,c=[];let t=s[0],l=s[0]===s[0].toLocaleUpperCase(r);for(let n=1;n<o;n++){const a=s[n],u=a===a.toLocaleUpperCase(r);if(S.test(a)||S.test(s[n-1])){t+=a;continue}!l&&u?(c.push(t),t=a):t+=a,l=u}return t&&t.length>0&&c.push(t),c}const A=[...e],p=A.length,L=[];let f=A[0],R=A[0]===A[0].toLocaleUpperCase(r);for(const s of h)if(e.startsWith(s)){L.push(s),f=A[s.length],R=f===f.toLocaleUpperCase(r);break}for(let s=1;s<p;s++){const o=A[s],c=o===o.toLocaleUpperCase(r);let t=0;for(const l of h)if(e.startsWith(l,s)){L.push(f,l),t=l.length,f="";const n=l.at(-1);n&&(R=n===n.toLocaleUpperCase(r));break}if(t>0){s+=t-1;continue}!R&&c?(L.push(f),f=o):f+=o,R=c}return f&&L.push(f),L},Ie=(e,r,h)=>{const g=[],A=x.test(e)?e.split(x).filter(Boolean):[e];for(const p of A){const L=p;if(x.test(L))g.push(L);else{m.lastIndex=0;const f=m.test(L)?Ce(L).filter(Boolean):[L];for(const R of f)if(m.lastIndex=0,m.test(R))g.push(R);else if(r){const s=r.toLowerCase().split("-")[0];g.push(...q(R,s,h))}else g.push(...D(R,h))}}return g},be=(e,r={})=>{if(!e||typeof e!="string")return[];const{handleAnsi:h=!1,handleEmoji:g=!1,knownAcronyms:A=[],locale:p,normalize:L=!1,separators:f,stripAnsi:R=!1,stripEmoji:s=!1}=r,o=new Set([...A].toSorted((i,E)=>E.length-i.length));let c=e;R&&(c=$(c)),s&&(c=Z(c));let t;Array.isArray(f)?t=Le(f):f instanceof RegExp?t=f:t=Q;const l=[];let n=c;const a=t.flags.includes("g")?t:new RegExp(t.source,`${t.flags}g`);for(;n.length>0;){const i=a.exec(n);if(!i){n===".."?l.push(".."):n==="."?l.push("."):n.length>0&&l.push(n);break}const E=i.index,_=i[0],d=_.length,y=n.slice(0,E),J=n.slice(E+d);if(_.startsWith("../"))l.push(".."),n=n.slice(E+3);else if(_.startsWith("./"))l.push("."),n=n.slice(E+2);else if(E===0&&_==="..")l.push(".."),n=n.slice(2);else if(E===0&&_===".")l.push("."),n=n.slice(1);else{y.length>0&&l.push(y);let U=0;for(;(U=_.indexOf("../",U))!==-1;)l.push(".."),U+=3;for(U=0;(U=_.indexOf("./",U))!==-1;)(U===0||_[U-1]!==".")&&l.push("."),U+=2;let I=J;for(;I.startsWith("../");)l.push(".."),I=I.slice(3);for(;I.startsWith("./");)l.push("."),I=I.slice(2);if(I===".."){l.push("..");break}else if(I==="."){l.push(".");break}else n=I}a.lastIndex=0}if(l.length===0){const i=c.split(t).filter(Boolean);l.push(...i)}let u=[];for(const i of l)h||g?u.push(...Ie(i,p,o)):p?u.push(...q(i,p,o)):u.push(...D(i,o));return L&&(u=u.map(i=>o.has(i)?i:p&&i===i.toLocaleUpperCase(p)?i[0]+i.slice(1).toLocaleLowerCase(p):i.toUpperCase()===i&&!o.has(i)?i.slice(0,1)+i.slice(1).toLowerCase():i)),u};export{be as splitByCase};