@visulima/string 3.0.0-alpha.16 → 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 (83) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +80 -2
  3. package/dist/case/camel-case.d.ts +2 -3
  4. package/dist/case/camel-case.js +1 -1
  5. package/dist/case/capital-case.d.ts +2 -3
  6. package/dist/case/capital-case.js +1 -1
  7. package/dist/case/constant-case.d.ts +2 -3
  8. package/dist/case/constant-case.js +1 -1
  9. package/dist/case/dot-case.d.ts +2 -3
  10. package/dist/case/dot-case.js +1 -1
  11. package/dist/case/flat-case.d.ts +2 -3
  12. package/dist/case/flat-case.js +1 -1
  13. package/dist/case/flip-case.d.ts +2 -3
  14. package/dist/case/flip-case.js +1 -1
  15. package/dist/case/identify-case.d.ts +2 -3
  16. package/dist/case/index.d.ts +2 -3
  17. package/dist/case/index.js +1 -1
  18. package/dist/case/kebab-case.d.ts +2 -3
  19. package/dist/case/kebab-case.js +1 -1
  20. package/dist/case/lower-first.d.ts +2 -3
  21. package/dist/case/no-case.d.ts +2 -3
  22. package/dist/case/no-case.js +1 -1
  23. package/dist/case/pascal-case.d.ts +2 -3
  24. package/dist/case/pascal-case.js +1 -1
  25. package/dist/case/pascal-snake-case.d.ts +2 -3
  26. package/dist/case/pascal-snake-case.js +1 -1
  27. package/dist/case/path-case.d.ts +2 -3
  28. package/dist/case/path-case.js +1 -1
  29. package/dist/case/sentence-case.d.ts +2 -3
  30. package/dist/case/sentence-case.js +1 -1
  31. package/dist/case/snake-case.d.ts +2 -3
  32. package/dist/case/snake-case.js +1 -1
  33. package/dist/case/split-by-case.d.ts +2 -3
  34. package/dist/case/split-by-case.js +1 -1
  35. package/dist/case/title-case.d.ts +2 -3
  36. package/dist/case/title-case.js +1 -1
  37. package/dist/case/train-case.d.ts +2 -3
  38. package/dist/case/train-case.js +1 -1
  39. package/dist/case/upper-first.d.ts +2 -3
  40. package/dist/count-occurrences.d.ts +9 -0
  41. package/dist/direction.d.ts +7 -0
  42. package/dist/east-asian-width.d.ts +52 -0
  43. package/dist/east-asian-width.js +1 -0
  44. package/dist/excerpt.d.ts +25 -0
  45. package/dist/excerpt.js +53 -0
  46. package/dist/get-string-truncated-width.js +1 -1
  47. package/dist/indent.d.ts +87 -0
  48. package/dist/indent.js +1 -0
  49. package/dist/index.d.ts +12 -205
  50. package/dist/index.js +1 -1
  51. package/dist/is-fullwidth-code-point.d.ts +7 -0
  52. package/dist/is-fullwidth-code-point.js +1 -0
  53. package/dist/levenshtein.d.ts +25 -0
  54. package/dist/levenshtein.js +1 -0
  55. package/dist/outdent.js +1 -1
  56. package/dist/packem_shared/{lookup-DsIbtHWS.js → _isFullWidth-Dqc3MWgl.js} +1 -1
  57. package/dist/packem_shared/{constants-CImsldtV.js → constants-B7EE3d7a.js} +1 -1
  58. package/dist/packem_shared/eastAsianWidth-DJV8Kqd-.js +1 -0
  59. package/dist/packem_shared/{joinSegments-cvixBSMu.js → joinSegments-DwpAvf1_.js} +1 -1
  60. package/dist/packem_shared/{LRUCache-Dm3jkQzc.js → lru-cache-BtMSrYQJ.js} +1 -1
  61. package/dist/packem_shared/redent-ByOoJ6fN.js +1 -0
  62. package/dist/packem_shared/{types.d-NJ4vcG-A.d.ts → types.d-CmNvyl4l.d.ts} +16 -2
  63. package/dist/packem_shared/{types.d-XxhGlCLZ.d.ts → types.d-fhe030jX.d.ts} +13 -3
  64. package/dist/replace-string.d.ts +10 -0
  65. package/dist/slice.js +1 -1
  66. package/dist/slugify.d.ts +1 -1
  67. package/dist/slugify.js +1 -1
  68. package/dist/transliterate.d.ts +10 -0
  69. package/dist/{packem_shared/transliterate-BYGS0N0m.js → transliterate.js} +3 -3
  70. package/dist/utilities.d.ts +1 -2
  71. package/dist/utilities.js +1 -1
  72. package/dist/word-wrap.js +7 -7
  73. package/package.json +37 -1
  74. package/dist/packem_shared/closestN-DfsjM5M2.js +0 -1
  75. package/dist/packem_shared/eastAsianWidthType-DDZo0voG.js +0 -1
  76. package/dist/packem_shared/excerpt-De-Waruz.js +0 -34
  77. package/dist/packem_shared/isFullwidthCodePoint-BMvc9BNh.js +0 -1
  78. package/dist/packem_shared/lru-cache.d-BVu2_gfi.d.ts +0 -12
  79. package/dist/packem_shared/redent-DqgI-fa_.js +0 -1
  80. /package/dist/{packem_shared/countOccurrences-DTjnj8Pm.js → count-occurrences.js} +0 -0
  81. /package/dist/{packem_shared/direction-Dp2CCCH6.js → direction.js} +0 -0
  82. /package/dist/packem_shared/{stripIndent-CPjAYUXh.js → dedent-CPjAYUXh.js} +0 -0
  83. /package/dist/{packem_shared/replaceString-DoWVBsen.js → replace-string.js} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,31 @@
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
+
1
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)
2
30
 
