passfather 4.0.3 → 4.2.0

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/README.md CHANGED
@@ -1,21 +1,21 @@
1
1
  # passfather
2
2
  [![version](https://img.shields.io/npm/v/passfather.svg?style=flat-square)](https://www.npmjs.com/package/passfather)
3
3
  [![npm downloads](https://img.shields.io/npm/d18m/passfather)](https://www.npmjs.com/package/passfather)
4
- [![CI](https://github.com/vyushin/passfather/actions/workflows/nodejs.yml/badge.svg)](https://github.com/vyushin/passfather/actions/workflows/.github/workflows/nodejs.yml)
4
+ [![CI](https://github.com/vyushin/passfather/actions/workflows/nodejs.yml/badge.svg?branch=main)](https://github.com/vyushin/passfather/actions/workflows/nodejs.yml)
5
5
  [![npm bundle size](https://img.shields.io/bundlephobia/min/passfather)](https://github.com/vyushin/passfather/tree/main/dist)
6
6
  [![types](https://img.shields.io/npm/types/passfather.svg)](https://github.com/vyushin/passfather/blob/main/dist/passfather.d.ts)
7
- [![license](https://img.shields.io/github/license/vyushin/passfather.svg?style=flat-square)](https://github.com/vyushin/passfather/blob/master/LICENSE)
7
+ [![license](https://img.shields.io/github/license/vyushin/passfather.svg?style=flat-square)](https://github.com/vyushin/passfather/blob/main/LICENSE)
8
8
 
9
- **passfather** is a very fast and powerful utility with zero dependencies, designed to generate strong passwords or random strings.
9
+ **passfather** is a lightweight and powerful password generator for JavaScript and TypeScript — zero dependencies, high entropy, full browser and Node.js support.
10
10
 
11
11
  ![passfather is a lightweight and powerful password generator for JavaScript and TypeScript projects — zero dependencies, high entropy, full browser and Node.js support](https://github.com/user-attachments/assets/7ad3a013-a80d-41ec-8a73-2a4d1b201432)
12
12
 
13
13
  > **passfather is free** and will always remain free <br/>
14
14
  > A simple and quick way to support the project is to **buy me a coffee**. <br/>It will take no more than 5 minutes and will allow the project to keep going
15
-
16
- <a href="https://buymeacoffee.com/vyushin" target="_blank" title="Buy me a coffee">
17
- <img height="50" alt="Buy me a coffee" src="https://github.com/vyushin/passfather/assets/8006957/3e894205-6dd9-47da-b547-5ea09353a7dd">
18
- </a>
15
+ >
16
+ > <a href="https://buymeacoffee.com/vyushin" target="_blank" title="Buy me a coffee">
17
+ > <img height="50" alt="Buy me a coffee" src="https://github.com/vyushin/passfather/assets/8006957/3e894205-6dd9-47da-b547-5ea09353a7dd">
18
+ > </a>
19
19
 
20
20
  ## Table of contents
21
21
  * [Features](#features)
@@ -23,13 +23,13 @@
23
23
  * [Example](#example)
24
24
  * [Options](#options)
25
25
  * [Contributing](#contributing)
26
- * [Licence](#license)
26
+ * [License](#license)
27
27
 
28
28
  ## Features
29
29
 
30
30
  * Supports both browsers and Node.js;
31
31
  * Offers multiple random number algorithms such as Alea, KISS07, Kybos, LFib, LFIB4, MRG32k3a, Xorshift03.
32
- By default, it uses [getRandomValues](https://developer.mozilla.org/ru/docs/Web/API/RandomSource/getRandomValues) for browsers and [getRandomBytes](https://nodejs.org/api/crypto.html#crypto_crypto_randombytes_size_callback) for Node.js;
32
+ By default, it uses [getRandomValues](https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues) for browsers and [randomBytes](https://nodejs.org/api/crypto.html#cryptorandombytessize-callback) for Node.js;
33
33
  * Supports seeding with entropy;
34
34
  * Optionally utilizes any Unicode characters;
35
35
  * Allows for any password length.
@@ -37,15 +37,20 @@ By default, it uses [getRandomValues](https://developer.mozilla.org/ru/docs/Web/
37
37
  ## Installation
38
38
 
39
39
  ###### NPM
40
- `npm install --save passfather`
40
+ ```bash
41
+ npm install --save passfather
42
+ ```
41
43
 
42
44
  ###### Yarn
43
- `yarn add passfather`
45
+ ```bash
46
+ yarn add passfather
47
+ ```
48
+
44
49
 
45
50
  ###### ESM
46
51
  ```html
47
52
  <script type="module">
48
- import passfather from 'https://unpkg.com/passfather@latest/dist/esm/passfather.min.js'
53
+ import passfather from 'https://unpkg.com/passfather@latest/dist/esm/passfather.min.mjs'
49
54
  console.log( passfather() ); // Output "vFR_@1hDMhAr"
50
55
  </script>
51
56
  ```
@@ -94,8 +99,8 @@ console.log(password); // Output "40rAe2hqiM0UzTmN"
94
99
  |lowercase|boolean|`true`|Enable/disable lowercase
95
100
  |symbols|boolean|`true`|Enable/disable symbols
96
101
  |length|integer|`12`|Length of the generated string
97
- |prng|string|`default`| The algorithm for generating random strings uses random numbers generated by a [pseudorandom number generator]((https://en.wikipedia.org/wiki/Pseudorandom_number_generator)) (PRNG). Options include default, Alea, KISS07, Kybos, LFib, LFIB4, MRG32k3a, and Xorshift03. By default, it uses [getRandomValues](https://developer.mozilla.org/ru/docs/Web/API/RandomSource/getRandomValues) for browsers and [getRandomBytes](https://nodejs.org/api/crypto.html#crypto_crypto_randombytes_size_callback) for Node.js;
98
- |seed|array|[seed.js](https://github.com/vyushin/passfather/blob/master/src/seed.js)|Seed for the PRNG. See [random seed](https://en.wikipedia.org/wiki/Random_seed) for details. Note: the default value may not have sufficient entropy. It is recommended to use your own values for better security.
102
+ |prng|string|`default`| The algorithm for generating random strings uses random numbers generated by a [pseudorandom number generator](https://en.wikipedia.org/wiki/Pseudorandom_number_generator) (PRNG). Options include default, Alea, KISS07, Kybos, LFib, LFIB4, MRG32k3a, and Xorshift03. By default, it uses [getRandomValues](https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues) for browsers and [randomBytes](https://nodejs.org/api/crypto.html#cryptorandombytessize-callback) for Node.js.
103
+ |seed|array|[seed.js](https://github.com/vyushin/passfather/blob/main/src/seed.js)|Seed for the PRNG. See [random seed](https://en.wikipedia.org/wiki/Random_seed) for details. Note: the default value may not have sufficient entropy. It is recommended to use your own values for better security.
99
104
  |ranges|array|`null`|UTF-8 character ranges that will be used to generate the random string. See below for details.
100
105
 
101
106
  ### Options: `ranges` (custom characters)
@@ -122,7 +127,7 @@ console.log(password); // Output "▋▆♟◥◢♎◥♚♞♚▆♚◥▆▉
122
127
 
123
128
  The `ranges` option is an array of UTF-8 character ranges<br/>
124
129
  > Passfather supports a range from 0 to 65535 in the decimal system, and from 0x0000 to 0xFFFF in the hexadecimal system.<br/>
125
- You can find all of them on the [unicode table](https://unicode-table.com/unicode-table)
130
+ You can find all of them on [unicode table](https://symbl.cc/en/unicode-table)
126
131
 
127
132
  The example above includes UTF-8 characters with codes ranging from 9800 to 9807 and from 9818 to 9823, which represent zodiac signs and chess figures.<br/>
128
133
  It also includes characters with codes from 9698 to 9701 and from 0x2586 to 0x258B, representing geometric figures.
@@ -173,7 +178,7 @@ console.log(password); // Output "♚!N◢♊q6DO1,3▉♌k5♞"
173
178
 
174
179
  ## Contributing
175
180
 
176
- See [contributing](https://github.com/vyushin/passfather/blob/master/CONTRIBUTING.md) guideline.
181
+ See [contributing](https://github.com/vyushin/passfather/blob/main/CONTRIBUTING.md) guideline.
177
182
 
178
183
  ## License
179
- [MIT LICENSE](https://github.com/vyushin/passfather/blob/master/LICENSE)
184
+ [MIT LICENSE](https://github.com/vyushin/passfather/blob/main/LICENSE)
@@ -0,0 +1,37 @@
1
+ /*
2
+ @version 4.2.0
3
+ @description Passfather is very fast and powerful utility with zero dependencies to generate strong password
4
+ @copyright Copyright (c) 2019-present, Evgeny Vyushin <e@vyushin.ru> (https://github.com/vyushin)
5
+ @license
6
+ This source code is licensed under the MIT license found in the
7
+ LICENSE file on https://github.com/vyushin/passfather/blob/main/LICENSE
8
+ */
9
+ /*! From http://baagoe.com/en/RandomMusings/javascript/ */
10
+ var n,e,r,t,o,s,i,u,a,c,l,f,p,h,g,m,d,y,v,b;function w(){if(e)return n;return e=1,n=
11
+ /*! Johannes Baagøe <baagoe@baagoe.com>, 2010 */
12
+ function(){var n=4022871197,e=function(e){e=e.toString();for(var r=0;r<e.length;r++){var t=.02519603282416938*(n+=e.charCodeAt(r));t-=n=t>>>0,n=(t*=n)>>>0,n+=4294967296*(t-=n)}return 2.3283064365386963e-10*(n>>>0)};return e.version="Mash 0.9",e}}
13
+ /*! From http://baagoe.com/en/RandomMusings/javascript/ */function O(){if(y)return d;y=1;const n=function(){if(t)return r;t=1;const n=w();return r=function(){return function(e){
14
+ /*! Johannes Baagøe <baagoe@baagoe.com>, 2010 */
15
+ var r=0,t=0,o=0,s=1;0==e.length&&(e=[+new Date]);var i=n();r=i(" "),t=i(" "),o=i(" ");for(var u=0;u<e.length;u++)(r-=i(e[u]))<0&&(r+=1),(t-=i(e[u]))<0&&(t+=1),(o-=i(e[u]))<0&&(o+=1);i=null;var a=function(){var n=2091639*r+2.3283064365386963e-10*s;return r=t,t=o,o=n-(s=0|n)};return a.uint32=function(){return 4294967296*a()},a.fract53=function(){return a()+11102230246251565e-32*(2097152*a()|0)},a.version="Alea 0.9",a.args=e,a}(Array.prototype.slice.call(arguments))},r}
16
+ /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),e=function(){if(s)return o;s=1;const n=w();return o=function(){return function(e){
17
+ /*! George Marsaglia, 2007-06-23 */
18
+ /*! http://groups.google.com/group/comp.lang.fortran/msg/6edb8ad6ec5421a5 */
19
+ var r=123456789,t=362436069,o=21288629,s=14921776,i=0;0==e.length&&(e=[+new Date]);for(var u=n(),a=0;a<e.length;a++)r^=4294967296*u(e[a]),t^=4294967296*u(e[a]),o^=4294967296*u(e[a]),s^=4294967296*u(e[a]);0===t&&(t=1),i^=o>>>31,(o&=2147483647)%7559==0&&o++,(s&=2147483647)%7559==0&&s++,u=null;var c=function(){var n;return r+=545925293,t^=t<<13,t^=t>>>17,n=o+s+i,o=s,i=n>>>31,(r>>>=0)+(t^=t<<5)+(s=2147483647&n)>>>0},l=function(){return 2.3283064365386963e-10*c()};return l.uint32=c,l.fract53=function(){return l()+11102230246251565e-32*(2097151&c())},l.args=e,l.version="KISS07 0.9",l}(Array.prototype.slice.call(arguments))},o}
20
+ /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),v=function(){if(u)return i;u=1;const n=w();return i=function(){return function(e){for(
21
+ /*! Johannes Baagøe <baagoe@baagoe.com>, 2010 */
22
+ var r=0,t=0,o=0,s=1,i=[],u=0,a=n(),c=(r=a(" "),t=a(" "),o=a(" "),0);c<8;c++)i[c]=a(" ");0==e.length&&(e=[+new Date]);for(var l=0;l<e.length;l++)for((r-=a(e[l]))<0&&(r+=1),(t-=a(e[l]))<0&&(t+=1),(o-=a(e[l]))<0&&(o+=1),c=0;c<8;c++)i[c]-=a(e[l]),i[c]<0&&(i[c]+=1);var f=function(){u=8*i[u]|0;var n=i[u],e=2091639*r+2.3283064365386963e-10*s;return r=t,t=o,o=e-(s=0|e),i[u]-=o,i[u]<0&&(i[u]+=1),n};return f.uint32=function(){return 4294967296*f()},f.fract53=function(){return f()+11102230246251565e-32*(2097152*f()|0)},f.addNoise=function(){for(var n=arguments.length-1;n>=0;n--)for(c=0;c<8;c++)i[c]-=a(arguments[n]),i[c]<0&&(i[c]+=1)},f.version="Kybos 0.9",f.args=e,f}(Array.prototype.slice.call(arguments))},i}
23
+ /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),b=function(){if(c)return a;c=1;const n=w();return a=function(){return function(e){
24
+ /*! Johannes Baagøe <baagoe@baagoe.com>, 2010 */
25
+ var r=255,t=52,o=0,s=[],i=n();0===e.length&&(e=[+new Date]);for(var u=0;u<256;u++)s[u]=i(" "),s[u]-=4.76837158203125e-7*i(" "),s[u]<0&&(s[u]+=1);for(var a=0;a<e.length;a++)for(u=0;u<256;u++)s[u]-=i(e[a]),s[u]-=4.76837158203125e-7*i(e[a]),s[u]<0&&(s[u]+=1);i=null;var c=function(){t=t+1&255,o=o+1&255;var n=s[r=r+1&255]-s[t];return n<0&&(n+=1),(n-=s[o])<0&&(n+=1),s[r]=n};return c.uint32=function(){return 4294967296*c()>>>0},c.fract53=c,c.version="LFib 0.9",c.args=e,c}(Array.prototype.slice.call(arguments))},a}
26
+ /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),O=function(){if(f)return l;f=1;const n=w();return l=function(){return function(e){
27
+ /*! George Marsaglia's LFIB4, */
28
+ /*! http://groups.google.com/group/sci.crypt/msg/eb4ddde782b17051 */
29
+ var r=0,t=58,o=119,s=178,i=[],u=n();0===e.length&&(e=[+new Date]);for(var a=0;a<256;a++)i[a]=u(" "),i[a]-=4.76837158203125e-7*u(" "),i[a]<0&&(i[a]+=1);for(var c=0;c<e.length;c++)for(a=0;a<256;a++)i[a]-=u(e[c]),i[a]-=4.76837158203125e-7*u(e[c]),i[a]<0&&(i[a]+=1);u=null;var l=function(){var n;return t=t+1&255,o=o+1&255,s=s+1&255,(n=i[r=r+1&255]-i[t])<0&&(n+=1),(n-=i[o])<0&&(n+=1),(n-=i[s])<0&&(n+=1),i[r]=n};return l.uint32=function(){return 4294967296*l()>>>0},l.fract53=l,l.version="LFIB4 0.9",l.args=e,l}(Array.prototype.slice.call(arguments))},l}
30
+ /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),S=function(){if(h)return p;h=1;const n=w();return p=function(){return function(e){
31
+ /*! Copyright (c) 1998, 2002 Pierre L'Ecuyer, DIRO, Université de Montréal. */
32
+ /*! http://www.iro.umontreal.ca/~lecuyer/ */
33
+ var r=4294967087,t=4294944443,o=12345,s=12345,i=123,u=12345,a=12345,c=123;0===e.length&&(e=[+new Date]);for(var l=n(),f=0;f<e.length;f++)o+=4294967296*l(e[f]),s+=4294967296*l(e[f]),i+=4294967296*l(e[f]),u+=4294967296*l(e[f]),a+=4294967296*l(e[f]),c+=4294967296*l(e[f]);o%=r,s%=r,i%=r,u%=t,a%=t,c%=t,l=null;var p=function(){var n,e,r=4294967087,t=4294944443;return n=1403580*s-810728*o,(n-=(n/r|0)*r)<0&&(n+=r),o=s,s=i,i=n,e=527612*c-1370589*u,(e-=(e/t|0)*t)<0&&(e+=t),u=a,a=c,c=e,n<=e?n-e+r:n-e},h=function(){return 2.3283064365386963e-10*p()};return h.uint32=p,h.fract53=function(){return h()+11102230246251565e-32*(2097151&p())},h.version="MRG32k3a 0.9",h.args=e,h}(Array.prototype.slice.call(arguments))},p}
34
+ /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),E=function(){if(m)return g;m=1;const n=w();return g=function(){return function(e){
35
+ /*! George Marsaglia, 13 May 2003 */
36
+ /*! http://groups.google.com/group/comp.lang.c/msg/e3c4ea1169e463ae */
37
+ var r=123456789,t=362436069,o=521288629,s=88675123,i=886756453;0==e.length&&(e=[+new Date]);for(var u=n(),a=0;a<e.length;a++)r^=4294967296*u(e[a]),t^=4294967296*u(e[a]),o^=4294967296*u(e[a]),i^=4294967296*u(e[a]),s^=4294967296*u(e[a]);u=null;var c=function(){var n=(r^r>>>7)>>>0;return r=t,t=o,o=s,s=i,(t+t+1)*(i=i^i<<6^(n^n<<13)>>>0)>>>0},l=function(){return 2.3283064365386963e-10*c()};return l.uint32=c,l.fract53=function(){return l()+11102230246251565e-32*(2097151&c())},l.version="Xorshift03 0.9",l.args=e,l}(Array.prototype.slice.call(arguments))},g}();return d={Alea:n,KISS07:e,Kybos:v,LFib:b,LFIB4:O,MRG32k3a:S,Xorshift03:E}}function S(){if(b)return v;b=1;const n=O(),e=new Set(Object.keys(n));function r(){return"undefined"!=typeof window&&void 0!==window.document}function t(t,o){const s=e.has(t);if(t&&"default"!==t&&!s&&console.warn(`PRNG ${t} is not supported`),t&&"default"!==t&&e.has(t)){return(o?new n[t](o):new n[t]).uint32()}const i=function(){if(r()&&void 0!==window.crypto)return window.crypto;if(globalThis.passfather?.externals?.crypto)return globalThis.passfather.externals.crypto;throw new Error("Crypto API is not available in this environment")}();return r()?i.getRandomValues(new Uint32Array(1))[0]:parseInt(i.randomBytes(4).toString("hex"),16)}function o(n,e,r){const s=t(e,r),i=n[1]-n[0]+1;return s>=Math.floor(4294967295/i)*i?o(n):n[0]+s%i}function s(n,e){return Array(n).fill().map(e)}function i(n,e,r){return t=s(e-n,((e,r)=>n+r)),r?t.push(e)&&t:t;var t}return v={isBrowser:r,getRandomUint32:t,random:o,randomItem:function(n,e,r){return n[o([0,n.length-1],e,r)]},without:function(n,e){return n.filter((n=>!1===e.includes(n)))},includes:function(n,e){return n.some((n=>e.includes(n)))},includesAll:function(n,e){return!1===e.some((e=>!1===n.includes(e)))},excludes:function(n,e){return!1===n.some((n=>e.includes(n)))},lastIndex:function(n){return n.length-1},compact:function(n){return n.filter(Boolean)},keys:function(n){return Object.keys(n)},isInteger:function(n){return Number.isInteger(n)},isNumber:function(n){return"number"==typeof n&&!1===isNaN(n)},isString:function(n){return"string"==typeof n},isBoolean:function(n){return!0===n||!1===n},isArray:function(n){return n instanceof Array},isPlainObject:function(n){try{return!0===/^\{.*\}$/.test(JSON.stringify(n))&&n instanceof Map==!1}catch(n){return!1}},assign:function(){return Object.assign.apply(Object,arguments)},timesMap:s,numSequence:i,shuffle:function(n,e,r){return n.length<=1||s(n.length,((t,s)=>{const i=o([0,n.length-1],e,r);[n[s],n[i]]=[n[i],n[s]]})),n},getCharsByDiapason:function(n){return String.fromCodePoint.apply(String,i(n[0],n[1],!0))},isCharCode:function(n){return String.fromCharCode(n)!==String.fromCharCode(!1)},escapeRegExp:function(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}},v}var E,A,D,R,_,I,T={name:"passfather",version:"4.2.0",description:"Passfather is very fast and powerful utility with zero dependencies to generate strong password",author:"Evgeny Vyushin <e@vyushin.ru> (https://github.com/vyushin)",contributors:["Evgeny Vyushin <e@vyushin.ru> (https://github.com/vyushin)"],maintainers:["Evgeny Vyushin <e@vyushin.ru> (https://github.com/vyushin)"],repository:{type:"git",url:"https://github.com/vyushin/passfather"},scripts:{"install-all":"cd ./build && npm install && cd ../test && npm install",build:"cd ./build && npm run build",pretest:"npm run build",test:"cd ./test && npm test",prepublish:"npm test && npm pack --dry-run"},bugs:{url:"https://github.com/vyushin/passfather/issues"},homepage:"https://github.com/vyushin/passfather",main:"./dist/umd/passfather.min.js",types:"./dist/passfather.d.ts",module:"./dist/esm/passfather.min.mjs",exports:{".":{import:"./dist/esm/passfather.min.mjs",require:"./dist/umd/passfather.min.js",types:"./dist/passfather.d.ts"}},license:"MIT",keywords:["password","generator","passgen"],directories:{doc:"./README.md"},files:["dist","README.md","LICENSE"],devDependencies:{},funding:[{type:"buy_me_a_coffee",url:"https://buymeacoffee.com/vyushin"},{type:"Patreon",url:"https://www.patreon.com/vyushin"}]};function P(){if(A)return E;A=1;const{keys:n,isInteger:e,includesAll:r,isBoolean:t,isArray:o,isPlainObject:s,assign:i,without:u,isCharCode:a,isString:c,isNumber:l}=S(),f=O(),{name:p}=T,h=p,g={numbers:!0,uppercase:!0,lowercase:!0,symbols:!0,length:12,ranges:null,prng:"default",seed:null},m={numbers:n=>t(n),uppercase:n=>t(n),lowercase:n=>t(n),symbols:n=>t(n),length:n=>e(n)&&n>0,ranges:n=>o(n)&&n.length>0&&n.every((n=>{return o(e=n)&&e.length>0&&e.every((n=>o(n)&&a(n[0])&&a(n[1])));var e})),prng:e=>["default"].concat(n(f)).includes(e),seed:n=>o(n)&&n.length>0&&!1===n.some((n=>!c(n)&&!l(n))),completely(e){return[()=>!1===(void 0===e||s(e)&&0===n(e).length),()=>s(e),()=>r(n(g),n(e)),()=>!1===e.hasOwnProperty("ranges")||this.ranges(e.ranges),()=>!1===e.hasOwnProperty("numbers")||this.numbers(e.numbers),()=>!1===e.hasOwnProperty("uppercase")||this.uppercase(e.uppercase),()=>!1===e.hasOwnProperty("lowercase")||this.lowercase(e.lowercase),()=>!1===e.hasOwnProperty("symbols")||this.symbols(e.symbols),()=>!1===e.hasOwnProperty("length")||this.length(e.length),()=>!1===e.hasOwnProperty("prng")||this.prng(e.prng),()=>!1===e.hasOwnProperty("seed")||this.seed(e.seed),()=>{const r=i({},g,e);return u(n(r),["length"]).some((n=>"ranges"===n?o(r[n]):!0===r[n]))},()=>{const n=i({},g,e);return!1===(e.hasOwnProperty("seed")&&"default"===n.prng)}].findIndex((n=>!1===n()))}},d=[];return d[0]="No errors",d[1]=`[${h}]: Option must be an object`,d[2]=`[${h}]: Options must contains only one (or several) of [${n(g).join(", ")}]`,d[3]=`[${h}]: Option "ranges" must be array with array of UTF-8 char code range. For example: [ [[48, 57 ]], [[33, 46], [58, 64], [94, 96], [123, 126]] ] `,d[4]=`[${h}]: Option "numbers" must be boolean`,d[5]=`[${h}]: Option "uppercase" must be boolean`,d[6]=`[${h}]: Option "lowercase" must be boolean`,d[7]=`[${h}]: Option "symbols" must be boolean`,d[8]=`[${h}]: Option "length" must be integer greater than 0`,d[9]=`[${h}]: Option "prng" must be one of [${["default"].concat(n(f)).join(", ")}]`,d[10]=`[${h}]: Option "seed" must be array of strings or numbers`,d[11]=`[${h}]: At less one of options [${u(n(g),["length","prng","seed"]).join(", ")}] mustn't be false`,d[12]=`[${h}]: Option "seed" cannot be used when "prng" option is default. Set "prng" option to one of [${n(f).join(", ")}]`,E={OPTION_VALIDATORS:m,ERROR_MESSAGES:d,MODULE_NAME:h,DEFAULT_OPTIONS:g}}var $=function(){if(I)return _;I=1;const{compact:n,assign:e,timesMap:r,isBrowser:t,...o}=S(),{OPTION_VALIDATORS:s,ERROR_MESSAGES:i,DEFAULT_OPTIONS:u}=P(),{DEFAULT_BROWSER_SEED:a,DEFAULT_NODE_SEED:c}=function(){if(R)return D;R=1;const{compact:n,isBrowser:e}=S(),r=e()?null:n([].concat(Date.now(),process.memoryUsage?[process.memoryUsage().heapTotal,process.memoryUsage().heapUsed]:null,process.env?[process.arch,process.platform]:null)),t=e()?n([].concat(Date.now(),performance&&performance.memory?[performance.memory.totalJSHeapSize,performance.memory.usedJSHeapSize]:null,navigator?[navigator.userAgent,navigator.appVersion,navigator.hardwareConcurrency,navigator.deviceMemory]:null)):null;return D={DEFAULT_NODE_SEED:r,DEFAULT_BROWSER_SEED:t}}(),l=o.random,f=o.randomItem,p=o.shuffle,h=[[[48,57]],[[65,90]],[[97,122]],[[33,46],[58,64],[94,96],[123,126]]];function g({seed:n}){const e=Boolean(n);return t()?e?n:a:e?n:c}function m(t){const o=s.completely(t);if(o>0)throw i[o];const a=e({},u,t,m.prototype._dev.options),c=n=>{const e=p(g(a));return p(n,a.prng,e)},d=n=>{const e=p(g(a));return l(n,a.prng,p(e))},y=n=>{const e=p(g(a));return f(n,a.prng,p(e))},v=function(e){return n([].concat(e.numbers&&[h[0]],e.uppercase&&[h[1]],e.lowercase&&[h[2]],e.symbols&&[h[3]],e.ranges&&e.ranges))}(a),b=r(v.length,((n,e)=>String.fromCharCode(d(y(v[e])))));return b.length>=a.length?c(b).slice(0,a.length).join(""):c(r(a.length-b.length,(()=>String.fromCharCode(d(y(y(v)))))).concat(b)).join("")}return m.prototype._dev={options:{}},_={passfather:m,DEFAULT_OPTIONS:u,CHAR_RANGES:h,ERROR_MESSAGES:i}}();await async function(){let n;n="undefined"!=typeof window&&void 0!==window.document?window.crypto:await import("crypto").then((n=>n.default||n)),globalThis.passfather=globalThis.passfather||{},globalThis.passfather.externals={crypto:n}}();var C=$.passfather;export{C as default};
@@ -1,37 +1,36 @@
1
1
  /*
2
- @version 4.0.3
2
+ @version 4.2.0
3
3
  @description Passfather is very fast and powerful utility with zero dependencies to generate strong password
4
4
  @copyright Copyright (c) 2019-present, Evgeny Vyushin <e@vyushin.ru> (https://github.com/vyushin)
5
5
  @license
6
6
  This source code is licensed under the MIT license found in the
7
7
  LICENSE file on https://github.com/vyushin/passfather/blob/main/LICENSE
8
8
  */
9
- !function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(n="undefined"!=typeof globalThis?globalThis:n||self).passfather=e()}(this,(function(){"use strict";function n(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}
10
- /*! From http://baagoe.com/en/RandomMusings/javascript/ */var e,r,t,o,s,u,i,a,c,l,f,p,h,g,m,d,y,v,b,w;function O(){if(r)return e;return r=1,e=
9
+ !function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("crypto")):"function"==typeof define&&define.amd?define(["crypto"],e):(n="undefined"!=typeof globalThis?globalThis:n||self).passfather=e(n.crypto)}(this,(function(n){"use strict";function e(n){return n&&"object"==typeof n&&"default"in n?n:{default:n}}var r,t,o,s,i,u,a,c,f,l,p,h,g,d,m,y,v,b,w,O,E,S,A=e(n),D="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function R(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function _(){if(s)return o;return s=1,o=
11
10
  /*! Johannes Baagøe <baagoe@baagoe.com>, 2010 */
12
11
  function(){var n=4022871197,e=function(e){e=e.toString();for(var r=0;r<e.length;r++){var t=.02519603282416938*(n+=e.charCodeAt(r));t-=n=t>>>0,n=(t*=n)>>>0,n+=4294967296*(t-=n)}return 2.3283064365386963e-10*(n>>>0)};return e.version="Mash 0.9",e}}
13
- /*! From http://baagoe.com/en/RandomMusings/javascript/ */function S(){if(v)return y;v=1;const n=function(){if(o)return t;o=1;const n=O();return t=function(){return function(e){
12
+ /*! From http://baagoe.com/en/RandomMusings/javascript/ */function T(){if(O)return w;O=1;const n=function(){if(u)return i;u=1;const n=_();return i=function(){return function(e){
14
13
  /*! Johannes Baagøe <baagoe@baagoe.com>, 2010 */
15
- var r=0,t=0,o=0,s=1;0==e.length&&(e=[+new Date]);var u=n();r=u(" "),t=u(" "),o=u(" ");for(var i=0;i<e.length;i++)(r-=u(e[i]))<0&&(r+=1),(t-=u(e[i]))<0&&(t+=1),(o-=u(e[i]))<0&&(o+=1);u=null;var a=function(){var n=2091639*r+2.3283064365386963e-10*s;return r=t,t=o,o=n-(s=0|n)};return a.uint32=function(){return 4294967296*a()},a.fract53=function(){return a()+11102230246251565e-32*(2097152*a()|0)},a.version="Alea 0.9",a.args=e,a}(Array.prototype.slice.call(arguments))},t}
16
- /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),e=function(){if(u)return s;u=1;const n=O();return s=function(){return function(e){
14
+ var r=0,t=0,o=0,s=1;0==e.length&&(e=[+new Date]);var i=n();r=i(" "),t=i(" "),o=i(" ");for(var u=0;u<e.length;u++)(r-=i(e[u]))<0&&(r+=1),(t-=i(e[u]))<0&&(t+=1),(o-=i(e[u]))<0&&(o+=1);i=null;var a=function(){var n=2091639*r+2.3283064365386963e-10*s;return r=t,t=o,o=n-(s=0|n)};return a.uint32=function(){return 4294967296*a()},a.fract53=function(){return a()+11102230246251565e-32*(2097152*a()|0)},a.version="Alea 0.9",a.args=e,a}(Array.prototype.slice.call(arguments))},i}
15
+ /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),e=function(){if(c)return a;c=1;const n=_();return a=function(){return function(e){
17
16
  /*! George Marsaglia, 2007-06-23 */
18
17
  /*! http://groups.google.com/group/comp.lang.fortran/msg/6edb8ad6ec5421a5 */
19
- var r=123456789,t=362436069,o=21288629,s=14921776,u=0;0==e.length&&(e=[+new Date]);for(var i=n(),a=0;a<e.length;a++)r^=4294967296*i(e[a]),t^=4294967296*i(e[a]),o^=4294967296*i(e[a]),s^=4294967296*i(e[a]);0===t&&(t=1),u^=o>>>31,(o&=2147483647)%7559==0&&o++,(s&=2147483647)%7559==0&&s++,i=null;var c=function(){var n;return r+=545925293,t^=t<<13,t^=t>>>17,n=o+s+u,o=s,u=n>>>31,(r>>>=0)+(t^=t<<5)+(s=2147483647&n)>>>0},l=function(){return 2.3283064365386963e-10*c()};return l.uint32=c,l.fract53=function(){return l()+11102230246251565e-32*(2097151&c())},l.args=e,l.version="KISS07 0.9",l}(Array.prototype.slice.call(arguments))},s}
20
- /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),r=function(){if(a)return i;a=1;const n=O();return i=function(){return function(e){for(
18
+ var r=123456789,t=362436069,o=21288629,s=14921776,i=0;0==e.length&&(e=[+new Date]);for(var u=n(),a=0;a<e.length;a++)r^=4294967296*u(e[a]),t^=4294967296*u(e[a]),o^=4294967296*u(e[a]),s^=4294967296*u(e[a]);0===t&&(t=1),i^=o>>>31,(o&=2147483647)%7559==0&&o++,(s&=2147483647)%7559==0&&s++,u=null;var c=function(){var n;return r+=545925293,t^=t<<13,t^=t>>>17,n=o+s+i,o=s,i=n>>>31,(r>>>=0)+(t^=t<<5)+(s=2147483647&n)>>>0},f=function(){return 2.3283064365386963e-10*c()};return f.uint32=c,f.fract53=function(){return f()+11102230246251565e-32*(2097151&c())},f.args=e,f.version="KISS07 0.9",f}(Array.prototype.slice.call(arguments))},a}
19
+ /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),r=function(){if(l)return f;l=1;const n=_();return f=function(){return function(e){for(
21
20
  /*! Johannes Baagøe <baagoe@baagoe.com>, 2010 */
22
- var r=0,t=0,o=0,s=1,u=[],i=0,a=n(),c=(r=a(" "),t=a(" "),o=a(" "),0);c<8;c++)u[c]=a(" ");0==e.length&&(e=[+new Date]);for(var l=0;l<e.length;l++)for((r-=a(e[l]))<0&&(r+=1),(t-=a(e[l]))<0&&(t+=1),(o-=a(e[l]))<0&&(o+=1),c=0;c<8;c++)u[c]-=a(e[l]),u[c]<0&&(u[c]+=1);var f=function(){i=8*u[i]|0;var n=u[i],e=2091639*r+2.3283064365386963e-10*s;return r=t,t=o,o=e-(s=0|e),u[i]-=o,u[i]<0&&(u[i]+=1),n};return f.uint32=function(){return 4294967296*f()},f.fract53=function(){return f()+11102230246251565e-32*(2097152*f()|0)},f.addNoise=function(){for(var n=arguments.length-1;n>=0;n--)for(c=0;c<8;c++)u[c]-=a(arguments[n]),u[c]<0&&(u[c]+=1)},f.version="Kybos 0.9",f.args=e,f}(Array.prototype.slice.call(arguments))},i}
23
- /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),b=function(){if(l)return c;l=1;const n=O();return c=function(){return function(e){
21
+ var r=0,t=0,o=0,s=1,i=[],u=0,a=n(),c=(r=a(" "),t=a(" "),o=a(" "),0);c<8;c++)i[c]=a(" ");0==e.length&&(e=[+new Date]);for(var f=0;f<e.length;f++)for((r-=a(e[f]))<0&&(r+=1),(t-=a(e[f]))<0&&(t+=1),(o-=a(e[f]))<0&&(o+=1),c=0;c<8;c++)i[c]-=a(e[f]),i[c]<0&&(i[c]+=1);var l=function(){u=8*i[u]|0;var n=i[u],e=2091639*r+2.3283064365386963e-10*s;return r=t,t=o,o=e-(s=0|e),i[u]-=o,i[u]<0&&(i[u]+=1),n};return l.uint32=function(){return 4294967296*l()},l.fract53=function(){return l()+11102230246251565e-32*(2097152*l()|0)},l.addNoise=function(){for(var n=arguments.length-1;n>=0;n--)for(c=0;c<8;c++)i[c]-=a(arguments[n]),i[c]<0&&(i[c]+=1)},l.version="Kybos 0.9",l.args=e,l}(Array.prototype.slice.call(arguments))},f}
22
+ /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),t=function(){if(h)return p;h=1;const n=_();return p=function(){return function(e){
24
23
  /*! Johannes Baagøe <baagoe@baagoe.com>, 2010 */
25
- var r=255,t=52,o=0,s=[],u=n();0===e.length&&(e=[+new Date]);for(var i=0;i<256;i++)s[i]=u(" "),s[i]-=4.76837158203125e-7*u(" "),s[i]<0&&(s[i]+=1);for(var a=0;a<e.length;a++)for(i=0;i<256;i++)s[i]-=u(e[a]),s[i]-=4.76837158203125e-7*u(e[a]),s[i]<0&&(s[i]+=1);u=null;var c=function(){t=t+1&255,o=o+1&255;var n=s[r=r+1&255]-s[t];return n<0&&(n+=1),(n-=s[o])<0&&(n+=1),s[r]=n};return c.uint32=function(){return 4294967296*c()>>>0},c.fract53=c,c.version="LFib 0.9",c.args=e,c}(Array.prototype.slice.call(arguments))},c}
26
- /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),w=function(){if(p)return f;p=1;const n=O();return f=function(){return function(e){
24
+ var r=255,t=52,o=0,s=[],i=n();0===e.length&&(e=[+new Date]);for(var u=0;u<256;u++)s[u]=i(" "),s[u]-=4.76837158203125e-7*i(" "),s[u]<0&&(s[u]+=1);for(var a=0;a<e.length;a++)for(u=0;u<256;u++)s[u]-=i(e[a]),s[u]-=4.76837158203125e-7*i(e[a]),s[u]<0&&(s[u]+=1);i=null;var c=function(){t=t+1&255,o=o+1&255;var n=s[r=r+1&255]-s[t];return n<0&&(n+=1),(n-=s[o])<0&&(n+=1),s[r]=n};return c.uint32=function(){return 4294967296*c()>>>0},c.fract53=c,c.version="LFib 0.9",c.args=e,c}(Array.prototype.slice.call(arguments))},p}
25
+ /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),o=function(){if(d)return g;d=1;const n=_();return g=function(){return function(e){
27
26
  /*! George Marsaglia's LFIB4, */
28
27
  /*! http://groups.google.com/group/sci.crypt/msg/eb4ddde782b17051 */
29
- var r=0,t=58,o=119,s=178,u=[],i=n();0===e.length&&(e=[+new Date]);for(var a=0;a<256;a++)u[a]=i(" "),u[a]-=4.76837158203125e-7*i(" "),u[a]<0&&(u[a]+=1);for(var c=0;c<e.length;c++)for(a=0;a<256;a++)u[a]-=i(e[c]),u[a]-=4.76837158203125e-7*i(e[c]),u[a]<0&&(u[a]+=1);i=null;var l=function(){var n;return t=t+1&255,o=o+1&255,s=s+1&255,(n=u[r=r+1&255]-u[t])<0&&(n+=1),(n-=u[o])<0&&(n+=1),(n-=u[s])<0&&(n+=1),u[r]=n};return l.uint32=function(){return 4294967296*l()>>>0},l.fract53=l,l.version="LFIB4 0.9",l.args=e,l}(Array.prototype.slice.call(arguments))},f}
30
- /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),S=function(){if(g)return h;g=1;const n=O();return h=function(){return function(e){
28
+ var r=0,t=58,o=119,s=178,i=[],u=n();0===e.length&&(e=[+new Date]);for(var a=0;a<256;a++)i[a]=u(" "),i[a]-=4.76837158203125e-7*u(" "),i[a]<0&&(i[a]+=1);for(var c=0;c<e.length;c++)for(a=0;a<256;a++)i[a]-=u(e[c]),i[a]-=4.76837158203125e-7*u(e[c]),i[a]<0&&(i[a]+=1);u=null;var f=function(){var n;return t=t+1&255,o=o+1&255,s=s+1&255,(n=i[r=r+1&255]-i[t])<0&&(n+=1),(n-=i[o])<0&&(n+=1),(n-=i[s])<0&&(n+=1),i[r]=n};return f.uint32=function(){return 4294967296*f()>>>0},f.fract53=f,f.version="LFIB4 0.9",f.args=e,f}(Array.prototype.slice.call(arguments))},g}
29
+ /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),s=function(){if(y)return m;y=1;const n=_();return m=function(){return function(e){
31
30
  /*! Copyright (c) 1998, 2002 Pierre L'Ecuyer, DIRO, Université de Montréal. */
32
31
  /*! http://www.iro.umontreal.ca/~lecuyer/ */
33
- var r=4294967087,t=4294944443,o=12345,s=12345,u=123,i=12345,a=12345,c=123;0===e.length&&(e=[+new Date]);for(var l=n(),f=0;f<e.length;f++)o+=4294967296*l(e[f]),s+=4294967296*l(e[f]),u+=4294967296*l(e[f]),i+=4294967296*l(e[f]),a+=4294967296*l(e[f]),c+=4294967296*l(e[f]);o%=r,s%=r,u%=r,i%=t,a%=t,c%=t,l=null;var p=function(){var n,e,r=4294967087,t=4294944443;return n=1403580*s-810728*o,(n-=(n/r|0)*r)<0&&(n+=r),o=s,s=u,u=n,e=527612*c-1370589*i,(e-=(e/t|0)*t)<0&&(e+=t),i=a,a=c,c=e,n<=e?n-e+r:n-e},h=function(){return 2.3283064365386963e-10*p()};return h.uint32=p,h.fract53=function(){return h()+11102230246251565e-32*(2097151&p())},h.version="MRG32k3a 0.9",h.args=e,h}(Array.prototype.slice.call(arguments))},h}
34
- /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),E=function(){if(d)return m;d=1;const n=O();return m=function(){return function(e){
32
+ var r=4294967087,t=4294944443,o=12345,s=12345,i=123,u=12345,a=12345,c=123;0===e.length&&(e=[+new Date]);for(var f=n(),l=0;l<e.length;l++)o+=4294967296*f(e[l]),s+=4294967296*f(e[l]),i+=4294967296*f(e[l]),u+=4294967296*f(e[l]),a+=4294967296*f(e[l]),c+=4294967296*f(e[l]);o%=r,s%=r,i%=r,u%=t,a%=t,c%=t,f=null;var p=function(){var n,e,r=4294967087,t=4294944443;return n=1403580*s-810728*o,(n-=(n/r|0)*r)<0&&(n+=r),o=s,s=i,i=n,e=527612*c-1370589*u,(e-=(e/t|0)*t)<0&&(e+=t),u=a,a=c,c=e,n<=e?n-e+r:n-e},h=function(){return 2.3283064365386963e-10*p()};return h.uint32=p,h.fract53=function(){return h()+11102230246251565e-32*(2097151&p())},h.version="MRG32k3a 0.9",h.args=e,h}(Array.prototype.slice.call(arguments))},m}
33
+ /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),E=function(){if(b)return v;b=1;const n=_();return v=function(){return function(e){
35
34
  /*! George Marsaglia, 13 May 2003 */
36
35
  /*! http://groups.google.com/group/comp.lang.c/msg/e3c4ea1169e463ae */
37
- var r=123456789,t=362436069,o=521288629,s=88675123,u=886756453;0==e.length&&(e=[+new Date]);for(var i=n(),a=0;a<e.length;a++)r^=4294967296*i(e[a]),t^=4294967296*i(e[a]),o^=4294967296*i(e[a]),u^=4294967296*i(e[a]),s^=4294967296*i(e[a]);i=null;var c=function(){var n=(r^r>>>7)>>>0;return r=t,t=o,o=s,s=u,(t+t+1)*(u=u^u<<6^(n^n<<13)>>>0)>>>0},l=function(){return 2.3283064365386963e-10*c()};return l.uint32=c,l.fract53=function(){return l()+11102230246251565e-32*(2097151&c())},l.version="Xorshift03 0.9",l.args=e,l}(Array.prototype.slice.call(arguments))},m}();return y={Alea:n,KISS07:e,Kybos:r,LFib:b,LFIB4:w,MRG32k3a:S,Xorshift03:E}}function E(){if(w)return b;w=1;const n=S(),e=new Set(Object.keys(n));function r(){return"undefined"!=typeof window&&void 0!==window.document}const t=(()=>{let n=null;return function(){if(n)return n;if(r())n=window.crypto;else try{n=require("crypto")}catch(n){throw new Error("Crypto API is not available in this environment")}return n}})(),o=(()=>{let n=null;return function(){if(n)return n;if(r())n={};else try{n=require("os")}catch(n){throw new Error("OS API is not available in this environment")}return n}})();function s(o,s){const u=e.has(o);if(o&&"default"!==o&&!u&&console.warn(`PRNG ${o} is not supported`),o&&"default"!==o&&e.has(o)){return(s?new n[o](s):new n[o]).uint32()}const i=t();return r()?i.getRandomValues(new Uint32Array(1))[0]:parseInt(i.randomBytes(4).toString("hex"),16)}function u(n,e,r){const t=s(e,r),o=n[1]-n[0]+1;return t>=Math.floor(4294967295/o)*o?u(n):n[0]+t%o}function i(n,e){return Array(n).fill().map(e)}function a(n,e,r){return t=i(e-n,((e,r)=>n+r)),r?t.push(e)&&t:t;var t}return b={isBrowser:r,getRandomUint32:s,random:u,randomItem:function(n,e,r){return n[u([0,n.length-1],e,r)]},without:function(n,e){return n.filter((n=>!1===e.includes(n)))},includes:function(n,e){return n.some((n=>e.includes(n)))},includesAll:function(n,e){return!1===e.some((e=>!1===n.includes(e)))},excludes:function(n,e){return!1===n.some((n=>e.includes(n)))},lastIndex:function(n){return n.length-1},compact:function(n){return n.filter(Boolean)},keys:function(n){return Object.keys(n)},isInteger:function(n){return Number.isInteger(n)},isNumber:function(n){return"number"==typeof n&&!1===isNaN(n)},isString:function(n){return"string"==typeof n},isBoolean:function(n){return!0===n||!1===n},isArray:function(n){return n instanceof Array},isPlainObject:function(n){try{return!0===/^\{.*\}$/.test(JSON.stringify(n))&&n instanceof Map==!1}catch(n){return!1}},assign:function(){return Object.assign.apply(Object,arguments)},timesMap:i,numSequence:a,shuffle:function(n,e,r){return n.length<=1||i(n.length,((t,o)=>{const s=u([0,n.length-1],e,r);[n[o],n[s]]=[n[s],n[o]]})),n},getCharsByDiapason:function(n){return String.fromCodePoint.apply(String,a(n[0],n[1],!0))},isCharCode:function(n){return String.fromCharCode(n)!==String.fromCharCode(!1)},escapeRegExp:function(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")},getOS:o},b}var A,D,R,_,I,P,$,j,C={name:"passfather",version:"4.0.3",description:"Passfather is very fast and powerful utility with zero dependencies to generate strong password",author:"Evgeny Vyushin <e@vyushin.ru> (https://github.com/vyushin)",contributors:["Evgeny Vyushin <e@vyushin.ru> (https://github.com/vyushin)"],maintainers:["Evgeny Vyushin <e@vyushin.ru> (https://github.com/vyushin)"],repository:{type:"git",url:"https://github.com/vyushin/passfather"},scripts:{"install-all":"cd ./build && npm install && cd ../test && npm install",build:"cd ./build && npm run build",pretest:"npm run build",test:"cd ./test && npm test",prepublish:"npm test && npm pack --dry-run"},bugs:{url:"https://github.com/vyushin/passfather/issues"},homepage:"https://github.com/vyushin/passfather",main:"./dist/umd/passfather.min.js",types:"./dist/passfather.d.ts",module:"./dist/esm/passfather.min.js",exports:{".":{import:"./dist/esm/passfather.min.js",require:"./dist/umd/passfather.min.js",types:"./dist/passfather.d.ts"}},license:"MIT",keywords:["password","generator","passgen"],directories:{doc:"./README.md"},files:["dist","README.md","LICENSE"],devDependencies:{},funding:[{type:"buy_me_a_coffee",url:"https://buymeacoffee.com/vyushin"},{type:"Patreon",url:"https://www.patreon.com/vyushin"}]};function N(){if(D)return A;D=1;const{keys:n,isInteger:e,includesAll:r,isBoolean:t,isArray:o,isPlainObject:s,assign:u,without:i,isCharCode:a,isString:c,isNumber:l}=E(),f=S(),{name:p}=C,h=p,g={numbers:!0,uppercase:!0,lowercase:!0,symbols:!0,length:12,ranges:null,prng:"default",seed:null},m={numbers:n=>t(n),uppercase:n=>t(n),lowercase:n=>t(n),symbols:n=>t(n),length:n=>e(n)&&n>0,ranges:n=>o(n)&&n.length>0&&n.every((n=>{return o(e=n)&&e.length>0&&e.every((n=>o(n)&&a(n[0])&&a(n[1])));var e})),prng:e=>["default"].concat(n(f)).includes(e),seed:n=>o(n)&&n.length>0&&!1===n.some((n=>!c(n)&&!l(n))),completely(e){return[()=>!1===(void 0===e||s(e)&&0===n(e).length),()=>s(e),()=>r(n(g),n(e)),()=>!1===e.hasOwnProperty("ranges")||this.ranges(e.ranges),()=>!1===e.hasOwnProperty("numbers")||this.numbers(e.numbers),()=>!1===e.hasOwnProperty("uppercase")||this.uppercase(e.uppercase),()=>!1===e.hasOwnProperty("lowercase")||this.lowercase(e.lowercase),()=>!1===e.hasOwnProperty("symbols")||this.symbols(e.symbols),()=>!1===e.hasOwnProperty("length")||this.length(e.length),()=>!1===e.hasOwnProperty("prng")||this.prng(e.prng),()=>!1===e.hasOwnProperty("seed")||this.seed(e.seed),()=>{const r=u({},g,e);return i(n(r),["length"]).some((n=>"ranges"===n?o(r[n]):!0===r[n]))},()=>{const n=u({},g,e);return!1===(e.hasOwnProperty("seed")&&"default"===n.prng)}].findIndex((n=>!1===n()))}},d=[];return d[0]="No errors",d[1]=`[${h}]: Option must be an object`,d[2]=`[${h}]: Options must contains only one (or several) of [${n(g).join(", ")}]`,d[3]=`[${h}]: Option "ranges" must be array with array of UTF-8 char code range. For example: [ [[48, 57 ]], [[33, 46], [58, 64], [94, 96], [123, 126]] ] `,d[4]=`[${h}]: Option "numbers" must be boolean`,d[5]=`[${h}]: Option "uppercase" must be boolean`,d[6]=`[${h}]: Option "lowercase" must be boolean`,d[7]=`[${h}]: Option "symbols" must be boolean`,d[8]=`[${h}]: Option "length" must be integer greater than 0`,d[9]=`[${h}]: Option "prng" must be one of [${["default"].concat(n(f)).join(", ")}]`,d[10]=`[${h}]: Option "seed" must be array of strings or numbers`,d[11]=`[${h}]: At less one of options [${i(n(g),["length","prng","seed"]).join(", ")}] mustn't be false`,d[12]=`[${h}]: Option "seed" cannot be used when "prng" option is default. Set "prng" option to one of [${n(f).join(", ")}]`,A={OPTION_VALIDATORS:m,ERROR_MESSAGES:d,MODULE_NAME:h,DEFAULT_OPTIONS:g}}function T(){if(P)return I;P=1;const{compact:n,assign:e,timesMap:r,isBrowser:t,...o}=E(),{OPTION_VALIDATORS:s,ERROR_MESSAGES:u,DEFAULT_OPTIONS:i}=N(),{DEFAULT_BROWSER_SEED:a,DEFAULT_NODE_SEED:c}=function(){if(_)return R;_=1;const{compact:n,isBrowser:e,getOS:r}=E(),t=r(),o=e()?null:n([].concat(Date.now(),process.memoryUsage?[process.memoryUsage().heapTotal,process.memoryUsage().heapUsed]:null,process.env?[process.arch,process.platform,t.cpus().length,t.totalmem()]:null)),s=e()?n([].concat(Date.now(),performance&&performance.memory?[performance.memory.totalJSHeapSize,performance.memory.usedJSHeapSize]:null,navigator?[navigator.userAgent,navigator.appVersion,navigator.hardwareConcurrency,navigator.deviceMemory]:null)):null;return R={DEFAULT_NODE_SEED:o,DEFAULT_BROWSER_SEED:s}}(),l=o.random,f=o.randomItem,p=o.shuffle,h=[[[48,57]],[[65,90]],[[97,122]],[[33,46],[58,64],[94,96],[123,126]]];function g({seed:n}){const e=Boolean(n);return t()?e?n:a:e?n:c}function m(t){const o=s.completely(t);if(o>0)throw u[o];const a=e({},i,t,m.prototype._dev.options),c=n=>{const e=p(g(a));return p(n,a.prng,e)},d=n=>{const e=p(g(a));return l(n,a.prng,p(e))},y=n=>{const e=p(g(a));return f(n,a.prng,p(e))},v=function(e){return n([].concat(e.numbers&&[h[0]],e.uppercase&&[h[1]],e.lowercase&&[h[2]],e.symbols&&[h[3]],e.ranges&&e.ranges))}(a),b=r(v.length,((n,e)=>String.fromCharCode(d(y(v[e])))));return b.length>=a.length?c(b).slice(0,a.length).join(""):c(r(a.length-b.length,(()=>String.fromCharCode(d(y(y(v)))))).concat(b)).join("")}return m.prototype._dev={options:{}},I={passfather:m,DEFAULT_OPTIONS:i,CHAR_RANGES:h,ERROR_MESSAGES:u}}return n(function(){if(j)return $;j=1;const{passfather:n}=T();return $=n}())}));
36
+ var r=123456789,t=362436069,o=521288629,s=88675123,i=886756453;0==e.length&&(e=[+new Date]);for(var u=n(),a=0;a<e.length;a++)r^=4294967296*u(e[a]),t^=4294967296*u(e[a]),o^=4294967296*u(e[a]),i^=4294967296*u(e[a]),s^=4294967296*u(e[a]);u=null;var c=function(){var n=(r^r>>>7)>>>0;return r=t,t=o,o=s,s=i,(t+t+1)*(i=i^i<<6^(n^n<<13)>>>0)>>>0},f=function(){return 2.3283064365386963e-10*c()};return f.uint32=c,f.fract53=function(){return f()+11102230246251565e-32*(2097151&c())},f.version="Xorshift03 0.9",f.args=e,f}(Array.prototype.slice.call(arguments))},v}();return w={Alea:n,KISS07:e,Kybos:r,LFib:t,LFIB4:o,MRG32k3a:s,Xorshift03:E}}function I(){if(S)return E;S=1;const n=T(),e=new Set(Object.keys(n));function r(){return"undefined"!=typeof window&&void 0!==window.document}function t(t,o){const s=e.has(t);if(t&&"default"!==t&&!s&&console.warn(`PRNG ${t} is not supported`),t&&"default"!==t&&e.has(t)){return(o?new n[t](o):new n[t]).uint32()}const i=function(){if(r()&&void 0!==window.crypto)return window.crypto;if(globalThis.passfather?.externals?.crypto)return globalThis.passfather.externals.crypto;throw new Error("Crypto API is not available in this environment")}();return r()?i.getRandomValues(new Uint32Array(1))[0]:parseInt(i.randomBytes(4).toString("hex"),16)}function o(n,e,r){const s=t(e,r),i=n[1]-n[0]+1;return s>=Math.floor(4294967295/i)*i?o(n):n[0]+s%i}function s(n,e){return Array(n).fill().map(e)}function i(n,e,r){return t=s(e-n,((e,r)=>n+r)),r?t.push(e)&&t:t;var t}return E={isBrowser:r,getRandomUint32:t,random:o,randomItem:function(n,e,r){return n[o([0,n.length-1],e,r)]},without:function(n,e){return n.filter((n=>!1===e.includes(n)))},includes:function(n,e){return n.some((n=>e.includes(n)))},includesAll:function(n,e){return!1===e.some((e=>!1===n.includes(e)))},excludes:function(n,e){return!1===n.some((n=>e.includes(n)))},lastIndex:function(n){return n.length-1},compact:function(n){return n.filter(Boolean)},keys:function(n){return Object.keys(n)},isInteger:function(n){return Number.isInteger(n)},isNumber:function(n){return"number"==typeof n&&!1===isNaN(n)},isString:function(n){return"string"==typeof n},isBoolean:function(n){return!0===n||!1===n},isArray:function(n){return n instanceof Array},isPlainObject:function(n){try{return!0===/^\{.*\}$/.test(JSON.stringify(n))&&n instanceof Map==!1}catch(n){return!1}},assign:function(){return Object.assign.apply(Object,arguments)},timesMap:s,numSequence:i,shuffle:function(n,e,r){return n.length<=1||s(n.length,((t,s)=>{const i=o([0,n.length-1],e,r);[n[s],n[i]]=[n[i],n[s]]})),n},getCharsByDiapason:function(n){return String.fromCodePoint.apply(String,i(n[0],n[1],!0))},isCharCode:function(n){return String.fromCharCode(n)!==String.fromCharCode(!1)},escapeRegExp:function(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}},E}var P,j,$,C,N,M,L,U,x={name:"passfather",version:"4.2.0",description:"Passfather is very fast and powerful utility with zero dependencies to generate strong password",author:"Evgeny Vyushin <e@vyushin.ru> (https://github.com/vyushin)",contributors:["Evgeny Vyushin <e@vyushin.ru> (https://github.com/vyushin)"],maintainers:["Evgeny Vyushin <e@vyushin.ru> (https://github.com/vyushin)"],repository:{type:"git",url:"https://github.com/vyushin/passfather"},scripts:{"install-all":"cd ./build && npm install && cd ../test && npm install",build:"cd ./build && npm run build",pretest:"npm run build",test:"cd ./test && npm test",prepublish:"npm test && npm pack --dry-run"},bugs:{url:"https://github.com/vyushin/passfather/issues"},homepage:"https://github.com/vyushin/passfather",main:"./dist/umd/passfather.min.js",types:"./dist/passfather.d.ts",module:"./dist/esm/passfather.min.mjs",exports:{".":{import:"./dist/esm/passfather.min.mjs",require:"./dist/umd/passfather.min.js",types:"./dist/passfather.d.ts"}},license:"MIT",keywords:["password","generator","passgen"],directories:{doc:"./README.md"},files:["dist","README.md","LICENSE"],devDependencies:{},funding:[{type:"buy_me_a_coffee",url:"https://buymeacoffee.com/vyushin"},{type:"Patreon",url:"https://www.patreon.com/vyushin"}]};function B(){if(j)return P;j=1;const{keys:n,isInteger:e,includesAll:r,isBoolean:t,isArray:o,isPlainObject:s,assign:i,without:u,isCharCode:a,isString:c,isNumber:f}=I(),l=T(),{name:p}=x,h=p,g={numbers:!0,uppercase:!0,lowercase:!0,symbols:!0,length:12,ranges:null,prng:"default",seed:null},d={numbers:n=>t(n),uppercase:n=>t(n),lowercase:n=>t(n),symbols:n=>t(n),length:n=>e(n)&&n>0,ranges:n=>o(n)&&n.length>0&&n.every((n=>{return o(e=n)&&e.length>0&&e.every((n=>o(n)&&a(n[0])&&a(n[1])));var e})),prng:e=>["default"].concat(n(l)).includes(e),seed:n=>o(n)&&n.length>0&&!1===n.some((n=>!c(n)&&!f(n))),completely(e){return[()=>!1===(void 0===e||s(e)&&0===n(e).length),()=>s(e),()=>r(n(g),n(e)),()=>!1===e.hasOwnProperty("ranges")||this.ranges(e.ranges),()=>!1===e.hasOwnProperty("numbers")||this.numbers(e.numbers),()=>!1===e.hasOwnProperty("uppercase")||this.uppercase(e.uppercase),()=>!1===e.hasOwnProperty("lowercase")||this.lowercase(e.lowercase),()=>!1===e.hasOwnProperty("symbols")||this.symbols(e.symbols),()=>!1===e.hasOwnProperty("length")||this.length(e.length),()=>!1===e.hasOwnProperty("prng")||this.prng(e.prng),()=>!1===e.hasOwnProperty("seed")||this.seed(e.seed),()=>{const r=i({},g,e);return u(n(r),["length"]).some((n=>"ranges"===n?o(r[n]):!0===r[n]))},()=>{const n=i({},g,e);return!1===(e.hasOwnProperty("seed")&&"default"===n.prng)}].findIndex((n=>!1===n()))}},m=[];return m[0]="No errors",m[1]=`[${h}]: Option must be an object`,m[2]=`[${h}]: Options must contains only one (or several) of [${n(g).join(", ")}]`,m[3]=`[${h}]: Option "ranges" must be array with array of UTF-8 char code range. For example: [ [[48, 57 ]], [[33, 46], [58, 64], [94, 96], [123, 126]] ] `,m[4]=`[${h}]: Option "numbers" must be boolean`,m[5]=`[${h}]: Option "uppercase" must be boolean`,m[6]=`[${h}]: Option "lowercase" must be boolean`,m[7]=`[${h}]: Option "symbols" must be boolean`,m[8]=`[${h}]: Option "length" must be integer greater than 0`,m[9]=`[${h}]: Option "prng" must be one of [${["default"].concat(n(l)).join(", ")}]`,m[10]=`[${h}]: Option "seed" must be array of strings or numbers`,m[11]=`[${h}]: At less one of options [${u(n(g),["length","prng","seed"]).join(", ")}] mustn't be false`,m[12]=`[${h}]: Option "seed" cannot be used when "prng" option is default. Set "prng" option to one of [${n(l).join(", ")}]`,P={OPTION_VALIDATORS:d,ERROR_MESSAGES:m,MODULE_NAME:h,DEFAULT_OPTIONS:g}}function F(){if(M)return N;M=1;const{compact:n,assign:e,timesMap:r,isBrowser:t,...o}=I(),{OPTION_VALIDATORS:s,ERROR_MESSAGES:i,DEFAULT_OPTIONS:u}=B(),{DEFAULT_BROWSER_SEED:a,DEFAULT_NODE_SEED:c}=function(){if(C)return $;C=1;const{compact:n,isBrowser:e}=I(),r=e()?null:n([].concat(Date.now(),process.memoryUsage?[process.memoryUsage().heapTotal,process.memoryUsage().heapUsed]:null,process.env?[process.arch,process.platform]:null)),t=e()?n([].concat(Date.now(),performance&&performance.memory?[performance.memory.totalJSHeapSize,performance.memory.usedJSHeapSize]:null,navigator?[navigator.userAgent,navigator.appVersion,navigator.hardwareConcurrency,navigator.deviceMemory]:null)):null;return $={DEFAULT_NODE_SEED:r,DEFAULT_BROWSER_SEED:t}}(),f=o.random,l=o.randomItem,p=o.shuffle,h=[[[48,57]],[[65,90]],[[97,122]],[[33,46],[58,64],[94,96],[123,126]]];function g({seed:n}){const e=Boolean(n);return t()?e?n:a:e?n:c}function d(t){const o=s.completely(t);if(o>0)throw i[o];const a=e({},u,t,d.prototype._dev.options),c=n=>{const e=p(g(a));return p(n,a.prng,e)},m=n=>{const e=p(g(a));return f(n,a.prng,p(e))},y=n=>{const e=p(g(a));return l(n,a.prng,p(e))},v=function(e){return n([].concat(e.numbers&&[h[0]],e.uppercase&&[h[1]],e.lowercase&&[h[2]],e.symbols&&[h[3]],e.ranges&&e.ranges))}(a),b=r(v.length,((n,e)=>String.fromCharCode(m(y(v[e])))));return b.length>=a.length?c(b).slice(0,a.length).join(""):c(r(a.length-b.length,(()=>String.fromCharCode(m(y(y(v)))))).concat(b)).join("")}return d.prototype._dev={options:{}},N={passfather:d,DEFAULT_OPTIONS:u,CHAR_RANGES:h,ERROR_MESSAGES:i}}return R(function(){if(U)return L;U=1;const{initExternals:n}=t?r:(t=1,r={initExternals:function(){const n=A.default;D.passfather=D.passfather||{},D.passfather.externals={crypto:n}}}),{passfather:e}=F();return n(),L=e}())}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "passfather",
3
- "version": "4.0.3",
3
+ "version": "4.2.0",
4
4
  "description": "Passfather is very fast and powerful utility with zero dependencies to generate strong password",
5
5
  "author": "Evgeny Vyushin <e@vyushin.ru> (https://github.com/vyushin)",
6
6
  "contributors": [
@@ -11,7 +11,7 @@
11
11
  ],
12
12
  "repository": {
13
13
  "type": "git",
14
- "url": "https://github.com/vyushin/passfather"
14
+ "url": "git+https://github.com/vyushin/passfather.git"
15
15
  },
16
16
  "scripts": {
17
17
  "install-all": "cd ./build && npm install && cd ../test && npm install",
@@ -26,10 +26,10 @@
26
26
  "homepage": "https://github.com/vyushin/passfather",
27
27
  "main": "./dist/umd/passfather.min.js",
28
28
  "types": "./dist/passfather.d.ts",
29
- "module": "./dist/esm/passfather.min.js",
29
+ "module": "./dist/esm/passfather.min.mjs",
30
30
  "exports": {
31
31
  ".": {
32
- "import": "./dist/esm/passfather.min.js",
32
+ "import": "./dist/esm/passfather.min.mjs",
33
33
  "require": "./dist/umd/passfather.min.js",
34
34
  "types": "./dist/passfather.d.ts"
35
35
  }
@@ -59,4 +59,4 @@
59
59
  "url": "https://www.patreon.com/vyushin"
60
60
  }
61
61
  ]
62
- }
62
+ }
@@ -1,37 +0,0 @@
1
- /*
2
- @version 4.0.3
3
- @description Passfather is very fast and powerful utility with zero dependencies to generate strong password
4
- @copyright Copyright (c) 2019-present, Evgeny Vyushin <e@vyushin.ru> (https://github.com/vyushin)
5
- @license
6
- This source code is licensed under the MIT license found in the
7
- LICENSE file on https://github.com/vyushin/passfather/blob/main/LICENSE
8
- */
9
- /*! From http://baagoe.com/en/RandomMusings/javascript/ */
10
- var n,e,r,t,o,s,u,i,a,c,l,f,p,h,g,m,y,d,v,b;function w(){if(e)return n;return e=1,n=
11
- /*! Johannes Baagøe <baagoe@baagoe.com>, 2010 */
12
- function(){var n=4022871197,e=function(e){e=e.toString();for(var r=0;r<e.length;r++){var t=.02519603282416938*(n+=e.charCodeAt(r));t-=n=t>>>0,n=(t*=n)>>>0,n+=4294967296*(t-=n)}return 2.3283064365386963e-10*(n>>>0)};return e.version="Mash 0.9",e}}
13
- /*! From http://baagoe.com/en/RandomMusings/javascript/ */function O(){if(d)return y;d=1;const n=function(){if(t)return r;t=1;const n=w();return r=function(){return function(e){
14
- /*! Johannes Baagøe <baagoe@baagoe.com>, 2010 */
15
- var r=0,t=0,o=0,s=1;0==e.length&&(e=[+new Date]);var u=n();r=u(" "),t=u(" "),o=u(" ");for(var i=0;i<e.length;i++)(r-=u(e[i]))<0&&(r+=1),(t-=u(e[i]))<0&&(t+=1),(o-=u(e[i]))<0&&(o+=1);u=null;var a=function(){var n=2091639*r+2.3283064365386963e-10*s;return r=t,t=o,o=n-(s=0|n)};return a.uint32=function(){return 4294967296*a()},a.fract53=function(){return a()+11102230246251565e-32*(2097152*a()|0)},a.version="Alea 0.9",a.args=e,a}(Array.prototype.slice.call(arguments))},r}
16
- /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),e=function(){if(s)return o;s=1;const n=w();return o=function(){return function(e){
17
- /*! George Marsaglia, 2007-06-23 */
18
- /*! http://groups.google.com/group/comp.lang.fortran/msg/6edb8ad6ec5421a5 */
19
- var r=123456789,t=362436069,o=21288629,s=14921776,u=0;0==e.length&&(e=[+new Date]);for(var i=n(),a=0;a<e.length;a++)r^=4294967296*i(e[a]),t^=4294967296*i(e[a]),o^=4294967296*i(e[a]),s^=4294967296*i(e[a]);0===t&&(t=1),u^=o>>>31,(o&=2147483647)%7559==0&&o++,(s&=2147483647)%7559==0&&s++,i=null;var c=function(){var n;return r+=545925293,t^=t<<13,t^=t>>>17,n=o+s+u,o=s,u=n>>>31,(r>>>=0)+(t^=t<<5)+(s=2147483647&n)>>>0},l=function(){return 2.3283064365386963e-10*c()};return l.uint32=c,l.fract53=function(){return l()+11102230246251565e-32*(2097151&c())},l.args=e,l.version="KISS07 0.9",l}(Array.prototype.slice.call(arguments))},o}
20
- /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),v=function(){if(i)return u;i=1;const n=w();return u=function(){return function(e){for(
21
- /*! Johannes Baagøe <baagoe@baagoe.com>, 2010 */
22
- var r=0,t=0,o=0,s=1,u=[],i=0,a=n(),c=(r=a(" "),t=a(" "),o=a(" "),0);c<8;c++)u[c]=a(" ");0==e.length&&(e=[+new Date]);for(var l=0;l<e.length;l++)for((r-=a(e[l]))<0&&(r+=1),(t-=a(e[l]))<0&&(t+=1),(o-=a(e[l]))<0&&(o+=1),c=0;c<8;c++)u[c]-=a(e[l]),u[c]<0&&(u[c]+=1);var f=function(){i=8*u[i]|0;var n=u[i],e=2091639*r+2.3283064365386963e-10*s;return r=t,t=o,o=e-(s=0|e),u[i]-=o,u[i]<0&&(u[i]+=1),n};return f.uint32=function(){return 4294967296*f()},f.fract53=function(){return f()+11102230246251565e-32*(2097152*f()|0)},f.addNoise=function(){for(var n=arguments.length-1;n>=0;n--)for(c=0;c<8;c++)u[c]-=a(arguments[n]),u[c]<0&&(u[c]+=1)},f.version="Kybos 0.9",f.args=e,f}(Array.prototype.slice.call(arguments))},u}
23
- /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),b=function(){if(c)return a;c=1;const n=w();return a=function(){return function(e){
24
- /*! Johannes Baagøe <baagoe@baagoe.com>, 2010 */
25
- var r=255,t=52,o=0,s=[],u=n();0===e.length&&(e=[+new Date]);for(var i=0;i<256;i++)s[i]=u(" "),s[i]-=4.76837158203125e-7*u(" "),s[i]<0&&(s[i]+=1);for(var a=0;a<e.length;a++)for(i=0;i<256;i++)s[i]-=u(e[a]),s[i]-=4.76837158203125e-7*u(e[a]),s[i]<0&&(s[i]+=1);u=null;var c=function(){t=t+1&255,o=o+1&255;var n=s[r=r+1&255]-s[t];return n<0&&(n+=1),(n-=s[o])<0&&(n+=1),s[r]=n};return c.uint32=function(){return 4294967296*c()>>>0},c.fract53=c,c.version="LFib 0.9",c.args=e,c}(Array.prototype.slice.call(arguments))},a}
26
- /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),O=function(){if(f)return l;f=1;const n=w();return l=function(){return function(e){
27
- /*! George Marsaglia's LFIB4, */
28
- /*! http://groups.google.com/group/sci.crypt/msg/eb4ddde782b17051 */
29
- var r=0,t=58,o=119,s=178,u=[],i=n();0===e.length&&(e=[+new Date]);for(var a=0;a<256;a++)u[a]=i(" "),u[a]-=4.76837158203125e-7*i(" "),u[a]<0&&(u[a]+=1);for(var c=0;c<e.length;c++)for(a=0;a<256;a++)u[a]-=i(e[c]),u[a]-=4.76837158203125e-7*i(e[c]),u[a]<0&&(u[a]+=1);i=null;var l=function(){var n;return t=t+1&255,o=o+1&255,s=s+1&255,(n=u[r=r+1&255]-u[t])<0&&(n+=1),(n-=u[o])<0&&(n+=1),(n-=u[s])<0&&(n+=1),u[r]=n};return l.uint32=function(){return 4294967296*l()>>>0},l.fract53=l,l.version="LFIB4 0.9",l.args=e,l}(Array.prototype.slice.call(arguments))},l}
30
- /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),S=function(){if(h)return p;h=1;const n=w();return p=function(){return function(e){
31
- /*! Copyright (c) 1998, 2002 Pierre L'Ecuyer, DIRO, Université de Montréal. */
32
- /*! http://www.iro.umontreal.ca/~lecuyer/ */
33
- var r=4294967087,t=4294944443,o=12345,s=12345,u=123,i=12345,a=12345,c=123;0===e.length&&(e=[+new Date]);for(var l=n(),f=0;f<e.length;f++)o+=4294967296*l(e[f]),s+=4294967296*l(e[f]),u+=4294967296*l(e[f]),i+=4294967296*l(e[f]),a+=4294967296*l(e[f]),c+=4294967296*l(e[f]);o%=r,s%=r,u%=r,i%=t,a%=t,c%=t,l=null;var p=function(){var n,e,r=4294967087,t=4294944443;return n=1403580*s-810728*o,(n-=(n/r|0)*r)<0&&(n+=r),o=s,s=u,u=n,e=527612*c-1370589*i,(e-=(e/t|0)*t)<0&&(e+=t),i=a,a=c,c=e,n<=e?n-e+r:n-e},h=function(){return 2.3283064365386963e-10*p()};return h.uint32=p,h.fract53=function(){return h()+11102230246251565e-32*(2097151&p())},h.version="MRG32k3a 0.9",h.args=e,h}(Array.prototype.slice.call(arguments))},p}
34
- /*! From http://baagoe.com/en/RandomMusings/javascript/ */(),E=function(){if(m)return g;m=1;const n=w();return g=function(){return function(e){
35
- /*! George Marsaglia, 13 May 2003 */
36
- /*! http://groups.google.com/group/comp.lang.c/msg/e3c4ea1169e463ae */
37
- var r=123456789,t=362436069,o=521288629,s=88675123,u=886756453;0==e.length&&(e=[+new Date]);for(var i=n(),a=0;a<e.length;a++)r^=4294967296*i(e[a]),t^=4294967296*i(e[a]),o^=4294967296*i(e[a]),u^=4294967296*i(e[a]),s^=4294967296*i(e[a]);i=null;var c=function(){var n=(r^r>>>7)>>>0;return r=t,t=o,o=s,s=u,(t+t+1)*(u=u^u<<6^(n^n<<13)>>>0)>>>0},l=function(){return 2.3283064365386963e-10*c()};return l.uint32=c,l.fract53=function(){return l()+11102230246251565e-32*(2097151&c())},l.version="Xorshift03 0.9",l.args=e,l}(Array.prototype.slice.call(arguments))},g}();return y={Alea:n,KISS07:e,Kybos:v,LFib:b,LFIB4:O,MRG32k3a:S,Xorshift03:E}}function S(){if(b)return v;b=1;const n=O(),e=new Set(Object.keys(n));function r(){return"undefined"!=typeof window&&void 0!==window.document}const t=(()=>{let n=null;return function(){if(n)return n;if(r())n=window.crypto;else try{n=require("crypto")}catch(n){throw new Error("Crypto API is not available in this environment")}return n}})(),o=(()=>{let n=null;return function(){if(n)return n;if(r())n={};else try{n=require("os")}catch(n){throw new Error("OS API is not available in this environment")}return n}})();function s(o,s){const u=e.has(o);if(o&&"default"!==o&&!u&&console.warn(`PRNG ${o} is not supported`),o&&"default"!==o&&e.has(o)){return(s?new n[o](s):new n[o]).uint32()}const i=t();return r()?i.getRandomValues(new Uint32Array(1))[0]:parseInt(i.randomBytes(4).toString("hex"),16)}function u(n,e,r){const t=s(e,r),o=n[1]-n[0]+1;return t>=Math.floor(4294967295/o)*o?u(n):n[0]+t%o}function i(n,e){return Array(n).fill().map(e)}function a(n,e,r){return t=i(e-n,((e,r)=>n+r)),r?t.push(e)&&t:t;var t}return v={isBrowser:r,getRandomUint32:s,random:u,randomItem:function(n,e,r){return n[u([0,n.length-1],e,r)]},without:function(n,e){return n.filter((n=>!1===e.includes(n)))},includes:function(n,e){return n.some((n=>e.includes(n)))},includesAll:function(n,e){return!1===e.some((e=>!1===n.includes(e)))},excludes:function(n,e){return!1===n.some((n=>e.includes(n)))},lastIndex:function(n){return n.length-1},compact:function(n){return n.filter(Boolean)},keys:function(n){return Object.keys(n)},isInteger:function(n){return Number.isInteger(n)},isNumber:function(n){return"number"==typeof n&&!1===isNaN(n)},isString:function(n){return"string"==typeof n},isBoolean:function(n){return!0===n||!1===n},isArray:function(n){return n instanceof Array},isPlainObject:function(n){try{return!0===/^\{.*\}$/.test(JSON.stringify(n))&&n instanceof Map==!1}catch(n){return!1}},assign:function(){return Object.assign.apply(Object,arguments)},timesMap:i,numSequence:a,shuffle:function(n,e,r){return n.length<=1||i(n.length,((t,o)=>{const s=u([0,n.length-1],e,r);[n[o],n[s]]=[n[s],n[o]]})),n},getCharsByDiapason:function(n){return String.fromCodePoint.apply(String,a(n[0],n[1],!0))},isCharCode:function(n){return String.fromCharCode(n)!==String.fromCharCode(!1)},escapeRegExp:function(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")},getOS:o},v}var E,A,D,R,I,_,P={name:"passfather",version:"4.0.3",description:"Passfather is very fast and powerful utility with zero dependencies to generate strong password",author:"Evgeny Vyushin <e@vyushin.ru> (https://github.com/vyushin)",contributors:["Evgeny Vyushin <e@vyushin.ru> (https://github.com/vyushin)"],maintainers:["Evgeny Vyushin <e@vyushin.ru> (https://github.com/vyushin)"],repository:{type:"git",url:"https://github.com/vyushin/passfather"},scripts:{"install-all":"cd ./build && npm install && cd ../test && npm install",build:"cd ./build && npm run build",pretest:"npm run build",test:"cd ./test && npm test",prepublish:"npm test && npm pack --dry-run"},bugs:{url:"https://github.com/vyushin/passfather/issues"},homepage:"https://github.com/vyushin/passfather",main:"./dist/umd/passfather.min.js",types:"./dist/passfather.d.ts",module:"./dist/esm/passfather.min.js",exports:{".":{import:"./dist/esm/passfather.min.js",require:"./dist/umd/passfather.min.js",types:"./dist/passfather.d.ts"}},license:"MIT",keywords:["password","generator","passgen"],directories:{doc:"./README.md"},files:["dist","README.md","LICENSE"],devDependencies:{},funding:[{type:"buy_me_a_coffee",url:"https://buymeacoffee.com/vyushin"},{type:"Patreon",url:"https://www.patreon.com/vyushin"}]};function $(){if(A)return E;A=1;const{keys:n,isInteger:e,includesAll:r,isBoolean:t,isArray:o,isPlainObject:s,assign:u,without:i,isCharCode:a,isString:c,isNumber:l}=S(),f=O(),{name:p}=P,h=p,g={numbers:!0,uppercase:!0,lowercase:!0,symbols:!0,length:12,ranges:null,prng:"default",seed:null},m={numbers:n=>t(n),uppercase:n=>t(n),lowercase:n=>t(n),symbols:n=>t(n),length:n=>e(n)&&n>0,ranges:n=>o(n)&&n.length>0&&n.every((n=>{return o(e=n)&&e.length>0&&e.every((n=>o(n)&&a(n[0])&&a(n[1])));var e})),prng:e=>["default"].concat(n(f)).includes(e),seed:n=>o(n)&&n.length>0&&!1===n.some((n=>!c(n)&&!l(n))),completely(e){return[()=>!1===(void 0===e||s(e)&&0===n(e).length),()=>s(e),()=>r(n(g),n(e)),()=>!1===e.hasOwnProperty("ranges")||this.ranges(e.ranges),()=>!1===e.hasOwnProperty("numbers")||this.numbers(e.numbers),()=>!1===e.hasOwnProperty("uppercase")||this.uppercase(e.uppercase),()=>!1===e.hasOwnProperty("lowercase")||this.lowercase(e.lowercase),()=>!1===e.hasOwnProperty("symbols")||this.symbols(e.symbols),()=>!1===e.hasOwnProperty("length")||this.length(e.length),()=>!1===e.hasOwnProperty("prng")||this.prng(e.prng),()=>!1===e.hasOwnProperty("seed")||this.seed(e.seed),()=>{const r=u({},g,e);return i(n(r),["length"]).some((n=>"ranges"===n?o(r[n]):!0===r[n]))},()=>{const n=u({},g,e);return!1===(e.hasOwnProperty("seed")&&"default"===n.prng)}].findIndex((n=>!1===n()))}},y=[];return y[0]="No errors",y[1]=`[${h}]: Option must be an object`,y[2]=`[${h}]: Options must contains only one (or several) of [${n(g).join(", ")}]`,y[3]=`[${h}]: Option "ranges" must be array with array of UTF-8 char code range. For example: [ [[48, 57 ]], [[33, 46], [58, 64], [94, 96], [123, 126]] ] `,y[4]=`[${h}]: Option "numbers" must be boolean`,y[5]=`[${h}]: Option "uppercase" must be boolean`,y[6]=`[${h}]: Option "lowercase" must be boolean`,y[7]=`[${h}]: Option "symbols" must be boolean`,y[8]=`[${h}]: Option "length" must be integer greater than 0`,y[9]=`[${h}]: Option "prng" must be one of [${["default"].concat(n(f)).join(", ")}]`,y[10]=`[${h}]: Option "seed" must be array of strings or numbers`,y[11]=`[${h}]: At less one of options [${i(n(g),["length","prng","seed"]).join(", ")}] mustn't be false`,y[12]=`[${h}]: Option "seed" cannot be used when "prng" option is default. Set "prng" option to one of [${n(f).join(", ")}]`,E={OPTION_VALIDATORS:m,ERROR_MESSAGES:y,MODULE_NAME:h,DEFAULT_OPTIONS:g}}var C=function(){if(_)return I;_=1;const{compact:n,assign:e,timesMap:r,isBrowser:t,...o}=S(),{OPTION_VALIDATORS:s,ERROR_MESSAGES:u,DEFAULT_OPTIONS:i}=$(),{DEFAULT_BROWSER_SEED:a,DEFAULT_NODE_SEED:c}=function(){if(R)return D;R=1;const{compact:n,isBrowser:e,getOS:r}=S(),t=r(),o=e()?null:n([].concat(Date.now(),process.memoryUsage?[process.memoryUsage().heapTotal,process.memoryUsage().heapUsed]:null,process.env?[process.arch,process.platform,t.cpus().length,t.totalmem()]:null)),s=e()?n([].concat(Date.now(),performance&&performance.memory?[performance.memory.totalJSHeapSize,performance.memory.usedJSHeapSize]:null,navigator?[navigator.userAgent,navigator.appVersion,navigator.hardwareConcurrency,navigator.deviceMemory]:null)):null;return D={DEFAULT_NODE_SEED:o,DEFAULT_BROWSER_SEED:s}}(),l=o.random,f=o.randomItem,p=o.shuffle,h=[[[48,57]],[[65,90]],[[97,122]],[[33,46],[58,64],[94,96],[123,126]]];function g({seed:n}){const e=Boolean(n);return t()?e?n:a:e?n:c}function m(t){const o=s.completely(t);if(o>0)throw u[o];const a=e({},i,t,m.prototype._dev.options),c=n=>{const e=p(g(a));return p(n,a.prng,e)},y=n=>{const e=p(g(a));return l(n,a.prng,p(e))},d=n=>{const e=p(g(a));return f(n,a.prng,p(e))},v=function(e){return n([].concat(e.numbers&&[h[0]],e.uppercase&&[h[1]],e.lowercase&&[h[2]],e.symbols&&[h[3]],e.ranges&&e.ranges))}(a),b=r(v.length,((n,e)=>String.fromCharCode(y(d(v[e])))));return b.length>=a.length?c(b).slice(0,a.length).join(""):c(r(a.length-b.length,(()=>String.fromCharCode(y(d(d(v)))))).concat(b)).join("")}return m.prototype._dev={options:{}},I={passfather:m,DEFAULT_OPTIONS:i,CHAR_RANGES:h,ERROR_MESSAGES:u}}(),N=C.passfather;export{N as default};