xypriss 9.12.45 → 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.
@@ -2,6 +2,9 @@
2
2
 
3
3
  var strulink = require('strulink');
4
4
 
5
+ const UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
6
+ const HASH_REGEX = /^[0-9a-f]{16,64}$/i;
7
+ const SAFE_PARAM_REGEX = /^[a-zA-Z0-9_\-.~%]+$/;
5
8
  class MaliciousUrlScanner {
6
9
  /**
7
10
  * Middleware for scanning incoming URLs for malicious payloads (XSS, Path Traversal, etc.)
@@ -25,37 +28,83 @@ class MaliciousUrlScanner {
25
28
  return (req, res, next) => next?.();
26
29
  }
27
30
  const mode = scannerConfig.mode || "block";
28
- const options = scannerConfig.options || {
29
- minScore: 40,
31
+ const options = {
32
+ minScore: 70,
30
33
  sensitivity: 1.0,
34
+ enableEntropyAnalysis: false, // Disabled by default to prevent false positives on UUIDs and hash IDs
35
+ ...scannerConfig.options,
31
36
  advanced: {
32
37
  maxEncodingLayers: 3,
33
- entropyThreshold: 4.8
34
- }
38
+ entropyThreshold: 5.5,
39
+ ...scannerConfig.options?.advanced,
40
+ },
35
41
  };
36
42
  return async (req, res, next) => {
37
43
  try {
44
+ const reqPath = req.path || (req.url ? req.url.split("?")[0] : "");
45
+ // Check excluded paths
46
+ if (scannerConfig.excludePaths && scannerConfig.excludePaths.length > 0) {
47
+ for (const pattern of scannerConfig.excludePaths) {
48
+ if (typeof pattern === "string") {
49
+ if (pattern.endsWith("/**")) {
50
+ const prefix = pattern.slice(0, -3);
51
+ if (reqPath === prefix || reqPath.startsWith(prefix + "/")) {
52
+ return next?.();
53
+ }
54
+ }
55
+ else if (pattern.endsWith("/*")) {
56
+ const prefix = pattern.slice(0, -2);
57
+ if (reqPath === prefix || reqPath.startsWith(prefix + "/")) {
58
+ return next?.();
59
+ }
60
+ }
61
+ else if (reqPath === pattern || reqPath.startsWith(pattern)) {
62
+ return next?.();
63
+ }
64
+ }
65
+ else if (pattern instanceof RegExp && pattern.test(reqPath)) {
66
+ return next?.();
67
+ }
68
+ }
69
+ }
38
70
  // Reconstruct full URL to scan everything including path and query
39
71
  const protocol = req.headers["x-forwarded-proto"] || "http";
40
72
  const host = req.headers.host || "localhost";
41
73
  const fullUrl = `${protocol}://${host}${req.originalUrl || req.url}`;
42
74
  const result = await strulink.__strl__.scanUrl(fullUrl, options);
43
75
  if (result.isMalicious) {
44
- const reasons = result.detectedPatterns.map(p => p.type).join(", ");
45
- const logMessage = `[MaliciousUrlScanner] Detected malicious URL (Score: ${result.score}). Reasons: ${reasons}. URL: ${req.url}`;
46
- if (logger) {
47
- logger.warn("security", logMessage);
48
- }
49
- else {
50
- console.warn(logMessage);
51
- }
52
- if (mode === "block") {
53
- res.status(403).json({
54
- error: "Forbidden",
55
- code: "EMALICIOUSURL",
56
- message: "The request was blocked due to suspected malicious payload."
57
- });
58
- return;
76
+ // Filter heuristic false positives on standard UUIDs, hashes, and benign params
77
+ const genuinePatterns = (result.detectedPatterns || []).filter((p) => {
78
+ if (scannerConfig.ignorePatterns?.includes(p.type)) {
79
+ return false;
80
+ }
81
+ if (p.type === "encoded_payload" || p.pattern === "high_entropy") {
82
+ const val = p.matchedValue || "";
83
+ if (UUID_REGEX.test(val) || HASH_REGEX.test(val) || SAFE_PARAM_REGEX.test(val)) {
84
+ return false;
85
+ }
86
+ }
87
+ return true;
88
+ });
89
+ if (genuinePatterns.length > 0) {
90
+ const reasons = genuinePatterns.map((p) => p.type).join(", ");
91
+ const logMessage = `[MaliciousUrlScanner] Detected malicious URL (Score: ${result.score}). Reasons: ${reasons}. URL: ${req.url}`;
92
+ if (logger) {
93
+ logger.warn("security", logMessage);
94
+ }
95
+ else {
96
+ console.warn(logMessage);
97
+ }
98
+ if (mode === "block") {
99
+ if (!res.headersSent && !res.writableEnded) {
100
+ res.status(403).json({
101
+ error: "Forbidden",
102
+ code: "EMALICIOUSURL",
103
+ message: "The request was blocked due to suspected malicious payload."
104
+ });
105
+ }
106
+ return;
107
+ }
59
108
  }
60
109
  }
61
110
  next?.();
@@ -64,8 +113,6 @@ class MaliciousUrlScanner {
64
113
  if (logger) {
65
114
  logger.error("security", "Failed to scan URL for malicious payloads", err);
66
115
  }
67
- // Fail open or fail closed? Usually fail closed for security, but fail open to avoid breaking app if strulink crashes.
68
- // We'll call next() to fail open.
69
116
  next?.();
70
117
  }
71
118
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MaliciousUrlScanner.js","sources":["../../../../../../src/middleware/built-in/security/MaliciousUrlScanner.ts"],"sourcesContent":[null],"names":["__strl__"],"mappings":";;;;MAMa,mBAAmB,CAAA;AAC5B;;;;;;AAMG;AACH,IAAA,OAAO,UAAU,CACb,MAAA,GAA8C,KAAK,EACnD,MAAe,EAAA;;QAGf,IAAI,aAAa,GAA8B,EAAE;AAEjD,QAAA,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE;AAC7B,YAAA,IAAI,CAAC,MAAM;AAAE,gBAAA,OAAO,CAAC,GAAkB,EAAE,GAAmB,EAAE,IAAmB,KAAK,IAAI,IAAI;YAC9F,aAAa,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;QACpD;aAAO;YACH,aAAa,GAAG,MAAM;QAC1B;AAEA,QAAA,IAAI,aAAa,CAAC,OAAO,KAAK,KAAK,EAAE;AACjC,YAAA,OAAO,CAAC,GAAkB,EAAE,GAAmB,EAAE,IAAmB,KAAK,IAAI,IAAI;QACrF;AAEA,QAAA,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,IAAI,OAAO;AAC1C,QAAA,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI;AACrC,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,WAAW,EAAE,GAAG;AAChB,YAAA,QAAQ,EAAE;AACN,gBAAA,iBAAiB,EAAE,CAAC;AACpB,gBAAA,gBAAgB,EAAE;AACrB;SACJ;QAED,OAAO,OAAO,GAAkB,EAAE,GAAmB,EAAE,IAAmB,KAAI;AAC1E,YAAA,IAAI;;gBAEA,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,MAAM;gBAC3D,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW;AAC5C,gBAAA,MAAM,OAAO,GAAG,CAAA,EAAG,QAAQ,MAAM,IAAI,CAAA,EAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,GAAG,EAAE;gBAEpE,MAAM,MAAM,GAAG,MAAMA,iBAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;AAEvD,gBAAA,IAAI,MAAM,CAAC,WAAW,EAAE;oBACpB,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACnE,oBAAA,MAAM,UAAU,GAAG,CAAA,qDAAA,EAAwD,MAAM,CAAC,KAAK,CAAA,YAAA,EAAe,OAAO,CAAA,OAAA,EAAU,GAAG,CAAC,GAAG,EAAE;oBAEhI,IAAI,MAAM,EAAE;AACR,wBAAA,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;oBACvC;yBAAO;AACH,wBAAA,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;oBAC5B;AAEA,oBAAA,IAAI,IAAI,KAAK,OAAO,EAAE;AAClB,wBAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACjB,4BAAA,KAAK,EAAE,WAAW;AAClB,4BAAA,IAAI,EAAE,eAAe;AACrB,4BAAA,OAAO,EAAE;AACZ,yBAAA,CAAC;wBACF;oBACJ;gBACJ;gBAEA,IAAI,IAAI;YACZ;YAAE,OAAO,GAAG,EAAE;gBACV,IAAI,MAAM,EAAE;oBACR,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,2CAA2C,EAAE,GAAY,CAAC;gBACvF;;;gBAGA,IAAI,IAAI;YACZ;AACJ,QAAA,CAAC;IACL;AACH;;;;"}
1
+ {"version":3,"file":"MaliciousUrlScanner.js","sources":["../../../../../../src/middleware/built-in/security/MaliciousUrlScanner.ts"],"sourcesContent":[null],"names":["__strl__"],"mappings":"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"}
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BG;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
+ {"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
- ? text.padStart(length, char)
164
- : text.padEnd(length, char);
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":"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"}
1
+ {"version":3,"file":"StringUtils.js","sources":["../../../../../src/xhsc/utils/StringUtils.ts"],"sourcesContent":[null],"names":["StringWrapper","ID"],"mappings":";;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;AAsBiF;MAKpE,WAAW,CAAA;AACpB;;;;;;;;;;;;;AAaG;IACI,OAAO,EAAE,CAAC,GAAoB,EAAA;AACjC,QAAA,OAAO,IAAIA,2BAAa,CAAC,GAAG,CAAC;IACjC;AAEA;;;;;;;;AAQG;AACI,IAAA,EAAE,CAAC,GAAoB,EAAA;AAC1B,QAAA,OAAO,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC;IAC9B;AACA;;;;;;;;;;;;;AAaG;IACI,YAAY,CAAC,SAAiB,EAAE,EAAA;QACnC,MAAM,KAAK,GACP,gEAAgE;QACpE,IAAI,MAAM,GAAG,EAAE;AACf,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7B,YAAA,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QACpE;AACA,QAAA,OAAO,MAAM;IACjB;AAEA;;;;;;;;;;;;;AAaG;AACI,IAAA,OAAO,CAAC,IAAY,EAAA;AACvB,QAAA,OAAO;AACF,aAAA,WAAW;AACX,aAAA,IAAI;AACJ,aAAA,OAAO,CAAC,WAAW,EAAE,EAAE;AACvB,aAAA,OAAO,CAAC,UAAU,EAAE,GAAG;AACvB,aAAA,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;IAChC;AAEA;;;;;;;;;;;;;;;AAeG;AACI,IAAA,QAAQ,CACX,IAAY,EACZ,SAAiB,EACjB,SAAiB,KAAK,EAAA;AAEtB,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;AAAE,YAAA,OAAO,IAAI;AACzC,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM;IAChE;AAEA;;;;;;;AAOG;AACI,IAAA,UAAU,CAAC,IAAY,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD;AAEA;;;;;;;;AAQG;AACI,IAAA,WAAW,CAAC,IAAY,EAAA;AAC3B,QAAA,OAAO;AACF,aAAA,OAAO,CAAC,gBAAgB,EAAE,CAAC,EAAE,KAC1B,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;AAEzC,aAAA,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;IAC1D;AAEA;;;;;;;;;;;;;;;;;;AAkBG;IACI,GAAG,CACN,IAAqB,EACrB,MAAc,EACd,IAAA,GAAe,GAAG,EAClB,QAAA,GAA4B,OAAO,EAAA;AAEnC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE;QAC3B,OAAO,QAAQ,KAAK;cACd,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI;cACzB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;IAClC;AAEA;;;;;;;;;AASG;AACI,IAAA,gBAAgB,CACnB,IAAY,EACZ,IAAY,EACZ,gBAAyB,KAAK,EAAA;QAE9B,MAAM,KAAK,GAAG,aAAa,GAAG,GAAG,GAAG,IAAI;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;AAC3D,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM;IAChE;AAEA;;;;;;;AAOG;AACI,IAAA,aAAa,CAAC,MAA+B,EAAA;AAChD,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM;aACvB,GAAG,CACA,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KACT,CAAA,EAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA,CAAA,EAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA,CAAE;aAExE,IAAI,CAAC,GAAG,CAAC;IAClB;AAEA;;;;;;;;;;;;;;AAcG;AACI,IAAA,OAAO,CAAC,IAAY,EAAA;AACvB,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9C;AAEA;;;;;;;;;;;;;;;;AAgBG;AACI,IAAA,YAAY,CACf,IAAY,EACZ,OAAA,GAA+D,EAAE,EAAA;QAEjE,MAAM,EAAE,aAAa,GAAG,KAAK,EAAE,YAAY,GAAG,IAAI,EAAE,GAAG,OAAO;QAC9D,IAAI,UAAU,GAAG,IAAI;AACrB,QAAA,IAAI,YAAY;YACZ,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;AAC1D,QAAA,IAAI,CAAC,aAAa;AAAE,YAAA,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE;QACzD,OAAO,UAAU,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;IAClD;AAEA;;;;;;;;;;;;AAYG;AACI,IAAA,SAAS,CAAC,IAAY,EAAA;AACzB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE;QAC3B,IAAI,OAAO,KAAK,EAAE;AAAE,YAAA,OAAO,CAAC;QAC5B,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM;IACtC;AAEA;;;;;;;;;;;;AAYG;AACI,IAAA,SAAS,CAAC,IAAY,EAAA;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;IACvC;AAEA;;;;;;;;;;;;;;AAcG;AACI,IAAA,UAAU,CAAC,IAAY,EAAA;AAC1B,QAAA,MAAM,GAAG,GAA2B;AAChC,YAAA,GAAG,EAAE,OAAO;AACZ,YAAA,GAAG,EAAE,MAAM;AACX,YAAA,GAAG,EAAE,MAAM;AACX,YAAA,GAAG,EAAE,QAAQ;AACb,YAAA,GAAG,EAAE,OAAO;SACf;AACD,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;IACxD;AAEA;;;;;;;;;;;;;AAaG;AACI,IAAA,YAAY,CAAC,IAAY,EAAA;AAC5B,QAAA,MAAM,GAAG,GAA2B;AAChC,YAAA,OAAO,EAAE,GAAG;AACZ,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,QAAQ,EAAE,GAAG;AACb,YAAA,OAAO,EAAE,GAAG;AACZ,YAAA,QAAQ,EAAE,GAAG;SAChB;AACD,QAAA,OAAO,IAAI,CAAC,OAAO,CACf,sCAAsC,EACtC,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAC1B;IACL;AAEA;;;;;;;;;;AAUG;AACK,IAAA,UAAU,CAAC,IAAY,EAAA;AAC3B,QAAA,QACI;;AAEK,aAAA,OAAO,CAAC,oBAAoB,EAAE,OAAO;;AAErC,aAAA,OAAO,CAAC,uBAAuB,EAAE,OAAO;;AAExC,aAAA,OAAO,CAAC,QAAQ,EAAE,GAAG;AACrB,aAAA,IAAI;aACJ,KAAK,CAAC,KAAK;aACX,MAAM,CAAC,OAAO;AACd,aAAA,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;IAE9C;AAEA;;;;;;;;;;;AAWG;AACI,IAAA,WAAW,CAAC,IAAY,EAAA;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1C;AAEA;;;;;;;;;;;AAWG;AACI,IAAA,WAAW,CAAC,IAAY,EAAA;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1C;AAEA;;;;;;;;;;;AAWG;AACI,IAAA,YAAY,CAAC,IAAY,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI;aACtB,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aAC1D,IAAI,CAAC,EAAE,CAAC;IACjB;AAEA;;;;;;;;;;;;AAYG;AACI,IAAA,WAAW,CAAC,IAAY,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,OAAO,CACf,QAAQ,EACR,CAAC,IAAI,KACD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CACjE;IACL;AAEA;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,IAAA,IAAI,CACP,IAAY,EACZ,OAAA,GAII,EAAE,EAAA;AAEN,QAAA,MAAM,EAAE,YAAY,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,EAAE,QAAQ,GAAG,GAAG,EAAE,GAAG,OAAO;QACpE,IAAI,IAAI,CAAC,MAAM,IAAI,YAAY,GAAG,UAAU,EAAE;YAC1C,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACvC;QACA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC;AACzC,QAAA,MAAM,GAAG,GAAG,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;QACzD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,YAAY,GAAG,UAAU;QAC5D,OAAO,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,GAAG;IACtD;AAEA;;;;;;;;;;;;;;AAcG;IACI,mBAAmB,CAAC,CAAS,EAAE,CAAS,EAAA;AAC3C,QAAA,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;AACzB,QAAA,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;AACzB,QAAA,MAAM,MAAM,GAAe,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK;YAC9D,CAAC;YACD,GAAG,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjC,SAAA,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAE/C,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AAC3B,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;gBAC1C,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CACnB,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AACpB,gBAAA,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAC9B;YACL;QACJ;QACA,OAAO,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IACrC;AAEA;;;;;;;;;;;;;;;AAeG;IACI,UAAU,CAAC,CAAS,EAAE,CAAS,EAAA;AAClC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QAC9C,IAAI,SAAS,KAAK,CAAC;AAAE,YAAA,OAAO,CAAC;AAC7B,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS;IACzD;AAEA;;;;;;;;;;;;;;;;AAgBG;AACI,IAAA,QAAQ,CACX,IAAY,EACZ,KAAa,EACb,YAAoB,IAAI,EAAA;AAExB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC/C,MAAM,KAAK,GAAa,EAAE;QAC1B,IAAI,WAAW,GAAG,EAAE;AAEpB,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtB,YAAA,MAAM,SAAS,GAAG,WAAW,GAAG,CAAA,EAAG,WAAW,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,GAAG,IAAI;YAC/D,IAAI,SAAS,CAAC,MAAM,GAAG,KAAK,IAAI,WAAW,EAAE;AACzC,gBAAA,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;gBACvB,WAAW,GAAG,IAAI;YACtB;iBAAO;gBACH,WAAW,GAAG,SAAS;YAC3B;QACJ;AACA,QAAA,IAAI,WAAW;AAAE,YAAA,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;AACxC,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;IAChC;AAEA;;;;;;;;;;;;;AAaG;IACI,KAAK,CAAC,IAAY,EAAE,IAAY,EAAA;QACnC,IAAI,IAAI,IAAI,CAAC;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;QACnE,MAAM,MAAM,GAAa,EAAE;AAC3B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE;AACxC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACxC;AACA,QAAA,OAAO,MAAM;IACjB;AAEA;;;;;;;;;;;;;AAaG;AACI,IAAA,YAAY,CAAC,IAAY,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;IAChE;AAEA;;;;;;;;;;;;;AAaG;AACI,IAAA,aAAa,CAAC,IAAY,EAAA;QAC7B,MAAM,KAAK,GAAG,iDAAiD;QAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;IAClC;AAEA;;;;;;;;;;;;;AAaG;AACI,IAAA,WAAW,CAAC,IAAY,EAAA;QAC3B,MAAM,KAAK,GAAG,yBAAyB;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;IAClC;AAEA;;;;;;;;;;;;;;AAcG;AACI,IAAA,OAAO,CAAC,IAAY,EAAA;AACvB,QAAA,OAAO,kDAAkD,CAAC,IAAI,CAAC,IAAI,CAAC;IACxE;AAEA;;;;;;;;;;;;;AAaG;AACI,IAAA,KAAK,CAAC,IAAY,EAAA;AACrB,QAAA,IAAI;AACA,YAAA,IAAI,GAAG,CAAC,IAAI,CAAC;AACb,YAAA,OAAO,IAAI;QACf;AAAE,QAAA,MAAM;AACJ,YAAA,OAAO,KAAK;QAChB;IACJ;AAEA;;;;;;;;;;;;;AAaG;AACI,IAAA,YAAY,CAAC,IAAY,EAAA;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACtD;AAEA;;;;;;;;;;;;;;;;;;AAkBG;AACI,IAAA,OAAO,CAAC,IAAY,EAAE,KAAa,EAAE,GAAY,EAAA;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACtC,IAAI,UAAU,KAAK,EAAE;AAAE,YAAA,OAAO,IAAI;AAClC,QAAA,MAAM,IAAI,GAAG,UAAU,GAAG,KAAK,CAAC,MAAM;QACtC,IAAI,CAAC,GAAG,EAAE;AACN,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3B;QACA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC;QACxC,IAAI,QAAQ,KAAK,EAAE;AAAE,YAAA,OAAO,IAAI;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC;IACrC;AAEA;;;;;;;;;;;;;AAaG;AACI,IAAA,mBAAmB,CAAC,IAAY,EAAA;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE;IAC3C;AAEA;;;;;;;;;;;;;AAaG;AACI,IAAA,OAAO,CAAC,IAAY,EAAA;QACvB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;IACnC;AAEA;;;;;;;;;;;;;AAaG;IACI,IAAI,GAAA;QACP,IACI,OAAO,MAAM,KAAK,WAAW;AAC7B,YAAA,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,EACzC;AACE,YAAA,OAAO,MAAM,CAAC,UAAU,EAAE;QAC9B;AACA,QAAA,OAAOC,SAAE,CAAC,IAAI,EAAE;IACpB;AACH;;;;"}
@@ -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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"}