UNPKG

password-meter

Version:

This password meter library is inspired by pointing system in http://www.passwordmeter.com/, in which the main purpose is to help the end users to have more stronger passwords.

118 lines (100 loc) 51.9 kB
<!DOCTYPE html><html class="default"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>password-meter</title><meta name="description" content="Documentation for password-meter"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script async src="assets/search.js" id="search-script"></script></head><body><script>document.body.classList.add(localStorage.getItem("tsd-theme") || "os")</script><header><div class="tsd-page-toolbar"><div class="container"><div class="table-wrap"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget search no-caption">Search</label><input type="text" id="tsd-search-field"/></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">password-meter</a></div><div class="table-cell" id="tsd-widgets"><div id="tsd-filter"><a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a><div class="tsd-filter-group"><div class="tsd-select" id="tsd-filter-visibility"><span class="tsd-select-label">All</span><ul class="tsd-select-list"><li data-value="public">Public</li><li data-value="protected">Public/Protected</li><li data-value="private" class="selected">All</li></ul></div> <input type="checkbox" id="tsd-filter-inherited" checked/><label class="tsd-widget" for="tsd-filter-inherited">Inherited</label><input type="checkbox" id="tsd-filter-externals" checked/><label class="tsd-widget" for="tsd-filter-externals">Externals</label></div></div><a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a></div></div></div></div><div class="tsd-page-title"><div class="container"><h1>password-meter </h1></div></div></header><div class="container container-main"><div class="row"><div class="col-8 col-content"><div class="tsd-panel tsd-typography"><p><img src="https://user-images.githubusercontent.com/8418700/140722813-db8b8cdb-9f97-4710-aff4-14450264bf82.png" alt="password"></p> <a href="#passwordmeter" id="passwordmeter" style="color: inherit; text-decoration: none;"> <h1>PasswordMeter</h1> </a> <p>This password meter library is inspired by pointing system in <a href="http://www.passwordmeter.com/">here</a>, in which the main purpose is to help the end users to have more stronger passwords.</p> <p><a href="https://opensource.org/licenses/MIT"><img src="https://badges.frapsoft.com/os/mit/mit.svg?v=102" alt="Open Source Love"></a> <a href="https://badge.fury.io/js/password-meter"><img src="https://badge.fury.io/js/password-meter.svg" alt="npm version"></a> <a href="https://www.npmjs.com/package/password-meter"><img src="https://img.shields.io/npm/dm/password-meter.svg" alt="Downloads"></a></p> <pre><code><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-0">i</span><span class="hl-1"> </span><span class="hl-0">password</span><span class="hl-1">-</span><span class="hl-0">meter</span><br/><br/><span class="hl-0">yarn</span><span class="hl-1"> </span><span class="hl-0">add</span><span class="hl-1"> </span><span class="hl-0">password</span><span class="hl-1">-</span><span class="hl-0">meter</span> </code></pre> <pre><code class="language-javascript"><br/><span class="hl-2">// default</span><br/><span class="hl-0">console</span><span class="hl-1">.</span><span class="hl-3">log</span><span class="hl-1">(</span><span class="hl-4">JSON</span><span class="hl-1">.</span><span class="hl-3">stringify</span><span class="hl-1">(</span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-3">PasswordMeter</span><span class="hl-1">().</span><span class="hl-3">getResult</span><span class="hl-1">(</span><span class="hl-6">&#39;@xc5--WWb&#39;</span><span class="hl-1">)));</span><br/><span class="hl-2">// result</span><br/><span class="hl-1">{</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;score&quot;</span><span class="hl-1"> : </span><span class="hl-7">170</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;status&quot;</span><span class="hl-1"> : </span><span class="hl-6">&quot;strong&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;percent&quot;</span><span class="hl-1"> : </span><span class="hl-7">85</span><br/><span class="hl-1">}</span><br/><br/><br/><span class="hl-2">// with score range</span><br/><span class="hl-0">console</span><span class="hl-1">.</span><span class="hl-3">log</span><span class="hl-1">(</span><span class="hl-4">JSON</span><span class="hl-1">.</span><span class="hl-3">stringify</span><span class="hl-1">(</span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-3">PasswordMeter</span><span class="hl-1">({}, {</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;40&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">&quot;E&quot;</span><span class="hl-1">, </span><span class="hl-2">// 001 &lt;= x &lt; 040</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;80&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">&quot;D&quot;</span><span class="hl-1">, </span><span class="hl-2">// 040 &lt;= x &lt; 080</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;120&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">&quot;C&quot;</span><span class="hl-1">, </span><span class="hl-2">// 080 &lt;= x &lt; 120</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;180&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">&quot;B&quot;</span><span class="hl-1">, </span><span class="hl-2">// 120 &lt;= x &lt; 180</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;200&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">&quot;A&quot;</span><span class="hl-1">, </span><span class="hl-2">// 180 &lt;= x &lt; 200</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;_&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">&quot;A+&quot;</span><span class="hl-1"> </span><span class="hl-2">// x &gt;= 200</span><br/><span class="hl-1">}).</span><span class="hl-3">getResult</span><span class="hl-1">(</span><span class="hl-6">&#39;@xc5--WWb&#39;</span><span class="hl-1">)));</span><br/><span class="hl-2">// result</span><br/><span class="hl-1">{</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;score&quot;</span><span class="hl-1"> : </span><span class="hl-7">170</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;status&quot;</span><span class="hl-1"> : </span><span class="hl-6">&quot;B&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;percent&quot;</span><span class="hl-1"> : </span><span class="hl-7">85</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-2">// with score range (The score range must have at least two members)</span><br/><span class="hl-0">console</span><span class="hl-1">.</span><span class="hl-3">log</span><span class="hl-1">(</span><span class="hl-4">JSON</span><span class="hl-1">.</span><span class="hl-3">stringify</span><span class="hl-1">(</span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-3">PasswordMeter</span><span class="hl-1">({}, {</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;100&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">&quot;Low&quot;</span><span class="hl-1">, </span><span class="hl-2">// 001 &lt;= x &lt; 100</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;_&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">&quot;High&quot;</span><span class="hl-1"> </span><span class="hl-2">// x &gt;= 100</span><br/><span class="hl-1">}).</span><span class="hl-3">getResult</span><span class="hl-1">(</span><span class="hl-6">&#39;@xc5--WWb&#39;</span><span class="hl-1">)));</span><br/><span class="hl-2">// result</span><br/><span class="hl-1">{</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;score&quot;</span><span class="hl-1"> : </span><span class="hl-7">170</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;status&quot;</span><span class="hl-1"> : </span><span class="hl-6">&quot;High&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;percent&quot;</span><span class="hl-1"> : </span><span class="hl-7">100</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-2">// with requirements and score range</span><br/><span class="hl-0">console</span><span class="hl-1">.</span><span class="hl-3">log</span><span class="hl-1">(</span><span class="hl-4">JSON</span><span class="hl-1">.</span><span class="hl-3">stringify</span><span class="hl-1">(</span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-3">PasswordMeter</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-0">minLength:</span><span class="hl-1"> </span><span class="hl-7">5</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-0">maxLength:</span><span class="hl-1"> </span><span class="hl-7">10</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-0">uppercaseLettersMinLength:</span><span class="hl-1"> </span><span class="hl-7">1</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-0">lowercaseLettersMinLength:</span><span class="hl-1"> </span><span class="hl-7">2</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-0">numbersMinLength:</span><span class="hl-1"> </span><span class="hl-7">1</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-0">symbolsMinLength:</span><span class="hl-1"> </span><span class="hl-7">1</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-0">include:</span><span class="hl-1"> [</span><span class="hl-6">&#39;a&#39;</span><span class="hl-1">, </span><span class="hl-6">&#39;$&#39;</span><span class="hl-1">],</span><br/><span class="hl-1"> </span><span class="hl-0">exclude:</span><span class="hl-1"> [</span><span class="hl-6">&#39;1baA$&#39;</span><span class="hl-1">, </span><span class="hl-6">&#39;0xaZ$&#39;</span><span class="hl-1">],</span><br/><span class="hl-1"> </span><span class="hl-0">startsWith:</span><span class="hl-1"> </span><span class="hl-6">&#39;1&#39;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-0">endsWith:</span><span class="hl-1"> </span><span class="hl-6">&#39;$&#39;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-0">includeOne:</span><span class="hl-1"> [</span><span class="hl-6">&#39;$&#39;</span><span class="hl-1">]</span><br/><span class="hl-1">}, {</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;40&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">&quot;veryWeak&quot;</span><span class="hl-1">, </span><span class="hl-2">// 001 &lt;= x &lt; 040</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;80&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">&quot;weak&quot;</span><span class="hl-1">, </span><span class="hl-2">// 040 &lt;= x &lt; 080</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;120&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">&quot;medium&quot;</span><span class="hl-1">, </span><span class="hl-2">// 080 &lt;= x &lt; 120</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;180&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">&quot;strong&quot;</span><span class="hl-1">, </span><span class="hl-2">// 120 &lt;= x &lt; 180</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;200&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">&quot;veryStrong&quot;</span><span class="hl-1">, </span><span class="hl-2">// 180 &lt;= x &lt; 200</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;_&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">&quot;perfect&quot;</span><span class="hl-1"> </span><span class="hl-2">// x &gt;= 200</span><br/><span class="hl-1"> }).</span><span class="hl-3">getResults</span><span class="hl-1">([</span><span class="hl-6">&#39;1baAe$&#39;</span><span class="hl-1">, </span><span class="hl-6">&#39;0xaZ$&#39;</span><span class="hl-1">, </span><span class="hl-6">&#39;ERT&#39;</span><span class="hl-1">, </span><span class="hl-6">&#39;1pwQvF@87$&#39;</span><span class="hl-1">,</span><span class="hl-6">&#39;12a4A6rx90$&#39;</span><span class="hl-1">])));</span><br/><span class="hl-2">// result</span><br/><span class="hl-1">[{</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;score&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-7">118</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;status&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-6">&quot;medium&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;percent&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-7">59</span><br/><span class="hl-1"> }, {</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;score&quot;</span><span class="hl-0"> :</span><span class="hl-1"> -</span><span class="hl-7">1</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;status&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-6">&quot;needs requirement(s)&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;errors&quot;</span><span class="hl-0"> :</span><span class="hl-1"> [</span><span class="hl-6">&quot;The password must start with 1.&quot;</span><span class="hl-1">, </span><span class="hl-6">&quot;The Password must exclude all the items specified.&quot;</span><span class="hl-1">],</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;percent&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-7">0</span><br/><span class="hl-1"> }, {</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;score&quot;</span><span class="hl-0"> :</span><span class="hl-1"> -</span><span class="hl-7">1</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;status&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-6">&quot;needs requirement(s)&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;errors&quot;</span><span class="hl-0"> :</span><span class="hl-1"> [</span><span class="hl-6">&quot;The minimum password length is 5.&quot;</span><span class="hl-1">, </span><span class="hl-6">&quot;The password must start with 1.&quot;</span><span class="hl-1">, </span><span class="hl-6">&quot;The password must end with $.&quot;</span><span class="hl-1">, </span><span class="hl-6">&quot;You must use at least 1 lowercase letter(s).&quot;</span><span class="hl-1">, </span><span class="hl-6">&quot;You must use at least 1 number(s).&quot;</span><span class="hl-1">, </span><span class="hl-6">&quot;You must use at least 1 symbol(s).&quot;</span><span class="hl-1">, </span><span class="hl-6">&quot;The Password must include all the items specified.&quot;</span><span class="hl-1">, </span><span class="hl-6">&quot;The Password must include at least one item specified [$].&quot;</span><span class="hl-1">],</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;percent&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-7">0</span><br/><span class="hl-1"> }, {</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;score&quot;</span><span class="hl-0"> :</span><span class="hl-1"> -</span><span class="hl-7">1</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;status&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-6">&quot;needs requirement(s)&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;errors&quot;</span><span class="hl-0"> :</span><span class="hl-1"> [</span><span class="hl-6">&quot;The Password must include all the items specified.&quot;</span><span class="hl-1">],</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;percent&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-7">0</span><br/><span class="hl-1"> }, {</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;score&quot;</span><span class="hl-0"> :</span><span class="hl-1"> -</span><span class="hl-7">1</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;status&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-6">&quot;needs requirement(s)&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;errors&quot;</span><span class="hl-0"> :</span><span class="hl-1"> [</span><span class="hl-6">&quot;The maximum password length is 10.&quot;</span><span class="hl-1">],</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;percent&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-7">0</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">] </span><br/><span class="hl-1"> </span><br/><br/><span class="hl-2">// with requirements and score range and custom messages</span><br/><span class="hl-0">console</span><span class="hl-1">.</span><span class="hl-3">log</span><span class="hl-1">(</span><span class="hl-4">JSON</span><span class="hl-1">.</span><span class="hl-3">stringify</span><span class="hl-1">(</span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-3">PasswordMeter</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-0">minLength:</span><span class="hl-1"> { </span><span class="hl-0">value:</span><span class="hl-1"> </span><span class="hl-7">5</span><span class="hl-1">, </span><span class="hl-0">message:</span><span class="hl-1"> </span><span class="hl-6">&quot;Hey!, check minLength&quot;</span><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-0">maxLength:</span><span class="hl-1"> { </span><span class="hl-0">value:</span><span class="hl-1"> </span><span class="hl-7">10</span><span class="hl-1">, </span><span class="hl-0">message:</span><span class="hl-1"> </span><span class="hl-6">&quot;Hey!, check maxLength&quot;</span><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-0">uppercaseLettersMinLength:</span><span class="hl-1"> { </span><span class="hl-0">value:</span><span class="hl-1"> </span><span class="hl-7">1</span><span class="hl-1">, </span><span class="hl-0">message:</span><span class="hl-1"> </span><span class="hl-6">&quot;Hey!, check uppercaseLettersMinLength&quot;</span><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-0">lowercaseLettersMinLength:</span><span class="hl-1"> { </span><span class="hl-0">value:</span><span class="hl-1"> </span><span class="hl-7">2</span><span class="hl-1">, </span><span class="hl-0">message:</span><span class="hl-1"> </span><span class="hl-6">&quot;Hey!, check lowercaseLettersMinLength&quot;</span><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-0">numbersMinLength:</span><span class="hl-1"> { </span><span class="hl-0">value:</span><span class="hl-1"> </span><span class="hl-7">1</span><span class="hl-1">, </span><span class="hl-0">message:</span><span class="hl-1"> </span><span class="hl-6">&quot;Hey!, check numbersMinLength&quot;</span><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-0">symbolsMinLength:</span><span class="hl-1"> { </span><span class="hl-0">value:</span><span class="hl-1"> </span><span class="hl-7">1</span><span class="hl-1">, </span><span class="hl-0">message:</span><span class="hl-1"> </span><span class="hl-6">&quot;Hey!, check symbolsMinLength&quot;</span><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-0">include:</span><span class="hl-1"> { </span><span class="hl-0">value:</span><span class="hl-1"> [</span><span class="hl-6">&#39;a&#39;</span><span class="hl-1">, </span><span class="hl-6">&#39;$&#39;</span><span class="hl-1">], </span><span class="hl-0">message:</span><span class="hl-1"> </span><span class="hl-6">&quot;Hey!, check include(s)&quot;</span><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-0">exclude:</span><span class="hl-1"> { </span><span class="hl-0">value:</span><span class="hl-1"> [</span><span class="hl-6">&#39;1baA$&#39;</span><span class="hl-1">, </span><span class="hl-6">&#39;0xaZ$&#39;</span><span class="hl-1">], </span><span class="hl-0">message:</span><span class="hl-1"> </span><span class="hl-6">&quot;Hey!, check exclude(s)&quot;</span><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-0">startsWith:</span><span class="hl-1"> { </span><span class="hl-0">value:</span><span class="hl-1"> </span><span class="hl-6">&#39;1&#39;</span><span class="hl-1">, </span><span class="hl-0">message:</span><span class="hl-1"> </span><span class="hl-6">&quot;Hey!, check startsWith&quot;</span><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-0">endsWith:</span><span class="hl-1"> { </span><span class="hl-0">value:</span><span class="hl-1"> </span><span class="hl-6">&#39;$&#39;</span><span class="hl-1">, </span><span class="hl-0">message:</span><span class="hl-1"> </span><span class="hl-6">&quot;Hey!, check endsWith&quot;</span><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-0">includeOne:</span><span class="hl-1"> { </span><span class="hl-0">value:</span><span class="hl-1"> [</span><span class="hl-6">&#39;$&#39;</span><span class="hl-1">], </span><span class="hl-0">message:</span><span class="hl-1"> </span><span class="hl-6">&quot;Hey!, check includeOne&quot;</span><span class="hl-1"> }</span><br/><span class="hl-1">}, {</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;40&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">&quot;veryWeak&quot;</span><span class="hl-1">, </span><span class="hl-2">// 001 &lt;= x &lt; 040</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;80&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">&quot;weak&quot;</span><span class="hl-1">, </span><span class="hl-2">// 040 &lt;= x &lt; 080</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;120&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">&quot;medium&quot;</span><span class="hl-1">, </span><span class="hl-2">// 080 &lt;= x &lt; 120</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;180&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">&quot;strong&quot;</span><span class="hl-1">, </span><span class="hl-2">// 120 &lt;= x &lt; 180</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;200&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">&quot;veryStrong&quot;</span><span class="hl-1">, </span><span class="hl-2">// 180 &lt;= x &lt; 200</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;_&quot;</span><span class="hl-0">:</span><span class="hl-1"> </span><span class="hl-6">&quot;perfect&quot;</span><span class="hl-1"> </span><span class="hl-2">// x &gt;= 200</span><br/><span class="hl-1"> }).</span><span class="hl-3">getResults</span><span class="hl-1">([</span><span class="hl-6">&#39;1baAe$&#39;</span><span class="hl-1">, </span><span class="hl-6">&#39;0xaZ$&#39;</span><span class="hl-1">, </span><span class="hl-6">&#39;ERT&#39;</span><span class="hl-1">, </span><span class="hl-6">&#39;1pwQvF@87$&#39;</span><span class="hl-1">,</span><span class="hl-6">&#39;12a4A6rx90$&#39;</span><span class="hl-1">])));</span><br/><span class="hl-2">// result</span><br/><span class="hl-1">[{</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;score&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-7">118</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;status&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-6">&quot;medium&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;percent&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-7">59</span><br/><span class="hl-1"> }, {</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;score&quot;</span><span class="hl-0"> :</span><span class="hl-1"> -</span><span class="hl-7">1</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;status&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-6">&quot;needs requirement(s)&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;errors&quot;</span><span class="hl-0"> :</span><span class="hl-1"> [</span><span class="hl-6">&quot;Hey!, check startsWith&quot;</span><span class="hl-1">, </span><span class="hl-6">&quot;Hey!, check exclude(s)&quot;</span><span class="hl-1">],</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;percent&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-7">0</span><br/><span class="hl-1"> }, {</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;score&quot;</span><span class="hl-0"> :</span><span class="hl-1"> -</span><span class="hl-7">1</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;status&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-6">&quot;needs requirement(s)&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;errors&quot;</span><span class="hl-0"> :</span><span class="hl-1"> [</span><span class="hl-6">&quot;Hey!, check minLength&quot;</span><span class="hl-1">, </span><span class="hl-6">&quot;Hey!, check startsWith&quot;</span><span class="hl-1">, </span><span class="hl-6">&quot;Hey!, check endsWith&quot;</span><span class="hl-1">, </span><span class="hl-6">&quot;Hey!, check lowercaseLettersMinLength&quot;</span><span class="hl-1">, </span><span class="hl-6">&quot;Hey!, check numbersMinLength&quot;</span><span class="hl-1">, </span><span class="hl-6">&quot;Hey!, check symbolsMinLength&quot;</span><span class="hl-1">, </span><span class="hl-6">&quot;Hey!, check include(s)&quot;</span><span class="hl-1">, </span><span class="hl-6">&quot;Hey!, check includeOne&quot;</span><span class="hl-1">],</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;percent&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-7">0</span><br/><span class="hl-1"> }, {</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;score&quot;</span><span class="hl-0"> :</span><span class="hl-1"> -</span><span class="hl-7">1</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;status&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-6">&quot;needs requirement(s)&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;errors&quot;</span><span class="hl-0"> :</span><span class="hl-1"> [</span><span class="hl-6">&quot;Hey!, check include(s)&quot;</span><span class="hl-1">],</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;percent&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-7">0</span><br/><span class="hl-1"> }, {</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;score&quot;</span><span class="hl-0"> :</span><span class="hl-1"> -</span><span class="hl-7">1</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;status&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-6">&quot;needs requirement(s)&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;errors&quot;</span><span class="hl-0"> :</span><span class="hl-1"> [</span><span class="hl-6">&quot;Hey!, check maxLength&quot;</span><span class="hl-1">],</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;percent&quot;</span><span class="hl-0"> :</span><span class="hl-1"> </span><span class="hl-7">0</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">] </span> </code></pre> <hr/> <a href="#release-notes" id="release-notes" style="color: inherit; text-decoration: none;"> <h3>Release notes</h3> </a> <a href="#version-3101" id="version-3101" style="color: inherit; text-decoration: none;"> <h5>Version 3.10.1</h5> </a> <p>Adding <code>exports</code> block to <code>package.json</code> to support <code>.cjs</code> and <code>.mjs</code>.</p> <p>All dependencies upddated.</p> <a href="#version-393" id="version-393" style="color: inherit; text-decoration: none;"> <h5>Version 3.9.3</h5> </a> <p><code>System.js</code> module format added.</p> <p>All dependencies upddated.</p> <a href="#version-392" id="version-392" style="color: inherit; text-decoration: none;"> <h5>Version 3.9.2</h5> </a> <p>For <code>unpkg</code>, the minified <code>UMD</code> package was set.</p> <p>Fix bundle&#39;s name issue.</p> <p>Now, you can use the library inside a browser as well as the Node.js.</p> <pre><code class="language-js"><span class="hl-2">// IIFE</span><br/><span class="hl-2">// https://unpkg.com/password-meter@VERSION/dist/index.iife.js</span><br/><span class="hl-2">// https://unpkg.com/password-meter@3.9.3/dist/index.iife.js</span><br/><span class="hl-2">// https://unpkg.com/password-meter@3.9.3/dist/index.iife.min.js</span><br/><br/><span class="hl-5">var</span><span class="hl-1"> </span><span class="hl-0">pswm</span><span class="hl-1"> = </span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-0">PasswordMeterModule</span><span class="hl-1">.</span><span class="hl-3">PasswordMeter</span><span class="hl-1">();</span><br/><span class="hl-5">var</span><span class="hl-1"> </span><span class="hl-0">result</span><span class="hl-1"> = </span><span class="hl-0">pswm</span><span class="hl-1">.</span><span class="hl-3">getResult</span><span class="hl-1">(</span><span class="hl-6">&quot;pa$$w0rd&quot;</span><span class="hl-1">);</span> </code></pre> <p>and also,</p> <pre><code class="language-js"><span class="hl-2">// UMD</span><br/><span class="hl-2">// https://unpkg.com/password-meter@VERSION/dist/index.umd.js</span><br/><span class="hl-2">// https://unpkg.com/password-meter</span><br/><span class="hl-2">// https://unpkg.com/password-meter@3.9.3/dist/index.umd.js</span><br/><span class="hl-2">// https://unpkg.com/password-meter@3.9.3/dist/index.umd.min.js</span><br/><br/><span class="hl-5">var</span><span class="hl-1"> </span><span class="hl-0">pswm</span><span class="hl-1"> = </span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-0">PasswordMeterModule</span><span class="hl-1">.</span><span class="hl-3">PasswordMeter</span><span class="hl-1">();</span><br/><span class="hl-5">var</span><span class="hl-1"> </span><span class="hl-0">result</span><span class="hl-1"> = </span><span class="hl-0">pswm</span><span class="hl-1">.</span><span class="hl-3">getResult</span><span class="hl-1">(</span><span class="hl-6">&quot;pa$$w0rd&quot;</span><span class="hl-1">);</span> </code></pre> <a href="#version-381" id="version-381" style="color: inherit; text-decoration: none;"> <h5>Version 3.8.1</h5> </a> <p>Fix a bug for <code>UMD</code> module name.</p> <a href="#version-38" id="version-38" style="color: inherit; text-decoration: none;"> <h5>Version 3.8</h5> </a> <p>No new feature or breaking changes just changing in project structure. (From <code>Gulp</code> to <code>Rollup</code>)</p> <a href="#version-37" id="version-37" style="color: inherit; text-decoration: none;"> <h5>Version 3.7</h5> </a> <p>In <code>getResult(password: string, ignoreCase: boolean = false, skipReq: boolean = false))</code> <code>skipReq</code> was added. With this option we could provide a &quot;score&quot; to our users based on the current typed password (even if they aren&#39;t according to requirements).</p> <pre><code class="language-typescript"><span class="hl-0">console</span><span class="hl-1">.</span><span class="hl-3">log</span><span class="hl-1">(</span><span class="hl-4">JSON</span><span class="hl-1">.</span><span class="hl-3">stringify</span><span class="hl-1">(</span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-3">PasswordMeter</span><span class="hl-1">({ </span><br/><span class="hl-1"> </span><span class="hl-0">uniqueLettersMinLength:</span><span class="hl-1"> { </span><span class="hl-0">value:</span><span class="hl-1"> </span><span class="hl-7">5</span><span class="hl-1">, </span><span class="hl-0">message:</span><span class="hl-1"> </span><span class="hl-6">&quot;Hey!, check uniqMinLength&quot;</span><span class="hl-1"> } </span><br/><span class="hl-1"> }).</span><span class="hl-3">getResult</span><span class="hl-1">(</span><span class="hl-6">&#39;aZ&amp;4aZ&amp;4&#39;</span><span class="hl-1">, </span><span class="hl-5">false</span><span class="hl-1">, </span><span class="hl-5">true</span><span class="hl-1">)));</span><br/><span class="hl-2">// result</span><br/><span class="hl-1">{</span><span class="hl-6">&quot;score&quot;</span><span class="hl-1">:</span><span class="hl-7">124</span><span class="hl-1">,</span><span class="hl-6">&quot;status&quot;</span><span class="hl-1">:</span><span class="hl-6">&quot;strong&quot;</span><span class="hl-1">,</span><span class="hl-6">&quot;percent&quot;</span><span class="hl-1">:</span><span class="hl-7">62</span><span class="hl-1">,</span><span class="hl-6">&quot;errors&quot;</span><span class="hl-1">:[</span><span class="hl-6">&quot;Hey!, check uniqMinLength&quot;</span><span class="hl-1">]}</span> </code></pre> <a href="#version-36" id="version-36" style="color: inherit; text-decoration: none;"> <h5>Version 3.6</h5> </a> <p><code>includeOne</code> added. Now you can define custom special characters set.</p> <pre><code class="language-typescript"><span class="hl-0">console</span><span class="hl-1">.</span><span class="hl-3">log</span><span class="hl-1">(</span><span class="hl-4">JSON</span><span class="hl-1">.</span><span class="hl-3">stringify</span><span class="hl-1">(</span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-3">PasswordMeter</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-0">includeOne:</span><span class="hl-1"> { </span><span class="hl-0">value:</span><span class="hl-1"> [</span><span class="hl-6">&quot;#&quot;</span><span class="hl-1">, </span><span class="hl-6">&quot;!&quot;</span><span class="hl-1">, </span><span class="hl-6">&quot;*&quot;</span><span class="hl-1">], </span><span class="hl-0">message:</span><span class="hl-1"> </span><span class="hl-6">&quot;Hey!, check includeOne&quot;</span><span class="hl-1"> },</span><br/><span class="hl-1"> }).</span><span class="hl-3">getResult</span><span class="hl-1">(</span><span class="hl-6">&#39;aZ&amp;4aZ&amp;4&#39;</span><span class="hl-1">)));</span><br/><span class="hl-2">// result</span><br/><span class="hl-1">{</span><span class="hl-6">&quot;score&quot;</span><span class="hl-1">:-</span><span class="hl-7">1</span><span class="hl-1">,</span><span class="hl-6">&quot;status&quot;</span><span class="hl-1">:</span><span class="hl-6">&quot;needs requirement(s)&quot;</span><span class="hl-1">,</span><span class="hl-6">&quot;errors&quot;</span><span class="hl-1">:[</span><span class="hl-6">&quot;Hey!, check includeOne&quot;</span><span class="hl-1">],</span><span class="hl-6">&quot;percent&quot;</span><span class="hl-1">:</span><span class="hl-7">0</span><span class="hl-1">}</span> </code></pre> <p>They are looking for including at least one character from provided set, but <code>aZ&amp;4aZ&amp;4</code> has none of them!</p> <a href="#version-35" id="version-35" style="color: inherit; text-decoration: none;"> <h5>Version 3.5</h5> </a> <p>bug fixed: <code>uniqueLettersMinLength</code> is optional now.</p> <a href="#version-34" id="version-34" style="color: inherit; text-decoration: none;"> <h5>Version 3.4</h5> </a> <p><code>uniqueLettersMinLength</code> added. Now you can define min length for unique letters.</p> <pre><code class="language-typescript"><span class="hl-0">console</span><span class="hl-1">.</span><span class="hl-3">log</span><span class="hl-1">(</span><span class="hl-4">JSON</span><span class="hl-1">.</span><span class="hl-3">stringify</span><span class="hl-1">(</span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-3">PasswordMeter</span><span class="hl-1">({</span><br/><span class="hl-1"> </span><span class="hl-0">uniqueLettersMinLength:</span><span class="hl-1"> { </span><span class="hl-0">value:</span><span class="hl-1"> </span><span class="hl-7">5</span><span class="hl-1">, </span><span class="hl-0">message:</span><span class="hl-1"> </span><span class="hl-6">&quot;Hey!, check uniqMinLength&quot;</span><span class="hl-1"> },</span><br/><span class="hl-1"> }).</span><span class="hl-3">getResult</span><span class="hl-1">(</span><span class="hl-6">&#39;aZ&amp;4aZ&amp;4&#39;</span><span class="hl-1">)));</span><br/><span class="hl-2">// result</span><br/><span class="hl-1">{</span><span class="hl-6">&quot;score&quot;</span><span class="hl-1">:-</span><span class="hl-7">1</span><span class="hl-1">,</span><span class="hl-6">&quot;status&quot;</span><span class="hl-1">:</span><span class="hl-6">&quot;needs requirement(s)&quot;</span><span class="hl-1">,</span><span class="hl-6">&quot;errors&quot;</span><span class="hl-1">:[</span><span class="hl-6">&quot;Hey!, check uniqMinLength&quot;</span><span class="hl-1">],</span><span class="hl-6">&quot;percent&quot;</span><span class="hl-1">:</span><span class="hl-7">0</span><span class="hl-1">}</span> </code></pre> <p>They are looking for <code>5</code> unique characters but <code>aZ&amp;4aZ&amp;4</code> needs one more!</p> <a href="#version-33" id="version-33" style="color: inherit; text-decoration: none;"> <h5>Version 3.3</h5> </a> <pre><code><span class="hl-0">Everything</span><span class="hl-1"> </span><span class="hl-0">except</span><span class="hl-1"> </span><span class="hl-3">letters</span><span class="hl-1"> (</span><span class="hl-0">a</span><span class="hl-1">-</span><span class="hl-0">z</span><span class="hl-1"> </span><span class="hl-0">and</span><span class="hl-1"> </span><span class="hl-8">A</span><span class="hl-1">-</span><span class="hl-8">Z</span><span class="hl-1">) </span><span class="hl-0">and</span><span class="hl-1"> </span><span class="hl-3">numbers</span><span class="hl-1"> (</span><span class="hl-7">0</span><span class="hl-1">-</span><span class="hl-7">9</span><span class="hl-1">) </span><span class="hl-0">are</span><span class="hl-1"> </span><span class="hl-0">considered</span><span class="hl-1"> </span><span class="hl-0">symbols</span><span class="hl-1">, </span><br/><span class="hl-0">so</span><span class="hl-1"> </span><span class="hl-0">the</span><span class="hl-1"> </span><span class="hl-0">symbols</span><span class="hl-1"> </span><span class="hl-0">are</span><span class="hl-1"> </span><span class="hl-0">not</span><span class="hl-1"> </span><span class="hl-0">defined</span><span class="hl-1"> </span><span class="hl-5">in</span><span class="hl-1"> </span><span class="hl-0">advance</span><span class="hl-1">.</span> </code></pre> <a href="#version-32" id="version-32" style="color: inherit; text-decoration: none;"> <h5>Version 3.2</h5> </a> <pre><code><span class="hl-0">An</span><span class="hl-1"> </span><span class="hl-6">&#39;ignoreCase&#39;</span><span class="hl-1"> </span><span class="hl-0">mode</span><span class="hl-1"> </span><span class="hl-0">is</span><span class="hl-1"> </span><span class="hl-0">added</span><span class="hl-1"> </span><span class="hl-5">in</span><span class="hl-1"> .</span><span class="hl-3">getResult</span><span class="hl-1">(</span><span class="hl-6">&#39;&#39;</span><span class="hl-1">,</span><span class="hl-0">ignoreCase</span><span class="hl-1">: </span><span class="hl-0">boolean</span><span class="hl-1"> = </span><span class="hl-5">false</span><span class="hl-1">)) </span><br/><span class="hl-0">and</span><span class="hl-1"> </span><span class="hl-0">also</span><span class="hl-1"> </span><span class="hl-0">for</span><span class="hl-1"> .</span><span class="hl-3">getResults</span><span class="hl-1">([],</span><span class="hl-0">ignoreCase</span><span class="hl-1">: </span><span class="hl-0">boolean</span><span class="hl-1"> = </span><span class="hl-5">false</span><span class="hl-1">)) </span><span class="hl-9">as</span><span class="hl-1"> </span><span class="hl-4">a</span><span class="hl-1"> </span><span class="hl-4">parameter</span><span class="hl-1">.</span><br/><br/><span class="hl-0">Obviously</span><span class="hl-1">, </span><span class="hl-0">the</span><span class="hl-1"> </span><span class="hl-9">default</span><span class="hl-1"> </span><span class="hl-0">value</span><span class="hl-1"> </span><span class="hl-0">is</span><span class="hl-1"> </span><span class="hl-6">&#39;false&#39;</span><span class="hl-1">, </span><span class="hl-0">It</span><span class="hl-1"> </span><span class="hl-0">helps</span><span class="hl-1"> </span><span class="hl-0">you</span><span class="hl-1"> </span><span class="hl-0">to</span><span class="hl-1"> </span><span class="hl-6">&#39;exclude&#39;</span><span class="hl-1"> </span><span class="hl-0">and</span><span class="hl-1"> </span><span class="hl-6">&#39;blackList&#39;</span><span class="hl-1"> </span><span class="hl-0">passwords</span><span class="hl-1"> </span><span class="hl-5">in</span><span class="hl-1"> </span><span class="hl-0">an</span><span class="hl-1"> </span><span class="hl-0">easier</span><span class="hl-1"> </span><span class="hl-0">way</span><br/><span class="hl-9">if</span><span class="hl-1"> </span><span class="hl-0">you</span><span class="hl-1"> </span><span class="hl-0">pass</span><span class="hl-1"> </span><span class="hl-0">the</span><span class="hl-1"> </span><span class="hl-6">&#39;true&#39;</span><span class="hl-1"> </span><span class="hl-0">then</span><span class="hl-1"> </span><span class="hl-10">exclude</span><span class="hl-1">: { </span><span class="hl-10">value</span><span class="hl-1">: [</span><span class="hl-6">&#39;test&#39;</span><span class="hl-1">], </span><span class="hl-10">message</span><span class="hl-1">: </span><span class="hl-6">&quot;Hey!, check exclude(s)&quot;</span><span class="hl-1"> }, </span><br/><span class="hl-0">means</span><span class="hl-1"> </span><span class="hl-0">every</span><span class="hl-1"> </span><span class="hl-0">kind</span><span class="hl-1"> </span><span class="hl-5">of</span><span class="hl-1"> </span><span class="hl-6">&#39;test&#39;</span><span class="hl-1"> </span><span class="hl-0">word</span><span class="hl-1"> </span><span class="hl-0">for</span><span class="hl-1"> </span><span class="hl-0">example</span><span class="hl-1"> </span><span class="hl-0">teST</span><span class="hl-1">, </span><span class="hl-8">TEST</span><span class="hl-1">, </span><span class="hl-0">Test</span><span class="hl-1"> </span><span class="hl-0">eESt</span><span class="hl-1"> </span><span class="hl-0">and</span><span class="hl-1"> </span><span class="hl-0">so</span><span class="hl-1"> </span><span class="hl-0">on</span><span class="hl-1"> </span><span class="hl-0">are</span><span class="hl-1"> </span><span class="hl-0">excluded</span><span class="hl-1">.</span><br/> </code></pre> <a href="#version-31" id="version-31" style="color: inherit; text-decoration: none;"> <h5>Version 3.1</h5> </a> <pre><code><span class="hl-1">- </span><span class="hl-0">blackList</span><span class="hl-1"> </span><span class="hl-0">property</span><span class="hl-1"> </span><span class="hl-0">added</span><span class="hl-1">. </span><span class="hl-0">eg</span><span class="hl-1">: { </span><span class="hl-0">blackList :</span><span class="hl-1"> [</span><span class="hl-6">&#39;123456&#39;</span><span class="hl-1">,</span><span class="hl-6">&#39;p@ssw0rd&#39;</span><span class="hl-1">] }</span> </code></pre> <a href="#version-30" id="version-30" style="color: inherit; text-decoration: none;"> <h5>Version 3.0</h5> </a> <pre><code><span class="hl-1">- </span><span class="hl-0">mustBe</span><span class="hl-1"> </span><span class="hl-0">renamed</span><span class="hl-1"> </span><span class="hl-0">to</span><span class="hl-1"> </span><span class="hl-0">include</span><span class="hl-1">.</span><br/><span class="hl-1">- </span><span class="hl-0">mustNotBe</span><span class="hl-1"> </span><span class="hl-0">renamed</span><span class="hl-1"> </span><span class="hl-0">to</span><span class="hl-1"> </span><span class="hl-0">exclude</span><span class="hl-1">.</span><br/><span class="hl-1">- </span><span class="hl-0">The</span><span class="hl-1"> </span><span class="hl-3">getResult</span><span class="hl-1">(</span><span class="hl-0">s</span><span class="hl-1">) </span><span class="hl-0">includes</span><span class="hl-1"> </span><span class="hl-0">percent</span><span class="hl-1">.</span><br/><span class="hl-1">- </span><span class="hl-0">You</span><span class="hl-1"> </span><span class="hl-0">can</span><span class="hl-1"> </span><span class="hl-0">create</span><span class="hl-1"> </span><span class="hl-0">an</span><span class="hl-1"> </span><span class="hl-0">object</span><span class="hl-1"> </span><span class="hl-9">as</span><span class="hl-1"> </span><span class="hl-4">a</span><span class="hl-1"> </span><span class="hl-4">fully</span><span class="hl-1"> </span><span class="hl-4">customizable</span><span class="hl-1"> </span><span class="hl-4">score</span><span class="hl-1"> </span><span class="hl-4">range</span><span class="hl-1">. { </span><span class="hl-6">&quot;score&quot;</span><span class="hl-1"> : </span><span class="hl-6">&quot;message&quot;</span><span class="hl-1"> }</span><br/><span class="hl-1"> </span><span class="hl-10">Conditions</span><span class="hl-1"> :</span><br/><span class="hl-1"> </span><span class="hl-7">1.</span><span class="hl-1"> </span><span class="hl-0">The</span><span class="hl-1"> </span><span class="hl-0">score</span><span class="hl-1"> </span><span class="hl-0">range</span><span class="hl-1"> </span><span class="hl-0">must</span><span class="hl-1"> </span><span class="hl-0">have</span><span class="hl-1"> </span><span class="hl-0">at</span><span class="hl-1"> </span><span class="hl-0">least</span><span class="hl-1"> </span><span class="hl-0">two</span><span class="hl-1"> </span><span class="hl-0">members</span><span class="hl-1">.</span><br/><span class="hl-1"> </span><span class="hl-7">2.</span><span class="hl-1"> </span><span class="hl-0">The</span><span class="hl-1"> </span><span class="hl-0">last</span><span class="hl-1"> </span><span class="hl-0">member</span><span class="hl-1"> </span><span class="hl-5">of</span><span class="hl-1"> </span><span class="hl-0">the</span><span class="hl-1"> </span><span class="hl-0">score</span><span class="hl-1"> </span><span class="hl-0">range</span><span class="hl-1"> </span><span class="hl-0">must</span><span class="hl-1"> </span><span class="hl-0">be</span><span class="hl-1"> </span><span class="hl-6">&quot;_&quot;</span><span class="hl-1">.</span> </code></pre> <a href="#version-20" id="version-20" style="color: inherit; text-decoration: none;"> <h5>Version 2.0</h5> </a> <pre><code><span class="hl-1">- </span><span class="hl-3">getScore</span><span class="hl-1">() </span><span class="hl-0">renamed</span><span class="hl-1"> </span><span class="hl-0">to</span><span class="hl-1"> </span><span class="hl-3">getResult</span><span class="hl-1">() </span><br/><span class="hl-1">- </span><span class="hl-3">getScores</span><span class="hl-1">() </span><span class="hl-0">renamed</span><span class="hl-1"> </span><span class="hl-0">to</span><span class="hl-1"> </span><span class="hl-3">getResults</span><span class="hl-1">()</span> </code></pre> <hr/> <div>Icons made by <a href="https://www.freepik.com" title="Freepik">Freepik</a> from <a href="https://www.flaticon.com/" title="Flaticon">www.flati