@senhainfo/shared-utils 1.5.21 → 1.5.22
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 +1 -1
- package/lib/format-text.d.ts.map +1 -1
- package/lib/format-text.js +38 -45
- package/lib/format-text.js.map +1 -1
- package/package.json +1 -1
package/lib/format-text.d.ts
CHANGED
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,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,qBAAa,UAAU;IACrB;;;;;;;OAOG;IACI,SAAS,CACd,IAAI,CAAC,EAAE,MAAM,EACb,EAAE,gBAAuB,EAAE,YAAmB,EAAE,IAAW,EAAE,SAAS,EAAE,GAAE,gBAAqB,GAC9F,MAAM;IA0BT;;;;;;OAMG;IACI,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,kBAA4B,GAAG,MAAM;
|
|
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;IAEf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,qBAAa,UAAU;IACrB;;;;;;;OAOG;IACI,SAAS,CACd,IAAI,CAAC,EAAE,MAAM,EACb,EAAE,gBAAuB,EAAE,YAAmB,EAAE,IAAW,EAAE,SAAS,EAAE,GAAE,gBAAqB,GAC9F,MAAM;IA0BT;;;;;;OAMG;IACI,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,kBAA4B,GAAG,MAAM;IAkG5E;;;;;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;CAkD5C"}
|
package/lib/format-text.js
CHANGED
|
@@ -13,14 +13,14 @@ class FormatText {
|
|
|
13
13
|
*/
|
|
14
14
|
normalize(text, { removeDiacritics = true, removeEmojis = true, trim = true, maxLength } = {}) {
|
|
15
15
|
if (!text) {
|
|
16
|
-
return
|
|
16
|
+
return '';
|
|
17
17
|
}
|
|
18
|
-
text = text.normalize(
|
|
18
|
+
text = text.normalize('NFD').replace(/[\u00A0\u202F\u200B-\u200F\u2028\u2029\u2066-\u2069]/g, ''); // Invisibles
|
|
19
19
|
if (removeDiacritics) {
|
|
20
|
-
text = text.replace(/[\u0300-\u036f]/g,
|
|
20
|
+
text = text.replace(/[\u0300-\u036f]/g, ''); // Diacritics
|
|
21
21
|
}
|
|
22
22
|
if (removeEmojis) {
|
|
23
|
-
text = text.replace(/[\p{Emoji}\p{Extended_Pictographic}]/gu,
|
|
23
|
+
text = text.replace(/[\p{Emoji}\p{Extended_Pictographic}]/gu, ''); // Emojis
|
|
24
24
|
}
|
|
25
25
|
if (trim) {
|
|
26
26
|
text = text.trim(); // Trim
|
|
@@ -37,30 +37,23 @@ class FormatText {
|
|
|
37
37
|
* @param {CapitalizeModeType} [mode] - The mode to capitalize the string
|
|
38
38
|
* @returns {string} The capitalized string
|
|
39
39
|
*/
|
|
40
|
-
capitalize(text, mode =
|
|
40
|
+
capitalize(text, mode = 'words') {
|
|
41
41
|
if (!text) {
|
|
42
|
-
return
|
|
42
|
+
return '';
|
|
43
43
|
}
|
|
44
|
-
if (mode ===
|
|
44
|
+
if (mode === 'first-letter') {
|
|
45
45
|
return text.charAt(0).toUpperCase() + text.slice(1).toLowerCase();
|
|
46
46
|
}
|
|
47
|
-
const words = text.split(
|
|
47
|
+
const words = text.split(' ');
|
|
48
48
|
const capitalizedWords = words.map((word, index) => {
|
|
49
|
-
// Should capitalize when first word
|
|
50
|
-
if (word.match(/^(?:de|da|das|do|dos|del|by|à|e|o|ou|y)$/i)) {
|
|
51
|
-
if (index
|
|
52
|
-
return word.toUpperCase();
|
|
53
|
-
}
|
|
54
|
-
return word.toLowerCase();
|
|
55
|
-
}
|
|
56
|
-
// Shouldn't capitalize when first word
|
|
57
|
-
if (word.match(/^(?:em|por|para)$/i)) {
|
|
58
|
-
if (!(index === 0)) {
|
|
49
|
+
// Should capitalize when first word, but not when in the middle
|
|
50
|
+
if (word.match(/^(?:em|por|para|de|da|das|do|dos|del|by|à|e|o|ou|y)$/i)) {
|
|
51
|
+
if (index !== 0) {
|
|
59
52
|
return word.toLowerCase();
|
|
60
53
|
}
|
|
61
54
|
}
|
|
62
55
|
// Exclusive for Senha Informática
|
|
63
|
-
if (word.match(/^(?:pj|ga7|lg|mt|gp|gbl|wl|hkd|nm|amd|crm|gg|rca|tti|mg|sc|gl)$/i)) {
|
|
56
|
+
if (word.match(/^(?:pj|ga7|lg|mt|gp|gbl|wl|hkd|nm|amd|crm|gg|rca|tti|mg|sc|gl|jbf)$/i)) {
|
|
64
57
|
return word.toUpperCase();
|
|
65
58
|
}
|
|
66
59
|
// Matches special cases
|
|
@@ -77,10 +70,10 @@ class FormatText {
|
|
|
77
70
|
}
|
|
78
71
|
// Matches patterns like "`A"
|
|
79
72
|
if (word.match(/`[A-Z]/)) {
|
|
80
|
-
const [first, second] = word.split(
|
|
73
|
+
const [first, second] = word.split('`');
|
|
81
74
|
return (first.charAt(0).toUpperCase() +
|
|
82
75
|
first.slice(1).toLowerCase() +
|
|
83
|
-
|
|
76
|
+
'`' +
|
|
84
77
|
second.charAt(0).toUpperCase() +
|
|
85
78
|
second.slice(1).toLowerCase());
|
|
86
79
|
}
|
|
@@ -95,19 +88,19 @@ class FormatText {
|
|
|
95
88
|
}
|
|
96
89
|
// Matches patterns like "/A" (word after slash, e.g. "A/B")
|
|
97
90
|
if (word.match(/\/[A-Z]/)) {
|
|
98
|
-
const [first, second] = word.split(
|
|
91
|
+
const [first, second] = word.split('/');
|
|
99
92
|
return (first.charAt(0).toUpperCase() +
|
|
100
93
|
first.slice(1).toLowerCase() +
|
|
101
|
-
|
|
94
|
+
'/' +
|
|
102
95
|
second.charAt(0).toUpperCase() +
|
|
103
96
|
second.slice(1).toLowerCase());
|
|
104
97
|
}
|
|
105
98
|
// Matches patterns like "A-B"
|
|
106
99
|
if (word.match(/[A-Z]-[A-Z]/)) {
|
|
107
|
-
const [first, second] = word.split(
|
|
100
|
+
const [first, second] = word.split('-');
|
|
108
101
|
return (first.charAt(0).toUpperCase() +
|
|
109
102
|
first.slice(1).toLowerCase() +
|
|
110
|
-
|
|
103
|
+
'-' +
|
|
111
104
|
second.charAt(0).toUpperCase() +
|
|
112
105
|
second.slice(1).toLowerCase());
|
|
113
106
|
}
|
|
@@ -117,7 +110,7 @@ class FormatText {
|
|
|
117
110
|
}
|
|
118
111
|
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
|
|
119
112
|
});
|
|
120
|
-
return capitalizedWords.join(
|
|
113
|
+
return capitalizedWords.join(' ').replace('`', "'");
|
|
121
114
|
}
|
|
122
115
|
/**
|
|
123
116
|
* Remove non-alphanumeric characters from a string
|
|
@@ -127,9 +120,9 @@ class FormatText {
|
|
|
127
120
|
*/
|
|
128
121
|
removeNonAlphanumeric(text) {
|
|
129
122
|
if (!text) {
|
|
130
|
-
return
|
|
123
|
+
return '';
|
|
131
124
|
}
|
|
132
|
-
return text.replace(/[^a-zA-Z0-9]/g,
|
|
125
|
+
return text.replace(/[^a-zA-Z0-9]/g, '');
|
|
133
126
|
}
|
|
134
127
|
/**
|
|
135
128
|
* Remove letters from a string
|
|
@@ -139,9 +132,9 @@ class FormatText {
|
|
|
139
132
|
*/
|
|
140
133
|
removeLetters(text) {
|
|
141
134
|
if (!text) {
|
|
142
|
-
return
|
|
135
|
+
return '';
|
|
143
136
|
}
|
|
144
|
-
return text.replace(/[a-zA-Z]/g,
|
|
137
|
+
return text.replace(/[a-zA-Z]/g, '');
|
|
145
138
|
}
|
|
146
139
|
/**
|
|
147
140
|
* Parse RTF string to plain text
|
|
@@ -151,39 +144,39 @@ class FormatText {
|
|
|
151
144
|
*/
|
|
152
145
|
rtfToPlainText(rtf) {
|
|
153
146
|
if (!rtf) {
|
|
154
|
-
return
|
|
147
|
+
return '';
|
|
155
148
|
}
|
|
156
149
|
let text = rtf;
|
|
157
150
|
// Remove blocos RTF com chaves aninhadas (como fonttbl)
|
|
158
151
|
while (text.match(/\{\\fonttbl[^{}]*(\{[^{}]*\}[^{}]*)*\}/g)) {
|
|
159
|
-
text = text.replace(/\{\\fonttbl[^{}]*(\{[^{}]*\}[^{}]*)*\}/g,
|
|
152
|
+
text = text.replace(/\{\\fonttbl[^{}]*(\{[^{}]*\}[^{}]*)*\}/g, '');
|
|
160
153
|
}
|
|
161
154
|
// Remove outros blocos de cabeçalho
|
|
162
|
-
text = text.replace(/\{\\colortbl[^}]*\}/g,
|
|
163
|
-
text = text.replace(/\{\\stylesheet[^}]*\}/g,
|
|
164
|
-
text = text.replace(/\{\\info[^}]*\}/g,
|
|
165
|
-
text = text.replace(/\{\\(\*)?\\[a-z]+[^}]*\}/g,
|
|
155
|
+
text = text.replace(/\{\\colortbl[^}]*\}/g, '');
|
|
156
|
+
text = text.replace(/\{\\stylesheet[^}]*\}/g, '');
|
|
157
|
+
text = text.replace(/\{\\info[^}]*\}/g, '');
|
|
158
|
+
text = text.replace(/\{\\(\*)?\\[a-z]+[^}]*\}/g, '');
|
|
166
159
|
// Decodifica caracteres especiais
|
|
167
160
|
text = text.replace(/\\'([0-9a-fA-F]{2})/g, (match, hex) => {
|
|
168
161
|
return String.fromCharCode(parseInt(hex, 16));
|
|
169
162
|
});
|
|
170
163
|
// Converte \par em quebra de linha ANTES de remover outros comandos
|
|
171
|
-
text = text.replace(/\\par\b/g,
|
|
164
|
+
text = text.replace(/\\par\b/g, '\n');
|
|
172
165
|
// Remove comandos RTF
|
|
173
|
-
text = text.replace(/\\[a-z]{1,32}(-?\d{1,10})?[ ]?/gi,
|
|
166
|
+
text = text.replace(/\\[a-z]{1,32}(-?\d{1,10})?[ ]?/gi, ' ');
|
|
174
167
|
// Remove chaves, barras e ponto e vírgula soltos
|
|
175
|
-
text = text.replace(/[\{\}\\]/g,
|
|
176
|
-
text = text.replace(/^[;\s]+/gm,
|
|
168
|
+
text = text.replace(/[\{\}\\]/g, '');
|
|
169
|
+
text = text.replace(/^[;\s]+/gm, ''); // Remove ; no início de linhas
|
|
177
170
|
// Limpa quebras e espaços DUPLICADOS (mas mantém quebras únicas)
|
|
178
|
-
text = text.replace(/[\r\n]{2,}/g,
|
|
179
|
-
text = text.replace(/ +/g,
|
|
171
|
+
text = text.replace(/[\r\n]{2,}/g, '\n'); // Múltiplas quebras viram uma
|
|
172
|
+
text = text.replace(/ +/g, ' '); // Múltiplos espaços viram um
|
|
180
173
|
text = text.trim();
|
|
181
174
|
// Remove possíveis resíduos de nomes de fontes comuns
|
|
182
|
-
text = text.replace(/^(Arial|Times New Roman|Courier New|MS Sans Serif|Calibri)[;\s]*/i,
|
|
175
|
+
text = text.replace(/^(Arial|Times New Roman|Courier New|MS Sans Serif|Calibri)[;\s]*/i, '');
|
|
183
176
|
// Remove espaço + ponto solto no final
|
|
184
|
-
text = text.replace(/\s*\.\s*$/g,
|
|
177
|
+
text = text.replace(/\s*\.\s*$/g, '.');
|
|
185
178
|
// Remove pontos duplicados e pontos soltos no final
|
|
186
|
-
text = text.replace(/\.+$/g,
|
|
179
|
+
text = text.replace(/\.+$/g, '.');
|
|
187
180
|
return text;
|
|
188
181
|
}
|
|
189
182
|
}
|
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;AAgC1D,MAAa,UAAU;IACrB;;;;;;;OAOG;IACI,SAAS,CACd,IAAa,EACb,EAAE,gBAAgB,GAAG,IAAI,EAAE,YAAY,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,KAAuB,EAAE;QAE/F,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,uDAAuD,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa;QAEhH,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa;QAC5D,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,wCAAwC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;QAC9E,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO;QAC7B,CAAC;QAED,IAAI,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YACvD,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,IAAA,oBAAiB,EAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACI,UAAU,CAAC,IAAa,EAAE,OAA2B,OAAO;QACjE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACpE,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE9B,MAAM,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACjD,
|
|
1
|
+
{"version":3,"file":"format-text.js","sourceRoot":"","sources":["../src/format-text.ts"],"names":[],"mappings":"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"}
|