@bereasoftware/time-guard 2.0.3 → 2.0.4
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/README.en.md +10 -2
- package/README.md +17 -7
- package/dist/{calendars.es.js → calendars/index.es.js} +1 -1
- package/dist/full.cjs +1 -1
- package/dist/full.es.js +2 -2
- package/dist/{locales.es.js → locales/index.es.js} +1 -1
- package/dist/{plugin-advanced-format.es.js → plugins/advanced-format.es.js} +1 -1
- package/dist/{plugin-duration.es.js → plugins/duration.es.js} +1 -1
- package/dist/{plugin-relative-time.es.js → plugins/relative-time.es.js} +1 -1
- package/dist/time-guard.cjs +1 -1
- package/dist/time-guard.es.js +2 -2
- package/dist/time-guard.iife.js +1 -1
- package/dist/time-guard.umd.js +1 -1
- package/dist/types/time-guard.d.ts +1130 -1
- package/package.json +22 -21
- package/dist/types/calendars.d.ts +0 -1
- package/dist/types/locales.d.ts +0 -1
- package/dist/types/plugin-advanced-format.d.ts +0 -1
- package/dist/types/plugin-duration.d.ts +0 -1
- package/dist/types/plugin-relative-time.d.ts +0 -1
- package/dist/types/src/adapters/temporal.adapter.d.ts +0 -60
- package/dist/types/src/calendars/calendar.manager.d.ts +0 -52
- package/dist/types/src/calendars/index.d.ts +0 -81
- package/dist/types/src/formatters/date.formatter.d.ts +0 -21
- package/dist/types/src/full.d.ts +0 -8
- package/dist/types/src/index.d.ts +0 -23
- package/dist/types/src/locales/additional.locale.d.ts +0 -5
- package/dist/types/src/locales/asian.locale.d.ts +0 -9
- package/dist/types/src/locales/english.locale.d.ts +0 -6
- package/dist/types/src/locales/european.locale.d.ts +0 -9
- package/dist/types/src/locales/index.d.ts +0 -17
- package/dist/types/src/locales/locale.manager.d.ts +0 -42
- package/dist/types/src/locales/locales-data.d.ts +0 -17
- package/dist/types/src/locales/middle-eastern.locale.d.ts +0 -5
- package/dist/types/src/locales/nordic.locale.d.ts +0 -6
- package/dist/types/src/locales/romance.locale.d.ts +0 -7
- package/dist/types/src/locales/slavic.locale.d.ts +0 -6
- package/dist/types/src/locales/spanish.locale.d.ts +0 -5
- package/dist/types/src/plugins/advanced-format/index.d.ts +0 -47
- package/dist/types/src/plugins/duration/index.d.ts +0 -107
- package/dist/types/src/plugins/duration/types.d.ts +0 -85
- package/dist/types/src/plugins/index.d.ts +0 -10
- package/dist/types/src/plugins/manager.d.ts +0 -58
- package/dist/types/src/plugins/relative-time/index.d.ts +0 -39
- package/dist/types/src/plugins/relative-time/types.d.ts +0 -27
- package/dist/types/src/polyfill-loader.d.ts +0 -5
- package/dist/types/src/time-guard.d.ts +0 -154
- package/dist/types/src/types/index.d.ts +0 -301
- /package/dist/{calendars.cjs → calendars/index.cjs} +0 -0
- /package/dist/{locales.cjs → locales/index.cjs} +0 -0
- /package/dist/{plugin-advanced-format.cjs → plugins/advanced-format.cjs} +0 -0
- /package/dist/{plugin-duration.cjs → plugins/duration.cjs} +0 -0
- /package/dist/{plugin-relative-time.cjs → plugins/relative-time.cjs} +0 -0
package/dist/time-guard.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.BereasoftTimeGuard={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=null;function n(){if(t)return t;let e=globalThis.Temporal;if(!e)throw Error(`Temporal API not loaded. Make sure @js-temporal/polyfill is imported in your app.`);return t=e,e}var r=class{static parseToPlainDateTime(e){let t=n();return this.isPlainDateTime(e)?e:this.isZonedDateTime(e)?e.toPlainDateTime():this.isPlainDate(e)?e.toPlainDateTime({hour:0,minute:0,second:0,millisecond:0}):this.isPlainTime(e)?t.Now.plainDateTimeISO().with(e):typeof e==`object`&&e&&`getTime`in e&&typeof e.getTime==`function`?this.fromDate(e):typeof e==`number`?this.fromUnix(e):typeof e==`string`?this.parseISOString(e):typeof e==`object`&&e?this.fromObject(e):t.Now.plainDateTimeISO()}static fromDate(e){let t=n(),[r,i]=e.toISOString().split(`T`);return t.PlainDateTime.from(r+`T`+i.slice(0,-1))}static fromUnix(e){return this.fromDate(new Date(e))}static parseISOString(e){let t=n();try{if(e.includes(`T`)||/ \d{2}:\d{2}/.test(e)){let n=e.replace(` `,`T`);return t.PlainDateTime.from(n)}return t.PlainDate.from(e).toPlainDateTime({hour:0})}catch{return t.Now.plainDateTimeISO()}}static fromObject(e){let t=n(),r=e.year||t.Now.plainDateISO().year,i=e.month||1,a=e.day||1,o=e.hour||0,s=e.minute||0,c=e.second||0,l=e.millisecond||0;return t.PlainDateTime.from({year:r,month:i,day:a,hour:o,minute:s,second:c,millisecond:l})}static toDate(e){let t=this.toPlainDateTime(e);return new Date(t.toString())}static toUnix(e){let t=this.toPlainDateTime(e);return Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond)}static toISOString(e){return this.toPlainDateTime(e).toString()+`Z`}static toPlainDateTime(e){return this.isPlainDateTime(e)?e:e.toPlainDateTime()}static isPlainDateTime(e){return typeof e==`object`&&!!e&&`year`in e&&`month`in e&&`day`in e&&`hour`in e}static isZonedDateTime(e){return typeof e==`object`&&!!e&&`timeZone`in e}static isPlainDate(e){return typeof e==`object`&&!!e&&`year`in e&&`month`in e&&`day`in e&&!(`hour`in e)&&`toPlainDateTime`in e}static isPlainTime(e){return typeof e==`object`&&!!e&&`hour`in e&&!(`year`in e)}static now(){return n().Now.plainDateTimeISO()}static nowInTimezone(e){return n().Now.zonedDateTimeISO(e)}},i={name:`en`,months:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],monthsShort:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],weekdays:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],weekdaysShort:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],weekdaysMin:[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],meridiem:{am:`AM`,pm:`PM`},formats:{iso:`YYYY-MM-DDTHH:mm:ss.SSSZ`,date:`YYYY-MM-DD`,time:`HH:mm:ss`,datetime:`YYYY-MM-DD HH:mm:ss`,rfc2822:`ddd, DD MMM YYYY HH:mm:ss Z`}},a={name:`es`,months:[`Enero`,`Febrero`,`Marzo`,`Abril`,`Mayo`,`Junio`,`Julio`,`Agosto`,`Septiembre`,`Octubre`,`Noviembre`,`Diciembre`],monthsShort:[`Ene`,`Feb`,`Mar`,`Abr`,`May`,`Jun`,`Jul`,`Ago`,`Sep`,`Oct`,`Nov`,`Dic`],weekdays:[`Domingo`,`Lunes`,`Martes`,`Miércoles`,`Jueves`,`Viernes`,`Sábado`],weekdaysShort:[`Dom`,`Lun`,`Mar`,`Mié`,`Jue`,`Vie`,`Sáb`],weekdaysMin:[`Do`,`Lu`,`Ma`,`Mi`,`Ju`,`Vi`,`Sa`],meridiem:{am:`AM`,pm:`PM`},formats:{iso:`YYYY-MM-DDTHH:mm:ss.SSSZ`,date:`DD/MM/YYYY`,time:`HH:mm:ss`,datetime:`DD/MM/YYYY HH:mm:ss`,rfc2822:`ddd, DD MMM YYYY HH:mm:ss Z`}},o=class e{static instance;locales=new Map;currentLocale=`en`;static getInstance(){return e.instance||=new e,e.instance}constructor(){this.locales.set(`en`,i),this.locales.set(`es`,a)}setLocale(e,t){t&&this.locales.set(e.toLowerCase(),t),this.currentLocale=e.toLowerCase()}getLocale(e){let t=(e||this.currentLocale).toLowerCase();return this.locales.get(t)||this.locales.get(`en`)||i}listLocales(){return Array.from(this.locales.keys())}getCurrentLocale(){return this.currentLocale}loadLocales(e){Object.entries(e).forEach(([e,t])=>{this.locales.set(e.toLowerCase(),t)})}},s=class{localeManager;constructor(){this.localeManager=o.getInstance()}format(e,t,n){let r=this.localeManager.getLocale(n),i=[],a=t.replace(/\[([^\]]+)\]/g,(e,t)=>(i.push(t),`~${i.length-1}~`));a=a.replace(/"([^"]*)"/g,(e,t)=>(i.push(t),`~${i.length-1}~`));let o=a.replace(/Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|SSS/g,t=>{switch(t){case`YYYY`:return String(e.year).padStart(4,`0`);case`YY`:return String(e.year).slice(-2);case`Y`:return String(e.year);case`MMMM`:return r.months[e.month-1];case`MMM`:return r.monthsShort[e.month-1];case`MM`:return String(e.month).padStart(2,`0`);case`M`:return String(e.month);case`DD`:return String(e.day).padStart(2,`0`);case`D`:return String(e.day);case`dddd`:return r.weekdays[e.dayOfWeek%7];case`ddd`:return r.weekdaysShort[e.dayOfWeek%7];case`dd`:return r.weekdaysMin[e.dayOfWeek%7];case`d`:return String(e.dayOfWeek);case`HH`:return String(e.hour).padStart(2,`0`);case`H`:return String(e.hour);case`hh`:return String(e.hour%12||12).padStart(2,`0`);case`h`:return String(e.hour%12||12);case`mm`:return String(e.minute).padStart(2,`0`);case`m`:return String(e.minute);case`ss`:return String(e.second).padStart(2,`0`);case`s`:return String(e.second);case`SSS`:return String(e.millisecond).padStart(3,`0`);case`a`:case`A`:let n=r.meridiem||{am:`am`,pm:`pm`},i=e.hour>=12?n.pm:n.am;return t===`a`?i.toLowerCase():i.toUpperCase();default:return t}});return i.forEach((e,t)=>{o=o.replace(`~${t}~`,e)}),o}getPreset(e){let t={iso:`YYYY-MM-DDTHH:mm:ss.SSSZ`,date:`YYYY-MM-DD`,time:`HH:mm:ss`,datetime:`YYYY-MM-DD HH:mm:ss`,rfc2822:`ddd, DD MMM YYYY HH:mm:ss Z`,rfc3339:`YYYY-MM-DDTHH:mm:ssZ`,utc:`YYYY-MM-DDTHH:mm:ss[Z]`};return t[e]||t.iso}formatPreset(e,t,n){let r=this.getPreset(t);return this.format(e,r,n)}},c=class e{temporal;config;formatterInstance;constructor(e,t){if(this.formatterInstance=new s,this.config={locale:t?.locale||`en`,timezone:t?.timezone||`UTC`,strict:t?.strict??!1},this.temporal=r.parseToPlainDateTime(e),this.config.timezone&&this.config.timezone!==`UTC`)try{this.temporal=this.temporal.toZonedDateTime(this.config.timezone)}catch{}}static now(t){return new e(void 0,t)}static from(t,n){return new e(t,n)}static fromTemporal(t,n){let r=new e(void 0,n);return r.temporal=t,r}toTemporal(){return this.temporal}toDate(){return r.toDate(this.temporal)}toISOString(){return r.toISOString(this.temporal)}valueOf(){return r.toUnix(this.temporal)}unix(){return Math.floor(this.valueOf()/1e3)}toJSON(){return this.toISOString()}toString(){return this.format(`YYYY-MM-DD HH:mm:ss`)}locale(e){if(e===void 0)return this.config.locale;let t=this.clone();return t.config.locale=e,t}timezone(e){if(e===void 0)return this.config.timezone;let t=this.clone();t.config.timezone=e;try{t.temporal=r.toPlainDateTime(t.temporal).toZonedDateTime(e)}catch{}return t}format(e){let t=r.toPlainDateTime(this.temporal),n=[`iso`,`date`,`time`,`datetime`,`rfc2822`,`rfc3339`,`utc`].includes(e)?this.formatterInstance.getPreset(e):e;return this.formatterInstance.format(t,n,this.config.locale)}get(e){let t=r.toPlainDateTime(this.temporal);return e===`week`?t.weekOfYear:t[{year:`year`,month:`month`,week:`year`,day:`day`,hour:`hour`,minute:`minute`,second:`second`,millisecond:`millisecond`,microsecond:`microsecond`,nanosecond:`nanosecond`}[e]]}add(t){let n=r.toPlainDateTime(this.temporal),i={};return Object.entries(t).forEach(([e,t])=>{t!==void 0&&t!==0&&(i[e+`s`]=t)}),n=n.add(i),e.fromTemporal(n,this.config)}subtract(e){let t={};return Object.entries(e).forEach(([e,n])=>{t[e]=n?-n:0}),this.add(t)}diff(e,t=`millisecond`){let n=r.toPlainDateTime(this.temporal),i=r.toPlainDateTime(e.temporal),a={year:`years`,month:`months`,week:`weeks`,day:`days`,hour:`hours`,minute:`minutes`,second:`seconds`,millisecond:`milliseconds`,microsecond:`microseconds`,nanosecond:`nanoseconds`},o=n.since(i),s=a[t];return Math.round(o[s]||0)}isBefore(e){let t=r.toPlainDateTime(this.temporal),n=r.toPlainDateTime(e.temporal);return t.compare(n)<0}isAfter(e){let t=r.toPlainDateTime(this.temporal),n=r.toPlainDateTime(e.temporal);return t.compare(n)>0}isSame(e,t){if(!t)return r.toPlainDateTime(this.temporal).compare(r.toPlainDateTime(e.temporal))===0;let n=r.toPlainDateTime(this.temporal),i=r.toPlainDateTime(e.temporal);switch(t){case`year`:return n.year===i.year;case`month`:return n.year===i.year&&n.month===i.month;case`day`:return n.year===i.year&&n.month===i.month&&n.day===i.day;case`hour`:return n.year===i.year&&n.month===i.month&&n.day===i.day&&n.hour===i.hour;case`minute`:return n.year===i.year&&n.month===i.month&&n.day===i.day&&n.hour===i.hour&&n.minute===i.minute;case`second`:return n.year===i.year&&n.month===i.month&&n.day===i.day&&n.hour===i.hour&&n.minute===i.minute&&n.second===i.second;default:return!1}}isBetween(e,t,n,i=`[]`){let a=r.toPlainDateTime(this.temporal),o=r.toPlainDateTime(e.temporal),s=r.toPlainDateTime(t.temporal),c=!0,l=!0;if(n){let e=this.clone().startOf(n),t=this.clone().endOf(n),i=r.toPlainDateTime(e.temporal),a=r.toPlainDateTime(t.temporal);c=i.compare(o)>=0,l=a.compare(s)<=0}else c=a.compare(o)>=0,l=a.compare(s)<=0;let u=i[0]===`[`,d=i[1]===`]`;return(u?c:a.compare(o)>0)&&(d?l:a.compare(s)<0)}clone(){return new e(this.toDate(),this.config)}startOf(t){let n=r.toPlainDateTime(this.temporal),i={};switch(t){case`year`:i.month=1,i.day=1,i.hour=0,i.minute=0,i.second=0,i.millisecond=0;break;case`month`:i.day=1,i.hour=0,i.minute=0,i.second=0,i.millisecond=0;break;case`week`:case`day`:i.hour=0,i.minute=0,i.second=0,i.millisecond=0;break;case`hour`:i.minute=0,i.second=0,i.millisecond=0;break;case`minute`:i.second=0,i.millisecond=0;break;case`second`:i.millisecond=0;break}let a=n.with(i);return e.fromTemporal(a,this.config)}endOf(e){return this.startOf(e).add({[e]:1}).subtract({millisecond:1})}set(t){let n=r.toPlainDateTime(this.temporal).with(t);return e.fromTemporal(n,this.config)}year(){return r.toPlainDateTime(this.temporal).year}month(){return r.toPlainDateTime(this.temporal).month}day(){return r.toPlainDateTime(this.temporal).day}hour(){return r.toPlainDateTime(this.temporal).hour}minute(){return r.toPlainDateTime(this.temporal).minute}second(){return r.toPlainDateTime(this.temporal).second}millisecond(){return r.toPlainDateTime(this.temporal).millisecond}dayOfWeek(){return r.toPlainDateTime(this.temporal).dayOfWeek}dayOfYear(){return r.toPlainDateTime(this.temporal).dayOfYear}weekOfYear(){return r.toPlainDateTime(this.temporal).weekOfYear}daysInMonth(){return r.toPlainDateTime(this.temporal).add({months:1}).with({day:1}).subtract({days:1}).day}daysInYear(){let e=this.year();return e%4==0&&e%100!=0||e%400==0?366:365}inLeapYear(){let e=r.toPlainDateTime(this.temporal).year;return e%4==0&&e%100!=0||e%400==0}until(e){let t=r.toPlainDateTime(this.temporal),n=r.toPlainDateTime(e.temporal);try{let e=n.since(t);return{years:Math.floor(e.years||0),months:Math.floor(e.months||0),days:Math.floor(e.days||0),hours:Math.floor(e.hours||0),minutes:Math.floor(e.minutes||0),seconds:Math.floor(e.seconds||0),milliseconds:Math.floor(e.milliseconds||0)}}catch{return{years:0,months:0,days:0,hours:0,minutes:0,seconds:0,milliseconds:0}}}round(e={}){let{smallestUnit:t=`millisecond`,roundingMode:n=`halfExpand`}=e,i=r.toPlainDateTime(this.temporal),a={year:i.year,month:i.month,day:i.day,hour:i.hour,minute:i.minute,second:i.second,millisecond:i.millisecond,microsecond:i.microsecond||0,nanosecond:i.nanosecond||0,week:0},o=[`year`,`month`,`day`,`hour`,`minute`,`second`,`millisecond`,`microsecond`,`nanosecond`],s=o.indexOf(t);if(s===-1)return this.clone();let c={};for(let e=0;e<s;e++){let t=o[e];c[t]=a[t]}let l=o[s],u=a[l];s+1<o.length&&((e,t)=>{switch(e){case`ceil`:return t>0;case`floor`:case`trunc`:return!1;case`halfExpand`:case`halfFloor`:case`halfCeil`:return t>=5;case`expand`:return t>0;default:return t>=5}})(n,a[o[s+1]])&&(u+=1),c[l]=u;for(let e=s+1;e<o.length;e++)c[o[e]]=0;return this.set(c)}toPlainDate(){let e=r.toPlainDateTime(this.temporal);return{year:e.year,month:e.month,day:e.day,dayOfWeek:e.dayOfWeek}}toPlainTime(){let e=r.toPlainDateTime(this.temporal);return{hour:e.hour,minute:e.minute,second:e.second,millisecond:e.millisecond}}withDate(e,t,n){return this.set({year:e,month:t,day:n})}withTime(e,t=0,n=0,r=0){return this.set({hour:e,minute:t,second:n,millisecond:r})}getOffset(){return this.temporal?.offset&&this.temporal.offset||`Z`}getOffsetNanoseconds(){return this.temporal?.offsetNanoseconds&&this.temporal.offsetNanoseconds||0}getTimeZoneId(){return this.temporal?.timeZoneId&&this.temporal.timeZoneId||null}startOfDay(){return this.startOf(`day`)}endOfDay(){return this.endOf(`day`)}since(e){let t=r.toPlainDateTime(this.temporal),n=r.toPlainDateTime(e.temporal);try{let e=t.since(n);return{years:Math.floor(e.years||0),months:Math.floor(e.months||0),days:Math.floor(e.days||0),hours:Math.floor(e.hours||0),minutes:Math.floor(e.minutes||0),seconds:Math.floor(e.seconds||0),milliseconds:Math.floor(e.milliseconds||0)}}catch{return{years:0,months:0,days:0,hours:0,minutes:0,seconds:0,milliseconds:0}}}toDurationString(t){let n=t?this.until(t):this.until(e.now()),r=[];n.years&&r.push(`${n.years}Y`),n.months&&r.push(`${n.months}M`),n.days&&r.push(`${n.days}D`);let i=[];n.hours&&i.push(`${n.hours}H`),n.minutes&&i.push(`${n.minutes}M`),n.seconds&&i.push(`${n.seconds}S`);let a=`P${r.join(``)}${i.length>0?`T`+i.join(``):``}`;return a===`P`?`PT0S`:a}isPast(){return this.isBefore(e.now())}isFuture(){return this.isAfter(e.now())}isToday(){return this.isSame(e.now(),`day`)}isTomorrow(){return this.isSame(e.now().add({day:1}),`day`)}isYesterday(){return this.isSame(e.now().subtract({day:1}),`day`)}},l=class{id=`gregory`;name=`Gregorian Calendar`;locale=`en`;monthNames=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`];monthNamesShort=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`];weekdayNames=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`];weekdayNamesShort=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];getMonthName(e,t=!1){return(t?this.monthNamesShort:this.monthNames)[Math.max(0,Math.min(11,e-1))]}getWeekdayName(e,t=!1){return(t?this.weekdayNamesShort:this.weekdayNames)[Math.max(0,Math.min(6,e-1))]}isLeapYear(e){return e%4==0&&e%100!=0||e%400==0}daysInMonth(e,t){return t===2&&this.isLeapYear(e)?29:[31,28,31,30,31,30,31,31,30,31,30,31][Math.max(0,Math.min(11,t-1))]}daysInYear(e){return this.isLeapYear(e)?366:365}},u=class e{static instance;calendars=new Map;defaultCalendar=`gregory`;constructor(){this.register(new l)}static getInstance(){return e.instance||=new e,e.instance}register(e){this.calendars.set(e.id,e)}get(e){return this.calendars.get(e)}list(){return Array.from(this.calendars.keys())}setDefault(e){this.calendars.has(e)&&(this.defaultCalendar=e)}getDefault(){let e=this.calendars.get(this.defaultCalendar);if(!e)throw Error(`Default calendar '${this.defaultCalendar}' not found`);return e}},d=u.getInstance(),f=class e{static instance;plugins=new Map;static getInstance(){return e.instance||=new e,e.instance}static use(t,n,r){e.getInstance().register(t,n,r)}static useMultiple(t,n,r){let i=e.getInstance();t.forEach(e=>i.register(e,n,r))}static getPlugin(t){return e.getInstance().plugins.get(t)}static hasPlugin(t){return e.getInstance().plugins.has(t)}static listPlugins(){let t=e.getInstance();return Array.from(t.plugins.keys())}static unuse(t){return e.getInstance().plugins.delete(t)}static clear(){e.getInstance().plugins.clear()}register(e,t,n){if(this.plugins.has(e.name)){console.warn(`Plugin "${e.name}" is already registered. Skipping...`);return}try{e.install(t,n),this.plugins.set(e.name,e),console.debug(`Plugin "${e.name}" v${e.version} registered successfully`)}catch(t){throw console.error(`Failed to register plugin "${e.name}":`,t),Error(`Failed to register plugin "${e.name}": ${t instanceof Error?t.message:String(t)}`)}}};function p(e,t){return new c(e,t)}e.CalendarManager=u,e.DateFormatter=s,e.EN_LOCALE=i,e.ES_LOCALE=a,e.GregorianCalendar=l,e.LocaleManager=o,e.PluginManager=f,e.TemporalAdapter=r,e.TimeGuard=c,e.calendarManager=d,e.timeGuard=p,e.version=`2.0.3`});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.BereasoftTimeGuard={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=null;function n(){if(t)return t;let e=globalThis.Temporal;if(!e)throw Error(`Temporal API not loaded. Make sure @js-temporal/polyfill is imported in your app.`);return t=e,e}var r=class{static parseToPlainDateTime(e){let t=n();return this.isPlainDateTime(e)?e:this.isZonedDateTime(e)?e.toPlainDateTime():this.isPlainDate(e)?e.toPlainDateTime({hour:0,minute:0,second:0,millisecond:0}):this.isPlainTime(e)?t.Now.plainDateTimeISO().with(e):typeof e==`object`&&e&&`getTime`in e&&typeof e.getTime==`function`?this.fromDate(e):typeof e==`number`?this.fromUnix(e):typeof e==`string`?this.parseISOString(e):typeof e==`object`&&e?this.fromObject(e):t.Now.plainDateTimeISO()}static fromDate(e){let t=n(),[r,i]=e.toISOString().split(`T`);return t.PlainDateTime.from(r+`T`+i.slice(0,-1))}static fromUnix(e){return this.fromDate(new Date(e))}static parseISOString(e){let t=n();try{if(e.includes(`T`)||/ \d{2}:\d{2}/.test(e)){let n=e.replace(` `,`T`);return t.PlainDateTime.from(n)}return t.PlainDate.from(e).toPlainDateTime({hour:0})}catch{return t.Now.plainDateTimeISO()}}static fromObject(e){let t=n(),r=e.year||t.Now.plainDateISO().year,i=e.month||1,a=e.day||1,o=e.hour||0,s=e.minute||0,c=e.second||0,l=e.millisecond||0;return t.PlainDateTime.from({year:r,month:i,day:a,hour:o,minute:s,second:c,millisecond:l})}static toDate(e){let t=this.toPlainDateTime(e);return new Date(t.toString())}static toUnix(e){let t=this.toPlainDateTime(e);return Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond)}static toISOString(e){return this.toPlainDateTime(e).toString()+`Z`}static toPlainDateTime(e){return this.isPlainDateTime(e)?e:e.toPlainDateTime()}static isPlainDateTime(e){return typeof e==`object`&&!!e&&`year`in e&&`month`in e&&`day`in e&&`hour`in e}static isZonedDateTime(e){return typeof e==`object`&&!!e&&`timeZone`in e}static isPlainDate(e){return typeof e==`object`&&!!e&&`year`in e&&`month`in e&&`day`in e&&!(`hour`in e)&&`toPlainDateTime`in e}static isPlainTime(e){return typeof e==`object`&&!!e&&`hour`in e&&!(`year`in e)}static now(){return n().Now.plainDateTimeISO()}static nowInTimezone(e){return n().Now.zonedDateTimeISO(e)}},i={name:`en`,months:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],monthsShort:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],weekdays:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],weekdaysShort:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],weekdaysMin:[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],meridiem:{am:`AM`,pm:`PM`},formats:{iso:`YYYY-MM-DDTHH:mm:ss.SSSZ`,date:`YYYY-MM-DD`,time:`HH:mm:ss`,datetime:`YYYY-MM-DD HH:mm:ss`,rfc2822:`ddd, DD MMM YYYY HH:mm:ss Z`}},a={name:`es`,months:[`Enero`,`Febrero`,`Marzo`,`Abril`,`Mayo`,`Junio`,`Julio`,`Agosto`,`Septiembre`,`Octubre`,`Noviembre`,`Diciembre`],monthsShort:[`Ene`,`Feb`,`Mar`,`Abr`,`May`,`Jun`,`Jul`,`Ago`,`Sep`,`Oct`,`Nov`,`Dic`],weekdays:[`Domingo`,`Lunes`,`Martes`,`Miércoles`,`Jueves`,`Viernes`,`Sábado`],weekdaysShort:[`Dom`,`Lun`,`Mar`,`Mié`,`Jue`,`Vie`,`Sáb`],weekdaysMin:[`Do`,`Lu`,`Ma`,`Mi`,`Ju`,`Vi`,`Sa`],meridiem:{am:`AM`,pm:`PM`},formats:{iso:`YYYY-MM-DDTHH:mm:ss.SSSZ`,date:`DD/MM/YYYY`,time:`HH:mm:ss`,datetime:`DD/MM/YYYY HH:mm:ss`,rfc2822:`ddd, DD MMM YYYY HH:mm:ss Z`}},o=class e{static instance;locales=new Map;currentLocale=`en`;static getInstance(){return e.instance||=new e,e.instance}constructor(){this.locales.set(`en`,i),this.locales.set(`es`,a)}setLocale(e,t){t&&this.locales.set(e.toLowerCase(),t),this.currentLocale=e.toLowerCase()}getLocale(e){let t=(e||this.currentLocale).toLowerCase();return this.locales.get(t)||this.locales.get(`en`)||i}listLocales(){return Array.from(this.locales.keys())}getCurrentLocale(){return this.currentLocale}loadLocales(e){Object.entries(e).forEach(([e,t])=>{this.locales.set(e.toLowerCase(),t)})}},s=class{localeManager;constructor(){this.localeManager=o.getInstance()}format(e,t,n){let r=this.localeManager.getLocale(n),i=[],a=t.replace(/\[([^\]]+)\]/g,(e,t)=>(i.push(t),`~${i.length-1}~`));a=a.replace(/"([^"]*)"/g,(e,t)=>(i.push(t),`~${i.length-1}~`));let o=a.replace(/Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|SSS/g,t=>{switch(t){case`YYYY`:return String(e.year).padStart(4,`0`);case`YY`:return String(e.year).slice(-2);case`Y`:return String(e.year);case`MMMM`:return r.months[e.month-1];case`MMM`:return r.monthsShort[e.month-1];case`MM`:return String(e.month).padStart(2,`0`);case`M`:return String(e.month);case`DD`:return String(e.day).padStart(2,`0`);case`D`:return String(e.day);case`dddd`:return r.weekdays[e.dayOfWeek%7];case`ddd`:return r.weekdaysShort[e.dayOfWeek%7];case`dd`:return r.weekdaysMin[e.dayOfWeek%7];case`d`:return String(e.dayOfWeek);case`HH`:return String(e.hour).padStart(2,`0`);case`H`:return String(e.hour);case`hh`:return String(e.hour%12||12).padStart(2,`0`);case`h`:return String(e.hour%12||12);case`mm`:return String(e.minute).padStart(2,`0`);case`m`:return String(e.minute);case`ss`:return String(e.second).padStart(2,`0`);case`s`:return String(e.second);case`SSS`:return String(e.millisecond).padStart(3,`0`);case`a`:case`A`:let n=r.meridiem||{am:`am`,pm:`pm`},i=e.hour>=12?n.pm:n.am;return t===`a`?i.toLowerCase():i.toUpperCase();default:return t}});return i.forEach((e,t)=>{o=o.replace(`~${t}~`,e)}),o}getPreset(e){let t={iso:`YYYY-MM-DDTHH:mm:ss.SSSZ`,date:`YYYY-MM-DD`,time:`HH:mm:ss`,datetime:`YYYY-MM-DD HH:mm:ss`,rfc2822:`ddd, DD MMM YYYY HH:mm:ss Z`,rfc3339:`YYYY-MM-DDTHH:mm:ssZ`,utc:`YYYY-MM-DDTHH:mm:ss[Z]`};return t[e]||t.iso}formatPreset(e,t,n){let r=this.getPreset(t);return this.format(e,r,n)}},c=class e{temporal;config;formatterInstance;constructor(e,t){if(this.formatterInstance=new s,this.config={locale:t?.locale||`en`,timezone:t?.timezone||`UTC`,strict:t?.strict??!1},this.temporal=r.parseToPlainDateTime(e),this.config.timezone&&this.config.timezone!==`UTC`)try{this.temporal=this.temporal.toZonedDateTime(this.config.timezone)}catch{}}static now(t){return new e(void 0,t)}static from(t,n){return new e(t,n)}static fromTemporal(t,n){let r=new e(void 0,n);return r.temporal=t,r}toTemporal(){return this.temporal}toDate(){return r.toDate(this.temporal)}toISOString(){return r.toISOString(this.temporal)}valueOf(){return r.toUnix(this.temporal)}unix(){return Math.floor(this.valueOf()/1e3)}toJSON(){return this.toISOString()}toString(){return this.format(`YYYY-MM-DD HH:mm:ss`)}locale(e){if(e===void 0)return this.config.locale;let t=this.clone();return t.config.locale=e,t}timezone(e){if(e===void 0)return this.config.timezone;let t=this.clone();t.config.timezone=e;try{t.temporal=r.toPlainDateTime(t.temporal).toZonedDateTime(e)}catch{}return t}format(e){let t=r.toPlainDateTime(this.temporal),n=[`iso`,`date`,`time`,`datetime`,`rfc2822`,`rfc3339`,`utc`].includes(e)?this.formatterInstance.getPreset(e):e;return this.formatterInstance.format(t,n,this.config.locale)}get(e){let t=r.toPlainDateTime(this.temporal);return e===`week`?t.weekOfYear:t[{year:`year`,month:`month`,week:`year`,day:`day`,hour:`hour`,minute:`minute`,second:`second`,millisecond:`millisecond`,microsecond:`microsecond`,nanosecond:`nanosecond`}[e]]}add(t){let n=r.toPlainDateTime(this.temporal),i={};return Object.entries(t).forEach(([e,t])=>{t!==void 0&&t!==0&&(i[e+`s`]=t)}),n=n.add(i),e.fromTemporal(n,this.config)}subtract(e){let t={};return Object.entries(e).forEach(([e,n])=>{t[e]=n?-n:0}),this.add(t)}diff(e,t=`millisecond`){let n=r.toPlainDateTime(this.temporal),i=r.toPlainDateTime(e.temporal),a={year:`years`,month:`months`,week:`weeks`,day:`days`,hour:`hours`,minute:`minutes`,second:`seconds`,millisecond:`milliseconds`,microsecond:`microseconds`,nanosecond:`nanoseconds`},o=n.since(i),s=a[t];return Math.round(o[s]||0)}isBefore(e){let t=r.toPlainDateTime(this.temporal),n=r.toPlainDateTime(e.temporal);return t.compare(n)<0}isAfter(e){let t=r.toPlainDateTime(this.temporal),n=r.toPlainDateTime(e.temporal);return t.compare(n)>0}isSame(e,t){if(!t)return r.toPlainDateTime(this.temporal).compare(r.toPlainDateTime(e.temporal))===0;let n=r.toPlainDateTime(this.temporal),i=r.toPlainDateTime(e.temporal);switch(t){case`year`:return n.year===i.year;case`month`:return n.year===i.year&&n.month===i.month;case`day`:return n.year===i.year&&n.month===i.month&&n.day===i.day;case`hour`:return n.year===i.year&&n.month===i.month&&n.day===i.day&&n.hour===i.hour;case`minute`:return n.year===i.year&&n.month===i.month&&n.day===i.day&&n.hour===i.hour&&n.minute===i.minute;case`second`:return n.year===i.year&&n.month===i.month&&n.day===i.day&&n.hour===i.hour&&n.minute===i.minute&&n.second===i.second;default:return!1}}isBetween(e,t,n,i=`[]`){let a=r.toPlainDateTime(this.temporal),o=r.toPlainDateTime(e.temporal),s=r.toPlainDateTime(t.temporal),c=!0,l=!0;if(n){let e=this.clone().startOf(n),t=this.clone().endOf(n),i=r.toPlainDateTime(e.temporal),a=r.toPlainDateTime(t.temporal);c=i.compare(o)>=0,l=a.compare(s)<=0}else c=a.compare(o)>=0,l=a.compare(s)<=0;let u=i[0]===`[`,d=i[1]===`]`;return(u?c:a.compare(o)>0)&&(d?l:a.compare(s)<0)}clone(){return new e(this.toDate(),this.config)}startOf(t){let n=r.toPlainDateTime(this.temporal),i={};switch(t){case`year`:i.month=1,i.day=1,i.hour=0,i.minute=0,i.second=0,i.millisecond=0;break;case`month`:i.day=1,i.hour=0,i.minute=0,i.second=0,i.millisecond=0;break;case`week`:case`day`:i.hour=0,i.minute=0,i.second=0,i.millisecond=0;break;case`hour`:i.minute=0,i.second=0,i.millisecond=0;break;case`minute`:i.second=0,i.millisecond=0;break;case`second`:i.millisecond=0;break}let a=n.with(i);return e.fromTemporal(a,this.config)}endOf(e){return this.startOf(e).add({[e]:1}).subtract({millisecond:1})}set(t){let n=r.toPlainDateTime(this.temporal).with(t);return e.fromTemporal(n,this.config)}year(){return r.toPlainDateTime(this.temporal).year}month(){return r.toPlainDateTime(this.temporal).month}day(){return r.toPlainDateTime(this.temporal).day}hour(){return r.toPlainDateTime(this.temporal).hour}minute(){return r.toPlainDateTime(this.temporal).minute}second(){return r.toPlainDateTime(this.temporal).second}millisecond(){return r.toPlainDateTime(this.temporal).millisecond}dayOfWeek(){return r.toPlainDateTime(this.temporal).dayOfWeek}dayOfYear(){return r.toPlainDateTime(this.temporal).dayOfYear}weekOfYear(){return r.toPlainDateTime(this.temporal).weekOfYear}daysInMonth(){return r.toPlainDateTime(this.temporal).add({months:1}).with({day:1}).subtract({days:1}).day}daysInYear(){let e=this.year();return e%4==0&&e%100!=0||e%400==0?366:365}inLeapYear(){let e=r.toPlainDateTime(this.temporal).year;return e%4==0&&e%100!=0||e%400==0}until(e){let t=r.toPlainDateTime(this.temporal),n=r.toPlainDateTime(e.temporal);try{let e=n.since(t);return{years:Math.floor(e.years||0),months:Math.floor(e.months||0),days:Math.floor(e.days||0),hours:Math.floor(e.hours||0),minutes:Math.floor(e.minutes||0),seconds:Math.floor(e.seconds||0),milliseconds:Math.floor(e.milliseconds||0)}}catch{return{years:0,months:0,days:0,hours:0,minutes:0,seconds:0,milliseconds:0}}}round(e={}){let{smallestUnit:t=`millisecond`,roundingMode:n=`halfExpand`}=e,i=r.toPlainDateTime(this.temporal),a={year:i.year,month:i.month,day:i.day,hour:i.hour,minute:i.minute,second:i.second,millisecond:i.millisecond,microsecond:i.microsecond||0,nanosecond:i.nanosecond||0,week:0},o=[`year`,`month`,`day`,`hour`,`minute`,`second`,`millisecond`,`microsecond`,`nanosecond`],s=o.indexOf(t);if(s===-1)return this.clone();let c={};for(let e=0;e<s;e++){let t=o[e];c[t]=a[t]}let l=o[s],u=a[l];s+1<o.length&&((e,t)=>{switch(e){case`ceil`:return t>0;case`floor`:case`trunc`:return!1;case`halfExpand`:case`halfFloor`:case`halfCeil`:return t>=5;case`expand`:return t>0;default:return t>=5}})(n,a[o[s+1]])&&(u+=1),c[l]=u;for(let e=s+1;e<o.length;e++)c[o[e]]=0;return this.set(c)}toPlainDate(){let e=r.toPlainDateTime(this.temporal);return{year:e.year,month:e.month,day:e.day,dayOfWeek:e.dayOfWeek}}toPlainTime(){let e=r.toPlainDateTime(this.temporal);return{hour:e.hour,minute:e.minute,second:e.second,millisecond:e.millisecond}}withDate(e,t,n){return this.set({year:e,month:t,day:n})}withTime(e,t=0,n=0,r=0){return this.set({hour:e,minute:t,second:n,millisecond:r})}getOffset(){return this.temporal?.offset&&this.temporal.offset||`Z`}getOffsetNanoseconds(){return this.temporal?.offsetNanoseconds&&this.temporal.offsetNanoseconds||0}getTimeZoneId(){return this.temporal?.timeZoneId&&this.temporal.timeZoneId||null}startOfDay(){return this.startOf(`day`)}endOfDay(){return this.endOf(`day`)}since(e){let t=r.toPlainDateTime(this.temporal),n=r.toPlainDateTime(e.temporal);try{let e=t.since(n);return{years:Math.floor(e.years||0),months:Math.floor(e.months||0),days:Math.floor(e.days||0),hours:Math.floor(e.hours||0),minutes:Math.floor(e.minutes||0),seconds:Math.floor(e.seconds||0),milliseconds:Math.floor(e.milliseconds||0)}}catch{return{years:0,months:0,days:0,hours:0,minutes:0,seconds:0,milliseconds:0}}}toDurationString(t){let n=t?this.until(t):this.until(e.now()),r=[];n.years&&r.push(`${n.years}Y`),n.months&&r.push(`${n.months}M`),n.days&&r.push(`${n.days}D`);let i=[];n.hours&&i.push(`${n.hours}H`),n.minutes&&i.push(`${n.minutes}M`),n.seconds&&i.push(`${n.seconds}S`);let a=`P${r.join(``)}${i.length>0?`T`+i.join(``):``}`;return a===`P`?`PT0S`:a}isPast(){return this.isBefore(e.now())}isFuture(){return this.isAfter(e.now())}isToday(){return this.isSame(e.now(),`day`)}isTomorrow(){return this.isSame(e.now().add({day:1}),`day`)}isYesterday(){return this.isSame(e.now().subtract({day:1}),`day`)}},l=class{id=`gregory`;name=`Gregorian Calendar`;locale=`en`;monthNames=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`];monthNamesShort=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`];weekdayNames=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`];weekdayNamesShort=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`];getMonthName(e,t=!1){return(t?this.monthNamesShort:this.monthNames)[Math.max(0,Math.min(11,e-1))]}getWeekdayName(e,t=!1){return(t?this.weekdayNamesShort:this.weekdayNames)[Math.max(0,Math.min(6,e-1))]}isLeapYear(e){return e%4==0&&e%100!=0||e%400==0}daysInMonth(e,t){return t===2&&this.isLeapYear(e)?29:[31,28,31,30,31,30,31,31,30,31,30,31][Math.max(0,Math.min(11,t-1))]}daysInYear(e){return this.isLeapYear(e)?366:365}},u=class e{static instance;calendars=new Map;defaultCalendar=`gregory`;constructor(){this.register(new l)}static getInstance(){return e.instance||=new e,e.instance}register(e){this.calendars.set(e.id,e)}get(e){return this.calendars.get(e)}list(){return Array.from(this.calendars.keys())}setDefault(e){this.calendars.has(e)&&(this.defaultCalendar=e)}getDefault(){let e=this.calendars.get(this.defaultCalendar);if(!e)throw Error(`Default calendar '${this.defaultCalendar}' not found`);return e}},d=u.getInstance(),f=class e{static instance;plugins=new Map;static getInstance(){return e.instance||=new e,e.instance}static use(t,n,r){e.getInstance().register(t,n,r)}static useMultiple(t,n,r){let i=e.getInstance();t.forEach(e=>i.register(e,n,r))}static getPlugin(t){return e.getInstance().plugins.get(t)}static hasPlugin(t){return e.getInstance().plugins.has(t)}static listPlugins(){let t=e.getInstance();return Array.from(t.plugins.keys())}static unuse(t){return e.getInstance().plugins.delete(t)}static clear(){e.getInstance().plugins.clear()}register(e,t,n){if(this.plugins.has(e.name)){console.warn(`Plugin "${e.name}" is already registered. Skipping...`);return}try{e.install(t,n),this.plugins.set(e.name,e),console.debug(`Plugin "${e.name}" v${e.version} registered successfully`)}catch(t){throw console.error(`Failed to register plugin "${e.name}":`,t),Error(`Failed to register plugin "${e.name}": ${t instanceof Error?t.message:String(t)}`)}}};function p(e,t){return new c(e,t)}e.CalendarManager=u,e.DateFormatter=s,e.EN_LOCALE=i,e.ES_LOCALE=a,e.GregorianCalendar=l,e.LocaleManager=o,e.PluginManager=f,e.TemporalAdapter=r,e.TimeGuard=c,e.calendarManager=d,e.timeGuard=p,e.version=`2.0.4`});
|