full-utils 3.0.8 → 3.0.9
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/dist/browser.cjs +1 -1
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.d.cts +1 -1
- package/dist/browser.d.ts +1 -1
- package/dist/browser.mjs +1 -1
- package/dist/browser.mjs.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +13 -1
- package/dist/index.d.ts +13 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/node.cjs +1 -1
- package/dist/node.cjs.map +1 -1
- package/dist/node.d.cts +1 -1
- package/dist/node.d.ts +1 -1
- package/dist/node.mjs +1 -1
- package/dist/node.mjs.map +1 -1
- package/package.json +1 -1
package/dist/browser.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';function K(t){if(!u(t))return [t];let n=t.trim();if(n==="")return [];if(n.startsWith("[")&&n.endsWith("]")&&(n=n.slice(1,-1).trim(),n===""))return [];let r="",e=false,i=null,o=false,s=0,a=0,l=0,y=[],b=()=>{let c=r.trim();c!==""&&y.push(c),r="";};for(let c=0;c<n.length;c++){let f=n[c];if(e){if(r+=f,o){o=false;continue}if(f==="\\"){o=true;continue}f===i&&(e=false,i=null);continue}if(f==='"'||f==="'"){e=true,i=f,r+=f;continue}if(f==="("){s++,r+=f;continue}if(f===")"){s=Math.max(0,s-1),r+=f;continue}if(f==="["){a++,r+=f;continue}if(f==="]"){a=Math.max(0,a-1),r+=f;continue}if(f==="{"){l++,r+=f;continue}if(f==="}"){l=Math.max(0,l-1),r+=f;continue}if(f===","&&s===0&&a===0&&l===0){b();continue}r+=f;}return r.length&&b(),y.map(c=>{if(c.startsWith("$")&&c.includes("(")&&c.endsWith(")"))return c;if(c==="null")return null;if(c==="undefined")return;if(A(c))return D(c);let f=_(c);if(Number.isFinite(f))return f;if(c==="Infinity")return 1/0;if(c==="-Infinity")return -1/0;let d=String(c||"");if(d.length>=2&&(d.startsWith("'")&&d.endsWith("'")||d.startsWith('"')&&d.endsWith('"')))return d.slice(1,-1).replace(/\\\\/g,"\\").replace(/\\'/g,"'").replace(/\\"/g,'"');if(d.startsWith("{")&&d.endsWith("}")||d.startsWith("[")&&d.endsWith("]"))try{return JSON.parse(d)}catch{}return d})}function Y(t,n){if(!Number.isInteger(n)||n<=0)return [];let r=[],e=0;for(;e<t.length;)r.push(t.slice(e,e+n)),e+=n;return r}function j(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function B(t){return t==null||typeof t!="object"||t instanceof Date}function R(t,n){return Array.isArray(t)?Array.isArray(n)?n:[n]:n}function T(t,n){if(t==null)return t;if(B(n))return R(t,n);if(Array.isArray(t))return t.map(i=>T(i,n));if(!j(t)||!j(n))return t;let r={...t},e=false;for(let i of Object.keys(n)){if(!(i in t))continue;let o=T(t[i],n[i]);o!==t[i]&&(r[i]=o,e=true);}return e?r:t}function X(t,n){return T(t,n)}function U(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)&&!(t instanceof Date)}function E(t){let n=new WeakSet,r=e=>{if(e===null)return "null";let i=typeof e;if(i==="string")return JSON.stringify(e);if(i==="number")return Number.isNaN(e)?'"__NaN__"':String(e);if(i==="boolean")return e?"true":"false";if(i==="undefined")return '"__undefined__"';if(i==="bigint")return `"__bigint__:${String(e)}"`;if(i==="function")return '"__function__"';if(e instanceof Date)return `"__date__:${e.toISOString()}"`;if(Array.isArray(e))return "["+e.map(r).join(",")+"]";if(i==="object"&&e){let o=e;return n.has(o)?'"__circular__"':(n.add(o),"{"+Object.keys(o).sort().map(l=>JSON.stringify(l)+":"+r(o[l])).join(",")+"}")}return JSON.stringify(String(e))};return r(t)}function Z(t){if(t===null)return "null";let n=typeof t;return n==="string"?"s:"+t:n==="number"?"n:"+(Number.isNaN(t)?"__NaN__":t):n==="boolean"?"b:"+t:n==="undefined"?"u:":n==="bigint"?"bi:"+String(t):t instanceof Date?"d:"+t.toISOString():"o:"+E(t)}function tt(t,n){let r=n?.keyFn??Z,e=i=>{if(Array.isArray(i)){let o=i.map(e),s=new Set,a=[];for(let l of o){let y=r(l);s.has(y)||(s.add(y),a.push(l));}return a}if(U(i)){let o={};for(let s of Object.keys(i))o[s]=e(i[s]);return o}return i};return e(t)}function D(t){switch(true){case x(t):return t;case h(t):return true;case O(t):return false;case(m(t)&&["true","1","yes","on"].includes(String(t??"").trim().toLowerCase())):return true;case(m(t)&&["false","0","no","off"].includes(String(t??"").trim().toLowerCase())):return false}return false}async function it(t=0){await new Promise(n=>setTimeout(()=>n(true),t));}function st(t){return process.env[t]}function ft(t=1,n=new Date){let r=Math.min(60,Math.max(1,Math.trunc(Math.abs(t)))),e=n.getMinutes(),i=Math.floor(e/r)*r,o=new Date(n);return o.setMinutes(i,0,0),o}function ct(t=new Date){let n=l=>String(l).padStart(2,"0"),r=t.getFullYear(),e=n(t.getMonth()+1),i=n(t.getDate()),o=n(t.getHours()),s=n(t.getMinutes()),a=n(t.getSeconds());return `${r}-${e}-${i} ${o}:${s}:${a}`}function mt(t){let{days:n=0,hours:r=0,minutes:e=0,seconds:i=0}=t;return n*86400+r*3600+e*60+i}function dt(t){if(!Number.isFinite(t)||t<0)throw new Error("Invalid total seconds");let n=Math.floor(t/86400),r=Math.floor(t%86400/3600),e=Math.floor(t%3600/60),i=t%60;return {days:n,hours:r,minutes:e,seconds:i}}function yt(t){let n=t.split(".").map(o=>Number(o));if(n.length!==4||n.some(o=>!Number.isInteger(o)||o<0||o>255))throw new Error("Invalid IPv4 address");let r=new ArrayBuffer(4),e=new DataView(r),i=0;for(;i<4;)e.setUint8(i,n[i]),i++;return e.getUint32(0,false)}function wt(t){if(!h(t))return "";let n=new ArrayBuffer(4),r=new DataView(n);r.setUint32(0,t,false);let e=[],i=0;for(;i<4;)e.push(r.getUint8(i)),i++;return e.join(".")}function w(t){return Array.isArray(t)}function Tt(t){return w(t)&&t.length>0}function x(t){return typeof t=="boolean"}function k(t){return S(t)&&Object.keys(t).length>0}function L(t){if(x(t))return true;if(!k(t))return false;for(let n of Object.keys(t))if(!L(t[n]))return false;return true}function $t(t){if(t instanceof Date)return !Number.isNaN(t.getTime());if(u(t)||p(t)){let n=new Date(t);return !Number.isNaN(n.getTime())}return false}var V=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z]{2,})+$/;function Mt(t){return m(t)?V.test(t):false}function Bt(t){return t!=null}function N(t){return typeof t=="function"}var J=/^(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)$/;function Zt(t){if(!u(t))return false;let n=t.trim();return J.test(n)}function Jt(t){return u(t)&&/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/.test(t)}function p(t){return typeof t=="number"&&Number.isFinite(t)}function Ht(t){return p(t)&&!Number.isInteger(t)}function Xt(t){return p(t)&&t<0}function O(t){return p(t)&&t<=0}function h(t){return p(t)&&t>0}function I(t){return p(t)&&t>=0}function S(t){return typeof t=="object"&&t!==null&&Object.prototype.toString.call(t)==="[object Object]"&&!Array.isArray(t)&&!(t instanceof Date)}function mn(t){return k(t)?Object.values(t).every(n=>n===null||!S(n)&&!w(n)||!N(n)):false}function gn(t,{minLength:n=8,maxLength:r=256,requireUppercase:e=true,requireLowercase:i=true,requireDigit:o=true,requireSpecial:s=true}={}){return !(!u(t)||t.length<n||t.length>r||e&&!/[A-ZА-Я]/.test(t)||i&&!/[a-zа-я]/.test(t)||o&&!/\d/.test(t)||s&&!/[~!?@#$%^&*_\-+()\[\]{}><\\\/|"'.,:;=]/.test(t))}function xn(t){if(!m(t)&&!p(t))return false;let n=String(t).trim();return !(n.startsWith("-")||(n.match(/\+/g)||[]).length>1||n.includes("+")&&!n.startsWith("+")||!/^\+?[0-9-]+$/.test(n)||n.length<3||n.length>20||!/[0-9]$/.test(n)||n.includes("--"))}function u(t){return typeof t=="string"}function A(t){if(!m(t))return false;let n=t.trim().toLowerCase();return n==="true"||n==="false"}function m(t){return u(t)&&t.trim().length>0}function Pn(t){if(!m(t))return false;let n=t.trim().toLowerCase();return n==="asc"||n==="desc"}function _n(t){return u(t)&&/^[A-Za-z_][A-Za-z0-9_]*$/.test(t)}function In(t){return N(t)&&/^class\s/.test(Function.prototype.toString.call(t))}function $(t){let n=t.sign<0?"-":"",r=t.digitsInteger.toString();if(t.scale===0)return n+r;let e=t.scale-r.length;if(e>=0)return n+"0."+"0".repeat(e)+r;let i=r.length-t.scale,o=r.slice(0,i),s=r.slice(i);return n+o+"."+s}function W(t){return Number($(t))}function F(t,n){let r=/^([0-9]+)(?:\.([0-9]*))?e([+\-]?[0-9]+)$/i.exec((()=>{let[o,s]=n.split(/e/i),[a,l=""]=o.split("."),y=a.replace(/^0+/,"")+l,b=parseInt(s,10)-l.length;return `${y||"0"}e${b}`})());if(!r)throw new Error("Failed to parse exponential notation.");let e=r[1],i=parseInt(r[3],10);if(I(i))return e=e+"0".repeat(i),{sign:t,integerPart:e||"0",fractionalPart:""};{let o=-i;if(o>=e.length){let s="0".repeat(o-e.length);return {sign:t,integerPart:"0",fractionalPart:s+e}}else {let s=e.length-o;return {sign:t,integerPart:e.slice(0,s),fractionalPart:e.slice(s)}}}}function C(t){if(typeof t=="bigint"){let n=t<0n?-1:1,r=(t<0n?-t:t).toString();return {sign:n,integerPart:r,fractionalPart:""}}if(typeof t=="number"){if(!Number.isFinite(t))throw new Error("Input number is not finite.");let n=t<0?-1:1,e=Math.abs(t).toExponential(30);return F(n,e)}if(typeof t=="string"){let n=t.trim().replace(",",".");if(!n)throw new Error("Input string is empty.");let r=1;if((n.startsWith("+")||n.startsWith("-"))&&(r=n.startsWith("-")?-1:1,n=n.slice(1)),/^[0-9]*\.?[0-9]*(e[+\-]?[0-9]+)?$/i.test(n)){if(/e/i.test(n))return F(r,n);let[e="0",i=""]=n.split(".");return {sign:r,integerPart:e,fractionalPart:i}}throw new Error("Invalid numeric string.")}throw new Error("Unsupported input type.")}function P(t){let{sign:n,integerPart:r,fractionalPart:e}=C(t),i=r.replace(/^0+/,"")||"0",o=e.replace(/0+$/,""),s=i+o||"0";return {sign:n,digitsInteger:BigInt(s),scale:o.length}}function M(t,n,r="half-up"){let e=Math.max(0,Math.trunc(n));if(t.scale<=e)return {...t};let i=t.scale-e,o=10n**BigInt(i),s=t.digitsInteger/o,a=t.digitsInteger%o;if(r==="trunc"||a===0n)return {sign:t.sign,digitsInteger:s,scale:e};let l=o/2n,b=a>=l?s+1n:s;return {sign:t.sign,digitsInteger:b,scale:e}}function _(t,n=1,r=false){try{return W(n>1?M(P(t),n,"half-up"):P(t))}catch(e){if(r)throw e}return 0}function z(t){if(!u(t))return "";let n=g(t);return m(n)?n.toLowerCase():""}function Gn(t){if(!u(t))return "";let n=z(t);return m(n)?n[0].toUpperCase()+n.slice(1):""}function nr(t){return u(t)&&g(t)===""||t===void 0?null:t}function ir(t,n="+7"){if(!u(t))return null;let r=g(t).replace(/[\s\-().]/g,"");return /^00\d{8,15}$/.test(r)?r="+"+r.slice(2):/^\d{10}$/.test(r)?r=n+r:/^\d{9,15}$/.test(r)&&!r.startsWith("0")&&(r="+"+r),/^\+\d{10,15}$/.test(r)?r:null}function g(t,n=""){let r=String(u(t)?t.trim().normalize("NFKC").replace(/[\u200B-\u200D\uFEFF]/g,""):"");return n?r.split(n).filter(e=>!!e).join(n):r}function cr(t){return u(t)&&g(t)===""||t===null?void 0:t}var pr=t=>{if(!u(t))return t;let n=String(g(t)||"");return n===""?null:String(n.toLowerCase()||"").replace(/\s+/g," ").replace(/\t+/g,"").replace(/\n+/g,"")};function gr(t=""){return {}}function xr(t){if(!m(t))return String(t);let n="____RAW_PERCENT____",r=t.replace(/%(?![0-9A-Fa-f]{2})/g,n),e=new Set(["22","7B","7D","3A","2C","5B","5D","5C"]);return r.replace(/%([0-9A-Fa-f]{2})/g,(o,s)=>{let a=s.toUpperCase();return e.has(a)?decodeURIComponent(`%${a}`):`%${a}`}).split(n).join("%")}exports.arrFuncArgs=K;exports.arrReplaceTemplate=X;exports.arrSplitBatches=Y;exports.arrUniqueDeep=tt;exports.boolNormalize=D;exports.dateFloorMin=ft;exports.datePartsSec=mt;exports.dateSecParts=dt;exports.dateStr=ct;exports.env=st;exports.ipNumStr=wt;exports.ipStrNum=yt;exports.isArr=w;exports.isArrFilled=Tt;exports.isBool=x;exports.isBoolOrBoolTree=L;exports.isClass=In;exports.isDate=$t;exports.isEmail=Mt;exports.isExists=Bt;exports.isFunc=N;exports.isIpAddr=Zt;exports.isMacAddr=Jt;exports.isNum=p;exports.isNumFloat=Ht;exports.isNumN=Xt;exports.isNumNZ=O;exports.isNumP=h;exports.isNumPZ=I;exports.isObj=S;exports.isObjFilled=k;exports.isObjFlat=mn;exports.isPassword=gn;exports.isPhone=xn;exports.isStr=u;exports.isStrAscDesc=Pn;exports.isStrBool=A;exports.isStrFilled=m;exports.isVar=_n;exports.numNormalize=_;exports.strLowerCase=z;exports.strNormalCase=Gn;exports.strNormalize=pr;exports.strNull=nr;exports.strPhone=ir;exports.strTrim=g;exports.strUndefined=cr;exports.urlDecode=xr;exports.urlObj=gr;exports.wait=it;//# sourceMappingURL=browser.cjs.map
|
|
1
|
+
'use strict';function v(t){if(!a(t))return [t];let n=t.trim();if(n==="")return [];if(n.startsWith("[")&&n.endsWith("]")&&(n=n.slice(1,-1).trim(),n===""))return [];let r="",e=false,i=null,o=false,s=0,c=0,l=0,b=[],y=()=>{let u=r.trim();u!==""&&b.push(u),r="";};for(let u=0;u<n.length;u++){let f=n[u];if(e){if(r+=f,o){o=false;continue}if(f==="\\"){o=true;continue}f===i&&(e=false,i=null);continue}if(f==='"'||f==="'"){e=true,i=f,r+=f;continue}if(f==="("){s++,r+=f;continue}if(f===")"){s=Math.max(0,s-1),r+=f;continue}if(f==="["){c++,r+=f;continue}if(f==="]"){c=Math.max(0,c-1),r+=f;continue}if(f==="{"){l++,r+=f;continue}if(f==="}"){l=Math.max(0,l-1),r+=f;continue}if(f===","&&s===0&&c===0&&l===0){y();continue}r+=f;}return r.length&&y(),b.map(u=>{if(u.startsWith("$")&&u.includes("(")&&u.endsWith(")"))return u;if(u==="null")return null;if(u==="undefined")return;if(O(u))return _(u);let f=j(u);if(Number.isFinite(f))return f;if(u==="Infinity")return 1/0;if(u==="-Infinity")return -1/0;let p=String(u||"");if(p.length>=2&&(p.startsWith("'")&&p.endsWith("'")||p.startsWith('"')&&p.endsWith('"')))return p.slice(1,-1).replace(/\\\\/g,"\\").replace(/\\'/g,"'").replace(/\\"/g,'"');if(p.startsWith("{")&&p.endsWith("}")||p.startsWith("[")&&p.endsWith("]"))try{return JSON.parse(p)}catch{}return p})}function nt(t,n){if(!Number.isInteger(n)||n<=0)return [];let r=[],e=0;for(;e<t.length;)r.push(t.slice(e,e+n)),e+=n;return r}function $(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function V(t){return t==null||typeof t!="object"||t instanceof Date}function J(t,n){return Array.isArray(t)?Array.isArray(n)?n:[n]:n}function I(t,n){if(t==null)return t;if(V(n))return J(t,n);if(Array.isArray(t))return t.map(i=>I(i,n));if(!$(t)||!$(n))return t;let r={...t},e=false;for(let i of Object.keys(n)){if(!(i in t))continue;let o=I(t[i],n[i]);o!==t[i]&&(r[i]=o,e=true);}return e?r:t}function et(t,n){return I(t,n)}function Q(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)&&!(t instanceof Date)}function q(t){let n=new WeakSet,r=e=>{if(e===null)return "null";let i=typeof e;if(i==="string")return JSON.stringify(e);if(i==="number")return Number.isNaN(e)?'"__NaN__"':String(e);if(i==="boolean")return e?"true":"false";if(i==="undefined")return '"__undefined__"';if(i==="bigint")return `"__bigint__:${String(e)}"`;if(i==="function")return '"__function__"';if(e instanceof Date)return `"__date__:${e.toISOString()}"`;if(Array.isArray(e))return "["+e.map(r).join(",")+"]";if(i==="object"&&e){let o=e;return n.has(o)?'"__circular__"':(n.add(o),"{"+Object.keys(o).sort().map(l=>JSON.stringify(l)+":"+r(o[l])).join(",")+"}")}return JSON.stringify(String(e))};return r(t)}function G(t){if(t===null)return "null";let n=typeof t;return n==="string"?"s:"+t:n==="number"?"n:"+(Number.isNaN(t)?"__NaN__":t):n==="boolean"?"b:"+t:n==="undefined"?"u:":n==="bigint"?"bi:"+String(t):t instanceof Date?"d:"+t.toISOString():"o:"+q(t)}function ot(t,n){let r=n?.keyFn??G,e=i=>{if(Array.isArray(i)){let o=i.map(e),s=new Set,c=[];for(let l of o){let b=r(l);s.has(b)||(s.add(b),c.push(l));}return c}if(Q(i)){let o={};for(let s of Object.keys(i))o[s]=e(i[s]);return o}return i};return e(t)}function _(t){switch(true){case w(t):return t;case k(t):return true;case R(t):return false;case(m(t)&&["true","1","yes","on"].includes(String(t??"").trim().toLowerCase())):return true;case(m(t)&&["false","0","no","off"].includes(String(t??"").trim().toLowerCase())):return false}return false}async function at(t=0){await new Promise(n=>setTimeout(()=>n(true),t));}function lt(t){return process.env[t]}function pt(t=1,n=new Date){let r=Math.min(60,Math.max(1,Math.trunc(Math.abs(t)))),e=n.getMinutes(),i=Math.floor(e/r)*r,o=new Date(n);return o.setMinutes(i,0,0),o}function dt(t=new Date){let n=l=>String(l).padStart(2,"0"),r=t.getFullYear(),e=n(t.getMonth()+1),i=n(t.getDate()),o=n(t.getHours()),s=n(t.getMinutes()),c=n(t.getSeconds());return `${r}-${e}-${i} ${o}:${s}:${c}`}function yt(t){let{days:n=0,hours:r=0,minutes:e=0,seconds:i=0}=t;return n*86400+r*3600+e*60+i}function ht(t){if(!Number.isFinite(t)||t<0)throw new Error("Invalid total seconds");let n=Math.floor(t/86400),r=Math.floor(t%86400/3600),e=Math.floor(t%3600/60),i=t%60;return {days:n,hours:r,minutes:e,seconds:i}}function kt(t){let n=t.split(".").map(o=>Number(o));if(n.length!==4||n.some(o=>!Number.isInteger(o)||o<0||o>255))throw new Error("Invalid IPv4 address");let r=new ArrayBuffer(4),e=new DataView(r),i=0;for(;i<4;)e.setUint8(i,n[i]),i++;return e.getUint32(0,false)}function Pt(t){if(!k(t))return "";let n=new ArrayBuffer(4),r=new DataView(n);r.setUint32(0,t,false);let e=[],i=0;for(;i<4;)e.push(r.getUint8(i)),i++;return e.join(".")}function x(t){if(!a(t))return null;let n=d(t).split(".");if(n.length!==4)return null;let r=0;for(let e=0;e<4;e++){if(!/^\d{1,3}$/.test(n[e]))return null;let i=Number(n[e]);if(i<0||i>255)return null;r=r<<8|i;}return r>>>0}function h(t){if(!Number.isInteger(t)||t<0||t>4294967295)throw new Error(`Invalid IPv4 number: ${t}`);return [t>>>24&255,t>>>16&255,t>>>8&255,t&255].join(".")}function C(t){let[n,r]=t.split("/"),e=x(n),i=r?Number(r):NaN;if(e===null||!Number.isInteger(i)||i<0||i>32)return null;let o=i===0?0:4294967295<<32-i>>>0,s=e&o,c=s|~o>>>0;return [h(s),h(c)]}function*E(t,n,r={}){let{includeNetwork:e=true,includeBroadcast:i=true}=r,o,s,c=false,l=null;if(n===void 0&&t.includes("/")){let u=C(t);if(!u)throw new Error(`Invalid CIDR: "${t}"`);let[f,p]=u,[T,L]=t.split("/");l=Number(L),o=x(f),s=x(p),c=true;}else {let u=x(t);if(u===null)throw new Error(`Invalid IPv4: "${t}"`);if(o=u,n&&n.trim()!==""){let f=x(n);if(f===null)throw new Error(`Invalid IPv4: "${n}"`);s=f;}else {let f=o>>>24&255,p=o>>>16&255,T=o>>>8&255;s=(f<<24|p<<16|T<<8|255)>>>0;}}o>s&&([o,s]=[s,o]);let b=-1,y=-1;c&&l!==null&&l<=30&&(b=o,y=s);for(let u=o;u<=s;u=u+1>>>0){if(!e&&u===b){if(u===s)break;continue}if(!i&&u===y){if(u===s)break;continue}if(yield h(u),u===4294967295)break}}function Mt(t,n,r={}){let{limit:e=1e6}=r,i=[],o=0;for(let s of E(t,n,r)){if(o>=e)throw new Error(`Range is too large (> ${e}). Use the generator version instead.`);i.push(s),o++;}return i}function F(t){return Array.isArray(t)}function Zt(t){return F(t)&&t.length>0}function w(t){return typeof t=="boolean"}function S(t){return N(t)&&Object.keys(t).length>0}function K(t){if(w(t))return true;if(!S(t))return false;for(let n of Object.keys(t))if(!K(t[n]))return false;return true}function Yt(t){if(t instanceof Date)return !Number.isNaN(t.getTime());if(a(t)||g(t)){let n=new Date(t);return !Number.isNaN(n.getTime())}return false}var H=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z]{2,})+$/;function tn(t){return m(t)?H.test(t):false}function rn(t){return t!=null}function P(t){return typeof t=="function"}var Y=/^(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)$/;function un(t){if(!a(t))return false;let n=t.trim();return Y.test(n)}function cn(t){return a(t)&&/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/.test(t)}function g(t){return typeof t=="number"&&Number.isFinite(t)}function gn(t){return g(t)&&!Number.isInteger(t)}function yn(t){return g(t)&&t<0}function R(t){return g(t)&&t<=0}function k(t){return g(t)&&t>0}function W(t){return g(t)&&t>=0}function N(t){return typeof t=="object"&&t!==null&&Object.prototype.toString.call(t)==="[object Object]"&&!Array.isArray(t)&&!(t instanceof Date)}function _n(t){return S(t)?Object.values(t).every(n=>n===null||!N(n)&&!F(n)||!P(n)):false}function $n(t,{minLength:n=8,maxLength:r=256,requireUppercase:e=true,requireLowercase:i=true,requireDigit:o=true,requireSpecial:s=true}={}){return !(!a(t)||t.length<n||t.length>r||e&&!/[A-ZА-Я]/.test(t)||i&&!/[a-zа-я]/.test(t)||o&&!/\d/.test(t)||s&&!/[~!?@#$%^&*_\-+()\[\]{}><\\\/|"'.,:;=]/.test(t))}function En(t){if(!m(t)&&!g(t))return false;let n=String(t).trim();return !(n.startsWith("-")||(n.match(/\+/g)||[]).length>1||n.includes("+")&&!n.startsWith("+")||!/^\+?[0-9-]+$/.test(n)||n.length<3||n.length>20||!/[0-9]$/.test(n)||n.includes("--"))}function a(t){return typeof t=="string"}function O(t){if(!m(t))return false;let n=t.trim().toLowerCase();return n==="true"||n==="false"}function m(t){return a(t)&&t.trim().length>0}function Vn(t){if(!m(t))return false;let n=t.trim().toLowerCase();return n==="asc"||n==="desc"}function qn(t){return a(t)&&/^[A-Za-z_][A-Za-z0-9_]*$/.test(t)}function Hn(t){return P(t)&&/^class\s/.test(Function.prototype.toString.call(t))}function M(t){let n=t.sign<0?"-":"",r=t.digitsInteger.toString();if(t.scale===0)return n+r;let e=t.scale-r.length;if(e>=0)return n+"0."+"0".repeat(e)+r;let i=r.length-t.scale,o=r.slice(0,i),s=r.slice(i);return n+o+"."+s}function B(t){return Number(M(t))}function A(t,n){let r=/^([0-9]+)(?:\.([0-9]*))?e([+\-]?[0-9]+)$/i.exec((()=>{let[o,s]=n.split(/e/i),[c,l=""]=o.split("."),b=c.replace(/^0+/,"")+l,y=parseInt(s,10)-l.length;return `${b||"0"}e${y}`})());if(!r)throw new Error("Failed to parse exponential notation.");let e=r[1],i=parseInt(r[3],10);if(W(i))return e=e+"0".repeat(i),{sign:t,integerPart:e||"0",fractionalPart:""};{let o=-i;if(o>=e.length){let s="0".repeat(o-e.length);return {sign:t,integerPart:"0",fractionalPart:s+e}}else {let s=e.length-o;return {sign:t,integerPart:e.slice(0,s),fractionalPart:e.slice(s)}}}}function z(t){if(typeof t=="bigint"){let n=t<0n?-1:1,r=(t<0n?-t:t).toString();return {sign:n,integerPart:r,fractionalPart:""}}if(typeof t=="number"){if(!Number.isFinite(t))throw new Error("Input number is not finite.");let n=t<0?-1:1,e=Math.abs(t).toExponential(30);return A(n,e)}if(typeof t=="string"){let n=t.trim().replace(",",".");if(!n)throw new Error("Input string is empty.");let r=1;if((n.startsWith("+")||n.startsWith("-"))&&(r=n.startsWith("-")?-1:1,n=n.slice(1)),/^[0-9]*\.?[0-9]*(e[+\-]?[0-9]+)?$/i.test(n)){if(/e/i.test(n))return A(r,n);let[e="0",i=""]=n.split(".");return {sign:r,integerPart:e,fractionalPart:i}}throw new Error("Invalid numeric string.")}throw new Error("Unsupported input type.")}function D(t){let{sign:n,integerPart:r,fractionalPart:e}=z(t),i=r.replace(/^0+/,"")||"0",o=e.replace(/0+$/,""),s=i+o||"0";return {sign:n,digitsInteger:BigInt(s),scale:o.length}}function U(t,n,r="half-up"){let e=Math.max(0,Math.trunc(n));if(t.scale<=e)return {...t};let i=t.scale-e,o=10n**BigInt(i),s=t.digitsInteger/o,c=t.digitsInteger%o;if(r==="trunc"||c===0n)return {sign:t.sign,digitsInteger:s,scale:e};let l=o/2n,y=c>=l?s+1n:s;return {sign:t.sign,digitsInteger:y,scale:e}}function j(t,n=1,r=false){try{return B(n>1?U(D(t),n,"half-up"):D(t))}catch(e){if(r)throw e}return 0}function Z(t){if(!a(t))return "";let n=d(t);return m(n)?n.toLowerCase():""}function dr(t){if(!a(t))return "";let n=Z(t);return m(n)?n[0].toUpperCase()+n.slice(1):""}function hr(t){return a(t)&&d(t)===""||t===void 0?null:t}function Fr(t,n="+7"){if(!a(t))return null;let r=d(t).replace(/[\s\-().]/g,"");return /^00\d{8,15}$/.test(r)?r="+"+r.slice(2):/^\d{10}$/.test(r)?r=n+r:/^\d{9,15}$/.test(r)&&!r.startsWith("0")&&(r="+"+r),/^\+\d{10,15}$/.test(r)?r:null}function d(t,n=""){let r=String(a(t)?t.trim().normalize("NFKC").replace(/[\u200B-\u200D\uFEFF]/g,""):"");return n?r.split(n).filter(e=>!!e).join(n):r}function Ar(t){return a(t)&&d(t)===""||t===null?void 0:t}var Or=t=>{if(!a(t))return t;let n=String(d(t)||"");return n===""?null:String(n.toLowerCase()||"").replace(/\s+/g," ").replace(/\t+/g,"").replace(/\n+/g,"")};function $r(t=""){return {}}function Er(t){if(!m(t))return String(t);let n="____RAW_PERCENT____",r=t.replace(/%(?![0-9A-Fa-f]{2})/g,n),e=new Set(["22","7B","7D","3A","2C","5B","5D","5C"]);return r.replace(/%([0-9A-Fa-f]{2})/g,(o,s)=>{let c=s.toUpperCase();return e.has(c)?decodeURIComponent(`%${c}`):`%${c}`}).split(n).join("%")}exports.arrFuncArgs=v;exports.arrReplaceTemplate=et;exports.arrSplitBatches=nt;exports.arrUniqueDeep=ot;exports.boolNormalize=_;exports.dateFloorMin=pt;exports.datePartsSec=yt;exports.dateSecParts=ht;exports.dateStr=dt;exports.env=lt;exports.ipNumStr=Pt;exports.ipStrNum=kt;exports.isArr=F;exports.isArrFilled=Zt;exports.isBool=w;exports.isBoolOrBoolTree=K;exports.isClass=Hn;exports.isDate=Yt;exports.isEmail=tn;exports.isExists=rn;exports.isFunc=P;exports.isIpAddr=un;exports.isMacAddr=cn;exports.isNum=g;exports.isNumFloat=gn;exports.isNumN=yn;exports.isNumNZ=R;exports.isNumP=k;exports.isNumPZ=W;exports.isObj=N;exports.isObjFilled=S;exports.isObjFlat=_n;exports.isPassword=$n;exports.isPhone=En;exports.isStr=a;exports.isStrAscDesc=Vn;exports.isStrBool=O;exports.isStrFilled=m;exports.isVar=qn;exports.numNormalize=j;exports.parseIPv4=x;exports.rangeIPv4ToArr=Mt;exports.strLowerCase=Z;exports.strNormalCase=dr;exports.strNormalize=Or;exports.strNull=hr;exports.strPhone=Fr;exports.strTrim=d;exports.strUndefined=Ar;exports.toIPv4=h;exports.urlDecode=Er;exports.urlObj=$r;exports.wait=at;//# sourceMappingURL=browser.cjs.map
|
|
2
2
|
//# sourceMappingURL=browser.cjs.map
|
package/dist/browser.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/arr/arrFuncArgs.ts","../src/arr/arrSplitBatches.ts","../src/arr/arrReplaceTemplate.ts","../src/arr/arrUniqueDeep.ts","../src/bool/boolNormalize.ts","../src/common/wait.ts","../src/common/env.ts","../src/date/dateFloorMin.ts","../src/date/dateStr.ts","../src/date/datePartsSec.ts","../src/date/dateSecParts.ts","../src/ip-addr/ipStrNum.ts","../src/ip-addr/ipNumStr.ts","../src/is/isArr.ts","../src/is/isArrFilled.ts","../src/is/isBool.ts","../src/is/isObjFilled.ts","../src/is/isBoolOrBoolTree.ts","../src/is/isDate.ts","../src/is/isEmail.ts","../src/is/isExists.ts","../src/is/isFunc.ts","../src/is/isIpAddr.ts","../src/is/isMacAddr.ts","../src/is/isNum.ts","../src/is/isNumFloat.ts","../src/is/isNumN.ts","../src/is/isNumNZ.ts","../src/is/isNumP.ts","../src/is/isNumPZ.ts","../src/is/isObj.ts","../src/is/isObjFlat.ts","../src/is/isPassword.ts","../src/is/isPhone.ts","../src/is/isStr.ts","../src/is/isStrBool.ts","../src/is/isStrFilled.ts","../src/is/isStrAscDesc.ts","../src/is/isVar.ts","../src/is/isClass.ts","../src/num/fixedDecimalToStr.ts","../src/num/fixedDecimalToNum.ts","../src/num/convertExponentialToParts.ts","../src/num/normalizeToDecimalComponents.ts","../src/num/parseToFixedDecimal.ts","../src/num/roundFixedDecimal.ts","../src/num/numNormalize.ts","../src/str/strLowerCase.ts","../src/str/strNormalCase.ts","../src/str/strNull.ts","../src/str/strPhone.ts","../src/str/strTrim.ts","../src/str/strUndefined.ts","../src/str/strNormalize.ts","../src/url/urlObj.ts","../src/url/urlDecode.ts"],"names":["arrFuncArgs","value","isStr","src","buf","inQuote","quoteChar","esc","depthParen","depthBracket","depthBrace","items","finalize","trimmed","i","ch","raw","isStrBool","boolNormalize","n","numNormalize","rawStr","arrSplitBatches","arr","portionLength","out","isPlainObject","v","isReplaceLeafTemplate","replaceLeafKeepingShape","current","replacement","applyTemplate","template","item","changed","key","next","arrReplaceTemplate","where","stableStringify","seen","inner","t","obj","k","defaultKeyFn","arrUniqueDeep","input","opts","keyFn","walk","node","processed","isBool","isNumP","isNumNZ","isStrFilled","wait","timeout","resolve","env","dateFloorMin","everyMinutes","date","step","m","floored","d","dateStr","pad","year","month","day","hours","minutes","seconds","datePartsSec","parts","days","dateSecParts","total","ipStrNum","ip","p","buffer","dv","ipNumStr","num","nbuffer","ndv","output","isArr","isArrFilled","isObjFilled","isObj","isBoolOrBoolTree","isDate","isNum","emailRegex","isEmail","isExists","isFunc","IPV4_RE","isIpAddr","isMacAddr","isNumFloat","isNumN","isNumPZ","isObjFlat","isPassword","minLength","maxLength","requireUppercase","requireLowercase","requireDigit","requireSpecial","isPhone","valueProcessed","normalized","isStrAscDesc","isVar","isClass","fixedDecimalToStr","signSymbol","allDigitsString","padZeros","integerBoundary","integerText","fractionalText","fixedDecimalToNum","convertExponentialToParts","sign","exponentialString","match","coefficient","exponentText","integerPart","fractionalPart","allDigits","exponentValue","exponent","digitsToLeft","missingZeros","splitIndex","normalizeToDecimalComponents","absoluteValue","exponentialForm","parseToFixedDecimal","integerDigits","fractionalDigits","combinedDigits","roundFixedDecimal","source","decimalPlaces","roundMode","targetPrecision","digitsToRemove","divisionFactor","remainder","halfThreshold","roundedValue","round","throwError","err","strLowerCase","strTrim","strNormalCase","parsed","strNull","strPhone","defaultCountry","phone","border","result","strUndefined","strNormalize","urlObj","urlDecode","RAW","pre","WHITELIST","_m","hh","code"],"mappings":"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","file":"browser.cjs","sourcesContent":["import { \n\tisStrBool,\n\tisStr, \n\tboolNormalize,\n\tnumNormalize,\n} from '../index';\n\ntype Quote = \"'\" | '\"' | null;\n\nexport function arrFuncArgs(value: string): unknown[] {\n\tif (!isStr(value)) {\n\t\treturn [value];\n\t}\n\tlet src = value.trim();\n\t\n\tif (src === '') {\n\t\treturn [];\n\t}\n\tif (src.startsWith('[') && src.endsWith(']')) {\n\t\tsrc = src.slice(1, -1).trim();\n\t\t\n\t\tif (src === '') {\n\t\t\treturn [];\n\t\t}\n\t}\n\tlet buf = '',\n\t\tinQuote = false,\n\t\tquoteChar: Quote = null,\n\t\tesc = false,\n\t\tdepthParen = 0,\n\t\tdepthBracket = 0,\n\t\tdepthBrace = 0;\n\n\tconst items: string[] = [];\n\tconst finalize = () => {\n\t\tconst trimmed = buf.trim();\n\t\t\n\t\tif (trimmed !== '') {\n\t\t\titems.push(trimmed);\n\t\t}\n\t\tbuf = '';\n\t};\n\n\tfor (let i = 0; i < src.length; i++) {\n\t\tconst ch = src[i];\n\n\t\tif (inQuote) {\n\t\t\tbuf += ch;\n\n\t\t\tif (esc) { \n\t\t\t\tesc = false; \n\t\t\t\tcontinue; \n\t\t\t}\n\t\t\tif (ch === '\\\\') { \n\t\t\t\tesc = true; \n\t\t\t\tcontinue; \n\t\t\t}\n\t\t\tif (ch === quoteChar) {\n\t\t\t\tinQuote = false;\n\t\t\t\tquoteChar = null;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (ch === '\"' || ch === \"'\") {\n\t\t\tinQuote = true;\n\t\t\tquoteChar = ch as Quote;\n\t\t\tbuf += ch;\n\t\t\t\n\t\t\tcontinue;\n\t\t}\n\t\tif (ch === '(') { \n\t\t\tdepthParen++; \n\t\t\tbuf += ch; \n\n\t\t\tcontinue; \n\t\t}\n\t\tif (ch === ')') { \n\t\t\tdepthParen = Math.max(0, depthParen - 1); \n\t\t\tbuf += ch; \n\t\t\t\n\t\t\tcontinue; \n\t\t}\n\t\tif (ch === '[') { \n\t\t\tdepthBracket++; \n\t\t\tbuf += ch; \n\t\t\t\n\t\t\tcontinue; \n\t\t}\n\t\tif (ch === ']') { \n\t\t\tdepthBracket = Math.max(0, depthBracket - 1); \n\t\t\tbuf += ch; \n\t\t\t\n\t\t\tcontinue; \n\t\t}\n\t\tif (ch === '{') { \n\t\t\tdepthBrace++; \n\t\t\tbuf += ch; \n\t\t\t\n\t\t\tcontinue; \n\t\t}\n\t\tif (ch === '}') { \n\t\t\tdepthBrace = Math.max(0, depthBrace - 1); \n\t\t\tbuf += ch; \n\n\t\t\tcontinue; \n\t\t}\n\t\tif (ch === ',' && depthParen === 0 && depthBracket === 0 && depthBrace === 0) {\n\t\t\tfinalize();\n\t\t\t\n\t\t\tcontinue;\n\t\t}\n\t\tbuf += ch;\n\t}\n\tif (buf.length) {\n\t\tfinalize();\n\t}\n\treturn items.map((raw: string): unknown => {\n\t\tif (raw.startsWith('$') && raw.includes('(') && raw.endsWith(')')) {\n\t\t\treturn raw;\n\t\t}\n\t\tif (raw === 'null') {\n\t\t\treturn null;\n\t\t}\n\t\tif (raw === 'undefined') {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (isStrBool(raw)) {\n\t\t\treturn boolNormalize(raw);\n\t\t}\n\t\tconst n = numNormalize(raw as any);\n\t\t\n\t\tif (Number.isFinite(n)) {\n\t\t\treturn n;\n\t\t}\t\t\n\t\tif (raw === 'Infinity') {\n\t\t\treturn Infinity;\n\t\t}\n\t\tif (raw === '-Infinity') {\n\t\t\treturn -Infinity;\n\t\t}\n\t\tconst rawStr: string = String(raw || '');\n\t\tconst hasQuotes = rawStr.length >= 2\n\t\t\t&& ((rawStr.startsWith(\"'\") && rawStr.endsWith(\"'\")) \n\t\t\t\t|| (rawStr.startsWith('\"') && rawStr.endsWith('\"')));\n\n\t\tif (hasQuotes) {\n\t\t\treturn rawStr\n\t\t\t\t.slice(1, -1)\n\t\t\t\t.replace(/\\\\\\\\/g, '\\\\')\n\t\t\t\t.replace(/\\\\'/g, \"'\")\n\t\t\t\t.replace(/\\\\\"/g, '\"');\n\t\t}\n\t\tif ((rawStr.startsWith('{') && rawStr.endsWith('}')) || (rawStr.startsWith('[') && rawStr.endsWith(']'))) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(rawStr);\n\t\t\t} \n\t\t\tcatch {\n\t\t\t}\n\t\t}\n\t\treturn rawStr;\n\t});\n}\n","\nexport function arrSplitBatches<T>(arr: readonly T[], portionLength: number): T[][] {\n\tif (!Number.isInteger(portionLength) || portionLength <= 0) {\n\t\treturn [];\n\t}\n\tconst out: T[][] = [];\n\tlet i = 0;\n\t\n\twhile (i < arr.length) {\n\t\tout.push(arr.slice(i, i + portionLength));\n\t\ti += portionLength;\n\t}\n\treturn out;\n}\n","\ntype AnyObj = Record<string, any>;\n\nfunction isPlainObject(v: any): v is AnyObj {\n\treturn v !== null && typeof v === 'object' && !Array.isArray(v);\n}\n\nfunction isReplaceLeafTemplate(v: any): boolean {\n\treturn v === null || v === undefined || typeof v !== 'object' || v instanceof Date;\n}\n\nfunction replaceLeafKeepingShape(current: any, replacement: any) {\n\tif (Array.isArray(current)) {\n\t\treturn Array.isArray(replacement) ? replacement : [ replacement ];\n\t}\n\treturn replacement;\n}\n\nfunction applyTemplate(current: any, template: any): any {\n\tif (current == null) {\n\t\treturn current;\n\t}\n\tif (isReplaceLeafTemplate(template)) {\n\t\treturn replaceLeafKeepingShape(current, template);\n\t}\n\tif (Array.isArray(current)) {\n\t\treturn current.map((item) => applyTemplate(item, template));\n\t}\n\tif (!isPlainObject(current) || !isPlainObject(template)) {\n\t\treturn current;\n\t}\n\tconst out: AnyObj = { ...current };\n\tlet changed = false;\n\n\tfor (const key of Object.keys(template)) {\n\t\tif (!(key in current)) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst next = applyTemplate(current[key], template[key]);\n\n\t\tif (next !== current[key]) {\n\t\t\tout[key] = next;\n\t\t\tchanged = true;\n\t\t}\n\t}\n\n\treturn changed ? out : current;\n}\n\nexport function arrReplaceTemplate<T>(where: T, template: AnyObj): T {\n\treturn applyTemplate(where, template) as T;\n}\n","export type JsonLike =\n\t| null\n\t| boolean\n\t| number\n\t| string\n\t| undefined\n\t| bigint\n\t| Date\n\t| JsonLike[]\n\t| { [key: string]: JsonLike };\n\nexport interface UniqueDeepOptions<T = unknown> {\n\tkeyFn?: (item: T) => string;\n}\n\nfunction isPlainObject(v: unknown): v is Record<string, unknown> {\n\treturn v !== null && typeof v === 'object' && !Array.isArray(v) && !(v instanceof Date);\n}\n\nfunction stableStringify(value: unknown): string {\n\tconst seen = new WeakSet<object>();\n\tconst inner = (v: unknown): string => {\n\t\tif (v === null) {\n\t\t\treturn 'null';\n\t\t}\n\t\tconst t = typeof v;\n\n\t\tif (t === 'string') {\n\t\t\treturn JSON.stringify(v);\n\t\t}\n\t\tif (t === 'number') {\n\t\t\treturn Number.isNaN(v) ? '\"__NaN__\"' : String(v);\n\t\t}\n\t\tif (t === 'boolean') {\n\t\t\treturn v ? 'true' : 'false';\n\t\t}\n\t\tif (t === 'undefined') {\n\t\t\treturn '\"__undefined__\"';\n\t\t}\n\t\tif (t === 'bigint') {\n\t\t\treturn `\"__bigint__:${String(v)}\"`;\n\t\t}\n\t\tif (t === 'function') {\n\t\t\treturn `\"__function__\"`;\n\t\t}\n\t\tif (v instanceof Date) {\n\t\t\treturn `\"__date__:${v.toISOString()}\"`;\n\t\t}\n\t\tif (Array.isArray(v)) {\n\t\t\treturn '[' + v.map(inner).join(',') + ']';\n\t\t}\n\t\tif (t === 'object' && v) {\n\t\t\tconst obj = v as Record<string, unknown>;\n\t\t\t\n\t\t\tif (seen.has(obj)) {\n\t\t\t\treturn '\"__circular__\"';\n\t\t\t}\n\t\t\tseen.add(obj);\n\n\t\t\tconst keys = Object.keys(obj).sort();\n\t\t\tconst props = keys.map((k) => JSON.stringify(k) + ':' + inner(obj[k]));\n\t\t\t\n\t\t\treturn '{' + props.join(',') + '}';\n\t\t}\n\t\treturn JSON.stringify(String(v));\n\t};\n\n\treturn inner(value);\n}\n\nfunction defaultKeyFn(item: unknown): string {\n\tif (item === null) {\n\t\treturn 'null';\n\t}\n\tconst t = typeof item;\n\n\tif (t === 'string') {\n\t\treturn 's:' + item;\n\t}\n\tif (t === 'number') {\n\t\treturn 'n:' + (Number.isNaN(item) ? '__NaN__' : item);\n\t}\n\tif (t === 'boolean') {\n\t\treturn 'b:' + item;\n\t}\n\tif (t === 'undefined') {\n\t\treturn 'u:';\n\t}\n\tif (t === 'bigint') {\n\t\treturn 'bi:' + String(item);\n\t}\n\tif (item instanceof Date) {\n\t\treturn 'd:' + item.toISOString();\n\t}\n\treturn 'o:' + stableStringify(item);\n}\n\nexport function arrUniqueDeep<T>(input: T, opts?: UniqueDeepOptions<unknown>): T {\n\tconst keyFn = opts?.keyFn ?? defaultKeyFn;\n\tconst walk = (node: unknown): unknown => {\n\t\tif (Array.isArray(node)) {\n\t\t\tconst processed = node.map(walk);\n\n\t\t\tconst seen = new Set<string>();\n\t\t\tconst out: unknown[] = [];\n\n\t\t\tfor (const item of processed) {\n\t\t\t\tconst key = keyFn(item);\n\t\t\t\tif (seen.has(key)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tseen.add(key);\n\t\t\t\tout.push(item);\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\tif (isPlainObject(node)) {\n\t\t\tconst out: Record<string, unknown> = {};\n\t\t\tfor (const k of Object.keys(node)) {\n\t\t\t\tout[k] = walk(node[k]);\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn node;\n\t};\n\n\treturn walk(input) as T;\n}\n","import { \n\tisBool,\n\tisNumP, \n\tisNumNZ,\n\tisStrFilled,\n} from '../index';\n\nexport function boolNormalize(value: unknown): boolean {\n\tswitch (true) {\n\t\tcase isBool(value):\n\t\t\treturn value;\n\n\t\tcase isNumP(value):\n\t\t\treturn true;\n\n\t\tcase isNumNZ(value):\n\t\t\treturn false;\n\n\t\tcase isStrFilled(value) && [ 'true', '1', 'yes', 'on' ].includes(String(value ?? '').trim().toLowerCase()):\n\t\t\treturn true;\n\n\t\tcase isStrFilled(value) && [ 'false', '0', 'no', 'off' ].includes(String(value ?? '').trim().toLowerCase()):\n\t\t\treturn false;\n\t}\n\treturn false;\n}\n","\nexport async function wait(timeout: number = 0) {\n\tawait (new Promise((resolve) => setTimeout(() => resolve(true), timeout)));\n}\n","\nexport function env(k: any): string | undefined {\n\treturn process.env[k];\n}\n","\nexport function dateFloorMin(everyMinutes = 1, date = new Date()): Date {\n\tconst step = Math.min(60, Math.max(1, Math.trunc(Math.abs(everyMinutes))));\n\tconst m = date.getMinutes();\n\tconst floored = Math.floor(m / step) * step;\n\tconst d = new Date(date);\n\t\n\td.setMinutes(floored, 0, 0);\n\t\n\treturn d;\n}\n","\nexport function dateStr(date = new Date()): string {\n\tconst pad = (n: number) => String(n).padStart(2, '0');\n\n\tconst year = date.getFullYear();\n\tconst month = pad(date.getMonth() + 1);\n\tconst day = pad(date.getDate());\n\n\tconst hours = pad(date.getHours());\n\tconst minutes = pad(date.getMinutes());\n\tconst seconds = pad(date.getSeconds());\n\n\treturn `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n}\n","import type { TimeParts } from '../index';\nimport { dateSecParts } from '../index';\n\nexport function datePartsSec(parts: TimeParts): number {\n\tconst { days = 0, hours = 0, minutes = 0, seconds = 0 } = parts;\n\n\treturn days * 86400 + hours * 3600 + minutes * 60 + seconds;\n}\n","import type { TimeParts } from '../index';\nimport { datePartsSec } from '../index';\n\nexport function dateSecParts(total: number): TimeParts {\n\tif (!Number.isFinite(total) || total < 0) {\n\t\tthrow new Error('Invalid total seconds');\n\t}\n\tconst days = Math.floor(total / 86400);\n\tconst hours = Math.floor((total % 86400) / 3600);\n\tconst minutes = Math.floor((total % 3600) / 60);\n\tconst seconds = total % 60;\n\t\n\treturn { days, hours, minutes, seconds };\n}\n","import { ipNumStr } from '../index';\nimport { parseIPv4 } from './parseIPv4';\n\nexport function ipStrNum(ip: string): number {\n\tconst parts = ip.split('.').map(p => Number(p));\n\n\tif (parts.length !== 4 || parts.some(p => !Number.isInteger(p) || p < 0 || p > 255)) {\n\t\tthrow new Error('Invalid IPv4 address');\n\t}\n\tconst buffer = new ArrayBuffer(4);\n\tconst dv = new DataView(buffer);\n\tlet i = 0;\n\n\twhile (i < 4) {\n\t\tdv.setUint8(i, parts[i]);\n\t\ti++;\n\t}\n\treturn dv.getUint32(0, false);\n}\n","import { \n\tisNumP,\n\tipStrNum, \n} from '../index';\n\nexport function ipNumStr(num: number): string {\n\tif (!isNumP(num)) {\n\t\treturn '';\n\t}\n\tconst nbuffer = new ArrayBuffer(4);\n\tconst ndv = new DataView(nbuffer);\n\n\tndv.setUint32(0, num, false);\n\n\tconst output: number[] = [];\n\tlet i = 0;\n\t\n\twhile (i < 4) {\n\t\toutput.push(ndv.getUint8(i));\n\t\ti++;\n\t}\n\treturn output.join('.');\n}\n","\nexport function isArr<T = unknown>(value: unknown): value is readonly [T, ...T[]] {\n\treturn Array.isArray(value);\n}\n","import { isArr } from '../index';\n\nexport function isArrFilled<T = unknown>(value: unknown): value is readonly [ T, ...T[] ] {\n\treturn isArr(value) && value.length > 0;\n}\n","\nexport function isBool(value: unknown): value is boolean {\n\treturn typeof value === 'boolean';\n}\n","import { isObj } from '../index';\n\nexport function isObjFilled(value: unknown): value is Record<string, unknown> {\n\treturn isObj(value) && Object.keys(value).length > 0;\n}\n","import { isBool } from './isBool';\nimport { isObjFilled } from './isObjFilled';\n\nexport function isBoolOrBoolTree(value: unknown): boolean {\n\tif (isBool(value)) {\n\t\treturn true;\n\t}\n\tif (!isObjFilled(value)) {\n\t\treturn false;\n\t}\n\tfor (const key of Object.keys(value)) {\n\t\tif (!isBoolOrBoolTree(value[key])) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n","import { \n\tisStr,\n\tisNum, \n} from '../index';\n\nexport function isDate(value: unknown): boolean {\n\tif (value instanceof Date) {\n\t\treturn !Number.isNaN(value.getTime());\n\t}\n\tif (isStr(value) || isNum(value)) {\n\t\tconst d = new Date(value as any);\n\n\t\treturn !Number.isNaN(d.getTime());\n\t}\n\treturn false;\n}\n","import { isStrFilled } from '../index';\n\nconst emailRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z]{2,})+$/;\n\nexport function isEmail(value: unknown): value is string {\n\tif (!isStrFilled(value)) {\n\t\treturn false;\n\t}\n\treturn emailRegex.test(value);\n}\n","\nexport function isExists<T>(value: T | null | undefined): value is T {\n\treturn value !== null && value !== undefined;\n}\n","\nexport function isFunc<T extends Function = Function>(value: unknown): value is T {\n\treturn typeof value === 'function';\n}\n","import { isStr } from '../index';\n\nconst IPV4_RE = /^(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/;\n\nexport function isIpAddr(value: unknown): value is string {\n\tif (!isStr(value)) {\n\t\treturn false;\n\t}\n\tconst v = value.trim();\n\t\n\treturn IPV4_RE.test(v);\n}\n","import { isStr } from '../index';\n\nexport function isMacAddr(value: unknown): value is string {\n\treturn isStr(value) && /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/.test(value);\n}\n","\nexport function isNum(value: unknown): value is number {\n\treturn (typeof value === 'number') && Number.isFinite(value);\n}\n","import { isNum } from '../index';\n\nexport function isNumFloat(value: unknown): value is number {\n\treturn isNum(value) && !Number.isInteger(value);\n}\n","import { isNum } from '../index';\n\nexport function isNumN(value: unknown): value is number {\n\treturn isNum(value) && value < 0;\n}\n","import { isNum } from '../index';\n\nexport function isNumNZ(value: unknown): value is number {\n\treturn isNum(value) && value <= 0;\n}\n","import { isNum } from '../index';\n\nexport function isNumP(value: unknown): value is number {\n\treturn isNum(value) && value > 0;\n}\n","import { isNum } from '../index';\n\nexport function isNumPZ(value: unknown): value is number {\n\treturn isNum(value) && value >= 0;\n}\n","\nexport function isObj(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === 'object' \n\t\t&& value !== null \n\t\t&& Object.prototype.toString.call(value) === '[object Object]'\n\t\t&& !Array.isArray(value)\n\t\t&& !(value instanceof Date);\n}\n","import { isObjFilled } from './isObjFilled';\nimport { isObj } from './isObj';\nimport { isArr } from './isArr';\nimport { isFunc } from './isFunc';\n\ntype Primitive =\n\t| string\n\t| number\n\t| boolean\n\t| bigint\n\t| symbol\n\t| null\n\t| undefined;\n\nexport function isObjFlat(value: unknown): value is Record<string, Primitive> {\n\tif (!isObjFilled(value)) {\n\t\treturn false;\n\t}\n\treturn Object.values(value).every((v) => v === null || (!isObj(v) && !isArr(v) || !isFunc(v)));\n}\n","import type { PasswordOptions } from '../index';\nimport { isStr } from '../index';\n\nexport function isPassword(\n\tvalue: unknown,\n\t{\n\t\tminLength = 8,\n\t\tmaxLength = 256,\n\t\trequireUppercase = true,\n\t\trequireLowercase = true,\n\t\trequireDigit = true,\n\t\trequireSpecial = true,\n\t}: PasswordOptions = {}\n): value is string {\n\tif (!isStr(value)) {\n\t\treturn false;\n\t}\n\tif (value.length < minLength || value.length > maxLength) {\n\t\treturn false;\n\t}\n\tif (requireUppercase && !/[A-ZА-Я]/.test(value)) {\n\t\treturn false;\n\t}\n\tif (requireLowercase && !/[a-zа-я]/.test(value)) {\n\t\treturn false;\n\t}\n\tif (requireDigit && !/\\d/.test(value)) {\n\t\treturn false;\n\t}\n\tif (requireSpecial && !/[~!?@#$%^&*_\\-+()\\[\\]{}><\\\\\\/|\"'.,:;=]/.test(value)) {\n\t\treturn false;\n\t}\n\treturn true;\n}\n","import { \n\tisStrFilled,\n\tisNum, \n} from '../index';\n\nexport function isPhone(value: unknown): value is string {\n\tif (!isStrFilled(value) \n\t\t&& !isNum(value)) {\n\t\treturn false;\n\t}\n\tconst valueProcessed = String(value).trim();\n\n\tif (valueProcessed.startsWith('-')) {\n\t\treturn false;\n\t}\n\tif ((valueProcessed.match(/\\+/g) || []).length > 1) {\n\t\treturn false;\n\t}\n\tif (valueProcessed.includes('+') && !valueProcessed.startsWith('+')) {\n\t\treturn false;\n\t}\n\tif (!/^\\+?[0-9-]+$/.test(valueProcessed)) {\n\t\treturn false;\n\t}\n\tif (valueProcessed.length < 3 || valueProcessed.length > 20) {\n\t\treturn false;\n\t}\n\tif (!/[0-9]$/.test(valueProcessed)) {\n\t\treturn false;\n\t}\n\tif (valueProcessed.includes('--')) {\n\t\treturn false;\n\t}\n\treturn true;\n}\n","\nexport function isStr(value: unknown): value is string {\n\treturn typeof value === 'string';\n}\n","import { isStrFilled } from '../index';\n\nexport function isStrBool(value: unknown): value is string {\n\tif (!isStrFilled(value)) {\n\t\treturn false;\n\t}\n\tconst normalized = value.trim().toLowerCase();\n\t\n\treturn normalized === 'true' || normalized === 'false';\n}\n","import { isStr } from '../index';\n\nexport function isStrFilled(value: unknown): value is string {\n\treturn isStr(value) && value.trim().length > 0;\n}\n","import { isStrFilled } from '../index';\n\nexport function isStrAscDesc(value: unknown): value is 'asc' | 'desc' {\n\tif (!isStrFilled(value)) {\n\t\treturn false;\n\t}\n\tconst normalized = value.trim().toLowerCase();\n\t\n\treturn normalized === 'asc' || normalized === 'desc';\n}\n","import { isStr } from '../index';\n\nexport function isVar(value: unknown): value is string {\n\treturn isStr(value) && /^[A-Za-z_][A-Za-z0-9_]*$/.test(value);\n}\n","import { isFunc } from './isFunc';\n\nexport function isClass(value: unknown): boolean {\n\treturn isFunc(value) && /^class\\s/.test(Function.prototype.toString.call(value));\n}\n","import type { FixedDecimal } from './types';\n\nexport function fixedDecimalToStr(value: FixedDecimal): string {\n\tconst signSymbol = value.sign < 0 ? '-' : '';\n\tconst allDigitsString = value.digitsInteger.toString();\n\n\tif (value.scale === 0) {\n\t\treturn signSymbol + allDigitsString;\n\t}\n\tconst padZeros = value.scale - allDigitsString.length;\n\n\tif (padZeros >= 0) {\n\t\treturn signSymbol + '0.' + '0'.repeat(padZeros) + allDigitsString;\n\t}\n\tconst integerBoundary = allDigitsString.length - value.scale;\n\tconst integerText = allDigitsString.slice(0, integerBoundary);\n\tconst fractionalText = allDigitsString.slice(integerBoundary);\n\n\treturn signSymbol + integerText + '.' + fractionalText;\n}\n","import type { FixedDecimal } from './types';\nimport { fixedDecimalToStr } from './fixedDecimalToStr';\n\nexport function fixedDecimalToNum(value: FixedDecimal): number {\n\treturn Number(fixedDecimalToStr(value));\n}\n","import { isNumPZ } from '../index';\n\nexport function convertExponentialToParts(\n\tsign: 1 | -1,\n\texponentialString: string\n): { sign: 1 | -1; integerPart: string; fractionalPart: string } {\n\tconst match = /^([0-9]+)(?:\\.([0-9]*))?e([+\\-]?[0-9]+)$/i.exec(\n\t\t(() => {\n\t\t\tconst [coefficient, exponentText] = exponentialString.split(/e/i);\n\t\t\tconst [integerPart, fractionalPart = ''] = coefficient.split('.');\n\t\t\tconst allDigits = integerPart.replace(/^0+/, '') + fractionalPart;\n\t\t\tconst exponentValue = parseInt(exponentText, 10) - fractionalPart.length;\n\t\t\t\n\t\t\treturn `${allDigits || '0'}e${exponentValue}`;\n\t\t})()\n\t);\n\n\tif (!match) {\n\t\tthrow new Error('Failed to parse exponential notation.');\n\t}\n\tlet allDigits = match[1];\n\tconst exponent = parseInt(match[3], 10);\n\n\tif (isNumPZ(exponent)) {\n\t\tallDigits = allDigits + '0'.repeat(exponent);\n\t\t\n\t\treturn { \n\t\t\tsign, \n\t\t\tintegerPart: allDigits || '0', \n\t\t\tfractionalPart: '', \n\t\t};\n\t} \n\telse {\n\t\tconst digitsToLeft = -exponent;\n\t\t\n\t\tif (digitsToLeft >= allDigits.length) {\n\t\t\tconst missingZeros = '0'.repeat(digitsToLeft - allDigits.length);\n\t\t\t\n\t\t\treturn {\n\t\t\t\tsign,\n\t\t\t\tintegerPart: '0',\n\t\t\t\tfractionalPart: missingZeros + allDigits,\n\t\t\t};\n\t\t}\n\t\telse {\n\t\t\tconst splitIndex = allDigits.length - digitsToLeft;\n\t\t\t\n\t\t\treturn {\n\t\t\t\tsign,\n\t\t\t\tintegerPart: allDigits.slice(0, splitIndex),\n\t\t\t\tfractionalPart: allDigits.slice(splitIndex),\n\t\t\t};\n\t\t}\n\t}\n}","import { convertExponentialToParts } from './convertExponentialToParts';\n\nexport function normalizeToDecimalComponents(input: unknown): {\n\tsign: 1 | -1;\n\tintegerPart: string;\n\tfractionalPart: string;\n} {\n\tif (typeof input === 'bigint') {\n\t\tconst sign: 1 | -1 = input < 0n ? -1 : 1;\n\t\tconst absoluteValue = (input < 0n ? -input : input).toString();\n\t\t\n\t\treturn { \n\t\t\tsign, \n\t\t\tintegerPart: absoluteValue, \n\t\t\tfractionalPart: '', \n\t\t};\n\t}\n\tif (typeof input === 'number') {\n\t\tif (!Number.isFinite(input)) {\n\t\t\tthrow new Error('Input number is not finite.');\n\t\t}\n\t\tconst sign: 1 | -1 = input < 0 ? -1 : 1;\n\t\tconst absoluteValue = Math.abs(input);\n\t\tconst exponentialForm = absoluteValue.toExponential(30); // например \"1.23456e-5\"\n\t\t\n\t\treturn convertExponentialToParts(sign, exponentialForm);\n\t}\n\tif (typeof input === 'string') {\n\t\tlet processed = input.trim().replace(',', '.');\n\t\t\n\t\tif (!processed) {\n\t\t\tthrow new Error('Input string is empty.');\n\t\t}\n\t\tlet sign: 1 | -1 = 1;\n\t\t\n\t\tif (processed.startsWith('+') || processed.startsWith('-')) {\n\t\t\tsign = processed.startsWith('-') ? -1 : 1;\n\t\t\tprocessed = processed.slice(1);\n\t\t}\n\t\tif (/^[0-9]*\\.?[0-9]*(e[+\\-]?[0-9]+)?$/i.test(processed)) {\n\t\t\tif (/e/i.test(processed)) {\n\t\t\t\treturn convertExponentialToParts(sign, processed);\n\t\t\t}\n\t\t\tconst [ integerPart = '0', fractionalPart = '' ] = processed.split('.');\n\t\t\t\n\t\t\treturn { \n\t\t\t\tsign, \n\t\t\t\tintegerPart, \n\t\t\t\tfractionalPart, \n\t\t\t};\n\t\t}\n\t\tthrow new Error('Invalid numeric string.');\n\t}\n\tthrow new Error('Unsupported input type.');\n}","import type { FixedDecimal } from './types';\nimport { normalizeToDecimalComponents } from './normalizeToDecimalComponents';\n\nexport function parseToFixedDecimal(input: unknown): FixedDecimal {\n\tconst { \n\t\tsign, \n\t\tintegerPart, \n\t\tfractionalPart, \n\t} = normalizeToDecimalComponents(input);\n\tconst integerDigits = integerPart.replace(/^0+/, '') || '0';\n\tconst fractionalDigits = fractionalPart.replace(/0+$/, '');\n\tconst combinedDigits = (integerDigits + fractionalDigits) || '0';\n\n\treturn {\n\t\tsign,\n\t\tdigitsInteger: BigInt(combinedDigits),\n\t\tscale: fractionalDigits.length,\n\t};\n}\n","import type { FixedDecimal } from './types';\n\nexport function roundFixedDecimal(\n\tsource: FixedDecimal,\n\tdecimalPlaces: number,\n\troundMode: 'half-up' | 'trunc' = 'half-up'\n): FixedDecimal {\n\tconst targetPrecision = Math.max(0, Math.trunc(decimalPlaces));\n\n\tif (source.scale <= targetPrecision) {\n\t\treturn { ...source };\n\t}\n\tconst digitsToRemove = source.scale - targetPrecision;\n\tconst divisionFactor = 10n ** BigInt(digitsToRemove);\n\tconst integerPart = source.digitsInteger / divisionFactor;\n\tconst remainder = source.digitsInteger % divisionFactor;\n\n\tif (roundMode === 'trunc' || remainder === 0n) {\n\t\treturn { \n\t\t\tsign: source.sign, \n\t\t\tdigitsInteger: integerPart, \n\t\t\tscale: targetPrecision, \n\t\t};\n\t}\n\tconst halfThreshold = divisionFactor / 2n;\n\tconst shouldRoundUp = remainder >= halfThreshold;\n\tconst roundedValue = shouldRoundUp ? integerPart + 1n : integerPart;\n\t\n\treturn { \n\t\tsign: source.sign, \n\t\tdigitsInteger: roundedValue, \n\t\tscale: targetPrecision, \n\t};\n}","import { fixedDecimalToNum } from './fixedDecimalToNum';\nimport { parseToFixedDecimal } from './parseToFixedDecimal';\nimport { roundFixedDecimal } from './roundFixedDecimal';\n\nexport function numNormalize(value: unknown, round: number = 1, throwError: boolean = false): number {\n\ttry {\n\t\treturn fixedDecimalToNum((round > 1) ? roundFixedDecimal(parseToFixedDecimal(value), round, 'half-up') : parseToFixedDecimal(value));\n\t}\n\tcatch (err: any) {\n\t\tif (throwError) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\treturn 0;\n}\n","import { \n\tisStrFilled,\n\tisStr,\n\tstrTrim, \n} from '../index';\n\nexport function strLowerCase(value?: unknown): string {\n\tif (!isStr(value)) {\n\t\treturn '';\n\t}\n\tconst trimmed = strTrim(value);\n\t\n\treturn isStrFilled(trimmed) ? trimmed.toLowerCase() : '';\n}\n","import { \n\tisStrFilled,\n\tisStr,\n\tstrLowerCase, \n} from '../index';\n\nexport function strNormalCase(value?: unknown): string {\n\tif (!isStr(value)) {\n\t\treturn '';\n\t}\n\tconst parsed = strLowerCase(value);\n\t\n\treturn isStrFilled(parsed) ? (parsed[0].toUpperCase() + parsed.slice(1)) : '';\n}\n","import { \n\tisStr,\n\tstrTrim,\n\tstrUndefined, \n} from '../index';\n\nexport function strNull(value: unknown) {\n\treturn ((isStr(value) && strTrim(value) === '') || value === undefined) ? null : value;\n}\n","import { \n\tisStr,\n\tstrTrim, \n} from '../index';\n\nexport function strPhone(value?: unknown, defaultCountry = '+7'): string | null {\n\tif (!isStr(value)) {\n\t\treturn null;\n\t}\n\tlet phone = strTrim(value).replace(/[\\s\\-().]/g, '');\n\n\tif (/^00\\d{8,15}$/.test(phone)) {\n\t\tphone = '+' + phone.slice(2);\n\t}\n\telse if (/^\\d{10}$/.test(phone)) {\n\t\tphone = defaultCountry + phone;\n\t}\n\telse if (/^\\d{9,15}$/.test(phone) && !phone.startsWith('0')) {\n\t\tphone = '+' + phone;\n\t}\n\treturn /^\\+\\d{10,15}$/.test(phone) ? phone : null;\n}\n","import { isStr } from '../index';\n\nexport function strTrim(value: unknown, border: string = ''): string {\n\tconst result = String(isStr(value) ? value.trim().normalize('NFKC').replace(/[\\u200B-\\u200D\\uFEFF]/g, '') : '');\n\n\tif (border) {\n\t\treturn result.split(border).filter((item) => !!item).join(border);\n\t}\n\treturn result;\n}\n","import { \n\tisStr,\n\tstrTrim,\n\tstrNull, \n} from '../index';\n\nexport function strUndefined(value: unknown) {\n\treturn ((isStr(value) && strTrim(value) === '') || value === null) ? undefined : value\n}\n","import { \n\tisStr,\n\tstrTrim, \n} from '../index';\n\nexport const strNormalize = (v: unknown) => {\n\tif (!isStr(v)) {\n\t\treturn v;\n\t}\n\tconst t = String(strTrim(v) || '');\n\t\n\treturn t === '' \n\t\t? null \n\t\t: String(t.toLowerCase() || '').replace(/\\s+/g, ' ').replace(/\\t+/g, '').replace(/\\n+/g,'');\n};\n","import type { UrlObj } from './types';\n\nexport function urlObj(value: string = ''): UrlObj {\n\treturn {} as UrlObj;\n}\n","import { isStrFilled } from '../index';\n\nexport function urlDecode(input: string): string {\n\tif (!isStrFilled(input)) {\n\t\treturn String(input);\n\t}\n\tconst RAW = '____RAW_PERCENT____';\n\tconst pre = input.replace(/%(?![0-9A-Fa-f]{2})/g, RAW);\n\tconst WHITELIST = new Set(['22', '7B', '7D', '3A', '2C', '5B', '5D', '5C']);\n\tconst decoded = pre.replace(/%([0-9A-Fa-f]{2})/g, (_m, hh: string) => {\n\t\tconst code = hh.toUpperCase();\n\n\t\tif (!WHITELIST.has(code)) {\n\t\t\treturn `%${code}`;\n\t\t}\n\t\treturn decodeURIComponent(`%${code}`);\n\t});\n\treturn decoded.split(RAW).join('%');\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/arr/arrFuncArgs.ts","../src/arr/arrSplitBatches.ts","../src/arr/arrReplaceTemplate.ts","../src/arr/arrUniqueDeep.ts","../src/bool/boolNormalize.ts","../src/common/wait.ts","../src/common/env.ts","../src/date/dateFloorMin.ts","../src/date/dateStr.ts","../src/date/datePartsSec.ts","../src/date/dateSecParts.ts","../src/ip-addr/ipStrNum.ts","../src/ip-addr/ipNumStr.ts","../src/ip-addr/parseIPv4.ts","../src/ip-addr/toIPv4.ts","../src/ip-addr/cidrToRange.ts","../src/ip-addr/rangeIPv4.ts","../src/ip-addr/rangeIPv4ToArr.ts","../src/is/isArr.ts","../src/is/isArrFilled.ts","../src/is/isBool.ts","../src/is/isObjFilled.ts","../src/is/isBoolOrBoolTree.ts","../src/is/isDate.ts","../src/is/isEmail.ts","../src/is/isExists.ts","../src/is/isFunc.ts","../src/is/isIpAddr.ts","../src/is/isMacAddr.ts","../src/is/isNum.ts","../src/is/isNumFloat.ts","../src/is/isNumN.ts","../src/is/isNumNZ.ts","../src/is/isNumP.ts","../src/is/isNumPZ.ts","../src/is/isObj.ts","../src/is/isObjFlat.ts","../src/is/isPassword.ts","../src/is/isPhone.ts","../src/is/isStr.ts","../src/is/isStrBool.ts","../src/is/isStrFilled.ts","../src/is/isStrAscDesc.ts","../src/is/isVar.ts","../src/is/isClass.ts","../src/num/fixedDecimalToStr.ts","../src/num/fixedDecimalToNum.ts","../src/num/convertExponentialToParts.ts","../src/num/normalizeToDecimalComponents.ts","../src/num/parseToFixedDecimal.ts","../src/num/roundFixedDecimal.ts","../src/num/numNormalize.ts","../src/str/strLowerCase.ts","../src/str/strNormalCase.ts","../src/str/strNull.ts","../src/str/strPhone.ts","../src/str/strTrim.ts","../src/str/strUndefined.ts","../src/str/strNormalize.ts","../src/url/urlObj.ts","../src/url/urlDecode.ts"],"names":["arrFuncArgs","value","isStr","src","buf","inQuote","quoteChar","esc","depthParen","depthBracket","depthBrace","items","finalize","trimmed","i","ch","raw","isStrBool","boolNormalize","n","numNormalize","rawStr","arrSplitBatches","arr","portionLength","out","isPlainObject","v","isReplaceLeafTemplate","replaceLeafKeepingShape","current","replacement","applyTemplate","template","item","changed","key","next","arrReplaceTemplate","where","stableStringify","seen","inner","t","obj","k","defaultKeyFn","arrUniqueDeep","input","opts","keyFn","walk","node","processed","isBool","isNumP","isNumNZ","isStrFilled","wait","timeout","resolve","env","dateFloorMin","everyMinutes","date","step","m","floored","d","dateStr","pad","year","month","day","hours","minutes","seconds","datePartsSec","parts","days","dateSecParts","total","ipStrNum","ip","p","buffer","dv","ipNumStr","num","nbuffer","ndv","output","parseIPv4","strTrim","toIPv4","cidrToRange","cidr","maskStr","base","mask","netmask","start","end","rangeIPv4","from","to","includeNetwork","includeBroadcast","startNum","endNum","isCIDR","cidrMask","range","startStr","endStr","_","s","e","a","b","c","skipNetworkAt","skipBroadcastAt","cur","rangeIPv4ToArr","limit","count","isArr","isArrFilled","isObjFilled","isObj","isBoolOrBoolTree","isDate","isNum","emailRegex","isEmail","isExists","isFunc","IPV4_RE","isIpAddr","isMacAddr","isNumFloat","isNumN","isNumPZ","isObjFlat","isPassword","minLength","maxLength","requireUppercase","requireLowercase","requireDigit","requireSpecial","isPhone","valueProcessed","normalized","isStrAscDesc","isVar","isClass","fixedDecimalToStr","signSymbol","allDigitsString","padZeros","integerBoundary","integerText","fractionalText","fixedDecimalToNum","convertExponentialToParts","sign","exponentialString","match","coefficient","exponentText","integerPart","fractionalPart","allDigits","exponentValue","exponent","digitsToLeft","missingZeros","splitIndex","normalizeToDecimalComponents","absoluteValue","exponentialForm","parseToFixedDecimal","integerDigits","fractionalDigits","combinedDigits","roundFixedDecimal","source","decimalPlaces","roundMode","targetPrecision","digitsToRemove","divisionFactor","remainder","halfThreshold","roundedValue","round","throwError","err","strLowerCase","strNormalCase","parsed","strNull","strPhone","defaultCountry","phone","border","result","strUndefined","strNormalize","urlObj","urlDecode","RAW","pre","WHITELIST","_m","hh","code"],"mappings":"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","file":"browser.cjs","sourcesContent":["import { \n\tisStrBool,\n\tisStr, \n\tboolNormalize,\n\tnumNormalize,\n} from '../index';\n\ntype Quote = \"'\" | '\"' | null;\n\nexport function arrFuncArgs(value: string): unknown[] {\n\tif (!isStr(value)) {\n\t\treturn [value];\n\t}\n\tlet src = value.trim();\n\t\n\tif (src === '') {\n\t\treturn [];\n\t}\n\tif (src.startsWith('[') && src.endsWith(']')) {\n\t\tsrc = src.slice(1, -1).trim();\n\t\t\n\t\tif (src === '') {\n\t\t\treturn [];\n\t\t}\n\t}\n\tlet buf = '',\n\t\tinQuote = false,\n\t\tquoteChar: Quote = null,\n\t\tesc = false,\n\t\tdepthParen = 0,\n\t\tdepthBracket = 0,\n\t\tdepthBrace = 0;\n\n\tconst items: string[] = [];\n\tconst finalize = () => {\n\t\tconst trimmed = buf.trim();\n\t\t\n\t\tif (trimmed !== '') {\n\t\t\titems.push(trimmed);\n\t\t}\n\t\tbuf = '';\n\t};\n\n\tfor (let i = 0; i < src.length; i++) {\n\t\tconst ch = src[i];\n\n\t\tif (inQuote) {\n\t\t\tbuf += ch;\n\n\t\t\tif (esc) { \n\t\t\t\tesc = false; \n\t\t\t\tcontinue; \n\t\t\t}\n\t\t\tif (ch === '\\\\') { \n\t\t\t\tesc = true; \n\t\t\t\tcontinue; \n\t\t\t}\n\t\t\tif (ch === quoteChar) {\n\t\t\t\tinQuote = false;\n\t\t\t\tquoteChar = null;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (ch === '\"' || ch === \"'\") {\n\t\t\tinQuote = true;\n\t\t\tquoteChar = ch as Quote;\n\t\t\tbuf += ch;\n\t\t\t\n\t\t\tcontinue;\n\t\t}\n\t\tif (ch === '(') { \n\t\t\tdepthParen++; \n\t\t\tbuf += ch; \n\n\t\t\tcontinue; \n\t\t}\n\t\tif (ch === ')') { \n\t\t\tdepthParen = Math.max(0, depthParen - 1); \n\t\t\tbuf += ch; \n\t\t\t\n\t\t\tcontinue; \n\t\t}\n\t\tif (ch === '[') { \n\t\t\tdepthBracket++; \n\t\t\tbuf += ch; \n\t\t\t\n\t\t\tcontinue; \n\t\t}\n\t\tif (ch === ']') { \n\t\t\tdepthBracket = Math.max(0, depthBracket - 1); \n\t\t\tbuf += ch; \n\t\t\t\n\t\t\tcontinue; \n\t\t}\n\t\tif (ch === '{') { \n\t\t\tdepthBrace++; \n\t\t\tbuf += ch; \n\t\t\t\n\t\t\tcontinue; \n\t\t}\n\t\tif (ch === '}') { \n\t\t\tdepthBrace = Math.max(0, depthBrace - 1); \n\t\t\tbuf += ch; \n\n\t\t\tcontinue; \n\t\t}\n\t\tif (ch === ',' && depthParen === 0 && depthBracket === 0 && depthBrace === 0) {\n\t\t\tfinalize();\n\t\t\t\n\t\t\tcontinue;\n\t\t}\n\t\tbuf += ch;\n\t}\n\tif (buf.length) {\n\t\tfinalize();\n\t}\n\treturn items.map((raw: string): unknown => {\n\t\tif (raw.startsWith('$') && raw.includes('(') && raw.endsWith(')')) {\n\t\t\treturn raw;\n\t\t}\n\t\tif (raw === 'null') {\n\t\t\treturn null;\n\t\t}\n\t\tif (raw === 'undefined') {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (isStrBool(raw)) {\n\t\t\treturn boolNormalize(raw);\n\t\t}\n\t\tconst n = numNormalize(raw as any);\n\t\t\n\t\tif (Number.isFinite(n)) {\n\t\t\treturn n;\n\t\t}\t\t\n\t\tif (raw === 'Infinity') {\n\t\t\treturn Infinity;\n\t\t}\n\t\tif (raw === '-Infinity') {\n\t\t\treturn -Infinity;\n\t\t}\n\t\tconst rawStr: string = String(raw || '');\n\t\tconst hasQuotes = rawStr.length >= 2\n\t\t\t&& ((rawStr.startsWith(\"'\") && rawStr.endsWith(\"'\")) \n\t\t\t\t|| (rawStr.startsWith('\"') && rawStr.endsWith('\"')));\n\n\t\tif (hasQuotes) {\n\t\t\treturn rawStr\n\t\t\t\t.slice(1, -1)\n\t\t\t\t.replace(/\\\\\\\\/g, '\\\\')\n\t\t\t\t.replace(/\\\\'/g, \"'\")\n\t\t\t\t.replace(/\\\\\"/g, '\"');\n\t\t}\n\t\tif ((rawStr.startsWith('{') && rawStr.endsWith('}')) || (rawStr.startsWith('[') && rawStr.endsWith(']'))) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(rawStr);\n\t\t\t} \n\t\t\tcatch {\n\t\t\t}\n\t\t}\n\t\treturn rawStr;\n\t});\n}\n","\nexport function arrSplitBatches<T>(arr: readonly T[], portionLength: number): T[][] {\n\tif (!Number.isInteger(portionLength) || portionLength <= 0) {\n\t\treturn [];\n\t}\n\tconst out: T[][] = [];\n\tlet i = 0;\n\t\n\twhile (i < arr.length) {\n\t\tout.push(arr.slice(i, i + portionLength));\n\t\ti += portionLength;\n\t}\n\treturn out;\n}\n","\ntype AnyObj = Record<string, any>;\n\nfunction isPlainObject(v: any): v is AnyObj {\n\treturn v !== null && typeof v === 'object' && !Array.isArray(v);\n}\n\nfunction isReplaceLeafTemplate(v: any): boolean {\n\treturn v === null || v === undefined || typeof v !== 'object' || v instanceof Date;\n}\n\nfunction replaceLeafKeepingShape(current: any, replacement: any) {\n\tif (Array.isArray(current)) {\n\t\treturn Array.isArray(replacement) ? replacement : [ replacement ];\n\t}\n\treturn replacement;\n}\n\nfunction applyTemplate(current: any, template: any): any {\n\tif (current == null) {\n\t\treturn current;\n\t}\n\tif (isReplaceLeafTemplate(template)) {\n\t\treturn replaceLeafKeepingShape(current, template);\n\t}\n\tif (Array.isArray(current)) {\n\t\treturn current.map((item) => applyTemplate(item, template));\n\t}\n\tif (!isPlainObject(current) || !isPlainObject(template)) {\n\t\treturn current;\n\t}\n\tconst out: AnyObj = { ...current };\n\tlet changed = false;\n\n\tfor (const key of Object.keys(template)) {\n\t\tif (!(key in current)) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst next = applyTemplate(current[key], template[key]);\n\n\t\tif (next !== current[key]) {\n\t\t\tout[key] = next;\n\t\t\tchanged = true;\n\t\t}\n\t}\n\n\treturn changed ? out : current;\n}\n\nexport function arrReplaceTemplate<T>(where: T, template: AnyObj): T {\n\treturn applyTemplate(where, template) as T;\n}\n","export type JsonLike =\n\t| null\n\t| boolean\n\t| number\n\t| string\n\t| undefined\n\t| bigint\n\t| Date\n\t| JsonLike[]\n\t| { [key: string]: JsonLike };\n\nexport interface UniqueDeepOptions<T = unknown> {\n\tkeyFn?: (item: T) => string;\n}\n\nfunction isPlainObject(v: unknown): v is Record<string, unknown> {\n\treturn v !== null && typeof v === 'object' && !Array.isArray(v) && !(v instanceof Date);\n}\n\nfunction stableStringify(value: unknown): string {\n\tconst seen = new WeakSet<object>();\n\tconst inner = (v: unknown): string => {\n\t\tif (v === null) {\n\t\t\treturn 'null';\n\t\t}\n\t\tconst t = typeof v;\n\n\t\tif (t === 'string') {\n\t\t\treturn JSON.stringify(v);\n\t\t}\n\t\tif (t === 'number') {\n\t\t\treturn Number.isNaN(v) ? '\"__NaN__\"' : String(v);\n\t\t}\n\t\tif (t === 'boolean') {\n\t\t\treturn v ? 'true' : 'false';\n\t\t}\n\t\tif (t === 'undefined') {\n\t\t\treturn '\"__undefined__\"';\n\t\t}\n\t\tif (t === 'bigint') {\n\t\t\treturn `\"__bigint__:${String(v)}\"`;\n\t\t}\n\t\tif (t === 'function') {\n\t\t\treturn `\"__function__\"`;\n\t\t}\n\t\tif (v instanceof Date) {\n\t\t\treturn `\"__date__:${v.toISOString()}\"`;\n\t\t}\n\t\tif (Array.isArray(v)) {\n\t\t\treturn '[' + v.map(inner).join(',') + ']';\n\t\t}\n\t\tif (t === 'object' && v) {\n\t\t\tconst obj = v as Record<string, unknown>;\n\t\t\t\n\t\t\tif (seen.has(obj)) {\n\t\t\t\treturn '\"__circular__\"';\n\t\t\t}\n\t\t\tseen.add(obj);\n\n\t\t\tconst keys = Object.keys(obj).sort();\n\t\t\tconst props = keys.map((k) => JSON.stringify(k) + ':' + inner(obj[k]));\n\t\t\t\n\t\t\treturn '{' + props.join(',') + '}';\n\t\t}\n\t\treturn JSON.stringify(String(v));\n\t};\n\n\treturn inner(value);\n}\n\nfunction defaultKeyFn(item: unknown): string {\n\tif (item === null) {\n\t\treturn 'null';\n\t}\n\tconst t = typeof item;\n\n\tif (t === 'string') {\n\t\treturn 's:' + item;\n\t}\n\tif (t === 'number') {\n\t\treturn 'n:' + (Number.isNaN(item) ? '__NaN__' : item);\n\t}\n\tif (t === 'boolean') {\n\t\treturn 'b:' + item;\n\t}\n\tif (t === 'undefined') {\n\t\treturn 'u:';\n\t}\n\tif (t === 'bigint') {\n\t\treturn 'bi:' + String(item);\n\t}\n\tif (item instanceof Date) {\n\t\treturn 'd:' + item.toISOString();\n\t}\n\treturn 'o:' + stableStringify(item);\n}\n\nexport function arrUniqueDeep<T>(input: T, opts?: UniqueDeepOptions<unknown>): T {\n\tconst keyFn = opts?.keyFn ?? defaultKeyFn;\n\tconst walk = (node: unknown): unknown => {\n\t\tif (Array.isArray(node)) {\n\t\t\tconst processed = node.map(walk);\n\n\t\t\tconst seen = new Set<string>();\n\t\t\tconst out: unknown[] = [];\n\n\t\t\tfor (const item of processed) {\n\t\t\t\tconst key = keyFn(item);\n\t\t\t\tif (seen.has(key)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tseen.add(key);\n\t\t\t\tout.push(item);\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\tif (isPlainObject(node)) {\n\t\t\tconst out: Record<string, unknown> = {};\n\t\t\tfor (const k of Object.keys(node)) {\n\t\t\t\tout[k] = walk(node[k]);\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn node;\n\t};\n\n\treturn walk(input) as T;\n}\n","import { \n\tisBool,\n\tisNumP, \n\tisNumNZ,\n\tisStrFilled,\n} from '../index';\n\nexport function boolNormalize(value: unknown): boolean {\n\tswitch (true) {\n\t\tcase isBool(value):\n\t\t\treturn value;\n\n\t\tcase isNumP(value):\n\t\t\treturn true;\n\n\t\tcase isNumNZ(value):\n\t\t\treturn false;\n\n\t\tcase isStrFilled(value) && [ 'true', '1', 'yes', 'on' ].includes(String(value ?? '').trim().toLowerCase()):\n\t\t\treturn true;\n\n\t\tcase isStrFilled(value) && [ 'false', '0', 'no', 'off' ].includes(String(value ?? '').trim().toLowerCase()):\n\t\t\treturn false;\n\t}\n\treturn false;\n}\n","\nexport async function wait(timeout: number = 0) {\n\tawait (new Promise((resolve) => setTimeout(() => resolve(true), timeout)));\n}\n","\nexport function env(k: any): string | undefined {\n\treturn process.env[k];\n}\n","\nexport function dateFloorMin(everyMinutes = 1, date = new Date()): Date {\n\tconst step = Math.min(60, Math.max(1, Math.trunc(Math.abs(everyMinutes))));\n\tconst m = date.getMinutes();\n\tconst floored = Math.floor(m / step) * step;\n\tconst d = new Date(date);\n\t\n\td.setMinutes(floored, 0, 0);\n\t\n\treturn d;\n}\n","\nexport function dateStr(date = new Date()): string {\n\tconst pad = (n: number) => String(n).padStart(2, '0');\n\n\tconst year = date.getFullYear();\n\tconst month = pad(date.getMonth() + 1);\n\tconst day = pad(date.getDate());\n\n\tconst hours = pad(date.getHours());\n\tconst minutes = pad(date.getMinutes());\n\tconst seconds = pad(date.getSeconds());\n\n\treturn `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n}\n","import type { TimeParts } from '../index';\nimport { dateSecParts } from '../index';\n\nexport function datePartsSec(parts: TimeParts): number {\n\tconst { days = 0, hours = 0, minutes = 0, seconds = 0 } = parts;\n\n\treturn days * 86400 + hours * 3600 + minutes * 60 + seconds;\n}\n","import type { TimeParts } from '../index';\nimport { datePartsSec } from '../index';\n\nexport function dateSecParts(total: number): TimeParts {\n\tif (!Number.isFinite(total) || total < 0) {\n\t\tthrow new Error('Invalid total seconds');\n\t}\n\tconst days = Math.floor(total / 86400);\n\tconst hours = Math.floor((total % 86400) / 3600);\n\tconst minutes = Math.floor((total % 3600) / 60);\n\tconst seconds = total % 60;\n\t\n\treturn { days, hours, minutes, seconds };\n}\n","import { ipNumStr } from '../index';\nimport { parseIPv4 } from './parseIPv4';\n\nexport function ipStrNum(ip: string): number {\n\tconst parts = ip.split('.').map(p => Number(p));\n\n\tif (parts.length !== 4 || parts.some(p => !Number.isInteger(p) || p < 0 || p > 255)) {\n\t\tthrow new Error('Invalid IPv4 address');\n\t}\n\tconst buffer = new ArrayBuffer(4);\n\tconst dv = new DataView(buffer);\n\tlet i = 0;\n\n\twhile (i < 4) {\n\t\tdv.setUint8(i, parts[i]);\n\t\ti++;\n\t}\n\treturn dv.getUint32(0, false);\n}\n","import { \n\tisNumP,\n\tipStrNum, \n} from '../index';\n\nexport function ipNumStr(num: number): string {\n\tif (!isNumP(num)) {\n\t\treturn '';\n\t}\n\tconst nbuffer = new ArrayBuffer(4);\n\tconst ndv = new DataView(nbuffer);\n\n\tndv.setUint32(0, num, false);\n\n\tconst output: number[] = [];\n\tlet i = 0;\n\t\n\twhile (i < 4) {\n\t\toutput.push(ndv.getUint8(i));\n\t\ti++;\n\t}\n\treturn output.join('.');\n}\n","import { \n\tisStr,\n\tstrTrim, \n} from '../index';\n\nexport function parseIPv4(ip: string): number | null {\n\tif (!isStr(ip)) {\n\t\treturn null;\n\t}\n\tconst parts = strTrim(ip).split('.');\n\t\n\tif (parts.length !== 4) {\n\t\treturn null;\n\t}\n\tlet out = 0;\n\t\n\tfor (let i = 0; i < 4; i++) {\n\t\tif (!/^\\d{1,3}$/.test(parts[i])) {\n\t\t\treturn null;\n\t\t}\n\t\tconst n = Number(parts[i]);\n\t\t\n\t\tif (n < 0 || n > 255) {\n\t\t\treturn null;\n\t\t}\n\t\tout = (out << 8) | n;\n\t}\n\treturn out >>> 0;\n}\n","import { parseIPv4 } from './parseIPv4';\n\nexport function toIPv4(n: number): string {\n\tif (!Number.isInteger(n) || n < 0 || n > 0xFFFFFFFF) {\n\t\tthrow new Error(`Invalid IPv4 number: ${n}`);\n\t}\n\treturn [\n\t\t(n >>> 24) & 255,\n\t\t(n >>> 16) & 255,\n\t\t(n >>> 8) & 255,\n\t\tn & 255,\n\t].join('.');\n}\n","import { parseIPv4 } from './parseIPv4';\nimport { toIPv4 } from './toIPv4';\n\nexport function cidrToRange(cidr: string): [ string, string ] | null {\n\tconst [ ip, maskStr ] = cidr.split('/');\n\tconst base = parseIPv4(ip);\n\tconst mask = maskStr ? Number(maskStr) : NaN;\n\n\tif (base === null || !Number.isInteger(mask) || mask < 0 || mask > 32) {\n\t\treturn null;\n\t}\n\tconst netmask = mask === 0 ? 0 : (0xFFFFFFFF << (32 - mask)) >>> 0;\n\tconst start = base & netmask;\n\tconst end = start | (~netmask >>> 0);\n\n\treturn [ toIPv4(start), toIPv4(end) ];\n}\n","import type { RangeIPv4Options } from './types';\nimport { cidrToRange } from './cidrToRange';\nimport { parseIPv4 } from './parseIPv4';\nimport { toIPv4 } from './toIPv4';\nimport { rangeIPv4ToArr } from './rangeIPv4ToArr';\n\nfunction rangeIPv4(from: string, to?: string): Generator<string>;\n\nfunction rangeIPv4(from: string, to: string | undefined, opts?: RangeIPv4Options): Generator<string>;\n\nfunction* rangeIPv4(from: string, to?: string, opts: RangeIPv4Options = {}): Generator<string> {\n\tconst { includeNetwork = true, includeBroadcast = true } = opts;\n\tlet startNum: number;\n\tlet endNum: number;\n\tlet isCIDR = false;\n\tlet cidrMask: number | null = null;\n\n\tif (to === undefined && from.includes('/')) {\n\t\tconst range = cidrToRange(from);\n\t\t\n\t\tif (!range) {\n\t\t\tthrow new Error(`Invalid CIDR: \"${from}\"`);\n\t\t}\n\t\tconst [ startStr, endStr ] = range;\n\t\tconst [ _, maskStr ] = from.split('/');\n\t\t\n\t\tcidrMask = Number(maskStr);\n\t\tstartNum = parseIPv4(startStr)!;\n\t\tendNum = parseIPv4(endStr)!;\n\t\tisCIDR = true;\n\t} \n\telse {\n\t\tconst s = parseIPv4(from);\n\t\t\n\t\tif (s === null) {\n\t\t\tthrow new Error(`Invalid IPv4: \"${from}\"`);\n\t\t}\n\t\tstartNum = s;\n\n\t\tif (to && to.trim() !== '') {\n\t\t\tconst e = parseIPv4(to);\n\t\t\t\n\t\t\tif (e === null) {\n\t\t\t\tthrow new Error(`Invalid IPv4: \"${to}\"`);\n\t\t\t}\n\t\t\tendNum = e;\n\t\t} \n\t\telse {\n\t\t\tconst a = (startNum >>> 24) & 255;\n\t\t\tconst b = (startNum >>> 16) & 255;\n\t\t\tconst c = (startNum >>> 8) & 255;\n\t\t\t\n\t\t\tendNum = ((a << 24) | (b << 16) | (c << 8) | 255) >>> 0;\n\t\t}\n\t}\n\tif (startNum > endNum) {\n\t\t[ startNum, endNum ] = [ endNum, startNum ];\n\t}\n\tlet skipNetworkAt = -1;\n\tlet skipBroadcastAt = -1;\n\t\n\tif (isCIDR && cidrMask !== null) {\n\t\tif (cidrMask <= 30) {\n\t\t\tskipNetworkAt = startNum;\n\t\t\tskipBroadcastAt = endNum;\n\t\t}\n\t}\n\tfor (let cur = startNum; cur <= endNum; cur = (cur + 1) >>> 0) {\n\t\tif (!includeNetwork && cur === skipNetworkAt) {\n\t\t\tif (cur === endNum) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (!includeBroadcast && cur === skipBroadcastAt) {\n\t\t\tif (cur === endNum) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tyield toIPv4(cur);\n\t\t\n\t\tif (cur === 0xFFFFFFFF) {\n\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport { rangeIPv4 };\n","import type { RangeIPv4Options } from './types';\nimport { rangeIPv4 } from './rangeIPv4';\n\nexport function rangeIPv4ToArr(\n\tfrom: string,\n\tto?: string,\n\topts: RangeIPv4Options = {}\n): string[] {\n\tconst { limit = 1_000_000 } = opts;\n\tconst out: string[] = [];\n\tlet count = 0;\n\n\tfor (const ip of rangeIPv4(from, to, opts)) {\n\t\tif (count >= limit) {\n\t\t\tthrow new Error(`Range is too large (> ${limit}). Use the generator version instead.`);\n\t\t}\n\t\tout.push(ip);\n\t\tcount++;\n\t}\n\treturn out;\n}\n","\nexport function isArr<T = unknown>(value: unknown): value is readonly [T, ...T[]] {\n\treturn Array.isArray(value);\n}\n","import { isArr } from '../index';\n\nexport function isArrFilled<T = unknown>(value: unknown): value is readonly [ T, ...T[] ] {\n\treturn isArr(value) && value.length > 0;\n}\n","\nexport function isBool(value: unknown): value is boolean {\n\treturn typeof value === 'boolean';\n}\n","import { isObj } from '../index';\n\nexport function isObjFilled(value: unknown): value is Record<string, unknown> {\n\treturn isObj(value) && Object.keys(value).length > 0;\n}\n","import { isBool } from './isBool';\nimport { isObjFilled } from './isObjFilled';\n\nexport function isBoolOrBoolTree(value: unknown): boolean {\n\tif (isBool(value)) {\n\t\treturn true;\n\t}\n\tif (!isObjFilled(value)) {\n\t\treturn false;\n\t}\n\tfor (const key of Object.keys(value)) {\n\t\tif (!isBoolOrBoolTree(value[key])) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n","import { \n\tisStr,\n\tisNum, \n} from '../index';\n\nexport function isDate(value: unknown): boolean {\n\tif (value instanceof Date) {\n\t\treturn !Number.isNaN(value.getTime());\n\t}\n\tif (isStr(value) || isNum(value)) {\n\t\tconst d = new Date(value as any);\n\n\t\treturn !Number.isNaN(d.getTime());\n\t}\n\treturn false;\n}\n","import { isStrFilled } from '../index';\n\nconst emailRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z]{2,})+$/;\n\nexport function isEmail(value: unknown): value is string {\n\tif (!isStrFilled(value)) {\n\t\treturn false;\n\t}\n\treturn emailRegex.test(value);\n}\n","\nexport function isExists<T>(value: T | null | undefined): value is T {\n\treturn value !== null && value !== undefined;\n}\n","\nexport function isFunc<T extends Function = Function>(value: unknown): value is T {\n\treturn typeof value === 'function';\n}\n","import { isStr } from '../index';\n\nconst IPV4_RE = /^(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/;\n\nexport function isIpAddr(value: unknown): value is string {\n\tif (!isStr(value)) {\n\t\treturn false;\n\t}\n\tconst v = value.trim();\n\t\n\treturn IPV4_RE.test(v);\n}\n","import { isStr } from '../index';\n\nexport function isMacAddr(value: unknown): value is string {\n\treturn isStr(value) && /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/.test(value);\n}\n","\nexport function isNum(value: unknown): value is number {\n\treturn (typeof value === 'number') && Number.isFinite(value);\n}\n","import { isNum } from '../index';\n\nexport function isNumFloat(value: unknown): value is number {\n\treturn isNum(value) && !Number.isInteger(value);\n}\n","import { isNum } from '../index';\n\nexport function isNumN(value: unknown): value is number {\n\treturn isNum(value) && value < 0;\n}\n","import { isNum } from '../index';\n\nexport function isNumNZ(value: unknown): value is number {\n\treturn isNum(value) && value <= 0;\n}\n","import { isNum } from '../index';\n\nexport function isNumP(value: unknown): value is number {\n\treturn isNum(value) && value > 0;\n}\n","import { isNum } from '../index';\n\nexport function isNumPZ(value: unknown): value is number {\n\treturn isNum(value) && value >= 0;\n}\n","\nexport function isObj(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === 'object' \n\t\t&& value !== null \n\t\t&& Object.prototype.toString.call(value) === '[object Object]'\n\t\t&& !Array.isArray(value)\n\t\t&& !(value instanceof Date);\n}\n","import { isObjFilled } from './isObjFilled';\nimport { isObj } from './isObj';\nimport { isArr } from './isArr';\nimport { isFunc } from './isFunc';\n\ntype Primitive =\n\t| string\n\t| number\n\t| boolean\n\t| bigint\n\t| symbol\n\t| null\n\t| undefined;\n\nexport function isObjFlat(value: unknown): value is Record<string, Primitive> {\n\tif (!isObjFilled(value)) {\n\t\treturn false;\n\t}\n\treturn Object.values(value).every((v) => v === null || (!isObj(v) && !isArr(v) || !isFunc(v)));\n}\n","import type { PasswordOptions } from '../index';\nimport { isStr } from '../index';\n\nexport function isPassword(\n\tvalue: unknown,\n\t{\n\t\tminLength = 8,\n\t\tmaxLength = 256,\n\t\trequireUppercase = true,\n\t\trequireLowercase = true,\n\t\trequireDigit = true,\n\t\trequireSpecial = true,\n\t}: PasswordOptions = {}\n): value is string {\n\tif (!isStr(value)) {\n\t\treturn false;\n\t}\n\tif (value.length < minLength || value.length > maxLength) {\n\t\treturn false;\n\t}\n\tif (requireUppercase && !/[A-ZА-Я]/.test(value)) {\n\t\treturn false;\n\t}\n\tif (requireLowercase && !/[a-zа-я]/.test(value)) {\n\t\treturn false;\n\t}\n\tif (requireDigit && !/\\d/.test(value)) {\n\t\treturn false;\n\t}\n\tif (requireSpecial && !/[~!?@#$%^&*_\\-+()\\[\\]{}><\\\\\\/|\"'.,:;=]/.test(value)) {\n\t\treturn false;\n\t}\n\treturn true;\n}\n","import { \n\tisStrFilled,\n\tisNum, \n} from '../index';\n\nexport function isPhone(value: unknown): value is string {\n\tif (!isStrFilled(value) \n\t\t&& !isNum(value)) {\n\t\treturn false;\n\t}\n\tconst valueProcessed = String(value).trim();\n\n\tif (valueProcessed.startsWith('-')) {\n\t\treturn false;\n\t}\n\tif ((valueProcessed.match(/\\+/g) || []).length > 1) {\n\t\treturn false;\n\t}\n\tif (valueProcessed.includes('+') && !valueProcessed.startsWith('+')) {\n\t\treturn false;\n\t}\n\tif (!/^\\+?[0-9-]+$/.test(valueProcessed)) {\n\t\treturn false;\n\t}\n\tif (valueProcessed.length < 3 || valueProcessed.length > 20) {\n\t\treturn false;\n\t}\n\tif (!/[0-9]$/.test(valueProcessed)) {\n\t\treturn false;\n\t}\n\tif (valueProcessed.includes('--')) {\n\t\treturn false;\n\t}\n\treturn true;\n}\n","\nexport function isStr(value: unknown): value is string {\n\treturn typeof value === 'string';\n}\n","import { isStrFilled } from '../index';\n\nexport function isStrBool(value: unknown): value is string {\n\tif (!isStrFilled(value)) {\n\t\treturn false;\n\t}\n\tconst normalized = value.trim().toLowerCase();\n\t\n\treturn normalized === 'true' || normalized === 'false';\n}\n","import { isStr } from '../index';\n\nexport function isStrFilled(value: unknown): value is string {\n\treturn isStr(value) && value.trim().length > 0;\n}\n","import { isStrFilled } from '../index';\n\nexport function isStrAscDesc(value: unknown): value is 'asc' | 'desc' {\n\tif (!isStrFilled(value)) {\n\t\treturn false;\n\t}\n\tconst normalized = value.trim().toLowerCase();\n\t\n\treturn normalized === 'asc' || normalized === 'desc';\n}\n","import { isStr } from '../index';\n\nexport function isVar(value: unknown): value is string {\n\treturn isStr(value) && /^[A-Za-z_][A-Za-z0-9_]*$/.test(value);\n}\n","import { isFunc } from './isFunc';\n\nexport function isClass(value: unknown): boolean {\n\treturn isFunc(value) && /^class\\s/.test(Function.prototype.toString.call(value));\n}\n","import type { FixedDecimal } from './types';\n\nexport function fixedDecimalToStr(value: FixedDecimal): string {\n\tconst signSymbol = value.sign < 0 ? '-' : '';\n\tconst allDigitsString = value.digitsInteger.toString();\n\n\tif (value.scale === 0) {\n\t\treturn signSymbol + allDigitsString;\n\t}\n\tconst padZeros = value.scale - allDigitsString.length;\n\n\tif (padZeros >= 0) {\n\t\treturn signSymbol + '0.' + '0'.repeat(padZeros) + allDigitsString;\n\t}\n\tconst integerBoundary = allDigitsString.length - value.scale;\n\tconst integerText = allDigitsString.slice(0, integerBoundary);\n\tconst fractionalText = allDigitsString.slice(integerBoundary);\n\n\treturn signSymbol + integerText + '.' + fractionalText;\n}\n","import type { FixedDecimal } from './types';\nimport { fixedDecimalToStr } from './fixedDecimalToStr';\n\nexport function fixedDecimalToNum(value: FixedDecimal): number {\n\treturn Number(fixedDecimalToStr(value));\n}\n","import { isNumPZ } from '../index';\n\nexport function convertExponentialToParts(\n\tsign: 1 | -1,\n\texponentialString: string\n): { sign: 1 | -1; integerPart: string; fractionalPart: string } {\n\tconst match = /^([0-9]+)(?:\\.([0-9]*))?e([+\\-]?[0-9]+)$/i.exec(\n\t\t(() => {\n\t\t\tconst [coefficient, exponentText] = exponentialString.split(/e/i);\n\t\t\tconst [integerPart, fractionalPart = ''] = coefficient.split('.');\n\t\t\tconst allDigits = integerPart.replace(/^0+/, '') + fractionalPart;\n\t\t\tconst exponentValue = parseInt(exponentText, 10) - fractionalPart.length;\n\t\t\t\n\t\t\treturn `${allDigits || '0'}e${exponentValue}`;\n\t\t})()\n\t);\n\n\tif (!match) {\n\t\tthrow new Error('Failed to parse exponential notation.');\n\t}\n\tlet allDigits = match[1];\n\tconst exponent = parseInt(match[3], 10);\n\n\tif (isNumPZ(exponent)) {\n\t\tallDigits = allDigits + '0'.repeat(exponent);\n\t\t\n\t\treturn { \n\t\t\tsign, \n\t\t\tintegerPart: allDigits || '0', \n\t\t\tfractionalPart: '', \n\t\t};\n\t} \n\telse {\n\t\tconst digitsToLeft = -exponent;\n\t\t\n\t\tif (digitsToLeft >= allDigits.length) {\n\t\t\tconst missingZeros = '0'.repeat(digitsToLeft - allDigits.length);\n\t\t\t\n\t\t\treturn {\n\t\t\t\tsign,\n\t\t\t\tintegerPart: '0',\n\t\t\t\tfractionalPart: missingZeros + allDigits,\n\t\t\t};\n\t\t}\n\t\telse {\n\t\t\tconst splitIndex = allDigits.length - digitsToLeft;\n\t\t\t\n\t\t\treturn {\n\t\t\t\tsign,\n\t\t\t\tintegerPart: allDigits.slice(0, splitIndex),\n\t\t\t\tfractionalPart: allDigits.slice(splitIndex),\n\t\t\t};\n\t\t}\n\t}\n}","import { convertExponentialToParts } from './convertExponentialToParts';\n\nexport function normalizeToDecimalComponents(input: unknown): {\n\tsign: 1 | -1;\n\tintegerPart: string;\n\tfractionalPart: string;\n} {\n\tif (typeof input === 'bigint') {\n\t\tconst sign: 1 | -1 = input < 0n ? -1 : 1;\n\t\tconst absoluteValue = (input < 0n ? -input : input).toString();\n\t\t\n\t\treturn { \n\t\t\tsign, \n\t\t\tintegerPart: absoluteValue, \n\t\t\tfractionalPart: '', \n\t\t};\n\t}\n\tif (typeof input === 'number') {\n\t\tif (!Number.isFinite(input)) {\n\t\t\tthrow new Error('Input number is not finite.');\n\t\t}\n\t\tconst sign: 1 | -1 = input < 0 ? -1 : 1;\n\t\tconst absoluteValue = Math.abs(input);\n\t\tconst exponentialForm = absoluteValue.toExponential(30); // например \"1.23456e-5\"\n\t\t\n\t\treturn convertExponentialToParts(sign, exponentialForm);\n\t}\n\tif (typeof input === 'string') {\n\t\tlet processed = input.trim().replace(',', '.');\n\t\t\n\t\tif (!processed) {\n\t\t\tthrow new Error('Input string is empty.');\n\t\t}\n\t\tlet sign: 1 | -1 = 1;\n\t\t\n\t\tif (processed.startsWith('+') || processed.startsWith('-')) {\n\t\t\tsign = processed.startsWith('-') ? -1 : 1;\n\t\t\tprocessed = processed.slice(1);\n\t\t}\n\t\tif (/^[0-9]*\\.?[0-9]*(e[+\\-]?[0-9]+)?$/i.test(processed)) {\n\t\t\tif (/e/i.test(processed)) {\n\t\t\t\treturn convertExponentialToParts(sign, processed);\n\t\t\t}\n\t\t\tconst [ integerPart = '0', fractionalPart = '' ] = processed.split('.');\n\t\t\t\n\t\t\treturn { \n\t\t\t\tsign, \n\t\t\t\tintegerPart, \n\t\t\t\tfractionalPart, \n\t\t\t};\n\t\t}\n\t\tthrow new Error('Invalid numeric string.');\n\t}\n\tthrow new Error('Unsupported input type.');\n}","import type { FixedDecimal } from './types';\nimport { normalizeToDecimalComponents } from './normalizeToDecimalComponents';\n\nexport function parseToFixedDecimal(input: unknown): FixedDecimal {\n\tconst { \n\t\tsign, \n\t\tintegerPart, \n\t\tfractionalPart, \n\t} = normalizeToDecimalComponents(input);\n\tconst integerDigits = integerPart.replace(/^0+/, '') || '0';\n\tconst fractionalDigits = fractionalPart.replace(/0+$/, '');\n\tconst combinedDigits = (integerDigits + fractionalDigits) || '0';\n\n\treturn {\n\t\tsign,\n\t\tdigitsInteger: BigInt(combinedDigits),\n\t\tscale: fractionalDigits.length,\n\t};\n}\n","import type { FixedDecimal } from './types';\n\nexport function roundFixedDecimal(\n\tsource: FixedDecimal,\n\tdecimalPlaces: number,\n\troundMode: 'half-up' | 'trunc' = 'half-up'\n): FixedDecimal {\n\tconst targetPrecision = Math.max(0, Math.trunc(decimalPlaces));\n\n\tif (source.scale <= targetPrecision) {\n\t\treturn { ...source };\n\t}\n\tconst digitsToRemove = source.scale - targetPrecision;\n\tconst divisionFactor = 10n ** BigInt(digitsToRemove);\n\tconst integerPart = source.digitsInteger / divisionFactor;\n\tconst remainder = source.digitsInteger % divisionFactor;\n\n\tif (roundMode === 'trunc' || remainder === 0n) {\n\t\treturn { \n\t\t\tsign: source.sign, \n\t\t\tdigitsInteger: integerPart, \n\t\t\tscale: targetPrecision, \n\t\t};\n\t}\n\tconst halfThreshold = divisionFactor / 2n;\n\tconst shouldRoundUp = remainder >= halfThreshold;\n\tconst roundedValue = shouldRoundUp ? integerPart + 1n : integerPart;\n\t\n\treturn { \n\t\tsign: source.sign, \n\t\tdigitsInteger: roundedValue, \n\t\tscale: targetPrecision, \n\t};\n}","import { fixedDecimalToNum } from './fixedDecimalToNum';\nimport { parseToFixedDecimal } from './parseToFixedDecimal';\nimport { roundFixedDecimal } from './roundFixedDecimal';\n\nexport function numNormalize(value: unknown, round: number = 1, throwError: boolean = false): number {\n\ttry {\n\t\treturn fixedDecimalToNum((round > 1) ? roundFixedDecimal(parseToFixedDecimal(value), round, 'half-up') : parseToFixedDecimal(value));\n\t}\n\tcatch (err: any) {\n\t\tif (throwError) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\treturn 0;\n}\n","import { \n\tisStrFilled,\n\tisStr,\n\tstrTrim, \n} from '../index';\n\nexport function strLowerCase(value?: unknown): string {\n\tif (!isStr(value)) {\n\t\treturn '';\n\t}\n\tconst trimmed = strTrim(value);\n\t\n\treturn isStrFilled(trimmed) ? trimmed.toLowerCase() : '';\n}\n","import { \n\tisStrFilled,\n\tisStr,\n\tstrLowerCase, \n} from '../index';\n\nexport function strNormalCase(value?: unknown): string {\n\tif (!isStr(value)) {\n\t\treturn '';\n\t}\n\tconst parsed = strLowerCase(value);\n\t\n\treturn isStrFilled(parsed) ? (parsed[0].toUpperCase() + parsed.slice(1)) : '';\n}\n","import { \n\tisStr,\n\tstrTrim,\n\tstrUndefined, \n} from '../index';\n\nexport function strNull(value: unknown) {\n\treturn ((isStr(value) && strTrim(value) === '') || value === undefined) ? null : value;\n}\n","import { \n\tisStr,\n\tstrTrim, \n} from '../index';\n\nexport function strPhone(value?: unknown, defaultCountry = '+7'): string | null {\n\tif (!isStr(value)) {\n\t\treturn null;\n\t}\n\tlet phone = strTrim(value).replace(/[\\s\\-().]/g, '');\n\n\tif (/^00\\d{8,15}$/.test(phone)) {\n\t\tphone = '+' + phone.slice(2);\n\t}\n\telse if (/^\\d{10}$/.test(phone)) {\n\t\tphone = defaultCountry + phone;\n\t}\n\telse if (/^\\d{9,15}$/.test(phone) && !phone.startsWith('0')) {\n\t\tphone = '+' + phone;\n\t}\n\treturn /^\\+\\d{10,15}$/.test(phone) ? phone : null;\n}\n","import { isStr } from '../index';\n\nexport function strTrim(value: unknown, border: string = ''): string {\n\tconst result = String(isStr(value) ? value.trim().normalize('NFKC').replace(/[\\u200B-\\u200D\\uFEFF]/g, '') : '');\n\n\tif (border) {\n\t\treturn result.split(border).filter((item) => !!item).join(border);\n\t}\n\treturn result;\n}\n","import { \n\tisStr,\n\tstrTrim,\n\tstrNull, \n} from '../index';\n\nexport function strUndefined(value: unknown) {\n\treturn ((isStr(value) && strTrim(value) === '') || value === null) ? undefined : value\n}\n","import { \n\tisStr,\n\tstrTrim, \n} from '../index';\n\nexport const strNormalize = (v: unknown) => {\n\tif (!isStr(v)) {\n\t\treturn v;\n\t}\n\tconst t = String(strTrim(v) || '');\n\t\n\treturn t === '' \n\t\t? null \n\t\t: String(t.toLowerCase() || '').replace(/\\s+/g, ' ').replace(/\\t+/g, '').replace(/\\n+/g,'');\n};\n","import type { UrlObj } from './types';\n\nexport function urlObj(value: string = ''): UrlObj {\n\treturn {} as UrlObj;\n}\n","import { isStrFilled } from '../index';\n\nexport function urlDecode(input: string): string {\n\tif (!isStrFilled(input)) {\n\t\treturn String(input);\n\t}\n\tconst RAW = '____RAW_PERCENT____';\n\tconst pre = input.replace(/%(?![0-9A-Fa-f]{2})/g, RAW);\n\tconst WHITELIST = new Set(['22', '7B', '7D', '3A', '2C', '5B', '5D', '5C']);\n\tconst decoded = pre.replace(/%([0-9A-Fa-f]{2})/g, (_m, hh: string) => {\n\t\tconst code = hh.toUpperCase();\n\n\t\tif (!WHITELIST.has(code)) {\n\t\t\treturn `%${code}`;\n\t\t}\n\t\treturn decodeURIComponent(`%${code}`);\n\t});\n\treturn decoded.split(RAW).join('%');\n}\n"]}
|
package/dist/browser.d.cts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { JsonLike, PasswordOptions, TimeParts, UniqueDeepOptions, arrFuncArgs, arrReplaceTemplate, arrSplitBatches, arrUniqueDeep, boolNormalize, dateFloorMin, datePartsSec, dateSecParts, dateStr, env, ipNumStr, ipStrNum, isArr, isArrFilled, isBool, isBoolOrBoolTree, isClass, isDate, isEmail, isExists, isFunc, isIpAddr, isMacAddr, isNum, isNumFloat, isNumN, isNumNZ, isNumP, isNumPZ, isObj, isObjFilled, isObjFlat, isPassword, isPhone, isStr, isStrAscDesc, isStrBool, isStrFilled, isVar, numNormalize, strLowerCase, strNormalCase, strNormalize, strNull, strPhone, strTrim, strUndefined, urlDecode, urlObj, wait } from './index.cjs';
|
|
1
|
+
export { JsonLike, PasswordOptions, TimeParts, UniqueDeepOptions, arrFuncArgs, arrReplaceTemplate, arrSplitBatches, arrUniqueDeep, boolNormalize, dateFloorMin, datePartsSec, dateSecParts, dateStr, env, ipNumStr, ipStrNum, isArr, isArrFilled, isBool, isBoolOrBoolTree, isClass, isDate, isEmail, isExists, isFunc, isIpAddr, isMacAddr, isNum, isNumFloat, isNumN, isNumNZ, isNumP, isNumPZ, isObj, isObjFilled, isObjFlat, isPassword, isPhone, isStr, isStrAscDesc, isStrBool, isStrFilled, isVar, numNormalize, parseIPv4, rangeIPv4ToArr, strLowerCase, strNormalCase, strNormalize, strNull, strPhone, strTrim, strUndefined, toIPv4, urlDecode, urlObj, wait } from './index.cjs';
|
package/dist/browser.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { JsonLike, PasswordOptions, TimeParts, UniqueDeepOptions, arrFuncArgs, arrReplaceTemplate, arrSplitBatches, arrUniqueDeep, boolNormalize, dateFloorMin, datePartsSec, dateSecParts, dateStr, env, ipNumStr, ipStrNum, isArr, isArrFilled, isBool, isBoolOrBoolTree, isClass, isDate, isEmail, isExists, isFunc, isIpAddr, isMacAddr, isNum, isNumFloat, isNumN, isNumNZ, isNumP, isNumPZ, isObj, isObjFilled, isObjFlat, isPassword, isPhone, isStr, isStrAscDesc, isStrBool, isStrFilled, isVar, numNormalize, strLowerCase, strNormalCase, strNormalize, strNull, strPhone, strTrim, strUndefined, urlDecode, urlObj, wait } from './index.js';
|
|
1
|
+
export { JsonLike, PasswordOptions, TimeParts, UniqueDeepOptions, arrFuncArgs, arrReplaceTemplate, arrSplitBatches, arrUniqueDeep, boolNormalize, dateFloorMin, datePartsSec, dateSecParts, dateStr, env, ipNumStr, ipStrNum, isArr, isArrFilled, isBool, isBoolOrBoolTree, isClass, isDate, isEmail, isExists, isFunc, isIpAddr, isMacAddr, isNum, isNumFloat, isNumN, isNumNZ, isNumP, isNumPZ, isObj, isObjFilled, isObjFlat, isPassword, isPhone, isStr, isStrAscDesc, isStrBool, isStrFilled, isVar, numNormalize, parseIPv4, rangeIPv4ToArr, strLowerCase, strNormalCase, strNormalize, strNull, strPhone, strTrim, strUndefined, toIPv4, urlDecode, urlObj, wait } from './index.js';
|
package/dist/browser.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function K(t){if(!u(t))return [t];let n=t.trim();if(n==="")return [];if(n.startsWith("[")&&n.endsWith("]")&&(n=n.slice(1,-1).trim(),n===""))return [];let r="",e=false,i=null,o=false,s=0,a=0,l=0,y=[],b=()=>{let c=r.trim();c!==""&&y.push(c),r="";};for(let c=0;c<n.length;c++){let f=n[c];if(e){if(r+=f,o){o=false;continue}if(f==="\\"){o=true;continue}f===i&&(e=false,i=null);continue}if(f==='"'||f==="'"){e=true,i=f,r+=f;continue}if(f==="("){s++,r+=f;continue}if(f===")"){s=Math.max(0,s-1),r+=f;continue}if(f==="["){a++,r+=f;continue}if(f==="]"){a=Math.max(0,a-1),r+=f;continue}if(f==="{"){l++,r+=f;continue}if(f==="}"){l=Math.max(0,l-1),r+=f;continue}if(f===","&&s===0&&a===0&&l===0){b();continue}r+=f;}return r.length&&b(),y.map(c=>{if(c.startsWith("$")&&c.includes("(")&&c.endsWith(")"))return c;if(c==="null")return null;if(c==="undefined")return;if(A(c))return D(c);let f=_(c);if(Number.isFinite(f))return f;if(c==="Infinity")return 1/0;if(c==="-Infinity")return -1/0;let d=String(c||"");if(d.length>=2&&(d.startsWith("'")&&d.endsWith("'")||d.startsWith('"')&&d.endsWith('"')))return d.slice(1,-1).replace(/\\\\/g,"\\").replace(/\\'/g,"'").replace(/\\"/g,'"');if(d.startsWith("{")&&d.endsWith("}")||d.startsWith("[")&&d.endsWith("]"))try{return JSON.parse(d)}catch{}return d})}function Y(t,n){if(!Number.isInteger(n)||n<=0)return [];let r=[],e=0;for(;e<t.length;)r.push(t.slice(e,e+n)),e+=n;return r}function j(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function B(t){return t==null||typeof t!="object"||t instanceof Date}function R(t,n){return Array.isArray(t)?Array.isArray(n)?n:[n]:n}function T(t,n){if(t==null)return t;if(B(n))return R(t,n);if(Array.isArray(t))return t.map(i=>T(i,n));if(!j(t)||!j(n))return t;let r={...t},e=false;for(let i of Object.keys(n)){if(!(i in t))continue;let o=T(t[i],n[i]);o!==t[i]&&(r[i]=o,e=true);}return e?r:t}function X(t,n){return T(t,n)}function U(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)&&!(t instanceof Date)}function E(t){let n=new WeakSet,r=e=>{if(e===null)return "null";let i=typeof e;if(i==="string")return JSON.stringify(e);if(i==="number")return Number.isNaN(e)?'"__NaN__"':String(e);if(i==="boolean")return e?"true":"false";if(i==="undefined")return '"__undefined__"';if(i==="bigint")return `"__bigint__:${String(e)}"`;if(i==="function")return '"__function__"';if(e instanceof Date)return `"__date__:${e.toISOString()}"`;if(Array.isArray(e))return "["+e.map(r).join(",")+"]";if(i==="object"&&e){let o=e;return n.has(o)?'"__circular__"':(n.add(o),"{"+Object.keys(o).sort().map(l=>JSON.stringify(l)+":"+r(o[l])).join(",")+"}")}return JSON.stringify(String(e))};return r(t)}function Z(t){if(t===null)return "null";let n=typeof t;return n==="string"?"s:"+t:n==="number"?"n:"+(Number.isNaN(t)?"__NaN__":t):n==="boolean"?"b:"+t:n==="undefined"?"u:":n==="bigint"?"bi:"+String(t):t instanceof Date?"d:"+t.toISOString():"o:"+E(t)}function tt(t,n){let r=n?.keyFn??Z,e=i=>{if(Array.isArray(i)){let o=i.map(e),s=new Set,a=[];for(let l of o){let y=r(l);s.has(y)||(s.add(y),a.push(l));}return a}if(U(i)){let o={};for(let s of Object.keys(i))o[s]=e(i[s]);return o}return i};return e(t)}function D(t){switch(true){case x(t):return t;case h(t):return true;case O(t):return false;case(m(t)&&["true","1","yes","on"].includes(String(t??"").trim().toLowerCase())):return true;case(m(t)&&["false","0","no","off"].includes(String(t??"").trim().toLowerCase())):return false}return false}async function it(t=0){await new Promise(n=>setTimeout(()=>n(true),t));}function st(t){return process.env[t]}function ft(t=1,n=new Date){let r=Math.min(60,Math.max(1,Math.trunc(Math.abs(t)))),e=n.getMinutes(),i=Math.floor(e/r)*r,o=new Date(n);return o.setMinutes(i,0,0),o}function ct(t=new Date){let n=l=>String(l).padStart(2,"0"),r=t.getFullYear(),e=n(t.getMonth()+1),i=n(t.getDate()),o=n(t.getHours()),s=n(t.getMinutes()),a=n(t.getSeconds());return `${r}-${e}-${i} ${o}:${s}:${a}`}function mt(t){let{days:n=0,hours:r=0,minutes:e=0,seconds:i=0}=t;return n*86400+r*3600+e*60+i}function dt(t){if(!Number.isFinite(t)||t<0)throw new Error("Invalid total seconds");let n=Math.floor(t/86400),r=Math.floor(t%86400/3600),e=Math.floor(t%3600/60),i=t%60;return {days:n,hours:r,minutes:e,seconds:i}}function yt(t){let n=t.split(".").map(o=>Number(o));if(n.length!==4||n.some(o=>!Number.isInteger(o)||o<0||o>255))throw new Error("Invalid IPv4 address");let r=new ArrayBuffer(4),e=new DataView(r),i=0;for(;i<4;)e.setUint8(i,n[i]),i++;return e.getUint32(0,false)}function wt(t){if(!h(t))return "";let n=new ArrayBuffer(4),r=new DataView(n);r.setUint32(0,t,false);let e=[],i=0;for(;i<4;)e.push(r.getUint8(i)),i++;return e.join(".")}function w(t){return Array.isArray(t)}function Tt(t){return w(t)&&t.length>0}function x(t){return typeof t=="boolean"}function k(t){return S(t)&&Object.keys(t).length>0}function L(t){if(x(t))return true;if(!k(t))return false;for(let n of Object.keys(t))if(!L(t[n]))return false;return true}function $t(t){if(t instanceof Date)return !Number.isNaN(t.getTime());if(u(t)||p(t)){let n=new Date(t);return !Number.isNaN(n.getTime())}return false}var V=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z]{2,})+$/;function Mt(t){return m(t)?V.test(t):false}function Bt(t){return t!=null}function N(t){return typeof t=="function"}var J=/^(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)$/;function Zt(t){if(!u(t))return false;let n=t.trim();return J.test(n)}function Jt(t){return u(t)&&/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/.test(t)}function p(t){return typeof t=="number"&&Number.isFinite(t)}function Ht(t){return p(t)&&!Number.isInteger(t)}function Xt(t){return p(t)&&t<0}function O(t){return p(t)&&t<=0}function h(t){return p(t)&&t>0}function I(t){return p(t)&&t>=0}function S(t){return typeof t=="object"&&t!==null&&Object.prototype.toString.call(t)==="[object Object]"&&!Array.isArray(t)&&!(t instanceof Date)}function mn(t){return k(t)?Object.values(t).every(n=>n===null||!S(n)&&!w(n)||!N(n)):false}function gn(t,{minLength:n=8,maxLength:r=256,requireUppercase:e=true,requireLowercase:i=true,requireDigit:o=true,requireSpecial:s=true}={}){return !(!u(t)||t.length<n||t.length>r||e&&!/[A-ZА-Я]/.test(t)||i&&!/[a-zа-я]/.test(t)||o&&!/\d/.test(t)||s&&!/[~!?@#$%^&*_\-+()\[\]{}><\\\/|"'.,:;=]/.test(t))}function xn(t){if(!m(t)&&!p(t))return false;let n=String(t).trim();return !(n.startsWith("-")||(n.match(/\+/g)||[]).length>1||n.includes("+")&&!n.startsWith("+")||!/^\+?[0-9-]+$/.test(n)||n.length<3||n.length>20||!/[0-9]$/.test(n)||n.includes("--"))}function u(t){return typeof t=="string"}function A(t){if(!m(t))return false;let n=t.trim().toLowerCase();return n==="true"||n==="false"}function m(t){return u(t)&&t.trim().length>0}function Pn(t){if(!m(t))return false;let n=t.trim().toLowerCase();return n==="asc"||n==="desc"}function _n(t){return u(t)&&/^[A-Za-z_][A-Za-z0-9_]*$/.test(t)}function In(t){return N(t)&&/^class\s/.test(Function.prototype.toString.call(t))}function $(t){let n=t.sign<0?"-":"",r=t.digitsInteger.toString();if(t.scale===0)return n+r;let e=t.scale-r.length;if(e>=0)return n+"0."+"0".repeat(e)+r;let i=r.length-t.scale,o=r.slice(0,i),s=r.slice(i);return n+o+"."+s}function W(t){return Number($(t))}function F(t,n){let r=/^([0-9]+)(?:\.([0-9]*))?e([+\-]?[0-9]+)$/i.exec((()=>{let[o,s]=n.split(/e/i),[a,l=""]=o.split("."),y=a.replace(/^0+/,"")+l,b=parseInt(s,10)-l.length;return `${y||"0"}e${b}`})());if(!r)throw new Error("Failed to parse exponential notation.");let e=r[1],i=parseInt(r[3],10);if(I(i))return e=e+"0".repeat(i),{sign:t,integerPart:e||"0",fractionalPart:""};{let o=-i;if(o>=e.length){let s="0".repeat(o-e.length);return {sign:t,integerPart:"0",fractionalPart:s+e}}else {let s=e.length-o;return {sign:t,integerPart:e.slice(0,s),fractionalPart:e.slice(s)}}}}function C(t){if(typeof t=="bigint"){let n=t<0n?-1:1,r=(t<0n?-t:t).toString();return {sign:n,integerPart:r,fractionalPart:""}}if(typeof t=="number"){if(!Number.isFinite(t))throw new Error("Input number is not finite.");let n=t<0?-1:1,e=Math.abs(t).toExponential(30);return F(n,e)}if(typeof t=="string"){let n=t.trim().replace(",",".");if(!n)throw new Error("Input string is empty.");let r=1;if((n.startsWith("+")||n.startsWith("-"))&&(r=n.startsWith("-")?-1:1,n=n.slice(1)),/^[0-9]*\.?[0-9]*(e[+\-]?[0-9]+)?$/i.test(n)){if(/e/i.test(n))return F(r,n);let[e="0",i=""]=n.split(".");return {sign:r,integerPart:e,fractionalPart:i}}throw new Error("Invalid numeric string.")}throw new Error("Unsupported input type.")}function P(t){let{sign:n,integerPart:r,fractionalPart:e}=C(t),i=r.replace(/^0+/,"")||"0",o=e.replace(/0+$/,""),s=i+o||"0";return {sign:n,digitsInteger:BigInt(s),scale:o.length}}function M(t,n,r="half-up"){let e=Math.max(0,Math.trunc(n));if(t.scale<=e)return {...t};let i=t.scale-e,o=10n**BigInt(i),s=t.digitsInteger/o,a=t.digitsInteger%o;if(r==="trunc"||a===0n)return {sign:t.sign,digitsInteger:s,scale:e};let l=o/2n,b=a>=l?s+1n:s;return {sign:t.sign,digitsInteger:b,scale:e}}function _(t,n=1,r=false){try{return W(n>1?M(P(t),n,"half-up"):P(t))}catch(e){if(r)throw e}return 0}function z(t){if(!u(t))return "";let n=g(t);return m(n)?n.toLowerCase():""}function Gn(t){if(!u(t))return "";let n=z(t);return m(n)?n[0].toUpperCase()+n.slice(1):""}function nr(t){return u(t)&&g(t)===""||t===void 0?null:t}function ir(t,n="+7"){if(!u(t))return null;let r=g(t).replace(/[\s\-().]/g,"");return /^00\d{8,15}$/.test(r)?r="+"+r.slice(2):/^\d{10}$/.test(r)?r=n+r:/^\d{9,15}$/.test(r)&&!r.startsWith("0")&&(r="+"+r),/^\+\d{10,15}$/.test(r)?r:null}function g(t,n=""){let r=String(u(t)?t.trim().normalize("NFKC").replace(/[\u200B-\u200D\uFEFF]/g,""):"");return n?r.split(n).filter(e=>!!e).join(n):r}function cr(t){return u(t)&&g(t)===""||t===null?void 0:t}var pr=t=>{if(!u(t))return t;let n=String(g(t)||"");return n===""?null:String(n.toLowerCase()||"").replace(/\s+/g," ").replace(/\t+/g,"").replace(/\n+/g,"")};function gr(t=""){return {}}function xr(t){if(!m(t))return String(t);let n="____RAW_PERCENT____",r=t.replace(/%(?![0-9A-Fa-f]{2})/g,n),e=new Set(["22","7B","7D","3A","2C","5B","5D","5C"]);return r.replace(/%([0-9A-Fa-f]{2})/g,(o,s)=>{let a=s.toUpperCase();return e.has(a)?decodeURIComponent(`%${a}`):`%${a}`}).split(n).join("%")}export{K as arrFuncArgs,X as arrReplaceTemplate,Y as arrSplitBatches,tt as arrUniqueDeep,D as boolNormalize,ft as dateFloorMin,mt as datePartsSec,dt as dateSecParts,ct as dateStr,st as env,wt as ipNumStr,yt as ipStrNum,w as isArr,Tt as isArrFilled,x as isBool,L as isBoolOrBoolTree,In as isClass,$t as isDate,Mt as isEmail,Bt as isExists,N as isFunc,Zt as isIpAddr,Jt as isMacAddr,p as isNum,Ht as isNumFloat,Xt as isNumN,O as isNumNZ,h as isNumP,I as isNumPZ,S as isObj,k as isObjFilled,mn as isObjFlat,gn as isPassword,xn as isPhone,u as isStr,Pn as isStrAscDesc,A as isStrBool,m as isStrFilled,_n as isVar,_ as numNormalize,z as strLowerCase,Gn as strNormalCase,pr as strNormalize,nr as strNull,ir as strPhone,g as strTrim,cr as strUndefined,xr as urlDecode,gr as urlObj,it as wait};//# sourceMappingURL=browser.mjs.map
|
|
1
|
+
function v(t){if(!a(t))return [t];let n=t.trim();if(n==="")return [];if(n.startsWith("[")&&n.endsWith("]")&&(n=n.slice(1,-1).trim(),n===""))return [];let r="",e=false,i=null,o=false,s=0,c=0,l=0,b=[],y=()=>{let u=r.trim();u!==""&&b.push(u),r="";};for(let u=0;u<n.length;u++){let f=n[u];if(e){if(r+=f,o){o=false;continue}if(f==="\\"){o=true;continue}f===i&&(e=false,i=null);continue}if(f==='"'||f==="'"){e=true,i=f,r+=f;continue}if(f==="("){s++,r+=f;continue}if(f===")"){s=Math.max(0,s-1),r+=f;continue}if(f==="["){c++,r+=f;continue}if(f==="]"){c=Math.max(0,c-1),r+=f;continue}if(f==="{"){l++,r+=f;continue}if(f==="}"){l=Math.max(0,l-1),r+=f;continue}if(f===","&&s===0&&c===0&&l===0){y();continue}r+=f;}return r.length&&y(),b.map(u=>{if(u.startsWith("$")&&u.includes("(")&&u.endsWith(")"))return u;if(u==="null")return null;if(u==="undefined")return;if(O(u))return _(u);let f=j(u);if(Number.isFinite(f))return f;if(u==="Infinity")return 1/0;if(u==="-Infinity")return -1/0;let p=String(u||"");if(p.length>=2&&(p.startsWith("'")&&p.endsWith("'")||p.startsWith('"')&&p.endsWith('"')))return p.slice(1,-1).replace(/\\\\/g,"\\").replace(/\\'/g,"'").replace(/\\"/g,'"');if(p.startsWith("{")&&p.endsWith("}")||p.startsWith("[")&&p.endsWith("]"))try{return JSON.parse(p)}catch{}return p})}function nt(t,n){if(!Number.isInteger(n)||n<=0)return [];let r=[],e=0;for(;e<t.length;)r.push(t.slice(e,e+n)),e+=n;return r}function $(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function V(t){return t==null||typeof t!="object"||t instanceof Date}function J(t,n){return Array.isArray(t)?Array.isArray(n)?n:[n]:n}function I(t,n){if(t==null)return t;if(V(n))return J(t,n);if(Array.isArray(t))return t.map(i=>I(i,n));if(!$(t)||!$(n))return t;let r={...t},e=false;for(let i of Object.keys(n)){if(!(i in t))continue;let o=I(t[i],n[i]);o!==t[i]&&(r[i]=o,e=true);}return e?r:t}function et(t,n){return I(t,n)}function Q(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)&&!(t instanceof Date)}function q(t){let n=new WeakSet,r=e=>{if(e===null)return "null";let i=typeof e;if(i==="string")return JSON.stringify(e);if(i==="number")return Number.isNaN(e)?'"__NaN__"':String(e);if(i==="boolean")return e?"true":"false";if(i==="undefined")return '"__undefined__"';if(i==="bigint")return `"__bigint__:${String(e)}"`;if(i==="function")return '"__function__"';if(e instanceof Date)return `"__date__:${e.toISOString()}"`;if(Array.isArray(e))return "["+e.map(r).join(",")+"]";if(i==="object"&&e){let o=e;return n.has(o)?'"__circular__"':(n.add(o),"{"+Object.keys(o).sort().map(l=>JSON.stringify(l)+":"+r(o[l])).join(",")+"}")}return JSON.stringify(String(e))};return r(t)}function G(t){if(t===null)return "null";let n=typeof t;return n==="string"?"s:"+t:n==="number"?"n:"+(Number.isNaN(t)?"__NaN__":t):n==="boolean"?"b:"+t:n==="undefined"?"u:":n==="bigint"?"bi:"+String(t):t instanceof Date?"d:"+t.toISOString():"o:"+q(t)}function ot(t,n){let r=n?.keyFn??G,e=i=>{if(Array.isArray(i)){let o=i.map(e),s=new Set,c=[];for(let l of o){let b=r(l);s.has(b)||(s.add(b),c.push(l));}return c}if(Q(i)){let o={};for(let s of Object.keys(i))o[s]=e(i[s]);return o}return i};return e(t)}function _(t){switch(true){case w(t):return t;case k(t):return true;case R(t):return false;case(m(t)&&["true","1","yes","on"].includes(String(t??"").trim().toLowerCase())):return true;case(m(t)&&["false","0","no","off"].includes(String(t??"").trim().toLowerCase())):return false}return false}async function at(t=0){await new Promise(n=>setTimeout(()=>n(true),t));}function lt(t){return process.env[t]}function pt(t=1,n=new Date){let r=Math.min(60,Math.max(1,Math.trunc(Math.abs(t)))),e=n.getMinutes(),i=Math.floor(e/r)*r,o=new Date(n);return o.setMinutes(i,0,0),o}function dt(t=new Date){let n=l=>String(l).padStart(2,"0"),r=t.getFullYear(),e=n(t.getMonth()+1),i=n(t.getDate()),o=n(t.getHours()),s=n(t.getMinutes()),c=n(t.getSeconds());return `${r}-${e}-${i} ${o}:${s}:${c}`}function yt(t){let{days:n=0,hours:r=0,minutes:e=0,seconds:i=0}=t;return n*86400+r*3600+e*60+i}function ht(t){if(!Number.isFinite(t)||t<0)throw new Error("Invalid total seconds");let n=Math.floor(t/86400),r=Math.floor(t%86400/3600),e=Math.floor(t%3600/60),i=t%60;return {days:n,hours:r,minutes:e,seconds:i}}function kt(t){let n=t.split(".").map(o=>Number(o));if(n.length!==4||n.some(o=>!Number.isInteger(o)||o<0||o>255))throw new Error("Invalid IPv4 address");let r=new ArrayBuffer(4),e=new DataView(r),i=0;for(;i<4;)e.setUint8(i,n[i]),i++;return e.getUint32(0,false)}function Pt(t){if(!k(t))return "";let n=new ArrayBuffer(4),r=new DataView(n);r.setUint32(0,t,false);let e=[],i=0;for(;i<4;)e.push(r.getUint8(i)),i++;return e.join(".")}function x(t){if(!a(t))return null;let n=d(t).split(".");if(n.length!==4)return null;let r=0;for(let e=0;e<4;e++){if(!/^\d{1,3}$/.test(n[e]))return null;let i=Number(n[e]);if(i<0||i>255)return null;r=r<<8|i;}return r>>>0}function h(t){if(!Number.isInteger(t)||t<0||t>4294967295)throw new Error(`Invalid IPv4 number: ${t}`);return [t>>>24&255,t>>>16&255,t>>>8&255,t&255].join(".")}function C(t){let[n,r]=t.split("/"),e=x(n),i=r?Number(r):NaN;if(e===null||!Number.isInteger(i)||i<0||i>32)return null;let o=i===0?0:4294967295<<32-i>>>0,s=e&o,c=s|~o>>>0;return [h(s),h(c)]}function*E(t,n,r={}){let{includeNetwork:e=true,includeBroadcast:i=true}=r,o,s,c=false,l=null;if(n===void 0&&t.includes("/")){let u=C(t);if(!u)throw new Error(`Invalid CIDR: "${t}"`);let[f,p]=u,[T,L]=t.split("/");l=Number(L),o=x(f),s=x(p),c=true;}else {let u=x(t);if(u===null)throw new Error(`Invalid IPv4: "${t}"`);if(o=u,n&&n.trim()!==""){let f=x(n);if(f===null)throw new Error(`Invalid IPv4: "${n}"`);s=f;}else {let f=o>>>24&255,p=o>>>16&255,T=o>>>8&255;s=(f<<24|p<<16|T<<8|255)>>>0;}}o>s&&([o,s]=[s,o]);let b=-1,y=-1;c&&l!==null&&l<=30&&(b=o,y=s);for(let u=o;u<=s;u=u+1>>>0){if(!e&&u===b){if(u===s)break;continue}if(!i&&u===y){if(u===s)break;continue}if(yield h(u),u===4294967295)break}}function Mt(t,n,r={}){let{limit:e=1e6}=r,i=[],o=0;for(let s of E(t,n,r)){if(o>=e)throw new Error(`Range is too large (> ${e}). Use the generator version instead.`);i.push(s),o++;}return i}function F(t){return Array.isArray(t)}function Zt(t){return F(t)&&t.length>0}function w(t){return typeof t=="boolean"}function S(t){return N(t)&&Object.keys(t).length>0}function K(t){if(w(t))return true;if(!S(t))return false;for(let n of Object.keys(t))if(!K(t[n]))return false;return true}function Yt(t){if(t instanceof Date)return !Number.isNaN(t.getTime());if(a(t)||g(t)){let n=new Date(t);return !Number.isNaN(n.getTime())}return false}var H=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z]{2,})+$/;function tn(t){return m(t)?H.test(t):false}function rn(t){return t!=null}function P(t){return typeof t=="function"}var Y=/^(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)$/;function un(t){if(!a(t))return false;let n=t.trim();return Y.test(n)}function cn(t){return a(t)&&/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/.test(t)}function g(t){return typeof t=="number"&&Number.isFinite(t)}function gn(t){return g(t)&&!Number.isInteger(t)}function yn(t){return g(t)&&t<0}function R(t){return g(t)&&t<=0}function k(t){return g(t)&&t>0}function W(t){return g(t)&&t>=0}function N(t){return typeof t=="object"&&t!==null&&Object.prototype.toString.call(t)==="[object Object]"&&!Array.isArray(t)&&!(t instanceof Date)}function _n(t){return S(t)?Object.values(t).every(n=>n===null||!N(n)&&!F(n)||!P(n)):false}function $n(t,{minLength:n=8,maxLength:r=256,requireUppercase:e=true,requireLowercase:i=true,requireDigit:o=true,requireSpecial:s=true}={}){return !(!a(t)||t.length<n||t.length>r||e&&!/[A-ZА-Я]/.test(t)||i&&!/[a-zа-я]/.test(t)||o&&!/\d/.test(t)||s&&!/[~!?@#$%^&*_\-+()\[\]{}><\\\/|"'.,:;=]/.test(t))}function En(t){if(!m(t)&&!g(t))return false;let n=String(t).trim();return !(n.startsWith("-")||(n.match(/\+/g)||[]).length>1||n.includes("+")&&!n.startsWith("+")||!/^\+?[0-9-]+$/.test(n)||n.length<3||n.length>20||!/[0-9]$/.test(n)||n.includes("--"))}function a(t){return typeof t=="string"}function O(t){if(!m(t))return false;let n=t.trim().toLowerCase();return n==="true"||n==="false"}function m(t){return a(t)&&t.trim().length>0}function Vn(t){if(!m(t))return false;let n=t.trim().toLowerCase();return n==="asc"||n==="desc"}function qn(t){return a(t)&&/^[A-Za-z_][A-Za-z0-9_]*$/.test(t)}function Hn(t){return P(t)&&/^class\s/.test(Function.prototype.toString.call(t))}function M(t){let n=t.sign<0?"-":"",r=t.digitsInteger.toString();if(t.scale===0)return n+r;let e=t.scale-r.length;if(e>=0)return n+"0."+"0".repeat(e)+r;let i=r.length-t.scale,o=r.slice(0,i),s=r.slice(i);return n+o+"."+s}function B(t){return Number(M(t))}function A(t,n){let r=/^([0-9]+)(?:\.([0-9]*))?e([+\-]?[0-9]+)$/i.exec((()=>{let[o,s]=n.split(/e/i),[c,l=""]=o.split("."),b=c.replace(/^0+/,"")+l,y=parseInt(s,10)-l.length;return `${b||"0"}e${y}`})());if(!r)throw new Error("Failed to parse exponential notation.");let e=r[1],i=parseInt(r[3],10);if(W(i))return e=e+"0".repeat(i),{sign:t,integerPart:e||"0",fractionalPart:""};{let o=-i;if(o>=e.length){let s="0".repeat(o-e.length);return {sign:t,integerPart:"0",fractionalPart:s+e}}else {let s=e.length-o;return {sign:t,integerPart:e.slice(0,s),fractionalPart:e.slice(s)}}}}function z(t){if(typeof t=="bigint"){let n=t<0n?-1:1,r=(t<0n?-t:t).toString();return {sign:n,integerPart:r,fractionalPart:""}}if(typeof t=="number"){if(!Number.isFinite(t))throw new Error("Input number is not finite.");let n=t<0?-1:1,e=Math.abs(t).toExponential(30);return A(n,e)}if(typeof t=="string"){let n=t.trim().replace(",",".");if(!n)throw new Error("Input string is empty.");let r=1;if((n.startsWith("+")||n.startsWith("-"))&&(r=n.startsWith("-")?-1:1,n=n.slice(1)),/^[0-9]*\.?[0-9]*(e[+\-]?[0-9]+)?$/i.test(n)){if(/e/i.test(n))return A(r,n);let[e="0",i=""]=n.split(".");return {sign:r,integerPart:e,fractionalPart:i}}throw new Error("Invalid numeric string.")}throw new Error("Unsupported input type.")}function D(t){let{sign:n,integerPart:r,fractionalPart:e}=z(t),i=r.replace(/^0+/,"")||"0",o=e.replace(/0+$/,""),s=i+o||"0";return {sign:n,digitsInteger:BigInt(s),scale:o.length}}function U(t,n,r="half-up"){let e=Math.max(0,Math.trunc(n));if(t.scale<=e)return {...t};let i=t.scale-e,o=10n**BigInt(i),s=t.digitsInteger/o,c=t.digitsInteger%o;if(r==="trunc"||c===0n)return {sign:t.sign,digitsInteger:s,scale:e};let l=o/2n,y=c>=l?s+1n:s;return {sign:t.sign,digitsInteger:y,scale:e}}function j(t,n=1,r=false){try{return B(n>1?U(D(t),n,"half-up"):D(t))}catch(e){if(r)throw e}return 0}function Z(t){if(!a(t))return "";let n=d(t);return m(n)?n.toLowerCase():""}function dr(t){if(!a(t))return "";let n=Z(t);return m(n)?n[0].toUpperCase()+n.slice(1):""}function hr(t){return a(t)&&d(t)===""||t===void 0?null:t}function Fr(t,n="+7"){if(!a(t))return null;let r=d(t).replace(/[\s\-().]/g,"");return /^00\d{8,15}$/.test(r)?r="+"+r.slice(2):/^\d{10}$/.test(r)?r=n+r:/^\d{9,15}$/.test(r)&&!r.startsWith("0")&&(r="+"+r),/^\+\d{10,15}$/.test(r)?r:null}function d(t,n=""){let r=String(a(t)?t.trim().normalize("NFKC").replace(/[\u200B-\u200D\uFEFF]/g,""):"");return n?r.split(n).filter(e=>!!e).join(n):r}function Ar(t){return a(t)&&d(t)===""||t===null?void 0:t}var Or=t=>{if(!a(t))return t;let n=String(d(t)||"");return n===""?null:String(n.toLowerCase()||"").replace(/\s+/g," ").replace(/\t+/g,"").replace(/\n+/g,"")};function $r(t=""){return {}}function Er(t){if(!m(t))return String(t);let n="____RAW_PERCENT____",r=t.replace(/%(?![0-9A-Fa-f]{2})/g,n),e=new Set(["22","7B","7D","3A","2C","5B","5D","5C"]);return r.replace(/%([0-9A-Fa-f]{2})/g,(o,s)=>{let c=s.toUpperCase();return e.has(c)?decodeURIComponent(`%${c}`):`%${c}`}).split(n).join("%")}export{v as arrFuncArgs,et as arrReplaceTemplate,nt as arrSplitBatches,ot as arrUniqueDeep,_ as boolNormalize,pt as dateFloorMin,yt as datePartsSec,ht as dateSecParts,dt as dateStr,lt as env,Pt as ipNumStr,kt as ipStrNum,F as isArr,Zt as isArrFilled,w as isBool,K as isBoolOrBoolTree,Hn as isClass,Yt as isDate,tn as isEmail,rn as isExists,P as isFunc,un as isIpAddr,cn as isMacAddr,g as isNum,gn as isNumFloat,yn as isNumN,R as isNumNZ,k as isNumP,W as isNumPZ,N as isObj,S as isObjFilled,_n as isObjFlat,$n as isPassword,En as isPhone,a as isStr,Vn as isStrAscDesc,O as isStrBool,m as isStrFilled,qn as isVar,j as numNormalize,x as parseIPv4,Mt as rangeIPv4ToArr,Z as strLowerCase,dr as strNormalCase,Or as strNormalize,hr as strNull,Fr as strPhone,d as strTrim,Ar as strUndefined,h as toIPv4,Er as urlDecode,$r as urlObj,at as wait};//# sourceMappingURL=browser.mjs.map
|
|
2
2
|
//# sourceMappingURL=browser.mjs.map
|