@senhainfo/shared-utils 1.5.6 → 1.5.8
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/lib/format-text.d.ts +14 -1
- package/lib/format-text.d.ts.map +1 -1
- package/lib/format-text.js +46 -1
- package/lib/format-text.js.map +1 -1
- package/package.json +5 -2
package/lib/format-text.d.ts
CHANGED
|
@@ -6,6 +6,12 @@ type NormalizeOptions = {
|
|
|
6
6
|
* @default true
|
|
7
7
|
*/
|
|
8
8
|
removeDiacritics?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Removes emojis from the text.
|
|
11
|
+
* Set this to `false` to preserve emojis.
|
|
12
|
+
* @default true
|
|
13
|
+
*/
|
|
14
|
+
removeEmojis?: boolean;
|
|
9
15
|
/**
|
|
10
16
|
* Trims whitespace from the beginning and end of the text.
|
|
11
17
|
* Set this to `false` to disable trimming.
|
|
@@ -22,7 +28,7 @@ export declare class FormatText {
|
|
|
22
28
|
*
|
|
23
29
|
* @returns {string} The normalized string
|
|
24
30
|
*/
|
|
25
|
-
normalize(text?: string, { removeDiacritics, trim }?: NormalizeOptions): string;
|
|
31
|
+
normalize(text?: string, { removeDiacritics, removeEmojis, trim }?: NormalizeOptions): string;
|
|
26
32
|
/**
|
|
27
33
|
* Capitalize a string
|
|
28
34
|
*
|
|
@@ -45,6 +51,13 @@ export declare class FormatText {
|
|
|
45
51
|
* @returns {string} The string without letters
|
|
46
52
|
*/
|
|
47
53
|
removeLetters(text?: string): string;
|
|
54
|
+
/**
|
|
55
|
+
* Parse RTF string to plain text
|
|
56
|
+
*
|
|
57
|
+
* @param {string} [rtf] - The RTF to parse
|
|
58
|
+
* @returns {string} The string in plain text
|
|
59
|
+
*/
|
|
60
|
+
rtfToPlainText(rtf?: string): string;
|
|
48
61
|
}
|
|
49
62
|
export {};
|
|
50
63
|
//# sourceMappingURL=format-text.d.ts.map
|
package/lib/format-text.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-text.d.ts","sourceRoot":"","sources":["../src/format-text.ts"],"names":[],"mappings":"AAEA,KAAK,kBAAkB,GAAG,OAAO,GAAG,cAAc,CAAC;AAEnD,KAAK,gBAAgB,GAAG;IACtB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,qBAAa,UAAU;IACrB;;;;;;;OAOG;IACI,SAAS,
|
|
1
|
+
{"version":3,"file":"format-text.d.ts","sourceRoot":"","sources":["../src/format-text.ts"],"names":[],"mappings":"AAEA,KAAK,kBAAkB,GAAG,OAAO,GAAG,cAAc,CAAC;AAEnD,KAAK,gBAAgB,GAAG;IACtB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,qBAAa,UAAU;IACrB;;;;;;;OAOG;IACI,SAAS,CACd,IAAI,CAAC,EAAE,MAAM,EACb,EAAE,gBAAuB,EAAE,YAAmB,EAAE,IAAW,EAAE,GAAE,gBAAqB,GACnF,MAAM;IAsBT;;;;;;OAMG;IACI,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,kBAA4B,GAAG,MAAM;IA2G5E;;;;;OAKG;IACI,qBAAqB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAQnD;;;;;OAKG;IACI,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAQ3C;;;;;OAKG;IACI,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM;CA+C5C"}
|
package/lib/format-text.js
CHANGED
|
@@ -11,7 +11,7 @@ class FormatText {
|
|
|
11
11
|
*
|
|
12
12
|
* @returns {string} The normalized string
|
|
13
13
|
*/
|
|
14
|
-
normalize(text, { removeDiacritics = true, trim = true } = {}) {
|
|
14
|
+
normalize(text, { removeDiacritics = true, removeEmojis = true, trim = true } = {}) {
|
|
15
15
|
if (!text) {
|
|
16
16
|
return "";
|
|
17
17
|
}
|
|
@@ -19,6 +19,9 @@ class FormatText {
|
|
|
19
19
|
if (removeDiacritics) {
|
|
20
20
|
text = text.replace(/[\u0300-\u036f]/g, ""); // Diacritics
|
|
21
21
|
}
|
|
22
|
+
if (removeEmojis) {
|
|
23
|
+
text = text.replace(/[\p{Emoji}\p{Extended_Pictographic}]/gu, ""); // Emojis
|
|
24
|
+
}
|
|
22
25
|
if (trim) {
|
|
23
26
|
text = text.trim(); // Trim
|
|
24
27
|
}
|
|
@@ -137,6 +140,48 @@ class FormatText {
|
|
|
137
140
|
}
|
|
138
141
|
return text.replace(/[a-zA-Z]/g, "");
|
|
139
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* Parse RTF string to plain text
|
|
145
|
+
*
|
|
146
|
+
* @param {string} [rtf] - The RTF to parse
|
|
147
|
+
* @returns {string} The string in plain text
|
|
148
|
+
*/
|
|
149
|
+
rtfToPlainText(rtf) {
|
|
150
|
+
if (!rtf) {
|
|
151
|
+
return "";
|
|
152
|
+
}
|
|
153
|
+
let text = rtf;
|
|
154
|
+
// Remove blocos RTF com chaves aninhadas (como fonttbl)
|
|
155
|
+
// Essa regex captura blocos que podem ter múltiplos níveis de chaves
|
|
156
|
+
while (text.match(/\{\\fonttbl[^{}]*(\{[^{}]*\}[^{}]*)*\}/g)) {
|
|
157
|
+
text = text.replace(/\{\\fonttbl[^{}]*(\{[^{}]*\}[^{}]*)*\}/g, "");
|
|
158
|
+
}
|
|
159
|
+
// Remove outros blocos de cabeçalho
|
|
160
|
+
text = text.replace(/\{\\colortbl[^}]*\}/g, "");
|
|
161
|
+
text = text.replace(/\{\\stylesheet[^}]*\}/g, "");
|
|
162
|
+
text = text.replace(/\{\\info[^}]*\}/g, "");
|
|
163
|
+
text = text.replace(/\{\\(\*)?\\[a-z]+[^}]*\}/g, "");
|
|
164
|
+
// Decodifica caracteres especiais
|
|
165
|
+
text = text.replace(/\\'([0-9a-fA-F]{2})/g, (match, hex) => {
|
|
166
|
+
return String.fromCharCode(parseInt(hex, 16));
|
|
167
|
+
});
|
|
168
|
+
// Remove comandos RTF
|
|
169
|
+
text = text.replace(/\\[a-z]{1,32}(-?\d{1,10})?[ ]?/gi, " ");
|
|
170
|
+
// Remove chaves, barras e ponto e vírgula soltos
|
|
171
|
+
text = text.replace(/[\{\}\\]/g, "");
|
|
172
|
+
text = text.replace(/^[;\s]+/gm, ""); // Remove ; no início de linhas
|
|
173
|
+
// Limpa quebras e espaços
|
|
174
|
+
text = text.replace(/[\r\n]+/g, " ");
|
|
175
|
+
text = text.replace(/\s+/g, " ");
|
|
176
|
+
text = text.trim();
|
|
177
|
+
// Remove possíveis resíduos de nomes de fontes comuns
|
|
178
|
+
text = text.replace(/^(Arial|Times New Roman|Courier New|MS Sans Serif|Calibri)[;\s]*/i, "");
|
|
179
|
+
// Remove espaço + ponto solto no final
|
|
180
|
+
text = text.replace(/\s*\.\s*$/g, ".");
|
|
181
|
+
// Remove pontos duplicados e pontos soltos no final
|
|
182
|
+
text = text.replace(/\.+$/g, ".");
|
|
183
|
+
return text;
|
|
184
|
+
}
|
|
140
185
|
}
|
|
141
186
|
exports.FormatText = FormatText;
|
|
142
187
|
//# sourceMappingURL=format-text.js.map
|
package/lib/format-text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-text.js","sourceRoot":"","sources":["../src/format-text.ts"],"names":[],"mappings":";;;AAAA,6CAA0D;
|
|
1
|
+
{"version":3,"file":"format-text.js","sourceRoot":"","sources":["../src/format-text.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@senhainfo/shared-utils",
|
|
3
|
-
"version": "1.5.
|
|
4
|
-
"repository":
|
|
3
|
+
"version": "1.5.8",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "git+https://github.com/senha-info/senha-shared-utils.git"
|
|
7
|
+
},
|
|
5
8
|
"author": "Bruno Gaspar <bruninhoogaspar@gmail.com>",
|
|
6
9
|
"license": "MIT",
|
|
7
10
|
"main": "./lib/index.js",
|