@visulima/string 2.0.3 → 2.0.4

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 (55) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/align-text.js +32 -2
  3. package/dist/case/camel-case.js +55 -1
  4. package/dist/case/capital-case.js +47 -1
  5. package/dist/case/constant-case.js +7 -1
  6. package/dist/case/dot-case.js +7 -1
  7. package/dist/case/flat-case.js +7 -1
  8. package/dist/case/flip-case.js +76 -1
  9. package/dist/case/identify-case.js +65 -1
  10. package/dist/case/index.js +20 -1
  11. package/dist/case/kebab-case.js +55 -1
  12. package/dist/case/lower-first.js +9 -1
  13. package/dist/case/no-case.js +7 -1
  14. package/dist/case/pascal-case.js +48 -1
  15. package/dist/case/pascal-snake-case.js +28 -1
  16. package/dist/case/path-case.js +7 -1
  17. package/dist/case/sentence-case.js +54 -1
  18. package/dist/case/snake-case.js +7 -1
  19. package/dist/case/split-by-case.js +644 -1
  20. package/dist/case/title-case.js +42 -1
  21. package/dist/case/train-case.js +40 -1
  22. package/dist/case/upper-first.js +9 -1
  23. package/dist/closest-string.js +25 -1
  24. package/dist/compare-similarity.js +12 -1
  25. package/dist/get-string-truncated-width.js +363 -1
  26. package/dist/get-string-width.js +5 -1
  27. package/dist/index.js +36 -1
  28. package/dist/outdent.js +118 -1
  29. package/dist/packem_shared/LRUCache-3r3SovvR.js +46 -0
  30. package/dist/packem_shared/closest-IHuSvnSn.js +139 -0
  31. package/dist/packem_shared/closestN-BREy4E7C.js +19 -0
  32. package/dist/packem_shared/constants-CTzC6Gjg.js +95 -0
  33. package/dist/packem_shared/generate-cache-key-DdayDfjV.js +6 -0
  34. package/dist/packem_shared/joinSegments-CuU8RGpP.js +44 -0
  35. package/dist/packem_shared/normalize-german-eszett-DEB8-ZPT.js +7 -0
  36. package/dist/packem_shared/replaceString-vYvRBMfC.js +190 -0
  37. package/dist/packem_shared/transliterate-CUF6Ggy_.js +47776 -0
  38. package/dist/slice.js +413 -1
  39. package/dist/slugify.js +46 -1
  40. package/dist/test/utils.js +88 -13
  41. package/dist/test/vitest.js +5 -1
  42. package/dist/truncate.js +89 -1
  43. package/dist/utilities.js +54 -1
  44. package/dist/word-similarity-sort.js +22 -1
  45. package/dist/word-wrap.js +637 -8
  46. package/package.json +1 -1
  47. package/dist/packem_shared/LRUCache-Bjo6gsbC.js +0 -1
  48. package/dist/packem_shared/closest-uarbVSbs.js +0 -1
  49. package/dist/packem_shared/closestN-DjNxwK0t.js +0 -1
  50. package/dist/packem_shared/constants-CDcaCZKC.js +0 -1
  51. package/dist/packem_shared/generate-cache-key-DPByFaMH.js +0 -1
  52. package/dist/packem_shared/joinSegments-DTGeJBZG.js +0 -1
  53. package/dist/packem_shared/normalize-german-eszett-4k1qRtEP.js +0 -1
  54. package/dist/packem_shared/replaceString-DwIZyvoL.js +0 -1
  55. package/dist/packem_shared/transliterate-CxVHmZUa.js +0 -5
