xypriss 9.12.46 → 9.12.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/xhsc/UtilsApi.js +9 -0
- package/dist/cjs/src/xhsc/UtilsApi.js.map +1 -1
- package/dist/cjs/src/xhsc/utils/StringUtils.js +43 -35
- package/dist/cjs/src/xhsc/utils/StringUtils.js.map +1 -1
- package/dist/cjs/src/xhsc/utils/StringWrapper.js +302 -0
- package/dist/cjs/src/xhsc/utils/StringWrapper.js.map +1 -0
- package/dist/esm/src/xhsc/UtilsApi.js +9 -0
- package/dist/esm/src/xhsc/UtilsApi.js.map +1 -1
- package/dist/esm/src/xhsc/utils/StringUtils.js +43 -35
- package/dist/esm/src/xhsc/utils/StringUtils.js.map +1 -1
- package/dist/esm/src/xhsc/utils/StringWrapper.js +300 -0
- package/dist/esm/src/xhsc/utils/StringWrapper.js.map +1 -0
- package/dist/index.d.ts +266 -34
- package/package.json +1 -1
|
@@ -84,6 +84,9 @@ class UtilsApi {
|
|
|
84
84
|
* All methods are pure functions with no side effects and no external
|
|
85
85
|
* dependencies — instantiate once and reuse across your application.
|
|
86
86
|
*
|
|
87
|
+
* For chaining operations on the same string without repeating it as an
|
|
88
|
+
* argument, use {@link __sys__.utils.str.of} to get a fluent {@link StringWrapper} instance.
|
|
89
|
+
*
|
|
87
90
|
* @remarks
|
|
88
91
|
* The public API surface of this class is conventionally exposed as `str.**`
|
|
89
92
|
* (e.g. `str.slugify(...)`, `str.toCamelCase(...)`) in XyPriss.
|
|
@@ -98,6 +101,12 @@ class UtilsApi {
|
|
|
98
101
|
* str.toCamelCase("hello-world"); // "helloWorld"
|
|
99
102
|
* str.truncate("A very long text", 10); // "A very ..."
|
|
100
103
|
* str.mask("4111111111111111", { visibleStart: 4, visibleEnd: 4 }); // "4111********1111"
|
|
104
|
+
*
|
|
105
|
+
* // Fluent chaining:
|
|
106
|
+
* str.of(" Hello World! ")
|
|
107
|
+
* .normalizeWhitespace()
|
|
108
|
+
* .toKebabCase()
|
|
109
|
+
* .value(); // "hello-world"
|
|
101
110
|
* ```
|
|
102
111
|
* @see https://xypriss.nehonix.com/docs/system/utils/strings
|
|
103
112
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UtilsApi.js","sources":["../../../../src/xhsc/UtilsApi.ts"],"sourcesContent":[null],"names":["StringUtils","NumberUtils","DateUtils","ObjectUtils","ArrayUtils","AsyncUtils","ValidationUtils","IdUtils","FunctionUtils","LoggerUtils"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;AAsBiF;AACjF;AAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;MACU,QAAQ,CAAA;AAArB,IAAA,WAAA,GAAA;AACI
|
|
1
|
+
{"version":3,"file":"UtilsApi.js","sources":["../../../../src/xhsc/UtilsApi.ts"],"sourcesContent":[null],"names":["StringUtils","NumberUtils","DateUtils","ObjectUtils","ArrayUtils","AsyncUtils","ValidationUtils","IdUtils","FunctionUtils","LoggerUtils"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;AAsBiF;AACjF;AAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;MACU,QAAQ,CAAA;AAArB,IAAA,WAAA,GAAA;AACI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCG;AACa,QAAA,IAAA,CAAA,GAAG,GAAG,IAAIA,uBAAW,EAAE;AAEvC;;AAEG;AACa,QAAA,IAAA,CAAA,GAAG,GAAG,IAAIC,uBAAW,EAAE;AAEvC;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACa,QAAA,IAAA,CAAA,IAAI,GAAG,IAAIC,mBAAS,EAAE;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACa,QAAA,IAAA,CAAA,GAAG,GAAG,IAAIC,uBAAW,EAAE;AAEvC;;AAEG;AACa,QAAA,IAAA,CAAA,GAAG,GAAG,IAAIC,qBAAU,EAAE;AAEtC;;AAEG;AACa,QAAA,IAAA,CAAA,KAAK,GAAG,IAAIC,qBAAU,EAAE;AAExC;;AAEG;AACa,QAAA,IAAA,CAAA,EAAE,GAAG,IAAIC,+BAAe,EAAE;AAE1C;;AAEG;AACa,QAAA,IAAA,CAAA,EAAE,GAAG,IAAIC,eAAO,EAAE;AAElC;;AAEG;AACa,QAAA,IAAA,CAAA,EAAE,GAAG,IAAIC,2BAAa,EAAE;AAExC;;;;;;;;;;;;;AAaG;AACa,QAAA,IAAA,CAAA,GAAG,GAAG,IAAIC,uBAAW,EAAE;IAuB3C;AArBI;;;;;;;;;;;;;;;AAeG;IACI,YAAY,CACf,OAAqD,EAAE,EAAA;AAEvD,QAAA,OAAO,IAAIA,uBAAW,CAAC,IAAI,CAAC;IAChC;AACH;;;;"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var nehoid = require('nehoid');
|
|
4
|
+
var StringWrapper = require('./StringWrapper.js');
|
|
4
5
|
|
|
5
6
|
/***************************************************************************
|
|
6
7
|
* XyPrissJS - Fast And Secure
|
|
@@ -25,37 +26,36 @@ var nehoid = require('nehoid');
|
|
|
25
26
|
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
26
27
|
*
|
|
27
28
|
***************************************************************************** */
|
|
28
|
-
/**
|
|
29
|
-
* **StringUtils — XyPriss String Utilities**
|
|
30
|
-
*
|
|
31
|
-
* A collection of dependency-free helpers for everyday string manipulation:
|
|
32
|
-
* case conversion (`camelCase`, `kebab-case`, `snake_case`, `Title Case`),
|
|
33
|
-
* sanitization (HTML escaping/stripping, accent stripping, whitespace
|
|
34
|
-
* normalization), validation (emails, URLs, palindromes), extraction
|
|
35
|
-
* (emails, URLs, substrings between markers), masking of sensitive data,
|
|
36
|
-
* fuzzy comparison (Levenshtein distance, similarity score), text layout
|
|
37
|
-
* (word wrap, chunking), and generation (random strings, UUIDs).
|
|
38
|
-
*
|
|
39
|
-
* All methods are pure functions with no side effects and no external
|
|
40
|
-
* dependencies — instantiate once and reuse across your application.
|
|
41
|
-
*
|
|
42
|
-
* @remarks
|
|
43
|
-
* The public API surface of this class is conventionally exposed as `str.**`
|
|
44
|
-
* (e.g. `str.slugify(...)`, `str.toCamelCase(...)`) in XyPriss.
|
|
45
|
-
*
|
|
46
|
-
* @example
|
|
47
|
-
* ```ts
|
|
48
|
-
* import { StringUtils } from "xypriss";
|
|
49
|
-
*
|
|
50
|
-
* const str = new StringUtils();
|
|
51
|
-
*
|
|
52
|
-
* str.slugify("Hello World!"); // "hello-world"
|
|
53
|
-
* str.toCamelCase("hello-world"); // "helloWorld"
|
|
54
|
-
* str.truncate("A very long text", 10); // "A very ..."
|
|
55
|
-
* str.mask("4111111111111111", { visibleStart: 4, visibleEnd: 4 }); // "4111********1111"
|
|
56
|
-
* ```
|
|
57
|
-
*/
|
|
58
29
|
class StringUtils {
|
|
30
|
+
/**
|
|
31
|
+
* **of**
|
|
32
|
+
*
|
|
33
|
+
* Wraps `str` in a chainable {@link StringWrapper}, allowing multiple
|
|
34
|
+
* string operations to be chained fluidly.
|
|
35
|
+
*
|
|
36
|
+
* @param str - The string or number to wrap.
|
|
37
|
+
* @returns A {@link StringWrapper} bound to `str`.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```ts
|
|
41
|
+
* const slug = __sys__.utils.str.of("Hello World").slugify().value(); // "hello-world"
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
static of(str) {
|
|
45
|
+
return new StringWrapper.StringWrapper(str);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* **of** (instance method)
|
|
49
|
+
*
|
|
50
|
+
* Instance-bound convenience wrapper around the static {@link StringUtils.of}.
|
|
51
|
+
* Allows `__sys__.utils.str.of(...)` to work when `str` is an instance.
|
|
52
|
+
*
|
|
53
|
+
* @param str - The string or number to wrap.
|
|
54
|
+
* @returns A {@link StringWrapper} bound to `str`.
|
|
55
|
+
*/
|
|
56
|
+
of(str) {
|
|
57
|
+
return StringUtils.of(str);
|
|
58
|
+
}
|
|
59
59
|
/**
|
|
60
60
|
* **Generate a Random String**
|
|
61
61
|
*
|
|
@@ -147,21 +147,29 @@ class StringUtils {
|
|
|
147
147
|
.replace(/^[A-Z]/, (first) => first.toLowerCase());
|
|
148
148
|
}
|
|
149
149
|
/**
|
|
150
|
-
* **Pad a String**
|
|
150
|
+
* **Pad a String or Number**
|
|
151
151
|
*
|
|
152
|
-
* Adds padding characters to the start or end of a string until it
|
|
152
|
+
* Adds padding characters to the start or end of a string (or number) until it
|
|
153
153
|
* reaches the target length.
|
|
154
154
|
*
|
|
155
|
-
* @param text - The source string.
|
|
155
|
+
* @param text - The source string or number.
|
|
156
156
|
* @param length - Target length.
|
|
157
157
|
* @param char - Padding character (default: `" "`).
|
|
158
158
|
* @param position - Whether to pad at `"start"` or `"end"`.
|
|
159
159
|
* @returns The padded string.
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* ```ts
|
|
163
|
+
* utils.pad(42, 5, "0"); // "00042"
|
|
164
|
+
* utils.pad("42", 5, "0"); // "00042"
|
|
165
|
+
* utils.pad("hello", 10, "-", "end"); // "hello-----"
|
|
166
|
+
* ```
|
|
160
167
|
*/
|
|
161
168
|
pad(text, length, char = " ", position = "start") {
|
|
169
|
+
const str = text.toString();
|
|
162
170
|
return position === "start"
|
|
163
|
-
?
|
|
164
|
-
:
|
|
171
|
+
? str.padStart(length, char)
|
|
172
|
+
: str.padEnd(length, char);
|
|
165
173
|
}
|
|
166
174
|
/**
|
|
167
175
|
* **Count Word/Substring Occurrences**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringUtils.js","sources":["../../../../../src/xhsc/utils/StringUtils.ts"],"sourcesContent":[null],"names":["ID"],"mappings":"
|
|
1
|
+
{"version":3,"file":"StringUtils.js","sources":["../../../../../src/xhsc/utils/StringUtils.ts"],"sourcesContent":[null],"names":["StringWrapper","ID"],"mappings":"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"}
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
class StringWrapper {
|
|
4
|
+
constructor(str) {
|
|
5
|
+
this.current = String(str);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* **value**
|
|
9
|
+
*
|
|
10
|
+
* Unwraps and returns the underlying string value held by this wrapper.
|
|
11
|
+
* Call this at the end of a chain to get back the final string.
|
|
12
|
+
*
|
|
13
|
+
* @returns The wrapped string.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* __sys__.utils.str.of("hello world").toTitleCase().value(); // "Hello World"
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
value() {
|
|
21
|
+
return this.current;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* **raw**
|
|
25
|
+
*
|
|
26
|
+
* Alias for {@link value}.
|
|
27
|
+
*
|
|
28
|
+
* @returns The wrapped string.
|
|
29
|
+
*/
|
|
30
|
+
raw() {
|
|
31
|
+
return this.current;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* **toString**
|
|
35
|
+
*
|
|
36
|
+
* Returns the string representation of the wrapped value.
|
|
37
|
+
*/
|
|
38
|
+
toString() {
|
|
39
|
+
return this.current;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* **slugify**
|
|
43
|
+
*
|
|
44
|
+
* Converts the wrapped string into a URL-friendly slug.
|
|
45
|
+
*/
|
|
46
|
+
slugify() {
|
|
47
|
+
this.current = __sys__.utils.str.slugify(this.current);
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* **truncate**
|
|
52
|
+
*
|
|
53
|
+
* Shortens the wrapped string to a specified length and appends a suffix.
|
|
54
|
+
*/
|
|
55
|
+
truncate(maxLength, suffix = "...") {
|
|
56
|
+
this.current = __sys__.utils.str.truncate(this.current, maxLength, suffix);
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* **capitalize**
|
|
61
|
+
*
|
|
62
|
+
* Uppercases the first character of the wrapped string.
|
|
63
|
+
*/
|
|
64
|
+
capitalize() {
|
|
65
|
+
this.current = __sys__.utils.str.capitalize(this.current);
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* **toCamelCase**
|
|
70
|
+
*
|
|
71
|
+
* Converts the wrapped string to camelCase.
|
|
72
|
+
*/
|
|
73
|
+
toCamelCase() {
|
|
74
|
+
this.current = __sys__.utils.str.toCamelCase(this.current);
|
|
75
|
+
return this;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* **toKebabCase**
|
|
79
|
+
*
|
|
80
|
+
* Converts the wrapped string to kebab-case.
|
|
81
|
+
*/
|
|
82
|
+
toKebabCase() {
|
|
83
|
+
this.current = __sys__.utils.str.toKebabCase(this.current);
|
|
84
|
+
return this;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* **toSnakeCase**
|
|
88
|
+
*
|
|
89
|
+
* Converts the wrapped string to snake_case.
|
|
90
|
+
*/
|
|
91
|
+
toSnakeCase() {
|
|
92
|
+
this.current = __sys__.utils.str.toSnakeCase(this.current);
|
|
93
|
+
return this;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* **toPascalCase**
|
|
97
|
+
*
|
|
98
|
+
* Converts the wrapped string to PascalCase.
|
|
99
|
+
*/
|
|
100
|
+
toPascalCase() {
|
|
101
|
+
this.current = __sys__.utils.str.toPascalCase(this.current);
|
|
102
|
+
return this;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* **toTitleCase**
|
|
106
|
+
*
|
|
107
|
+
* Converts the wrapped string to Title Case.
|
|
108
|
+
*/
|
|
109
|
+
toTitleCase() {
|
|
110
|
+
this.current = __sys__.utils.str.toTitleCase(this.current);
|
|
111
|
+
return this;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* **pad**
|
|
115
|
+
*
|
|
116
|
+
* Pads the wrapped string to the specified length.
|
|
117
|
+
*/
|
|
118
|
+
pad(length, char = " ", position = "start") {
|
|
119
|
+
this.current = __sys__.utils.str.pad(this.current, length, char, position);
|
|
120
|
+
return this;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* **reverse**
|
|
124
|
+
*
|
|
125
|
+
* Reverses the characters in the wrapped string.
|
|
126
|
+
*/
|
|
127
|
+
reverse() {
|
|
128
|
+
this.current = __sys__.utils.str.reverse(this.current);
|
|
129
|
+
return this;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* **stripHtml**
|
|
133
|
+
*
|
|
134
|
+
* Strips HTML tags from the wrapped string.
|
|
135
|
+
*/
|
|
136
|
+
stripHtml() {
|
|
137
|
+
this.current = __sys__.utils.str.stripHtml(this.current);
|
|
138
|
+
return this;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* **escapeHtml**
|
|
142
|
+
*
|
|
143
|
+
* Escapes HTML entities in the wrapped string.
|
|
144
|
+
*/
|
|
145
|
+
escapeHtml() {
|
|
146
|
+
this.current = __sys__.utils.str.escapeHtml(this.current);
|
|
147
|
+
return this;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* **unescapeHtml**
|
|
151
|
+
*
|
|
152
|
+
* Unescapes HTML entities in the wrapped string.
|
|
153
|
+
*/
|
|
154
|
+
unescapeHtml() {
|
|
155
|
+
this.current = __sys__.utils.str.unescapeHtml(this.current);
|
|
156
|
+
return this;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* **mask**
|
|
160
|
+
*
|
|
161
|
+
* Masks the wrapped string.
|
|
162
|
+
*/
|
|
163
|
+
mask(options = {}) {
|
|
164
|
+
this.current = __sys__.utils.str.mask(this.current, options);
|
|
165
|
+
return this;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* **wordWrap**
|
|
169
|
+
*
|
|
170
|
+
* Wraps the wrapped text at the given width.
|
|
171
|
+
*/
|
|
172
|
+
wordWrap(width, lineBreak = "\n") {
|
|
173
|
+
this.current = __sys__.utils.str.wordWrap(this.current, width, lineBreak);
|
|
174
|
+
return this;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* **stripAccents**
|
|
178
|
+
*
|
|
179
|
+
* Removes accents/diacritics from the wrapped string.
|
|
180
|
+
*/
|
|
181
|
+
stripAccents() {
|
|
182
|
+
this.current = __sys__.utils.str.stripAccents(this.current);
|
|
183
|
+
return this;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* **normalizeWhitespace**
|
|
187
|
+
*
|
|
188
|
+
* Normalizes whitespace runs in the wrapped string.
|
|
189
|
+
*/
|
|
190
|
+
normalizeWhitespace() {
|
|
191
|
+
this.current = __sys__.utils.str.normalizeWhitespace(this.current);
|
|
192
|
+
return this;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* **escapeRegExp**
|
|
196
|
+
*
|
|
197
|
+
* Escapes special regex characters in the wrapped string.
|
|
198
|
+
*/
|
|
199
|
+
escapeRegExp() {
|
|
200
|
+
this.current = __sys__.utils.str.escapeRegExp(this.current);
|
|
201
|
+
return this;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* **countOccurrences**
|
|
205
|
+
*
|
|
206
|
+
* Counts occurrences of `word` in the wrapped string.
|
|
207
|
+
*/
|
|
208
|
+
countOccurrences(word, caseSensitive = false) {
|
|
209
|
+
return __sys__.utils.str.countOccurrences(this.current, word, caseSensitive);
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* **isPalindrome**
|
|
213
|
+
*
|
|
214
|
+
* Checks if the wrapped string is a palindrome.
|
|
215
|
+
*/
|
|
216
|
+
isPalindrome(options = {}) {
|
|
217
|
+
return __sys__.utils.str.isPalindrome(this.current, options);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* **wordCount**
|
|
221
|
+
*
|
|
222
|
+
* Counts words in the wrapped string.
|
|
223
|
+
*/
|
|
224
|
+
wordCount() {
|
|
225
|
+
return __sys__.utils.str.wordCount(this.current);
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* **chunk**
|
|
229
|
+
*
|
|
230
|
+
* Splits the wrapped string into chunks of `size`.
|
|
231
|
+
*/
|
|
232
|
+
chunk(size) {
|
|
233
|
+
return __sys__.utils.str.chunk(this.current, size);
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* **extractEmails**
|
|
237
|
+
*
|
|
238
|
+
* Extracts email addresses found in the wrapped string.
|
|
239
|
+
*/
|
|
240
|
+
extractEmails() {
|
|
241
|
+
return __sys__.utils.str.extractEmails(this.current);
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* **extractUrls**
|
|
245
|
+
*
|
|
246
|
+
* Extracts URLs found in the wrapped string.
|
|
247
|
+
*/
|
|
248
|
+
extractUrls() {
|
|
249
|
+
return __sys__.utils.str.extractUrls(this.current);
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* **isEmail**
|
|
253
|
+
*
|
|
254
|
+
* Validates whether the wrapped string is an email address.
|
|
255
|
+
*/
|
|
256
|
+
isEmail() {
|
|
257
|
+
return __sys__.utils.str.isEmail(this.current);
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* **isUrl**
|
|
261
|
+
*
|
|
262
|
+
* Validates whether the wrapped string is a URL.
|
|
263
|
+
*/
|
|
264
|
+
isUrl() {
|
|
265
|
+
return __sys__.utils.str.isUrl(this.current);
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* **between**
|
|
269
|
+
*
|
|
270
|
+
* Returns the substring between markers.
|
|
271
|
+
*/
|
|
272
|
+
between(start, end) {
|
|
273
|
+
return __sys__.utils.str.between(this.current, start, end);
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* **isBlank**
|
|
277
|
+
*
|
|
278
|
+
* Checks if the wrapped string is blank.
|
|
279
|
+
*/
|
|
280
|
+
isBlank() {
|
|
281
|
+
return __sys__.utils.str.isBlank(this.current);
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* **levenshteinDistance**
|
|
285
|
+
*
|
|
286
|
+
* Computes Levenshtein distance between wrapped string and `other`.
|
|
287
|
+
*/
|
|
288
|
+
levenshteinDistance(other) {
|
|
289
|
+
return __sys__.utils.str.levenshteinDistance(this.current, other);
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* **similarity**
|
|
293
|
+
*
|
|
294
|
+
* Computes similarity score between wrapped string and `other`.
|
|
295
|
+
*/
|
|
296
|
+
similarity(other) {
|
|
297
|
+
return __sys__.utils.str.similarity(this.current, other);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
exports.StringWrapper = StringWrapper;
|
|
302
|
+
//# sourceMappingURL=StringWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StringWrapper.js","sources":["../../../../../src/xhsc/utils/StringWrapper.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -82,6 +82,9 @@ class UtilsApi {
|
|
|
82
82
|
* All methods are pure functions with no side effects and no external
|
|
83
83
|
* dependencies — instantiate once and reuse across your application.
|
|
84
84
|
*
|
|
85
|
+
* For chaining operations on the same string without repeating it as an
|
|
86
|
+
* argument, use {@link __sys__.utils.str.of} to get a fluent {@link StringWrapper} instance.
|
|
87
|
+
*
|
|
85
88
|
* @remarks
|
|
86
89
|
* The public API surface of this class is conventionally exposed as `str.**`
|
|
87
90
|
* (e.g. `str.slugify(...)`, `str.toCamelCase(...)`) in XyPriss.
|
|
@@ -96,6 +99,12 @@ class UtilsApi {
|
|
|
96
99
|
* str.toCamelCase("hello-world"); // "helloWorld"
|
|
97
100
|
* str.truncate("A very long text", 10); // "A very ..."
|
|
98
101
|
* str.mask("4111111111111111", { visibleStart: 4, visibleEnd: 4 }); // "4111********1111"
|
|
102
|
+
*
|
|
103
|
+
* // Fluent chaining:
|
|
104
|
+
* str.of(" Hello World! ")
|
|
105
|
+
* .normalizeWhitespace()
|
|
106
|
+
* .toKebabCase()
|
|
107
|
+
* .value(); // "hello-world"
|
|
99
108
|
* ```
|
|
100
109
|
* @see https://xypriss.nehonix.com/docs/system/utils/strings
|
|
101
110
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UtilsApi.js","sources":["../../../../src/xhsc/UtilsApi.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;AAsBiF;AACjF;AAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;MACU,QAAQ,CAAA;AAArB,IAAA,WAAA,GAAA;AACI
|
|
1
|
+
{"version":3,"file":"UtilsApi.js","sources":["../../../../src/xhsc/UtilsApi.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;AAsBiF;AACjF;AAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;MACU,QAAQ,CAAA;AAArB,IAAA,WAAA,GAAA;AACI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCG;AACa,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,WAAW,EAAE;AAEvC;;AAEG;AACa,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,WAAW,EAAE;AAEvC;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACa,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,SAAS,EAAE;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACa,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,WAAW,EAAE;AAEvC;;AAEG;AACa,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,UAAU,EAAE;AAEtC;;AAEG;AACa,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,UAAU,EAAE;AAExC;;AAEG;AACa,QAAA,IAAA,CAAA,EAAE,GAAG,IAAI,eAAe,EAAE;AAE1C;;AAEG;AACa,QAAA,IAAA,CAAA,EAAE,GAAG,IAAI,OAAO,EAAE;AAElC;;AAEG;AACa,QAAA,IAAA,CAAA,EAAE,GAAG,IAAI,aAAa,EAAE;AAExC;;;;;;;;;;;;;AAaG;AACa,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,WAAW,EAAE;IAuB3C;AArBI;;;;;;;;;;;;;;;AAeG;IACI,YAAY,CACf,OAAqD,EAAE,EAAA;AAEvD,QAAA,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC;IAChC;AACH;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ID } from 'nehoid';
|
|
2
|
+
import { StringWrapper } from './StringWrapper.js';
|
|
2
3
|
|
|
3
4
|
/***************************************************************************
|
|
4
5
|
* XyPrissJS - Fast And Secure
|
|
@@ -23,37 +24,36 @@ import { ID } from 'nehoid';
|
|
|
23
24
|
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
24
25
|
*
|
|
25
26
|
***************************************************************************** */
|
|
26
|
-
/**
|
|
27
|
-
* **StringUtils — XyPriss String Utilities**
|
|
28
|
-
*
|
|
29
|
-
* A collection of dependency-free helpers for everyday string manipulation:
|
|
30
|
-
* case conversion (`camelCase`, `kebab-case`, `snake_case`, `Title Case`),
|
|
31
|
-
* sanitization (HTML escaping/stripping, accent stripping, whitespace
|
|
32
|
-
* normalization), validation (emails, URLs, palindromes), extraction
|
|
33
|
-
* (emails, URLs, substrings between markers), masking of sensitive data,
|
|
34
|
-
* fuzzy comparison (Levenshtein distance, similarity score), text layout
|
|
35
|
-
* (word wrap, chunking), and generation (random strings, UUIDs).
|
|
36
|
-
*
|
|
37
|
-
* All methods are pure functions with no side effects and no external
|
|
38
|
-
* dependencies — instantiate once and reuse across your application.
|
|
39
|
-
*
|
|
40
|
-
* @remarks
|
|
41
|
-
* The public API surface of this class is conventionally exposed as `str.**`
|
|
42
|
-
* (e.g. `str.slugify(...)`, `str.toCamelCase(...)`) in XyPriss.
|
|
43
|
-
*
|
|
44
|
-
* @example
|
|
45
|
-
* ```ts
|
|
46
|
-
* import { StringUtils } from "xypriss";
|
|
47
|
-
*
|
|
48
|
-
* const str = new StringUtils();
|
|
49
|
-
*
|
|
50
|
-
* str.slugify("Hello World!"); // "hello-world"
|
|
51
|
-
* str.toCamelCase("hello-world"); // "helloWorld"
|
|
52
|
-
* str.truncate("A very long text", 10); // "A very ..."
|
|
53
|
-
* str.mask("4111111111111111", { visibleStart: 4, visibleEnd: 4 }); // "4111********1111"
|
|
54
|
-
* ```
|
|
55
|
-
*/
|
|
56
27
|
class StringUtils {
|
|
28
|
+
/**
|
|
29
|
+
* **of**
|
|
30
|
+
*
|
|
31
|
+
* Wraps `str` in a chainable {@link StringWrapper}, allowing multiple
|
|
32
|
+
* string operations to be chained fluidly.
|
|
33
|
+
*
|
|
34
|
+
* @param str - The string or number to wrap.
|
|
35
|
+
* @returns A {@link StringWrapper} bound to `str`.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* const slug = __sys__.utils.str.of("Hello World").slugify().value(); // "hello-world"
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
static of(str) {
|
|
43
|
+
return new StringWrapper(str);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* **of** (instance method)
|
|
47
|
+
*
|
|
48
|
+
* Instance-bound convenience wrapper around the static {@link StringUtils.of}.
|
|
49
|
+
* Allows `__sys__.utils.str.of(...)` to work when `str` is an instance.
|
|
50
|
+
*
|
|
51
|
+
* @param str - The string or number to wrap.
|
|
52
|
+
* @returns A {@link StringWrapper} bound to `str`.
|
|
53
|
+
*/
|
|
54
|
+
of(str) {
|
|
55
|
+
return StringUtils.of(str);
|
|
56
|
+
}
|
|
57
57
|
/**
|
|
58
58
|
* **Generate a Random String**
|
|
59
59
|
*
|
|
@@ -145,21 +145,29 @@ class StringUtils {
|
|
|
145
145
|
.replace(/^[A-Z]/, (first) => first.toLowerCase());
|
|
146
146
|
}
|
|
147
147
|
/**
|
|
148
|
-
* **Pad a String**
|
|
148
|
+
* **Pad a String or Number**
|
|
149
149
|
*
|
|
150
|
-
* Adds padding characters to the start or end of a string until it
|
|
150
|
+
* Adds padding characters to the start or end of a string (or number) until it
|
|
151
151
|
* reaches the target length.
|
|
152
152
|
*
|
|
153
|
-
* @param text - The source string.
|
|
153
|
+
* @param text - The source string or number.
|
|
154
154
|
* @param length - Target length.
|
|
155
155
|
* @param char - Padding character (default: `" "`).
|
|
156
156
|
* @param position - Whether to pad at `"start"` or `"end"`.
|
|
157
157
|
* @returns The padded string.
|
|
158
|
+
*
|
|
159
|
+
* @example
|
|
160
|
+
* ```ts
|
|
161
|
+
* utils.pad(42, 5, "0"); // "00042"
|
|
162
|
+
* utils.pad("42", 5, "0"); // "00042"
|
|
163
|
+
* utils.pad("hello", 10, "-", "end"); // "hello-----"
|
|
164
|
+
* ```
|
|
158
165
|
*/
|
|
159
166
|
pad(text, length, char = " ", position = "start") {
|
|
167
|
+
const str = text.toString();
|
|
160
168
|
return position === "start"
|
|
161
|
-
?
|
|
162
|
-
:
|
|
169
|
+
? str.padStart(length, char)
|
|
170
|
+
: str.padEnd(length, char);
|
|
163
171
|
}
|
|
164
172
|
/**
|
|
165
173
|
* **Count Word/Substring Occurrences**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringUtils.js","sources":["../../../../../src/xhsc/utils/StringUtils.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StringUtils.js","sources":["../../../../../src/xhsc/utils/StringUtils.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
class StringWrapper {
|
|
2
|
+
constructor(str) {
|
|
3
|
+
this.current = String(str);
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* **value**
|
|
7
|
+
*
|
|
8
|
+
* Unwraps and returns the underlying string value held by this wrapper.
|
|
9
|
+
* Call this at the end of a chain to get back the final string.
|
|
10
|
+
*
|
|
11
|
+
* @returns The wrapped string.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* __sys__.utils.str.of("hello world").toTitleCase().value(); // "Hello World"
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
value() {
|
|
19
|
+
return this.current;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* **raw**
|
|
23
|
+
*
|
|
24
|
+
* Alias for {@link value}.
|
|
25
|
+
*
|
|
26
|
+
* @returns The wrapped string.
|
|
27
|
+
*/
|
|
28
|
+
raw() {
|
|
29
|
+
return this.current;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* **toString**
|
|
33
|
+
*
|
|
34
|
+
* Returns the string representation of the wrapped value.
|
|
35
|
+
*/
|
|
36
|
+
toString() {
|
|
37
|
+
return this.current;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* **slugify**
|
|
41
|
+
*
|
|
42
|
+
* Converts the wrapped string into a URL-friendly slug.
|
|
43
|
+
*/
|
|
44
|
+
slugify() {
|
|
45
|
+
this.current = __sys__.utils.str.slugify(this.current);
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* **truncate**
|
|
50
|
+
*
|
|
51
|
+
* Shortens the wrapped string to a specified length and appends a suffix.
|
|
52
|
+
*/
|
|
53
|
+
truncate(maxLength, suffix = "...") {
|
|
54
|
+
this.current = __sys__.utils.str.truncate(this.current, maxLength, suffix);
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* **capitalize**
|
|
59
|
+
*
|
|
60
|
+
* Uppercases the first character of the wrapped string.
|
|
61
|
+
*/
|
|
62
|
+
capitalize() {
|
|
63
|
+
this.current = __sys__.utils.str.capitalize(this.current);
|
|
64
|
+
return this;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* **toCamelCase**
|
|
68
|
+
*
|
|
69
|
+
* Converts the wrapped string to camelCase.
|
|
70
|
+
*/
|
|
71
|
+
toCamelCase() {
|
|
72
|
+
this.current = __sys__.utils.str.toCamelCase(this.current);
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* **toKebabCase**
|
|
77
|
+
*
|
|
78
|
+
* Converts the wrapped string to kebab-case.
|
|
79
|
+
*/
|
|
80
|
+
toKebabCase() {
|
|
81
|
+
this.current = __sys__.utils.str.toKebabCase(this.current);
|
|
82
|
+
return this;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* **toSnakeCase**
|
|
86
|
+
*
|
|
87
|
+
* Converts the wrapped string to snake_case.
|
|
88
|
+
*/
|
|
89
|
+
toSnakeCase() {
|
|
90
|
+
this.current = __sys__.utils.str.toSnakeCase(this.current);
|
|
91
|
+
return this;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* **toPascalCase**
|
|
95
|
+
*
|
|
96
|
+
* Converts the wrapped string to PascalCase.
|
|
97
|
+
*/
|
|
98
|
+
toPascalCase() {
|
|
99
|
+
this.current = __sys__.utils.str.toPascalCase(this.current);
|
|
100
|
+
return this;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* **toTitleCase**
|
|
104
|
+
*
|
|
105
|
+
* Converts the wrapped string to Title Case.
|
|
106
|
+
*/
|
|
107
|
+
toTitleCase() {
|
|
108
|
+
this.current = __sys__.utils.str.toTitleCase(this.current);
|
|
109
|
+
return this;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* **pad**
|
|
113
|
+
*
|
|
114
|
+
* Pads the wrapped string to the specified length.
|
|
115
|
+
*/
|
|
116
|
+
pad(length, char = " ", position = "start") {
|
|
117
|
+
this.current = __sys__.utils.str.pad(this.current, length, char, position);
|
|
118
|
+
return this;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* **reverse**
|
|
122
|
+
*
|
|
123
|
+
* Reverses the characters in the wrapped string.
|
|
124
|
+
*/
|
|
125
|
+
reverse() {
|
|
126
|
+
this.current = __sys__.utils.str.reverse(this.current);
|
|
127
|
+
return this;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* **stripHtml**
|
|
131
|
+
*
|
|
132
|
+
* Strips HTML tags from the wrapped string.
|
|
133
|
+
*/
|
|
134
|
+
stripHtml() {
|
|
135
|
+
this.current = __sys__.utils.str.stripHtml(this.current);
|
|
136
|
+
return this;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* **escapeHtml**
|
|
140
|
+
*
|
|
141
|
+
* Escapes HTML entities in the wrapped string.
|
|
142
|
+
*/
|
|
143
|
+
escapeHtml() {
|
|
144
|
+
this.current = __sys__.utils.str.escapeHtml(this.current);
|
|
145
|
+
return this;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* **unescapeHtml**
|
|
149
|
+
*
|
|
150
|
+
* Unescapes HTML entities in the wrapped string.
|
|
151
|
+
*/
|
|
152
|
+
unescapeHtml() {
|
|
153
|
+
this.current = __sys__.utils.str.unescapeHtml(this.current);
|
|
154
|
+
return this;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* **mask**
|
|
158
|
+
*
|
|
159
|
+
* Masks the wrapped string.
|
|
160
|
+
*/
|
|
161
|
+
mask(options = {}) {
|
|
162
|
+
this.current = __sys__.utils.str.mask(this.current, options);
|
|
163
|
+
return this;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* **wordWrap**
|
|
167
|
+
*
|
|
168
|
+
* Wraps the wrapped text at the given width.
|
|
169
|
+
*/
|
|
170
|
+
wordWrap(width, lineBreak = "\n") {
|
|
171
|
+
this.current = __sys__.utils.str.wordWrap(this.current, width, lineBreak);
|
|
172
|
+
return this;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* **stripAccents**
|
|
176
|
+
*
|
|
177
|
+
* Removes accents/diacritics from the wrapped string.
|
|
178
|
+
*/
|
|
179
|
+
stripAccents() {
|
|
180
|
+
this.current = __sys__.utils.str.stripAccents(this.current);
|
|
181
|
+
return this;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* **normalizeWhitespace**
|
|
185
|
+
*
|
|
186
|
+
* Normalizes whitespace runs in the wrapped string.
|
|
187
|
+
*/
|
|
188
|
+
normalizeWhitespace() {
|
|
189
|
+
this.current = __sys__.utils.str.normalizeWhitespace(this.current);
|
|
190
|
+
return this;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* **escapeRegExp**
|
|
194
|
+
*
|
|
195
|
+
* Escapes special regex characters in the wrapped string.
|
|
196
|
+
*/
|
|
197
|
+
escapeRegExp() {
|
|
198
|
+
this.current = __sys__.utils.str.escapeRegExp(this.current);
|
|
199
|
+
return this;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* **countOccurrences**
|
|
203
|
+
*
|
|
204
|
+
* Counts occurrences of `word` in the wrapped string.
|
|
205
|
+
*/
|
|
206
|
+
countOccurrences(word, caseSensitive = false) {
|
|
207
|
+
return __sys__.utils.str.countOccurrences(this.current, word, caseSensitive);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* **isPalindrome**
|
|
211
|
+
*
|
|
212
|
+
* Checks if the wrapped string is a palindrome.
|
|
213
|
+
*/
|
|
214
|
+
isPalindrome(options = {}) {
|
|
215
|
+
return __sys__.utils.str.isPalindrome(this.current, options);
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* **wordCount**
|
|
219
|
+
*
|
|
220
|
+
* Counts words in the wrapped string.
|
|
221
|
+
*/
|
|
222
|
+
wordCount() {
|
|
223
|
+
return __sys__.utils.str.wordCount(this.current);
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* **chunk**
|
|
227
|
+
*
|
|
228
|
+
* Splits the wrapped string into chunks of `size`.
|
|
229
|
+
*/
|
|
230
|
+
chunk(size) {
|
|
231
|
+
return __sys__.utils.str.chunk(this.current, size);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* **extractEmails**
|
|
235
|
+
*
|
|
236
|
+
* Extracts email addresses found in the wrapped string.
|
|
237
|
+
*/
|
|
238
|
+
extractEmails() {
|
|
239
|
+
return __sys__.utils.str.extractEmails(this.current);
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* **extractUrls**
|
|
243
|
+
*
|
|
244
|
+
* Extracts URLs found in the wrapped string.
|
|
245
|
+
*/
|
|
246
|
+
extractUrls() {
|
|
247
|
+
return __sys__.utils.str.extractUrls(this.current);
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* **isEmail**
|
|
251
|
+
*
|
|
252
|
+
* Validates whether the wrapped string is an email address.
|
|
253
|
+
*/
|
|
254
|
+
isEmail() {
|
|
255
|
+
return __sys__.utils.str.isEmail(this.current);
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* **isUrl**
|
|
259
|
+
*
|
|
260
|
+
* Validates whether the wrapped string is a URL.
|
|
261
|
+
*/
|
|
262
|
+
isUrl() {
|
|
263
|
+
return __sys__.utils.str.isUrl(this.current);
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* **between**
|
|
267
|
+
*
|
|
268
|
+
* Returns the substring between markers.
|
|
269
|
+
*/
|
|
270
|
+
between(start, end) {
|
|
271
|
+
return __sys__.utils.str.between(this.current, start, end);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* **isBlank**
|
|
275
|
+
*
|
|
276
|
+
* Checks if the wrapped string is blank.
|
|
277
|
+
*/
|
|
278
|
+
isBlank() {
|
|
279
|
+
return __sys__.utils.str.isBlank(this.current);
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* **levenshteinDistance**
|
|
283
|
+
*
|
|
284
|
+
* Computes Levenshtein distance between wrapped string and `other`.
|
|
285
|
+
*/
|
|
286
|
+
levenshteinDistance(other) {
|
|
287
|
+
return __sys__.utils.str.levenshteinDistance(this.current, other);
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* **similarity**
|
|
291
|
+
*
|
|
292
|
+
* Computes similarity score between wrapped string and `other`.
|
|
293
|
+
*/
|
|
294
|
+
similarity(other) {
|
|
295
|
+
return __sys__.utils.str.similarity(this.current, other);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
export { StringWrapper };
|
|
300
|
+
//# sourceMappingURL=StringWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StringWrapper.js","sources":["../../../../../src/xhsc/utils/StringWrapper.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5466,6 +5466,226 @@ declare class EnvApi implements IEnvApi {
|
|
|
5466
5466
|
private isCallerProjectCode;
|
|
5467
5467
|
}
|
|
5468
5468
|
|
|
5469
|
+
declare class StringWrapper {
|
|
5470
|
+
private current;
|
|
5471
|
+
constructor(str: string | number);
|
|
5472
|
+
/**
|
|
5473
|
+
* **value**
|
|
5474
|
+
*
|
|
5475
|
+
* Unwraps and returns the underlying string value held by this wrapper.
|
|
5476
|
+
* Call this at the end of a chain to get back the final string.
|
|
5477
|
+
*
|
|
5478
|
+
* @returns The wrapped string.
|
|
5479
|
+
*
|
|
5480
|
+
* @example
|
|
5481
|
+
* ```ts
|
|
5482
|
+
* __sys__.utils.str.of("hello world").toTitleCase().value(); // "Hello World"
|
|
5483
|
+
* ```
|
|
5484
|
+
*/
|
|
5485
|
+
value(): string;
|
|
5486
|
+
/**
|
|
5487
|
+
* **raw**
|
|
5488
|
+
*
|
|
5489
|
+
* Alias for {@link value}.
|
|
5490
|
+
*
|
|
5491
|
+
* @returns The wrapped string.
|
|
5492
|
+
*/
|
|
5493
|
+
raw(): string;
|
|
5494
|
+
/**
|
|
5495
|
+
* **toString**
|
|
5496
|
+
*
|
|
5497
|
+
* Returns the string representation of the wrapped value.
|
|
5498
|
+
*/
|
|
5499
|
+
toString(): string;
|
|
5500
|
+
/**
|
|
5501
|
+
* **slugify**
|
|
5502
|
+
*
|
|
5503
|
+
* Converts the wrapped string into a URL-friendly slug.
|
|
5504
|
+
*/
|
|
5505
|
+
slugify(): StringWrapper;
|
|
5506
|
+
/**
|
|
5507
|
+
* **truncate**
|
|
5508
|
+
*
|
|
5509
|
+
* Shortens the wrapped string to a specified length and appends a suffix.
|
|
5510
|
+
*/
|
|
5511
|
+
truncate(maxLength: number, suffix?: string): StringWrapper;
|
|
5512
|
+
/**
|
|
5513
|
+
* **capitalize**
|
|
5514
|
+
*
|
|
5515
|
+
* Uppercases the first character of the wrapped string.
|
|
5516
|
+
*/
|
|
5517
|
+
capitalize(): StringWrapper;
|
|
5518
|
+
/**
|
|
5519
|
+
* **toCamelCase**
|
|
5520
|
+
*
|
|
5521
|
+
* Converts the wrapped string to camelCase.
|
|
5522
|
+
*/
|
|
5523
|
+
toCamelCase(): StringWrapper;
|
|
5524
|
+
/**
|
|
5525
|
+
* **toKebabCase**
|
|
5526
|
+
*
|
|
5527
|
+
* Converts the wrapped string to kebab-case.
|
|
5528
|
+
*/
|
|
5529
|
+
toKebabCase(): StringWrapper;
|
|
5530
|
+
/**
|
|
5531
|
+
* **toSnakeCase**
|
|
5532
|
+
*
|
|
5533
|
+
* Converts the wrapped string to snake_case.
|
|
5534
|
+
*/
|
|
5535
|
+
toSnakeCase(): StringWrapper;
|
|
5536
|
+
/**
|
|
5537
|
+
* **toPascalCase**
|
|
5538
|
+
*
|
|
5539
|
+
* Converts the wrapped string to PascalCase.
|
|
5540
|
+
*/
|
|
5541
|
+
toPascalCase(): StringWrapper;
|
|
5542
|
+
/**
|
|
5543
|
+
* **toTitleCase**
|
|
5544
|
+
*
|
|
5545
|
+
* Converts the wrapped string to Title Case.
|
|
5546
|
+
*/
|
|
5547
|
+
toTitleCase(): StringWrapper;
|
|
5548
|
+
/**
|
|
5549
|
+
* **pad**
|
|
5550
|
+
*
|
|
5551
|
+
* Pads the wrapped string to the specified length.
|
|
5552
|
+
*/
|
|
5553
|
+
pad(length: number, char?: string, position?: "start" | "end"): StringWrapper;
|
|
5554
|
+
/**
|
|
5555
|
+
* **reverse**
|
|
5556
|
+
*
|
|
5557
|
+
* Reverses the characters in the wrapped string.
|
|
5558
|
+
*/
|
|
5559
|
+
reverse(): StringWrapper;
|
|
5560
|
+
/**
|
|
5561
|
+
* **stripHtml**
|
|
5562
|
+
*
|
|
5563
|
+
* Strips HTML tags from the wrapped string.
|
|
5564
|
+
*/
|
|
5565
|
+
stripHtml(): StringWrapper;
|
|
5566
|
+
/**
|
|
5567
|
+
* **escapeHtml**
|
|
5568
|
+
*
|
|
5569
|
+
* Escapes HTML entities in the wrapped string.
|
|
5570
|
+
*/
|
|
5571
|
+
escapeHtml(): StringWrapper;
|
|
5572
|
+
/**
|
|
5573
|
+
* **unescapeHtml**
|
|
5574
|
+
*
|
|
5575
|
+
* Unescapes HTML entities in the wrapped string.
|
|
5576
|
+
*/
|
|
5577
|
+
unescapeHtml(): StringWrapper;
|
|
5578
|
+
/**
|
|
5579
|
+
* **mask**
|
|
5580
|
+
*
|
|
5581
|
+
* Masks the wrapped string.
|
|
5582
|
+
*/
|
|
5583
|
+
mask(options?: {
|
|
5584
|
+
visibleStart?: number;
|
|
5585
|
+
visibleEnd?: number;
|
|
5586
|
+
maskChar?: string;
|
|
5587
|
+
}): StringWrapper;
|
|
5588
|
+
/**
|
|
5589
|
+
* **wordWrap**
|
|
5590
|
+
*
|
|
5591
|
+
* Wraps the wrapped text at the given width.
|
|
5592
|
+
*/
|
|
5593
|
+
wordWrap(width: number, lineBreak?: string): StringWrapper;
|
|
5594
|
+
/**
|
|
5595
|
+
* **stripAccents**
|
|
5596
|
+
*
|
|
5597
|
+
* Removes accents/diacritics from the wrapped string.
|
|
5598
|
+
*/
|
|
5599
|
+
stripAccents(): StringWrapper;
|
|
5600
|
+
/**
|
|
5601
|
+
* **normalizeWhitespace**
|
|
5602
|
+
*
|
|
5603
|
+
* Normalizes whitespace runs in the wrapped string.
|
|
5604
|
+
*/
|
|
5605
|
+
normalizeWhitespace(): StringWrapper;
|
|
5606
|
+
/**
|
|
5607
|
+
* **escapeRegExp**
|
|
5608
|
+
*
|
|
5609
|
+
* Escapes special regex characters in the wrapped string.
|
|
5610
|
+
*/
|
|
5611
|
+
escapeRegExp(): StringWrapper;
|
|
5612
|
+
/**
|
|
5613
|
+
* **countOccurrences**
|
|
5614
|
+
*
|
|
5615
|
+
* Counts occurrences of `word` in the wrapped string.
|
|
5616
|
+
*/
|
|
5617
|
+
countOccurrences(word: string, caseSensitive?: boolean): number;
|
|
5618
|
+
/**
|
|
5619
|
+
* **isPalindrome**
|
|
5620
|
+
*
|
|
5621
|
+
* Checks if the wrapped string is a palindrome.
|
|
5622
|
+
*/
|
|
5623
|
+
isPalindrome(options?: {
|
|
5624
|
+
caseSensitive?: boolean;
|
|
5625
|
+
ignoreSpaces?: boolean;
|
|
5626
|
+
}): boolean;
|
|
5627
|
+
/**
|
|
5628
|
+
* **wordCount**
|
|
5629
|
+
*
|
|
5630
|
+
* Counts words in the wrapped string.
|
|
5631
|
+
*/
|
|
5632
|
+
wordCount(): number;
|
|
5633
|
+
/**
|
|
5634
|
+
* **chunk**
|
|
5635
|
+
*
|
|
5636
|
+
* Splits the wrapped string into chunks of `size`.
|
|
5637
|
+
*/
|
|
5638
|
+
chunk(size: number): string[];
|
|
5639
|
+
/**
|
|
5640
|
+
* **extractEmails**
|
|
5641
|
+
*
|
|
5642
|
+
* Extracts email addresses found in the wrapped string.
|
|
5643
|
+
*/
|
|
5644
|
+
extractEmails(): string[];
|
|
5645
|
+
/**
|
|
5646
|
+
* **extractUrls**
|
|
5647
|
+
*
|
|
5648
|
+
* Extracts URLs found in the wrapped string.
|
|
5649
|
+
*/
|
|
5650
|
+
extractUrls(): string[];
|
|
5651
|
+
/**
|
|
5652
|
+
* **isEmail**
|
|
5653
|
+
*
|
|
5654
|
+
* Validates whether the wrapped string is an email address.
|
|
5655
|
+
*/
|
|
5656
|
+
isEmail(): boolean;
|
|
5657
|
+
/**
|
|
5658
|
+
* **isUrl**
|
|
5659
|
+
*
|
|
5660
|
+
* Validates whether the wrapped string is a URL.
|
|
5661
|
+
*/
|
|
5662
|
+
isUrl(): boolean;
|
|
5663
|
+
/**
|
|
5664
|
+
* **between**
|
|
5665
|
+
*
|
|
5666
|
+
* Returns the substring between markers.
|
|
5667
|
+
*/
|
|
5668
|
+
between(start: string, end?: string): string | null;
|
|
5669
|
+
/**
|
|
5670
|
+
* **isBlank**
|
|
5671
|
+
*
|
|
5672
|
+
* Checks if the wrapped string is blank.
|
|
5673
|
+
*/
|
|
5674
|
+
isBlank(): boolean;
|
|
5675
|
+
/**
|
|
5676
|
+
* **levenshteinDistance**
|
|
5677
|
+
*
|
|
5678
|
+
* Computes Levenshtein distance between wrapped string and `other`.
|
|
5679
|
+
*/
|
|
5680
|
+
levenshteinDistance(other: string): number;
|
|
5681
|
+
/**
|
|
5682
|
+
* **similarity**
|
|
5683
|
+
*
|
|
5684
|
+
* Computes similarity score between wrapped string and `other`.
|
|
5685
|
+
*/
|
|
5686
|
+
similarity(other: string): number;
|
|
5687
|
+
}
|
|
5688
|
+
|
|
5469
5689
|
/***************************************************************************
|
|
5470
5690
|
* XyPrissJS - Fast And Secure
|
|
5471
5691
|
*
|
|
@@ -5489,37 +5709,33 @@ declare class EnvApi implements IEnvApi {
|
|
|
5489
5709
|
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
5490
5710
|
*
|
|
5491
5711
|
***************************************************************************** */
|
|
5492
|
-
|
|
5493
|
-
* **StringUtils — XyPriss String Utilities**
|
|
5494
|
-
*
|
|
5495
|
-
* A collection of dependency-free helpers for everyday string manipulation:
|
|
5496
|
-
* case conversion (`camelCase`, `kebab-case`, `snake_case`, `Title Case`),
|
|
5497
|
-
* sanitization (HTML escaping/stripping, accent stripping, whitespace
|
|
5498
|
-
* normalization), validation (emails, URLs, palindromes), extraction
|
|
5499
|
-
* (emails, URLs, substrings between markers), masking of sensitive data,
|
|
5500
|
-
* fuzzy comparison (Levenshtein distance, similarity score), text layout
|
|
5501
|
-
* (word wrap, chunking), and generation (random strings, UUIDs).
|
|
5502
|
-
*
|
|
5503
|
-
* All methods are pure functions with no side effects and no external
|
|
5504
|
-
* dependencies — instantiate once and reuse across your application.
|
|
5505
|
-
*
|
|
5506
|
-
* @remarks
|
|
5507
|
-
* The public API surface of this class is conventionally exposed as `str.**`
|
|
5508
|
-
* (e.g. `str.slugify(...)`, `str.toCamelCase(...)`) in XyPriss.
|
|
5509
|
-
*
|
|
5510
|
-
* @example
|
|
5511
|
-
* ```ts
|
|
5512
|
-
* import { StringUtils } from "xypriss";
|
|
5513
|
-
*
|
|
5514
|
-
* const str = new StringUtils();
|
|
5515
|
-
*
|
|
5516
|
-
* str.slugify("Hello World!"); // "hello-world"
|
|
5517
|
-
* str.toCamelCase("hello-world"); // "helloWorld"
|
|
5518
|
-
* str.truncate("A very long text", 10); // "A very ..."
|
|
5519
|
-
* str.mask("4111111111111111", { visibleStart: 4, visibleEnd: 4 }); // "4111********1111"
|
|
5520
|
-
* ```
|
|
5521
|
-
*/
|
|
5712
|
+
|
|
5522
5713
|
declare class StringUtils {
|
|
5714
|
+
/**
|
|
5715
|
+
* **of**
|
|
5716
|
+
*
|
|
5717
|
+
* Wraps `str` in a chainable {@link StringWrapper}, allowing multiple
|
|
5718
|
+
* string operations to be chained fluidly.
|
|
5719
|
+
*
|
|
5720
|
+
* @param str - The string or number to wrap.
|
|
5721
|
+
* @returns A {@link StringWrapper} bound to `str`.
|
|
5722
|
+
*
|
|
5723
|
+
* @example
|
|
5724
|
+
* ```ts
|
|
5725
|
+
* const slug = __sys__.utils.str.of("Hello World").slugify().value(); // "hello-world"
|
|
5726
|
+
* ```
|
|
5727
|
+
*/
|
|
5728
|
+
static of(str: string | number): StringWrapper;
|
|
5729
|
+
/**
|
|
5730
|
+
* **of** (instance method)
|
|
5731
|
+
*
|
|
5732
|
+
* Instance-bound convenience wrapper around the static {@link StringUtils.of}.
|
|
5733
|
+
* Allows `__sys__.utils.str.of(...)` to work when `str` is an instance.
|
|
5734
|
+
*
|
|
5735
|
+
* @param str - The string or number to wrap.
|
|
5736
|
+
* @returns A {@link StringWrapper} bound to `str`.
|
|
5737
|
+
*/
|
|
5738
|
+
of(str: string | number): StringWrapper;
|
|
5523
5739
|
/**
|
|
5524
5740
|
* **Generate a Random String**
|
|
5525
5741
|
*
|
|
@@ -5587,18 +5803,25 @@ declare class StringUtils {
|
|
|
5587
5803
|
*/
|
|
5588
5804
|
toCamelCase(text: string): string;
|
|
5589
5805
|
/**
|
|
5590
|
-
* **Pad a String**
|
|
5806
|
+
* **Pad a String or Number**
|
|
5591
5807
|
*
|
|
5592
|
-
* Adds padding characters to the start or end of a string until it
|
|
5808
|
+
* Adds padding characters to the start or end of a string (or number) until it
|
|
5593
5809
|
* reaches the target length.
|
|
5594
5810
|
*
|
|
5595
|
-
* @param text - The source string.
|
|
5811
|
+
* @param text - The source string or number.
|
|
5596
5812
|
* @param length - Target length.
|
|
5597
5813
|
* @param char - Padding character (default: `" "`).
|
|
5598
5814
|
* @param position - Whether to pad at `"start"` or `"end"`.
|
|
5599
5815
|
* @returns The padded string.
|
|
5816
|
+
*
|
|
5817
|
+
* @example
|
|
5818
|
+
* ```ts
|
|
5819
|
+
* utils.pad(42, 5, "0"); // "00042"
|
|
5820
|
+
* utils.pad("42", 5, "0"); // "00042"
|
|
5821
|
+
* utils.pad("hello", 10, "-", "end"); // "hello-----"
|
|
5822
|
+
* ```
|
|
5600
5823
|
*/
|
|
5601
|
-
pad(text: string, length: number, char?: string, position?: "start" | "end"): string;
|
|
5824
|
+
pad(text: string | number, length: number, char?: string, position?: "start" | "end"): string;
|
|
5602
5825
|
/**
|
|
5603
5826
|
* **Count Word/Substring Occurrences**
|
|
5604
5827
|
*
|
|
@@ -8572,6 +8795,9 @@ declare class UtilsApi {
|
|
|
8572
8795
|
* All methods are pure functions with no side effects and no external
|
|
8573
8796
|
* dependencies — instantiate once and reuse across your application.
|
|
8574
8797
|
*
|
|
8798
|
+
* For chaining operations on the same string without repeating it as an
|
|
8799
|
+
* argument, use {@link __sys__.utils.str.of} to get a fluent {@link StringWrapper} instance.
|
|
8800
|
+
*
|
|
8575
8801
|
* @remarks
|
|
8576
8802
|
* The public API surface of this class is conventionally exposed as `str.**`
|
|
8577
8803
|
* (e.g. `str.slugify(...)`, `str.toCamelCase(...)`) in XyPriss.
|
|
@@ -8586,6 +8812,12 @@ declare class UtilsApi {
|
|
|
8586
8812
|
* str.toCamelCase("hello-world"); // "helloWorld"
|
|
8587
8813
|
* str.truncate("A very long text", 10); // "A very ..."
|
|
8588
8814
|
* str.mask("4111111111111111", { visibleStart: 4, visibleEnd: 4 }); // "4111********1111"
|
|
8815
|
+
*
|
|
8816
|
+
* // Fluent chaining:
|
|
8817
|
+
* str.of(" Hello World! ")
|
|
8818
|
+
* .normalizeWhitespace()
|
|
8819
|
+
* .toKebabCase()
|
|
8820
|
+
* .value(); // "hello-world"
|
|
8589
8821
|
* ```
|
|
8590
8822
|
* @see https://xypriss.nehonix.com/docs/system/utils/strings
|
|
8591
8823
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xypriss",
|
|
3
|
-
"version": "9.12.
|
|
3
|
+
"version": "9.12.47",
|
|
4
4
|
"description": "XyPriss is a high-performance, TypeScript-first hyper-system web framework powered by a native Go core (XHSC), featuring robust multi-tenant sandboxing, secure native file streaming, and zero Express dependencies.",
|
|
5
5
|
"author": {
|
|
6
6
|
"DEV.to": "https://dev.to/nehonix",
|