passfather 3.0.6 → 4.0.1

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
@@ -40,7 +40,7 @@ By default, it uses [getRandomValues](https://developer.mozilla.org/ru/docs/Web/
40
40
  ###### ESM
41
41
  ```html
42
42
  <script type="module">
43
- import passfather from 'https://unpkg.com/passfather@latest/dist/passfather.min.mjs'
43
+ import passfather from 'https://unpkg.com/passfather@latest/dist/esm/passfather.min.js'
44
44
  console.log( passfather() ); // Output "vFR_@1hDMhAr"
45
45
  </script>
46
46
  ```
@@ -48,7 +48,7 @@ By default, it uses [getRandomValues](https://developer.mozilla.org/ru/docs/Web/
48
48
  ###### UMD
49
49
 
50
50
  ```html
51
- <script src="https://unpkg.com/passfather@latest/dist/passfather.min.js"></script>
51
+ <script src="https://unpkg.com/passfather@latest/dist/umd/passfather.min.js"></script>
52
52
  <script>
53
53
  console.log( passfather() ); // Output "r_@1hDvFRMhA"
54
54
  </script>
@@ -0,0 +1,37 @@
1
+ /*
2
+ @version 4.0.1
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.1",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};
@@ -1,16 +1,12 @@
1
- declare module "passfather" {
2
-
3
- export interface PassfatherOptions {
4
- numbers?: boolean | undefined;
5
- uppercase?: boolean | undefined;
6
- lowercase?: boolean | undefined;
7
- symbols?: boolean | undefined;
8
- length?: number | undefined;
9
- ranges?: Array<number[]> | undefined;
10
- prng?: 'default' | 'Alea' | 'KISS07' | 'Kybos' | 'LFib' | 'LFIB4' | 'MRG32k3a' | 'Xorshift03' | undefined;
11
- seed?: Array<string | number> | undefined;
12
- }
13
-
14
- export default function passfather(options?: PassfatherOptions): string;
15
-
1
+ export interface PassfatherOptions {
2
+ numbers?: boolean;
3
+ uppercase?: boolean;
4
+ lowercase?: boolean;
5
+ symbols?: boolean;
6
+ length?: number;
7
+ ranges?: number[][][];
8
+ prng?: 'default' | 'Alea' | 'KISS07' | 'Kybos' | 'LFib' | 'LFIB4' | 'MRG32k3a' | 'Xorshift03';
9
+ seed?: (string | number)[];
16
10
  }
11
+
12
+ export default function passfather(options?: PassfatherOptions): string;
@@ -0,0 +1,37 @@
1
+ /*
2
+ @version 4.0.1
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
+ !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=
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 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){
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))},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){
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))},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(
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))},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){
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))},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){
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))},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){
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))},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){
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))},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.1",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}())}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "passfather",
3
- "version": "3.0.6",
3
+ "version": "4.0.1",
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": [
@@ -15,20 +15,25 @@
15
15
  },
16
16
  "scripts": {
17
17
  "install-all": "cd ./build && npm install && cd ../test && npm install",
18
- "build:cdn": "cd ./build && npm run build:cdn",
19
- "build:umd": "cd ./build && npm run build:umd",
20
18
  "build": "cd ./build && npm run build",
21
19
  "pretest": "npm run build",
22
20
  "test": "cd ./test && npm test",
23
- "prepublish": "npm test"
21
+ "prepublish": "npm test && npm pack --dry-run"
24
22
  },
25
23
  "bugs": {
26
24
  "url": "https://github.com/vyushin/passfather/issues"
27
25
  },
28
26
  "homepage": "https://github.com/vyushin/passfather",
29
- "main": "./dist/passfather.js",
30
- "module": "./dist/passfather.esm.js",
27
+ "main": "./dist/umd/passfather.min.js",
31
28
  "types": "./dist/passfather.d.ts",
29
+ "module": "./dist/esm/passfather.min.js",
30
+ "exports": {
31
+ ".": {
32
+ "import": "./dist/esm/passfather.min.js",
33
+ "require": "./dist/umd/passfather.min.js",
34
+ "types": "./dist/passfather.d.ts"
35
+ }
36
+ },
32
37
  "license": "MIT",
33
38
  "keywords": [
34
39
  "password",
@@ -38,6 +43,11 @@
38
43
  "directories": {
39
44
  "doc": "./README.md"
40
45
  },
46
+ "files": [
47
+ "dist",
48
+ "README.md",
49
+ "LICENSE"
50
+ ],
41
51
  "devDependencies": {},
42
52
  "funding": [
43
53
  {