package/dist/utilities.js CHANGED
@@ -1 +1,54 @@
1
- var o=Object.defineProperty;var c=(u,t)=>o(u,"name",{value:t,configurable:!0});import{default as x}from"./packem_shared/LRUCache-Bjo6gsbC.js";var p=Object.defineProperty,n=c((u,t)=>p(u,"name",{value:t,configurable:!0}),"n");const h=n(u=>u.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`),"escapeRegExp"),C=n((u,t)=>t.some(F=>u>=F[0]&&u<=F[1]),"inRange"),E=n(u=>/[\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u3005\u3007\u3021-\u3029\u3038-\u303B\u3400-\u4DBF\u4E00-\u9FFC\uF900-\uFA6D\uFA70-\uFAD9]|\uD81B[\uDFF0\uDFF1]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]/.test(u),"hasChinese"),g=n(u=>/[\p{P}\p{Z}]/u.test(u),"hasPunctuationOrSpace"),l=n((u,t)=>{const F=[];if(!Array.isArray(t))return F;if(t.forEach(D=>{if(typeof D!="string"||D.length===0)return;let r=0,a;for(;(a=u.indexOf(D,r))>-1;){const i=a+D.length-1;F.push([a,i]),r=a+1}}),F.length===0)return[];F.sort((D,r)=>D[0]-r[0]);const s=[];let e;for(const D of F)e===void 0?e=[...D]:D[0]<=e[1]+1?e[1]=Math.max(e[1],D[1]):(s.push(e),e=[...D]);return e!==void 0&&s.push(e),s},"findStringOccurrences");export{x as LRUCache,h as escapeRegExp,l as findStringOccurrences,E as hasChinese,g as hasPunctuationOrSpace,C as inRange};
1
+ export { default as LRUCache } from './packem_shared/LRUCache-3r3SovvR.js';
2
+
3
+ const escapeRegExp = (char) => (
4
+ // $& means the whole matched string
5
+ char.replaceAll(/[.*+?^${}()|[\]\\]/g, String.raw`\$&`)
6
+ );
7
+ const inRange = (number_, ranges) => ranges.some((range) => number_ >= range[0] && number_ <= range[1]);
8
+ const hasChinese = (char) => /[\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u3005\u3007\u3021-\u3029\u3038-\u303B\u3400-\u4DBF\u4E00-\u9FFC\uF900-\uFA6D\uFA70-\uFAD9]|\uD81B[\uDFF0\uDFF1]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]/.test(
9
+ char
10
+ );
11
+ const hasPunctuationOrSpace = (char) => (
12
+ // Uses Unicode property escapes for Punctuation and general category for Space
13
+ /[\p{P}\p{Z}]/u.test(char)
14
+ );
15
+ const findStringOccurrences = (source, needles) => {
16
+ const ranges = [];
17
+ if (!Array.isArray(needles)) {
18
+ return ranges;
19
+ }
20
+ needles.forEach((needle) => {
21
+ if (typeof needle !== "string" || needle.length === 0) {
22
+ return;
23
+ }
24
+ let startIndex = 0;
25
+ let index;
26
+ while ((index = source.indexOf(needle, startIndex)) > -1) {
27
+ const end = index + needle.length - 1;
28
+ ranges.push([index, end]);
29
+ startIndex = index + 1;
30
+ }
31
+ });
32
+ if (ranges.length === 0) {
33
+ return [];
34
+ }
35
+ ranges.sort((a, b) => a[0] - b[0]);
36
+ const merged = [];
37
+ let currentRange;
38
+ for (const range of ranges) {
39
+ if (currentRange === void 0) {
40
+ currentRange = [...range];
41
+ } else if (range[0] <= currentRange[1] + 1) {
42
+ currentRange[1] = Math.max(currentRange[1], range[1]);
43
+ } else {
44
+ merged.push(currentRange);
45
+ currentRange = [...range];
46
+ }
47
+ }
48
+ if (currentRange !== void 0) {
49
+ merged.push(currentRange);
50
+ }
51
+ return merged;
52
+ };
53
+
54
+ export { escapeRegExp, findStringOccurrences, hasChinese, hasPunctuationOrSpace, inRange };
@@ -1 +1,22 @@
1
- var l=Object.defineProperty;var n=(e,r)=>l(e,"name",{value:r,configurable:!0});import{distance as m}from"./packem_shared/closest-uarbVSbs.js";var p=Object.defineProperty,u=n((e,r)=>p(e,"name",{value:r,configurable:!0}),"s");const f=u((e,r,s)=>{const{caseSensitive:i=!1,compareFunction:c=m}=s??{},d=i?e:e.toLowerCase(),t=r.map(o=>{const a=i?o:o.toLowerCase();return{distance:c(d,a),originalWord:o}});return t.sort((o,a)=>o.distance!==a.distance?o.distance-a.distance:o.originalWord.localeCompare(a.originalWord)),t.map(o=>o.originalWord)},"wordSimilaritySort");export{f as wordSimilaritySort};
1
+ import { distance } from './packem_shared/closest-IHuSvnSn.js';
2
+
3
+ const wordSimilaritySort = (givenWord, possibleWords, options) => {
4
+ const { caseSensitive = false, compareFunction = distance } = options ?? {};
5
+ const processedGivenWord = caseSensitive ? givenWord : givenWord.toLowerCase();
6
+ const wordsWithDistances = possibleWords.map((word) => {
7
+ const processedWord = caseSensitive ? word : word.toLowerCase();
8
+ return {
9
+ distance: compareFunction(processedGivenWord, processedWord),
10
+ originalWord: word
11
+ };
12
+ });
13
+ wordsWithDistances.sort((a, b) => {
14
+ if (a.distance !== b.distance) {
15
+ return a.distance - b.distance;
16
+ }
17
+ return a.originalWord.localeCompare(b.originalWord);
18
+ });
19
+ return wordsWithDistances.map((item) => item.originalWord);
20
+ };
21
+
22
+ export { wordSimilaritySort };