bangla-stdlib 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ var Er=Object.defineProperty;var n=(r,e)=>Er(r,"name",{value:e,configurable:!0});var C=["\u09E6","\u09E7","\u09E8","\u09E9","\u09EA","\u09EB","\u09EC","\u09ED","\u09EE","\u09EF"],F=["0","1","2","3","4","5","6","7","8","9"];var E=["\u09AC\u09C8\u09B6\u09BE\u0996","\u099C\u09CD\u09AF\u09C8\u09B7\u09CD\u09A0","\u0986\u09B7\u09BE\u09A2\u09BC","\u09B6\u09CD\u09B0\u09BE\u09AC\u09A3","\u09AD\u09BE\u09A6\u09CD\u09B0","\u0986\u09B6\u09CD\u09AC\u09BF\u09A8","\u0995\u09BE\u09B0\u09CD\u09A4\u09BF\u0995","\u0985\u0997\u09CD\u09B0\u09B9\u09BE\u09AF\u09BC\u09A3","\u09AA\u09CC\u09B7","\u09AE\u09BE\u0998","\u09AB\u09BE\u09B2\u09CD\u0997\u09C1\u09A8","\u099A\u09C8\u09A4\u09CD\u09B0"];var $=["\u09B0\u09AC\u09BF\u09AC\u09BE\u09B0","\u09B8\u09CB\u09AE\u09AC\u09BE\u09B0","\u09AE\u0999\u09CD\u0997\u09B2\u09AC\u09BE\u09B0","\u09AC\u09C1\u09A7\u09AC\u09BE\u09B0","\u09AC\u09C3\u09B9\u09B8\u09CD\u09AA\u09A4\u09BF\u09AC\u09BE\u09B0","\u09B6\u09C1\u0995\u09CD\u09B0\u09AC\u09BE\u09B0","\u09B6\u09A8\u09BF\u09AC\u09BE\u09B0"];var b=["\u0997\u09CD\u09B0\u09C0\u09B7\u09CD\u09AE","\u09AC\u09B0\u09CD\u09B7\u09BE","\u09B6\u09B0\u09CE","\u09B9\u09C7\u09AE\u09A8\u09CD\u09A4","\u09B6\u09C0\u09A4","\u09AC\u09B8\u09A8\u09CD\u09A4"];function f(r){if(r==null)throw new TypeError("Invalid input");let e=String(r).trim();if(e==="")throw new Error("Empty input");if(/[eE]/.test(e))throw new Error("Scientific notation not supported");if(typeof r=="number"){if(!Number.isFinite(r))throw new TypeError("Input must be a finite number");if(Number.isInteger(r)&&Math.abs(r)>=1e5){let s=Math.abs(r),a=Math.log10(s);if(Number.isInteger(a)&&a>=5)throw new Error("Scientific notation not supported")}if(Number.isInteger(r)&&!Number.isSafeInteger(r))throw new TypeError("Input must be a safe integer")}if(/[০-৯]/.test(e))throw new Error("Input already contains Bangla digits");let t=!1,o=!1,i="";for(let s=0;s<e.length;s++){let a=e[s];if(a==="."){if(t)throw new Error("Multiple decimal points");t=!0,i+=".";continue}if(a==="-"){if(s!==0)throw new Error("Invalid minus position");i+="-";continue}let u=F.indexOf(a);if(u!==-1){o=!0,i+=C[u];continue}throw new Error(`Invalid character in number: ${a}`)}if(!o)throw new Error("No digits found");if(t){if(e.startsWith(".")||e.startsWith("-."))throw new Error("Decimal must have leading digit");if(e.endsWith("."))throw new Error("Decimal must have trailing digit")}return i}n(f,"toBanglaNumber");function D(r){if(typeof r!="string")throw new TypeError("Input must be a string");let e=r.trim();if(e==="")throw new Error("Empty input");let t=!1,o=!1,i="";for(let a=0;a<e.length;a++){let u=e[a];if(u==="."){if(t)throw new Error("Multiple decimal points");t=!0,i+=".";continue}if(u==="-"){if(a!==0)throw new Error("Invalid minus position");i+="-";continue}let l=C.indexOf(u);if(l!==-1){o=!0,i+=F[l];continue}throw new Error(`Invalid Bangla digit: ${u}`)}if(!o)throw new Error("No digits found");if(t){if(e.startsWith(".")||e.startsWith("-."))throw new Error("Decimal must have leading digit");if(e.endsWith("."))throw new Error("Decimal must have trailing digit")}let s=Number(i);if(!Number.isFinite(s))throw new TypeError("Failed to parse Bangla number");return s}n(D,"fromBanglaNumber");function _(r){if(r===0)return"\u09B6\u09C2\u09A8\u09CD\u09AF";if(r<0)return"\u098B\u09A3\u09BE\u09A4\u09CD\u09AE\u0995 "+_(-r);if(r<100)return H(r);if(r<1e3)return v(r);if(r<1e5)return Q(r);if(r<1e7)return rr(r);if(r<1e9)return er(r);if(r<1e11)return Mr(r);throw new Error("Number too large to convert to words")}n(_,"toWords");function H(r){let e=["","\u098F\u0995","\u09A6\u09C1\u0987","\u09A4\u09BF\u09A8","\u099A\u09BE\u09B0","\u09AA\u09BE\u0981\u099A","\u099B\u09AF\u09BC","\u09B8\u09BE\u09A4","\u0986\u099F","\u09A8\u09AF\u09BC","\u09A6\u09B6","\u098F\u0997\u09BE\u09B0\u09CB","\u09AC\u09BE\u09B0\u09CB","\u09A4\u09C7\u09B0\u09CB","\u099A\u09CC\u09A6\u09CD\u09A6","\u09AA\u09A8\u09C7\u09B0\u09CB","\u09B7\u09CB\u09B2","\u09B8\u09A4\u09C7\u09B0\u09CB","\u0986\u09A0\u09BE\u09B0\u09CB","\u098A\u09A8\u09BF\u09B6","\u09AC\u09BF\u09B6"],t=["","","\u0995\u09C1\u09A1\u09BC\u09BF","\u09A4\u09BF\u09B0\u09BF\u09B6","\u099A\u09B2\u09CD\u09B2\u09BF\u09B6","\u09AA\u099E\u09CD\u099A\u09BE\u09B6","\u09B7\u09BE\u099F","\u09B8\u09A4\u09CD\u09A4\u09B0","\u0986\u09B6\u09BF","\u09A8\u09AC\u09CD\u09AC\u0987"];if(r===0)return"";if(r<20)return e[r];if(r===23)return"\u09A4\u09C7\u0987\u09B6";if(r===34)return"\u099A\u09CC\u09A4\u09CD\u09B0\u09BF\u09B6";if(r===56)return"\u099B\u09BE\u09AA\u09CD\u09AA\u09BE\u09A8\u09CD\u09A8";let o=Math.floor(r/10),i=r%10;return i===0?t[o]:t[o]+" "+e[i]}n(H,"convertBelowHundred");function v(r){let e=Math.floor(r/100),t=r%100,o="";return e>0&&(e===1?o="\u098F\u0995\u09B6\u09A4":o=H(e)+"\u09B6\u09A4"),t>0&&(o+=(o?" ":"")+H(t)),o}n(v,"convertBelowThousand");function Q(r){let e=Math.floor(r/1e3),t=r%1e3,o="";return e>0&&(e===1?o="\u098F\u0995 \u09B9\u09BE\u099C\u09BE\u09B0":o=v(e)+" \u09B9\u09BE\u099C\u09BE\u09B0"),t>0&&(o+=(o?" ":"")+v(t)),o}n(Q,"convertBelowLakh");function rr(r){let e=Math.floor(r/1e5),t=r%1e5,o="";return e>0&&(e===1?o="\u098F\u0995 \u09B2\u0995\u09CD\u09B7":o=v(e)+" \u09B2\u0995\u09CD\u09B7"),t>0&&(o+=(o?" ":"")+Q(t)),o}n(rr,"convertBelowCrore");function er(r){let e=Math.floor(r/1e7),t=r%1e7,o="";return e>0&&(e===1?o="\u098F\u0995 \u0995\u09CB\u099F\u09BF":o=v(e)+" \u0995\u09CB\u099F\u09BF"),t>0&&(o+=(o?" ":"")+rr(t)),o}n(er,"convertBelowArab");function Mr(r){let e=Math.floor(r/1e9),t=r%1e9,o="";return e>0&&(e===1?o="\u098F\u0995 \u09B9\u09BE\u099C\u09BE\u09B0 \u0995\u09CB\u099F\u09BF":o=v(e)+" \u09B9\u09BE\u099C\u09BE\u09B0 \u0995\u09CB\u099F\u09BF"),t>0&&(o+=(o?" ":"")+er(t)),o}n(Mr,"convertBelowKharab");function de(r,e={}){let{precision:t=2,useBanglaDigits:o=!0}=e;if(r===0)return o?"\u09E6":"0";let i=Math.abs(r),s=r<0?"-":"",a,u;if(i>=1e7)a=i/1e7,u="\u0995\u09CB\u099F\u09BF";else if(i>=1e5)a=i/1e5,u="\u09B2\u0995\u09CD\u09B7";else if(i>=1e3)a=i/1e3,u="\u09B9\u09BE\u099C\u09BE\u09B0";else{let g=o?f(i):i.toString();return s+g}let l=Number(a.toFixed(t)),m=o?f(l):l.toString();return s+m+" "+u}n(de,"formatWithUnits");function nr(r,e={}){let{useBanglaDigits:t=!0,separator:o=","}=e,i=typeof r=="string"?r:r.toString(),[s,a]=i.split("."),u=s;t&&(u=f(s));let l=Sr(u,o);if(a!==void 0){let m=t?f(a):a;return`${l}.${m}`}return l}n(nr,"formatNumber");function Sr(r,e){let t=r.startsWith("-"),o=t?r.slice(1):r;if(o.length<=3)return r;let s=o.slice(-3),a=o.slice(0,-3),u=[];for(let m=a.length;m>0;m-=2){let g=Math.max(0,m-2);u.unshift(a.slice(g,m))}let l=`${u.join(e)}${e}${s}`;return t?`-${l}`:l}n(Sr,"formatIntegerPart");function Ne(r){if(typeof r!="string")return!1;let e=r.trim();if(e==="")return!1;let t=!1,o=!1;for(let i=0;i<e.length;i++){let s=e[i];if(s==="."){if(t)return!1;t=!0;continue}if(s==="-"){if(i!==0)return!1;continue}if(C.indexOf(s)!==-1){o=!0;continue}return!1}return!(!o||t&&(e.startsWith(".")||e.startsWith("-.")||e.endsWith(".")))}n(Ne,"isValidBanglaNumber");function Ie(r){if(r==null)return!1;let e=String(r).trim();if(e===""||/[eE]/.test(e))return!1;if(typeof r=="number"){if(!Number.isFinite(r)||Number.isInteger(r)&&!Number.isSafeInteger(r))return!1;if(Number.isInteger(r)&&Math.abs(r)>=1e5){let i=Math.abs(r),s=Math.log10(i);if(Number.isInteger(s)&&s>=5)return!1}}if(/[০-৯]/.test(e))return!1;let t=!1,o=!1;for(let i=0;i<e.length;i++){let s=e[i];if(s==="."){if(t)return!1;t=!0;continue}if(s==="-"){if(i!==0)return!1;continue}if(F.indexOf(s)!==-1){o=!0;continue}return!1}return!(!o||t&&(e.startsWith(".")||e.startsWith("-.")||e.endsWith(".")))}n(Ie,"isValidNumber");function Ee(r){return typeof r!="number"||!Number.isFinite(r)||!Number.isInteger(r)?!1:r>=-99999999999&&r<=99999999999}n(Ee,"isValidNumberForWords");function Me(r){return typeof r!="number"||!Number.isFinite(r)||!Number.isInteger(r)?!1:r>0}n(Me,"isValidNumberForOrdinal");function tr(r){if(typeof r!="string")return"";let e=r.trim();return e=e.replace(/,/g,""),e=e.replace(/৳/g,""),e.trim()}n(tr,"sanitizeNumberInput");function ve(r){let e=[],t=[];for(let o of r)try{let i=f(o);e.push({input:o,output:i})}catch(i){t.push({input:o,error:i instanceof Error?i.message:String(i)})}return{success:e,errors:t}}n(ve,"batchToBanglaNumber");function Oe(r){let e=[],t=[];for(let o of r)try{let i=D(o);e.push({input:o,output:i})}catch(i){t.push({input:o,error:i instanceof Error?i.message:String(i)})}return{success:e,errors:t}}n(Oe,"batchFromBanglaNumber");function Pe(r,e=""){try{return f(r)}catch{return e}}n(Pe,"safeToBanglaNumber");function Le(r,e=0){try{return D(r)}catch{return e}}n(Le,"safeFromBanglaNumber");function Ye(r){let e=tr(r);return f(e)}n(Ye,"parseAndConvertToBangla");function Ge(r,e=!0,t=","){return nr(r,{useBanglaDigits:e,separator:t})}n(Ge,"formatAndConvert");function ke(r){return{words:_(r),digits:f(r)}}n(ke,"convertToWordsAndDigits");function Ve(r,e,t){return Number.isFinite(r)?r>=e&&r<=t:!1}n(Ve,"isNumberInRange");function ze(r,e=2){let t=Math.pow(10,e);return Math.trunc(r*t)/t}n(ze,"truncateDecimals");function G(r,e={}){let{includeSymbol:t=!0,includeWord:o=!1}=e,i=typeof r=="string"?parseFloat(r):r;if(Number.isNaN(i))throw new Error("Invalid amount");let s=f(i.toFixed(2)),a=[];return t&&a.push("\u09F3"),a.push(s),o&&a.push("\u099F\u09BE\u0995\u09BE"),a.join(" ")}n(G,"formatCurrency");function U(r){let e=r.replace(/৳/g,"").replace(/টাকা/g,"").trim();return e=e.replace(/\s+/g,""),D(e)}n(U,"parseCurrency");function c(r){return typeof r=="number"&&!isNaN(r)&&isFinite(r)}n(c,"isValidCurrency");function Tr(r){if(typeof r!="string"||!r.trim())return!1;let e=r.trim();return e.includes("\u09F3")||e.includes("\u099F\u09BE\u0995\u09BE")?!0:/[০-৯]/.test(e)}n(Tr,"isBanglaCurrency");function sn(r){return c(r)&&r>0}n(sn,"isPositiveAmount");function an(r){return c(r)&&r<0}n(an,"isNegativeAmount");function un(r){return c(r)&&r===0}n(un,"isZeroAmount");function or(r){if(typeof r=="number")return isNaN(r)||!isFinite(r)?null:r;if(typeof r=="string"){let e=r.trim();if(e==="")return null;if(Tr(e))return e;let t=parseFloat(e);return isNaN(t)?null:t}return null}n(or,"sanitizeCurrencyInput");function fn(r,e,t){return!c(r)||!c(e)||!c(t)||e>t?!1:r>=e&&r<=t}n(fn,"isCurrencyInRange");function mn(r){return typeof r!="string"?!1:r.includes("\u09F3")}n(mn,"hasTakaSymbol");function ln(r){return typeof r!="string"?!1:r.includes("\u099F\u09BE\u0995\u09BE")}n(ln,"hasTakaWord");function hn(r,e={},t=""){try{let o=typeof r=="string"?parseFloat(r):r;return c(o)?G(r,e):t}catch{return t}}n(hn,"safeFormatCurrency");function xn(r,e=0){try{let t=U(r);return c(t)?t:e}catch{return e}}n(xn,"safeParseCurrency");function yn(r,e={}){return r.filter(t=>c(t)).map(t=>G(t,e))}n(yn,"batchFormatCurrency");function M(r,e=2){if(!c(r))throw new Error("Invalid currency amount");let t=Math.pow(10,e);return Math.round(r*t)/t}n(M,"roundCurrency");function Ar(r){let t=r.filter(o=>c(o)).reduce((o,i)=>o+i,0);return M(t,2)}n(Ar,"sumCurrency");function ir(r,e){if(!c(r)||!c(e))throw new Error("Invalid currency amounts");return M(r-e,2)}n(ir,"subtractCurrency");function wn(r,e){if(!c(r)||!c(e))throw new Error("Invalid currency amount or factor");return M(r*e,2)}n(wn,"multiplyCurrency");function Wr(r,e){if(!c(r)||!c(e))throw new Error("Invalid currency amount or divisor");if(e===0)throw new Error("Cannot divide by zero");return M(r/e,2)}n(Wr,"divideCurrency");function sr(r,e){if(!c(r)||!c(e))throw new Error("Invalid currency amount or percentage");return M(r*e/100,2)}n(sr,"calculatePercentage");function Dn(r,e){let t=sr(r,e);return ir(r,t)}n(Dn,"applyDiscount");function Bn(r,e){let t=sr(r,e);return M(r+t,2)}n(Bn,"addTax");function Nn(r,e){if(!c(r))throw new Error("Invalid currency amount");if(!Number.isInteger(e)||e<1)throw new Error("Parts must be a positive integer");let t=Wr(r,e),o=Array(e-1).fill(t),i=Ar(o),s=ir(r,i);return o.push(s),o}n(Nn,"splitAmount");function In(r,e){if(!c(r)||!c(e))throw new Error("Invalid currency amounts");let t=M(r,2),o=M(e,2);return t<o?-1:t>o?1:0}n(In,"compareCurrency");function En(r){if(!c(r))throw new Error("Invalid currency amount");return Math.abs(r)}n(En,"getAbsoluteAmount");function Mn(r){if(!c(r))throw new Error("Invalid currency amount");return-r}n(Mn,"negateAmount");function Sn(r,e={}){let t=or(r);if(t===null)throw new Error("Invalid currency input");if(typeof t=="string"){let o=U(t);return G(o,e)}return G(t,e)}n(Sn,"parseAndFormatCurrency");function h(r){if(r<1||r>12)throw new Error("Month number must be between 1 and 12");return E[r-1]}n(h,"toBanglaMonth");function B(r){let e=E.indexOf(r);if(e===-1)throw new Error(`Invalid Bangla month name: ${r}`);return e+1}n(B,"fromBanglaMonth");function ar(r){let e=r.getMonth()+1;return h(e)}n(ar,"getMonthName");function p(r){return r instanceof Date&&!isNaN(r.getTime())}n(p,"isValidDate");function ur(r){if(typeof r!="string"||r.trim()==="")return!1;let e=r.trim().replace(/\s+/g," ");if(/^\d{4}[\-\/]\d{1,2}[\-\/]\d{1,2}$/.test(e))return!1;let t=/^(\d+|[০-৯]+)\s+(বৈশাখ|জ্যৈষ্ঠ|আষাঢ়|শ্রাবণ|ভাদ্র|আশ্বিন|কার্তিক|অগ্রহায়ণ|পৌষ|মাঘ|ফাল্গুন|চৈত্র)(?:\s+(\d+|[০-৯]+))?$/,o=/^(\d{1,2}|[০-৯]{1,2})[\/\-](\d{1,2}|[০-৯]{1,2})[\/\-](\d{2,4}|[০-৯]{2,4})$/;return t.test(e)||o.test(e)}n(ur,"isValidBengaliDateString");function Hn(r){return typeof r!="string"?!1:/[০-৯]/.test(r)}n(Hn,"hasBengaliDigits");function _n(r){return typeof r!="string"?!1:/(বৈশাখ|জ্যৈষ্ঠ|আষাঢ়|শ্রাবণ|ভাদ্র|আশ্বিন|কার্তিক|অগ্রহায়ণ|পৌষ|মাঘ|ফাল্গুন|চৈত্র)/.test(r)}n(_n,"hasBengaliMonth");function Un(r){return p(r)?r:null}n(Un,"sanitizeDate");function I(r){return typeof r=="number"&&Number.isInteger(r)&&r>=1&&r<=12}n(I,"isValidMonthNumber");function N(r){if(typeof r!="string")return!1;let e=r.trim();return E.includes(e)}n(N,"isValidBanglaMonth");function fr(r){if(typeof r=="string"){let t=r.trim();if(t==="")return null;let o=Number(t);if(isNaN(o))return null;r=o}if(typeof r!="number"||isNaN(r)||!isFinite(r))return null;let e=Math.round(r);return e<1||e>12?null:e}n(fr,"sanitizeMonthNumber");function Zn(r){if(typeof r!="string")return null;let e=r.trim();return e===""||!N(e)?null:e}n(Zn,"sanitizeBanglaMonth");function ot(r,e=""){try{return I(r)?h(r):e}catch{return e}}n(ot,"safeToBanglaMonth");function it(r,e=0){try{return N(r)?B(r):e}catch{return e}}n(it,"safeFromBanglaMonth");function st(){return[...E]}n(st,"getAllMonths");function at(r){if(typeof r=="number"){if(!I(r))throw new Error("Invalid month number");return r===12?1:r+1}else{if(!N(r))throw new Error("Invalid Bangla month name");let e=B(r),t=e===12?1:e+1;return h(t)}}n(at,"getNextMonth");function ut(r){if(typeof r=="number"){if(!I(r))throw new Error("Invalid month number");return r===1?12:r-1}else{if(!N(r))throw new Error("Invalid Bangla month name");let e=B(r),t=e===1?12:e-1;return h(t)}}n(ut,"getPreviousMonth");function Cr(r,e){let t=typeof r=="number",o,i;if(t){if(!I(r)||!I(e))throw new Error("Invalid month numbers");o=r,i=e}else{if(!N(r)||!N(e))throw new Error("Invalid Bangla month names");o=B(r),i=B(e)}let s=[],a=o;for(;t?s.push(a):s.push(h(a)),!(a===i||(a=a===12?1:a+1,s.length>12)););return s}n(Cr,"getMonthRange");function ft(r,e,t){try{return Cr(e,t).includes(r)}catch{return!1}}n(ft,"isMonthInRange");function mt(r,e){let t,o;if(typeof r=="number"){if(!I(r))throw new Error("Invalid month1");t=r}else{if(!N(r))throw new Error("Invalid month1");t=B(r)}if(typeof e=="number"){if(!I(e))throw new Error("Invalid month2");o=e}else{if(!N(e))throw new Error("Invalid month2");o=B(e)}return t<o?-1:t>o?1:0}n(mt,"compareMonths");function lt(r){if(typeof r=="number"){if(!I(r))throw new Error("Invalid month number");return r-1}else{if(!N(r))throw new Error("Invalid Bangla month name");return B(r)-1}}n(lt,"getMonthIndex");function ct(r){if(!Number.isInteger(r)||r<0||r>11)throw new Error("Index must be between 0 and 11");return r+1}n(ct,"getMonthFromIndex");function gt(r){if(typeof r=="string"&&N(r.trim()))return r.trim();let e=fr(r);if(e===null)throw new Error("Invalid month input");return h(e)}n(gt,"parseAndConvertToMonth");function pt(r){return r.filter(e=>I(e)).map(e=>h(e))}n(pt,"batchToBanglaMonth");function bt(){let r={};for(let e=1;e<=12;e++)r[e]=h(e);return r}n(bt,"getMonthMapping");function O(r){if(r<0||r>6)throw new Error("Weekday number must be between 0 and 6");return $[r]}n(O,"toBanglaWeekday");function V(r){let e=$.indexOf(r);if(e===-1)throw new Error(`Invalid Bangla weekday name: ${r}`);return e}n(V,"fromBanglaWeekday");function mr(r){let e=r.getDay();return O(e)}n(mr,"getWeekdayName");function vt(r){return typeof r!="number"||!Number.isFinite(r)||!Number.isInteger(r)?!1:r>=0&&r<=6}n(vt,"isValidWeekdayNumber");function Ot(r){if(typeof r!="string")return!1;let e=r.trim();return e===""?!1:$.includes(e)}n(Ot,"isValidBanglaWeekday");function Pt(r){return r instanceof Date?!isNaN(r.getTime()):!1}n(Pt,"isValidDateForWeekday");function lr(r){return typeof r!="string"?"":r.trim()}n(lr,"sanitizeWeekdayInput");function Fr(r){if(r<0||r>6)throw new Error("Weekday number must be between 0 and 6");return r===5||r===6}n(Fr,"isWeekend");function zt(r){let e=V(r);return Fr(e)}n(zt,"isBanglaWeekend");function $r(r){if(r<0||r>6)throw new Error("Weekday number must be between 0 and 6");return(r+1)%7}n($r,"getNextWeekday");function vr(r){if(r<0||r>6)throw new Error("Weekday number must be between 0 and 6");return(r-1+7)%7}n(vr,"getPreviousWeekday");function Rt(r){let e=$r(r);return O(e)}n(Rt,"getNextBanglaWeekday");function Ht(r){let e=vr(r);return O(e)}n(Ht,"getPreviousBanglaWeekday");function _t(r){let e=lr(r);return V(e)}n(_t,"parseWeekdayInput");function Ut(r,e=""){try{return O(r)}catch{return e}}n(Ut,"safeToBanglaWeekday");function jt(r,e=-1){try{return V(r)}catch{return e}}n(jt,"safeFromBanglaWeekday");function Kt(){return["\u09B0\u09AC\u09BF\u09AC\u09BE\u09B0","\u09B8\u09CB\u09AE\u09AC\u09BE\u09B0","\u09AE\u0999\u09CD\u0997\u09B2\u09AC\u09BE\u09B0","\u09AC\u09C1\u09A7\u09AC\u09BE\u09B0","\u09AC\u09C3\u09B9\u09B8\u09CD\u09AA\u09A4\u09BF\u09AC\u09BE\u09B0","\u09B6\u09C1\u0995\u09CD\u09B0\u09AC\u09BE\u09B0","\u09B6\u09A8\u09BF\u09AC\u09BE\u09B0"]}n(Kt,"getAllBanglaWeekdays");function qt(r,e){if(r<0||r>6||e<0||e>6)throw new Error("Weekday numbers must be between 0 and 6");return(e-r+7)%7}n(qt,"getDaysBetween");function j(r,e={}){let{includeWeekday:t=!1,includeYear:o=!0,format:i="long"}=e,s=[];if(t){let m=mr(r);s.push(m)}let a=f(r.getDate()),u=ar(r),l=o?f(r.getFullYear()):null;return i==="short"?s.push(`${a} ${u}`):s.push(a,u),l&&s.push(l),s.join(" ")}n(j,"formatDate");function cr(r){let e=r.trim().replace(/\s+/g," "),t=e.match(/^(\d+|[০-৯]+)\s+(বৈশাখ|জ্যৈষ্ঠ|আষাঢ়|শ্রাবণ|ভাদ্র|আশ্বিন|কার্তিক|অগ্রহায়ণ|পৌষ|মাঘ|ফাল্গুন|চৈত্র)(?:\s+(\d+|[০-৯]+))?$/);if(t){let i=t[1],s=t[2],a=t[3],u=/[০-৯]/.test(i)?D(i):parseInt(i,10),l=B(s),m=a?/[০-৯]/.test(a)?D(a):parseInt(a,10):new Date().getFullYear();return new Date(m,l-1,u)}let o=e.match(/^(\d+|[০-৯]+)[\/\-](\d+|[০-৯]+)[\/\-](\d+|[০-৯]+)$/);if(o){let i=o[1],s=o[2],a=o[3],u=/[০-৯]/.test(i)?D(i):parseInt(i,10),l=/[০-৯]/.test(s)?D(s):parseInt(s,10),m=/[০-৯]/.test(a)?D(a):parseInt(a,10);return new Date(m,l-1,u)}throw new Error(`Unable to parse date string: ${r}`)}n(cr,"parseDate");function Or(r,e,t=""){try{return p(r)?j(r,e):t}catch{return t}}n(Or,"safeFormatDate");function Pr(r,e){try{return cr(r)}catch{return e||new Date}}n(Pr,"safeParseDate");function ho(r){return j(new Date,r)}n(ho,"formatToday");function xo(r,e){return r.map(t=>Or(t,e))}n(xo,"batchFormatDates");function yo(r){return r.map(e=>Pr(e))}n(yo,"batchParseDates");function wo(r){return ur(r)}n(wo,"canParseBengaliDate");function gr(r,e){if(!p(r)||!p(e))throw new Error("Invalid date");let t=r.getTime(),o=e.getTime();return t<o?-1:t>o?1:0}n(gr,"compareDates");function Do(r){if(!p(r))return!1;let e=new Date;return r.getDate()===e.getDate()&&r.getMonth()===e.getMonth()&&r.getFullYear()===e.getFullYear()}n(Do,"isToday");function Bo(r){return p(r)?r.getTime()<Date.now():!1}n(Bo,"isPast");function No(r){return p(r)?r.getTime()>Date.now():!1}n(No,"isFuture");function Io(r,e){if(!p(r)||!p(e))throw new Error("Invalid date");let t=e.getTime()-r.getTime();return Math.floor(t/(1e3*60*60*24))}n(Io,"getDaysDifference");function Eo(r,e){if(!p(r))throw new Error("Invalid date");let t=new Date(r);return t.setDate(t.getDate()+e),t}n(Eo,"addDays");function Mo(r,e,t){return!p(r)||!p(e)||!p(t)?!1:gr(r,e)>=0&&gr(r,t)<=0}n(Mo,"isDateInRange");function z(r){if(r<1||r>12)throw new Error("Month number must be between 1 and 12");return r>=1&&r<=2?b[0]:r>=3&&r<=5?b[1]:r>=6&&r<=7?b[2]:r===8?b[3]:r>=9&&r<=10?b[4]:b[5]}n(z,"getSeasonFromMonth");function k(r){let e=r.getMonth()+1;return z(e)}n(k,"getSeason");function Vo(r){return typeof r!="number"||!Number.isFinite(r)||!Number.isInteger(r)?!1:r>=1&&r<=12}n(Vo,"isValidMonth");function zo(r){if(typeof r!="string")return!1;let e=r.trim();return e===""?!1:b.includes(e)}n(zo,"isValidSeasonName");function Ro(r){return r instanceof Date?!isNaN(r.getTime()):!1}n(Ro,"isValidDateForSeason");function qo(){return["\u0997\u09CD\u09B0\u09C0\u09B7\u09CD\u09AE","\u09AC\u09B0\u09CD\u09B7\u09BE","\u09B6\u09B0\u09CE","\u09B9\u09C7\u09AE\u09A8\u09CD\u09A4","\u09B6\u09C0\u09A4","\u09AC\u09B8\u09A8\u09CD\u09A4"]}n(qo,"getAllSeasons");function pr(r){let t={\u0997\u09CD\u09B0\u09C0\u09B7\u09CD\u09AE:[1,2],\u09AC\u09B0\u09CD\u09B7\u09BE:[3,4,5],"\u09B6\u09B0\u09CE":[6,7],\u09B9\u09C7\u09AE\u09A8\u09CD\u09A4:[8],\u09B6\u09C0\u09A4:[9,10],\u09AC\u09B8\u09A8\u09CD\u09A4:[11,12]}[r];if(!t)throw new Error(`Invalid season name: ${r}`);return t}n(pr,"getSeasonMonths");function K(r){return b.indexOf(r)}n(K,"getSeasonIndex");function Zo(r){if(r<0||r>5)throw new Error("Season index must be between 0 and 5");return b[r]}n(Zo,"getSeasonByIndex");function Xo(r,e){if(r<1||r>12)return!1;try{return pr(e).includes(r)}catch{return!1}}n(Xo,"isMonthInSeason");function Jo(r){let e=K(r);if(e===-1)throw new Error(`Invalid season name: ${r}`);let t=(e+1)%6;return b[t]}n(Jo,"getNextSeason");function Qo(r){let e=K(r);if(e===-1)throw new Error(`Invalid season name: ${r}`);let t=(e-1+6)%6;return b[t]}n(Qo,"getPreviousSeason");function ri(r,e=""){if(!(r instanceof Date)||isNaN(r.getTime()))return e;try{return k(r)}catch{return e}}n(ri,"safeGetSeason");function ei(r,e=""){try{return z(r)}catch{return e}}n(ei,"safeGetSeasonFromMonth");function ni(){return k(new Date)}n(ni,"getCurrentSeason");function ti(r,e){let t=k(r),o=k(e);return t===o}n(ti,"isSameSeason");function oi(r){let e=K(r);if(e===-1)throw new Error(`Invalid season name: ${r}`);let t=pr(r),o={1:"\u09AC\u09C8\u09B6\u09BE\u0996",2:"\u099C\u09CD\u09AF\u09C8\u09B7\u09CD\u09A0",3:"\u0986\u09B7\u09BE\u09A2\u09BC",4:"\u09B6\u09CD\u09B0\u09BE\u09AC\u09A3",5:"\u09AD\u09BE\u09A6\u09CD\u09B0",6:"\u0986\u09B6\u09CD\u09AC\u09BF\u09A8",7:"\u0995\u09BE\u09B0\u09CD\u09A4\u09BF\u0995",8:"\u0985\u0997\u09CD\u09B0\u09B9\u09BE\u09AF\u09BC\u09A3",9:"\u09AA\u09CC\u09B7",10:"\u09AE\u09BE\u0998",11:"\u09AB\u09BE\u09B2\u09CD\u0997\u09C1\u09A8",12:"\u099A\u09C8\u09A4\u09CD\u09B0"},i=t.map(s=>o[s]);return{name:r,months:t,index:e,monthNames:i}}n(oi,"getSeasonInfo");function x(r){if(r<1)throw new Error("Number must be greater than 0");let e={1:"\u09AA\u09CD\u09B0\u09A5\u09AE",2:"\u09A6\u09CD\u09AC\u09BF\u09A4\u09C0\u09AF\u09BC",3:"\u09A4\u09C3\u09A4\u09C0\u09AF\u09BC",4:"\u099A\u09A4\u09C1\u09B0\u09CD\u09A5",5:"\u09AA\u099E\u09CD\u099A\u09AE",6:"\u09B7\u09B7\u09CD\u09A0",7:"\u09B8\u09AA\u09CD\u09A4\u09AE",8:"\u0985\u09B7\u09CD\u099F\u09AE",9:"\u09A8\u09AC\u09AE",10:"\u09A6\u09B6\u09AE",11:"\u098F\u0995\u09BE\u09A6\u09B6",12:"\u09A6\u09CD\u09AC\u09BE\u09A6\u09B6",13:"\u09A4\u09CD\u09B0\u09AF\u09BC\u09CB\u09A6\u09B6",14:"\u099A\u09A4\u09C1\u09B0\u09CD\u09A6\u09B6",15:"\u09AA\u099E\u09CD\u099A\u09A6\u09B6",16:"\u09B7\u09CB\u09A1\u09BC\u09B6",17:"\u09B8\u09AA\u09CD\u09A4\u09A6\u09B6",18:"\u0985\u09B7\u09CD\u099F\u09BE\u09A6\u09B6",19:"\u098A\u09A8\u09AC\u09BF\u0982\u09B6",20:"\u09AC\u09BF\u0982\u09B6",21:"\u098F\u0995\u09AC\u09BF\u0982\u09B6",22:"\u09A6\u09CD\u09AC\u09BE\u09AC\u09BF\u0982\u09B6",23:"\u09A4\u09CD\u09B0\u09AF\u09BC\u09CB\u09AC\u09BF\u0982\u09B6",24:"\u099A\u09A4\u09C1\u09B0\u09CD\u09AC\u09BF\u0982\u09B6",25:"\u09AA\u099E\u09CD\u099A\u09AC\u09BF\u0982\u09B6",30:"\u09A4\u09CD\u09B0\u09BF\u0982\u09B6",40:"\u099A\u09A4\u09CD\u09AC\u09BE\u09B0\u09BF\u0982\u09B6",50:"\u09AA\u099E\u09CD\u099A\u09BE\u09B6\u09A4\u09CD\u09A4\u09AE",60:"\u09B7\u09B7\u09CD\u099F\u09BF\u09A4\u09AE",70:"\u09B8\u09AA\u09CD\u09A4\u09A4\u09BF\u09A4\u09AE",80:"\u0985\u09B6\u09C0\u09A4\u09BF\u09A4\u09AE",90:"\u09A8\u09AC\u09A4\u09BF\u09A4\u09AE",100:"\u09B6\u09A4\u09A4\u09AE"};return e[r]?e[r]:`${f(r)}\u09A4\u09AE`}n(x,"toOrdinal");function d(r){return typeof r=="number"&&!isNaN(r)&&isFinite(r)&&Number.isInteger(r)&&r>=1}n(d,"isValidOrdinal");function bi(r){if(typeof r!="string"||!r.trim())return!1;let e=r.trim();return["\u09AA\u09CD\u09B0\u09A5\u09AE","\u09A6\u09CD\u09AC\u09BF\u09A4\u09C0\u09AF\u09BC","\u09A4\u09C3\u09A4\u09C0\u09AF\u09BC","\u099A\u09A4\u09C1\u09B0\u09CD\u09A5","\u09AA\u099E\u09CD\u099A\u09AE","\u09B7\u09B7\u09CD\u09A0","\u09B8\u09AA\u09CD\u09A4\u09AE","\u0985\u09B7\u09CD\u099F\u09AE","\u09A8\u09AC\u09AE","\u09A6\u09B6\u09AE","\u098F\u0995\u09BE\u09A6\u09B6","\u09A6\u09CD\u09AC\u09BE\u09A6\u09B6","\u09A4\u09CD\u09B0\u09AF\u09BC\u09CB\u09A6\u09B6","\u099A\u09A4\u09C1\u09B0\u09CD\u09A6\u09B6","\u09AA\u099E\u09CD\u099A\u09A6\u09B6","\u09B7\u09CB\u09A1\u09BC\u09B6","\u09B8\u09AA\u09CD\u09A4\u09A6\u09B6","\u0985\u09B7\u09CD\u099F\u09BE\u09A6\u09B6","\u098A\u09A8\u09AC\u09BF\u0982\u09B6","\u09AC\u09BF\u0982\u09B6","\u098F\u0995\u09AC\u09BF\u0982\u09B6","\u09A6\u09CD\u09AC\u09BE\u09AC\u09BF\u0982\u09B6","\u09A4\u09CD\u09B0\u09AF\u09BC\u09CB\u09AC\u09BF\u0982\u09B6","\u099A\u09A4\u09C1\u09B0\u09CD\u09AC\u09BF\u0982\u09B6","\u09AA\u099E\u09CD\u099A\u09AC\u09BF\u0982\u09B6","\u09A4\u09CD\u09B0\u09BF\u0982\u09B6","\u099A\u09A4\u09CD\u09AC\u09BE\u09B0\u09BF\u0982\u09B6","\u09AA\u099E\u09CD\u099A\u09BE\u09B6\u09A4\u09CD\u09A4\u09AE","\u09B7\u09B7\u09CD\u099F\u09BF\u09A4\u09AE","\u09B8\u09AA\u09CD\u09A4\u09A4\u09BF\u09A4\u09AE","\u0985\u09B6\u09C0\u09A4\u09BF\u09A4\u09AE","\u09A8\u09AC\u09A4\u09BF\u09A4\u09AE","\u09B6\u09A4\u09A4\u09AE"].includes(e)?!0:e.endsWith("\u09A4\u09AE")}n(bi,"isBanglaOrdinal");function di(r){return d(r)?[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,40,50,60,70,80,90,100].includes(r):!1}n(di,"hasSpecialOrdinal");function br(r){if(typeof r=="string"){let t=r.trim();if(t==="")return null;let o=Number(t);if(isNaN(o))return null;r=o}if(typeof r!="number"||isNaN(r)||!isFinite(r))return null;let e=Math.round(r);return e<1?null:e}n(br,"sanitizeOrdinalInput");function hi(r){return d(r)&&r>=1&&r<=100}n(hi,"isInSpecialOrdinalRange");function Bi(r,e=""){try{return d(r)?x(r):e}catch{return e}}n(Bi,"safeToOrdinal");function Ni(r){return r.filter(e=>d(e)).map(e=>x(e))}n(Ni,"batchToOrdinal");function Ii(r){let e=br(r);if(e===null)throw new Error("Invalid input for ordinal conversion");return x(e)}n(Ii,"parseAndConvertToOrdinal");function Ei(){return[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,40,50,60,70,80,90,100].map(e=>({number:e,ordinal:x(e)}))}n(Ei,"getSpecialOrdinals");function Mi(r,e){if(!d(r)||!d(e))throw new Error("Start and end must be positive integers");if(r>e)throw new Error("Start must be less than or equal to end");let t=[];for(let o=r;o<=e;o++)t.push(x(o));return t}n(Mi,"getOrdinalSequence");function Si(r,e={}){let{separator:t=" ",showNumber:o=!0}=e,i=x(r);return o?`${r}${t}${i}`:i}n(Si,"formatOrdinal");function Ti(r){if(!d(r))throw new Error("Number must be a valid positive integer");let e=x(r);return e.endsWith("\u09A4\u09AE")&&/[০-৯]/.test(e)?"suffix":"special"}n(Ti,"getOrdinalType");function Ai(r,e){let t=x(r);return e?`${t} ${e}`:t}n(Ai,"getRanking");function Wi(r,e){if(!d(r)||!d(e))throw new Error("Both numbers must be valid positive integers");return r<e?-1:r>e?1:0}n(Wi,"compareOrdinals");function Ci(r){if(!d(r))throw new Error("Current must be a valid positive integer");return x(r+1)}n(Ci,"getNextOrdinal");function Fi(r){if(!d(r))throw new Error("Current must be a valid positive integer");if(r===1)throw new Error("No previous ordinal for 1 (\u09AA\u09CD\u09B0\u09A5\u09AE is the first)");return x(r-1)}n(Fi,"getPreviousOrdinal");function $i(r,e=1){if(!d(e))throw new Error("startFrom must be a valid positive integer");return r.map((t,o)=>{let i=e+o;return{position:i,ordinal:x(i),item:t}})}n($i,"createOrdinalList");function q(r,e={}){let{includeSeconds:t=!1,use12Hour:o=!1}=e,i,s,a;if(typeof r=="string"){let w=r.split(":");if(i=parseInt(w[0],10),s=parseInt(w[1],10),a=w[2]?parseInt(w[2],10):0,Number.isNaN(i)||Number.isNaN(s))throw new Error("Invalid time string format. Use HH:mm or HH:mm:ss")}else i=r.getHours(),s=r.getMinutes(),a=r.getSeconds();let u=i,l="";o&&(i===0?(u=12,l="\u09B0\u09BE\u09A4"):i<12?l="\u09B8\u0995\u09BE\u09B2":i===12?l="\u09A6\u09C1\u09AA\u09C1\u09B0":(u=i-12,l="\u09AC\u09BF\u0995\u09BE\u09B2"));let m=f(u.toString().padStart(2,"0")),g=f(s.toString().padStart(2,"0")),Y=[m,g];if(t){let w=f(a.toString().padStart(2,"0"));Y.push(w)}let A=Y.join(":");return l?`${A} ${l}`:A}n(q,"formatTime");function dr(r,e=new Date){let t=r.getTime()-e.getTime(),o=Math.floor(t/1e3),i=Math.floor(o/60),s=Math.floor(i/60),a=Math.abs(s),u=new Date(e);u.setHours(0,0,0,0);let l=new Date(r);l.setHours(0,0,0,0);let m=Math.floor((l.getTime()-u.getTime())/(1e3*60*60*24));if(a<24)return o===0?"\u098F\u0996\u09A8":Math.abs(o)<60?o<0?`${f(Math.abs(o))} \u09B8\u09C7\u0995\u09C7\u09A8\u09CD\u09A1 \u0986\u0997\u09C7`:`${f(o)} \u09B8\u09C7\u0995\u09C7\u09A8\u09CD\u09A1 \u09AA\u09B0\u09C7`:Math.abs(i)<60?i<0?`${f(Math.abs(i))} \u09AE\u09BF\u09A8\u09BF\u099F \u0986\u0997\u09C7`:`${f(i)} \u09AE\u09BF\u09A8\u09BF\u099F \u09AA\u09B0\u09C7`:s<0?`${f(Math.abs(s))} \u0998\u09A3\u09CD\u099F\u09BE \u0986\u0997\u09C7`:`${f(s)} \u0998\u09A3\u09CD\u099F\u09BE \u09AA\u09B0\u09C7`;if(m===-1)return"\u0997\u09A4\u0995\u09BE\u09B2";if(m===1)return"\u0986\u0997\u09BE\u09AE\u09C0\u0995\u09BE\u09B2";if(m===-2)return"\u0997\u09A4 \u09AA\u09B0\u09B6\u09C1";if(m===2)return"\u09AA\u09B0\u09B6\u09C1";if(m<0){if(Math.abs(m)<7)return`${f(Math.abs(m))} \u09A6\u09BF\u09A8 \u0986\u0997\u09C7`;if(Math.abs(m)<30){let g=Math.floor(Math.abs(m)/7);return`${f(g)} \u09B8\u09AA\u09CD\u09A4\u09BE\u09B9 \u0986\u0997\u09C7`}else if(Math.abs(m)<365){let g=Math.floor(Math.abs(m)/30);return`${f(g)} \u09AE\u09BE\u09B8 \u0986\u0997\u09C7`}else{let g=Math.floor(Math.abs(m)/365);return`${f(g)} \u09AC\u099B\u09B0 \u0986\u0997\u09C7`}}else{if(m<7)return`${f(m)} \u09A6\u09BF\u09A8 \u09AA\u09B0\u09C7`;if(m<30){let g=Math.floor(m/7);return`${f(g)} \u09B8\u09AA\u09CD\u09A4\u09BE\u09B9 \u09AA\u09B0\u09C7`}else if(m<365){let g=Math.floor(m/30);return`${f(g)} \u09AE\u09BE\u09B8 \u09AA\u09B0\u09C7`}else{let g=Math.floor(m/365);return`${f(g)} \u09AC\u099B\u09B0 \u09AA\u09B0\u09C7`}}}n(dr,"relativeTime");function Hi(r,e=new Date){let t=new Date(e);t.setHours(0,0,0,0);let o=new Date(r);o.setHours(0,0,0,0);let i=Math.floor((o.getTime()-t.getTime())/(1e3*60*60*24));return i===0?"\u0986\u099C":i===-1?"\u0997\u09A4\u0995\u09BE\u09B2":i===1?"\u0986\u0997\u09BE\u09AE\u09C0\u0995\u09BE\u09B2":i===-2?"\u0997\u09A4 \u09AA\u09B0\u09B6\u09C1":i===2?"\u09AA\u09B0\u09B6\u09C1":""}n(Hi,"relativeDay");function hr(r){if(typeof r!="string")return!1;let e=r.trim();if(e==="")return!1;let t=/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/,o=e.match(t);if(!o)return!1;let i=parseInt(o[1],10),s=parseInt(o[2],10),a=o[3]?parseInt(o[3],10):0;return!(i<0||i>23||s<0||s>59||a<0||a>59)}n(hr,"isValidTimeString");function Ki(r){return p(r)||hr(r)}n(Ki,"isValidTimeInput");function qi(r){return hr(r)?r.trim().split(":").length===3:!1}n(qi,"hasSeconds");function xr(r){return typeof r!="string"?"":r.trim()}n(xr,"sanitizeTimeInput");function yr(r){let t=xr(r).split(":"),o=parseInt(t[0],10),i=parseInt(t[1],10),s=t[2]?parseInt(t[2],10):0;if(Number.isNaN(o)||Number.isNaN(i))throw new Error("Invalid time string format. Use HH:mm or HH:mm:ss");if(o<0||o>23)throw new Error("Hours must be between 0 and 23");if(i<0||i>59)throw new Error("Minutes must be between 0 and 59");if(s<0||s>59)throw new Error("Seconds must be between 0 and 59");return{hours:o,minutes:i,seconds:s}}n(yr,"parseTime");function S(r){let{hours:e,minutes:t,seconds:o}=yr(r);return e*3600+t*60+o}n(S,"timeToSeconds");function Lr(r){if(r<0||r>=86400)throw new Error("Seconds must be between 0 and 86399");let e=Math.floor(r/3600),t=Math.floor(r%3600/60),o=r%60;return`${e.toString().padStart(2,"0")}:${t.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`}n(Lr,"secondsToTime");function es(r,e){let t=S(r),o=S(e);return t<o?-1:t>o?1:0}n(es,"compareTimes");function ns(r,e,t){let o=S(r),i=S(e),s=S(t);return o>=i&&o<=s}n(ns,"isTimeInRange");function ts(r,e){let o=S(r)+e*60;return o=(o%86400+86400)%86400,Lr(o)}n(ts,"addMinutesToTime");function os(r,e){let t=S(r),o=S(e);return Math.floor((o-t)/60)}n(os,"timeDifferenceMinutes");function is(r,e={},t=""){try{return q(r,e)}catch{return t}}n(is,"safeFormatTime");function ss(r,e=new Date,t=""){try{return dr(r,e)}catch{return t}}n(ss,"safeRelativeTime");function as(r){let e;if(typeof r=="string"){let{hours:t}=yr(r);e=t}else e=r.getHours();return e>=0&&e<6?"\u09B0\u09BE\u09A4":e>=6&&e<12?"\u09B8\u0995\u09BE\u09B2":e>=12&&e<15?"\u09A6\u09C1\u09AA\u09C1\u09B0":e>=15&&e<18?"\u09AC\u09BF\u0995\u09BE\u09B2":e>=18&&e<20?"\u09B8\u09A8\u09CD\u09A7\u09CD\u09AF\u09BE":"\u09B0\u09BE\u09A4"}n(as,"getTimePeriod");function us(r={}){return q(new Date,r)}n(us,"getCurrentTimeBangla");function fs(r,e){return r.getFullYear()===e.getFullYear()&&r.getMonth()===e.getMonth()&&r.getDate()===e.getDate()}n(fs,"isSameDay");function T(r){let e=new Date(Date.UTC(r.getFullYear(),r.getMonth(),r.getDate())),t=e.getUTCFullYear(),o=e.getUTCMonth()+1,i=e.getUTCDate(),s=4,u=o<s||o===s&&i<14,l=t-(u?594:593),m=new Date(Date.UTC(u?t-1:t,3,14)),g=Math.floor((e.getTime()-m.getTime())/864e5);g<0&&(g=0);let Y=Yr(l),A=g,w=1;for(let J of Y){if(A<J)break;A-=J,w++}return w>12&&(w=12,A=Y[11]-1),{year:l,month:w,day:A+1}}n(T,"toBengali");function Yr(r){return[31,31,31,31,31,30,30,30,30,30,Gr(r+593)?30:29,30]}n(Yr,"getBengaliMonthLengths");function Gr(r){return r%4===0&&r%100!==0||r%400===0}n(Gr,"isGregorianLeapYear");function P(r){let{year:e,month:t,day:o}=r,i=e+593,s=new Date(Date.UTC(i,3,14)),a=kr(e),u=0;for(let l=0;l<t-1;l++)u+=a[l];return u+=o-1,new Date(s.getTime()+u*864e5)}n(P,"fromBengali");function kr(r){return[31,31,31,31,31,30,30,30,30,30,Vr(r+593)?30:29,30]}n(kr,"getBengaliMonthLengths");function Vr(r){return r%4===0&&r%100!==0||r%400===0}n(Vr,"isGregorianLeapYear");function wr(r,e={}){let{includeYear:t=!0,includeWeekday:o=!1}=e,i=T(r);return[...o?[["\u09B0\u09AC\u09BF\u09AC\u09BE\u09B0","\u09B8\u09CB\u09AE\u09AC\u09BE\u09B0","\u09AE\u0999\u09CD\u0997\u09B2\u09AC\u09BE\u09B0","\u09AC\u09C1\u09A7\u09AC\u09BE\u09B0","\u09AC\u09C3\u09B9\u09B8\u09CD\u09AA\u09A4\u09BF\u09AC\u09BE\u09B0","\u09B6\u09C1\u0995\u09CD\u09B0\u09AC\u09BE\u09B0","\u09B6\u09A8\u09BF\u09AC\u09BE\u09B0"][r.getDay()]]:[],f(i.day),h(i.month),...t?[f(i.year)]:[]].join(" ")}n(wr,"getBengaliDate");function W(r){return typeof r=="number"&&Number.isInteger(r)&&r>0&&isFinite(r)}n(W,"isValidBengaliYear");function L(r){return typeof r=="number"&&Number.isInteger(r)&&r>=1&&r<=12}n(L,"isValidBengaliMonth");function zr(r,e,t){if(typeof r!="number"||!Number.isInteger(r)||r<1||!L(e)||!W(t))return!1;let o=Rr(t);return r<=o[e-1]}n(zr,"isValidBengaliDay");function y(r){if(!r||typeof r!="object")return!1;let{year:e,month:t,day:o}=r;return W(e)&&L(t)&&zr(o,t,e)}n(y,"isValidBengaliDate");function Ms(r){return y(r)?r:null}n(Ms,"sanitizeBengaliDate");function Rr(r){let e=r+593;return[31,31,31,31,31,30,30,30,30,30,e%4===0&&e%100!==0||e%400===0?30:29,30]}n(Rr,"getBengaliMonthLengths");function Hr(r,e){try{return!(r instanceof Date)||isNaN(r.getTime())?e||T(new Date):T(r)}catch{return e||T(new Date)}}n(Hr,"safeToBengali");function $s(r,e){try{return y(r)?P(r):e||new Date}catch{return e||new Date}}n($s,"safeFromBengali");function _r(r,e){return!L(r)||!W(e)?0:Ur(e)[r-1]}n(_r,"getBengaliMonthDays");function vs(r,e){if(!y(r))throw new Error("Invalid Bengali date");let t=P(r),o=new Date(t.getTime()+e*864e5);return T(o)}n(vs,"addDaysToBengaliDate");function Os(r,e){if(!y(r)||!y(e))throw new Error("Invalid Bengali date");let t=P(r),o=P(e);return Math.floor((o.getTime()-t.getTime())/864e5)}n(Os,"getBengaliDateDifference");function Dr(r,e){if(!y(r)||!y(e))throw new Error("Invalid Bengali date");return r.year!==e.year?r.year<e.year?-1:1:r.month!==e.month?r.month<e.month?-1:1:r.day!==e.day?r.day<e.day?-1:1:0}n(Dr,"compareBengaliDates");function Ps(r,e,t){return!y(r)||!y(e)||!y(t)?!1:Dr(r,e)>=0&&Dr(r,t)<=0}n(Ps,"isBengaliDateInRange");function Ls(r,e){if(!L(r)||!W(e))throw new Error("Invalid month or year");return{year:e,month:r,day:1}}n(Ls,"getFirstDayOfBengaliMonth");function Ys(r,e){if(!L(r)||!W(e))throw new Error("Invalid month or year");let t=_r(r,e);return{year:e,month:r,day:t}}n(Ys,"getLastDayOfBengaliMonth");function Gs(r){if(!W(r))return!1;let e=r+593;return e%4===0&&e%100!==0||e%400===0}n(Gs,"isBengaliLeapYear");function ks(r,e){if(!y(r))throw new Error("Invalid Bengali date");let t=P(r);return wr(t,e)}n(ks,"formatBengaliDate");function Vs(){return T(new Date)}n(Vs,"getCurrentBengaliDate");function zs(r){return r.map(e=>Hr(e))}n(zs,"batchToBengali");function Ur(r){let e=r+593;return[31,31,31,31,31,30,30,30,30,30,e%4===0&&e%100!==0||e%400===0?30:29,30]}n(Ur,"getBengaliMonthLengths");function Z(r,e={}){let{includeCountryCode:t=!1,useBanglaDigits:o=!1,format:i="spaced"}=e,s=r.replace(/\D/g,""),a=s;if(s.startsWith("880")?a=s.slice(3):s.startsWith("+880")&&(a=s.slice(4)),a.length!==10&&a.length!==11)throw new Error("Invalid Bangladeshi phone number length");let u="";return a.length===11?u=`${a.slice(0,3)} ${a.slice(3,7)} ${a.slice(7)}`:u=`0${a.slice(0,2)} ${a.slice(2,6)} ${a.slice(6)}`,i==="dashed"?u=u.replace(/\s/g,"-"):i==="compact"&&(u=u.replace(/\s/g,"")),t&&(u="+880 "+u),o&&(u=f(u.replace(/\s|-/g,"")),i==="spaced"?u=`${u.slice(0,3)} ${u.slice(3,7)} ${u.slice(7)}`:i==="dashed"&&(u=`${u.slice(0,3)}-${u.slice(3,7)}-${u.slice(7)}`),t&&(u="+\u09EE\u09EE\u09E6 "+u)),u}n(Z,"formatPhone");function X(r){let e=r.replace(/\D/g,""),t=e;if(e.startsWith("880")?t=e.slice(3):e.startsWith("+880")&&(t=e.slice(4)),t.length!==10&&t.length!==11||!t.startsWith("01")&&t.length===11||t.length===10&&!t.startsWith("1"))return!1;let o=t.length===11?t.slice(0,3):"0"+t.slice(0,2);return["013","014","015","016","017","018","019"].includes(o)}n(X,"validatePhone");function ra(r){return["013","014","015","016","017","018","019"].includes(r)}n(ra,"isValidOperatorCode");function ea(r){let e=r.trim();return e.startsWith("+880")||e.startsWith("880")}n(ea,"hasCountryCode");function Br(r){if(typeof r!="string")return"";let e=r.trim(),t=e.startsWith("+");return e=e.replace(/\D/g,""),t&&(e="+"+e),e}n(Br,"sanitizePhoneNumber");function na(r){return typeof r!="string"?!1:/^[\d\s\-()+ ]+$/.test(r.trim())}n(na,"isValidPhoneFormat");function aa(r){if(!X(r))return null;let e=r.replace(/\D/g,""),t=e;e.startsWith("880")&&(t=e.slice(3));let o=t.length===11?t.slice(0,3):"0"+t.slice(0,2),s={"013":{name:"Grameenphone",nameBangla:"\u0997\u09CD\u09B0\u09BE\u09AE\u09C0\u09A3\u09AB\u09CB\u09A8"},"014":{name:"Banglalink",nameBangla:"\u09AC\u09BE\u0982\u09B2\u09BE\u09B2\u09BF\u0982\u0995"},"015":{name:"Teletalk",nameBangla:"\u099F\u09C7\u09B2\u09BF\u099F\u0995"},"016":{name:"Airtel",nameBangla:"\u098F\u09AF\u09BC\u09BE\u09B0\u099F\u09C7\u09B2"},"017":{name:"Grameenphone",nameBangla:"\u0997\u09CD\u09B0\u09BE\u09AE\u09C0\u09A3\u09AB\u09CB\u09A8"},"018":{name:"Robi",nameBangla:"\u09B0\u09AC\u09BF"},"019":{name:"Banglalink",nameBangla:"\u09AC\u09BE\u0982\u09B2\u09BE\u09B2\u09BF\u0982\u0995"}}[o];return s?{code:o,...s}:null}n(aa,"getOperator");function jr(r){if(!X(r))throw new Error("Invalid phone number");let e=r,t=r.replace(/\D/g,""),o=t,i="880";t.startsWith("880")&&(o=t.slice(3)),o.length===10&&(o="0"+o);let s=o.slice(0,3),a=o.slice(3);return{original:e,countryCode:i,operatorCode:s,number:a,fullNumber:o}}n(jr,"parsePhoneNumber");function R(r){return jr(r).fullNumber}n(R,"normalizePhoneNumber");function ua(r,e="plus"){let o=R(r).slice(1);return e==="plus"?`+880${o}`:`880${o}`}n(ua,"addCountryCode");function fa(r){return R(r)}n(fa,"removeCountryCode");function ma(r,e={},t=""){try{return Z(r,e)}catch{return t}}n(ma,"safeFormatPhone");function la(r,e){try{let t=R(r),o=R(e);return t===o}catch{return!1}}n(la,"isSameNumber");function ca(){return["013","014","015","016","017","018","019"]}n(ca,"getAllOperatorCodes");function ga(){return[{code:"013",name:"Grameenphone",nameBangla:"\u0997\u09CD\u09B0\u09BE\u09AE\u09C0\u09A3\u09AB\u09CB\u09A8"},{code:"014",name:"Banglalink",nameBangla:"\u09AC\u09BE\u0982\u09B2\u09BE\u09B2\u09BF\u0982\u0995"},{code:"015",name:"Teletalk",nameBangla:"\u099F\u09C7\u09B2\u09BF\u099F\u0995"},{code:"016",name:"Airtel",nameBangla:"\u098F\u09AF\u09BC\u09BE\u09B0\u099F\u09C7\u09B2"},{code:"017",name:"Grameenphone",nameBangla:"\u0997\u09CD\u09B0\u09BE\u09AE\u09C0\u09A3\u09AB\u09CB\u09A8"},{code:"018",name:"Robi",nameBangla:"\u09B0\u09AC\u09BF"},{code:"019",name:"Banglalink",nameBangla:"\u09AC\u09BE\u0982\u09B2\u09BE\u09B2\u09BF\u0982\u0995"}]}n(ga,"getAllOperators");function pa(r,e={}){let t=Br(r);return Z(t,e)}n(pa,"parseAndFormat");function Da(r){return/^[\u0980-\u09FF\s]+$/.test(r)}n(Da,"validateBangla");function Nr(r){return/[০-৯]/.test(r)}n(Nr,"isBanglaDigit");function Ma(r){return/[\u0980-\u09FF]/.test(r)}n(Ma,"isBanglaText");function Kr(r){let e=r.match(/[\u0980-\u09FF]/g);return e?e.length:0}n(Kr,"countBengaliCharacters");function Wa(r){let e=r.match(/[০-৯]/g);return e?e.length:0}n(Wa,"countBengaliDigits");function Ca(r){let e=/[\u0980-\u09FF]/.test(r),t=/[a-zA-Z0-9]/.test(r);return e&&t}n(Ca,"isMixedContent");function Ir(r,e=!1){return e?r.replace(/[^\u0980-\u09FF\s]/g,"").trim():r.replace(/[^\u0980-\u09FF]/g,"")}n(Ir,"extractBengaliChars");function qr(r){return r.replace(/[\u0980-\u09FF]/g,"")}n(qr,"removeBengaliChars");function Zr(r){let e=r.replace(/\s/g,"");if(e.length===0)return 0;let t=Kr(r);return Math.round(t/e.length*100)}n(Zr,"getBengaliPercentage");function Fa(r){return Zr(r)>50}n(Fa,"isPrimarilyBengali");function $a(r,e=!0,t=""){let o=Ir(r,e);return o.length>0?o:t}n($a,"sanitizeBengaliText");function va(r){return/\d|[০-৯]/.test(r)?!/\d/.test(r)&&Nr(r):!1}n(va,"hasOnlyBengaliDigits");function Oa(r){return r.replace(/\s+/g," ").trim()}n(Oa,"normalizeWhitespace");function Pa(r){return{bengali:Ir(r,!0).trim(),nonBengali:qr(r).trim()}}n(Pa,"splitBengaliContent");function La(r){return/[ক-হড়ঢ়য়ৎ]/.test(r)}n(La,"hasBengaliConsonants");function Ya(r){return/[অ-ঔা-ৌ]/.test(r)}n(Ya,"hasBengaliVowels");export{C as BANGLA_DIGITS,E as BANGLA_MONTHS,b as BANGLA_SEASONS,$ as BANGLA_WEEKDAYS,F as ENGLISH_DIGITS,ua as addCountryCode,Eo as addDays,vs as addDaysToBengaliDate,ts as addMinutesToTime,Bn as addTax,Dn as applyDiscount,yn as batchFormatCurrency,xo as batchFormatDates,Oe as batchFromBanglaNumber,yo as batchParseDates,pt as batchToBanglaMonth,ve as batchToBanglaNumber,zs as batchToBengali,Ni as batchToOrdinal,sr as calculatePercentage,wo as canParseBengaliDate,Dr as compareBengaliDates,In as compareCurrency,gr as compareDates,mt as compareMonths,Wi as compareOrdinals,es as compareTimes,ke as convertToWordsAndDigits,Kr as countBengaliCharacters,Wa as countBengaliDigits,$i as createOrdinalList,Wr as divideCurrency,Ir as extractBengaliChars,Ge as formatAndConvert,ks as formatBengaliDate,G as formatCurrency,j as formatDate,nr as formatNumber,Si as formatOrdinal,Z as formatPhone,q as formatTime,ho as formatToday,de as formatWithUnits,B as fromBanglaMonth,D as fromBanglaNumber,V as fromBanglaWeekday,P as fromBengali,En as getAbsoluteAmount,Kt as getAllBanglaWeekdays,st as getAllMonths,ca as getAllOperatorCodes,ga as getAllOperators,qo as getAllSeasons,wr as getBengaliDate,Os as getBengaliDateDifference,_r as getBengaliMonthDays,Zr as getBengaliPercentage,Vs as getCurrentBengaliDate,ni as getCurrentSeason,us as getCurrentTimeBangla,qt as getDaysBetween,Io as getDaysDifference,Ls as getFirstDayOfBengaliMonth,Ys as getLastDayOfBengaliMonth,ct as getMonthFromIndex,lt as getMonthIndex,bt as getMonthMapping,ar as getMonthName,Cr as getMonthRange,Rt as getNextBanglaWeekday,at as getNextMonth,Ci as getNextOrdinal,Jo as getNextSeason,$r as getNextWeekday,aa as getOperator,Mi as getOrdinalSequence,Ti as getOrdinalType,Ht as getPreviousBanglaWeekday,ut as getPreviousMonth,Fi as getPreviousOrdinal,Qo as getPreviousSeason,vr as getPreviousWeekday,Ai as getRanking,k as getSeason,Zo as getSeasonByIndex,z as getSeasonFromMonth,K as getSeasonIndex,oi as getSeasonInfo,pr as getSeasonMonths,Ei as getSpecialOrdinals,as as getTimePeriod,mr as getWeekdayName,La as hasBengaliConsonants,Hn as hasBengaliDigits,_n as hasBengaliMonth,Ya as hasBengaliVowels,ea as hasCountryCode,va as hasOnlyBengaliDigits,qi as hasSeconds,di as hasSpecialOrdinal,mn as hasTakaSymbol,ln as hasTakaWord,Tr as isBanglaCurrency,Nr as isBanglaDigit,bi as isBanglaOrdinal,Ma as isBanglaText,zt as isBanglaWeekend,Ps as isBengaliDateInRange,Gs as isBengaliLeapYear,fn as isCurrencyInRange,Mo as isDateInRange,No as isFuture,hi as isInSpecialOrdinalRange,Ca as isMixedContent,ft as isMonthInRange,Xo as isMonthInSeason,an as isNegativeAmount,Ve as isNumberInRange,Bo as isPast,sn as isPositiveAmount,Fa as isPrimarilyBengali,fs as isSameDay,la as isSameNumber,ti as isSameSeason,ns as isTimeInRange,Do as isToday,N as isValidBanglaMonth,Ne as isValidBanglaNumber,Ot as isValidBanglaWeekday,y as isValidBengaliDate,ur as isValidBengaliDateString,zr as isValidBengaliDay,L as isValidBengaliMonth,W as isValidBengaliYear,c as isValidCurrency,p as isValidDate,Ro as isValidDateForSeason,Pt as isValidDateForWeekday,Vo as isValidMonth,I as isValidMonthNumber,Ie as isValidNumber,Me as isValidNumberForOrdinal,Ee as isValidNumberForWords,ra as isValidOperatorCode,d as isValidOrdinal,na as isValidPhoneFormat,zo as isValidSeasonName,Ki as isValidTimeInput,hr as isValidTimeString,vt as isValidWeekdayNumber,Fr as isWeekend,un as isZeroAmount,wn as multiplyCurrency,Mn as negateAmount,R as normalizePhoneNumber,Oa as normalizeWhitespace,Ye as parseAndConvertToBangla,gt as parseAndConvertToMonth,Ii as parseAndConvertToOrdinal,pa as parseAndFormat,Sn as parseAndFormatCurrency,U as parseCurrency,cr as parseDate,jr as parsePhoneNumber,yr as parseTime,_t as parseWeekdayInput,Hi as relativeDay,dr as relativeTime,qr as removeBengaliChars,fa as removeCountryCode,M as roundCurrency,hn as safeFormatCurrency,Or as safeFormatDate,ma as safeFormatPhone,is as safeFormatTime,it as safeFromBanglaMonth,Le as safeFromBanglaNumber,jt as safeFromBanglaWeekday,$s as safeFromBengali,ri as safeGetSeason,ei as safeGetSeasonFromMonth,xn as safeParseCurrency,Pr as safeParseDate,ss as safeRelativeTime,ot as safeToBanglaMonth,Pe as safeToBanglaNumber,Ut as safeToBanglaWeekday,Hr as safeToBengali,Bi as safeToOrdinal,Zn as sanitizeBanglaMonth,Ms as sanitizeBengaliDate,$a as sanitizeBengaliText,or as sanitizeCurrencyInput,Un as sanitizeDate,fr as sanitizeMonthNumber,tr as sanitizeNumberInput,br as sanitizeOrdinalInput,Br as sanitizePhoneNumber,xr as sanitizeTimeInput,lr as sanitizeWeekdayInput,Lr as secondsToTime,Nn as splitAmount,Pa as splitBengaliContent,ir as subtractCurrency,Ar as sumCurrency,os as timeDifferenceMinutes,S as timeToSeconds,h as toBanglaMonth,f as toBanglaNumber,O as toBanglaWeekday,T as toBengali,x as toOrdinal,_ as toWords,ze as truncateDecimals,Da as validateBangla,X as validatePhone};
2
+ //# sourceMappingURL=index.js.map