date-and-time 4.2.0 → 4.3.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.cjs CHANGED
@@ -1,2 +1,2 @@
1
1
  "use strict";
2
- /** @preserve Copyright (c) KNOWLEDGECODE - MIT License */const e=/\\\[/g,t=/\\\]/g,r=/\uE000/g,n=/\uE001/g,s=/\[(?:[^[\]]|\[[^[\]]*])*]|([A-Za-z])\1*|\.{3}|./g,o=o=>{const a=o.replace(e,"").replace(t,"").match(s)??[];return[o,...a.map(e=>e.replace(r,"[").replace(n,"]"))]},a=new Map,i=e=>a.get(e)??(()=>{const t=new Intl.DateTimeFormat("en-US",{hour12:!1,weekday:"short",year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",fractionalSecondDigits:3,timeZone:e});return e&&a.set(e,t),t})(),c=e=>!!e&&"object"==typeof e&&"zone_name"in e&&"gmt_offset"in e,u=e=>"string"==typeof e&&"UTC"===e.toUpperCase(),l=(e,t)=>new Date(e-1e3*((e,t)=>{const r=i("UTC"),n=i(t.zone_name),s=t.gmt_offset;for(let t=0;t<2;t++){const o=r.format(e-86400*t*1e3);for(let r=0,a=s.length;r<a;r++)if(n.format(e-1e3*(s[r]+86400*t))===o)return s[r]}return NaN})(e,t)),d=(e,t)=>{if(u(t))return{weekday:e.getUTCDay(),year:e.getUTCFullYear(),month:e.getUTCMonth()+1,day:e.getUTCDate(),hour:e.getUTCHours(),minute:e.getUTCMinutes(),second:e.getUTCSeconds(),fractionalSecond:e.getUTCMilliseconds(),timezoneOffset:0};const r=i(t).formatToParts(e).reduce((e,{type:t,value:r})=>{switch(t){case"weekday":e[t]="SunMonTueWedThuFriSat".indexOf(r)/3;break;case"hour":e[t]=+r%24;break;case"year":case"month":case"day":case"minute":case"second":case"fractionalSecond":e[t]=+r}return e},{weekday:4,year:1970,month:1,day:1,hour:0,minute:0,second:0,fractionalSecond:0,timezoneOffset:0});return r.timezoneOffset=(e.getTime()-Date.UTC(r.year,r.month-(r.year<100?22801:1),r.day,r.hour,r.minute,r.second,r.fractionalSecond))/6e4,r},h=e=>Date.UTC(e.year,e.month-(e.year<100?22801:1),e.day,e.hour,e.minute,e.second,e.fractionalSecond+6e4*e.timezoneOffset);class m{constructor(e,t){this.parts=d(e,t),this.time=e.getTime()}getFullYear(){return this.parts.year}getMonth(){return this.parts.month-1}getDate(){return this.parts.day}getHours(){return this.parts.hour}getMinutes(){return this.parts.minute}getSeconds(){return this.parts.second}getMilliseconds(){return this.parts.fractionalSecond}getDay(){return this.parts.weekday}getTime(){return this.time}getTimezoneOffset(){return this.parts.timezoneOffset}}class g{}const M=(e,t)=>e.getFullYear()+("buddhist"===t?543:0);const f=new class extends g{YYYY(e,t){return`000${String(M(e,t.calendar))}`.slice(-4)}YY(e,t){return`0${String(M(e,t.calendar))}`.slice(-2)}Y(e,t){return String(M(e,t.calendar))}MMMM(e,t,r){return t.locale.getMonthList({style:"long",compiledObj:r})[e.getMonth()]??""}MMM(e,t,r){return t.locale.getMonthList({style:"short",compiledObj:r})[e.getMonth()]??""}MM(e){return`0${String(e.getMonth()+1)}`.slice(-2)}M(e){return String(e.getMonth()+1)}DD(e){return`0${String(e.getDate())}`.slice(-2)}D(e){return String(e.getDate())}HH(e,t){return`0${String(e.getHours()||("h24"===t.hour24?24:0))}`.slice(-2)}H(e,t){return String(e.getHours()||("h24"===t.hour24?24:0))}AA(e,t,r){return t.locale.getMeridiemList({style:"long",compiledObj:r,case:"uppercase"})[+(e.getHours()>11)]??""}A(e,t,r){return t.locale.getMeridiemList({style:"short",compiledObj:r,case:"uppercase"})[+(e.getHours()>11)]??""}aa(e,t,r){return t.locale.getMeridiemList({style:"long",compiledObj:r,case:"lowercase"})[+(e.getHours()>11)]??""}a(e,t,r){return t.locale.getMeridiemList({style:"short",compiledObj:r,case:"lowercase"})[+(e.getHours()>11)]??""}hh(e,t){return`0${String(e.getHours()%12||("h12"===t.hour12?12:0))}`.slice(-2)}h(e,t){return String(e.getHours()%12||("h12"===t.hour12?12:0))}mm(e){return`0${String(e.getMinutes())}`.slice(-2)}m(e){return String(e.getMinutes())}ss(e){return`0${String(e.getSeconds())}`.slice(-2)}s(e){return String(e.getSeconds())}SSS(e){return`00${String(e.getMilliseconds())}`.slice(-3)}SS(e){return`00${String(e.getMilliseconds())}`.slice(-3,-1)}S(e){return`00${String(e.getMilliseconds())}`.slice(-3,-2)}dddd(e,t,r){return t.locale.getDayOfWeekList({style:"long",compiledObj:r})[e.getDay()]??""}ddd(e,t,r){return t.locale.getDayOfWeekList({style:"short",compiledObj:r})[e.getDay()]??""}dd(e,t,r){return t.locale.getDayOfWeekList({style:"narrow",compiledObj:r})[e.getDay()]??""}Z(e){const t=e.getTimezoneOffset(),r=Math.abs(t);return`${t>0?"-":"+"}${`0${String(r/60|0)}`.slice(-2)}${`0${String(r%60)}`.slice(-2)}`}ZZ(e){const t=e.getTimezoneOffset(),r=Math.abs(t);return`${t>0?"-":"+"}${`0${String(r/60|0)}`.slice(-2)}:${`0${String(r%60)}`.slice(-2)}`}},p={MMMM:["January","February","March","April","May","June","July","August","September","October","November","December"],MMM:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dddd:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ddd:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dd:["Su","Mo","Tu","We","Th","Fr","Sa"],A:["AM","PM"],AA:["A.M.","P.M."],a:["am","pm"],aa:["a.m.","p.m."]};var y=new class{getLocale(){return"en"}getMonthList(e){return"long"===e.style?p.MMMM:p.MMM}getDayOfWeekList(e){return"long"===e.style?p.dddd:"short"===e.style?p.ddd:p.dd}getMeridiemList(e){return"long"===e.style?"lowercase"===e.case?p.aa:p.AA:"lowercase"===e.case?p.a:p.A}},S={encode:e=>e,decode:e=>e};const D=/^\[(.*)\]$/;function L(e,t,r){const n=("string"==typeof t?o(t):t).slice(1),s=c(r?.timeZone)?r.timeZone.zone_name:r?.timeZone,a=s?new m(e,s):e,i={hour12:r?.hour12??"h12",hour24:r?.hour24??"h23",numeral:r?.numeral??S,calendar:r?.calendar??"gregory",timeZone:r?.timeZone,locale:r?.locale??y},u=[...r?.plugins??[],f],l=i.numeral.encode;return n.reduce((e,t)=>e+((e,t)=>{for(const r of u)if(r[e])return l(r[e](a,i,t));return D.test(e)?e.replace(D,"$1"):e})(t,n),"")}class T{}const C=(e,t,r)=>{const n=e.exec(t)?.[0]??"";return{value:+n,length:n.length,token:r}},w=(e,t,r)=>e.reduce((e,n,s)=>n.length>e.length&&!t.indexOf(n)?{value:s,length:n.length,token:r}:e,{value:-1,length:0,token:r});const b=new class extends T{YYYY(e){return C(/^\d{4}/,e,"Y")}Y(e){return C(/^\d{1,4}/,e,"Y")}MMMM(e,t,r){const n=t.locale.getMonthList({style:"long",compiledObj:r}),s=t.locale.getLocale(),o=t.ignoreCase?w(n.map(e=>e.toLocaleLowerCase(s)),e.toLocaleLowerCase(s),"M"):w(n,e,"M");return o.value++,o}MMM(e,t,r){const n=t.locale.getMonthList({style:"short",compiledObj:r}),s=t.locale.getLocale(),o=t.ignoreCase?w(n.map(e=>e.toLocaleLowerCase(s)),e.toLocaleLowerCase(s),"M"):w(n,e,"M");return o.value++,o}MM(e){return C(/^\d\d/,e,"M")}M(e){return C(/^\d\d?/,e,"M")}DD(e){return C(/^\d\d/,e,"D")}D(e){return C(/^\d\d?/,e,"D")}HH(e){return C(/^\d\d/,e,"H")}H(e){return C(/^\d\d?/,e,"H")}AA(e,t,r){const n=t.locale.getMeridiemList({style:"long",compiledObj:r,case:"uppercase"}),s=t.locale.getLocale();return t.ignoreCase?w(n.map(e=>e.toLocaleLowerCase(s)),e.toLocaleLowerCase(s),"A"):w(n,e,"A")}A(e,t,r){const n=t.locale.getMeridiemList({style:"short",compiledObj:r,case:"uppercase"}),s=t.locale.getLocale();return t.ignoreCase?w(n.map(e=>e.toLocaleLowerCase(s)),e.toLocaleLowerCase(s),"A"):w(n,e,"A")}aa(e,t,r){const n=t.locale.getMeridiemList({style:"long",compiledObj:r,case:"lowercase"}),s=t.locale.getLocale();return t.ignoreCase?w(n.map(e=>e.toLocaleLowerCase(s)),e.toLocaleLowerCase(s),"A"):w(n,e,"A")}a(e,t,r){const n=t.locale.getMeridiemList({style:"short",compiledObj:r,case:"lowercase"}),s=t.locale.getLocale();return t.ignoreCase?w(n.map(e=>e.toLocaleLowerCase(s)),e.toLocaleLowerCase(s),"A"):w(n,e,"A")}hh(e){return C(/^\d\d/,e,"h")}h(e){return C(/^\d\d?/,e,"h")}mm(e){return C(/^\d\d/,e,"m")}m(e){return C(/^\d\d?/,e,"m")}ss(e){return C(/^\d\d/,e,"s")}s(e){return C(/^\d\d?/,e,"s")}SSS(e){return C(/^\d{1,3}/,e,"S")}SS(e){const t=C(/^\d\d?/,e,"S");return t.value*=10,t}S(e){const t=C(/^\d/,e,"S");return t.value*=100,t}Z(e){const t=C(/^[+-][01]\d[0-5]\d/,e,"Z");return t.value=-60*(t.value/100|0)-t.value%100,t}ZZ(e){const t=/^([+-][01]\d):([0-5]\d)/.exec(e)??["","",""],r=+(t[1]+t[2]);return{value:-60*(r/100|0)-r%100,length:t[0].length,token:"Z"}}},O=/^\[(.*)\]$/;function x(e,t,r){const n=("string"==typeof t?o(t):t).slice(1),s={hour12:r?.hour12??"h12",hour24:r?.hour24??"h23",numeral:r?.numeral??S,calendar:r?.calendar??"gregory",ignoreCase:r?.ignoreCase??!1,timeZone:c(r?.timeZone)||u(r?.timeZone)?r.timeZone:void 0,locale:r?.locale??y},a={_index:0,_length:0,_match:0},i=[...r?.plugins??[],b],l=(e,t)=>{for(const r of i)if(r[e])return r[e](t,s,n)};e=s.numeral.decode(e);for(const t of n){const r=e.substring(a._index),n=l(t,r);if(n){if(!n.length)break;n.token&&(a[n.token]=n.value+0),a._index+=n.length,a._match++}else if(t===r[0]||" "===t)a._index++;else{if(!O.test(t)||r.indexOf(t.replace(O,"$1"))){if("..."===t){a._index=e.length;break}break}a._index+=t.length-2}}return a._length=e.length,a}function A(e,t){const r=void 0===e.Y?1970:e.Y-("buddhist"===t?.calendar?543:0),[n,s]="h11"===t?.hour12?[0,11]:[1,12],[o,a]="h24"===t?.hour24?[1,24]:[0,23],i=(e,t,r)=>void 0===e||e>=t&&e<=r;return e._index>0&&e._length>0&&e._index===e._length&&e._match>0&&i(r,1,9999)&&i(e.M,1,12)&&i(e.D,1,(c=r,u=e.M??1,new Date(c,u-(c<100?22800:0),0).getDate()))&&i(e.H,o,a)&&i(e.A,0,1)&&i(e.h,n,s)&&i(e.m,0,59)&&i(e.s,0,59)&&i(e.S,0,999)&&i(e.Z,-840,720);var c,u}function Y(e,t,r){const n=x(e,t,r);return A(n,r)?(n.Y=n.Y?n.Y-("buddhist"===r?.calendar?543:0):1970,n.M=(n.M??1)-(n.Y<100?22801:1),n.D??=1,n.H=(n.H??0)%24||12*(n.A??0)+(n.h??0)%12,n.m??=0,n.s??=0,n.S??=0,c(r?.timeZone)?l(Date.UTC(n.Y,n.M,n.D,n.H,n.m,n.s,n.S),r.timeZone):u(r?.timeZone)||"Z"in n?new Date(Date.UTC(n.Y,n.M,n.D,n.H,n.m+(n.Z??0),n.s,n.S)):new Date(n.Y,n.M,n.D,n.H,n.m,n.s,n.S)):new Date(NaN)}function $(e,t,r){if(c(r)){const n=d(e,r.zone_name);n.month+=t,n.timezoneOffset=0;const s=new Date(h(n));return s.getUTCDate()<n.day&&s.setUTCDate(0),l(h({...n,year:s.getUTCFullYear(),month:s.getUTCMonth()+1,day:s.getUTCDate()}),r)}const n=new Date(e.getTime());return u(r)?(n.setUTCMonth(n.getUTCMonth()+t),n.getUTCDate()<e.getUTCDate()?(n.setUTCDate(0),n):n):(n.setMonth(n.getMonth()+t),n.getDate()<e.getDate()?(n.setDate(0),n):n)}const v=/^\[(.*)\]$/,U=(e,t)=>(e.F=Math.trunc(1e6*t),e),H=(e,t)=>(e.f=Math.trunc(1e3*t),U(e,1e3*Math.abs(t)%1/1e3)),Z=(e,t)=>(e.S=Math.trunc(t),H(e,Math.abs(t)%1)),_=(e,t)=>(e.s=Math.trunc(t/1e3),Z(e,Math.abs(t)%1e3)),k=(e,t)=>(e.m=Math.trunc(t/6e4),_(e,Math.abs(t)%6e4)),j=(e,t)=>(e.H=Math.trunc(t/36e5),k(e,Math.abs(t)%36e5)),z=(e,t,r=S)=>{const n=o(t).slice(1);return n.reduce((t,n)=>t+(t=>{if(t[0]in e){const n=e[t[0]]??0;return r.encode(`${(e=>e<0||0===e&&1/e==-1/0?"-":"")(n)}${String(Math.abs(n)).padStart(t.length,"0")}`)}return v.test(t)?t.replace(v,"$1"):t})(n),"")};class F{constructor(e){this.time=e}toNanoseconds(){return{value:1e6*this.time,format:(e,t)=>z(U({},this.time),e,t),toParts:()=>({nanoseconds:Math.trunc(1e6*this.time)+0})}}toMicroseconds(){return{value:1e3*this.time,format:(e,t)=>z(H({},this.time),e,t),toParts:()=>({microseconds:Math.trunc(1e3*this.time)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}toMilliseconds(){return{value:this.time,format:(e,t)=>z(Z({},this.time),e,t),toParts:()=>({milliseconds:Math.trunc(this.time)+0,microseconds:Math.trunc(1e3*this.time%1e3)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}toSeconds(){return{value:this.time/1e3,format:(e,t)=>z(_({},this.time),e,t),toParts:()=>({seconds:Math.trunc(this.time/1e3)+0,milliseconds:Math.trunc(this.time%1e3)+0,microseconds:Math.trunc(1e3*this.time%1e3)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}toMinutes(){return{value:this.time/6e4,format:(e,t)=>z(k({},this.time),e,t),toParts:()=>({minutes:Math.trunc(this.time/6e4)+0,seconds:Math.trunc(this.time%864e5%36e5%6e4/1e3)+0,milliseconds:Math.trunc(this.time%1e3)+0,microseconds:Math.trunc(1e3*this.time%1e3)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}toHours(){return{value:this.time/36e5,format:(e,t)=>z(j({},this.time),e,t),toParts:()=>({hours:Math.trunc(this.time/36e5)+0,minutes:Math.trunc(this.time%864e5%36e5/6e4)+0,seconds:Math.trunc(this.time%864e5%36e5%6e4/1e3)+0,milliseconds:Math.trunc(this.time%1e3)+0,microseconds:Math.trunc(1e3*this.time%1e3)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}toDays(){return{value:this.time/864e5,format:(e,t)=>{return z((r={},n=this.time,r.D=Math.trunc(n/864e5),j(r,Math.abs(n)%864e5)),e,t);var r,n},toParts:()=>({days:Math.trunc(this.time/864e5)+0,hours:Math.trunc(this.time%864e5/36e5)+0,minutes:Math.trunc(this.time%864e5%36e5/6e4)+0,seconds:Math.trunc(this.time%864e5%36e5%6e4/1e3)+0,milliseconds:Math.trunc(this.time%1e3)+0,microseconds:Math.trunc(1e3*this.time%1e3)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}}exports.Duration=F,exports.addDays=function(e,t,r){if(c(r)){const n=d(e,r.zone_name);return n.day+=t,n.timezoneOffset=0,l(h(n),r)}const n=new Date(e.getTime());return u(r)?(n.setUTCDate(n.getUTCDate()+t),n):(n.setDate(n.getDate()+t),n)},exports.addHours=function(e,t){return new Date(e.getTime()+36e5*t)},exports.addMilliseconds=function(e,t){return new Date(e.getTime()+t)},exports.addMinutes=function(e,t){return new Date(e.getTime()+6e4*t)},exports.addMonths=$,exports.addSeconds=function(e,t){return new Date(e.getTime()+1e3*t)},exports.addYears=function(e,t,r){return $(e,12*t,r)},exports.compile=o,exports.format=L,exports.isLeapYear=e=>!((e%4||!(e%100))&&e%400),exports.isSameDay=(e,t)=>e.toDateString()===t.toDateString(),exports.isValid=function(e,t,r){return A(x(e,t,r),r)},exports.parse=Y,exports.preparse=x,exports.subtract=(e,t)=>new F(t.getTime()-e.getTime()),exports.transform=function(e,t,r,n,s){return L(Y(e,t,n),r,s)};
2
+ /** @preserve Copyright (c) KNOWLEDGECODE - MIT License */const e=/\\\[/g,t=/\\\]/g,n=/\uE000/g,r=/\uE001/g,s=/\[(?:[^[\]]|\[[^[\]]*])*]|([A-Za-z])\1*|\.{3}|./g,o=o=>{const a=o.replace(e,"").replace(t,"").match(s)??[];return[o,...a.map(e=>e.replace(n,"[").replace(r,"]"))]},a=new Map,i=e=>a.get(e)??(()=>{const t=new Intl.DateTimeFormat("en-US",{hour12:!1,weekday:"short",year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",fractionalSecondDigits:3,timeZone:e});return e&&a.set(e,t),t})(),c=e=>Date.UTC(e.year,e.month-(e.year<100?22801:1),e.day,e.hour,e.minute,e.second,e.fractionalSecond+6e4*e.timezoneOffset),u=(e,t)=>e.formatToParts(t).reduce((e,{type:t,value:n})=>{switch(t){case"weekday":e[t]="SunMonTueWedThuFriSat".indexOf(n)/3;break;case"hour":e[t]=+n%24;break;case"year":case"month":case"day":case"minute":case"second":case"fractionalSecond":e[t]=+n}return e},{weekday:4,year:1970,month:1,day:1,hour:0,minute:0,second:0,fractionalSecond:0,timezoneOffset:0}),l=e=>"string"==typeof e&&"UTC"===e.toUpperCase(),d=(e,t)=>{if(l(t))return{weekday:e.getUTCDay(),year:e.getUTCFullYear(),month:e.getUTCMonth()+1,day:e.getUTCDate(),hour:e.getUTCHours(),minute:e.getUTCMinutes(),second:e.getUTCSeconds(),fractionalSecond:e.getUTCMilliseconds(),timezoneOffset:0};const n=e.getTime(),r=u(i(t),n);return r.timezoneOffset=(n-c(r))/6e4,r};class h{constructor(e,t){this.parts=d(e,t),this.time=e.getTime()}getFullYear(){return this.parts.year}getMonth(){return this.parts.month-1}getDate(){return this.parts.day}getHours(){return this.parts.hour}getMinutes(){return this.parts.minute}getSeconds(){return this.parts.second}getMilliseconds(){return this.parts.fractionalSecond}getDay(){return this.parts.weekday}getTime(){return this.time}getTimezoneOffset(){return this.parts.timezoneOffset}}class m{}const g=(e,t)=>e.getFullYear()+("buddhist"===t?543:0);const M=new class extends m{YYYY(e,t){return`000${String(g(e,t.calendar))}`.slice(-4)}YY(e,t){return`0${String(g(e,t.calendar))}`.slice(-2)}Y(e,t){return String(g(e,t.calendar))}MMMM(e,t,n){return t.locale.getMonthList({style:"long",compiledObj:n})[e.getMonth()]??""}MMM(e,t,n){return t.locale.getMonthList({style:"short",compiledObj:n})[e.getMonth()]??""}MM(e){return`0${String(e.getMonth()+1)}`.slice(-2)}M(e){return String(e.getMonth()+1)}DD(e){return`0${String(e.getDate())}`.slice(-2)}D(e){return String(e.getDate())}HH(e,t){return`0${String(e.getHours()||("h24"===t.hour24?24:0))}`.slice(-2)}H(e,t){return String(e.getHours()||("h24"===t.hour24?24:0))}AA(e,t,n){return t.locale.getMeridiemList({style:"long",compiledObj:n,case:"uppercase"})[+(e.getHours()>11)]??""}A(e,t,n){return t.locale.getMeridiemList({style:"short",compiledObj:n,case:"uppercase"})[+(e.getHours()>11)]??""}aa(e,t,n){return t.locale.getMeridiemList({style:"long",compiledObj:n,case:"lowercase"})[+(e.getHours()>11)]??""}a(e,t,n){return t.locale.getMeridiemList({style:"short",compiledObj:n,case:"lowercase"})[+(e.getHours()>11)]??""}hh(e,t){return`0${String(e.getHours()%12||("h12"===t.hour12?12:0))}`.slice(-2)}h(e,t){return String(e.getHours()%12||("h12"===t.hour12?12:0))}mm(e){return`0${String(e.getMinutes())}`.slice(-2)}m(e){return String(e.getMinutes())}ss(e){return`0${String(e.getSeconds())}`.slice(-2)}s(e){return String(e.getSeconds())}SSS(e){return`00${String(e.getMilliseconds())}`.slice(-3)}SS(e){return`00${String(e.getMilliseconds())}`.slice(-3,-1)}S(e){return`00${String(e.getMilliseconds())}`.slice(-3,-2)}dddd(e,t,n){return t.locale.getDayOfWeekList({style:"long",compiledObj:n})[e.getDay()]??""}ddd(e,t,n){return t.locale.getDayOfWeekList({style:"short",compiledObj:n})[e.getDay()]??""}dd(e,t,n){return t.locale.getDayOfWeekList({style:"narrow",compiledObj:n})[e.getDay()]??""}Z(e){const t=e.getTimezoneOffset(),n=Math.abs(t);return`${t>0?"-":"+"}${`0${String(n/60|0)}`.slice(-2)}${`0${String(n%60)}`.slice(-2)}`}ZZ(e){const t=e.getTimezoneOffset(),n=Math.abs(t);return`${t>0?"-":"+"}${`0${String(n/60|0)}`.slice(-2)}:${`0${String(n%60)}`.slice(-2)}`}},f={MMMM:["January","February","March","April","May","June","July","August","September","October","November","December"],MMM:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dddd:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ddd:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dd:["Su","Mo","Tu","We","Th","Fr","Sa"],A:["AM","PM"],AA:["A.M.","P.M."],a:["am","pm"],aa:["a.m.","p.m."]};var p=new class{getLocale(){return"en"}getMonthList(e){return"long"===e.style?f.MMMM:f.MMM}getDayOfWeekList(e){return"long"===e.style?f.dddd:"short"===e.style?f.ddd:f.dd}getMeridiemList(e){return"long"===e.style?"lowercase"===e.case?f.aa:f.AA:"lowercase"===e.case?f.a:f.A}},y={encode:e=>e,decode:e=>e};const S=e=>!!e&&"object"==typeof e&&"zone_name"in e&&"gmt_offset"in e,D=(e,t)=>{const n=S(t)?t.zone_name:t;return new Date(e-((e,t)=>{const n=(()=>{try{return i(t)}catch{return}})(),r=new Set;if(n)for(let t=0;t<2;t++){const s=e-86400*t*1e3;let o=54822e3;do{const e=c(u(n,s-o))-s;if(0===e)return o;r.add(o),o+=e}while(!r.has(o));r.clear()}return NaN})(e,n))},T=/^\[(.*)\]$/;function b(e,t,n){const r=("string"==typeof t?o(t):t).slice(1),s=S(n?.timeZone)?n.timeZone.zone_name:n?.timeZone,a=s?new h(e,s):e,i={hour12:n?.hour12??"h12",hour24:n?.hour24??"h23",numeral:n?.numeral??y,calendar:n?.calendar??"gregory",timeZone:n?.timeZone,locale:n?.locale??p},c=[...n?.plugins??[],M],u=i.numeral.encode;return r.reduce((e,t)=>e+((e,t)=>{for(const n of c)if(n[e])return u(n[e](a,i,t));return T.test(e)?e.replace(T,"$1"):e})(t,r),"")}class w{}const O=(e,t,n)=>{const r=e.exec(t)?.[0]??"";return{value:+r,length:r.length,token:n}},x=(e,t,n,r)=>{const[s,o]=n.ignoreCase?(()=>{const r=n.locale.getLocale();return[e.map(e=>e.toLocaleLowerCase(r)),t.toLocaleLowerCase(r)]})():[e,t];return s.reduce((e,t,n)=>t.length>e.length&&!o.indexOf(t)?{value:n,length:t.length,token:r}:e,{value:-1,length:0,token:r})},C=new Set(["Y","M","D","H","A","h","m","s","S","Z"]),v=e=>C.has(e);const Y=new class extends w{YYYY(e){return O(/^\d{4}/,e,"Y")}Y(e){return O(/^\d{1,4}/,e,"Y")}MMMM(e,t,n){const r=t.locale.getMonthList({style:"long",compiledObj:n}),s=x(r,e,t,"M");return s.value++,s}MMM(e,t,n){const r=t.locale.getMonthList({style:"short",compiledObj:n}),s=x(r,e,t,"M");return s.value++,s}MM(e){return O(/^\d\d/,e,"M")}M(e){return O(/^\d\d?/,e,"M")}DD(e){return O(/^\d\d/,e,"D")}D(e){return O(/^\d\d?/,e,"D")}HH(e){return O(/^\d\d/,e,"H")}H(e){return O(/^\d\d?/,e,"H")}AA(e,t,n){const r=t.locale.getMeridiemList({style:"long",compiledObj:n,case:"uppercase"});return x(r,e,t,"A")}A(e,t,n){const r=t.locale.getMeridiemList({style:"short",compiledObj:n,case:"uppercase"});return x(r,e,t,"A")}aa(e,t,n){const r=t.locale.getMeridiemList({style:"long",compiledObj:n,case:"lowercase"});return x(r,e,t,"A")}a(e,t,n){const r=t.locale.getMeridiemList({style:"short",compiledObj:n,case:"lowercase"});return x(r,e,t,"A")}hh(e){return O(/^\d\d/,e,"h")}h(e){return O(/^\d\d?/,e,"h")}mm(e){return O(/^\d\d/,e,"m")}m(e){return O(/^\d\d?/,e,"m")}ss(e){return O(/^\d\d/,e,"s")}s(e){return O(/^\d\d?/,e,"s")}SSS(e){return O(/^\d{1,3}/,e,"S")}SS(e){const t=O(/^\d\d?/,e,"S");return t.value*=10,t}S(e){const t=O(/^\d/,e,"S");return t.value*=100,t}Z(e){const t=O(/^[+-][01]\d[0-5]\d/,e,"Z");return t.value=-60*(t.value/100|0)-t.value%100,t}ZZ(e){const t=/^([+-][01]\d):([0-5]\d)/.exec(e)??["","",""],n=+(t[1]+t[2]);return{value:-60*(n/100|0)-n%100,length:t[0].length,token:"Z"}}},$=/^\[(.*)\]$/;function H(e,t,n){const r=("string"==typeof t?o(t):t).slice(1),s={hour12:n?.hour12??"h12",hour24:n?.hour24??"h23",numeral:n?.numeral??y,calendar:n?.calendar??"gregory",ignoreCase:n?.ignoreCase??!1,timeZone:(S(n?.timeZone)||"string"==typeof n?.timeZone)&&n.timeZone||void 0,locale:n?.locale??p},a={_index:0,_length:0,_match:0},i=[...n?.plugins??[],Y],c=(e,t)=>{for(const n of i)if(n[e])return n[e](t,s,r)};e=s.numeral.decode(e);for(const t of r){const n=e.substring(a._index),r=c(t,n);if(r){if(!r.length)break;r.token&&v(r.token)&&(a[r.token]=r.value+0),a._index+=r.length,a._match++}else if(t===n[0]||" "===t)a._index++;else{if(!$.test(t)||n.indexOf(t.replace($,"$1"))){if("..."===t){a._index=e.length;break}break}a._index+=t.length-2}}return a._length=e.length,a}function U(e,t){const n=void 0===e.Y?1970:e.Y-("buddhist"===t?.calendar?543:0),[r,s]="h11"===t?.hour12?[0,11]:[1,12],[o,a]="h24"===t?.hour24?[1,24]:[0,23],i=(e,t,n)=>void 0===e||e>=t&&e<=n;return e._index>0&&e._length>0&&e._index===e._length&&e._match>0&&i(n,1,9999)&&i(e.M,1,12)&&i(e.D,1,(c=n,u=e.M??1,new Date(Date.UTC(c,u-(c<100?22800:0),0)).getUTCDate()))&&i(e.H,o,a)&&i(e.A,0,1)&&i(e.h,r,s)&&i(e.m,0,59)&&i(e.s,0,59)&&i(e.S,0,999)&&i(e.Z,-913,956);var c,u}function A(e,t,n){const r=H(e,t,n);return U(r,n)?(r.Y=r.Y?r.Y-("buddhist"===n?.calendar?543:0):1970,r.M=(r.M??1)-(r.Y<100?22801:1),r.D??=1,r.H=(r.H??0)%24||12*(r.A??0)+(r.h??0)%12,r.m??=0,r.s??=0,r.S??=0,l(n?.timeZone)||"Z"in r?new Date(Date.UTC(r.Y,r.M,r.D,r.H,r.m+(r.Z??0),r.s,r.S)):n?.timeZone?D(Date.UTC(r.Y,r.M,r.D,r.H,r.m,r.s,r.S),n.timeZone):new Date(r.Y,r.M,r.D,r.H,r.m,r.s,r.S)):new Date(NaN)}function Z(e,t,n){const r=S(n)?n.zone_name:n??void 0;if(!r||l(r)){const r=new Date(e.getTime());return l(n)?(r.setUTCMonth(r.getUTCMonth()+t),r.getUTCDate()<e.getUTCDate()?(r.setUTCDate(0),r):r):(r.setMonth(r.getMonth()+t),r.getDate()<e.getDate()?(r.setDate(0),r):r)}const s=d(e,r);s.month+=t,s.timezoneOffset=0;const o=new Date(c(s));return o.getUTCDate()<s.day&&o.setUTCDate(0),D(c({...s,year:o.getUTCFullYear(),month:o.getUTCMonth()+1,day:o.getUTCDate()}),r)}const L=/^\[(.*)\]$/,k=(e,t)=>(e.F=Math.trunc(1e6*t),e),_=(e,t)=>(e.f=Math.trunc(1e3*t),k(e,1e3*Math.abs(t)%1/1e3)),j=(e,t)=>(e.S=Math.trunc(t),_(e,Math.abs(t)%1)),z=(e,t)=>(e.s=Math.trunc(t/1e3),j(e,Math.abs(t)%1e3)),F=(e,t)=>(e.m=Math.trunc(t/6e4),z(e,Math.abs(t)%6e4)),P=(e,t)=>(e.H=Math.trunc(t/36e5),F(e,Math.abs(t)%36e5)),W=(e,t,n=y)=>{const r=o(t).slice(1);return r.reduce((t,r)=>t+(t=>{if(t[0]in e){const r=e[t[0]]??0;return n.encode(`${(e=>e<0||0===e&&1/e==-1/0?"-":"")(r)}${String(Math.abs(r)).padStart(t.length,"0")}`)}return L.test(t)?t.replace(L,"$1"):t})(r),"")};class N{constructor(e){this.time=e}toNanoseconds(){return{value:1e6*this.time,format:(e,t)=>W(k({},this.time),e,t),toParts:()=>({nanoseconds:Math.trunc(1e6*this.time)+0})}}toMicroseconds(){return{value:1e3*this.time,format:(e,t)=>W(_({},this.time),e,t),toParts:()=>({microseconds:Math.trunc(1e3*this.time)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}toMilliseconds(){return{value:this.time,format:(e,t)=>W(j({},this.time),e,t),toParts:()=>({milliseconds:Math.trunc(this.time)+0,microseconds:Math.trunc(1e3*this.time%1e3)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}toSeconds(){return{value:this.time/1e3,format:(e,t)=>W(z({},this.time),e,t),toParts:()=>({seconds:Math.trunc(this.time/1e3)+0,milliseconds:Math.trunc(this.time%1e3)+0,microseconds:Math.trunc(1e3*this.time%1e3)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}toMinutes(){return{value:this.time/6e4,format:(e,t)=>W(F({},this.time),e,t),toParts:()=>({minutes:Math.trunc(this.time/6e4)+0,seconds:Math.trunc(this.time%864e5%36e5%6e4/1e3)+0,milliseconds:Math.trunc(this.time%1e3)+0,microseconds:Math.trunc(1e3*this.time%1e3)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}toHours(){return{value:this.time/36e5,format:(e,t)=>W(P({},this.time),e,t),toParts:()=>({hours:Math.trunc(this.time/36e5)+0,minutes:Math.trunc(this.time%864e5%36e5/6e4)+0,seconds:Math.trunc(this.time%864e5%36e5%6e4/1e3)+0,milliseconds:Math.trunc(this.time%1e3)+0,microseconds:Math.trunc(1e3*this.time%1e3)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}toDays(){return{value:this.time/864e5,format:(e,t)=>{return W((n={},r=this.time,n.D=Math.trunc(r/864e5),P(n,Math.abs(r)%864e5)),e,t);var n,r},toParts:()=>({days:Math.trunc(this.time/864e5)+0,hours:Math.trunc(this.time%864e5/36e5)+0,minutes:Math.trunc(this.time%864e5%36e5/6e4)+0,seconds:Math.trunc(this.time%864e5%36e5%6e4/1e3)+0,milliseconds:Math.trunc(this.time%1e3)+0,microseconds:Math.trunc(1e3*this.time%1e3)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}}exports.Duration=N,exports.addDays=function(e,t,n){const r=S(n)?n.zone_name:n??void 0;if(!r||l(r)){const r=new Date(e.getTime());return l(n)?(r.setUTCDate(r.getUTCDate()+t),r):(r.setDate(r.getDate()+t),r)}const s=d(e,r);return s.day+=t,s.timezoneOffset=0,D(c(s),r)},exports.addHours=function(e,t){return new Date(e.getTime()+36e5*t)},exports.addMilliseconds=function(e,t){return new Date(e.getTime()+t)},exports.addMinutes=function(e,t){return new Date(e.getTime()+6e4*t)},exports.addMonths=Z,exports.addSeconds=function(e,t){return new Date(e.getTime()+1e3*t)},exports.addYears=function(e,t,n){return Z(e,12*t,n)},exports.compile=o,exports.format=b,exports.isLeapYear=e=>!((e%4||!(e%100))&&e%400),exports.isSameDay=(e,t)=>e.toDateString()===t.toDateString(),exports.isValid=function(e,t,n){return U(H(e,t,n),n)},exports.parse=A,exports.preparse=H,exports.subtract=(e,t)=>new N(t.getTime()-e.getTime()),exports.transform=function(e,t,n,r,s){return b(A(e,t,r),n,s)};
package/dist/index.d.ts CHANGED
@@ -156,10 +156,10 @@ interface ParserPluginOptions {
156
156
  ignoreCase: boolean;
157
157
  /**
158
158
  * The time zone to use for parsing dates and times.
159
- * This can be a specific time zone object or 'UTC' to use Coordinated Universal Time.
159
+ * This can be a specific time zone object, an IANA time zone name, or 'UTC' to use Coordinated Universal Time.
160
160
  * If not specified, it defaults to undefined, which means the local time zone will be used.
161
161
  */
162
- timeZone: TimeZone | 'UTC' | undefined;
162
+ timeZone: TimeZone | string | undefined;
163
163
  /**
164
164
  * The locale to use for parsing dates and times.
165
165
  * This is an object that provides methods to get localized month names, day names, and meridiems.
@@ -274,28 +274,28 @@ declare function transform(dateString: string, arg1: string | CompiledObject, ar
274
274
  * Adds the specified number of years to a Date object.
275
275
  * @param dateObj - The Date object to modify
276
276
  * @param years - The number of years to add
277
- * @param [timeZone] - Optional time zone object or 'UTC'
277
+ * @param [timeZone] - Optional time zone object, an IANA timezone name or 'UTC' to use Coordinated Universal Time.
278
278
  * @returns A new Date object with the specified number of years added
279
279
  */
280
- declare function addYears(dateObj: Date, years: number, timeZone?: TimeZone | 'UTC'): Date;
280
+ declare function addYears(dateObj: Date, years: number, timeZone?: TimeZone | string): Date;
281
281
 
282
282
  /**
283
283
  * Adds the specified number of months to a Date object.
284
284
  * @param dateObj - The Date object to modify
285
285
  * @param months - The number of months to add
286
- * @param [timeZone] - Optional time zone object or 'UTC'
286
+ * @param [timeZone] - Optional time zone object, an IANA timezone name or 'UTC' to use Coordinated Universal Time.
287
287
  * @returns A new Date object with the specified number of months added
288
288
  */
289
- declare function addMonths(dateObj: Date, months: number, timeZone?: TimeZone | 'UTC'): Date;
289
+ declare function addMonths(dateObj: Date, months: number, timeZone?: TimeZone | string): Date;
290
290
 
291
291
  /**
292
292
  * Adds the specified number of days to a Date object.
293
293
  * @param dateObj - The Date object to modify
294
294
  * @param days - The number of days to add
295
- * @param [timeZone] - Optional time zone object or 'UTC'
295
+ * @param [timeZone] - Optional time zone object, an IANA timezone name or 'UTC' to use Coordinated Universal Time.
296
296
  * @returns A new Date object with the specified number of days added
297
297
  */
298
- declare function addDays(dateObj: Date, days: number, timeZone?: TimeZone | 'UTC'): Date;
298
+ declare function addDays(dateObj: Date, days: number, timeZone?: TimeZone | string): Date;
299
299
 
300
300
  /**
301
301
  * Adds the specified number of hours to a Date object.
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /** @preserve Copyright (c) KNOWLEDGECODE - MIT License */
2
- const e=/\\\[/g,t=/\\\]/g,n=/\uE000/g,r=/\uE001/g,s=/\[(?:[^[\]]|\[[^[\]]*])*]|([A-Za-z])\1*|\.{3}|./g,o=o=>{const a=o.replace(e,"").replace(t,"").match(s)??[];return[o,...a.map(e=>e.replace(n,"[").replace(r,"]"))]},a=new Map,i=e=>a.get(e)??(()=>{const t=new Intl.DateTimeFormat("en-US",{hour12:!1,weekday:"short",year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",fractionalSecondDigits:3,timeZone:e});return e&&a.set(e,t),t})(),c=e=>!!e&&"object"==typeof e&&"zone_name"in e&&"gmt_offset"in e,u=e=>"string"==typeof e&&"UTC"===e.toUpperCase(),l=(e,t)=>new Date(e-1e3*((e,t)=>{const n=i("UTC"),r=i(t.zone_name),s=t.gmt_offset;for(let t=0;t<2;t++){const o=n.format(e-86400*t*1e3);for(let n=0,a=s.length;n<a;n++)if(r.format(e-1e3*(s[n]+86400*t))===o)return s[n]}return NaN})(e,t)),h=(e,t)=>{if(u(t))return{weekday:e.getUTCDay(),year:e.getUTCFullYear(),month:e.getUTCMonth()+1,day:e.getUTCDate(),hour:e.getUTCHours(),minute:e.getUTCMinutes(),second:e.getUTCSeconds(),fractionalSecond:e.getUTCMilliseconds(),timezoneOffset:0};const n=i(t).formatToParts(e).reduce((e,{type:t,value:n})=>{switch(t){case"weekday":e[t]="SunMonTueWedThuFriSat".indexOf(n)/3;break;case"hour":e[t]=+n%24;break;case"year":case"month":case"day":case"minute":case"second":case"fractionalSecond":e[t]=+n}return e},{weekday:4,year:1970,month:1,day:1,hour:0,minute:0,second:0,fractionalSecond:0,timezoneOffset:0});return n.timezoneOffset=(e.getTime()-Date.UTC(n.year,n.month-(n.year<100?22801:1),n.day,n.hour,n.minute,n.second,n.fractionalSecond))/6e4,n},d=e=>Date.UTC(e.year,e.month-(e.year<100?22801:1),e.day,e.hour,e.minute,e.second,e.fractionalSecond+6e4*e.timezoneOffset);class m{constructor(e,t){this.parts=h(e,t),this.time=e.getTime()}getFullYear(){return this.parts.year}getMonth(){return this.parts.month-1}getDate(){return this.parts.day}getHours(){return this.parts.hour}getMinutes(){return this.parts.minute}getSeconds(){return this.parts.second}getMilliseconds(){return this.parts.fractionalSecond}getDay(){return this.parts.weekday}getTime(){return this.time}getTimezoneOffset(){return this.parts.timezoneOffset}}class g{}const M=(e,t)=>e.getFullYear()+("buddhist"===t?543:0);const f=new class extends g{YYYY(e,t){return`000${String(M(e,t.calendar))}`.slice(-4)}YY(e,t){return`0${String(M(e,t.calendar))}`.slice(-2)}Y(e,t){return String(M(e,t.calendar))}MMMM(e,t,n){return t.locale.getMonthList({style:"long",compiledObj:n})[e.getMonth()]??""}MMM(e,t,n){return t.locale.getMonthList({style:"short",compiledObj:n})[e.getMonth()]??""}MM(e){return`0${String(e.getMonth()+1)}`.slice(-2)}M(e){return String(e.getMonth()+1)}DD(e){return`0${String(e.getDate())}`.slice(-2)}D(e){return String(e.getDate())}HH(e,t){return`0${String(e.getHours()||("h24"===t.hour24?24:0))}`.slice(-2)}H(e,t){return String(e.getHours()||("h24"===t.hour24?24:0))}AA(e,t,n){return t.locale.getMeridiemList({style:"long",compiledObj:n,case:"uppercase"})[+(e.getHours()>11)]??""}A(e,t,n){return t.locale.getMeridiemList({style:"short",compiledObj:n,case:"uppercase"})[+(e.getHours()>11)]??""}aa(e,t,n){return t.locale.getMeridiemList({style:"long",compiledObj:n,case:"lowercase"})[+(e.getHours()>11)]??""}a(e,t,n){return t.locale.getMeridiemList({style:"short",compiledObj:n,case:"lowercase"})[+(e.getHours()>11)]??""}hh(e,t){return`0${String(e.getHours()%12||("h12"===t.hour12?12:0))}`.slice(-2)}h(e,t){return String(e.getHours()%12||("h12"===t.hour12?12:0))}mm(e){return`0${String(e.getMinutes())}`.slice(-2)}m(e){return String(e.getMinutes())}ss(e){return`0${String(e.getSeconds())}`.slice(-2)}s(e){return String(e.getSeconds())}SSS(e){return`00${String(e.getMilliseconds())}`.slice(-3)}SS(e){return`00${String(e.getMilliseconds())}`.slice(-3,-1)}S(e){return`00${String(e.getMilliseconds())}`.slice(-3,-2)}dddd(e,t,n){return t.locale.getDayOfWeekList({style:"long",compiledObj:n})[e.getDay()]??""}ddd(e,t,n){return t.locale.getDayOfWeekList({style:"short",compiledObj:n})[e.getDay()]??""}dd(e,t,n){return t.locale.getDayOfWeekList({style:"narrow",compiledObj:n})[e.getDay()]??""}Z(e){const t=e.getTimezoneOffset(),n=Math.abs(t);return`${t>0?"-":"+"}${`0${String(n/60|0)}`.slice(-2)}${`0${String(n%60)}`.slice(-2)}`}ZZ(e){const t=e.getTimezoneOffset(),n=Math.abs(t);return`${t>0?"-":"+"}${`0${String(n/60|0)}`.slice(-2)}:${`0${String(n%60)}`.slice(-2)}`}},y={MMMM:["January","February","March","April","May","June","July","August","September","October","November","December"],MMM:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dddd:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ddd:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dd:["Su","Mo","Tu","We","Th","Fr","Sa"],A:["AM","PM"],AA:["A.M.","P.M."],a:["am","pm"],aa:["a.m.","p.m."]};var S=new class{getLocale(){return"en"}getMonthList(e){return"long"===e.style?y.MMMM:y.MMM}getDayOfWeekList(e){return"long"===e.style?y.dddd:"short"===e.style?y.ddd:y.dd}getMeridiemList(e){return"long"===e.style?"lowercase"===e.case?y.aa:y.AA:"lowercase"===e.case?y.a:y.A}},p={encode:e=>e,decode:e=>e};const D=/^\[(.*)\]$/;function T(e,t,n){const r=("string"==typeof t?o(t):t).slice(1),s=c(n?.timeZone)?n.timeZone.zone_name:n?.timeZone,a=s?new m(e,s):e,i={hour12:n?.hour12??"h12",hour24:n?.hour24??"h23",numeral:n?.numeral??p,calendar:n?.calendar??"gregory",timeZone:n?.timeZone,locale:n?.locale??S},u=[...n?.plugins??[],f],l=i.numeral.encode;return r.reduce((e,t)=>e+((e,t)=>{for(const n of u)if(n[e])return l(n[e](a,i,t));return D.test(e)?e.replace(D,"$1"):e})(t,r),"")}class L{}const C=(e,t,n)=>{const r=e.exec(t)?.[0]??"";return{value:+r,length:r.length,token:n}},w=(e,t,n)=>e.reduce((e,r,s)=>r.length>e.length&&!t.indexOf(r)?{value:s,length:r.length,token:n}:e,{value:-1,length:0,token:n});const b=new class extends L{YYYY(e){return C(/^\d{4}/,e,"Y")}Y(e){return C(/^\d{1,4}/,e,"Y")}MMMM(e,t,n){const r=t.locale.getMonthList({style:"long",compiledObj:n}),s=t.locale.getLocale(),o=t.ignoreCase?w(r.map(e=>e.toLocaleLowerCase(s)),e.toLocaleLowerCase(s),"M"):w(r,e,"M");return o.value++,o}MMM(e,t,n){const r=t.locale.getMonthList({style:"short",compiledObj:n}),s=t.locale.getLocale(),o=t.ignoreCase?w(r.map(e=>e.toLocaleLowerCase(s)),e.toLocaleLowerCase(s),"M"):w(r,e,"M");return o.value++,o}MM(e){return C(/^\d\d/,e,"M")}M(e){return C(/^\d\d?/,e,"M")}DD(e){return C(/^\d\d/,e,"D")}D(e){return C(/^\d\d?/,e,"D")}HH(e){return C(/^\d\d/,e,"H")}H(e){return C(/^\d\d?/,e,"H")}AA(e,t,n){const r=t.locale.getMeridiemList({style:"long",compiledObj:n,case:"uppercase"}),s=t.locale.getLocale();return t.ignoreCase?w(r.map(e=>e.toLocaleLowerCase(s)),e.toLocaleLowerCase(s),"A"):w(r,e,"A")}A(e,t,n){const r=t.locale.getMeridiemList({style:"short",compiledObj:n,case:"uppercase"}),s=t.locale.getLocale();return t.ignoreCase?w(r.map(e=>e.toLocaleLowerCase(s)),e.toLocaleLowerCase(s),"A"):w(r,e,"A")}aa(e,t,n){const r=t.locale.getMeridiemList({style:"long",compiledObj:n,case:"lowercase"}),s=t.locale.getLocale();return t.ignoreCase?w(r.map(e=>e.toLocaleLowerCase(s)),e.toLocaleLowerCase(s),"A"):w(r,e,"A")}a(e,t,n){const r=t.locale.getMeridiemList({style:"short",compiledObj:n,case:"lowercase"}),s=t.locale.getLocale();return t.ignoreCase?w(r.map(e=>e.toLocaleLowerCase(s)),e.toLocaleLowerCase(s),"A"):w(r,e,"A")}hh(e){return C(/^\d\d/,e,"h")}h(e){return C(/^\d\d?/,e,"h")}mm(e){return C(/^\d\d/,e,"m")}m(e){return C(/^\d\d?/,e,"m")}ss(e){return C(/^\d\d/,e,"s")}s(e){return C(/^\d\d?/,e,"s")}SSS(e){return C(/^\d{1,3}/,e,"S")}SS(e){const t=C(/^\d\d?/,e,"S");return t.value*=10,t}S(e){const t=C(/^\d/,e,"S");return t.value*=100,t}Z(e){const t=C(/^[+-][01]\d[0-5]\d/,e,"Z");return t.value=-60*(t.value/100|0)-t.value%100,t}ZZ(e){const t=/^([+-][01]\d):([0-5]\d)/.exec(e)??["","",""],n=+(t[1]+t[2]);return{value:-60*(n/100|0)-n%100,length:t[0].length,token:"Z"}}},O=/^\[(.*)\]$/;function A(e,t,n){const r=("string"==typeof t?o(t):t).slice(1),s={hour12:n?.hour12??"h12",hour24:n?.hour24??"h23",numeral:n?.numeral??p,calendar:n?.calendar??"gregory",ignoreCase:n?.ignoreCase??!1,timeZone:c(n?.timeZone)||u(n?.timeZone)?n.timeZone:void 0,locale:n?.locale??S},a={_index:0,_length:0,_match:0},i=[...n?.plugins??[],b],l=(e,t)=>{for(const n of i)if(n[e])return n[e](t,s,r)};e=s.numeral.decode(e);for(const t of r){const n=e.substring(a._index),r=l(t,n);if(r){if(!r.length)break;r.token&&(a[r.token]=r.value+0),a._index+=r.length,a._match++}else if(t===n[0]||" "===t)a._index++;else{if(!O.test(t)||n.indexOf(t.replace(O,"$1"))){if("..."===t){a._index=e.length;break}break}a._index+=t.length-2}}return a._length=e.length,a}function $(e,t){const n=void 0===e.Y?1970:e.Y-("buddhist"===t?.calendar?543:0),[r,s]="h11"===t?.hour12?[0,11]:[1,12],[o,a]="h24"===t?.hour24?[1,24]:[0,23],i=(e,t,n)=>void 0===e||e>=t&&e<=n;return e._index>0&&e._length>0&&e._index===e._length&&e._match>0&&i(n,1,9999)&&i(e.M,1,12)&&i(e.D,1,(c=n,u=e.M??1,new Date(c,u-(c<100?22800:0),0).getDate()))&&i(e.H,o,a)&&i(e.A,0,1)&&i(e.h,r,s)&&i(e.m,0,59)&&i(e.s,0,59)&&i(e.S,0,999)&&i(e.Z,-840,720);var c,u}function v(e,t,n){return $(A(e,t,n),n)}function U(e,t,n){const r=A(e,t,n);return $(r,n)?(r.Y=r.Y?r.Y-("buddhist"===n?.calendar?543:0):1970,r.M=(r.M??1)-(r.Y<100?22801:1),r.D??=1,r.H=(r.H??0)%24||12*(r.A??0)+(r.h??0)%12,r.m??=0,r.s??=0,r.S??=0,c(n?.timeZone)?l(Date.UTC(r.Y,r.M,r.D,r.H,r.m,r.s,r.S),n.timeZone):u(n?.timeZone)||"Z"in r?new Date(Date.UTC(r.Y,r.M,r.D,r.H,r.m+(r.Z??0),r.s,r.S)):new Date(r.Y,r.M,r.D,r.H,r.m,r.s,r.S)):new Date(NaN)}function Y(e,t,n,r,s){return T(U(e,t,r),n,s)}function H(e,t,n){if(c(n)){const r=h(e,n.zone_name);r.month+=t,r.timezoneOffset=0;const s=new Date(d(r));return s.getUTCDate()<r.day&&s.setUTCDate(0),l(d({...r,year:s.getUTCFullYear(),month:s.getUTCMonth()+1,day:s.getUTCDate()}),n)}const r=new Date(e.getTime());return u(n)?(r.setUTCMonth(r.getUTCMonth()+t),r.getUTCDate()<e.getUTCDate()?(r.setUTCDate(0),r):r):(r.setMonth(r.getMonth()+t),r.getDate()<e.getDate()?(r.setDate(0),r):r)}function Z(e,t,n){return H(e,12*t,n)}function _(e,t,n){if(c(n)){const r=h(e,n.zone_name);return r.day+=t,r.timezoneOffset=0,l(d(r),n)}const r=new Date(e.getTime());return u(n)?(r.setUTCDate(r.getUTCDate()+t),r):(r.setDate(r.getDate()+t),r)}function k(e,t){return new Date(e.getTime()+36e5*t)}function j(e,t){return new Date(e.getTime()+6e4*t)}function x(e,t){return new Date(e.getTime()+1e3*t)}function z(e,t){return new Date(e.getTime()+t)}const F=/^\[(.*)\]$/,P=(e,t)=>(e.F=Math.trunc(1e6*t),e),W=(e,t)=>(e.f=Math.trunc(1e3*t),P(e,1e3*Math.abs(t)%1/1e3)),N=(e,t)=>(e.S=Math.trunc(t),W(e,Math.abs(t)%1)),J=(e,t)=>(e.s=Math.trunc(t/1e3),N(e,Math.abs(t)%1e3)),E=(e,t)=>(e.m=Math.trunc(t/6e4),J(e,Math.abs(t)%6e4)),I=(e,t)=>(e.H=Math.trunc(t/36e5),E(e,Math.abs(t)%36e5)),q=(e,t,n=p)=>{const r=o(t).slice(1);return r.reduce((t,r)=>t+(t=>{if(t[0]in e){const r=e[t[0]]??0;return n.encode(`${(e=>e<0||0===e&&1/e==-1/0?"-":"")(r)}${String(Math.abs(r)).padStart(t.length,"0")}`)}return F.test(t)?t.replace(F,"$1"):t})(r),"")};class B{constructor(e){this.time=e}toNanoseconds(){return{value:1e6*this.time,format:(e,t)=>q(P({},this.time),e,t),toParts:()=>({nanoseconds:Math.trunc(1e6*this.time)+0})}}toMicroseconds(){return{value:1e3*this.time,format:(e,t)=>q(W({},this.time),e,t),toParts:()=>({microseconds:Math.trunc(1e3*this.time)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}toMilliseconds(){return{value:this.time,format:(e,t)=>q(N({},this.time),e,t),toParts:()=>({milliseconds:Math.trunc(this.time)+0,microseconds:Math.trunc(1e3*this.time%1e3)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}toSeconds(){return{value:this.time/1e3,format:(e,t)=>q(J({},this.time),e,t),toParts:()=>({seconds:Math.trunc(this.time/1e3)+0,milliseconds:Math.trunc(this.time%1e3)+0,microseconds:Math.trunc(1e3*this.time%1e3)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}toMinutes(){return{value:this.time/6e4,format:(e,t)=>q(E({},this.time),e,t),toParts:()=>({minutes:Math.trunc(this.time/6e4)+0,seconds:Math.trunc(this.time%864e5%36e5%6e4/1e3)+0,milliseconds:Math.trunc(this.time%1e3)+0,microseconds:Math.trunc(1e3*this.time%1e3)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}toHours(){return{value:this.time/36e5,format:(e,t)=>q(I({},this.time),e,t),toParts:()=>({hours:Math.trunc(this.time/36e5)+0,minutes:Math.trunc(this.time%864e5%36e5/6e4)+0,seconds:Math.trunc(this.time%864e5%36e5%6e4/1e3)+0,milliseconds:Math.trunc(this.time%1e3)+0,microseconds:Math.trunc(1e3*this.time%1e3)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}toDays(){return{value:this.time/864e5,format:(e,t)=>{return q((n={},r=this.time,n.D=Math.trunc(r/864e5),I(n,Math.abs(r)%864e5)),e,t);var n,r},toParts:()=>({days:Math.trunc(this.time/864e5)+0,hours:Math.trunc(this.time%864e5/36e5)+0,minutes:Math.trunc(this.time%864e5%36e5/6e4)+0,seconds:Math.trunc(this.time%864e5%36e5%6e4/1e3)+0,milliseconds:Math.trunc(this.time%1e3)+0,microseconds:Math.trunc(1e3*this.time%1e3)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}}const G=(e,t)=>new B(t.getTime()-e.getTime()),K=e=>!((e%4||!(e%100))&&e%400),Q=(e,t)=>e.toDateString()===t.toDateString();export{B as Duration,_ as addDays,k as addHours,z as addMilliseconds,j as addMinutes,H as addMonths,x as addSeconds,Z as addYears,o as compile,T as format,K as isLeapYear,Q as isSameDay,v as isValid,U as parse,A as preparse,G as subtract,Y as transform};
2
+ const e=/\\\[/g,t=/\\\]/g,n=/\uE000/g,r=/\uE001/g,s=/\[(?:[^[\]]|\[[^[\]]*])*]|([A-Za-z])\1*|\.{3}|./g,o=o=>{const a=o.replace(e,"").replace(t,"").match(s)??[];return[o,...a.map(e=>e.replace(n,"[").replace(r,"]"))]},a=new Map,i=e=>a.get(e)??(()=>{const t=new Intl.DateTimeFormat("en-US",{hour12:!1,weekday:"short",year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",fractionalSecondDigits:3,timeZone:e});return e&&a.set(e,t),t})(),c=e=>Date.UTC(e.year,e.month-(e.year<100?22801:1),e.day,e.hour,e.minute,e.second,e.fractionalSecond+6e4*e.timezoneOffset),u=(e,t)=>e.formatToParts(t).reduce((e,{type:t,value:n})=>{switch(t){case"weekday":e[t]="SunMonTueWedThuFriSat".indexOf(n)/3;break;case"hour":e[t]=+n%24;break;case"year":case"month":case"day":case"minute":case"second":case"fractionalSecond":e[t]=+n}return e},{weekday:4,year:1970,month:1,day:1,hour:0,minute:0,second:0,fractionalSecond:0,timezoneOffset:0}),l=e=>"string"==typeof e&&"UTC"===e.toUpperCase(),h=(e,t)=>{if(l(t))return{weekday:e.getUTCDay(),year:e.getUTCFullYear(),month:e.getUTCMonth()+1,day:e.getUTCDate(),hour:e.getUTCHours(),minute:e.getUTCMinutes(),second:e.getUTCSeconds(),fractionalSecond:e.getUTCMilliseconds(),timezoneOffset:0};const n=e.getTime(),r=u(i(t),n);return r.timezoneOffset=(n-c(r))/6e4,r};class d{constructor(e,t){this.parts=h(e,t),this.time=e.getTime()}getFullYear(){return this.parts.year}getMonth(){return this.parts.month-1}getDate(){return this.parts.day}getHours(){return this.parts.hour}getMinutes(){return this.parts.minute}getSeconds(){return this.parts.second}getMilliseconds(){return this.parts.fractionalSecond}getDay(){return this.parts.weekday}getTime(){return this.time}getTimezoneOffset(){return this.parts.timezoneOffset}}class m{}const g=(e,t)=>e.getFullYear()+("buddhist"===t?543:0);const M=new class extends m{YYYY(e,t){return`000${String(g(e,t.calendar))}`.slice(-4)}YY(e,t){return`0${String(g(e,t.calendar))}`.slice(-2)}Y(e,t){return String(g(e,t.calendar))}MMMM(e,t,n){return t.locale.getMonthList({style:"long",compiledObj:n})[e.getMonth()]??""}MMM(e,t,n){return t.locale.getMonthList({style:"short",compiledObj:n})[e.getMonth()]??""}MM(e){return`0${String(e.getMonth()+1)}`.slice(-2)}M(e){return String(e.getMonth()+1)}DD(e){return`0${String(e.getDate())}`.slice(-2)}D(e){return String(e.getDate())}HH(e,t){return`0${String(e.getHours()||("h24"===t.hour24?24:0))}`.slice(-2)}H(e,t){return String(e.getHours()||("h24"===t.hour24?24:0))}AA(e,t,n){return t.locale.getMeridiemList({style:"long",compiledObj:n,case:"uppercase"})[+(e.getHours()>11)]??""}A(e,t,n){return t.locale.getMeridiemList({style:"short",compiledObj:n,case:"uppercase"})[+(e.getHours()>11)]??""}aa(e,t,n){return t.locale.getMeridiemList({style:"long",compiledObj:n,case:"lowercase"})[+(e.getHours()>11)]??""}a(e,t,n){return t.locale.getMeridiemList({style:"short",compiledObj:n,case:"lowercase"})[+(e.getHours()>11)]??""}hh(e,t){return`0${String(e.getHours()%12||("h12"===t.hour12?12:0))}`.slice(-2)}h(e,t){return String(e.getHours()%12||("h12"===t.hour12?12:0))}mm(e){return`0${String(e.getMinutes())}`.slice(-2)}m(e){return String(e.getMinutes())}ss(e){return`0${String(e.getSeconds())}`.slice(-2)}s(e){return String(e.getSeconds())}SSS(e){return`00${String(e.getMilliseconds())}`.slice(-3)}SS(e){return`00${String(e.getMilliseconds())}`.slice(-3,-1)}S(e){return`00${String(e.getMilliseconds())}`.slice(-3,-2)}dddd(e,t,n){return t.locale.getDayOfWeekList({style:"long",compiledObj:n})[e.getDay()]??""}ddd(e,t,n){return t.locale.getDayOfWeekList({style:"short",compiledObj:n})[e.getDay()]??""}dd(e,t,n){return t.locale.getDayOfWeekList({style:"narrow",compiledObj:n})[e.getDay()]??""}Z(e){const t=e.getTimezoneOffset(),n=Math.abs(t);return`${t>0?"-":"+"}${`0${String(n/60|0)}`.slice(-2)}${`0${String(n%60)}`.slice(-2)}`}ZZ(e){const t=e.getTimezoneOffset(),n=Math.abs(t);return`${t>0?"-":"+"}${`0${String(n/60|0)}`.slice(-2)}:${`0${String(n%60)}`.slice(-2)}`}},f={MMMM:["January","February","March","April","May","June","July","August","September","October","November","December"],MMM:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dddd:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ddd:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dd:["Su","Mo","Tu","We","Th","Fr","Sa"],A:["AM","PM"],AA:["A.M.","P.M."],a:["am","pm"],aa:["a.m.","p.m."]};var y=new class{getLocale(){return"en"}getMonthList(e){return"long"===e.style?f.MMMM:f.MMM}getDayOfWeekList(e){return"long"===e.style?f.dddd:"short"===e.style?f.ddd:f.dd}getMeridiemList(e){return"long"===e.style?"lowercase"===e.case?f.aa:f.AA:"lowercase"===e.case?f.a:f.A}},S={encode:e=>e,decode:e=>e};const D=e=>!!e&&"object"==typeof e&&"zone_name"in e&&"gmt_offset"in e,p=(e,t)=>{const n=D(t)?t.zone_name:t;return new Date(e-((e,t)=>{const n=(()=>{try{return i(t)}catch{return}})(),r=new Set;if(n)for(let t=0;t<2;t++){const s=e-86400*t*1e3;let o=54822e3;do{const e=c(u(n,s-o))-s;if(0===e)return o;r.add(o),o+=e}while(!r.has(o));r.clear()}return NaN})(e,n))},T=/^\[(.*)\]$/;function b(e,t,n){const r=("string"==typeof t?o(t):t).slice(1),s=D(n?.timeZone)?n.timeZone.zone_name:n?.timeZone,a=s?new d(e,s):e,i={hour12:n?.hour12??"h12",hour24:n?.hour24??"h23",numeral:n?.numeral??S,calendar:n?.calendar??"gregory",timeZone:n?.timeZone,locale:n?.locale??y},c=[...n?.plugins??[],M],u=i.numeral.encode;return r.reduce((e,t)=>e+((e,t)=>{for(const n of c)if(n[e])return u(n[e](a,i,t));return T.test(e)?e.replace(T,"$1"):e})(t,r),"")}class w{}const O=(e,t,n)=>{const r=e.exec(t)?.[0]??"";return{value:+r,length:r.length,token:n}},C=(e,t,n,r)=>{const[s,o]=n.ignoreCase?(()=>{const r=n.locale.getLocale();return[e.map(e=>e.toLocaleLowerCase(r)),t.toLocaleLowerCase(r)]})():[e,t];return s.reduce((e,t,n)=>t.length>e.length&&!o.indexOf(t)?{value:n,length:t.length,token:r}:e,{value:-1,length:0,token:r})},v=new Set(["Y","M","D","H","A","h","m","s","S","Z"]),$=e=>v.has(e);const U=new class extends w{YYYY(e){return O(/^\d{4}/,e,"Y")}Y(e){return O(/^\d{1,4}/,e,"Y")}MMMM(e,t,n){const r=t.locale.getMonthList({style:"long",compiledObj:n}),s=C(r,e,t,"M");return s.value++,s}MMM(e,t,n){const r=t.locale.getMonthList({style:"short",compiledObj:n}),s=C(r,e,t,"M");return s.value++,s}MM(e){return O(/^\d\d/,e,"M")}M(e){return O(/^\d\d?/,e,"M")}DD(e){return O(/^\d\d/,e,"D")}D(e){return O(/^\d\d?/,e,"D")}HH(e){return O(/^\d\d/,e,"H")}H(e){return O(/^\d\d?/,e,"H")}AA(e,t,n){const r=t.locale.getMeridiemList({style:"long",compiledObj:n,case:"uppercase"});return C(r,e,t,"A")}A(e,t,n){const r=t.locale.getMeridiemList({style:"short",compiledObj:n,case:"uppercase"});return C(r,e,t,"A")}aa(e,t,n){const r=t.locale.getMeridiemList({style:"long",compiledObj:n,case:"lowercase"});return C(r,e,t,"A")}a(e,t,n){const r=t.locale.getMeridiemList({style:"short",compiledObj:n,case:"lowercase"});return C(r,e,t,"A")}hh(e){return O(/^\d\d/,e,"h")}h(e){return O(/^\d\d?/,e,"h")}mm(e){return O(/^\d\d/,e,"m")}m(e){return O(/^\d\d?/,e,"m")}ss(e){return O(/^\d\d/,e,"s")}s(e){return O(/^\d\d?/,e,"s")}SSS(e){return O(/^\d{1,3}/,e,"S")}SS(e){const t=O(/^\d\d?/,e,"S");return t.value*=10,t}S(e){const t=O(/^\d/,e,"S");return t.value*=100,t}Z(e){const t=O(/^[+-][01]\d[0-5]\d/,e,"Z");return t.value=-60*(t.value/100|0)-t.value%100,t}ZZ(e){const t=/^([+-][01]\d):([0-5]\d)/.exec(e)??["","",""],n=+(t[1]+t[2]);return{value:-60*(n/100|0)-n%100,length:t[0].length,token:"Z"}}},Y=/^\[(.*)\]$/;function H(e,t,n){const r=("string"==typeof t?o(t):t).slice(1),s={hour12:n?.hour12??"h12",hour24:n?.hour24??"h23",numeral:n?.numeral??S,calendar:n?.calendar??"gregory",ignoreCase:n?.ignoreCase??!1,timeZone:(D(n?.timeZone)||"string"==typeof n?.timeZone)&&n.timeZone||void 0,locale:n?.locale??y},a={_index:0,_length:0,_match:0},i=[...n?.plugins??[],U],c=(e,t)=>{for(const n of i)if(n[e])return n[e](t,s,r)};e=s.numeral.decode(e);for(const t of r){const n=e.substring(a._index),r=c(t,n);if(r){if(!r.length)break;r.token&&$(r.token)&&(a[r.token]=r.value+0),a._index+=r.length,a._match++}else if(t===n[0]||" "===t)a._index++;else{if(!Y.test(t)||n.indexOf(t.replace(Y,"$1"))){if("..."===t){a._index=e.length;break}break}a._index+=t.length-2}}return a._length=e.length,a}function A(e,t){const n=void 0===e.Y?1970:e.Y-("buddhist"===t?.calendar?543:0),[r,s]="h11"===t?.hour12?[0,11]:[1,12],[o,a]="h24"===t?.hour24?[1,24]:[0,23],i=(e,t,n)=>void 0===e||e>=t&&e<=n;return e._index>0&&e._length>0&&e._index===e._length&&e._match>0&&i(n,1,9999)&&i(e.M,1,12)&&i(e.D,1,(c=n,u=e.M??1,new Date(Date.UTC(c,u-(c<100?22800:0),0)).getUTCDate()))&&i(e.H,o,a)&&i(e.A,0,1)&&i(e.h,r,s)&&i(e.m,0,59)&&i(e.s,0,59)&&i(e.S,0,999)&&i(e.Z,-913,956);var c,u}function Z(e,t,n){return A(H(e,t,n),n)}function L(e,t,n){const r=H(e,t,n);return A(r,n)?(r.Y=r.Y?r.Y-("buddhist"===n?.calendar?543:0):1970,r.M=(r.M??1)-(r.Y<100?22801:1),r.D??=1,r.H=(r.H??0)%24||12*(r.A??0)+(r.h??0)%12,r.m??=0,r.s??=0,r.S??=0,l(n?.timeZone)||"Z"in r?new Date(Date.UTC(r.Y,r.M,r.D,r.H,r.m+(r.Z??0),r.s,r.S)):n?.timeZone?p(Date.UTC(r.Y,r.M,r.D,r.H,r.m,r.s,r.S),n.timeZone):new Date(r.Y,r.M,r.D,r.H,r.m,r.s,r.S)):new Date(NaN)}function k(e,t,n,r,s){return b(L(e,t,r),n,s)}function _(e,t,n){const r=D(n)?n.zone_name:n??void 0;if(!r||l(r)){const r=new Date(e.getTime());return l(n)?(r.setUTCMonth(r.getUTCMonth()+t),r.getUTCDate()<e.getUTCDate()?(r.setUTCDate(0),r):r):(r.setMonth(r.getMonth()+t),r.getDate()<e.getDate()?(r.setDate(0),r):r)}const s=h(e,r);s.month+=t,s.timezoneOffset=0;const o=new Date(c(s));return o.getUTCDate()<s.day&&o.setUTCDate(0),p(c({...s,year:o.getUTCFullYear(),month:o.getUTCMonth()+1,day:o.getUTCDate()}),r)}function j(e,t,n){return _(e,12*t,n)}function x(e,t,n){const r=D(n)?n.zone_name:n??void 0;if(!r||l(r)){const r=new Date(e.getTime());return l(n)?(r.setUTCDate(r.getUTCDate()+t),r):(r.setDate(r.getDate()+t),r)}const s=h(e,r);return s.day+=t,s.timezoneOffset=0,p(c(s),r)}function z(e,t){return new Date(e.getTime()+36e5*t)}function F(e,t){return new Date(e.getTime()+6e4*t)}function P(e,t){return new Date(e.getTime()+1e3*t)}function W(e,t){return new Date(e.getTime()+t)}const N=/^\[(.*)\]$/,J=(e,t)=>(e.F=Math.trunc(1e6*t),e),E=(e,t)=>(e.f=Math.trunc(1e3*t),J(e,1e3*Math.abs(t)%1/1e3)),I=(e,t)=>(e.S=Math.trunc(t),E(e,Math.abs(t)%1)),q=(e,t)=>(e.s=Math.trunc(t/1e3),I(e,Math.abs(t)%1e3)),B=(e,t)=>(e.m=Math.trunc(t/6e4),q(e,Math.abs(t)%6e4)),G=(e,t)=>(e.H=Math.trunc(t/36e5),B(e,Math.abs(t)%36e5)),K=(e,t,n=S)=>{const r=o(t).slice(1);return r.reduce((t,r)=>t+(t=>{if(t[0]in e){const r=e[t[0]]??0;return n.encode(`${(e=>e<0||0===e&&1/e==-1/0?"-":"")(r)}${String(Math.abs(r)).padStart(t.length,"0")}`)}return N.test(t)?t.replace(N,"$1"):t})(r),"")};class Q{constructor(e){this.time=e}toNanoseconds(){return{value:1e6*this.time,format:(e,t)=>K(J({},this.time),e,t),toParts:()=>({nanoseconds:Math.trunc(1e6*this.time)+0})}}toMicroseconds(){return{value:1e3*this.time,format:(e,t)=>K(E({},this.time),e,t),toParts:()=>({microseconds:Math.trunc(1e3*this.time)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}toMilliseconds(){return{value:this.time,format:(e,t)=>K(I({},this.time),e,t),toParts:()=>({milliseconds:Math.trunc(this.time)+0,microseconds:Math.trunc(1e3*this.time%1e3)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}toSeconds(){return{value:this.time/1e3,format:(e,t)=>K(q({},this.time),e,t),toParts:()=>({seconds:Math.trunc(this.time/1e3)+0,milliseconds:Math.trunc(this.time%1e3)+0,microseconds:Math.trunc(1e3*this.time%1e3)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}toMinutes(){return{value:this.time/6e4,format:(e,t)=>K(B({},this.time),e,t),toParts:()=>({minutes:Math.trunc(this.time/6e4)+0,seconds:Math.trunc(this.time%864e5%36e5%6e4/1e3)+0,milliseconds:Math.trunc(this.time%1e3)+0,microseconds:Math.trunc(1e3*this.time%1e3)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}toHours(){return{value:this.time/36e5,format:(e,t)=>K(G({},this.time),e,t),toParts:()=>({hours:Math.trunc(this.time/36e5)+0,minutes:Math.trunc(this.time%864e5%36e5/6e4)+0,seconds:Math.trunc(this.time%864e5%36e5%6e4/1e3)+0,milliseconds:Math.trunc(this.time%1e3)+0,microseconds:Math.trunc(1e3*this.time%1e3)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}toDays(){return{value:this.time/864e5,format:(e,t)=>{return K((n={},r=this.time,n.D=Math.trunc(r/864e5),G(n,Math.abs(r)%864e5)),e,t);var n,r},toParts:()=>({days:Math.trunc(this.time/864e5)+0,hours:Math.trunc(this.time%864e5/36e5)+0,minutes:Math.trunc(this.time%864e5%36e5/6e4)+0,seconds:Math.trunc(this.time%864e5%36e5%6e4/1e3)+0,milliseconds:Math.trunc(this.time%1e3)+0,microseconds:Math.trunc(1e3*this.time%1e3)+0,nanoseconds:Math.trunc(1e6*this.time%1e3)+0})}}}const R=(e,t)=>new Q(t.getTime()-e.getTime()),V=e=>!((e%4||!(e%100))&&e%400),X=(e,t)=>e.toDateString()===t.toDateString();export{Q as Duration,x as addDays,z as addHours,W as addMilliseconds,F as addMinutes,_ as addMonths,P as addSeconds,j as addYears,o as compile,b as format,V as isLeapYear,X as isSameDay,Z as isValid,L as parse,H as preparse,R as subtract,k as transform};
package/dist/plugin.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";exports.FormatterPlugin=class{},exports.ParserPlugin=class{},exports.exec=(e,t,n)=>{const l=e.exec(t)?.[0]??"";return{value:+l,length:l.length,token:n}},exports.find=(e,t,n)=>e.reduce((e,l,r)=>l.length>e.length&&!t.indexOf(l)?{value:r,length:l.length,token:n}:e,{value:-1,length:0,token:n});
1
+ "use strict";exports.FormatterPlugin=class{},exports.ParserPlugin=class{},exports.exec=(e,t,n)=>{const o=e.exec(t)?.[0]??"";return{value:+o,length:o.length,token:n}},exports.find=(e,t,n,o)=>{const[l,r]=n.ignoreCase?(()=>{const o=n.locale.getLocale();return[e.map(e=>e.toLocaleLowerCase(o)),t.toLocaleLowerCase(o)]})():[e,t];return l.reduce((e,t,n)=>t.length>e.length&&!r.indexOf(t)?{value:n,length:t.length,token:o}:e,{value:-1,length:0,token:o})};
package/dist/plugin.d.ts CHANGED
@@ -137,10 +137,10 @@ interface ParserPluginOptions {
137
137
  ignoreCase: boolean;
138
138
  /**
139
139
  * The time zone to use for parsing dates and times.
140
- * This can be a specific time zone object or 'UTC' to use Coordinated Universal Time.
140
+ * This can be a specific time zone object, an IANA time zone name, or 'UTC' to use Coordinated Universal Time.
141
141
  * If not specified, it defaults to undefined, which means the local time zone will be used.
142
142
  */
143
- timeZone: TimeZone | 'UTC' | undefined;
143
+ timeZone: TimeZone | string | undefined;
144
144
  /**
145
145
  * The locale to use for parsing dates and times.
146
146
  * This is an object that provides methods to get localized month names, day names, and meridiems.
@@ -171,10 +171,11 @@ declare const exec: (re: RegExp, str: string, token?: ParserToken) => {
171
171
  * Finds the best matching string from an array based on length and string position.
172
172
  * @param array - Array of strings to search through
173
173
  * @param str - The string to match against
174
+ * @param options - Parser plugin options
174
175
  * @param [token] - Optional parser token to associate with the result
175
176
  * @returns ParseResult with the index of the longest matching string at the start position
176
177
  */
177
- declare const find: (array: string[], str: string, token?: ParserToken) => ParseResult;
178
+ declare const find: (array: string[], str: string, options: ParserPluginOptions, token?: ParserToken) => ParseResult;
178
179
 
179
180
  export { FormatterPlugin, ParserPlugin, exec, find };
180
181
  export type { CompiledObject, DateLike, FormatterPluginOptions, Locale, Numeral, ParseResult, ParserPluginOptions, TimeZone };
package/dist/plugin.js CHANGED
@@ -1 +1 @@
1
- class e{}class n{}const t=(e,n,t)=>{const l=e.exec(n)?.[0]??"";return{value:+l,length:l.length,token:t}},l=(e,n,t)=>e.reduce((e,l,g)=>l.length>e.length&&!n.indexOf(l)?{value:g,length:l.length,token:t}:e,{value:-1,length:0,token:t});export{e as FormatterPlugin,n as ParserPlugin,t as exec,l as find};
1
+ class e{}class t{}const n=(e,t,n)=>{const l=e.exec(t)?.[0]??"";return{value:+l,length:l.length,token:n}},l=(e,t,n,l)=>{const[o,a]=n.ignoreCase?(()=>{const l=n.locale.getLocale();return[e.map(e=>e.toLocaleLowerCase(l)),t.toLocaleLowerCase(l)]})():[e,t];return o.reduce((e,t,n)=>t.length>e.length&&!a.indexOf(t)?{value:n,length:t.length,token:l}:e,{value:-1,length:0,token:l})};export{e as FormatterPlugin,t as ParserPlugin,n as exec,l as find};
@@ -1 +1 @@
1
- "use strict";class e{}const o=(e,o,t)=>e.reduce((e,l,a)=>l.length>e.length&&!o.indexOf(l)?{value:a,length:l.length,token:t}:e,{value:-1,length:0,token:t});const t=new class extends e{dddd(e,t,l){const a=t.locale.getDayOfWeekList({style:"long",compiledObj:l}),s=t.locale.getLocale();return t.ignoreCase?o(a.map(e=>e.toLocaleLowerCase(s)),e.toLocaleLowerCase(s)):o(a,e)}ddd(e,t,l){const a=t.locale.getDayOfWeekList({style:"short",compiledObj:l}),s=t.locale.getLocale();return t.ignoreCase?o(a.map(e=>e.toLocaleLowerCase(s)),e.toLocaleLowerCase(s)):o(a,e)}dd(e,t,l){const a=t.locale.getDayOfWeekList({style:"narrow",compiledObj:l}),s=t.locale.getLocale();return t.ignoreCase?o(a.map(e=>e.toLocaleLowerCase(s)),e.toLocaleLowerCase(s)):o(a,e)}};exports.parser=t;
1
+ "use strict";class e{}const t=(e,t,o,l)=>{const[s,n]=o.ignoreCase?(()=>{const l=o.locale.getLocale();return[e.map(e=>e.toLocaleLowerCase(l)),t.toLocaleLowerCase(l)]})():[e,t];return s.reduce((e,t,o)=>t.length>e.length&&!n.indexOf(t)?{value:o,length:t.length,token:l}:e,{value:-1,length:0,token:l})};const o=new class extends e{dddd(e,o,l){const s=o.locale.getDayOfWeekList({style:"long",compiledObj:l});return t(s,e,o)}ddd(e,o,l){const s=o.locale.getDayOfWeekList({style:"short",compiledObj:l});return t(s,e,o)}dd(e,o,l){const s=o.locale.getDayOfWeekList({style:"narrow",compiledObj:l});return t(s,e,o)}};exports.parser=o;
@@ -55,10 +55,10 @@ interface ParserPluginOptions {
55
55
  ignoreCase: boolean;
56
56
  /**
57
57
  * The time zone to use for parsing dates and times.
58
- * This can be a specific time zone object or 'UTC' to use Coordinated Universal Time.
58
+ * This can be a specific time zone object, an IANA time zone name, or 'UTC' to use Coordinated Universal Time.
59
59
  * If not specified, it defaults to undefined, which means the local time zone will be used.
60
60
  */
61
- timeZone: TimeZone | 'UTC' | undefined;
61
+ timeZone: TimeZone | string | undefined;
62
62
  /**
63
63
  * The locale to use for parsing dates and times.
64
64
  * This is an object that provides methods to get localized month names, day names, and meridiems.
@@ -1 +1 @@
1
- class e{}const o=(e,o,l)=>e.reduce((e,t,a)=>t.length>e.length&&!o.indexOf(t)?{value:a,length:t.length,token:l}:e,{value:-1,length:0,token:l});const l=new class extends e{dddd(e,l,t){const a=l.locale.getDayOfWeekList({style:"long",compiledObj:t}),c=l.locale.getLocale();return l.ignoreCase?o(a.map(e=>e.toLocaleLowerCase(c)),e.toLocaleLowerCase(c)):o(a,e)}ddd(e,l,t){const a=l.locale.getDayOfWeekList({style:"short",compiledObj:t}),c=l.locale.getLocale();return l.ignoreCase?o(a.map(e=>e.toLocaleLowerCase(c)),e.toLocaleLowerCase(c)):o(a,e)}dd(e,l,t){const a=l.locale.getDayOfWeekList({style:"narrow",compiledObj:t}),c=l.locale.getLocale();return l.ignoreCase?o(a.map(e=>e.toLocaleLowerCase(c)),e.toLocaleLowerCase(c)):o(a,e)}};export{l as parser};
1
+ class e{}const t=(e,t,o,l)=>{const[n,s]=o.ignoreCase?(()=>{const l=o.locale.getLocale();return[e.map(e=>e.toLocaleLowerCase(l)),t.toLocaleLowerCase(l)]})():[e,t];return n.reduce((e,t,o)=>t.length>e.length&&!s.indexOf(t)?{value:o,length:t.length,token:l}:e,{value:-1,length:0,token:l})};const o=new class extends e{dddd(e,o,l){const n=o.locale.getDayOfWeekList({style:"long",compiledObj:l});return t(n,e,o)}ddd(e,o,l){const n=o.locale.getDayOfWeekList({style:"short",compiledObj:l});return t(n,e,o)}dd(e,o,l){const n=o.locale.getDayOfWeekList({style:"narrow",compiledObj:l});return t(n,e,o)}};export{o as parser};
@@ -55,10 +55,10 @@ interface ParserPluginOptions {
55
55
  ignoreCase: boolean;
56
56
  /**
57
57
  * The time zone to use for parsing dates and times.
58
- * This can be a specific time zone object or 'UTC' to use Coordinated Universal Time.
58
+ * This can be a specific time zone object, an IANA time zone name, or 'UTC' to use Coordinated Universal Time.
59
59
  * If not specified, it defaults to undefined, which means the local time zone will be used.
60
60
  */
61
- timeZone: TimeZone | 'UTC' | undefined;
61
+ timeZone: TimeZone | string | undefined;
62
62
  /**
63
63
  * The locale to use for parsing dates and times.
64
64
  * This is an object that provides methods to get localized month names, day names, and meridiems.
@@ -55,10 +55,10 @@ interface ParserPluginOptions {
55
55
  ignoreCase: boolean;
56
56
  /**
57
57
  * The time zone to use for parsing dates and times.
58
- * This can be a specific time zone object or 'UTC' to use Coordinated Universal Time.
58
+ * This can be a specific time zone object, an IANA time zone name, or 'UTC' to use Coordinated Universal Time.
59
59
  * If not specified, it defaults to undefined, which means the local time zone will be used.
60
60
  */
61
- timeZone: TimeZone | 'UTC' | undefined;
61
+ timeZone: TimeZone | string | undefined;
62
62
  /**
63
63
  * The locale to use for parsing dates and times.
64
64
  * This is an object that provides methods to get localized month names, day names, and meridiems.
@@ -137,10 +137,10 @@ interface ParserPluginOptions {
137
137
  ignoreCase: boolean;
138
138
  /**
139
139
  * The time zone to use for parsing dates and times.
140
- * This can be a specific time zone object or 'UTC' to use Coordinated Universal Time.
140
+ * This can be a specific time zone object, an IANA time zone name, or 'UTC' to use Coordinated Universal Time.
141
141
  * If not specified, it defaults to undefined, which means the local time zone will be used.
142
142
  */
143
- timeZone: TimeZone | 'UTC' | undefined;
143
+ timeZone: TimeZone | string | undefined;
144
144
  /**
145
145
  * The locale to use for parsing dates and times.
146
146
  * This is an object that provides methods to get localized month names, day names, and meridiems.
@@ -55,10 +55,10 @@ interface ParserPluginOptions {
55
55
  ignoreCase: boolean;
56
56
  /**
57
57
  * The time zone to use for parsing dates and times.
58
- * This can be a specific time zone object or 'UTC' to use Coordinated Universal Time.
58
+ * This can be a specific time zone object, an IANA time zone name, or 'UTC' to use Coordinated Universal Time.
59
59
  * If not specified, it defaults to undefined, which means the local time zone will be used.
60
60
  */
61
- timeZone: TimeZone | 'UTC' | undefined;
61
+ timeZone: TimeZone | string | undefined;
62
62
  /**
63
63
  * The locale to use for parsing dates and times.
64
64
  * This is an object that provides methods to get localized month names, day names, and meridiems.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "date-and-time",
3
- "version": "4.2.0",
3
+ "version": "4.3.0",
4
4
  "description": "The simplest, most intuitive date and time library",
5
5
  "keywords": [
6
6
  "date",
@@ -87,23 +87,25 @@
87
87
  "type": "module",
88
88
  "sideEffects": false,
89
89
  "devDependencies": {
90
+ "@eslint/js": "^10.0.1",
90
91
  "@rollup/plugin-alias": "^6.0.0",
91
92
  "@rollup/plugin-terser": "^0.4.4",
92
- "@stylistic/eslint-plugin": "^5.7.0",
93
- "@types/node": "^25.0.9",
94
- "@vitest/coverage-v8": "^4.0.17",
95
- "eslint": "^9.39.2",
96
- "glob": "^13.0.0",
97
- "prettier": "^3.8.0",
98
- "rollup": "^4.55.1",
93
+ "@stylistic/eslint-plugin": "^5.9.0",
94
+ "@types/node": "^25.3.0",
95
+ "@vitest/coverage-v8": "^4.0.18",
96
+ "eslint": "^10.0.1",
97
+ "glob": "^13.0.6",
98
+ "prettier": "^3.8.1",
99
+ "rollup": "^4.58.0",
99
100
  "rollup-plugin-dts": "^6.3.0",
100
101
  "rollup-plugin-esbuild": "^6.2.1",
101
102
  "tsx": "^4.21.0",
102
- "typescript-eslint": "^8.53.0",
103
+ "typescript-eslint": "^8.56.0",
103
104
  "vitepress": "^1.6.4",
104
- "vitest": "^4.0.17"
105
+ "vitest": "^4.0.18"
105
106
  },
106
107
  "overrides": {
107
- "esbuild": "^0.25.0"
108
+ "esbuild": "^0.25.0",
109
+ "minimatch": "^10.2.2"
108
110
  }
109
111
  }