UNPKG

pseudo-shuffle

Version:

Make the index look like it is shuffled according to the range so that it is not conflicted without the actual shuffle.

3 lines (2 loc) 689 B
import e from"node-fe1-fpe";var r="psuedo-shuffle",i=function(i){var n=i.index,l=i.min,u=i.max,t=i.privateKey,a=i.publicKey;if(u-l<3)return n;if((u-l)%2==0){var f=Math.ceil(l+(u-l)/2);if(n===f)return u;n===u&&(n=f),--u}return n<l||n>u?n:e.encrypt(u-l+1,n-l,null!=t?t:r,null!=a?a:r)+l},n=function(n){var l=n.index,u=n.min,t=n.max,a=n.privateKey,f=n.publicKey;if(t-u<3)return l;var p=(t-u)%2==0;if(p){if(l>t-1)return Math.ceil(u+(t-u)/2);--t}return l<u||l>t?l:p&&l===i({index:Math.ceil(u+(t-u)/2),max:t,min:u,privateKey:null!=a?a:r,publicKey:null!=f?f:r})?t+1:e.decrypt(t-u+1,l-u,null!=a?a:r,null!=f?f:r)+u};export{n as decode,i as encode}; //# sourceMappingURL=pseudo-shuffle.module.js.map