properties with special names like password, email etc. will be filtered even if they don't contain personal data (list of personal data properties)
Arrays
each item will be checked
Strings
Emails
GUIDs
IP v4
IP v6
Usage:
constpdf=require("node-personal-data-filter");constf=pdf.newFilter({personalDataMask: "*****"});constdata={filterMe: "[email protected]",// will be filtereddontFilterMe: "some-data",nextLevel: {filterMe: "1fec999a-7e81-4bce-8b32-1b6ddd144f1b",// will be filtereddontFilterMe: "some-data",email: "not-personal"// will be filtered},email: "[email protected]"// will be filtered};constfiltered=f.filter(data);console.log(filtered);
Configuration:
Mask:
constpdf=require("node-personal-data-filter");constcfg={personalDataMask: "*****"// The string which will be used to replace the personal data.};constf=pdf.newFilter(cfg);
Personal data properties:
constpdf=require("node-personal-data-filter");constcfg={personalDataProperties: ["pd1","pd2"]// The personal data properties which will be filtered in JS object.};constf=pdf.newFilter(cfg);
constpdf=require("node-personal-data-filter");constcfg={additionalPersonalDataProperties: ["pd1","pd2"]// The personal data properties which will be added to the default ones for filtering JS object.};constf=pdf.newFilter(cfg);
Regular expressions:
constpdf=require("node-personal-data-filter");constcfg={regularExpression: "[a-z]"// The regular expression which will be used for filtering strings.};constf=pdf.newFilter(cfg);
constpdf=require("node-personal-data-filter");constcfg={additionalRegularExpressions: ["[a-b]","[c-d]"]// The regular expressions which will added to the default ones for filtering strings.};constf=pdf.newFilter(cfg);
Match replacers:
constpdf=require("node-personal-data-filter");constcfg={useDefaultMatchReplacer: true// Use the default match replacer - sha256 sum.};constf=pdf.newFilter(cfg);
constpdf=require("node-personal-data-filter");constcfg={matchReplacer: match=>`not a secret - ${match}`// Set custom match replacer.};constf=pdf.newFilter(cfg);