3
31
  ### Performance Improvements
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,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
- import{R as c}from"../packem_shared/constants-CImsldtV.js";import p from"../packem_shared/LRUCache-Dm3jkQzc.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-cvixBSMu.js";import{a as w}from"../packem_shared/normalize-german-eszett-hNMwtGjd.js";const y=new p(1e3),R=(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{R 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
- import{R as m}from"../packem_shared/constants-CImsldtV.js";import c from"../packem_shared/LRUCache-Dm3jkQzc.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-cvixBSMu.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
+ 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
- import r from"../packem_shared/LRUCache-Dm3jkQzc.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
+ 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
- import r from"../packem_shared/LRUCache-Dm3jkQzc.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
+ 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
- import r from"../packem_shared/LRUCache-Dm3jkQzc.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
+ 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
- import{createRequire as m}from"node:module";import{s as _}from"../packem_shared/constants-CImsldtV.js";import j from"../packem_shared/LRUCache-Dm3jkQzc.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
+ 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,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-cvixBSMu.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
- import{R as c}from"../packem_shared/constants-CImsldtV.js";import m from"../packem_shared/LRUCache-Dm3jkQzc.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-cvixBSMu.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
+ 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,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
- import r from"../packem_shared/LRUCache-Dm3jkQzc.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
+ 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
- import{R as e}from"../packem_shared/constants-CImsldtV.js";import m from"../packem_shared/LRUCache-Dm3jkQzc.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-cvixBSMu.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
+ 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
- import n from"../packem_shared/LRUCache-Dm3jkQzc.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
+ 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
- import r from"../packem_shared/LRUCache-Dm3jkQzc.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
+ 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
- import{R as c}from"../packem_shared/constants-CImsldtV.js";import p from"../packem_shared/LRUCache-Dm3jkQzc.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-cvixBSMu.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
+ 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
- import r from"../packem_shared/LRUCache-Dm3jkQzc.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
+ 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
- import{createRequire as Y}from"node:module";import{i as m,s as Z,l as Q,R 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-CImsldtV.js";import Re from"../packem_shared/LRUCache-Dm3jkQzc.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};
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};
@@ -1,6 +1,5 @@
1
- import { C as CaseOptions, T as TitleCase } 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, T as TitleCase } from "../packem_shared/types.d-fhe030jX.js";
2
+ import "../packem_shared/types.d-CmNvyl4l.js";
4
3
  /**
5
4
  * With Title Case all words are capitalized, except for minor words.
6
5
  * @example
@@ -1 +1 @@
1
- import e from"../packem_shared/LRUCache-Dm3jkQzc.js";import{splitByCase as c}from"./split-by-case.js";import m from"./upper-first.js";import{n as p}from"../packem_shared/generate-cache-key-BqU1Cqwm.js";import{a as f}from"../packem_shared/normalize-german-eszett-hNMwtGjd.js";const d=new e(1e3);function y(t,o){if(typeof t!="string")return"";const a=o?.cache??!1,i=o?.cacheStore??d;let r;if(a&&(r=p(t,o)),a&&r&&i.has(r))return i.get(r);const n=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=>{const l=o?.locale?.startsWith("de")?f(s):s;return m(o?.locale?l.toLocaleLowerCase(o.locale):l.toLowerCase(),{locale:o?.locale})}).join(" ");return a&&r&&i.set(r,n),n}export{y as default};
1
+ import{i as e}from"../packem_shared/lru-cache-BtMSrYQJ.js";import{splitByCase as c}from"./split-by-case.js";import m from"./upper-first.js";import{n as p}from"../packem_shared/generate-cache-key-BqU1Cqwm.js";import{a as f}from"../packem_shared/normalize-german-eszett-hNMwtGjd.js";const d=new e(1e3);function y(t,o){if(typeof t!="string")return"";const a=o?.cache??!1,i=o?.cacheStore??d;let r;if(a&&(r=p(t,o)),a&&r&&i.has(r))return i.get(r);const n=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=>{const l=o?.locale?.startsWith("de")?f(s):s;return m(o?.locale?l.toLocaleLowerCase(o.locale):l.toLowerCase(),{locale:o?.locale})}).join(" ");return a&&r&&i.set(r,n),n}export{y as default};
@@ -1,6 +1,5 @@
1
- import { C as CaseOptions, j as TrainCase } 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, j as TrainCase } from "../packem_shared/types.d-fhe030jX.js";
2
+ import "../packem_shared/types.d-CmNvyl4l.js";
4
3
  /**
5
4
  * Converts a string to Train-Case.
6
5
  * @example
@@ -1 +1 @@
1
- import a from"../packem_shared/LRUCache-Dm3jkQzc.js";import{splitByCase as l}from"./split-by-case.js";import e from"./upper-first.js";import{n as p}from"../packem_shared/generate-cache-key-BqU1Cqwm.js";import c from"../packem_shared/joinSegments-cvixBSMu.js";const f=new a(1e3),y=(n,o)=>{if(typeof n!="string")return"";const t=o?.cache??!1,i=o?.cacheStore??f;let r;if(t&&(r=p(n,o)),t&&r&&i.has(r))return i.get(r);const s=c(l(n,{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(m=>e(m,{locale:o?.locale})),"-");return t&&r&&i.set(r,s),s};export{y as default};
1
+ import{i as a}from"../packem_shared/lru-cache-BtMSrYQJ.js";import{splitByCase as l}from"./split-by-case.js";import e from"./upper-first.js";import{n as p}from"../packem_shared/generate-cache-key-BqU1Cqwm.js";import c from"../packem_shared/joinSegments-DwpAvf1_.js";const f=new a(1e3),y=(n,o)=>{if(typeof n!="string")return"";const t=o?.cache??!1,i=o?.cacheStore??f;let r;if(t&&(r=p(n,o)),t&&r&&i.has(r))return i.get(r);const s=c(l(n,{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(m=>e(m,{locale:o?.locale})),"-");return t&&r&&i.set(r,s),s};export{y as default};
@@ -1,6 +1,5 @@
1
- import { L as LocaleOptions, U as UpperFirst } 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, U as UpperFirst } from "../packem_shared/types.d-fhe030jX.js";
2
+ import "../packem_shared/types.d-CmNvyl4l.js";
4
3
  /**
5
4
  * Converts first character to upper case.
6
5
  * @param value The string to convert.
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Get the count of `substring` in `value`.
3
+ * @param value Content to search in. Will be coerced to string.
4
+ * @param substring Substring to look for, typically one character.
5
+ * @returns Count of `substring`s in `value`.
6
+ * @throws {TypeError} When substring is not a string or is empty.
7
+ */
8
+ declare const countOccurrences: (value: unknown, substring: string) => number;
9
+ export { countOccurrences };
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Detect the direction of text: left-to-right, right-to-left, or neutral.
3
+ * @param value The string to analyze.
4
+ * @returns The text direction: 'rtl' for right-to-left, 'ltr' for left-to-right, or 'neutral' for neutral.
5
+ */
6
+ declare const direction: (value?: string) => "rtl" | "ltr" | "neutral";
7
+ export { direction };
@@ -0,0 +1,52 @@
1
+ type WidthType = 'fullwidth' | 'halfwidth' | 'wide' | 'narrow' | 'neutral' | 'ambiguous';
2
+ type Options = {
3
+ /**
4
+ Whether to treat an `'ambiguous'` character as wide.
5
+ @default true
6
+ @example
7
+ ```
8
+ import {eastAsianWidth} from 'get-east-asian-width';
9
+ const codePoint = '⛣'.codePointAt(0);
10
+ console.log(eastAsianWidth(codePoint));
11
+ //=> 1
12
+ console.log(eastAsianWidth(codePoint, {ambiguousAsWide: true}));
13
+ //=> 2
14
+ ```
15
+ > Ambiguous characters behave like wide or narrow characters depending on the context (language tag, script identification, associated font, source of data, or explicit markup; all can provide the context). __If the context cannot be established reliably, they should be treated as narrow characters by default.__
16
+ > - http://www.unicode.org/reports/tr11/
17
+ */
18
+ readonly ambiguousAsWide?: boolean;
19
+ };
20
+ /**
21
+ Returns the width as a number for the given code point.
22
+
23
+ @param codePoint - A Unicode code point.
24
+
25
+ @example
26
+ ```
27
+ import {eastAsianWidth} from 'get-east-asian-width';
28
+
29
+ const codePoint = '字'.codePointAt(0);
30
+
31
+ console.log(eastAsianWidth(codePoint));
32
+ //=> 2
33
+ ```
34
+ */
35
+ declare function eastAsianWidth(codePoint: number, options?: Options): 1 | 2;
36
+ /**
37
+ Returns the type of “East Asian Width” for the given code point.
38
+
39
+ @param codePoint - A Unicode code point.
40
+
41
+ @example
42
+ ```
43
+ import {eastAsianWidthType} from 'get-east-asian-width';
44
+
45
+ const codePoint = '字'.codePointAt(0);
46
+
47
+ console.log(eastAsianWidthType(codePoint));
48
+ //=> 'wide'
49
+ ```
50
+ */
51
+ declare function eastAsianWidthType(codePoint: number): WidthType;
52
+ export { type Options as EastAsianWidthOptions, type WidthType as EastAsianWidthType, eastAsianWidth, eastAsianWidthType };