UNPKG

air-monitor-algorithms

Version:
3 lines 72.8 kB
!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).AirMonitorAlgorithms={})}(this,function(e){"use strict";class t extends Error{}class n extends t{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}}class r extends t{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}}class s extends t{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}}class i extends t{}class a extends t{constructor(e){super(`Invalid unit ${e}`)}}class o extends t{}class u extends t{constructor(){super("Zone is an abstract class")}}const l="numeric",c="short",h="long",d={year:l,month:l,day:l},m={year:l,month:c,day:l},f={year:l,month:c,day:l,weekday:c},y={year:l,month:h,day:l},g={year:l,month:h,day:l,weekday:h},w={hour:l,minute:l},p={hour:l,minute:l,second:l},k={hour:l,minute:l,second:l,timeZoneName:c},v={hour:l,minute:l,second:l,timeZoneName:h},S={hour:l,minute:l,hourCycle:"h23"},b={hour:l,minute:l,second:l,hourCycle:"h23"},T={hour:l,minute:l,second:l,hourCycle:"h23",timeZoneName:c},N={hour:l,minute:l,second:l,hourCycle:"h23",timeZoneName:h},O={year:l,month:l,day:l,hour:l,minute:l},M={year:l,month:l,day:l,hour:l,minute:l,second:l},D={year:l,month:c,day:l,hour:l,minute:l},I={year:l,month:c,day:l,hour:l,minute:l,second:l},x={year:l,month:c,day:l,weekday:c,hour:l,minute:l},V={year:l,month:h,day:l,hour:l,minute:l,timeZoneName:c},E={year:l,month:h,day:l,hour:l,minute:l,second:l,timeZoneName:c},C={year:l,month:h,day:l,weekday:h,hour:l,minute:l,timeZoneName:h},F={year:l,month:h,day:l,weekday:h,hour:l,minute:l,second:l,timeZoneName:h};class ${get type(){throw new u}get name(){throw new u}get ianaName(){return this.name}get isUniversal(){throw new u}offsetName(e,t){throw new u}formatOffset(e,t){throw new u}offset(e){throw new u}equals(e){throw new u}get isValid(){throw new u}}let W=null;class Z extends ${static get instance(){return null===W&&(W=new Z),W}get type(){return"system"}get name(){return(new Intl.DateTimeFormat).resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return nt(e,t,n)}formatOffset(e,t){return at(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return"system"===e.type}get isValid(){return!0}}const L=new Map;const z={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};const A=new Map;class j extends ${static create(e){let t=A.get(e);return void 0===t&&A.set(e,t=new j(e)),t}static resetCache(){A.clear(),L.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch(e){return!1}}constructor(e){super(),this.zoneName=e,this.valid=j.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return nt(e,t,n,this.name)}formatOffset(e,t){return at(this.offset(e),t)}offset(e){if(!this.valid)return NaN;const t=new Date(e);if(isNaN(t))return NaN;const n=function(e){let t=L.get(e);return void 0===t&&(t=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),L.set(e,t)),t}(this.name);let[r,s,i,a,o,u,l]=n.formatToParts?function(e,t){const n=e.formatToParts(t),r=[];for(let e=0;e<n.length;e++){const{type:t,value:s}=n[e],i=z[t];"era"===t?r[i]=s:We(i)||(r[i]=parseInt(s,10))}return r}(n,t):function(e,t){const n=e.format(t).replace(/\u200E/g,""),r=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n),[,s,i,a,o,u,l,c]=r;return[a,s,i,o,u,l,c]}(n,t);"BC"===a&&(r=1-Math.abs(r));let c=+t;const h=c%1e3;return c-=h>=0?h:1e3+h,(Xe({year:r,month:s,day:i,hour:24===o?0:o,minute:u,second:l,millisecond:0})-c)/6e4}equals(e){return"iana"===e.type&&e.name===this.name}get isValid(){return this.valid}}let q={};const U=new Map;function _(e,t={}){const n=JSON.stringify([e,t]);let r=U.get(n);return void 0===r&&(r=new Intl.DateTimeFormat(e,t),U.set(n,r)),r}const Y=new Map;const H=new Map;let R=null;const P=new Map;function J(e){let t=P.get(e);return void 0===t&&(t=new Intl.DateTimeFormat(e).resolvedOptions(),P.set(e,t)),t}const G=new Map;function B(e,t,n,r){const s=e.listingMode();return"error"===s?null:"en"===s?n(t):r(t)}class Q{constructor(e,t,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;const{padTo:r,floor:s,...i}=n;if(!t||Object.keys(i).length>0){const t={useGrouping:!1,...n};n.padTo>0&&(t.minimumIntegerDigits=n.padTo),this.inf=function(e,t={}){const n=JSON.stringify([e,t]);let r=Y.get(n);return void 0===r&&(r=new Intl.NumberFormat(e,t),Y.set(n,r)),r}(e,t)}}format(e){if(this.inf){const t=this.floor?Math.floor(e):e;return this.inf.format(t)}return Ye(this.floor?Math.floor(e):Je(e,3),this.padTo)}}class X{constructor(e,t,n){let r;if(this.opts=n,this.originalZone=void 0,this.opts.timeZone)this.dt=e;else if("fixed"===e.zone.type){const t=e.offset/60*-1,n=t>=0?`Etc/GMT+${t}`:`Etc/GMT${t}`;0!==e.offset&&j.create(n).valid?(r=n,this.dt=e):(r="UTC",this.dt=0===e.offset?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else"system"===e.zone.type?this.dt=e:"iana"===e.zone.type?(this.dt=e,r=e.zone.name):(r="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);const s={...this.opts};s.timeZone=s.timeZone||r,this.dtf=_(t,s)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(e=>{if("timeZoneName"===e.type){const t=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...e,value:t}}return e}):e}resolvedOptions(){return this.dtf.resolvedOptions()}}class K{constructor(e,t,n){this.opts={style:"long",...n},!t&&ze()&&(this.rtf=function(e,t={}){const{base:n,...r}=t,s=JSON.stringify([e,r]);let i=H.get(s);return void 0===i&&(i=new Intl.RelativeTimeFormat(e,t),H.set(s,i)),i}(e,n))}format(e,t){return this.rtf?this.rtf.format(e,t):function(e,t,n="always",r=!1){const s={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},i=-1===["hours","minutes","seconds"].indexOf(e);if("auto"===n&&i){const n="days"===e;switch(t){case 1:return n?"tomorrow":`next ${s[e][0]}`;case-1:return n?"yesterday":`last ${s[e][0]}`;case 0:return n?"today":`this ${s[e][0]}`}}const a=Object.is(t,-0)||t<0,o=Math.abs(t),u=1===o,l=s[e],c=r?u?l[1]:l[2]||l[1]:u?s[e][0]:e;return a?`${o} ${c} ago`:`in ${o} ${c}`}(t,e,this.opts.numeric,"long"!==this.opts.style)}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}}const ee={firstDay:1,minimalDays:4,weekend:[6,7]};class te{static fromOpts(e){return te.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,t,n,r,s=!1){const i=e||ke.defaultLocale,a=i||(s?"en-US":R||(R=(new Intl.DateTimeFormat).resolvedOptions().locale,R)),o=t||ke.defaultNumberingSystem,u=n||ke.defaultOutputCalendar,l=Ue(r)||ke.defaultWeekSettings;return new te(a,o,u,l,i)}static resetCache(){R=null,U.clear(),Y.clear(),H.clear(),P.clear(),G.clear()}static fromObject({locale:e,numberingSystem:t,outputCalendar:n,weekSettings:r}={}){return te.create(e,t,n,r)}constructor(e,t,n,r,s){const[i,a,o]=function(e){const t=e.indexOf("-x-");-1!==t&&(e=e.substring(0,t));const n=e.indexOf("-u-");if(-1===n)return[e];{let t,r;try{t=_(e).resolvedOptions(),r=e}catch(s){const i=e.substring(0,n);t=_(i).resolvedOptions(),r=i}const{numberingSystem:s,calendar:i}=t;return[r,s,i]}}(e);this.locale=i,this.numberingSystem=t||a||null,this.outputCalendar=n||o||null,this.weekSettings=r,this.intl=function(e,t,n){return n||t?(e.includes("-u-")||(e+="-u"),n&&(e+=`-ca-${n}`),t&&(e+=`-nu-${t}`),e):e}(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=s,this.fastNumbersCached=null}get fastNumbers(){var e;return null==this.fastNumbersCached&&(this.fastNumbersCached=(!(e=this).numberingSystem||"latn"===e.numberingSystem)&&("latn"===e.numberingSystem||!e.locale||e.locale.startsWith("en")||"latn"===J(e.locale).numberingSystem)),this.fastNumbersCached}listingMode(){const e=this.isEnglish(),t=!(null!==this.numberingSystem&&"latn"!==this.numberingSystem||null!==this.outputCalendar&&"gregory"!==this.outputCalendar);return e&&t?"en":"intl"}clone(e){return e&&0!==Object.getOwnPropertyNames(e).length?te.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,Ue(e.weekSettings)||this.weekSettings,e.defaultToEN||!1):this}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,t=!1){return B(this,e,ht,()=>{const n=t?{month:e,day:"numeric"}:{month:e},r=t?"format":"standalone";return this.monthsCache[r][e]||(this.monthsCache[r][e]=function(e){const t=[];for(let n=1;n<=12;n++){const r=yr.utc(2009,n,1);t.push(e(r))}return t}(e=>this.extract(e,n,"month"))),this.monthsCache[r][e]})}weekdays(e,t=!1){return B(this,e,yt,()=>{const n=t?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},r=t?"format":"standalone";return this.weekdaysCache[r][e]||(this.weekdaysCache[r][e]=function(e){const t=[];for(let n=1;n<=7;n++){const r=yr.utc(2016,11,13+n);t.push(e(r))}return t}(e=>this.extract(e,n,"weekday"))),this.weekdaysCache[r][e]})}meridiems(){return B(this,void 0,()=>gt,()=>{if(!this.meridiemCache){const e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[yr.utc(2016,11,13,9),yr.utc(2016,11,13,19)].map(t=>this.extract(t,e,"dayperiod"))}return this.meridiemCache})}eras(e){return B(this,e,vt,()=>{const t={era:e};return this.eraCache[e]||(this.eraCache[e]=[yr.utc(-40,1,1),yr.utc(2017,1,1)].map(e=>this.extract(e,t,"era"))),this.eraCache[e]})}extract(e,t,n){const r=this.dtFormatter(e,t).formatToParts().find(e=>e.type.toLowerCase()===n);return r?r.value:null}numberFormatter(e={}){return new Q(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new X(e,this.intl,t)}relFormatter(e={}){return new K(this.intl,this.isEnglish(),e)}listFormatter(e={}){return function(e,t={}){const n=JSON.stringify([e,t]);let r=q[n];return r||(r=new Intl.ListFormat(e,t),q[n]=r),r}(this.intl,e)}isEnglish(){return"en"===this.locale||"en-us"===this.locale.toLowerCase()||J(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:Ae()?function(e){let t=G.get(e);if(!t){const n=new Intl.Locale(e);t="getWeekInfo"in n?n.getWeekInfo():n.weekInfo,"minimalDays"in t||(t={...ee,...t}),G.set(e,t)}return t}(this.locale):ee}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}let ne=null;class re extends ${static get utcInstance(){return null===ne&&(ne=new re(0)),ne}static instance(e){return 0===e?re.utcInstance:new re(e)}static parseSpecifier(e){if(e){const t=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(t)return new re(rt(t[1],t[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return 0===this.fixed?"UTC":`UTC${at(this.fixed,"narrow")}`}get ianaName(){return 0===this.fixed?"Etc/UTC":`Etc/GMT${at(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,t){return at(this.fixed,t)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return"fixed"===e.type&&e.fixed===this.fixed}get isValid(){return!0}}class se extends ${constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function ie(e,t){if(We(e)||null===e)return t;if(e instanceof $)return e;if("string"==typeof e){const n=e.toLowerCase();return"default"===n?t:"local"===n||"system"===n?Z.instance:"utc"===n||"gmt"===n?re.utcInstance:re.parseSpecifier(n)||j.create(e)}return Ze(e)?re.instance(e):"object"==typeof e&&"offset"in e&&"function"==typeof e.offset?e:new se(e)}const ae={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},oe={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},ue=ae.hanidec.replace(/[\[|\]]/g,"").split("");const le=new Map;function ce({numberingSystem:e},t=""){const n=e||"latn";let r=le.get(n);void 0===r&&(r=new Map,le.set(n,r));let s=r.get(t);return void 0===s&&(s=new RegExp(`${ae[n]}${t}`),r.set(t,s)),s}let he,de=()=>Date.now(),me="system",fe=null,ye=null,ge=null,we=60,pe=null;class ke{static get now(){return de}static set now(e){de=e}static set defaultZone(e){me=e}static get defaultZone(){return ie(me,Z.instance)}static get defaultLocale(){return fe}static set defaultLocale(e){fe=e}static get defaultNumberingSystem(){return ye}static set defaultNumberingSystem(e){ye=e}static get defaultOutputCalendar(){return ge}static set defaultOutputCalendar(e){ge=e}static get defaultWeekSettings(){return pe}static set defaultWeekSettings(e){pe=Ue(e)}static get twoDigitCutoffYear(){return we}static set twoDigitCutoffYear(e){we=e%100}static get throwOnInvalid(){return he}static set throwOnInvalid(e){he=e}static resetCaches(){te.resetCache(),j.resetCache(),yr.resetCache(),le.clear()}}class ve{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const Se=[0,31,59,90,120,151,181,212,243,273,304,334],be=[0,31,60,91,121,152,182,213,244,274,305,335];function Te(e,t){return new ve("unit out of range",`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function Ne(e,t,n){const r=new Date(Date.UTC(e,t-1,n));e<100&&e>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);const s=r.getUTCDay();return 0===s?7:s}function Oe(e,t,n){return n+(Ge(e)?be:Se)[t-1]}function Me(e,t){const n=Ge(e)?be:Se,r=n.findIndex(e=>e<t);return{month:r+1,day:t-n[r]}}function De(e,t){return(e-t+7)%7+1}function Ie(e,t=4,n=1){const{year:r,month:s,day:i}=e,a=Oe(r,s,i),o=De(Ne(r,s,i),n);let u,l=Math.floor((a-o+14-t)/7);return l<1?(u=r-1,l=et(u,t,n)):l>et(r,t,n)?(u=r+1,l=1):u=r,{weekYear:u,weekNumber:l,weekday:o,...ot(e)}}function xe(e,t=4,n=1){const{weekYear:r,weekNumber:s,weekday:i}=e,a=De(Ne(r,1,t),n),o=Be(r);let u,l=7*s+i-a-7+t;l<1?(u=r-1,l+=Be(u)):l>o?(u=r+1,l-=Be(r)):u=r;const{month:c,day:h}=Me(u,l);return{year:u,month:c,day:h,...ot(e)}}function Ve(e){const{year:t,month:n,day:r}=e;return{year:t,ordinal:Oe(t,n,r),...ot(e)}}function Ee(e){const{year:t,ordinal:n}=e,{month:r,day:s}=Me(t,n);return{year:t,month:r,day:s,...ot(e)}}function Ce(e,t){if(!We(e.localWeekday)||!We(e.localWeekNumber)||!We(e.localWeekYear)){if(!We(e.weekday)||!We(e.weekNumber)||!We(e.weekYear))throw new i("Cannot mix locale-based week fields with ISO-based week fields");return We(e.localWeekday)||(e.weekday=e.localWeekday),We(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),We(e.localWeekYear)||(e.weekYear=e.localWeekYear),delete e.localWeekday,delete e.localWeekNumber,delete e.localWeekYear,{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}return{minDaysInFirstWeek:4,startOfWeek:1}}function Fe(e){const t=Le(e.year),n=_e(e.month,1,12),r=_e(e.day,1,Qe(e.year,e.month));return t?n?!r&&Te("day",e.day):Te("month",e.month):Te("year",e.year)}function $e(e){const{hour:t,minute:n,second:r,millisecond:s}=e,i=_e(t,0,23)||24===t&&0===n&&0===r&&0===s,a=_e(n,0,59),o=_e(r,0,59),u=_e(s,0,999);return i?a?o?!u&&Te("millisecond",s):Te("second",r):Te("minute",n):Te("hour",t)}function We(e){return void 0===e}function Ze(e){return"number"==typeof e}function Le(e){return"number"==typeof e&&e%1==0}function ze(){try{return"undefined"!=typeof Intl&&!!Intl.RelativeTimeFormat}catch(e){return!1}}function Ae(){try{return"undefined"!=typeof Intl&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch(e){return!1}}function je(e,t,n){if(0!==e.length)return e.reduce((e,r)=>{const s=[t(r),r];return e&&n(e[0],s[0])===e[0]?e:s},null)[1]}function qe(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Ue(e){if(null==e)return null;if("object"!=typeof e)throw new o("Week settings must be an object");if(!_e(e.firstDay,1,7)||!_e(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some(e=>!_e(e,1,7)))throw new o("Invalid week settings");return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function _e(e,t,n){return Le(e)&&e>=t&&e<=n}function Ye(e,t=2){let n;return n=e<0?"-"+(""+-e).padStart(t,"0"):(""+e).padStart(t,"0"),n}function He(e){return We(e)||null===e||""===e?void 0:parseInt(e,10)}function Re(e){return We(e)||null===e||""===e?void 0:parseFloat(e)}function Pe(e){if(!We(e)&&null!==e&&""!==e){const t=1e3*parseFloat("0."+e);return Math.floor(t)}}function Je(e,t,n=!1){const r=10**t;return(n?Math.trunc:Math.round)(e*r)/r}function Ge(e){return e%4==0&&(e%100!=0||e%400==0)}function Be(e){return Ge(e)?366:365}function Qe(e,t){const n=function(e,t){return e-t*Math.floor(e/t)}(t-1,12)+1;return 2===n?Ge(e+(t-n)/12)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function Xe(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&e.year>=0&&(t=new Date(t),t.setUTCFullYear(e.year,e.month-1,e.day)),+t}function Ke(e,t,n){return-De(Ne(e,1,t),n)+t-1}function et(e,t=4,n=1){const r=Ke(e,t,n),s=Ke(e+1,t,n);return(Be(e)-r+s)/7}function tt(e){return e>99?e:e>ke.twoDigitCutoffYear?1900+e:2e3+e}function nt(e,t,n,r=null){const s=new Date(e),i={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};r&&(i.timeZone=r);const a={timeZoneName:t,...i},o=new Intl.DateTimeFormat(n,a).formatToParts(s).find(e=>"timezonename"===e.type.toLowerCase());return o?o.value:null}function rt(e,t){let n=parseInt(e,10);Number.isNaN(n)&&(n=0);const r=parseInt(t,10)||0;return 60*n+(n<0||Object.is(n,-0)?-r:r)}function st(e){const t=Number(e);if("boolean"==typeof e||""===e||Number.isNaN(t))throw new o(`Invalid unit value ${e}`);return t}function it(e,t){const n={};for(const r in e)if(qe(e,r)){const s=e[r];if(null==s)continue;n[t(r)]=st(s)}return n}function at(e,t){const n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),s=e>=0?"+":"-";switch(t){case"short":return`${s}${Ye(n,2)}:${Ye(r,2)}`;case"narrow":return`${s}${n}${r>0?`:${r}`:""}`;case"techie":return`${s}${Ye(n,2)}${Ye(r,2)}`;default:throw new RangeError(`Value format ${t} is out of range for property format`)}}function ot(e){return function(e,t){return t.reduce((t,n)=>(t[n]=e[n],t),{})}(e,["hour","minute","second","millisecond"])}const ut=["January","February","March","April","May","June","July","August","September","October","November","December"],lt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ct=["J","F","M","A","M","J","J","A","S","O","N","D"];function ht(e){switch(e){case"narrow":return[...ct];case"short":return[...lt];case"long":return[...ut];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const dt=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],mt=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],ft=["M","T","W","T","F","S","S"];function yt(e){switch(e){case"narrow":return[...ft];case"short":return[...mt];case"long":return[...dt];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const gt=["AM","PM"],wt=["Before Christ","Anno Domini"],pt=["BC","AD"],kt=["B","A"];function vt(e){switch(e){case"narrow":return[...kt];case"short":return[...pt];case"long":return[...wt];default:return null}}function St(e,t){let n="";for(const r of e)r.literal?n+=r.val:n+=t(r.val);return n}const bt={D:d,DD:m,DDD:y,DDDD:g,t:w,tt:p,ttt:k,tttt:v,T:S,TT:b,TTT:T,TTTT:N,f:O,ff:D,fff:V,ffff:C,F:M,FF:I,FFF:E,FFFF:F};class Tt{static create(e,t={}){return new Tt(e,t)}static parseFormat(e){let t=null,n="",r=!1;const s=[];for(let i=0;i<e.length;i++){const a=e.charAt(i);"'"===a?(n.length>0&&s.push({literal:r||/^\s+$/.test(n),val:n}),t=null,n="",r=!r):r||a===t?n+=a:(n.length>0&&s.push({literal:/^\s+$/.test(n),val:n}),n=a,t=a)}return n.length>0&&s.push({literal:r||/^\s+$/.test(n),val:n}),s}static macroTokenToFormatOpts(e){return bt[e]}constructor(e,t){this.opts=t,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,t){null===this.systemLoc&&(this.systemLoc=this.loc.redefaultToSystem());return this.systemLoc.dtFormatter(e,{...this.opts,...t}).format()}dtFormatter(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t})}formatDateTime(e,t){return this.dtFormatter(e,t).format()}formatDateTimeParts(e,t){return this.dtFormatter(e,t).formatToParts()}formatInterval(e,t){return this.dtFormatter(e.start,t).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,t){return this.dtFormatter(e,t).resolvedOptions()}num(e,t=0){if(this.opts.forceSimple)return Ye(e,t);const n={...this.opts};return t>0&&(n.padTo=t),this.loc.numberFormatter(n).format(e)}formatDateTimeFromString(e,t){const n="en"===this.loc.listingMode(),r=this.loc.outputCalendar&&"gregory"!==this.loc.outputCalendar,s=(t,n)=>this.loc.extract(e,t,n),i=t=>e.isOffsetFixed&&0===e.offset&&t.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,t.format):"",a=()=>n?function(e){return gt[e.hour<12?0:1]}(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),o=(t,r)=>n?function(e,t){return ht(t)[e.month-1]}(e,t):s(r?{month:t}:{month:t,day:"numeric"},"month"),u=(t,r)=>n?function(e,t){return yt(t)[e.weekday-1]}(e,t):s(r?{weekday:t}:{weekday:t,month:"long",day:"numeric"},"weekday"),l=t=>{const n=Tt.macroTokenToFormatOpts(t);return n?this.formatWithSystemDefault(e,n):t},c=t=>n?function(e,t){return vt(t)[e.year<0?0:1]}(e,t):s({era:t},"era");return St(Tt.parseFormat(t),t=>{switch(t){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12==0?12:e.hour%12);case"hh":return this.num(e.hour%12==0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return i({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return i({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return i({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return a();case"d":return r?s({day:"numeric"},"day"):this.num(e.day);case"dd":return r?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":case"E":return this.num(e.weekday);case"ccc":return u("short",!0);case"cccc":return u("long",!0);case"ccccc":return u("narrow",!0);case"EEE":return u("short",!1);case"EEEE":return u("long",!1);case"EEEEE":return u("narrow",!1);case"L":return r?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return r?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return o("short",!0);case"LLLL":return o("long",!0);case"LLLLL":return o("narrow",!0);case"M":return r?s({month:"numeric"},"month"):this.num(e.month);case"MM":return r?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return o("short",!1);case"MMMM":return o("long",!1);case"MMMMM":return o("narrow",!1);case"y":return r?s({year:"numeric"},"year"):this.num(e.year);case"yy":return r?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return r?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return r?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return c("short");case"GG":return c("long");case"GGGGG":return c("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return l(t)}})}formatDurationFromString(e,t){const n=e=>{switch(e[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},r=Tt.parseFormat(t),s=r.reduce((e,{literal:t,val:n})=>t?e:e.concat(n),[]);return St(r,(e=>t=>{const r=n(t);return r?this.num(e.get(r),t.length):t})(e.shiftTo(...s.map(n).filter(e=>e))))}}const Nt=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Ot(...e){const t=e.reduce((e,t)=>e+t.source,"");return RegExp(`^${t}$`)}function Mt(...e){return t=>e.reduce(([e,n,r],s)=>{const[i,a,o]=s(t,r);return[{...e,...i},a||n,o]},[{},null,1]).slice(0,2)}function Dt(e,...t){if(null==e)return[null,null];for(const[n,r]of t){const t=n.exec(e);if(t)return r(t)}return[null,null]}function It(...e){return(t,n)=>{const r={};let s;for(s=0;s<e.length;s++)r[e[s]]=He(t[n+s]);return[r,null,n+s]}}const xt=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Vt=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Et=RegExp(`${Vt.source}${`(?:${xt.source}?(?:\\[(${Nt.source})\\])?)?`}`),Ct=RegExp(`(?:T${Et.source})?`),Ft=It("weekYear","weekNumber","weekDay"),$t=It("year","ordinal"),Wt=RegExp(`${Vt.source} ?(?:${xt.source}|(${Nt.source}))?`),Zt=RegExp(`(?: ${Wt.source})?`);function Lt(e,t,n){const r=e[t];return We(r)?n:He(r)}function zt(e,t){return[{hours:Lt(e,t,0),minutes:Lt(e,t+1,0),seconds:Lt(e,t+2,0),milliseconds:Pe(e[t+3])},null,t+4]}function At(e,t){const n=!e[t]&&!e[t+1],r=rt(e[t+1],e[t+2]);return[{},n?null:re.instance(r),t+3]}function jt(e,t){return[{},e[t]?j.create(e[t]):null,t+1]}const qt=RegExp(`^T?${Vt.source}$`),Ut=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function _t(e){const[t,n,r,s,i,a,o,u,l]=e,c="-"===t[0],h=u&&"-"===u[0],d=(e,t=!1)=>void 0!==e&&(t||e&&c)?-e:e;return[{years:d(Re(n)),months:d(Re(r)),weeks:d(Re(s)),days:d(Re(i)),hours:d(Re(a)),minutes:d(Re(o)),seconds:d(Re(u),"-0"===u),milliseconds:d(Pe(l),h)}]}const Yt={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Ht(e,t,n,r,s,i,a){const o={year:2===t.length?tt(He(t)):He(t),month:lt.indexOf(n)+1,day:He(r),hour:He(s),minute:He(i)};return a&&(o.second=He(a)),e&&(o.weekday=e.length>3?dt.indexOf(e)+1:mt.indexOf(e)+1),o}const Rt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function Pt(e){const[,t,n,r,s,i,a,o,u,l,c,h]=e,d=Ht(t,s,r,n,i,a,o);let m;return m=u?Yt[u]:l?0:rt(c,h),[d,new re(m)]}const Jt=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Gt=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Bt=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function Qt(e){const[,t,n,r,s,i,a,o]=e;return[Ht(t,s,r,n,i,a,o),re.utcInstance]}function Xt(e){const[,t,n,r,s,i,a,o]=e;return[Ht(t,o,n,r,s,i,a),re.utcInstance]}const Kt=Ot(/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Ct),en=Ot(/(\d{4})-?W(\d\d)(?:-?(\d))?/,Ct),tn=Ot(/(\d{4})-?(\d{3})/,Ct),nn=Ot(Et),rn=Mt(function(e,t){return[{year:Lt(e,t),month:Lt(e,t+1,1),day:Lt(e,t+2,1)},null,t+3]},zt,At,jt),sn=Mt(Ft,zt,At,jt),an=Mt($t,zt,At,jt),on=Mt(zt,At,jt);const un=Mt(zt);const ln=Ot(/(\d{4})-(\d\d)-(\d\d)/,Zt),cn=Ot(Wt),hn=Mt(zt,At,jt);const dn="Invalid Duration",mn={weeks:{days:7,hours:168,minutes:10080,seconds:604800,milliseconds:6048e5},days:{hours:24,minutes:1440,seconds:86400,milliseconds:864e5},hours:{minutes:60,seconds:3600,milliseconds:36e5},minutes:{seconds:60,milliseconds:6e4},seconds:{milliseconds:1e3}},fn={years:{quarters:4,months:12,weeks:52,days:365,hours:8760,minutes:525600,seconds:31536e3,milliseconds:31536e6},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:131040,seconds:7862400,milliseconds:78624e5},months:{weeks:4,days:30,hours:720,minutes:43200,seconds:2592e3,milliseconds:2592e6},...mn},yn=365.2425,gn=30.436875,wn={years:{quarters:4,months:12,weeks:52.1775,days:yn,hours:8765.82,minutes:525949.2,seconds:525949.2*60,milliseconds:525949.2*60*1e3},quarters:{months:3,weeks:13.044375,days:91.310625,hours:2191.455,minutes:131487.3,seconds:525949.2*60/4,milliseconds:7889237999.999999},months:{weeks:4.3481250000000005,days:gn,hours:730.485,minutes:43829.1,seconds:2629746,milliseconds:2629746e3},...mn},pn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],kn=pn.slice(0).reverse();function vn(e,t,n=!1){const r={values:n?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix};return new Tn(r)}function Sn(e,t){let n=t.milliseconds??0;for(const r of kn.slice(1))t[r]&&(n+=t[r]*e[r].milliseconds);return n}function bn(e,t){const n=Sn(e,t)<0?-1:1;pn.reduceRight((r,s)=>{if(We(t[s]))return r;if(r){const i=t[r]*n,a=e[s][r],o=Math.floor(i/a);t[s]+=o*n,t[r]-=o*a*n}return s},null),pn.reduce((n,r)=>{if(We(t[r]))return n;if(n){const s=t[n]%1;t[n]-=s,t[r]+=s*e[n][r]}return r},null)}class Tn{constructor(e){const t="longterm"===e.conversionAccuracy||!1;let n=t?wn:fn;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||te.create(),this.conversionAccuracy=t?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,t){return Tn.fromObject({milliseconds:e},t)}static fromObject(e,t={}){if(null==e||"object"!=typeof e)throw new o("Duration.fromObject: argument expected to be an object, got "+(null===e?"null":typeof e));return new Tn({values:it(e,Tn.normalizeUnit),loc:te.fromObject(t),conversionAccuracy:t.conversionAccuracy,matrix:t.matrix})}static fromDurationLike(e){if(Ze(e))return Tn.fromMillis(e);if(Tn.isDuration(e))return e;if("object"==typeof e)return Tn.fromObject(e);throw new o(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,t){const[n]=function(e){return Dt(e,[Ut,_t])}(e);return n?Tn.fromObject(n,t):Tn.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,t){const[n]=function(e){return Dt(e,[qt,un])}(e);return n?Tn.fromObject(n,t):Tn.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,t=null){if(!e)throw new o("need to specify a reason the Duration is invalid");const n=e instanceof ve?e:new ve(e,t);if(ke.throwOnInvalid)throw new s(n);return new Tn({invalid:n})}static normalizeUnit(e){const t={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e?e.toLowerCase():e];if(!t)throw new a(e);return t}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,t={}){const n={...t,floor:!1!==t.round&&!1!==t.floor};return this.isValid?Tt.create(this.loc,n).formatDurationFromString(this,e):dn}toHuman(e={}){if(!this.isValid)return dn;const t=pn.map(t=>{const n=this.values[t];return We(n)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:t.slice(0,-1)}).format(n)}).filter(e=>e);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(t)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return 0!==this.years&&(e+=this.years+"Y"),0===this.months&&0===this.quarters||(e+=this.months+3*this.quarters+"M"),0!==this.weeks&&(e+=this.weeks+"W"),0!==this.days&&(e+=this.days+"D"),0===this.hours&&0===this.minutes&&0===this.seconds&&0===this.milliseconds||(e+="T"),0!==this.hours&&(e+=this.hours+"H"),0!==this.minutes&&(e+=this.minutes+"M"),0===this.seconds&&0===this.milliseconds||(e+=Je(this.seconds+this.milliseconds/1e3,3)+"S"),"P"===e&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;const t=this.toMillis();if(t<0||t>=864e5)return null;e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1};return yr.fromMillis(t,{zone:"UTC"}).toISOTime(e)}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?Sn(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;const t=Tn.fromDurationLike(e),n={};for(const e of pn)(qe(t.values,e)||qe(this.values,e))&&(n[e]=t.get(e)+this.get(e));return vn(this,{values:n},!0)}minus(e){if(!this.isValid)return this;const t=Tn.fromDurationLike(e);return this.plus(t.negate())}mapUnits(e){if(!this.isValid)return this;const t={};for(const n of Object.keys(this.values))t[n]=st(e(this.values[n],n));return vn(this,{values:t},!0)}get(e){return this[Tn.normalizeUnit(e)]}set(e){if(!this.isValid)return this;return vn(this,{values:{...this.values,...it(e,Tn.normalizeUnit)}})}reconfigure({locale:e,numberingSystem:t,conversionAccuracy:n,matrix:r}={}){return vn(this,{loc:this.loc.clone({locale:e,numberingSystem:t}),matrix:r,conversionAccuracy:n})}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;const e=this.toObject();return bn(this.matrix,e),vn(this,{values:e},!0)}rescale(){if(!this.isValid)return this;return vn(this,{values:function(e){const t={};for(const[n,r]of Object.entries(e))0!==r&&(t[n]=r);return t}(this.normalize().shiftToAll().toObject())},!0)}shiftTo(...e){if(!this.isValid)return this;if(0===e.length)return this;e=e.map(e=>Tn.normalizeUnit(e));const t={},n={},r=this.toObject();let s;for(const i of pn)if(e.indexOf(i)>=0){s=i;let e=0;for(const t in n)e+=this.matrix[t][i]*n[t],n[t]=0;Ze(r[i])&&(e+=r[i]);const a=Math.trunc(e);t[i]=a,n[i]=(1e3*e-1e3*a)/1e3}else Ze(r[i])&&(n[i]=r[i]);for(const e in n)0!==n[e]&&(t[s]+=e===s?n[e]:n[e]/this.matrix[s][e]);return bn(this.matrix,t),vn(this,{values:t},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const e={};for(const t of Object.keys(this.values))e[t]=0===this.values[t]?0:-this.values[t];return vn(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return null===this.invalid}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid)return!1;if(!this.loc.equals(e.loc))return!1;function t(e,t){return void 0===e||0===e?void 0===t||0===t:e===t}for(const n of pn)if(!t(this.values[n],e.values[n]))return!1;return!0}}const Nn="Invalid Interval";class On{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,t=null){if(!e)throw new o("need to specify a reason the Interval is invalid");const n=e instanceof ve?e:new ve(e,t);if(ke.throwOnInvalid)throw new r(n);return new On({invalid:n})}static fromDateTimes(e,t){const n=gr(e),r=gr(t),s=function(e,t){return e&&e.isValid?t&&t.isValid?t<e?On.invalid("end before start",`The end of an interval must be after its start, but you had start=${e.toISO()} and end=${t.toISO()}`):null:On.invalid("missing or invalid end"):On.invalid("missing or invalid start")}(n,r);return null==s?new On({start:n,end:r}):s}static after(e,t){const n=Tn.fromDurationLike(t),r=gr(e);return On.fromDateTimes(r,r.plus(n))}static before(e,t){const n=Tn.fromDurationLike(t),r=gr(e);return On.fromDateTimes(r.minus(n),r)}static fromISO(e,t){const[n,r]=(e||"").split("/",2);if(n&&r){let e,s,i,a;try{e=yr.fromISO(n,t),s=e.isValid}catch(r){s=!1}try{i=yr.fromISO(r,t),a=i.isValid}catch(r){a=!1}if(s&&a)return On.fromDateTimes(e,i);if(s){const n=Tn.fromISO(r,t);if(n.isValid)return On.after(e,n)}else if(a){const e=Tn.fromISO(n,t);if(e.isValid)return On.before(i,e)}}return On.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return null===this.invalidReason}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds",t){if(!this.isValid)return NaN;const n=this.start.startOf(e,t);let r;return r=t?.useLocaleWeeks?this.end.reconfigure({locale:n.locale}):this.end,r=r.startOf(e,t),Math.floor(r.diff(n,e).get(e))+(r.valueOf()!==this.end.valueOf())}hasSame(e){return!!this.isValid&&(this.isEmpty()||this.e.minus(1).hasSame(this.s,e))}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return!!this.isValid&&this.s>e}isBefore(e){return!!this.isValid&&this.e<=e}contains(e){return!!this.isValid&&(this.s<=e&&this.e>e)}set({start:e,end:t}={}){return this.isValid?On.fromDateTimes(e||this.s,t||this.e):this}splitAt(...e){if(!this.isValid)return[];const t=e.map(gr).filter(e=>this.contains(e)).sort((e,t)=>e.toMillis()-t.toMillis()),n=[];let{s:r}=this,s=0;for(;r<this.e;){const e=t[s]||this.e,i=+e>+this.e?this.e:e;n.push(On.fromDateTimes(r,i)),r=i,s+=1}return n}splitBy(e){const t=Tn.fromDurationLike(e);if(!this.isValid||!t.isValid||0===t.as("milliseconds"))return[];let n,{s:r}=this,s=1;const i=[];for(;r<this.e;){const e=this.start.plus(t.mapUnits(e=>e*s));n=+e>+this.e?this.e:e,i.push(On.fromDateTimes(r,n)),r=n,s+=1}return i}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return!!this.isValid&&+this.e===+e.s}abutsEnd(e){return!!this.isValid&&+e.e===+this.s}engulfs(e){return!!this.isValid&&(this.s<=e.s&&this.e>=e.e)}equals(e){return!(!this.isValid||!e.isValid)&&(this.s.equals(e.s)&&this.e.equals(e.e))}intersection(e){if(!this.isValid)return this;const t=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return t>=n?null:On.fromDateTimes(t,n)}union(e){if(!this.isValid)return this;const t=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return On.fromDateTimes(t,n)}static merge(e){const[t,n]=e.sort((e,t)=>e.s-t.s).reduce(([e,t],n)=>t?t.overlaps(n)||t.abutsStart(n)?[e,t.union(n)]:[e.concat([t]),n]:[e,n],[[],null]);return n&&t.push(n),t}static xor(e){let t=null,n=0;const r=[],s=e.map(e=>[{time:e.s,type:"s"},{time:e.e,type:"e"}]),i=Array.prototype.concat(...s).sort((e,t)=>e.time-t.time);for(const e of i)n+="s"===e.type?1:-1,1===n?t=e.time:(t&&+t!==+e.time&&r.push(On.fromDateTimes(t,e.time)),t=null);return On.merge(r)}difference(...e){return On.xor([this].concat(e)).map(e=>this.intersection(e)).filter(e=>e&&!e.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:Nn}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=d,t={}){return this.isValid?Tt.create(this.s.loc.clone(t),e).formatInterval(this):Nn}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Nn}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Nn}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Nn}toFormat(e,{separator:t=" – "}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:Nn}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):Tn.invalid(this.invalidReason)}mapEndpoints(e){return On.fromDateTimes(e(this.s),e(this.e))}}class Mn{static hasDST(e=ke.defaultZone){const t=yr.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return j.isValidZone(e)}static normalizeZone(e){return ie(e,ke.defaultZone)}static getStartOfWeek({locale:e=null,locObj:t=null}={}){return(t||te.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:t=null}={}){return(t||te.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:t=null}={}){return(t||te.create(e)).getWeekendDays().slice()}static months(e="long",{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:s="gregory"}={}){return(r||te.create(t,n,s)).months(e)}static monthsFormat(e="long",{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:s="gregory"}={}){return(r||te.create(t,n,s)).months(e,!0)}static weekdays(e="long",{locale:t=null,numberingSystem:n=null,locObj:r=null}={}){return(r||te.create(t,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:t=null,numberingSystem:n=null,locObj:r=null}={}){return(r||te.create(t,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return te.create(e).meridiems()}static eras(e="short",{locale:t=null}={}){return te.create(t,null,"gregory").eras(e)}static features(){return{relative:ze(),localeWeek:Ae()}}}function Dn(e,t){const n=e=>e.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),r=n(t)-n(e);return Math.floor(Tn.fromMillis(r).as("days"))}function In(e,t,n,r){let[s,i,a,o]=function(e,t,n){const r=[["years",(e,t)=>t.year-e.year],["quarters",(e,t)=>t.quarter-e.quarter+4*(t.year-e.year)],["months",(e,t)=>t.month-e.month+12*(t.year-e.year)],["weeks",(e,t)=>{const n=Dn(e,t);return(n-n%7)/7}],["days",Dn]],s={},i=e;let a,o;for(const[u,l]of r)n.indexOf(u)>=0&&(a=u,s[u]=l(e,t),o=i.plus(s),o>t?(s[u]--,(e=i.plus(s))>t&&(o=e,s[u]--,e=i.plus(s))):e=o);return[e,s,o,a]}(e,t,n);const u=t-s,l=n.filter(e=>["hours","minutes","seconds","milliseconds"].indexOf(e)>=0);0===l.length&&(a<t&&(a=s.plus({[o]:1})),a!==s&&(i[o]=(i[o]||0)+u/(a-s)));const c=Tn.fromObject(i,r);return l.length>0?Tn.fromMillis(u,r).shiftTo(...l).plus(c):c}function xn(e,t=e=>e){return{regex:e,deser:([e])=>t(function(e){let t=parseInt(e,10);if(isNaN(t)){t="";for(let n=0;n<e.length;n++){const r=e.charCodeAt(n);if(-1!==e[n].search(ae.hanidec))t+=ue.indexOf(e[n]);else for(const e in oe){const[n,s]=oe[e];r>=n&&r<=s&&(t+=r-n)}}return parseInt(t,10)}return t}(e))}}const Vn=`[ ${String.fromCharCode(160)}]`,En=new RegExp(Vn,"g");function Cn(e){return e.replace(/\./g,"\\.?").replace(En,Vn)}function Fn(e){return e.replace(/\./g,"").replace(En," ").toLowerCase()}function $n(e,t){return null===e?null:{regex:RegExp(e.map(Cn).join("|")),deser:([n])=>e.findIndex(e=>Fn(n)===Fn(e))+t}}function Wn(e,t){return{regex:e,deser:([,e,t])=>rt(e,t),groups:t}}function Zn(e){return{regex:e,deser:([e])=>e}}const Ln={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};let zn=null;function An(e,t){return Array.prototype.concat(...e.map(e=>function(e,t){if(e.literal)return e;const n=Un(Tt.macroTokenToFormatOpts(e.val),t);return null==n||n.includes(void 0)?e:n}(e,t)))}class jn{constructor(e,t){if(this.locale=e,this.format=t,this.tokens=An(Tt.parseFormat(t),e),this.units=this.tokens.map(t=>function(e,t){const n=ce(t),r=ce(t,"{2}"),s=ce(t,"{3}"),i=ce(t,"{4}"),a=ce(t,"{6}"),o=ce(t,"{1,2}"),u=ce(t,"{1,3}"),l=ce(t,"{1,6}"),c=ce(t,"{1,9}"),h=ce(t,"{2,4}"),d=ce(t,"{4,6}"),m=e=>{return{regex:RegExp((t=e.val,t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"))),deser:([e])=>e,literal:!0};var t},f=(f=>{if(e.literal)return m(f);switch(f.val){case"G":return $n(t.eras("short"),0);case"GG":return $n(t.eras("long"),0);case"y":return xn(l);case"yy":case"kk":return xn(h,tt);case"yyyy":case"kkkk":return xn(i);case"yyyyy":return xn(d);case"yyyyyy":return xn(a);case"M":case"L":case"d":case"H":case"h":case"m":case"q":case"s":case"W":return xn(o);case"MM":case"LL":case"dd":case"HH":case"hh":case"mm":case"qq":case"ss":case"WW":return xn(r);case"MMM":return $n(t.months("short",!0),1);case"MMMM":return $n(t.months("long",!0),1);case"LLL":return $n(t.months("short",!1),1);case"LLLL":return $n(t.months("long",!1),1);case"o":case"S":return xn(u);case"ooo":case"SSS":return xn(s);case"u":return Zn(c);case"uu":return Zn(o);case"uuu":case"E":case"c":return xn(n);case"a":return $n(t.meridiems(),0);case"EEE":return $n(t.weekdays("short",!1),1);case"EEEE":return $n(t.weekdays("long",!1),1);case"ccc":return $n(t.weekdays("short",!0),1);case"cccc":return $n(t.weekdays("long",!0),1);case"Z":case"ZZ":return Wn(new RegExp(`([+-]${o.source})(?::(${r.source}))?`),2);case"ZZZ":return Wn(new RegExp(`([+-]${o.source})(${r.source})?`),2);case"z":return Zn(/[a-z_+-/]{1,256}?/i);case" ":return Zn(/[^\S\n\r]/);default:return m(f)}})(e)||{invalidReason:"missing Intl.DateTimeFormat.formatToParts support"};return f.token=e,f}(t,e)),this.disqualifyingUnit=this.units.find(e=>e.invalidReason),!this.disqualifyingUnit){const[e,t]=[`^${(n=this.units).map(e=>e.regex).reduce((e,t)=>`${e}(${t.source})`,"")}$`,n];this.regex=RegExp(e,"i"),this.handlers=t}var n}explainFromTokens(e){if(this.isValid){const[t,n]=function(e,t,n){const r=e.match(t);if(r){const e={};let t=1;for(const s in n)if(qe(n,s)){const i=n[s],a=i.groups?i.groups+1:1;!i.literal&&i.token&&(e[i.token.val[0]]=i.deser(r.slice(t,t+a))),t+=a}return[r,e]}return[r,{}]}(e,this.regex,this.handlers),[r,s,a]=n?function(e){let t,n=null;return We(e.z)||(n=j.create(e.z)),We(e.Z)||(n||(n=new re(e.Z)),t=e.Z),We(e.q)||(e.M=3*(e.q-1)+1),We(e.h)||(e.h<12&&1===e.a?e.h+=12:12===e.h&&0===e.a&&(e.h=0)),0===e.G&&e.y&&(e.y=-e.y),We(e.u)||(e.S=Pe(e.u)),[Object.keys(e).reduce((t,n)=>{const r=(e=>{switch(e){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}})(n);return r&&(t[r]=e[n]),t},{}),n,t]}(n):[null,null,void 0];if(qe(n,"a")&&qe(n,"H"))throw new i("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:t,matches:n,result:r,zone:s,specificOffset:a}}return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function qn(e,t,n){return new jn(e,n).explainFromTokens(t)}function Un(e,t){if(!e)return null;const n=Tt.create(t,e).dtFormatter((zn||(zn=yr.fromMillis(1555555555555)),zn)),r=n.formatToParts(),s=n.resolvedOptions();return r.map(t=>function(e,t,n){const{type:r,value:s}=e;if("literal"===r){const e=/^\s+$/.test(s);return{literal:!e,val:e?" ":s}}const i=t[r];let a=r;"hour"===r&&(a=null!=t.hour12?t.hour12?"hour12":"hour24":null!=t.hourCycle?"h11"===t.hourCycle||"h12"===t.hourCycle?"hour12":"hour24":n.hour12?"hour12":"hour24");let o=Ln[a];if("object"==typeof o&&(o=o[i]),o)return{literal:!1,val:o}}(t,e,s))}const _n="Invalid DateTime",Yn=864e13;function Hn(e){return new ve("unsupported zone",`the zone "${e.name}" is not supported`)}function Rn(e){return null===e.weekData&&(e.weekData=Ie(e.c)),e.weekData}function Pn(e){return null===e.localWeekData&&(e.localWeekData=Ie(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function Jn(e,t){const n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new yr({...n,...t,old:n})}function Gn(e,t,n){let r=e-60*t*1e3;const s=n.offset(r);if(t===s)return[r,t];r-=60*(s-t)*1e3;const i=n.offset(r);return s===i?[r,s]:[e-60*Math.min(s,i)*1e3,Math.max(s,i)]}function Bn(e,t){const n=new Date(e+=60*t*1e3);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function Qn(e,t,n){return Gn(Xe(e),t,n)}function Xn(e,t){const n=e.o,r=e.c.year+Math.trunc(t.years),s=e.c.month+Math.trunc(t.months)+3*Math.trunc(t.quarters),i={...e.c,year:r,month:s,day:Math.min(e.c.day,Qe(r,s))+Math.trunc(t.days)+7*Math.trunc(t.weeks)},a=Tn.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as("milliseconds"),o=Xe(i);let[u,l]=Gn(o,n,e.zone);return 0!==a&&(u+=a,l=e.zone.offset(u)),{ts:u,o:l}}function Kn(e,t,n,r,s,i){const{setZone:a,zone:o}=n;if(e&&0!==Object.keys(e).length||t){const r=t||o,s=yr.fromObject(e,{...n,zone:r,specificOffset:i});return a?s:s.setZone(o)}return yr.invalid(new ve("unparsable",`the input "${s}" can't be parsed as ${r}`))}function er(e,t,n=!0){return e.isValid?Tt.create(te.create("en-US"),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function tr(e,t){const n=e.c.year>9999||e.c.year<0;let r="";return n&&e.c.year>=0&&(r+="+"),r+=Ye(e.c.year,n?6:4),t?(r+="-",r+=Ye(e.c.month),r+="-",r+=Ye(e.c.day)):(r+=Ye(e.c.month),r+=Ye(e.c.day)),r}function nr(e,t,n,r,s,i){let a=Ye(e.c.hour);return t?(a+=":",a+=Ye(e.c.minute),0===e.c.millisecond&&0===e.c.second&&n||(a+=":")):a+=Ye(e.c.minute),0===e.c.millisecond&&0===e.c.second&&n||(a+=Ye(e.c.second),0===e.c.millisecond&&r||(a+=".",a+=Ye(e.c.millisecond,3))),s&&(e.isOffsetFixed&&0===e.offset&&!i?a+="Z":e.o<0?(a+="-",a+=Ye(Math.trunc(-e.o/60)),a+=":",a+=Ye(Math.trunc(-e.o%60))):(a+="+",a+=Ye(Math.trunc(e.o/60)),a+=":",a+=Ye(Math.trunc(e.o%60)))),i&&(a+="["+e.zone.ianaName+"]"),a}const rr={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},sr={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},ir={ordinal:1,hour:0,minute:0,second:0,millisecond:0},ar=["year","month","day","hour","minute","second","millisecond"],or=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],ur=["year","ordinal","hour","minute","second","millisecond"];function lr(e){switch(e.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return function(e){const t={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[e.toLowerCase()];if(!t)throw new a(e);return t}(e)}}function cr(e,t){const n=ie(t.zone,ke.defaultZone);if(!n.isValid)return yr.invalid(Hn(n));const r=te.fromObject(t);let s,i;if(We(e.year))s=ke.now();else{for(const t of ar)We(e[t])&&(e[t]=rr[t]);const t=Fe(e)||$e(e);if(t)return yr.invalid(t);const r=function(e){if(void 0===mr&&(mr=ke.now()),"iana"!==e.type)return e.offset(mr);const t=e.name;let n=fr.get(t);return void 0===n&&(n=e.offset(mr),fr.set(t,n)),n}(n);[s,i]=Qn(e,r,n)}return new yr({ts:s,zone:n,loc:r,o:i})}function hr(e,t,n){const r=!!We(n.round)||n.round,s=(e,s)=>{e=Je(e,r||n.calendary?0:2,!0);return t.loc.clone(n).relFormatter(n).format(e,s)},i=r=>n.calendary?t.hasSame(e,r)?0:t.startOf(r).diff(e.startOf(r),r).get(r):t.diff(e,r).get(r);if(n.unit)return s(i(n.unit),n.unit);for(const e of n.units){const t=i(e);if(Math.abs(t)>=1)return s(t,e)}return s(e>t?-0:0,n.units[n.units.length-1])}function dr(e){let t,n={};return e.length>0&&"object"==typeof e[e.length-1]?(n=e[e.length-1],t=Array.from(e).slice(0,e.length-1)):t=Array.from(e),[n,t]}let mr;const fr=new Map;class yr{constructor(e){const t=e.zone||ke.defaultZone;let n=e.invalid||(Number.isNaN(e.ts)?new ve("invalid input"):null)||(t.isValid?null:Hn(t));this.ts=We(e.ts)?ke.now():e.ts;let r=null,s=null;if(!n){if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t))[r,s]=[e.old.c,e.old.o];else{const i=Ze(e.o)&&!e.old?e.o:t.offset(this.ts);r=Bn(this.ts,i),n=Number.isNaN(r.year)?new ve("invalid input"):null,r=n?null:r,s=n?null:i}}this._zone=t,this.loc=e.loc||te.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=r,this.o=s,this.isLuxonDateTime=!0}static now(){return new yr({})}static local(){const[e,t]=dr(arguments),[n,r,s,i,a,o,u]=t;return cr({year:n,month:r,day:s,hour:i,minute:a,second:o,millisecond:u},e)}static utc(){const[e,t]=dr(arguments),[n,r,s,i,a,o,u]=t;return e.zone=re.utcInstance,cr({year:n,month:r,day:s,hour:i,minute:a,second:o,millisecond:u},e)}static fromJSDate(e,t={}){const n=(r=e,"[object Date]"===Object.prototype.toString.call(r)?e.valueOf():NaN);var r;if(Number.isNaN(n))return yr.invalid("invalid input");const s=ie(t.zone,ke.defaultZone);return s.isValid?new yr({ts:n,zone:s,loc:te.fromObject(t)}):yr.invalid(Hn(s))}static fromMillis(e,t={}){if(Ze(e))return e<-Yn||e>Yn?yr.invalid("Timestamp out of range"):new yr({ts:e,zone:ie(t.zone,ke.defaultZone),loc:te.fromObject(t)});throw new o(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,t={}){if(Ze(e))return new yr({ts:1e3*e,zone:ie(t.zone,ke.defaultZone),loc:te.fromObject(t)});throw new o("fromSeconds requires a numerical input")}static fromObject(e,t={}){e=e||{};const n=ie(t.zone,ke.defaultZone);if(!n.isValid)return yr.invalid(Hn(n));const r=te.fromObject(t),s=it(e,lr),{minDaysInFirstWeek:a,startOfWeek:o}=Ce(s,r),u=ke.now(),l=We(t.specificOffset)?n.offset(u):t.specificOffset,c=!We(s.ordinal),h=!We(s.year),d=!We(s.month)||!We(s.day),m=h||d,f=s.weekYear||s.weekNumber;if((m||c)&&f)throw new i("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(d&&c)throw new i("Can't mix ordinal dates with month/day");const y=f||s.weekday&&!m;let g,w,p=Bn(u,l);y?(g=or,w=sr,p=Ie(p,a,o)):c?(g=ur,w=ir,p=Ve(p)):(g=ar,w=rr);let k=!1;for(const e of g){We(s[e])?s[e]=k?w[e]:p[e]:k=!0}const v=y?function(e,t=4,n=1){const r=Le(e.weekYear),s=_e(e.weekNumber,1,et(e.weekYear,t,n)),i=_e(e.weekday,1,7);return r?s?!i&&Te("weekday",e.weekday):Te("week",e.weekNumber):Te("weekYear",e.weekYear)}(s,a,o):c?function(e){const t=Le(e.year),n=_e(e.ordinal,1,Be(e.year));return t?!n&&Te("ordinal",e.ordinal):Te("year",e.year)}(s):Fe(s),S=v||$e(s);if(S)return yr.invalid(S);const b=y?xe(s,a,o):c?Ee(s):s,[T,N]=Qn(b,l,n),O=new yr({ts:T,zone:n,o:N,loc:r});return s.weekday&&m&&e.weekday!==O.weekday?yr.invalid("mismatched weekday",`you can't specify both a weekday of ${s.weekday} and a date of ${O.toISO()}`):O.isValid?O:yr.invalid(O.invalid)}static fromISO(e,t={}){const[n,r]=function(e){return Dt(e,[Kt,rn],[en,sn],[tn,an],[nn,on])}(e);return Kn(n,r,t,"ISO 8601",e)}static fromRFC2822(e,t={}){const[n,r]=function(e){return Dt(function(e){return e.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}(e),[Rt,Pt])}(e);return Kn(n,r,t,"RFC 2822",e)}static fromHTTP(e,t={}){const[n,r]=function(e){return Dt(e,[Jt,Qt],[Gt,Qt],[Bt,Xt])}(e);return Kn(n,r,t,"HTTP",t)}static fromFormat(e,t,n={}){if(We(e)||We(t))throw new o("fromFormat requires an input string and a format");const{locale:r=null,numberingSystem:s=null}=n,i=te.fromOpts({locale:r,numberingSystem:s,defaultToEN:!0}),[a,u,l,c]=function(e,t,n){const{result:r,zone:s,specificOffset:i,invalidReason:a}=qn(e,t,n);return[r,s,i,a]}(i,e,t);return c?yr.invalid(c):Kn(a,u,n,`format ${t}`,e,l)}static fromString(e,t,n={}){return yr.fromFormat(e,t,n)}static fromSQL(e,t={}){const[n,r]=function(e){return Dt(e,[ln,rn],[cn,hn])}(e);return Kn(n,r,t,"SQL",e)}static invalid(e,t=null){if(!e)throw new o("need to specify a reason the DateTime is invalid");const r=e instanceof ve?e:new ve(e,t);if(ke.throwOnInvalid)throw new n(r);return new yr({invalid:r})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,t={}){const n=Un(e,te.fromObject(t));return n?n.map(e=>e?e.val:null).join(""):null}static expandFormat(e,t={}){return An(Tt.parseFormat(e),te.fromObject(t)).map(e=>e.val).join("")}static resetCache(){mr=void 0,fr.clear()}get(e){return this[e]}get isValid(){return null===this.invalid}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Rn(this).weekYear:NaN}get weekNumber(){return this.isValid?Rn(this).weekNumber:NaN}get weekday(){return this.isValid?Rn(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Pn(this).weekday:NaN}get localWeekNumber(){return this.isValid?Pn(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Pn(this).weekYear:NaN}get ordinal(){return this.isValid?Ve(this.c).ordinal:NaN}get monthShort(){return this.isValid?Mn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Mn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Mn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Mn.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return!this.isOffsetFixed&&(this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset)}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];const e=864e5,t=6e4,n=Xe(this.c),r=this.zone.offset(n-e),s=this.zone.offset(n+e),i=this.zone.offset(n-r*t),a=this.zone.offset(n-s*t);if(i===a)return[this];const o=n-i*t,u=n-a*t,l=Bn(o,i),c=Bn(u,a);return l.hour===c.hour&&l.minute===c.minute&&l.second===c.second&&l.millisecond===c.millisecond?[Jn(this,{ts:o}),Jn(this,{ts:u})]:[this]}get isInLeapYear(){return Ge(this.year)}get daysInMonth(){return Qe(this.year,this.month)}get daysInYear(){return this.isValid?Be(this.year):NaN}get weeksInWeekYear(){return this.isValid?et(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?et(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){const{locale:t,numberingSystem:n,calendar:r}=Tt.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:n,outputCalendar:r}}toUTC(e=0,t={}){return this.setZone(re.instance(e),t)}toLocal(){return this.setZone(ke.defaultZone)}setZone(e,{keepLocalTime:t=!1,keepCalendarTime:n=!1}={}){if((e=ie(e,ke.defaultZone)).equals(this.zone))return this;if(e.isValid){let r=this.ts;if(t||n){const t=e.offset(this.ts),n=this.toObject();[r]=Qn(n,t,e)}return Jn(this,{ts:r,zone:e})}return yr.invalid(Hn(e))}reconfigure({locale:e,numberingSystem:t,outputCalendar:n}={}){return Jn(this,{loc:this.loc.clone({locale:e,numberingSystem:t,outputCalendar:n})})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;const t=it(e,lr),{minDaysInFirstWeek:n,startOfWeek:r}=Ce(t,this.loc),s=!We(t.weekYear)||!We(t.weekNumber)||!We(t.weekday),a=!We(t.ordinal),o=!We(t.year),u=!We(t.month)||!We(t.day),l=o||u,c=t.weekYear||t.weekNumber;if((l||a)&&c)throw new i("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(u&&a)throw new i("Can't mix ordinal dates with month/day");let h;s?h=xe({...Ie(this.c,n,r),...t},n,r):We(t.ordinal)?(h={...this.toObject(),...t},We(t.day)&&(h.day=Math.min(Qe(h.year,h.month),h.day))):h=Ee({...Ve(this.c),...t});const[d,m]=Qn(h,this.o,this.zone);return Jn(this,{ts:d,o:m})}plus(e){if(!this.isValid)return this;return Jn(this,Xn(this,Tn.fromDurationLike(e)))}minus(e){if(!this.isValid)return this;return Jn(this,Xn(this,Tn.fromDurationLike(e).negate()))}startOf(e,{useLocaleWeeks:t=!1}={}){if(!this.isValid)return this;const n={},r=Tn.normalizeUnit(e);switch(r){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0}if("weeks"===r)if(t){const e=this.loc.getStartOfWeek(),{weekday:t}=this;t<e&&(n.weekNumber=this.weekNumber-1),n.weekday=e}else n.weekday=1;if("quarters"===r){const e=Math.ceil(this.month/3);n.month=3*(e-1)+1}return this.set(n)}endOf(e,t){return this.isValid?this.plus({[e]:1}).startOf(e,t).minus(1):this}toFormat(e,t={}){return this.isValid?Tt.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):_n}toLocaleString(e=d,t={}){return this.isValid?Tt.create(this.loc.clone(t),e).formatDateTime(this):_n}toLocaleParts(e={}){return this.isValid?Tt.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:t=!1,suppressMilliseconds:n=!1,includeOffset:r=!0,extendedZone:s=!1}={}){if(!this.isValid)return null;const i="extended"===e;let a=tr(this,i);return a+="T",a+=nr(this,i,t,n,r,s),a}toISODate({format:e="extended"}={}){return this.isValid?tr(this,"extended"===e):null}toISOWeekDate(){return er(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:t=!1,includeOffset:n=!0,includePrefix:r=!1,extendedZone:s=!1,format:i="extended"}={}){if(!this.isValid)return null;return(r?"T":"")+nr(this,"extended"===i,t,e,n,s)}toRFC2822(){return er(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return er(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?tr(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:t=!1,includeOffsetSpace:n=!0}={}){let r="HH:mm:ss.SSS";return(t||e)&&(n&&(r+=" "),t?r+="z":e&&(r+="ZZ")),er(this,r,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():_n}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};const t={...this.c};return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,t="milliseconds",n={}){if(!this.isValid||!e.isValid)return Tn.invalid("created by diffing an invalid DateTime");const r={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=(o=t,Array.isArray(o)?o:[o]).map(Tn.normalizeUnit),i=e.valueOf()>this.valueOf(),a=In(i?this:e,i?e:this,s,r);var o;return i?a.negate():a}diffNow(e="milliseconds",t={}){return this.diff(yr.now(),e,t)}until(e){return this.isValid?On.fromDateTimes(this,e):this}hasSame(e,t,n){if(!this.isValid)return!1;const r=e.valueOf(),s=this.setZone(e.zone,{keepLocalTime:!0});return s.startOf(t,n)<=r&&r<=s.endOf(t,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;const t=e.base||yr.fromObject({},{zone:this.zone}),n=e.padding?this<t?-e.padding:e.padding:0;let r=["years","months","days","hours","minutes","seconds"],s=e.unit;return Array.isArray(e.unit)&&(r=e.unit,s=void 0),hr(t,this.plus(n),{...e,numeric:"always",units:r,unit:s})}toRelativeCalendar(e={}){return this.isValid?hr(e.base||yr.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(yr.isDateTime))throw new o("min requires all arguments be DateTimes");return je(e,e=>e.valueOf(),Math.min)}static max(...e){if(!e.every(yr.isDateTime))throw new o("max requires all arguments be DateTimes");return je(e,e=>e.valueOf(),Math.max)}static fromFormatExplain(e,t,n={}){const{locale:r=null,numberingSystem:s=null}=n;return qn(te.fromOpts({locale:r,numberingSystem:s,defaultToEN:!0}),e,t)}static fromStringExplain(e,t,n={}){return yr.fromFormatExplain(e,t,n)}static buildFormatParser(e,t={}){const{locale:n=null,numberingSystem:r=null}=t,s=te.fromOpts({locale:n,numberingSystem:r,defaultToEN:!0});return new jn(s,e)}static fromFormatParser(e,t,n={}){if(We(e)||We(t))throw new o("fromFormatParser requires an input string and a format parser");const{locale:r=null,numberingSystem:s=null}=n,i=te.fromOpts({locale:r,numberingSystem:s,defaultToEN:!0});if(!i.equals(t.locale))throw new o(`fromFormatParser called with a locale of ${i}, but the format parser was created for ${t.locale}`);const{result:a,zone:u,specificOffset:l,invalidReason:c}=t.explainFromTokens(e);return c?yr.invalid(c):Kn(a,u,n,`format ${t.format}`,e,l)}static get DATE_SHORT(){return d}static get DATE_MED(){return m}static get DATE_MED_WITH_WEEKDAY(){return f}static get DATE_FULL(){return y}static get DATE_HUGE(){return g}static get TIME_SIMPLE(){return w}static get TIME_WITH_SECONDS(){return p}static get TIME_WITH_SHORT_OFFSET(){return k}static get TIME_WITH_LONG_OFFSET(){return v}static get TIME_24_SIMPLE(){return S}static get TIME_24_WITH_SECONDS(){return b}static get TIME_24_WITH_SHORT_OFFSET(){return T}static get TIME_24_WITH_LONG_OFFSET(){return N}static get DATETIME_SHORT(){return O}static get DATETIME_SHORT_WITH_SECONDS(){return M}static get DATETIME_MED(){return D}static get DATETIME_MED_WITH_SECONDS(){return I}static get DATETIME_MED_WITH_WEEKDAY(){return x}static get DATETIME_FULL(){return V}static get DATETIME_FULL_WITH_SECONDS(){return E}static get DATETIME_HUGE(){return C}static get DATETIME_HUGE_WITH_SECONDS(){return F}}function gr(e){if(yr.isDateTime(e))return e;if(e&&e.valueOf&&Ze(e.valueOf()))return yr.fromJSDate(e);if(e&&"object"==typeof e)return yr.fromObject(e);throw new o(`Unknown datetime argument: ${e}, of type ${typeof e}`)}function wr(e,t,n){if(!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length)throw new Error("datetime and x must be arrays of equal length.");if("string"!=typeof n)throw new Error("timezone must be a string.");for(const t of e){if(!yr.isDateTime(t))throw new Error("All entries in datetime must be Luxon DateTime objects.");if("UTC"!==t.zoneName)throw new Error("All datetime values must be in the UTC time zone.")}const r=e.map(e=>e.setZone(n).hour),s=0===r[0]?0:24-r[0],i=r[r.length-1],a=23===i?r.length:r.length-(i+1);return a<=s?{datetime:[],x:[]}:{datetime:e.slice(s,a),x:t.slice(s,a)}}function pr(e,t=1){const n=10**t;return e.map(e=>Number.isFinite(e)?Math.round(e*n)/n:null)}function kr(e){return e.map(e=>Number.isFinite(e)?e:null)}function vr(e){const t=kr(e).filter(e=>null!==e);return t.length>0?Math.min(...t):null}function Sr(e){const t=kr(e).filter(e=>null!==e);return t.length>0?Math.max(...t):null}function br(e){return kr(e).filter(e=>null!==e).length}function Tr(e){const t=kr(e).filter(e=>null!==e);return t.length>0?t.reduce((e,t)=>e+t,0):null}function Nr(e){const t=kr(e).filter(e=>null!==e);return t.length>0?Tr(t)/t.length:null}e.arrayCount=br,e.arrayMax=Sr,e.arrayMean=Nr,e.arrayMin=vr,e.arraySum=Tr,e.dailyStats=function(e,t,n){const r=wr(e,t,n);if(!Array.isArray(r.datetime)||r.datetime.length<24||r.datetime.length!==r.x.length)return{datetime:[],count:[],min:[],mean:[],max:[]};const s=r.datetime.length/24,i=[],a=[],o=[],u=[],l=[];for(let e=0;e<s;e++){const t=24*e,n=t+24;i[e]=r.datetime[t];const s=r.x.slice(t,n);a[e]=br(s),o[e]=vr(s),u[e]=Nr(s),l[e]=Sr(s)}return{datetime:i,count:pr(a,0),min:pr(o),mean:pr(u),max:pr(l)}},e.diurnalStats=function(e,t,n,r=7){const s=wr(e,t,n);if(!Array.isArray(s.datetime)||s.datetime.length<24||s.datetime.length!==s.x.length)return{hour:[],count:[],min:[],mean:[],max:[]};const i=s.datetime.length/24;r=i<r?i:r;const a=s.datetime.length-24*r,o=kr(s.x),u=o.map(e=>null===e?0:1),l=[],c=[],h=[],d=[],m=[];for(let e=0;e<24;e++){let t=Number.MAX_VALUE,n=Number.MIN_VALUE,s=0,i=null;for(let l=0;l<r;l++){const r=a+e+24*l;1===u[r]&&(null===i&&(i=0),t=o[r]<t?o[r]:t,n=o[r]>n?o[r]:n,i+=o[r],s+=1)}l[e]=e,h[e]=t===Number.MAX_VALUE?null:t,m[e]=n===Number.MIN_VALUE?null:n,c[e]=s,d[e]=null===i?null:i/s}return{hour:l,count:c,min:pr(h),mean:pr(d),max:pr(m)}},e.pm_nowcast=function(e){if(!Array.isArray(e))throw new Error("Input to pm_nowcast() must be an array.");return pr(e.map((t,n)=>{const r=n+1,s=r<12?0:r-12;return function(e){"number"==typeof e&&(e=[e]);e=e.reverse().map(e=>null===e?NaN:e);if(e.slice(0,3).reduce((e,t)=>Number.isNaN(t)?e:e+1,0)<2)return null;const t=e.reduce((e,t,n)=>Number.isNaN(t)?e:e.concat(n),[]),n=e.filter(e=>!Number.isNaN(e));if(0===n.length)return null;const r=n.reduce((e,t)=>t>e?t:e),s=n.reduce((e,t)=>t<e?t:e),i=(r-s)/r,a=1-i<.5?.5:1-i,o=e.map((e,t)=>e*Math.pow(a,t)).filter(e=>!Number.isNaN(e));if(0===o.length)return null;const u=o.reduce((e,t)=>e+t),l=t.map(e=>Math.pow(a,e)).reduce((e,t)=>e+t);let c=parseFloat((u/l).toFixed(1));return c=Number.isNaN(c)?null:c,c}(e.slice(s,r))}))},e.roundAndUseNull=pr,e.trimDate=wr,e.useNull=kr});
//# sourceMappingURL=air-monitor-algorithms.umd.js.map