obfuscate-mail
Advanced tools
Comparing version 1.4.7 to 1.4.8
@@ -1,1 +0,1 @@ | ||
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.obfuscateEmail=f()}})((function(){var define,module,exports;return function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,(function(r){var n=e[i][1][r];return o(n||r)}),p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r}()({1:[function(require,module,exports){const{getOptions:getOptions,DEFAULT_OPTIONS:DEFAULT_OPTIONS}=require("./utils");const obfuscateEmail=(email,options=DEFAULT_OPTIONS)=>{const opts=getOptions(options);if(typeof email!=="string"||email.length===0||!email.includes("@")||email.split("@").length!==2){return opts.invalidEmailValue}const[name,domain]=email.split("@");const[domainName,domainExtension="***"]=domain.split(".");const visibleCharactersStartLength=opts.visibleCharactersStartLength>0&&name.length>1?Math.min(name.length-opts.minimumNameObfuscationLength>0?name.length-opts.minimumNameObfuscationLength:0,opts.visibleCharactersStartLength):0;const visibleCharactersEndLength=opts.visibleCharactersEndLength>0&&name.length>visibleCharactersStartLength+opts.minimumNameObfuscationLength?Math.min(name.length-visibleCharactersStartLength-opts.minimumNameObfuscationLength,opts.visibleCharactersEndLength):0;const visibleCharactersMiddleLength=opts.visibleCharactersMiddleLength>0&&name.length-visibleCharactersStartLength-visibleCharactersEndLength-opts.minimumNameObfuscationLength>0?Math.min(name.length-visibleCharactersStartLength-visibleCharactersEndLength-opts.minimumNameObfuscationLength,opts.visibleCharactersMiddleLength):0;const charactersLeftToObfuscate=Math.max(0,name.length-visibleCharactersStartLength-visibleCharactersEndLength);const middleCharacters=visibleCharactersMiddleLength>0?name.substring(visibleCharactersStartLength).substring(Math.round(charactersLeftToObfuscate/2-visibleCharactersMiddleLength/2)).substring(0,visibleCharactersMiddleLength):"";return`${name.substring(0,visibleCharactersStartLength)}${"*".repeat(Math.max(1,Math.floor(opts.asterisksLength/2)))}${middleCharacters}${"*".repeat(Math.max(1,Math.floor(opts.asterisksLength/2)))}${visibleCharactersEndLength>0?name.substring(name.length-visibleCharactersEndLength):""}@${opts.showDomainName?domainName:"*".repeat(Math.max(3,opts.asterisksLength-3))}.${opts.showDomainExtension?domainExtension:"***"}`};module.exports=obfuscateEmail;module.exports.DEFAULT_OPTIONS=DEFAULT_OPTIONS},{"./utils":2}],2:[function(require,module,exports){const DEFAULT_OPTIONS={asterisksLength:6,minimumNameObfuscationLength:4,visibleCharactersStartLength:3,visibleCharactersMiddleLength:2,visibleCharactersEndLength:2,showDomainName:false,showDomainExtension:true,invalidEmailValue:"*********@****.**"};function checkOptionValue(key,value){if(value===undefined){return DEFAULT_OPTIONS[key]}if(typeof DEFAULT_OPTIONS[key]!==typeof value){throw new Error(`Option ${key} must be of type ${typeof DEFAULT_OPTIONS[key]}`)}return value}module.exports.getOptions=options=>Object.keys(DEFAULT_OPTIONS).reduce(((acc,key)=>{acc[key]=checkOptionValue(key,options[key]);return acc}),{});module.exports.DEFAULT_OPTIONS=DEFAULT_OPTIONS},{}]},{},[1])(1)})); | ||
var __getOwnPropNames=Object.getOwnPropertyNames,__commonJS=(t,e)=>function(){return e||(0,t[__getOwnPropNames(t)[0]])((e={exports:{}}).exports,e),e.exports},require_utils=__commonJS({"utils.js"(t,e){var n={asterisksLength:6,minimumNameObfuscationLength:4,visibleCharactersStartLength:3,visibleCharactersMiddleLength:2,visibleCharactersEndLength:2,showDomainName:!1,showDomainExtension:!0,invalidEmailValue:"*********@****.**"};e.exports.getOptions=t=>Object.keys(n).reduce(((e,i)=>(e[i]=function(t,e){if(void 0===e)return n[t];if(typeof n[t]!=typeof e)throw new Error(`Option ${t} must be of type ${typeof n[t]}`);return e}(i,t[i]),e)),{}),e.exports.DEFAULT_OPTIONS=n}}),{getOptions:getOptions,DEFAULT_OPTIONS:DEFAULT_OPTIONS}=require_utils(),obfuscateEmail=(t,e=DEFAULT_OPTIONS)=>{const n=getOptions(e);if("string"!=typeof t||0===t.length||!t.includes("@")||2!==t.split("@").length)return n.invalidEmailValue;const[i,s]=t.split("@"),[a,r="***"]=s.split("."),o=n.visibleCharactersStartLength>0&&i.length>1?Math.min(i.length-n.minimumNameObfuscationLength>0?i.length-n.minimumNameObfuscationLength:0,n.visibleCharactersStartLength):0,h=n.visibleCharactersEndLength>0&&i.length>o+n.minimumNameObfuscationLength?Math.min(i.length-o-n.minimumNameObfuscationLength,n.visibleCharactersEndLength):0,m=n.visibleCharactersMiddleLength>0&&i.length-o-h-n.minimumNameObfuscationLength>0?Math.min(i.length-o-h-n.minimumNameObfuscationLength,n.visibleCharactersMiddleLength):0,g=Math.max(0,i.length-o-h),l=m>0?i.substring(o).substring(Math.round(g/2-m/2)).substring(0,m):"";return`${i.substring(0,o)}${"*".repeat(Math.max(1,Math.floor(n.asterisksLength/2)))}${l}${"*".repeat(Math.max(1,Math.floor(n.asterisksLength/2)))}${h>0?i.substring(i.length-h):""}@${n.showDomainName?a:"*".repeat(Math.max(3,n.asterisksLength-3))}.${n.showDomainExtension?r:"***"}`};module.exports=obfuscateEmail,module.exports.DEFAULT_OPTIONS=DEFAULT_OPTIONS; |
{ | ||
"name": "obfuscate-mail", | ||
"version": "1.4.7", | ||
"version": "1.4.8", | ||
"description": "Obfuscate email", | ||
@@ -30,8 +30,16 @@ "main": "obfuscateEmail.js", | ||
"build:wasm": "rm -f dist/wasm.js && mkdir -p dist && esbuild --bundle --platform=node wasm.js --outfile=dist/wasm.js", | ||
"bundle": "rm -f dist/bundle.js && mkdir -p dist && browserify --standalone obfuscateEmail --node --ignore-missing obfuscateEmail.js | terser > ./dist/bundle.js", | ||
"bundle": "rm -f dist/bundle.js && mkdir -p dist && esbuild --bundle --platform=node obfuscateEmail.js --outfile=dist/bundle.js && terser dist/bundle.js --compress --mangle --output dist/bundle.js", | ||
"types:emit": "tsc --allowJs --removeComments", | ||
"coverage": "nyc --reporter=lcov npm run test:source", | ||
"prepare": "husky install", | ||
"precommit": "npm run build && npm run test:bundle && git add dist/." | ||
"precommit": "lint-staged && npm run build && npm run test:bundle && git add dist/.", | ||
"prettier": "prettier --write \"./*.js\"", | ||
"lint": "eslint \"./*.js\" --fix" | ||
}, | ||
"lint-staged": { | ||
"*.js": [ | ||
"prettier --write", | ||
"eslint *.js --fix" | ||
] | ||
}, | ||
"repository": { | ||
@@ -56,12 +64,12 @@ "type": "git", | ||
"devDependencies": { | ||
"browserify": "^17.0.0", | ||
"chai": "^4.3.6", | ||
"esbuild": "^0.15.10", | ||
"eslint": "^8.0.1", | ||
"eslint": "^8.25.0", | ||
"eslint-config-prettier": "^8.5.0", | ||
"eslint-config-standard": "^17.0.0", | ||
"eslint-plugin-import": "^2.25.2", | ||
"eslint-plugin-n": "^15.0.0", | ||
"eslint-plugin-promise": "^6.0.0", | ||
"eslint-plugin-import": "^2.26.0", | ||
"eslint-plugin-n": "^15.3.0", | ||
"eslint-plugin-promise": "^6.0.1", | ||
"husky": "^8.0.1", | ||
"lint-staged": "^13.0.3", | ||
"mocha": "^10.0.0", | ||
@@ -68,0 +76,0 @@ "nyc": "^15.1.0", |
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
25
1518
0
1
1114438