@sapphire/time-utilities
Advanced tools
Comparing version 1.1.0 to 1.1.1
@@ -6,2 +6,9 @@ # Change Log | ||
## [1.1.1](https://github.com/sapphire-project/utilities/compare/@sapphire/time-utilities@1.1.0...@sapphire/time-utilities@1.1.1) (2020-11-15) | ||
### Bug Fixes | ||
- **time-utilities:** pass keep_classnames to terser ([3e50b0d](https://github.com/sapphire-project/utilities/commit/3e50b0dff857d5ea6b2c577b5fe6582b7d4eeea1)) | ||
- **time-utilities:** pass keep_fnames to terser ([5ff2250](https://github.com/sapphire-project/utilities/commit/5ff22508ffff131d850bc63b12d8cdcd7ebafcb6)) | ||
# [1.1.0](https://github.com/sapphire-project/utilities/compare/@sapphire/time-utilities@1.0.1...@sapphire/time-utilities@1.1.0) (2020-11-07) | ||
@@ -8,0 +15,0 @@ |
@@ -1,2 +0,2 @@ | ||
"use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),(e=exports.Time||(exports.Time={}))[e.Millisecond=1]="Millisecond",e[e.Second=1e3]="Second",e[e.Minute=6e4]="Minute",e[e.Hour=36e5]="Hour",e[e.Day=864e5]="Day",e[e.Month=2628e6]="Month",e[e.Year=31536e6]="Year";const t=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],r=["January","February","March","April","May","June","July","August","September","October","November","December"],n=new Map([["Y",4],["Q",1],["M",4],["D",4],["d",4],["X",1],["x",1],["H",2],["h",2],["a",1],["A",1],["m",2],["s",2],["S",3],["Z",2],["l",4],["L",4],["T",1],["t",1]]),a=/^(?:(\*)|(\d+)(?:-(\d+))?)(?:\/(\d+))?$/,i=/\bh\b|\B\?\B/g,s=[[0,59],[0,23],[1,31],[1,12],[0,6]],o={"@annually":"0 0 1 1 *","@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"},l={jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12,sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6},g=new RegExp(Object.keys(l).join("|"),"g");class u{constructor(e){Object.defineProperty(this,"cron",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"normalized",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"minutes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"hours",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"days",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"months",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"dows",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cron=e.toLowerCase(),this.normalized=u.normalize(this.cron),[this.minutes,this.hours,this.days,this.months,this.dows]=u.parseString(this.normalized)}next(e=new Date,t=!0){if(!this.days.includes(e.getUTCDate())||!this.months.includes(e.getUTCMonth()+1)||!this.dows.includes(e.getUTCDay()))return this.next(new Date(e.getTime()+864e5),!1);if(!t)return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),this.hours[0],this.minutes[0]));const r=new Date(e.getTime()+6e4);for(const t of this.hours)if(!(t<r.getUTCHours()))for(const n of this.minutes)if(!(t===r.getUTCHours()&&n<r.getUTCMinutes()))return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),t,n));return this.next(new Date(e.getTime()+864e5),!1)}static normalize(e){if(Reflect.has(o,e))return Reflect.get(o,e);const t=new Date;return(e=e.split(" ").map(((e,r)=>e.replace(i,(e=>{if("h"===e)return(Math.floor(Math.random()*s[r][1])+s[r][0]).toString();if("?"===e)switch(r){case 0:return t.getUTCMinutes().toString();case 1:return t.getUTCHours().toString();case 2:return t.getUTCDate().toString();case 3:return t.getUTCMonth().toString();case 4:return t.getUTCDay().toString()}return e})))).join(" ")).replace(g,(e=>String(Reflect.get(l,e))))}static parseString(e){const t=e.split(" ");if(5!==t.length)throw new Error("Invalid Cron Provided");return t.map(((e,t)=>u.parsePart(e,t)))}static parsePart(e,t){if(e.includes(",")){const r=[];for(const n of e.split(","))r.push(...u.parsePart(n,t));return[...new Set(r)].sort(((e,t)=>e-t))}const[,r,n,i,o]=a.exec(e);let[l,g]=[parseInt(n,10),parseInt(i,10)];if(r)[l,g]=s[t];else if(!g&&!o)return[l];return[l,g]=[l,g||s[t][1]].sort(((e,t)=>e-t)),c=l,d=g,h=parseInt(o,10)||1,new Array(Math.floor((d-c)/h)+1).fill(0).map(((e,t)=>c+t*h));var c,d,h}}const c=new Map([["nanosecond",1e-6],["nanoseconds",1e-6],["ns",1e-6],["millisecond",1],["milliseconds",1],["ms",1],["second",1e3],["seconds",1e3],["sec",1e3],["secs",1e3],["s",1e3],["minute",6e4],["minutes",6e4],["min",6e4],["mins",6e4],["m",6e4],["hour",36e5],["hours",36e5],["hr",36e5],["hrs",36e5],["h",36e5],["day",864e5],["days",864e5],["d",864e5],["week",6048e5],["weeks",6048e5],["wk",6048e5],["wks",6048e5],["w",6048e5],["month",26298e5],["months",26298e5],["b",26298e5],["mo",26298e5],["year",315576e5],["years",315576e5],["yr",315576e5],["yrs",315576e5],["y",315576e5]]);class d{constructor(e){Object.defineProperty(this,"offset",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.offset=d.parse(e.toLowerCase())}get fromNow(){return this.dateFrom(new Date)}dateFrom(e){return new Date(e.getTime()+this.offset)}static parse(e){let t=0;return e.replace(d.kCommaRegex,"").replace(d.kAanRegex,"1").replace(d.kPatternRegex,((e,r,n)=>(n=c.get(n)??0,t+=Number(r)*n,""))),t}}var h;Object.defineProperty(d,"kPatternRegex",{enumerable:!0,configurable:!0,writable:!0,value:/(-?\d*\.?\d+(?:e[-+]?\d+)?)\s*([a-zμ]*)/gi}),Object.defineProperty(d,"kCommaRegex",{enumerable:!0,configurable:!0,writable:!0,value:/,/g}),Object.defineProperty(d,"kAanRegex",{enumerable:!0,configurable:!0,writable:!0,value:/\ban?\b/gi}),(h=exports.TimeTypes||(exports.TimeTypes={})).Second="second",h.Minute="minute",h.Hour="hour",h.Day="day",h.Week="week",h.Month="month",h.Year="year";const p=[["year",31536e6],["month",2628e6],["week",6048e5],["day",864e5],["hour",36e5],["minute",6e4],["second",1e3]];function S(e,t){return Reflect.has(t,e)?`${e} ${Reflect.get(t,e)}`:`${e} ${t.DEFAULT}`}const m=new Map([["Y",e=>String(e.getFullYear()).slice(2)],["YY",e=>String(e.getFullYear()).slice(2)],["YYY",e=>String(e.getFullYear())],["YYYY",e=>String(e.getFullYear())],["Q",e=>String((e.getMonth()+1)/3)],["M",e=>String(e.getMonth()+1)],["MM",e=>String(e.getMonth()+1).padStart(2,"0")],["MMM",e=>r[e.getMonth()]],["MMMM",e=>r[e.getMonth()]],["D",e=>String(e.getDate())],["DD",e=>String(e.getDate()).padStart(2,"0")],["DDD",e=>String(Math.floor((e.getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5))],["DDDD",e=>String(Math.floor((e.getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5))],["d",e=>{const t=String(e.getDate());return"11"!==t&&t.endsWith("1")?t+"st":"12"!==t&&t.endsWith("2")?t+"nd":"13"!==t&&t.endsWith("3")?t+"rd":t+"th"}],["dd",e=>t[e.getDay()].slice(0,2)],["ddd",e=>t[e.getDay()].slice(0,3)],["dddd",e=>t[e.getDay()]],["X",e=>String(e.valueOf()/1e3)],["x",e=>String(e.valueOf())],["H",e=>String(e.getHours())],["HH",e=>String(e.getHours()).padStart(2,"0")],["h",e=>String(e.getHours()%12||12)],["hh",e=>String(e.getHours()%12||12).padStart(2,"0")],["a",e=>e.getHours()<12?"am":"pm"],["A",e=>e.getHours()<12?"AM":"PM"],["m",e=>String(e.getMinutes())],["mm",e=>String(e.getMinutes()).padStart(2,"0")],["s",e=>String(e.getSeconds())],["ss",e=>String(e.getSeconds()).padStart(2,"0")],["S",e=>String(e.getMilliseconds())],["SS",e=>String(e.getMilliseconds()).padStart(2,"0")],["SSS",e=>String(e.getMilliseconds()).padStart(3,"0")],["T",e=>`${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")} ${e.getHours()<12?"AM":"PM"}`],["t",e=>`${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")}:${String(e.getSeconds()).padStart(2,"0")} ${e.getHours()<12?"am":"pm"}`],["L",e=>`${String(e.getMonth()+1).padStart(2,"0")}/${String(e.getDate()).padStart(2,"0")}/${String(e.getFullYear())}`],["l",e=>`${String(e.getMonth()+1)}/${String(e.getDate()).padStart(2,"0")}/${String(e.getFullYear())}`],["LL",e=>`${r[e.getMonth()]} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())}`],["ll",e=>`${r[e.getMonth()].slice(0,3)} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())}`],["LLL",e=>`${r[e.getMonth()]} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())} ${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")} ${e.getHours()<12?"AM":"PM"}`],["lll",e=>`${r[e.getMonth()].slice(0,3)} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())} ${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")} ${e.getHours()<12?"AM":"PM"}`],["LLLL",e=>`${t[e.getDay()]}, ${r[e.getMonth()]} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())} ${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")} ${e.getHours()<12?"AM":"PM"}`],["llll",e=>`${t[e.getDay()].slice(0,3)} ${r[e.getMonth()].slice(0,3)} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())} ${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")} ${e.getHours()<12?"AM":"PM"}`],["Z",e=>{const t=e.getTimezoneOffset(),r=t>=0,n=Math.abs(t);return`${r?"+":"-"}${String(Math.floor(n/60)).padStart(2,"0")}:${String(n%60).padStart(2,"0")}`}],["ZZ",e=>{const t=e.getTimezoneOffset(),r=t>=0,n=Math.abs(t);return`${r?"+":"-"}${String(Math.floor(n/60)).padStart(2,"0")}:${String(n%60).padStart(2,"0")}`}]]);class f{constructor(e){Object.defineProperty(this,"pattern",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"template",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.pattern=e,this.template=f.parse(e)}display(e=new Date){return f.display(this.template,e)}displayUTC(e){return f.display(this.template,f.utc(e))}edit(e){return this.pattern=e,this.template=f.parse(e),this}toString(){return this.display()}static displayArbitrary(e,t=new Date){return f.display(f.parse(e),t)}static displayUTCArbitrary(e,t=new Date){return f.display(f.parse(e),f.utc(t))}static utc(e=new Date){return e=f.resolveDate(e),new Date(e.valueOf()+6e4*e.getTimezoneOffset())}static display(e,t){let r="";const n=f.resolveDate(t);for(const{content:t,type:a}of e)r+=t||m.get(a)(n);return r}static parse(e){const t=[];for(let r=0;r<e.length;r++){let a="";const i=e[r],s=n.get(i);if("number"==typeof s){for(a+=i;e[r+1]===i&&a.length<s;)a+=e[++r];t.push({type:a,content:null})}else if("["===i){for(;r+1<e.length&&"]"!==e[r+1];)a+=e[++r];r++,t.push({type:"literal",content:a||"["})}else{for(a+=i;r+1<e.length&&!n.has(e[r+1])&&"["!==e[r+1];)a+=e[++r];t.push({type:"literal",content:a})}}return t}static resolveDate(e){return e instanceof Date?e:new Date(e)}}class b extends(null){static setTimeout(e,t,...r){const n=setTimeout((()=>{this.storedTimeouts.delete(n),e(...r)}),t);return this.storedTimeouts.add(n),n}static clearTimeout(e){clearTimeout(e),this.storedTimeouts.delete(e)}static setInterval(e,t,...r){const n=setInterval(e,t,...r);return this.storedIntervals.add(n),n}static clearInterval(e){clearInterval(e),this.storedIntervals.delete(e)}static destroy(){for(const e of this.storedTimeouts)clearTimeout(e);for(const e of this.storedIntervals)clearInterval(e);this.storedTimeouts.clear(),this.storedIntervals.clear()}}Object.defineProperty(b,"storedTimeouts",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(b,"storedIntervals",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),exports.Cron=u,exports.Duration=d,exports.DurationFormatter=class{constructor(e){Object.defineProperty(this,"units",{enumerable:!0,configurable:!0,writable:!0,value:e})}format(e,t=7){const r=[],n=e<0;n&&(e*=-1);for(const[n,a]of p){const i=e/a;if(i<1)continue;const s=Math.floor(i);if(e-=s*a,r.push(S(s,this.units[n])),r.length>=t)break}return`${n?"-":""}${r.join(" ")||S(0,this.units.second)}`}},exports.TimerManager=b,exports.Timestamp=f; | ||
"use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),(e=exports.Time||(exports.Time={}))[e.Millisecond=1]="Millisecond",e[e.Second=1e3]="Second",e[e.Minute=6e4]="Minute",e[e.Hour=36e5]="Hour",e[e.Day=864e5]="Day",e[e.Month=2628e6]="Month",e[e.Year=31536e6]="Year";const t=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],r=["January","February","March","April","May","June","July","August","September","October","November","December"],a=new Map([["Y",4],["Q",1],["M",4],["D",4],["d",4],["X",1],["x",1],["H",2],["h",2],["a",1],["A",1],["m",2],["s",2],["S",3],["Z",2],["l",4],["L",4],["T",1],["t",1]]),n=/^(?:(\*)|(\d+)(?:-(\d+))?)(?:\/(\d+))?$/,i=/\bh\b|\B\?\B/g,s=[[0,59],[0,23],[1,31],[1,12],[0,6]],o={"@annually":"0 0 1 1 *","@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"},l={jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12,sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6},u=new RegExp(Object.keys(l).join("|"),"g");class Cron{constructor(e){Object.defineProperty(this,"cron",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"normalized",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"minutes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"hours",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"days",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"months",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"dows",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cron=e.toLowerCase(),this.normalized=Cron.normalize(this.cron),[this.minutes,this.hours,this.days,this.months,this.dows]=Cron.parseString(this.normalized)}next(e=new Date,t=!0){if(!this.days.includes(e.getUTCDate())||!this.months.includes(e.getUTCMonth()+1)||!this.dows.includes(e.getUTCDay()))return this.next(new Date(e.getTime()+864e5),!1);if(!t)return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),this.hours[0],this.minutes[0]));const r=new Date(e.getTime()+6e4);for(const t of this.hours)if(!(t<r.getUTCHours()))for(const a of this.minutes)if(!(t===r.getUTCHours()&&a<r.getUTCMinutes()))return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),t,a));return this.next(new Date(e.getTime()+864e5),!1)}static normalize(e){if(Reflect.has(o,e))return Reflect.get(o,e);const t=new Date;return(e=e.split(" ").map(((e,r)=>e.replace(i,(e=>{if("h"===e)return(Math.floor(Math.random()*s[r][1])+s[r][0]).toString();if("?"===e)switch(r){case 0:return t.getUTCMinutes().toString();case 1:return t.getUTCHours().toString();case 2:return t.getUTCDate().toString();case 3:return t.getUTCMonth().toString();case 4:return t.getUTCDay().toString()}return e})))).join(" ")).replace(u,(e=>String(Reflect.get(l,e))))}static parseString(e){const t=e.split(" ");if(5!==t.length)throw new Error("Invalid Cron Provided");return t.map(((e,t)=>Cron.parsePart(e,t)))}static parsePart(e,t){if(e.includes(",")){const r=[];for(const a of e.split(","))r.push(...Cron.parsePart(a,t));return[...new Set(r)].sort(((e,t)=>e-t))}const[,r,a,i,o]=n.exec(e);let[l,u]=[parseInt(a,10),parseInt(i,10)];if(r)[l,u]=s[t];else if(!u&&!o)return[l];return[l,u]=[l,u||s[t][1]].sort(((e,t)=>e-t)),function range(e,t,r){return new Array(Math.floor((t-e)/r)+1).fill(0).map(((t,a)=>e+a*r))}(l,u,parseInt(o,10)||1)}}const g=new Map([["nanosecond",1e-6],["nanoseconds",1e-6],["ns",1e-6],["millisecond",1],["milliseconds",1],["ms",1],["second",1e3],["seconds",1e3],["sec",1e3],["secs",1e3],["s",1e3],["minute",6e4],["minutes",6e4],["min",6e4],["mins",6e4],["m",6e4],["hour",36e5],["hours",36e5],["hr",36e5],["hrs",36e5],["h",36e5],["day",864e5],["days",864e5],["d",864e5],["week",6048e5],["weeks",6048e5],["wk",6048e5],["wks",6048e5],["w",6048e5],["month",26298e5],["months",26298e5],["b",26298e5],["mo",26298e5],["year",315576e5],["years",315576e5],["yr",315576e5],["yrs",315576e5],["y",315576e5]]);class Duration{constructor(e){Object.defineProperty(this,"offset",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.offset=Duration.parse(e.toLowerCase())}get fromNow(){return this.dateFrom(new Date)}dateFrom(e){return new Date(e.getTime()+this.offset)}static parse(e){let t=0;return e.replace(Duration.kCommaRegex,"").replace(Duration.kAanRegex,"1").replace(Duration.kPatternRegex,((e,r,a)=>(a=g.get(a)??0,t+=Number(r)*a,""))),t}}var d;Object.defineProperty(Duration,"kPatternRegex",{enumerable:!0,configurable:!0,writable:!0,value:/(-?\d*\.?\d+(?:e[-+]?\d+)?)\s*([a-zμ]*)/gi}),Object.defineProperty(Duration,"kCommaRegex",{enumerable:!0,configurable:!0,writable:!0,value:/,/g}),Object.defineProperty(Duration,"kAanRegex",{enumerable:!0,configurable:!0,writable:!0,value:/\ban?\b/gi}),(d=exports.TimeTypes||(exports.TimeTypes={})).Second="second",d.Minute="minute",d.Hour="hour",d.Day="day",d.Week="week",d.Month="month",d.Year="year";const c=[["year",31536e6],["month",2628e6],["week",6048e5],["day",864e5],["hour",36e5],["minute",6e4],["second",1e3]];function addUnit(e,t){return Reflect.has(t,e)?`${e} ${Reflect.get(t,e)}`:`${e} ${t.DEFAULT}`}const m=new Map([["Y",e=>String(e.getFullYear()).slice(2)],["YY",e=>String(e.getFullYear()).slice(2)],["YYY",e=>String(e.getFullYear())],["YYYY",e=>String(e.getFullYear())],["Q",e=>String((e.getMonth()+1)/3)],["M",e=>String(e.getMonth()+1)],["MM",e=>String(e.getMonth()+1).padStart(2,"0")],["MMM",e=>r[e.getMonth()]],["MMMM",e=>r[e.getMonth()]],["D",e=>String(e.getDate())],["DD",e=>String(e.getDate()).padStart(2,"0")],["DDD",e=>String(Math.floor((e.getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5))],["DDDD",e=>String(Math.floor((e.getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5))],["d",e=>{const t=String(e.getDate());return"11"!==t&&t.endsWith("1")?t+"st":"12"!==t&&t.endsWith("2")?t+"nd":"13"!==t&&t.endsWith("3")?t+"rd":t+"th"}],["dd",e=>t[e.getDay()].slice(0,2)],["ddd",e=>t[e.getDay()].slice(0,3)],["dddd",e=>t[e.getDay()]],["X",e=>String(e.valueOf()/1e3)],["x",e=>String(e.valueOf())],["H",e=>String(e.getHours())],["HH",e=>String(e.getHours()).padStart(2,"0")],["h",e=>String(e.getHours()%12||12)],["hh",e=>String(e.getHours()%12||12).padStart(2,"0")],["a",e=>e.getHours()<12?"am":"pm"],["A",e=>e.getHours()<12?"AM":"PM"],["m",e=>String(e.getMinutes())],["mm",e=>String(e.getMinutes()).padStart(2,"0")],["s",e=>String(e.getSeconds())],["ss",e=>String(e.getSeconds()).padStart(2,"0")],["S",e=>String(e.getMilliseconds())],["SS",e=>String(e.getMilliseconds()).padStart(2,"0")],["SSS",e=>String(e.getMilliseconds()).padStart(3,"0")],["T",e=>`${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")} ${e.getHours()<12?"AM":"PM"}`],["t",e=>`${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")}:${String(e.getSeconds()).padStart(2,"0")} ${e.getHours()<12?"am":"pm"}`],["L",e=>`${String(e.getMonth()+1).padStart(2,"0")}/${String(e.getDate()).padStart(2,"0")}/${String(e.getFullYear())}`],["l",e=>`${String(e.getMonth()+1)}/${String(e.getDate()).padStart(2,"0")}/${String(e.getFullYear())}`],["LL",e=>`${r[e.getMonth()]} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())}`],["ll",e=>`${r[e.getMonth()].slice(0,3)} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())}`],["LLL",e=>`${r[e.getMonth()]} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())} ${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")} ${e.getHours()<12?"AM":"PM"}`],["lll",e=>`${r[e.getMonth()].slice(0,3)} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())} ${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")} ${e.getHours()<12?"AM":"PM"}`],["LLLL",e=>`${t[e.getDay()]}, ${r[e.getMonth()]} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())} ${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")} ${e.getHours()<12?"AM":"PM"}`],["llll",e=>`${t[e.getDay()].slice(0,3)} ${r[e.getMonth()].slice(0,3)} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())} ${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")} ${e.getHours()<12?"AM":"PM"}`],["Z",e=>{const t=e.getTimezoneOffset(),r=t>=0,a=Math.abs(t);return`${r?"+":"-"}${String(Math.floor(a/60)).padStart(2,"0")}:${String(a%60).padStart(2,"0")}`}],["ZZ",e=>{const t=e.getTimezoneOffset(),r=t>=0,a=Math.abs(t);return`${r?"+":"-"}${String(Math.floor(a/60)).padStart(2,"0")}:${String(a%60).padStart(2,"0")}`}]]);class Timestamp{constructor(e){Object.defineProperty(this,"pattern",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"template",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.pattern=e,this.template=Timestamp.parse(e)}display(e=new Date){return Timestamp.display(this.template,e)}displayUTC(e){return Timestamp.display(this.template,Timestamp.utc(e))}edit(e){return this.pattern=e,this.template=Timestamp.parse(e),this}toString(){return this.display()}static displayArbitrary(e,t=new Date){return Timestamp.display(Timestamp.parse(e),t)}static displayUTCArbitrary(e,t=new Date){return Timestamp.display(Timestamp.parse(e),Timestamp.utc(t))}static utc(e=new Date){return e=Timestamp.resolveDate(e),new Date(e.valueOf()+6e4*e.getTimezoneOffset())}static display(e,t){let r="";const a=Timestamp.resolveDate(t);for(const{content:t,type:n}of e)r+=t||m.get(n)(a);return r}static parse(e){const t=[];for(let r=0;r<e.length;r++){let n="";const i=e[r],s=a.get(i);if("number"==typeof s){for(n+=i;e[r+1]===i&&n.length<s;)n+=e[++r];t.push({type:n,content:null})}else if("["===i){for(;r+1<e.length&&"]"!==e[r+1];)n+=e[++r];r++,t.push({type:"literal",content:n||"["})}else{for(n+=i;r+1<e.length&&!a.has(e[r+1])&&"["!==e[r+1];)n+=e[++r];t.push({type:"literal",content:n})}}return t}static resolveDate(e){return e instanceof Date?e:new Date(e)}}class TimerManager extends(null){static setTimeout(e,t,...r){const a=setTimeout((()=>{this.storedTimeouts.delete(a),e(...r)}),t);return this.storedTimeouts.add(a),a}static clearTimeout(e){clearTimeout(e),this.storedTimeouts.delete(e)}static setInterval(e,t,...r){const a=setInterval(e,t,...r);return this.storedIntervals.add(a),a}static clearInterval(e){clearInterval(e),this.storedIntervals.delete(e)}static destroy(){for(const e of this.storedTimeouts)clearTimeout(e);for(const e of this.storedIntervals)clearInterval(e);this.storedTimeouts.clear(),this.storedIntervals.clear()}}Object.defineProperty(TimerManager,"storedTimeouts",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(TimerManager,"storedIntervals",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),exports.Cron=Cron,exports.Duration=Duration,exports.DurationFormatter=class DurationFormatter{constructor(e){Object.defineProperty(this,"units",{enumerable:!0,configurable:!0,writable:!0,value:e})}format(e,t=7){const r=[],a=e<0;a&&(e*=-1);for(const[a,n]of c){const i=e/n;if(i<1)continue;const s=Math.floor(i);if(e-=s*n,r.push(addUnit(s,this.units[a])),r.length>=t)break}return`${a?"-":""}${r.join(" ")||addUnit(0,this.units.second)}`}},exports.TimerManager=TimerManager,exports.Timestamp=Timestamp; | ||
//# sourceMappingURL=index.js.map |
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).SapphireTimeUtilities={})}(this,(function(e){"use strict";var t;(t=e.Time||(e.Time={}))[t.Millisecond=1]="Millisecond",t[t.Second=1e3]="Second",t[t.Minute=6e4]="Minute",t[t.Hour=36e5]="Hour",t[t.Day=864e5]="Day",t[t.Month=2628e6]="Month",t[t.Year=31536e6]="Year";const r=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],n=["January","February","March","April","May","June","July","August","September","October","November","December"],a=new Map([["Y",4],["Q",1],["M",4],["D",4],["d",4],["X",1],["x",1],["H",2],["h",2],["a",1],["A",1],["m",2],["s",2],["S",3],["Z",2],["l",4],["L",4],["T",1],["t",1]]),i=/^(?:(\*)|(\d+)(?:-(\d+))?)(?:\/(\d+))?$/,s=/\bh\b|\B\?\B/g,o=[[0,59],[0,23],[1,31],[1,12],[0,6]],l={"@annually":"0 0 1 1 *","@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"},u={jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12,sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6},g=new RegExp(Object.keys(u).join("|"),"g");class d{constructor(e){Object.defineProperty(this,"cron",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"normalized",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"minutes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"hours",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"days",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"months",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"dows",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cron=e.toLowerCase(),this.normalized=d.normalize(this.cron),[this.minutes,this.hours,this.days,this.months,this.dows]=d.parseString(this.normalized)}next(e=new Date,t=!0){if(!this.days.includes(e.getUTCDate())||!this.months.includes(e.getUTCMonth()+1)||!this.dows.includes(e.getUTCDay()))return this.next(new Date(e.getTime()+864e5),!1);if(!t)return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),this.hours[0],this.minutes[0]));const r=new Date(e.getTime()+6e4);for(const t of this.hours)if(!(t<r.getUTCHours()))for(const n of this.minutes)if(!(t===r.getUTCHours()&&n<r.getUTCMinutes()))return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),t,n));return this.next(new Date(e.getTime()+864e5),!1)}static normalize(e){if(Reflect.has(l,e))return Reflect.get(l,e);const t=new Date;return(e=e.split(" ").map(((e,r)=>e.replace(s,(e=>{if("h"===e)return(Math.floor(Math.random()*o[r][1])+o[r][0]).toString();if("?"===e)switch(r){case 0:return t.getUTCMinutes().toString();case 1:return t.getUTCHours().toString();case 2:return t.getUTCDate().toString();case 3:return t.getUTCMonth().toString();case 4:return t.getUTCDay().toString()}return e})))).join(" ")).replace(g,(e=>String(Reflect.get(u,e))))}static parseString(e){const t=e.split(" ");if(5!==t.length)throw new Error("Invalid Cron Provided");return t.map(((e,t)=>d.parsePart(e,t)))}static parsePart(e,t){if(e.includes(",")){const r=[];for(const n of e.split(","))r.push(...d.parsePart(n,t));return[...new Set(r)].sort(((e,t)=>e-t))}const[,r,n,a,s]=i.exec(e);let[l,u]=[parseInt(n,10),parseInt(a,10)];if(r)[l,u]=o[t];else if(!u&&!s)return[l];return[l,u]=[l,u||o[t][1]].sort(((e,t)=>e-t)),g=l,c=u,h=parseInt(s,10)||1,new Array(Math.floor((c-g)/h)+1).fill(0).map(((e,t)=>g+t*h));var g,c,h}}const c=new Map([["nanosecond",1e-6],["nanoseconds",1e-6],["ns",1e-6],["millisecond",1],["milliseconds",1],["ms",1],["second",1e3],["seconds",1e3],["sec",1e3],["secs",1e3],["s",1e3],["minute",6e4],["minutes",6e4],["min",6e4],["mins",6e4],["m",6e4],["hour",36e5],["hours",36e5],["hr",36e5],["hrs",36e5],["h",36e5],["day",864e5],["days",864e5],["d",864e5],["week",6048e5],["weeks",6048e5],["wk",6048e5],["wks",6048e5],["w",6048e5],["month",26298e5],["months",26298e5],["b",26298e5],["mo",26298e5],["year",315576e5],["years",315576e5],["yr",315576e5],["yrs",315576e5],["y",315576e5]]);class h{constructor(e){Object.defineProperty(this,"offset",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.offset=h.parse(e.toLowerCase())}get fromNow(){return this.dateFrom(new Date)}dateFrom(e){return new Date(e.getTime()+this.offset)}static parse(e){let t=0;return e.replace(h.kCommaRegex,"").replace(h.kAanRegex,"1").replace(h.kPatternRegex,((e,r,n)=>(n=c.get(n)??0,t+=Number(r)*n,""))),t}}var p;Object.defineProperty(h,"kPatternRegex",{enumerable:!0,configurable:!0,writable:!0,value:/(-?\d*\.?\d+(?:e[-+]?\d+)?)\s*([a-zμ]*)/gi}),Object.defineProperty(h,"kCommaRegex",{enumerable:!0,configurable:!0,writable:!0,value:/,/g}),Object.defineProperty(h,"kAanRegex",{enumerable:!0,configurable:!0,writable:!0,value:/\ban?\b/gi}),(p=e.TimeTypes||(e.TimeTypes={})).Second="second",p.Minute="minute",p.Hour="hour",p.Day="day",p.Week="week",p.Month="month",p.Year="year";const S=[["year",31536e6],["month",2628e6],["week",6048e5],["day",864e5],["hour",36e5],["minute",6e4],["second",1e3]];function f(e,t){return Reflect.has(t,e)?`${e} ${Reflect.get(t,e)}`:`${e} ${t.DEFAULT}`}const m=new Map([["Y",e=>String(e.getFullYear()).slice(2)],["YY",e=>String(e.getFullYear()).slice(2)],["YYY",e=>String(e.getFullYear())],["YYYY",e=>String(e.getFullYear())],["Q",e=>String((e.getMonth()+1)/3)],["M",e=>String(e.getMonth()+1)],["MM",e=>String(e.getMonth()+1).padStart(2,"0")],["MMM",e=>n[e.getMonth()]],["MMMM",e=>n[e.getMonth()]],["D",e=>String(e.getDate())],["DD",e=>String(e.getDate()).padStart(2,"0")],["DDD",e=>String(Math.floor((e.getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5))],["DDDD",e=>String(Math.floor((e.getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5))],["d",e=>{const t=String(e.getDate());return"11"!==t&&t.endsWith("1")?t+"st":"12"!==t&&t.endsWith("2")?t+"nd":"13"!==t&&t.endsWith("3")?t+"rd":t+"th"}],["dd",e=>r[e.getDay()].slice(0,2)],["ddd",e=>r[e.getDay()].slice(0,3)],["dddd",e=>r[e.getDay()]],["X",e=>String(e.valueOf()/1e3)],["x",e=>String(e.valueOf())],["H",e=>String(e.getHours())],["HH",e=>String(e.getHours()).padStart(2,"0")],["h",e=>String(e.getHours()%12||12)],["hh",e=>String(e.getHours()%12||12).padStart(2,"0")],["a",e=>e.getHours()<12?"am":"pm"],["A",e=>e.getHours()<12?"AM":"PM"],["m",e=>String(e.getMinutes())],["mm",e=>String(e.getMinutes()).padStart(2,"0")],["s",e=>String(e.getSeconds())],["ss",e=>String(e.getSeconds()).padStart(2,"0")],["S",e=>String(e.getMilliseconds())],["SS",e=>String(e.getMilliseconds()).padStart(2,"0")],["SSS",e=>String(e.getMilliseconds()).padStart(3,"0")],["T",e=>`${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")} ${e.getHours()<12?"AM":"PM"}`],["t",e=>`${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")}:${String(e.getSeconds()).padStart(2,"0")} ${e.getHours()<12?"am":"pm"}`],["L",e=>`${String(e.getMonth()+1).padStart(2,"0")}/${String(e.getDate()).padStart(2,"0")}/${String(e.getFullYear())}`],["l",e=>`${String(e.getMonth()+1)}/${String(e.getDate()).padStart(2,"0")}/${String(e.getFullYear())}`],["LL",e=>`${n[e.getMonth()]} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())}`],["ll",e=>`${n[e.getMonth()].slice(0,3)} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())}`],["LLL",e=>`${n[e.getMonth()]} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())} ${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")} ${e.getHours()<12?"AM":"PM"}`],["lll",e=>`${n[e.getMonth()].slice(0,3)} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())} ${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")} ${e.getHours()<12?"AM":"PM"}`],["LLLL",e=>`${r[e.getDay()]}, ${n[e.getMonth()]} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())} ${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")} ${e.getHours()<12?"AM":"PM"}`],["llll",e=>`${r[e.getDay()].slice(0,3)} ${n[e.getMonth()].slice(0,3)} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())} ${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")} ${e.getHours()<12?"AM":"PM"}`],["Z",e=>{const t=e.getTimezoneOffset(),r=t>=0,n=Math.abs(t);return`${r?"+":"-"}${String(Math.floor(n/60)).padStart(2,"0")}:${String(n%60).padStart(2,"0")}`}],["ZZ",e=>{const t=e.getTimezoneOffset(),r=t>=0,n=Math.abs(t);return`${r?"+":"-"}${String(Math.floor(n/60)).padStart(2,"0")}:${String(n%60).padStart(2,"0")}`}]]);class b{constructor(e){Object.defineProperty(this,"pattern",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"template",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.pattern=e,this.template=b.parse(e)}display(e=new Date){return b.display(this.template,e)}displayUTC(e){return b.display(this.template,b.utc(e))}edit(e){return this.pattern=e,this.template=b.parse(e),this}toString(){return this.display()}static displayArbitrary(e,t=new Date){return b.display(b.parse(e),t)}static displayUTCArbitrary(e,t=new Date){return b.display(b.parse(e),b.utc(t))}static utc(e=new Date){return e=b.resolveDate(e),new Date(e.valueOf()+6e4*e.getTimezoneOffset())}static display(e,t){let r="";const n=b.resolveDate(t);for(const{content:t,type:a}of e)r+=t||m.get(a)(n);return r}static parse(e){const t=[];for(let r=0;r<e.length;r++){let n="";const i=e[r],s=a.get(i);if("number"==typeof s){for(n+=i;e[r+1]===i&&n.length<s;)n+=e[++r];t.push({type:n,content:null})}else if("["===i){for(;r+1<e.length&&"]"!==e[r+1];)n+=e[++r];r++,t.push({type:"literal",content:n||"["})}else{for(n+=i;r+1<e.length&&!a.has(e[r+1])&&"["!==e[r+1];)n+=e[++r];t.push({type:"literal",content:n})}}return t}static resolveDate(e){return e instanceof Date?e:new Date(e)}}class y extends(null){static setTimeout(e,t,...r){const n=setTimeout((()=>{this.storedTimeouts.delete(n),e(...r)}),t);return this.storedTimeouts.add(n),n}static clearTimeout(e){clearTimeout(e),this.storedTimeouts.delete(e)}static setInterval(e,t,...r){const n=setInterval(e,t,...r);return this.storedIntervals.add(n),n}static clearInterval(e){clearInterval(e),this.storedIntervals.delete(e)}static destroy(){for(const e of this.storedTimeouts)clearTimeout(e);for(const e of this.storedIntervals)clearInterval(e);this.storedTimeouts.clear(),this.storedIntervals.clear()}}Object.defineProperty(y,"storedTimeouts",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(y,"storedIntervals",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),e.Cron=d,e.Duration=h,e.DurationFormatter=class{constructor(e){Object.defineProperty(this,"units",{enumerable:!0,configurable:!0,writable:!0,value:e})}format(e,t=7){const r=[],n=e<0;n&&(e*=-1);for(const[n,a]of S){const i=e/a;if(i<1)continue;const s=Math.floor(i);if(e-=s*a,r.push(f(s,this.units[n])),r.length>=t)break}return`${n?"-":""}${r.join(" ")||f(0,this.units.second)}`}},e.TimerManager=y,e.Timestamp=b,Object.defineProperty(e,"__esModule",{value:!0})})); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).SapphireTimeUtilities={})}(this,(function(e){"use strict";var t;(t=e.Time||(e.Time={}))[t.Millisecond=1]="Millisecond",t[t.Second=1e3]="Second",t[t.Minute=6e4]="Minute",t[t.Hour=36e5]="Hour",t[t.Day=864e5]="Day",t[t.Month=2628e6]="Month",t[t.Year=31536e6]="Year";const r=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],n=["January","February","March","April","May","June","July","August","September","October","November","December"],a=new Map([["Y",4],["Q",1],["M",4],["D",4],["d",4],["X",1],["x",1],["H",2],["h",2],["a",1],["A",1],["m",2],["s",2],["S",3],["Z",2],["l",4],["L",4],["T",1],["t",1]]),i=/^(?:(\*)|(\d+)(?:-(\d+))?)(?:\/(\d+))?$/,s=/\bh\b|\B\?\B/g,o=[[0,59],[0,23],[1,31],[1,12],[0,6]],l={"@annually":"0 0 1 1 *","@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"},u={jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12,sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6},g=new RegExp(Object.keys(u).join("|"),"g");class Cron{constructor(e){Object.defineProperty(this,"cron",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"normalized",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"minutes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"hours",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"days",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"months",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"dows",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cron=e.toLowerCase(),this.normalized=Cron.normalize(this.cron),[this.minutes,this.hours,this.days,this.months,this.dows]=Cron.parseString(this.normalized)}next(e=new Date,t=!0){if(!this.days.includes(e.getUTCDate())||!this.months.includes(e.getUTCMonth()+1)||!this.dows.includes(e.getUTCDay()))return this.next(new Date(e.getTime()+864e5),!1);if(!t)return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),this.hours[0],this.minutes[0]));const r=new Date(e.getTime()+6e4);for(const t of this.hours)if(!(t<r.getUTCHours()))for(const n of this.minutes)if(!(t===r.getUTCHours()&&n<r.getUTCMinutes()))return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),t,n));return this.next(new Date(e.getTime()+864e5),!1)}static normalize(e){if(Reflect.has(l,e))return Reflect.get(l,e);const t=new Date;return(e=e.split(" ").map(((e,r)=>e.replace(s,(e=>{if("h"===e)return(Math.floor(Math.random()*o[r][1])+o[r][0]).toString();if("?"===e)switch(r){case 0:return t.getUTCMinutes().toString();case 1:return t.getUTCHours().toString();case 2:return t.getUTCDate().toString();case 3:return t.getUTCMonth().toString();case 4:return t.getUTCDay().toString()}return e})))).join(" ")).replace(g,(e=>String(Reflect.get(u,e))))}static parseString(e){const t=e.split(" ");if(5!==t.length)throw new Error("Invalid Cron Provided");return t.map(((e,t)=>Cron.parsePart(e,t)))}static parsePart(e,t){if(e.includes(",")){const r=[];for(const n of e.split(","))r.push(...Cron.parsePart(n,t));return[...new Set(r)].sort(((e,t)=>e-t))}const[,r,n,a,s]=i.exec(e);let[l,u]=[parseInt(n,10),parseInt(a,10)];if(r)[l,u]=o[t];else if(!u&&!s)return[l];return[l,u]=[l,u||o[t][1]].sort(((e,t)=>e-t)),function range(e,t,r){return new Array(Math.floor((t-e)/r)+1).fill(0).map(((t,n)=>e+n*r))}(l,u,parseInt(s,10)||1)}}const d=new Map([["nanosecond",1e-6],["nanoseconds",1e-6],["ns",1e-6],["millisecond",1],["milliseconds",1],["ms",1],["second",1e3],["seconds",1e3],["sec",1e3],["secs",1e3],["s",1e3],["minute",6e4],["minutes",6e4],["min",6e4],["mins",6e4],["m",6e4],["hour",36e5],["hours",36e5],["hr",36e5],["hrs",36e5],["h",36e5],["day",864e5],["days",864e5],["d",864e5],["week",6048e5],["weeks",6048e5],["wk",6048e5],["wks",6048e5],["w",6048e5],["month",26298e5],["months",26298e5],["b",26298e5],["mo",26298e5],["year",315576e5],["years",315576e5],["yr",315576e5],["yrs",315576e5],["y",315576e5]]);class Duration{constructor(e){Object.defineProperty(this,"offset",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.offset=Duration.parse(e.toLowerCase())}get fromNow(){return this.dateFrom(new Date)}dateFrom(e){return new Date(e.getTime()+this.offset)}static parse(e){let t=0;return e.replace(Duration.kCommaRegex,"").replace(Duration.kAanRegex,"1").replace(Duration.kPatternRegex,((e,r,n)=>(n=d.get(n)??0,t+=Number(r)*n,""))),t}}var c;Object.defineProperty(Duration,"kPatternRegex",{enumerable:!0,configurable:!0,writable:!0,value:/(-?\d*\.?\d+(?:e[-+]?\d+)?)\s*([a-zμ]*)/gi}),Object.defineProperty(Duration,"kCommaRegex",{enumerable:!0,configurable:!0,writable:!0,value:/,/g}),Object.defineProperty(Duration,"kAanRegex",{enumerable:!0,configurable:!0,writable:!0,value:/\ban?\b/gi}),(c=e.TimeTypes||(e.TimeTypes={})).Second="second",c.Minute="minute",c.Hour="hour",c.Day="day",c.Week="week",c.Month="month",c.Year="year";const m=[["year",31536e6],["month",2628e6],["week",6048e5],["day",864e5],["hour",36e5],["minute",6e4],["second",1e3]];function addUnit(e,t){return Reflect.has(t,e)?`${e} ${Reflect.get(t,e)}`:`${e} ${t.DEFAULT}`}const p=new Map([["Y",e=>String(e.getFullYear()).slice(2)],["YY",e=>String(e.getFullYear()).slice(2)],["YYY",e=>String(e.getFullYear())],["YYYY",e=>String(e.getFullYear())],["Q",e=>String((e.getMonth()+1)/3)],["M",e=>String(e.getMonth()+1)],["MM",e=>String(e.getMonth()+1).padStart(2,"0")],["MMM",e=>n[e.getMonth()]],["MMMM",e=>n[e.getMonth()]],["D",e=>String(e.getDate())],["DD",e=>String(e.getDate()).padStart(2,"0")],["DDD",e=>String(Math.floor((e.getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5))],["DDDD",e=>String(Math.floor((e.getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5))],["d",e=>{const t=String(e.getDate());return"11"!==t&&t.endsWith("1")?t+"st":"12"!==t&&t.endsWith("2")?t+"nd":"13"!==t&&t.endsWith("3")?t+"rd":t+"th"}],["dd",e=>r[e.getDay()].slice(0,2)],["ddd",e=>r[e.getDay()].slice(0,3)],["dddd",e=>r[e.getDay()]],["X",e=>String(e.valueOf()/1e3)],["x",e=>String(e.valueOf())],["H",e=>String(e.getHours())],["HH",e=>String(e.getHours()).padStart(2,"0")],["h",e=>String(e.getHours()%12||12)],["hh",e=>String(e.getHours()%12||12).padStart(2,"0")],["a",e=>e.getHours()<12?"am":"pm"],["A",e=>e.getHours()<12?"AM":"PM"],["m",e=>String(e.getMinutes())],["mm",e=>String(e.getMinutes()).padStart(2,"0")],["s",e=>String(e.getSeconds())],["ss",e=>String(e.getSeconds()).padStart(2,"0")],["S",e=>String(e.getMilliseconds())],["SS",e=>String(e.getMilliseconds()).padStart(2,"0")],["SSS",e=>String(e.getMilliseconds()).padStart(3,"0")],["T",e=>`${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")} ${e.getHours()<12?"AM":"PM"}`],["t",e=>`${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")}:${String(e.getSeconds()).padStart(2,"0")} ${e.getHours()<12?"am":"pm"}`],["L",e=>`${String(e.getMonth()+1).padStart(2,"0")}/${String(e.getDate()).padStart(2,"0")}/${String(e.getFullYear())}`],["l",e=>`${String(e.getMonth()+1)}/${String(e.getDate()).padStart(2,"0")}/${String(e.getFullYear())}`],["LL",e=>`${n[e.getMonth()]} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())}`],["ll",e=>`${n[e.getMonth()].slice(0,3)} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())}`],["LLL",e=>`${n[e.getMonth()]} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())} ${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")} ${e.getHours()<12?"AM":"PM"}`],["lll",e=>`${n[e.getMonth()].slice(0,3)} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())} ${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")} ${e.getHours()<12?"AM":"PM"}`],["LLLL",e=>`${r[e.getDay()]}, ${n[e.getMonth()]} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())} ${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")} ${e.getHours()<12?"AM":"PM"}`],["llll",e=>`${r[e.getDay()].slice(0,3)} ${n[e.getMonth()].slice(0,3)} ${String(e.getDate()).padStart(2,"0")}, ${String(e.getFullYear())} ${String(e.getHours()%12||12)}:${String(e.getMinutes()).padStart(2,"0")} ${e.getHours()<12?"AM":"PM"}`],["Z",e=>{const t=e.getTimezoneOffset(),r=t>=0,n=Math.abs(t);return`${r?"+":"-"}${String(Math.floor(n/60)).padStart(2,"0")}:${String(n%60).padStart(2,"0")}`}],["ZZ",e=>{const t=e.getTimezoneOffset(),r=t>=0,n=Math.abs(t);return`${r?"+":"-"}${String(Math.floor(n/60)).padStart(2,"0")}:${String(n%60).padStart(2,"0")}`}]]);class Timestamp{constructor(e){Object.defineProperty(this,"pattern",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"template",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.pattern=e,this.template=Timestamp.parse(e)}display(e=new Date){return Timestamp.display(this.template,e)}displayUTC(e){return Timestamp.display(this.template,Timestamp.utc(e))}edit(e){return this.pattern=e,this.template=Timestamp.parse(e),this}toString(){return this.display()}static displayArbitrary(e,t=new Date){return Timestamp.display(Timestamp.parse(e),t)}static displayUTCArbitrary(e,t=new Date){return Timestamp.display(Timestamp.parse(e),Timestamp.utc(t))}static utc(e=new Date){return e=Timestamp.resolveDate(e),new Date(e.valueOf()+6e4*e.getTimezoneOffset())}static display(e,t){let r="";const n=Timestamp.resolveDate(t);for(const{content:t,type:a}of e)r+=t||p.get(a)(n);return r}static parse(e){const t=[];for(let r=0;r<e.length;r++){let n="";const i=e[r],s=a.get(i);if("number"==typeof s){for(n+=i;e[r+1]===i&&n.length<s;)n+=e[++r];t.push({type:n,content:null})}else if("["===i){for(;r+1<e.length&&"]"!==e[r+1];)n+=e[++r];r++,t.push({type:"literal",content:n||"["})}else{for(n+=i;r+1<e.length&&!a.has(e[r+1])&&"["!==e[r+1];)n+=e[++r];t.push({type:"literal",content:n})}}return t}static resolveDate(e){return e instanceof Date?e:new Date(e)}}class TimerManager extends(null){static setTimeout(e,t,...r){const n=setTimeout((()=>{this.storedTimeouts.delete(n),e(...r)}),t);return this.storedTimeouts.add(n),n}static clearTimeout(e){clearTimeout(e),this.storedTimeouts.delete(e)}static setInterval(e,t,...r){const n=setInterval(e,t,...r);return this.storedIntervals.add(n),n}static clearInterval(e){clearInterval(e),this.storedIntervals.delete(e)}static destroy(){for(const e of this.storedTimeouts)clearTimeout(e);for(const e of this.storedIntervals)clearInterval(e);this.storedTimeouts.clear(),this.storedIntervals.clear()}}Object.defineProperty(TimerManager,"storedTimeouts",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(TimerManager,"storedIntervals",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),e.Cron=Cron,e.Duration=Duration,e.DurationFormatter=class DurationFormatter{constructor(e){Object.defineProperty(this,"units",{enumerable:!0,configurable:!0,writable:!0,value:e})}format(e,t=7){const r=[],n=e<0;n&&(e*=-1);for(const[n,a]of m){const i=e/a;if(i<1)continue;const s=Math.floor(i);if(e-=s*a,r.push(addUnit(s,this.units[n])),r.length>=t)break}return`${n?"-":""}${r.join(" ")||addUnit(0,this.units.second)}`}},e.TimerManager=TimerManager,e.Timestamp=Timestamp,Object.defineProperty(e,"__esModule",{value:!0})})); | ||
//# sourceMappingURL=index.umd.js.map |
{ | ||
"name": "@sapphire/time-utilities", | ||
"version": "1.1.0", | ||
"version": "1.1.1", | ||
"description": "A time utility library for JavaScript.", | ||
@@ -53,5 +53,5 @@ "author": "@sapphire", | ||
"dependencies": { | ||
"@sapphire/utilities": "^1.1.0" | ||
"@sapphire/utilities": "^1.1.1" | ||
}, | ||
"gitHead": "f01bcc9a22f9cad5a368bf851e6fd40e08da926b" | ||
"gitHead": "3b9f4075d719fa84009524262081845dcda6199b" | ||
} |
@@ -50,3 +50,3 @@ <div align="center"> | ||
For the full API documentation please refer to the TypeDoc generated [documentation](https://sapphire-project.github.io/utilities/modules/_sapphire_time-utilities.html). | ||
For the full API documentation please refer to the TypeDoc generated [documentation](https://sapphire-project.github.io/utilities/modules/_sapphire_time_utilities.html). | ||
@@ -53,0 +53,0 @@ ## Buy us some doughnuts |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
180386
429
1027
Updated@sapphire/utilities@^1.1.1