@arkyn/shared 1.3.134 → 1.3.138
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/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -5
- package/dist/services/maskSensitiveData.d.ts +3 -0
- package/dist/services/maskSensitiveData.d.ts.map +1 -0
- package/dist/services/maskSensitiveData.js +38 -0
- package/dist/services/truncateLargeFields.d.ts +3 -0
- package/dist/services/truncateLargeFields.d.ts.map +1 -0
- package/dist/services/truncateLargeFields.js +29 -0
- package/package.json +1 -1
- package/src/index.ts +7 -5
- package/src/services/maskSensitiveData.ts +40 -0
- package/src/services/truncateLargeFields.ts +32 -0
package/dist/index.d.ts
CHANGED
|
@@ -12,7 +12,9 @@ export { generateId } from "./generators/generateId";
|
|
|
12
12
|
export { generateSlug } from "./generators/generateSlug";
|
|
13
13
|
export { parseToCharacters } from "./parsers/parseToCharacters";
|
|
14
14
|
export { calculateCardInstallment } from "./services/calculateCardInstallment";
|
|
15
|
+
export { maskSensitiveData } from "./services/maskSensitiveData";
|
|
15
16
|
export { normalizeRange, within } from "./services/range";
|
|
17
|
+
export { truncateLargeFields } from "./services/truncateLargeFields";
|
|
16
18
|
export { regex } from "./validations/regex";
|
|
17
19
|
export { validateCPF } from "./validations/validateCPF";
|
|
18
20
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAGrE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//
|
|
1
|
+
// formats
|
|
2
2
|
export { formatBrazilianDateToDate } from "./formats/formatBrazilianDateToDate";
|
|
3
3
|
export { formatDateHour } from "./formats/formatDateHour";
|
|
4
4
|
export { formatToBRL } from "./formats/formatToBRL";
|
|
@@ -8,15 +8,17 @@ export { formatToCPF } from "./formats/formatToCPF";
|
|
|
8
8
|
export { formatToCpfCnpj } from "./formats/formatToCpfCnpj";
|
|
9
9
|
export { formatToHiddenDigits } from "./formats/formatToHiddenDigits";
|
|
10
10
|
export { formatToPhone } from "./formats/formatToPhone";
|
|
11
|
-
//
|
|
11
|
+
// generators
|
|
12
12
|
export { generateColorByString } from "./generators/generateColorByString";
|
|
13
13
|
export { generateId } from "./generators/generateId";
|
|
14
14
|
export { generateSlug } from "./generators/generateSlug";
|
|
15
|
-
//
|
|
15
|
+
// parsers
|
|
16
16
|
export { parseToCharacters } from "./parsers/parseToCharacters";
|
|
17
|
-
//
|
|
17
|
+
// services
|
|
18
18
|
export { calculateCardInstallment } from "./services/calculateCardInstallment";
|
|
19
|
+
export { maskSensitiveData } from "./services/maskSensitiveData";
|
|
19
20
|
export { normalizeRange, within } from "./services/range";
|
|
20
|
-
|
|
21
|
+
export { truncateLargeFields } from "./services/truncateLargeFields";
|
|
22
|
+
// validations
|
|
21
23
|
export { regex } from "./validations/regex";
|
|
22
24
|
export { validateCPF } from "./validations/validateCPF";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maskSensitiveData.d.ts","sourceRoot":"","sources":["../../src/services/maskSensitiveData.ts"],"names":[],"mappings":"AAAA,iBAAS,iBAAiB,CACxB,UAAU,EAAE,MAAM,EAClB,aAAa,WAAgD,GAC5D,MAAM,CAkCR;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
function maskSensitiveData(jsonString, sensitiveKeys = ["password", "confirmPassword", "creditCard"]) {
|
|
2
|
+
function maskValue(key, value) {
|
|
3
|
+
if (sensitiveKeys.includes(key))
|
|
4
|
+
return "****";
|
|
5
|
+
return value;
|
|
6
|
+
}
|
|
7
|
+
function recursiveMask(obj) {
|
|
8
|
+
if (Array.isArray(obj)) {
|
|
9
|
+
return obj.map((item) => recursiveMask(item));
|
|
10
|
+
}
|
|
11
|
+
else if (obj !== null && typeof obj === "object") {
|
|
12
|
+
return Object.keys(obj).reduce((acc, key) => {
|
|
13
|
+
let value = obj[key];
|
|
14
|
+
if (typeof value === "string") {
|
|
15
|
+
try {
|
|
16
|
+
const parsedValue = JSON.parse(value);
|
|
17
|
+
if (typeof parsedValue === "object") {
|
|
18
|
+
value = JSON.stringify(recursiveMask(parsedValue));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
catch (e) { }
|
|
22
|
+
}
|
|
23
|
+
acc[key] = recursiveMask(maskValue(key, value));
|
|
24
|
+
return acc;
|
|
25
|
+
}, {});
|
|
26
|
+
}
|
|
27
|
+
return obj;
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
const jsonObject = JSON.parse(jsonString);
|
|
31
|
+
const maskedObject = recursiveMask(jsonObject);
|
|
32
|
+
return JSON.stringify(maskedObject);
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
return jsonString;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export { maskSensitiveData };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"truncateLargeFields.d.ts","sourceRoot":"","sources":["../../src/services/truncateLargeFields.ts"],"names":[],"mappings":"AAAA,iBAAS,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,MAAM,CA6BzE;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
function truncateLargeFields(jsonString, maxLength = 1000) {
|
|
2
|
+
function truncateValue(key, value) {
|
|
3
|
+
if (typeof value === "string" && value.length > maxLength) {
|
|
4
|
+
return `To large information: field as ${value.length} characters`;
|
|
5
|
+
}
|
|
6
|
+
return value;
|
|
7
|
+
}
|
|
8
|
+
function recursiveTruncate(obj) {
|
|
9
|
+
if (Array.isArray(obj)) {
|
|
10
|
+
return obj.map(recursiveTruncate);
|
|
11
|
+
}
|
|
12
|
+
else if (obj !== null && typeof obj === "object") {
|
|
13
|
+
return Object.fromEntries(Object.entries(obj).map(([key, value]) => [
|
|
14
|
+
key,
|
|
15
|
+
truncateValue(key, recursiveTruncate(value)),
|
|
16
|
+
]));
|
|
17
|
+
}
|
|
18
|
+
return obj;
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
const parsedJson = JSON.parse(jsonString);
|
|
22
|
+
const truncatedJson = recursiveTruncate(parsedJson);
|
|
23
|
+
return JSON.stringify(truncatedJson);
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
throw new Error("Invalid JSON string");
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export { truncateLargeFields };
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//
|
|
1
|
+
// formats
|
|
2
2
|
export { formatBrazilianDateToDate } from "./formats/formatBrazilianDateToDate";
|
|
3
3
|
export { formatDateHour } from "./formats/formatDateHour";
|
|
4
4
|
export { formatToBRL } from "./formats/formatToBRL";
|
|
@@ -9,18 +9,20 @@ export { formatToCpfCnpj } from "./formats/formatToCpfCnpj";
|
|
|
9
9
|
export { formatToHiddenDigits } from "./formats/formatToHiddenDigits";
|
|
10
10
|
export { formatToPhone } from "./formats/formatToPhone";
|
|
11
11
|
|
|
12
|
-
//
|
|
12
|
+
// generators
|
|
13
13
|
export { generateColorByString } from "./generators/generateColorByString";
|
|
14
14
|
export { generateId } from "./generators/generateId";
|
|
15
15
|
export { generateSlug } from "./generators/generateSlug";
|
|
16
16
|
|
|
17
|
-
//
|
|
17
|
+
// parsers
|
|
18
18
|
export { parseToCharacters } from "./parsers/parseToCharacters";
|
|
19
19
|
|
|
20
|
-
//
|
|
20
|
+
// services
|
|
21
21
|
export { calculateCardInstallment } from "./services/calculateCardInstallment";
|
|
22
|
+
export { maskSensitiveData } from "./services/maskSensitiveData";
|
|
22
23
|
export { normalizeRange, within } from "./services/range";
|
|
24
|
+
export { truncateLargeFields } from "./services/truncateLargeFields";
|
|
23
25
|
|
|
24
|
-
//
|
|
26
|
+
// validations
|
|
25
27
|
export { regex } from "./validations/regex";
|
|
26
28
|
export { validateCPF } from "./validations/validateCPF";
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
function maskSensitiveData(
|
|
2
|
+
jsonString: string,
|
|
3
|
+
sensitiveKeys = ["password", "confirmPassword", "creditCard"]
|
|
4
|
+
): string {
|
|
5
|
+
function maskValue(key: string, value: any): any {
|
|
6
|
+
if (sensitiveKeys.includes(key)) return "****";
|
|
7
|
+
return value;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
function recursiveMask(obj: any): any {
|
|
11
|
+
if (Array.isArray(obj)) {
|
|
12
|
+
return obj.map((item) => recursiveMask(item));
|
|
13
|
+
} else if (obj !== null && typeof obj === "object") {
|
|
14
|
+
return Object.keys(obj).reduce((acc, key) => {
|
|
15
|
+
let value = obj[key];
|
|
16
|
+
if (typeof value === "string") {
|
|
17
|
+
try {
|
|
18
|
+
const parsedValue = JSON.parse(value);
|
|
19
|
+
if (typeof parsedValue === "object") {
|
|
20
|
+
value = JSON.stringify(recursiveMask(parsedValue));
|
|
21
|
+
}
|
|
22
|
+
} catch (e) {}
|
|
23
|
+
}
|
|
24
|
+
acc[key] = recursiveMask(maskValue(key, value));
|
|
25
|
+
return acc;
|
|
26
|
+
}, {} as any);
|
|
27
|
+
}
|
|
28
|
+
return obj;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
try {
|
|
32
|
+
const jsonObject = JSON.parse(jsonString);
|
|
33
|
+
const maskedObject = recursiveMask(jsonObject);
|
|
34
|
+
return JSON.stringify(maskedObject);
|
|
35
|
+
} catch (error) {
|
|
36
|
+
return jsonString;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export { maskSensitiveData };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
function truncateLargeFields(jsonString: string, maxLength = 1000): string {
|
|
2
|
+
function truncateValue(key: string, value: any): any {
|
|
3
|
+
if (typeof value === "string" && value.length > maxLength) {
|
|
4
|
+
return `To large information: field as ${value.length} characters`;
|
|
5
|
+
}
|
|
6
|
+
return value;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
function recursiveTruncate(obj: any): any {
|
|
10
|
+
if (Array.isArray(obj)) {
|
|
11
|
+
return obj.map(recursiveTruncate);
|
|
12
|
+
} else if (obj !== null && typeof obj === "object") {
|
|
13
|
+
return Object.fromEntries(
|
|
14
|
+
Object.entries(obj).map(([key, value]) => [
|
|
15
|
+
key,
|
|
16
|
+
truncateValue(key, recursiveTruncate(value)),
|
|
17
|
+
])
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
return obj;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
try {
|
|
24
|
+
const parsedJson = JSON.parse(jsonString);
|
|
25
|
+
const truncatedJson = recursiveTruncate(parsedJson);
|
|
26
|
+
return JSON.stringify(truncatedJson);
|
|
27
|
+
} catch (error) {
|
|
28
|
+
throw new Error("Invalid JSON string");
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export { truncateLargeFields };
|