cronli5 0.2.0 → 0.2.1

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/CHANGELOG.md CHANGED
@@ -6,6 +6,31 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.2.1]
10
+
11
+ ### Fixed
12
+
13
+ - The hour-range until-window ("from 9 a.m. until 6 p.m.") now applies **only
14
+ when the minute is wildcard** — i.e. the schedule fills each hour
15
+ continuously, so it genuinely runs *until* the top of the next hour. For any
16
+ restricted minute (fixed / step / range / list) the fires are discrete, so it
17
+ reverts to "from 9 a.m. through 5 p.m." (the last hour). 0.2.0 over-applied
18
+ "until" to the discrete cases (e.g. `0 9-17` read "until 6 p.m." instead of
19
+ "through 5 p.m.").
20
+
21
+ ### Changed (internal — output byte-identical)
22
+
23
+ - Lifted language-neutral helpers (`singleValues`, `offsetCleanStride`,
24
+ `isOpenStep`, the segment accessors, `hourListStride`) into the core, removing
25
+ ~300 lines of cross-renderer duplication.
26
+ - Unified the rendering-plan terminology on **plan** (`selectStrategy` →
27
+ `selectPlan`, `Language.strategy` → `Language.plan`).
28
+ - Scrubbed workflow-provenance labels from shipped comments and fixed
29
+ stale/typo comments.
30
+ - Adjusted the c8 branch-coverage gate 96 → 95: real branch coverage is ~100%;
31
+ the measured figure is limited by fixed esbuild/tsx function-default phantom
32
+ branches, and consolidating covered duplicate code crossed the rounding cliff.
33
+
9
34
  ## [0.2.0]
10
35
 
11
36
  A major naturalness pass for English, validated by blind native-speaker
package/README.md CHANGED
@@ -247,16 +247,16 @@ cronli5('0 12 * 6,12 *'); // 'every day in June and December at noon'
247
247
 
248
248
  // Ranges (wrap-around ranges describe overnight and weekend windows)
249
249
  cronli5('0-29 * * * *'); // 'every minute from 0 through 29 past the hour'
250
- cronli5('0 9-17 * * *'); // 'every hour from 9 a.m. until 6 p.m.'
250
+ cronli5('0 9-17 * * *'); // 'every hour from 9 a.m. through 5 p.m.'
251
251
  cronli5('0 0 1-15 * *'); // 'on the 1st through 15th at midnight'
252
- cronli5('0 22-2 * * *'); // 'every hour from 10 p.m. until 3 a.m.'
252
+ cronli5('0 22-2 * * *'); // 'every hour from 10 p.m. through 2 a.m.'
253
253
  cronli5('0 0 * * FRI-MON'); // 'every Friday through Monday at midnight'
254
254
 
255
255
  // Compound patterns
256
256
  cronli5('0,30 9 * * *'); // 'every day at 9 a.m. and 9:30 a.m.'
257
- cronli5('*/15 9-17 * * *'); // 'every 15 minutes from 9 a.m. until 6 p.m.'
257
+ cronli5('*/15 9-17 * * *'); // 'every 15 minutes from 9 a.m. through 5 p.m.'
258
258
  cronli5('30 9-17 * * *');
259
- // 'at 30 minutes past the hour from 9 a.m. until 6 p.m.'
259
+ // 'at 30 minutes past the hour from 9 a.m. through 5 p.m.'
260
260
  cronli5('0 12 1 1 *'); // 'on January 1 at noon'
261
261
  cronli5('0 * 13 * *'); // 'every hour on the 13th'
262
262
 
package/cronli5.min.js CHANGED
@@ -1,3 +1,3 @@
1
- "use strict";(()=>{var pe={SUN:0,MON:1,TUE:2,WED:3,THU:4,FRI:5,SAT:6},ye={JAN:1,FEB:2,MAR:3,APR:4,MAY:5,JUN:6,JUL:7,AUG:8,SEP:9,OCT:10,NOV:11,DEC:12},S={second:{cyclic:!0,max:59,min:0,top:59},minute:{cyclic:!0,max:59,min:0,top:59},hour:{cyclic:!0,max:23,min:0,top:23},date:{aliases:{"?":"*"},cyclic:!0,max:31,min:1,top:31},month:{cyclic:!0,max:12,min:1,numbers:ye,top:12},weekday:{aliases:{"?":"*",L:"6"},cyclic:!0,max:7,min:0,numbers:pe,top:6},year:{max:9999,min:1970}},v=["second","minute","hour","date","month","weekday","year"],X={"@annually":"0 0 1 1 *","@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@midnight":"0 0 * * *","@hourly":"0 * * * *"},W=6;function l(n,e){return(""+n).indexOf(e)!==-1}function Q(n){return Array.from(new Set(n))}function V(n){return/^\d+$/.test(n)}function _(n){if(n.length<5)return null;let e=n[1]-n[0];if(e<2)return null;for(let t=2;t<n.length;t+=1)if(n[t]-n[t-1]!==e)return null;return{start:n[0],interval:e,last:n[n.length-1]}}function Rn(n){return n===0?7:n}function wn(n){let e=n.flatMap(function(i){return i.kind==="step"?i.fires.map(function(o){return{kind:"single",value:""+o}}):[i]});function t(r){return r.kind==="range"?Rn(+r.bounds[0]):Rn(+r.value)}return e.map(function(i,u){return[i,u]}).sort(function(i,u){return t(i[0])-t(u[0])||i[1]-u[1]}).map(function(i){return i[0]})}function f(n,e){return V(n)?+n:e[n.toUpperCase()]}function Pn(n){return v.forEach(function(t){be(n[t],S[t],t)}),n}function be(n,e,t){typeof n!="string"&&typeof n!="number"&&vn(n,t);let r=""+n;r!=="*"&&(t==="date"&&H(r)||t==="weekday"&&L(r,e)||r.split(",").forEach(function(u){Se(u,e)||vn(u,t)}))}function H(n){if(n==="L"||n==="LW"||n==="WL")return!0;let e=/^L-(\d{1,2})$/.exec(n);if(e)return+e[1]>=1&&+e[1]<=30;let t=/^(\d{1,2})W$|^W(\d{1,2})$/.exec(n);if(t){let r=+(t[1]||t[2]);return r>=1&&r<=31}return!1}function L(n,e){if(/L$/.test(n))return T(n.slice(0,-1),e);let t=n.split("#");return t.length===2?T(t[0],e)&&/^[1-5]$/.test(t[1]):!1}function Se(n,e){return l(n,"/")?ke(n,e):l(n,"-")?Cn(n,e):T(n,e)}function ke(n,e){let t=n.split("/");return t.length!==2||!V(t[1])||+t[1]<1?!1:t[0]==="*"||T(t[0],e)||Cn(t[0],e,!0)}function Cn(n,e,t){let r=n.split("-");return r.length!==2||!T(r[0],e)||!T(r[1],e)?!1:e.cyclic&&!t?!0:f(r[0],e.numbers)<=f(r[1],e.numbers)}function T(n,e){return n==="*"?!1:V(n)?+n>=e.min&&+n<=e.max:e.numbers?n.toUpperCase()in e.numbers:!1}function vn(n,e){throw new Error('`cronli5` was passed an invalid field value "'+n+'" for the '+e+" field.")}var Oe={hour:24,minute:60,second:60};function xn(n){v.forEach(function(t){let r=S[t].aliases,i=r&&r[""+n[t]];i&&(n[t]=i)})}function Tn(n){return v.forEach(function(t){let r=""+n[t];if(t==="date"&&H(r)||t==="weekday"&&L(r,S[t])){n[t]=r;return}n[t]=Ne(r,t,S[t])}),n}function Ne(n,e,t){let r=""+n;if(r==="*")return r;let i=Oe[e],u=r.split(",").map(function(s){return ze(Fn(Pe(Ce(Ie(ve(we(s,t),t),t),t),t,i),t),t)}).join(",").split(",");return u.indexOf("*")!==-1?"*":Q(u).sort(function(s,m){return In(s,t)-In(m,t)}).join(",")}function ze(n,e){if(!e.numbers)return n;let t=n.split("/"),r=t[0].split("-").map(function(u){return Re(u,e)}).join("-");return t.length===2?r+"/"+t[1]:r}function Re(n,e){if(n==="*")return n;let t=f(n,e.numbers);return""+(t>e.top?e.min:t)}function we(n,e){let t=n.split("/");if(!e.cyclic||t.length!==2||+t[1]!=1)return n;let r=t[0];return l(r,"-")?r:r==="*"||f(r,e.numbers)===e.min?"*":r+"-"+e.top}function ve(n,e){let t=n.split("/");if(!e.cyclic||typeof e.top!="number"||t.length!==2||l(t[0],"-"))return n;let r=t[0];return(r==="*"?e.min:f(r,e.numbers))+ +t[1]<=e.top?n:r==="*"?""+e.min:r}function Pe(n,e,t){let r=n.split("/");if(typeof t!="number"||r.length!==2||l(r[0],"-"))return n;let i=+r[1],u=r[0]==="*"?e.min:f(r[0]);if(t%i===0&&u<i)return n;let o=[];for(let s=u;s<=e.top;s+=i)o.push(s);return o.join(",")}function Ce(n,e){let t=n.split("/");return t.length!==2||!l(t[0],"-")?n:Fn(t[0],e)==="*"?"*/"+t[1]:n}function Fn(n,e){if(typeof e.top!="number"||l(n,"/")||!l(n,"-"))return n;let t=n.split("-"),r=f(t[0],e.numbers),i=f(t[1],e.numbers);if(r>i)return n;let u=e.top,o={};for(let s=r;s<=i;s+=1)o[s>u?e.min:s]=!0;for(let s=e.min;s<=u;s+=1)if(!o[s])return n;return"*"}function Ie(n,e){let t=n.split("/")[0];if(!l(t,"-"))return n;let r=t.split("-");return f(r[0],e.numbers)!==f(r[1],e.numbers)?n:r[0]}function In(n,e){let t=n.split("/")[0].split("-")[0];return t==="*"?e.min:f(t,e.numbers)}function Mn(n,e){let t=n instanceof Array;if(n===null||typeof n>"u"||n===""||t&&n.length===0)throw new Error("`cronli5` expects a non-empty cron pattern as the first argument.");if(t)return Wn(n,e);if(typeof n=="object")return xe(n);if(typeof n=="string")return Te(n,e);throw new Error("`cronli5` was passed an unexpected type.")}function Wn(n,e){if(n.length>7)throw new Error("`cronli5` was passed a cron pattern with more than seven fields.");return!e.seconds&&n.length<(e.years?7:6)&&n.unshift("0"),{second:n[0]||"0",minute:n[1]||"*",hour:n[2]||"*",date:n[3]||"*",month:n[4]||"*",weekday:n[5]||"*",year:n[6]||"*"}}function xe(n){if(!n.second&&!n.minute&&!n.hour)throw new Error("`cronli5` expects that any object being interpreted as a cron pattern have at least one of the following properties: `second`, `minute`, or `hour`");let e=typeof n.second<"u",t=typeof n.minute<"u",r=e?"*":"0",i=e||t?"*":"0";return{second:P(n.second,"0"),minute:P(n.minute,r),hour:P(n.hour,i),date:P(n.date,"*"),month:P(n.month,"*"),weekday:P(n.weekday,"*"),year:P(n.year,"*")}}function P(n,e){return typeof n>"u"?e:n}function Te(n,e){let t=Fe(n).split(/\s+/);return Wn(t,e)}function Fe(n){let e=n.trim();if(e.charAt(0)!=="@")return n;let t=e.toLowerCase();if(Object.hasOwn(X,t))return X[t];throw new Error("`cronli5` does not recognize the macro `"+e+"`.")}function Hn(n){return n!=="*"&&!l(n,",")&&!l(n,"-")&&!l(n,"/")}function nn(n){return l(n,"-")&&!l(n,",")&&!l(n,"/")}function Me(n){return l(n,"/")&&!l(n,",")}function en(n){return n!=="*"&&!l(n,"-")&&!l(n,"/")}function tn(n){return n!=="*"&&!nn(n)&&!Me(n)}function E(n,e,t){let r=[],i=n;for(;i<=t;)r.push(i),i+=e;return r}function Ln(n,e,t,r){let i=n.split("/"),u=+i[1];if(l(i[0],"-")){let s=i[0].split("-");return E(f(s[0],r),u,f(s[1],r))}let o=i[0]==="*"?e:f(i[0],r);return E(o,u,t)}function un(n,e,t){let r=[];return n.split(",").forEach(function(u){if(l(u,"/"))r.push(...Ln(u,e,t));else if(l(u,"-")){let o=u.split("-");+o[0]<=+o[1]?r.push(...E(+o[0],1,+o[1])):(r.push(...E(+o[0],1,t)),r.push(...E(e,1,+o[1])))}else r.push(+u)}),Q(r)}function We(n){return en(n)?n.split(",").map(Number):[0]}function He(n){if(n==="*")return[0,59];if(nn(n)){let e=n.split("-");if(+e[0]<=+e[1])return[+e[0],+e[1]]}return null}function Le(n){return n==="*"?59:Math.max(...un(n,0,59))}function Ee(n){if(Hn(n)&&n!=="0")return+n}function De(n,e){return n==="*"?"wildcard":e==="date"&&H(n)||e==="weekday"&&L(n,S.weekday)?"quartz":l(n,",")?"list":l(n,"/")?"step":l(n,"-")?"range":"single"}function je(n,e,t){return e==="wildcard"||e==="quartz"?null:n.split(",").map(function(i){if(l(i,"/")){let u=i.split("/");return{fires:Ln(i,t.min,t.top,t.numbers),interval:+u[1],kind:"step",startToken:u[0]}}return l(i,"-")?{bounds:i.split("-"),kind:"range"}:{kind:"single",value:i}})}function En(n){let e={},t={};v.forEach(function(o){e[o]=De(n[o],o),t[o]=je(n[o],e[o],S[o])});let i={analyses:{clockSecond:Ee(n.second),lastMinuteFire:Le(n.minute),minuteSpan:He(n.minute),segments:t},pattern:n,shapes:e};return{...i,plan:Ae(i)}}function Ae(n){let{analyses:e,pattern:t,shapes:r}=n;if(t.second!=="0"){let i=Ue(t,r,e);if(i)return i}return Dn(t,r,e)||jn(t,r,e)}function Ue(n,e,t){let r=qe(n,e);return r||(n.hour==="*"&&e.minute==="single"&&n.second!=="*"?{kind:"secondsWithinMinute",singleSecond:e.second==="single"}:e.second==="single"&&en(n.minute)&&tn(n.hour)?null:{kind:"composeSeconds",rest:Dn(n,e,t,!0)||jn(n,e,t,!0)})}function qe(n,e){return n.minute!=="*"||n.hour!=="*"?null:n.second==="*"?{kind:"everySecond"}:e.second==="single"?{kind:"secondPastMinute"}:{kind:"standaloneSeconds"}}function Dn(n,e,t,r=!1){if(e.minute==="step")return{hours:Ve(n,e,t),kind:"minuteFrequency"};if(e.hour==="single"&&t.minuteSpan)return{hour:+n.hour,kind:"minuteSpanInHour",span:t.minuteSpan};let i=$e(n,e);if(i)return i;let u=Qe(n,e);if(u)return u;if(n.hour==="*")return Je(n,e,r)}function rn(n){let[e,t]=n.split("/"),r=e==="*"?0:+e;return e.indexOf("-")===-1&&24%+t===0&&r<+t}function Qe(n,e){return e.hour!=="step"?null:n.minute==="*"?rn(n.hour)?{form:"wildcard",kind:"minuteSpanAcrossHourStep"}:{form:"wildcard",kind:"minutesAcrossHours",times:D(n.hour)}:e.minute==="range"?{form:"range",kind:"minuteSpanAcrossHourStep"}:e.minute==="list"&&rn(n.hour)?{form:"list",kind:"minuteSpanAcrossHourStep"}:null}function Ve(n,e,t){if(e.hour==="list")return{kind:"during",times:D(n.hour)};if(e.hour==="range"){let r=n.hour.split("-");return{from:+r[0],kind:"window",last:t.lastMinuteFire,to:+r[1]}}return e.hour==="single"?{from:+n.hour,kind:"window",last:t.lastMinuteFire,to:+n.hour}:e.hour==="step"?rn(n.hour)?{kind:"step"}:{kind:"during",times:D(n.hour)}:{kind:"none"}}function $e(n,e){return tn(n.hour)?n.minute==="*"?{form:"wildcard",kind:"minutesAcrossHours",times:D(n.hour)}:e.minute==="range"||e.minute==="list"&&l(n.minute,"-")&&!l(n.minute,"/")?{form:e.minute==="range"?"range":"list",kind:"minutesAcrossHours",times:D(n.hour)}:null:null}function Je(n,e,t){if(e.minute==="range")return{kind:"rangeOfMinutes"};if(e.minute==="list")return{kind:"multipleMinutes"};if(n.minute==="*")return{kind:"everyMinute"};if(n.minute!=="0"||t)return{kind:"singleMinute"}}function jn(n,e,t,r=!1){let i=r&&n.minute==="0";return e.hour==="range"&&!i?Ke(n,e,t):e.hour==="step"&&n.minute==="0"&&!r?{kind:"hourStep"}:n.hour==="*"&&!i?{kind:"everyHour"}:Ye(n,t,i)}function Ke(n,e,t){let r=n.hour.split("-"),i="lead";return n.minute==="*"?i="wildcard":e.minute==="range"&&(i="range"),{boundMinute:e.minute==="range"||e.minute==="list"?null:t.lastMinuteFire,from:+r[0],kind:"hourRange",last:t.lastMinuteFire,minuteForm:i,to:+r[1]}}function Ye(n,e,t=!1){let r=un(n.hour,0,23),i=We(n.minute);if(!t&&r.length*i.length>W)return{fold:i.length===1,kind:"compactClockTimes",minute:i[0]};let u=[];return r.forEach(function(s){i.forEach(function(d){u.push({hour:s,minute:d,second:e.clockSecond})})}),{kind:"clockTimes",times:u}}function D(n){let e=un(n,0,23);return e.length<=W?{fires:e,kind:"fires"}:{kind:"segments"}}function An(n,e){let t=Mn(n,e);return xn(t),Pn(t),Tn(t)}function N(n){return n=""+n,n.length<2?"0"+n:n}function Un(n,e,t){return t.short?n:e[n]||n}function on(n,{sep:e,pad:t,lean:r}){let i=t?N(n.hour):""+n.hour;return r&&!n.minute&&!n.second?i:i+e+N(n.minute)+(n.second?e+N(n.second):"")}var sn={gb:{am:"am",closeUp:!0,dayFirst:!0,midday:"midday",midnight:"midnight",ordinals:!1,pm:"pm",sep:".",serialComma:!1,through:" to "},us:{am:"a.m.",closeUp:!1,dayFirst:!1,midday:"noon",midnight:"midnight",ordinals:!1,pm:"p.m.",sep:":",serialComma:!0,through:" through ",untilWindow:!0},house:{am:"AM",closeUp:!1,dayFirst:!1,midday:"noon",midnight:"midnight",ordinals:!0,pm:"PM",sep:":",serialComma:!0,through:" - "}};function qn(n){return typeof n=="object"&&n!==null?{...sn.us,untilWindow:!1,...n}:sn[n==="uk"?"gb":n]||sn.us}var Ge=["zero","one","two","three","four","five","six","seven","eight","nine","ten"],an=["th","st","nd","rd"],Ze=[null,["January","Jan"],["February","Feb"],["March","Mar"],["April","Apr"],["May","May"],["June","Jun"],["July","Jul"],["August","Aug"],["September","Sep"],["October","Oct"],["November","Nov"],["December","Dec"]],z=[["Sunday","Sun"],["Monday","Mon"],["Tuesday","Tue"],["Wednesday","Wed"],["Thursday","Thu"],["Friday","Fri"],["Saturday","Sat"]],Be={SUN:z[0],MON:z[1],TUE:z[2],WED:z[3],THU:z[4],FRI:z[5],SAT:z[6]},Xe=[null,"first","second","third","fourth","fifth"];function _e(n){return n=n||{},{ampm:typeof n.ampm=="boolean"?n.ampm:!0,lenient:!!n.lenient,seconds:!!n.seconds,short:!!n.short,style:qn(n.dialect),years:!!n.years}}function nt(n,e){let t=Ft(n,e)??Vn(n,n.plan,e),r=Y(n,e)?$t(n,e):"";return nr(r+t,n,e)}function Vn(n,e,t){let r=Mt[e.kind];return r(n,e,t)}function et(n,e,t){return"every second"+a(n,t)}function tt(n,e,t){return F(n,t)+a(n,t)}function rt(n,e,t){let r=n.pattern.second;return g(r,t)+" "+O(r,"second")+" past the minute, every minute"+a(n,t)}function it(n,e,t){let r=n.pattern.minute,i=g(r,t),u=O(r,"minute");if(e.singleSecond){let o=n.pattern.second;return i+" "+u+" and "+g(o,t)+" "+O(o,"second")+" past the hour, every hour"+a(n,t)}return F(n,t)+", "+i+" "+u+" past the hour, every hour"+a(n,t)}function ut(n,e,t){if(!(e.rest.kind==="clockTimes"||e.rest.kind==="compactClockTimes")||n.shapes.minute!=="single")return null;let i=+n.pattern.minute;return yn(n,i,t)??bn(n,i,t)}function ot(n,e,t){return+e.times[0].minute==0&&n.shapes.minute==="single"?F(n,t)+" for one minute at "+at(n,e,t):F(n,t)+" of "+lt(n,e,t)}function st(n,e,t){let r=ut(n,e,t);return r!==null?r:e.rest.kind==="clockTimes"&&(n.shapes.second==="wildcard"||n.shapes.second==="step")?ot(n,e.rest,t):n.shapes.second==="wildcard"&&e.rest.kind==="minuteFrequency"&&e.rest.hours.kind==="none"&&n.pattern.minute==="*/2"?"every second of every other minute"+a(n,t):(e.rest.kind==="compactClockTimes"&&n.analyses.clockSecond?"":F(n,t)+", ")+Vn(n,e.rest,t)}function at(n,e,t){let r=e.times.map(function(o){return c({hour:o.hour,minute:0},t)}),i=K(n,On,t);return y(r,t)+(i&&", "+i)}function lt(n,e,t){let r=e.times.map(function(o){return c({hour:o.hour,minute:o.minute,second:o.second,explicit:!0},t)}),i=K(n,On,t);return y(r,t)+(i&&", "+i)}function F(n,e){return C(n,"minute",e)}function C(n,e,t){let r=n.pattern.second,i=n.shapes.second;if(r==="*")return"every second";if(i==="step")return hn(n.analyses.segments.second[0],"second",e,t);if(i==="range"){let u=r.split("-"),o=Sn();return"every second from "+o(u[0])+p(t)+o(u[1])+" past the "+e}return i==="single"?"at "+g(r,t)+" "+O(r,"second")+" past the "+e:M(n.analyses.segments.second,"second",e,t)??w(x(n.analyses.segments.second,t),"second",e,t)}function ct(n,e,t){return"every minute"+a(n,t)}function mt(n,e,t){let r=n.pattern.minute;return g(r,t)+" "+O(r,"minute")+" past the hour, every hour"+a(n,t)}function ft(n,e,t){return $(n.pattern.minute,t)+a(n,t)}function dt(n,e,t){return(M(n.analyses.segments.minute,"minute","hour",t)??w(x(n.analyses.segments.minute,t),"minute","hour",t))+a(n,t)}function gt(n,e,t){let r=hn(n.analyses.segments.minute[0],"minute","hour",t);if(e.hours.kind==="during"){let i=U(n,t);r+=i?", "+i:" during the "+j(n,e.hours.times,!1,t)+" hours"}else e.hours.kind==="window"?r+=" "+Kn(e.hours,t):e.hours.kind==="step"&&(r+=" "+dn(n.analyses.segments.hour[0],t));return r+a(n,t)}function ht(n,e,t){return n.pattern.minute==="*"?"every minute of the "+c({hour:e.hour,minute:0},t)+" hour"+a(n,t):"every minute from "+c({hour:e.hour,minute:e.span[0]},t)+p(t)+c({hour:e.hour,minute:e.span[1]},t)+a(n,t)}function pt(n,e,t){let r=U(n,t);if(e.form==="wildcard")return r!==null?"every minute, "+r+a(n,t):"every minute during the "+j(n,e.times,!1,t)+" hours"+a(n,t);if(e.form==="range"){let o=$(n.pattern.minute,t);return r!==null?o+", "+r+a(n,t):jt(e.times)?o+", at "+j(n,e.times,!0,t)+a(n,t):o+" during the "+j(n,e.times,!1,t)+" hours"+a(n,t)}let i=M(n.analyses.segments.minute,"minute","hour",t)??w(x(n.analyses.segments.minute,t),"minute","hour",t);if(r!==null)return i+", "+r+a(n,t);let u=j(n,e.times,!0,t);return i+", at "+u+a(n,t)}var $n={2:"other",3:"third",4:"fourth",6:"sixth",8:"eighth",12:"twelfth"};function dn(n,e){let t="during every "+$n[n.interval]+" hour",r=n.startToken==="*"?0:+n.startToken;return r===0?t:t+" starting at "+c({hour:r,minute:0},e)}function yt(n,e,t){let r=n.analyses.segments.hour[0];if(e.form==="wildcard")return"every minute "+dn(r,t)+a(n,t);let i=e.form==="list"?M(n.analyses.segments.minute,"minute","hour",t)??w(x(n.analyses.segments.minute,t),"minute","hour",t):$(n.pattern.minute,t),u=U(n,t);return i+", "+(u??Xn(r,t))+a(n,t)}function $(n,e){let t=n.split("-"),r=Sn();return"every minute from "+r(t[0])+p(e)+r(t[1])+" past the hour"}function bt(n,e,t){return"every hour"+a(n,t)}function St(n,e,t){let r=Kn(Ot(e),t);return e.minuteForm==="wildcard"?"every minute "+r+a(n,t):e.minuteForm==="range"?$(n.pattern.minute,t)+", "+r+a(n,t):Jn(n,t)+" "+r+a(n,t)}function Jn(n,e){return n.pattern.minute==="0"?"every hour":M(n.analyses.segments.minute,"minute","hour",e)??w(x(n.analyses.segments.minute,e),"minute","hour",e)}function kt(n,e,t){let r=U(n,t);return r!==null?r+a(n,t):Xn(n.analyses.segments.hour[0],t)+a(n,t)}function Ot(n){let e=n.minuteForm==="wildcard"?n.boundMinute??0:0;return{from:n.from,last:e,to:n.to}}function J(n,e,t,r){let i="from "+c({hour:n,minute:0},r);return r.style.untilWindow&&!r.short&&n!==e?i+" until "+c({hour:(e+1)%24,minute:0},r):i+p(r)+c({hour:e,minute:t},r)}function Kn(n,e){return J(n.from,n.to,n.last,e)}function Nt(n,e,t){if(n.shapes.minute==="single"){let u=+n.pattern.minute,o=yn(n,u,t)??bn(n,u,t);if(o!==null)return o}let r=kn(e.times),i=e.times.map(function(o){return c({hour:o.hour,minute:o.minute,second:o.second,plain:r},t)});return ie(n,t)+"at "+y(i,t)+Yn(n,t)}function Yn(n,e){return Y(n,e)?oe(n,e):""}function zt(n,e,t){if(e.fold){let o=yn(n,+e.minute,t)??bn(n,+e.minute,t);if(o!==null)return o;if(n.analyses.segments.hour.some(function(h){return h.kind==="range"})&&!n.analyses.clockSecond)return Rt(n,e,t)+a(n,t);let m={minute:e.minute,second:n.analyses.clockSecond};return ie(n,t)+"at "+A(n,m,!0,t)+Yn(n,t)}let r=M(n.analyses.segments.minute,"minute","hour",t)??w(x(n.analyses.segments.minute,t),"minute","hour",t),i=U(n,t),u=i?r+", "+i+a(n,t):r+", at "+A(n,{minute:0,second:null},!0,t)+a(n,t);return n.analyses.clockSecond?F(n,t)+", "+u:u}function Rt(n,e,t){let r=e.minute,i=[],u=Gn(n),o=u.hours.map(function(d){return c({hour:d,minute:r},t)});return n.analyses.segments.hour.forEach(function(d){d.kind==="range"&&i.push(J(+d.bounds[0],+d.bounds[1],r,t))}),Jn(n,t)+" "+y(i,t)+Zn(o,u.pureStrays,t)}function Gn(n){let e=[],t=!0;return n.analyses.segments.hour.forEach(function(i){i.kind==="step"?(e.push(...i.fires),t=!1):i.kind!=="range"&&e.push(+i.value)}),{hours:e,pureStrays:t}}function Zn(n,e,t){return n.length?(e&&t.style.untilWindow&&!t.short?" plus ":" and at ")+y(n,t):""}function I(n){return n==="*"||n.startsWith("*/")&&n.indexOf("-")===-1}function wt(n,e){let{second:t,minute:r}=n.pattern;return I(t)?{secondLead:!0,text:C(n,"minute",e)}:t==="0"&&I(r)?{secondLead:!1,text:r==="*"?"every minute":hn(n.analyses.segments.minute[0],"minute","hour",e)}:null}function vt(n,e){let t=n.pattern.minute;if(t==="*")return"";if(I(t))return" of every other minute";let r=n.analyses.segments.minute;if(n.shapes.minute==="single")return" during minute :"+N(t);if(n.shapes.minute==="range"){let u=t.split("-");return" during minutes :"+N(u[0])+p(e)+":"+N(u[1])}let i=x(r,e).map(function(o){return":"+N(o)});return" during minutes "+y(i,e)}function Pt(n,e){let t=n.pattern.hour;if(t==="*")return n.pattern.minute!=="*"&&!I(n.pattern.minute)?" of every hour":"";if(I(t))return t==="*/2"?" of every other hour":"";if(n.shapes.hour==="single"){let r=+t;return n.shapes.minute==="step"?" from "+c({hour:r,minute:0},e)+" until "+c({hour:(r+1)%24,minute:0},e):n.pattern.minute!=="*"&&!I(n.pattern.minute)?" at "+c({hour:r,minute:0},e):" of the "+c({hour:r,minute:0},e)+" hour"}if(n.shapes.hour==="range"){let r=t.split("-");return" "+J(+r[0],+r[1],0,e)}return" during the "+A(n,{minute:0,second:null},!1,e)+" hours"}function Ct(n){return n.shapes.hour==="range"}function It(n){if(n.shapes.hour!=="step")return!0;let e=n.analyses.segments.hour[0];return n.pattern.hour==="*/2"||e.startToken.indexOf("-")!==-1}function xt(n){if(n.shapes.minute!=="list")return!1;let e=gn(n.analyses.segments.minute);return e!==null&&_(e)!==null}function Tt(n,e){let{minute:t,hour:r}=n.pattern,i=I(t)&&t!=="*";return It(n)?e.secondLead?i?t==="*/2"&&!Ct(n):!(xt(n)||n.shapes.minute==="list"&&n.shapes.hour==="list"):r==="*/2"?!0:n.shapes.hour==="single"&&t==="*/2":!1}function Ft(n,e){if(!e.style.untilWindow||e.short||n.pattern.minute==="*"&&n.pattern.hour==="*")return null;let t=wt(n,e);if(!t||!Tt(n,t))return null;let r=t.secondLead?vt(n,e):"";return t.text+r+Pt(n,e)+a(n,e)}var Mt={clockTimes:Nt,compactClockTimes:zt,composeSeconds:st,everyHour:bt,everyMinute:ct,everySecond:et,hourRange:St,hourStep:kt,minuteFrequency:gt,minuteSpanAcrossHourStep:yt,minuteSpanInHour:ht,minutesAcrossHours:pt,multipleMinutes:dt,rangeOfMinutes:ft,secondPastMinute:rt,secondsWithinMinute:it,singleMinute:mt,standaloneSeconds:tt};function Bn(n,e){let{interval:t,start:r,last:i,cycle:u,unit:o,anchor:s}=n,m="every "+g(t,e)+" "+o+"s",d=u%t===0;if(r===0&&d)return m;if(r<t&&d)return m+" from "+g(r,e)+" "+O(r,o)+" past the "+s;let h=Sn();return m+" from "+h(r)+p(e)+h(i)+" "+O(i,o)+" past the "+s}function gn(n){let e=[];for(let t of n){if(t.kind!=="single")return null;e.push(+t.value)}return e}function M(n,e,t,r){let i=gn(n),u=i&&_(i);return u?Bn({...u,cycle:60,unit:e,anchor:t},r):null}function hn(n,e,t,r){if(n.startToken.indexOf("-")!==-1)return w(Qn(n.fires,r),e,t,r);let i=n.startToken==="*"?0:+n.startToken;return i!==0&&n.fires.length<=3?w(Qn(n.fires,r),e,t,r):Bn({interval:n.interval,start:i,last:n.fires[n.fires.length-1],cycle:60,unit:e,anchor:t},r)}function Xn(n,e){if(n.startToken.indexOf("-")!==-1)return"at "+cn(n.fires,e);let t=n.startToken==="*"?0:+n.startToken,r=n.interval;return t===0?"every "+g(r,e)+" hours":n.fires.length<=3?"at "+cn(n.fires,e):"every "+g(r,e)+" hours from "+c({hour:t,minute:0},e)}function ln(n,e){let{start:t,interval:r,last:i}=n,u="every "+g(r,e)+" hours",o=24%r===0;return t===0&&o?u:t<r&&o?u+" from "+c({hour:t,minute:0},e):u+" from "+c({hour:t,minute:0},e)+p(e)+c({hour:i,minute:0},e)}function _n(n){return n.start<n.interval&&24%n.interval===0}function U(n,e){let t=ne(n);return!t||_n(t)?null:ln(t,e)}function Wt(n){if(n.length<2)return null;let e=n[1]-n[0];if(e<2)return null;for(let t=2;t<n.length;t+=1)if(n[t]-n[t-1]!==e)return null;return n[0]!==0&&n.length<5?null:{interval:e,last:n[n.length-1],start:n[0]}}function ne(n){let e=n.analyses.segments.hour;if(e.length===1&&e[0].kind==="step"){let r=e[0];if(r.fires.length<2)return null;let i=r.startToken==="*"?0:+r.startToken.split("-")[0];return{interval:r.interval,last:r.fires[r.fires.length-1],start:i}}let t=gn(e);return t&&Wt(t)}function pn(n){return n.pattern.second==="*"||n.shapes.second==="step"}function ee(n,e,t){if(e===0)return pn(n)?C(n,"minute",t)+" for one minute":C(n,"hour",t);let r=g(e,t)+" "+O(e,"minute")+" past the hour";return n.pattern.second==="0"?r:C(n,"minute",t)+", "+r}function yn(n,e,t){let r=ne(n);if(!r)return null;let i=(r.last-r.start)/r.interval+1;if(n.pattern.second==="0"&&i<=W&&_n(r))return null;let u=e===0&&pn(n)&&Ht(n);return u?C(n,"minute",t)+" for one minute "+dn(u,t)+a(n,t):e===0&&n.pattern.second==="0"?ln(r,t)+a(n,t):ee(n,e,t)+", "+ln(r,t)+a(n,t)}function Ht(n){let e=n.analyses.segments.hour,t=e.length===1&&e[0];return!t||t.kind!=="step"||t.startToken.indexOf("-")!==-1||!(t.interval in $n)?null:t}function Lt(n){return n.analyses.segments.hour.some(function(t){return t.kind==="range"})}function Et(n,e){let t=[],r=Gn(n);n.analyses.segments.hour.forEach(function(s){s.kind==="range"&&t.push(J(+s.bounds[0],+s.bounds[1],0,e))});let i="every hour "+y(t,e),u=r.hours.map(function(s){return c({hour:s,minute:0},e)});return i+Zn(u,r.pureStrays,e)}function bn(n,e,t){return e!==0||!Lt(n)||n.pattern.second==="0"?null:pn(n)?C(n,"minute",t)+" for one minute during the "+A(n,{minute:0,second:null},!1,t)+" hours"+a(n,t):ee(n,e,t)+", "+Et(n,t)+a(n,t)}function Sn(){return function(e){return""+e}}function te(n,e){return n>1?function(r){return""+r}:function(r){return g(r,e)}}function Qn(n,e){return n.map(te(n.length,e))}function x(n,e){let t=n.reduce(function(u,o){return o.kind==="range"?u+1:u+(o.kind==="step"?o.fires.length:1)},0),r=te(t,e);return n.flatMap(function(u){return u.kind==="range"?[r(u.bounds[0])+p(e)+r(u.bounds[1])]:u.kind==="step"?u.fires.map(r):[r(u.value)]})}function w(n,e,t,r){return"at "+y(n,r)+" "+e+"s past the "+t}function Dt(n,e,t){return(+n==0||+n==12)&&+e==0&&!(typeof t=="number"&&t>0)}function kn(n){let e=n.filter(function(r){return Dt(r.hour,r.minute,r.second)});return e.length>0&&e.length<n.length}function cn(n,e){let t=kn(n.map(function(u){return{hour:u,minute:0}})),r=n.map(function(u){return c({hour:u,minute:0,plain:t},e)});return y(r,e)}function jt(n){return n.kind==="fires"&&n.fires.length===1}function j(n,e,t,r){return e.kind==="fires"?cn(e.fires,r):A(n,{minute:0,second:null},t,r)}function At(n){return n.kind==="range"?n.bounds:n.kind==="step"?n.fires:[n.value]}function A(n,e,t,r){let{minute:i,second:u}=e,o=n.analyses.segments.hour,s=kn(o.flatMap(function(h){return At(h).map(function(B){return{hour:+B,minute:i,second:u}})})),m=[];return o.forEach(function(h){h.kind==="step"?m.push(...h.fires.map(function(B){return c({hour:B,minute:i,second:u,plain:s},r)})):h.kind==="range"?m.push(c({hour:h.bounds[0],minute:i,second:u,plain:s},r)+p(r)+c({hour:h.bounds[1],minute:i,second:u,plain:s},r)):m.push(c({hour:h.value,minute:i,second:u,plain:s},r))}),y(Ut(m,o,t),r)}function Ut(n,e,t){let r=e.some(function(u){return u.kind==="range"});return!t||!r?n:n.map(function(u,o){return o===0?u:"at "+u})}function re(n,e,t){if(n.length<=1)return n.join("");if(n.length===2)return n[0]+e+n[1];let r=t.style.serialComma?","+e:e;return n.slice(0,-1).join(", ")+r+n[n.length-1]}function y(n,e){return re(n," and ",e)}function qt(n,e){return re(n," or ",e)}var Qt={all:"",month:"in ",recurringWeekday:!0,stepDate:"on ",weekday:"on "},On={all:"every day",month:"every day in ",recurringWeekday:!1,stepDate:"",weekday:"every "};function a(n,e){if(Y(n,e))return oe(n,e);let t=K(n,Qt,e);return t&&" "+t}function ie(n,e){return Y(n,e)?"":K(n,On,e)+" "}function K(n,e,t){let r=n.pattern;if(r.date!=="*"&&r.weekday!=="*")return Gt(n,t);if(r.date!=="*")return Vt(n,e,t);if(r.weekday!=="*"){let i=Nn(r.weekday,t);return i?mn(i,n,t):e.weekday+me(n,e.recurringWeekday,t)+ae(n,t)}return r.month!=="*"?e.month+k(n,t):e.all}function Vt(n,e,t){let r=n.pattern,i=G(r.date,t);return i?mn(i,n,t):q(r.date)?mn(e.stepDate+le(r.date),n,t):r.month!=="*"&&!ue(n)?"on the "+fn(n,t)+ae(n,t):r.month!=="*"?"on "+se(n,t):"on the "+fn(n,t)}function ue(n){return!ce(n.pattern.month)&&n.analyses.segments.month.every(function(t){return t.kind!=="range"})}function Y(n,e){return n.pattern.date!=="*"&&n.pattern.weekday!=="*"&&!!e.style.untilWindow&&!e.short}function oe(n,e){let t=[...Jt(n,e),...Kt(n,e)];return" whenever the day is "+qt(t,e)}function $t(n,e){return n.pattern.month==="*"?"":"in "+k(n,e)+" "}function Jt(n,e){let t=n.pattern.date,r=G(t,e);if(r)return[r.replace(/^on /,"")];let i=Yt(t);if(i)return[i];let u=[];return n.analyses.segments.date.forEach(function(s){s.kind==="range"?u.push("from the "+b(s.bounds[0])+p(e)+"the "+b(s.bounds[1])):s.kind==="step"?s.fires.forEach(function(d){u.push("the "+b(d))}):u.push("the "+b(s.value))}),u}function Kt(n,e){let t=n.pattern.weekday,r=Nn(t,e);if(r)return[r.replace(/^on /,"")];let i=[];return n.analyses.segments.weekday.forEach(function(o){o.kind==="range"&&o.bounds[0]==="1"&&o.bounds[1]==="5"?i.push("a weekday"):o.kind==="range"?i.push("a "+R(o.bounds[0],e)+p(e)+"a "+R(o.bounds[1],e)):o.kind==="step"?o.fires.forEach(function(m){i.push("a "+R(m,e))}):i.push("a "+R(o.value,e))}),i}function Yt(n){if(!q(n))return null;let[e,t]=n.split("/");return+t!=2?null:e==="*"||e==="1"?"an odd-numbered day":e==="2"?"an even-numbered day":null}function Gt(n,e){let t=n.pattern,r=Nn(t.weekday,e)||"on "+me(n,!1,e);return t.month!=="*"&&ue(n)&&!G(t.date,e)&&!q(t.date)?"on "+se(n,e)+" or "+r+" in "+k(n,e):Zt(n,e)+" or "+r+Bt(n,e)}function Zt(n,e){let t=n.pattern,r=G(t.date,e);return r||(q(t.date)?le(t.date):"on the "+fn(n,e))}function Bt(n,e){return n.pattern.month==="*"?"":", in "+k(n,e)}function G(n,e){if(n==="L")return"on the last day of the month";if(n==="LW"||n==="WL")return"on the last weekday of the month";let t=/^L-(\d{1,2})$/.exec(n);if(t)return g(+t[1],e)+" "+O(t[1],"day")+" before the last day of the month";let r=/^(\d{1,2})W$|^W(\d{1,2})$/.exec(n);if(r)return"on the weekday nearest the "+b(r[1]||r[2])}function Nn(n,e){let t=n.split("#");if(t.length===2)return"on the "+Xe[+t[1]]+" "+R(t[0],e)+" of the month";if(/L$/.test(n))return"on the last "+R(n.slice(0,-1),e)+" of the month"}function se(n,e){let t=k(n,e),r=Z(n.analyses.segments.date,e.style.ordinals?b:Xt,e);return e.style.dayFirst&&n.shapes.date==="single"&&n.shapes.month!=="single"?"the "+b(n.pattern.date)+" of "+t:e.style.dayFirst?r+" "+t:t+" "+r}function Xt(n){return""+n}function ae(n,e){return n.pattern.month==="*"?"":" in "+k(n,e)}function mn(n,e,t){if(e.pattern.month==="*")return n;let r=n.indexOf(" of the month")!==-1;return r&&e.shapes.month==="range"?n.replace(" of the month"," of each month")+" from "+k(e,t):r&&(e.shapes.month==="single"||e.shapes.month==="step")?n.replace(" of the month","")+" in "+k(e,t):n+" in "+k(e,t)}function le(n){let e=n.split("/"),t=+e[1],r=e[0],u=(t===2?"every other":"every "+b(t))+" day of the month";return r!=="*"&&r!=="1"&&(u+=" from the "+b(r)),u}function fn(n,e){return Z(n.analyses.segments.date,b,e)}function k(n,e){let t=ce(n.pattern.month);return t||Z(n.analyses.segments.month,function(i){return ir(i,e)},e)}function ce(n){if(!q(n))return null;let[e,t]=n.split("/");return+t!=2?null:e==="*"||e==="1"?"every odd-numbered month":e==="2"?"every even-numbered month":null}function me(n,e,t){let r=wn(n.analyses.segments.weekday),i=r.some(function(s){return s.kind==="range"});return Z(r,e&&!i?function(s){return _t(s,t)}:function(s){return R(s,t)},t)}function _t(n,e){let t=R(n,e);return e.short?t:t+"s"}function Z(n,e,t){let r=[];return n.forEach(function(u){u.kind==="step"?r.push(...u.fires.map(e)):u.kind==="range"?r.push(u.bounds.map(e).join(p(t))):r.push(e(u.value))}),y(r,t)}function q(n){return n.indexOf("/")!==-1&&n.indexOf("-")===-1&&n.indexOf(",")===-1}function nr(n,e,t){let r=e.pattern.year;if(r==="*")return n;if(r.indexOf("/")!==-1)return n+", "+tr(r,t);let i=er(r,t);if(r.indexOf("-")===-1&&r.indexOf(",")===-1&&e.pattern.date!=="*"&&n.indexOf(" at ")!==-1){let u=t.style.dayFirst?" ":", ";return n.replace(" at ",u+i+" at ")}return n+" in "+i}function er(n,e){return n.indexOf(",")!==-1?y(n.split(","),e):n.indexOf("-")!==-1?n.split("-").join(p(e)):n}function tr(n,e){let t=n.split("/"),r=+t[1],i=t[0];if(r<=1)return"every year";let u=r===2?"every other year":"every "+g(r,e)+" years";return i!=="*"&&i!=="0"&&(u+=" from "+i),u}function c(n,e){let{hour:t,minute:r,plain:i,explicit:u}=n,o=typeof n.second=="number"&&n.second>0?n.second:0;return e.ampm?rr({hour:t,minute:r,second:o,plain:i,explicit:u},e):on({hour:t,minute:r,second:o},{pad:!0,sep:e.style.sep})}function rr(n,e){let{hour:t,minute:r,second:i,plain:u,explicit:o}=n,s=e.style;if(!u&&!o&&+r==0&&!i){if(+t==0)return s.midnight;if(+t==12)return s.midday}return on({hour:t%12||12,minute:r,second:i},{lean:!o,sep:s.sep})+(s.closeUp?"":" ")+(t<12?s.am:s.pm)}function g(n,e){return Un(n,Ge,e)}function O(n,e){return+n==1?e:e+"s"}function p(n){return n.short?"-":n.style.through}function b(n){let e=Math.abs(n),t=an[e];return t||(e=(e%100-20)%10,t=an[e]||an[0]),n+t}function ir(n,e){let t=Ze[+n];return t&&t[e.short?1:0]}function R(n,e){let t=n===7||n==="7"?0:n,r=z[t]||Be[t];return r&&r[e.short?1:0]}var ur={describe:nt,fallback:"an unrecognizable cron pattern",options:_e,reboot:"at system startup",sentence:n=>"Runs "+n+(n.endsWith(".")?"":".")},fe=ur;/**
1
+ "use strict";(()=>{var be={SUN:0,MON:1,TUE:2,WED:3,THU:4,FRI:5,SAT:6},ke={JAN:1,FEB:2,MAR:3,APR:4,MAY:5,JUN:6,JUL:7,AUG:8,SEP:9,OCT:10,NOV:11,DEC:12},S={second:{cyclic:!0,max:59,min:0,top:59},minute:{cyclic:!0,max:59,min:0,top:59},hour:{cyclic:!0,max:23,min:0,top:23},date:{aliases:{"?":"*"},cyclic:!0,max:31,min:1,top:31},month:{cyclic:!0,max:12,min:1,numbers:ke,top:12},weekday:{aliases:{"?":"*",L:"6"},cyclic:!0,max:7,min:0,numbers:be,top:6},year:{max:9999,min:1970}},C=["second","minute","hour","date","month","weekday","year"],en={"@annually":"0 0 1 1 *","@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@midnight":"0 0 * * *","@hourly":"0 * * * *"},E=6;function l(n,e){return(""+n).indexOf(e)!==-1}function J(n){return Array.from(new Set(n))}function K(n){return/^\d+$/.test(n)}function tn(n){if(n.length<5)return null;let e=n[1]-n[0];if(e<2)return null;for(let t=2;t<n.length;t+=1)if(n[t]-n[t-1]!==e)return null;return{start:n[0],interval:e,last:n[n.length-1]}}function Pn(n){return n===0?7:n}function Cn(n){let e=n.flatMap(function(i){return i.kind==="step"?i.fires.map(function(o){return{kind:"single",value:""+o}}):[i]});function t(r){return r.kind==="range"?Pn(+r.bounds[0]):Pn(+r.value)}return e.map(function(i,u){return[i,u]}).sort(function(i,u){return t(i[0])-t(u[0])||i[1]-u[1]}).map(function(i){return i[0]})}function d(n,e){return K(n)?+n:e[n.toUpperCase()]}function c(n,e){return n.analyses.segments[e]??[]}function z(n,e){return c(n,e)[0]}function Y(n){let e=[];for(let t of n){if(t.kind!=="single")return null;e.push(+t.value)}return e}function rn(n){return n.start<n.interval&&24%n.interval===0}function In(n){if(n.length<2)return null;let e=n[1]-n[0];if(e<2)return null;for(let t=2;t<n.length;t+=1)if(n[t]-n[t-1]!==e)return null;return n[0]!==0&&n.length<5?null:{interval:e,last:n[n.length-1],start:n[0]}}function Mn(n){return C.forEach(function(t){Se(n[t],S[t],t)}),n}function Se(n,e,t){typeof n!="string"&&typeof n!="number"&&xn(n,t);let r=""+n;r!=="*"&&(t==="date"&&D(r)||t==="weekday"&&j(r,e)||r.split(",").forEach(function(u){Oe(u,e)||xn(u,t)}))}function D(n){if(n==="L"||n==="LW"||n==="WL")return!0;let e=/^L-(\d{1,2})$/.exec(n);if(e)return+e[1]>=1&&+e[1]<=30;let t=/^(\d{1,2})W$|^W(\d{1,2})$/.exec(n);if(t){let r=+(t[1]||t[2]);return r>=1&&r<=31}return!1}function j(n,e){if(/L$/.test(n))return F(n.slice(0,-1),e);let t=n.split("#");return t.length===2?F(t[0],e)&&/^[1-5]$/.test(t[1]):!1}function Oe(n,e){return l(n,"/")?Ne(n,e):l(n,"-")?Tn(n,e):F(n,e)}function Ne(n,e){let t=n.split("/");return t.length!==2||!K(t[1])||+t[1]<1?!1:t[0]==="*"||F(t[0],e)||Tn(t[0],e,!0)}function Tn(n,e,t){let r=n.split("-");return r.length!==2||!F(r[0],e)||!F(r[1],e)?!1:e.cyclic&&!t?!0:d(r[0],e.numbers)<=d(r[1],e.numbers)}function F(n,e){return n==="*"?!1:K(n)?+n>=e.min&&+n<=e.max:e.numbers?n.toUpperCase()in e.numbers:!1}function xn(n,e){throw new Error('`cronli5` was passed an invalid field value "'+n+'" for the '+e+" field.")}var ze={hour:24,minute:60,second:60};function Wn(n){C.forEach(function(t){let r=S[t].aliases,i=r&&r[""+n[t]];i&&(n[t]=i)})}function Hn(n){return C.forEach(function(t){let r=""+n[t];if(t==="date"&&D(r)||t==="weekday"&&j(r,S[t])){n[t]=r;return}n[t]=Re(r,t,S[t])}),n}function Re(n,e,t){let r=""+n;if(r==="*")return r;let i=ze[e],u=r.split(",").map(function(s){return ve(Ln(Ie(xe(Me(Ce(Pe(s,t),t),t),t),t,i),t),t)}).join(",").split(",");return u.indexOf("*")!==-1?"*":J(u).sort(function(s,m){return Fn(s,t)-Fn(m,t)}).join(",")}function ve(n,e){if(!e.numbers)return n;let t=n.split("/"),r=t[0].split("-").map(function(u){return we(u,e)}).join("-");return t.length===2?r+"/"+t[1]:r}function we(n,e){if(n==="*")return n;let t=d(n,e.numbers);return""+(t>e.top?e.min:t)}function Pe(n,e){let t=n.split("/");if(!e.cyclic||t.length!==2||+t[1]!=1)return n;let r=t[0];return l(r,"-")?r:r==="*"||d(r,e.numbers)===e.min?"*":r+"-"+e.top}function Ce(n,e){let t=n.split("/");if(!e.cyclic||typeof e.top!="number"||t.length!==2||l(t[0],"-"))return n;let r=t[0];return(r==="*"?e.min:d(r,e.numbers))+ +t[1]<=e.top?n:r==="*"?""+e.min:r}function Ie(n,e,t){let r=n.split("/");if(typeof t!="number"||r.length!==2||l(r[0],"-"))return n;let i=+r[1],u=r[0]==="*"?e.min:d(r[0]);if(t%i===0&&u<i)return n;let o=[];for(let s=u;s<=e.top;s+=i)o.push(s);return o.join(",")}function xe(n,e){let t=n.split("/");return t.length!==2||!l(t[0],"-")?n:Ln(t[0],e)==="*"?"*/"+t[1]:n}function Ln(n,e){if(typeof e.top!="number"||l(n,"/")||!l(n,"-"))return n;let t=n.split("-"),r=d(t[0],e.numbers),i=d(t[1],e.numbers);if(r>i)return n;let u=e.top,o={};for(let s=r;s<=i;s+=1)o[s>u?e.min:s]=!0;for(let s=e.min;s<=u;s+=1)if(!o[s])return n;return"*"}function Me(n,e){let t=n.split("/")[0];if(!l(t,"-"))return n;let r=t.split("-");return d(r[0],e.numbers)!==d(r[1],e.numbers)?n:r[0]}function Fn(n,e){let t=n.split("/")[0].split("-")[0];return t==="*"?e.min:d(t,e.numbers)}function En(n,e){let t=n instanceof Array;if(n===null||typeof n>"u"||n===""||t&&n.length===0)throw new Error("`cronli5` expects a non-empty cron pattern as the first argument.");if(t)return Dn(n,e);if(typeof n=="object")return Te(n);if(typeof n=="string")return Fe(n,e);throw new Error("`cronli5` was passed an unexpected type.")}function Dn(n,e){if(n.length>7)throw new Error("`cronli5` was passed a cron pattern with more than seven fields.");return!e.seconds&&n.length<(e.years?7:6)&&n.unshift("0"),{second:n[0]||"0",minute:n[1]||"*",hour:n[2]||"*",date:n[3]||"*",month:n[4]||"*",weekday:n[5]||"*",year:n[6]||"*"}}function Te(n){if(!n.second&&!n.minute&&!n.hour)throw new Error("`cronli5` expects that any object being interpreted as a cron pattern have at least one of the following properties: `second`, `minute`, or `hour`");let e=typeof n.second<"u",t=typeof n.minute<"u",r=e?"*":"0",i=e||t?"*":"0";return{second:I(n.second,"0"),minute:I(n.minute,r),hour:I(n.hour,i),date:I(n.date,"*"),month:I(n.month,"*"),weekday:I(n.weekday,"*"),year:I(n.year,"*")}}function I(n,e){return typeof n>"u"?e:n}function Fe(n,e){let t=We(n).split(/\s+/);return Dn(t,e)}function We(n){let e=n.trim();if(e.charAt(0)!=="@")return n;let t=e.toLowerCase();if(Object.hasOwn(en,t))return en[t];throw new Error("`cronli5` does not recognize the macro `"+e+"`.")}function jn(n){return n!=="*"&&!l(n,",")&&!l(n,"-")&&!l(n,"/")}function un(n){return l(n,"-")&&!l(n,",")&&!l(n,"/")}function He(n){return l(n,"/")&&!l(n,",")}function on(n){return n!=="*"&&!l(n,"-")&&!l(n,"/")}function sn(n){return n!=="*"&&!un(n)&&!He(n)}function W(n){return n.indexOf("/")!==-1&&n.indexOf("-")===-1&&n.indexOf(",")===-1}function A(n,e,t){let r=[],i=n;for(;i<=t;)r.push(i),i+=e;return r}function An(n,e,t,r){let i=n.split("/"),u=+i[1];if(l(i[0],"-")){let s=i[0].split("-");return A(d(s[0],r),u,d(s[1],r))}let o=i[0]==="*"?e:d(i[0],r);return A(o,u,t)}function ln(n,e,t){let r=[];return n.split(",").forEach(function(u){if(l(u,"/"))r.push(...An(u,e,t));else if(l(u,"-")){let o=u.split("-");+o[0]<=+o[1]?r.push(...A(+o[0],1,+o[1])):(r.push(...A(+o[0],1,t)),r.push(...A(e,1,+o[1])))}else r.push(+u)}),J(r)}function Le(n){return on(n)?n.split(",").map(Number):[0]}function Ee(n){if(n==="*")return[0,59];if(un(n)){let e=n.split("-");if(+e[0]<=+e[1])return[+e[0],+e[1]]}return null}function De(n){return n==="*"?59:Math.max(...ln(n,0,59))}function je(n){if(jn(n)&&n!=="0")return+n}function Ae(n,e){return n==="*"?"wildcard":e==="date"&&D(n)||e==="weekday"&&j(n,S.weekday)?"quartz":l(n,",")?"list":l(n,"/")?"step":l(n,"-")?"range":"single"}function Ue(n,e,t){return e==="wildcard"||e==="quartz"?null:n.split(",").map(function(i){if(l(i,"/")){let u=i.split("/");return{fires:An(i,t.min,t.top,t.numbers),interval:+u[1],kind:"step",startToken:u[0]}}return l(i,"-")?{bounds:i.split("-"),kind:"range"}:{kind:"single",value:i}})}function Un(n){let e={},t={};C.forEach(function(o){e[o]=Ae(n[o],o),t[o]=Ue(n[o],e[o],S[o])});let i={analyses:{clockSecond:je(n.second),lastMinuteFire:De(n.minute),minuteSpan:Ee(n.minute),segments:t},pattern:n,shapes:e};return{...i,plan:qe(i)}}function qe(n){let{analyses:e,pattern:t,shapes:r}=n;if(t.second!=="0"){let i=Qe(t,r,e);if(i)return i}return qn(t,r,e)||Qn(t,r,e)}function Qe(n,e,t){let r=Ve(n,e);return r||(n.hour==="*"&&e.minute==="single"&&n.second!=="*"?{kind:"secondsWithinMinute",singleSecond:e.second==="single"}:e.second==="single"&&on(n.minute)&&sn(n.hour)?null:{kind:"composeSeconds",rest:qn(n,e,t,!0)||Qn(n,e,t,!0)})}function Ve(n,e){return n.minute!=="*"||n.hour!=="*"?null:n.second==="*"?{kind:"everySecond"}:e.second==="single"?{kind:"secondPastMinute"}:{kind:"standaloneSeconds"}}function qn(n,e,t,r=!1){if(e.minute==="step")return{hours:Je(n,e,t),kind:"minuteFrequency"};if(e.hour==="single"&&t.minuteSpan)return{hour:+n.hour,kind:"minuteSpanInHour",span:t.minuteSpan};let i=Ke(n,e);if(i)return i;let u=$e(n,e);if(u)return u;if(n.hour==="*")return Ye(n,e,r)}function an(n){let[e,t]=n.split("/"),r=e==="*"?0:+e;return e.indexOf("-")===-1&&24%+t===0&&r<+t}function $e(n,e){return e.hour!=="step"?null:n.minute==="*"?an(n.hour)?{form:"wildcard",kind:"minuteSpanAcrossHourStep"}:{form:"wildcard",kind:"minutesAcrossHours",times:U(n.hour)}:e.minute==="range"?{form:"range",kind:"minuteSpanAcrossHourStep"}:e.minute==="list"&&an(n.hour)?{form:"list",kind:"minuteSpanAcrossHourStep"}:null}function Je(n,e,t){if(e.hour==="list")return{kind:"during",times:U(n.hour)};if(e.hour==="range"){let r=n.hour.split("-");return{from:+r[0],kind:"window",last:t.lastMinuteFire,to:+r[1]}}return e.hour==="single"?{from:+n.hour,kind:"window",last:t.lastMinuteFire,to:+n.hour}:e.hour==="step"?an(n.hour)?{kind:"step"}:{kind:"during",times:U(n.hour)}:{kind:"none"}}function Ke(n,e){return sn(n.hour)?n.minute==="*"?{form:"wildcard",kind:"minutesAcrossHours",times:U(n.hour)}:e.minute==="range"||e.minute==="list"&&l(n.minute,"-")&&!l(n.minute,"/")?{form:e.minute==="range"?"range":"list",kind:"minutesAcrossHours",times:U(n.hour)}:null:null}function Ye(n,e,t){if(e.minute==="range")return{kind:"rangeOfMinutes"};if(e.minute==="list")return{kind:"multipleMinutes"};if(n.minute==="*")return{kind:"everyMinute"};if(n.minute!=="0"||t)return{kind:"singleMinute"}}function Qn(n,e,t,r=!1){let i=r&&n.minute==="0";return e.hour==="range"&&!i?Ge(n,e,t):e.hour==="step"&&n.minute==="0"&&!r?{kind:"hourStep"}:n.hour==="*"&&!i?{kind:"everyHour"}:Ze(n,t,i)}function Ge(n,e,t){let r=n.hour.split("-"),i="lead";return n.minute==="*"?i="wildcard":e.minute==="range"&&(i="range"),{boundMinute:e.minute==="range"||e.minute==="list"?null:t.lastMinuteFire,from:+r[0],kind:"hourRange",last:t.lastMinuteFire,minuteForm:i,to:+r[1]}}function Ze(n,e,t=!1){let r=ln(n.hour,0,23),i=Le(n.minute);if(!t&&r.length*i.length>E)return{fold:i.length===1,kind:"compactClockTimes",minute:i[0]};let u=[];return r.forEach(function(s){i.forEach(function(k){u.push({hour:s,minute:k,second:e.clockSecond})})}),{kind:"clockTimes",times:u}}function U(n){let e=ln(n,0,23);return e.length<=E?{fires:e,kind:"fires"}:{kind:"segments"}}function Vn(n,e){let t=En(n,e);return Wn(t),Mn(t),Hn(t)}function R(n){return n=""+n,n.length<2?"0"+n:n}function $n(n,e,t){return t.short?n:e[n]||n}function cn(n,{sep:e,pad:t,lean:r}){let i=t?R(n.hour):""+n.hour;return r&&!n.minute&&!n.second?i:i+e+R(n.minute)+(n.second?e+R(n.second):"")}var fn={gb:{am:"am",closeUp:!0,dayFirst:!0,midday:"midday",midnight:"midnight",ordinals:!1,pm:"pm",sep:".",serialComma:!1,through:" to "},us:{am:"a.m.",closeUp:!1,dayFirst:!1,midday:"noon",midnight:"midnight",ordinals:!1,pm:"p.m.",sep:":",serialComma:!0,through:" through ",untilWindow:!0},house:{am:"AM",closeUp:!1,dayFirst:!1,midday:"noon",midnight:"midnight",ordinals:!0,pm:"PM",sep:":",serialComma:!0,through:" - "}};function Jn(n){return typeof n=="object"&&n!==null?{...fn.us,untilWindow:!1,...n}:fn[n==="uk"?"gb":n]||fn.us}var Be=["zero","one","two","three","four","five","six","seven","eight","nine","ten"],mn=["th","st","nd","rd"],Xe=[null,["January","Jan"],["February","Feb"],["March","Mar"],["April","Apr"],["May","May"],["June","Jun"],["July","Jul"],["August","Aug"],["September","Sep"],["October","Oct"],["November","Nov"],["December","Dec"]],v=[["Sunday","Sun"],["Monday","Mon"],["Tuesday","Tue"],["Wednesday","Wed"],["Thursday","Thu"],["Friday","Fri"],["Saturday","Sat"]],_e={SUN:v[0],MON:v[1],TUE:v[2],WED:v[3],THU:v[4],FRI:v[5],SAT:v[6]},nt=[null,"first","second","third","fourth","fifth"];function et(n){return n=n||{},{ampm:typeof n.ampm=="boolean"?n.ampm:!0,lenient:!!n.lenient,seconds:!!n.seconds,short:!!n.short,style:Jn(n.dialect),years:!!n.years}}function tt(n,e){let t=Ht(n,e)??Yn(n,n.plan,e),r=B(n,e)?Kt(n,e):"";return tr(r+t,n,e)}function Yn(n,e,t){let r=Lt[e.kind];return r(n,e,t)}function rt(n,e,t){return"every second"+a(n,t)}function it(n,e,t){return H(n,t)+a(n,t)}function ut(n,e,t){let r=n.pattern.second;return h(r,t)+" "+N(r,"second")+" past the minute, every minute"+a(n,t)}function ot(n,e,t){let r=n.pattern.minute,i=h(r,t),u=N(r,"minute");if(e.singleSecond){let o=n.pattern.second;return i+" "+u+" and "+h(o,t)+" "+N(o,"second")+" past the hour, every hour"+a(n,t)}return H(n,t)+", "+i+" "+u+" past the hour, every hour"+a(n,t)}function st(n,e,t){if(!(e.rest.kind==="clockTimes"||e.rest.kind==="compactClockTimes")||n.shapes.minute!=="single")return null;let i=+n.pattern.minute;return Sn(n,i,t)??On(n,i,t)}function at(n,e,t){return+e.times[0].minute==0&&n.shapes.minute==="single"?H(n,t)+" for one minute at "+ct(n,e,t):H(n,t)+" of "+ft(n,e,t)}function lt(n,e,t){let r=st(n,e,t);return r!==null?r:e.rest.kind==="clockTimes"&&(n.shapes.second==="wildcard"||n.shapes.second==="step")?at(n,e.rest,t):n.shapes.second==="wildcard"&&e.rest.kind==="minuteFrequency"&&e.rest.hours.kind==="none"&&n.pattern.minute==="*/2"?"every second of every other minute"+a(n,t):(e.rest.kind==="compactClockTimes"&&n.analyses.clockSecond?"":H(n,t)+", ")+Yn(n,e.rest,t)}function ct(n,e,t){let r=e.times.map(function(o){return f({hour:o.hour,minute:0},t)}),i=Z(n,Rn,t);return y(r,t)+(i&&", "+i)}function ft(n,e,t){let r=e.times.map(function(o){return f({hour:o.hour,minute:o.minute,second:o.second,explicit:!0},t)}),i=Z(n,Rn,t);return y(r,t)+(i&&", "+i)}function H(n,e){return x(n,"minute",e)}function x(n,e,t){let r=n.pattern.second,i=n.shapes.second;if(r==="*")return"every second";if(i==="step")return bn(z(n,"second"),"second",e,t);if(i==="range"){let u=r.split("-"),o=Nn();return"every second from "+o(u[0])+g(t)+o(u[1])+" past the "+e}return i==="single"?"at "+h(r,t)+" "+N(r,"second")+" past the "+e:L(c(n,"second"),"second",e,t)??P(T(c(n,"second"),t),"second",e,t)}function mt(n,e,t){return"every minute"+a(n,t)}function dt(n,e,t){let r=n.pattern.minute;return h(r,t)+" "+N(r,"minute")+" past the hour, every hour"+a(n,t)}function ht(n,e,t){return G(n.pattern.minute,t)+a(n,t)}function gt(n,e,t){return(L(c(n,"minute"),"minute","hour",t)??P(T(c(n,"minute"),t),"minute","hour",t))+a(n,t)}function pt(n,e,t){let r=bn(z(n,"minute"),"minute","hour",t);if(e.hours.kind==="during"){let i=$(n,t);r+=i?", "+i:" during the "+q(n,e.hours.times,!1,t)+" hours"}else e.hours.kind==="window"?r+=" "+V({continuous:!1,from:e.hours.from,throughMinute:e.hours.last,to:e.hours.to},t):e.hours.kind==="step"&&(r+=" "+yn(z(n,"hour"),t));return r+a(n,t)}function yt(n,e,t){return n.pattern.minute==="*"?"every minute of the "+f({hour:e.hour,minute:0},t)+" hour"+a(n,t):"every minute from "+f({hour:e.hour,minute:e.span[0]},t)+g(t)+f({hour:e.hour,minute:e.span[1]},t)+a(n,t)}function bt(n,e,t){let r=$(n,t);if(e.form==="wildcard")return r!==null?"every minute, "+r+a(n,t):"every minute during the "+q(n,e.times,!1,t)+" hours"+a(n,t);if(e.form==="range"){let o=G(n.pattern.minute,t);return r!==null?o+", "+r+a(n,t):Ut(e.times)?o+", at "+q(n,e.times,!0,t)+a(n,t):o+" during the "+q(n,e.times,!1,t)+" hours"+a(n,t)}let i=L(c(n,"minute"),"minute","hour",t)??P(T(c(n,"minute"),t),"minute","hour",t);if(r!==null)return i+", "+r+a(n,t);let u=q(n,e.times,!0,t);return i+", at "+u+a(n,t)}var Gn={2:"other",3:"third",4:"fourth",6:"sixth",8:"eighth",12:"twelfth"};function yn(n,e){let t="during every "+Gn[n.interval]+" hour",r=n.startToken==="*"?0:+n.startToken;return r===0?t:t+" starting at "+f({hour:r,minute:0},e)}function kt(n,e,t){let r=z(n,"hour");if(e.form==="wildcard")return"every minute "+yn(r,t)+a(n,t);let i=e.form==="list"?L(c(n,"minute"),"minute","hour",t)??P(T(c(n,"minute"),t),"minute","hour",t):G(n.pattern.minute,t),u=$(n,t);return i+", "+(u??ee(r,t))+a(n,t)}function G(n,e){let t=n.split("-"),r=Nn();return"every minute from "+r(t[0])+g(e)+r(t[1])+" past the hour"}function St(n,e,t){return"every hour"+a(n,t)}function Ot(n,e,t){let r=Rt(zt(e),t);return e.minuteForm==="wildcard"?"every minute "+r+a(n,t):e.minuteForm==="range"?G(n.pattern.minute,t)+", "+r+a(n,t):Zn(n,t)+" "+r+a(n,t)}function Zn(n,e){return n.pattern.minute==="0"?"every hour":L(c(n,"minute"),"minute","hour",e)??P(T(c(n,"minute"),e),"minute","hour",e)}function Nt(n,e,t){let r=$(n,t);return r!==null?r+a(n,t):ee(z(n,"hour"),t)+a(n,t)}function zt(n){let e=n.minuteForm==="wildcard",t=e?n.boundMinute??0:0;return{from:n.from,closeMinute:t,to:n.to,continuous:e}}function V(n,e){let{from:t,to:r,throughMinute:i,continuous:u}=n,o="from "+f({hour:t,minute:0},e);return e.style.untilWindow&&!e.short&&t!==r?u?o+" until "+f({hour:(r+1)%24,minute:0},e):o+g(e)+f({hour:r,minute:0},e):o+g(e)+f({hour:r,minute:i},e)}function Rt(n,e){return V({continuous:n.continuous,from:n.from,throughMinute:n.closeMinute,to:n.to},e)}function vt(n,e,t){if(n.shapes.minute==="single"){let u=+n.pattern.minute,o=Sn(n,u,t)??On(n,u,t);if(o!==null)return o}let r=zn(e.times),i=e.times.map(function(o){return f({hour:o.hour,minute:o.minute,second:o.second,plain:r},t)});return oe(n,t)+"at "+y(i,t)+Bn(n,t)}function Bn(n,e){return B(n,e)?ae(n,e):""}function wt(n,e,t){if(e.fold){let o=Sn(n,+e.minute,t)??On(n,+e.minute,t);if(o!==null)return o;if(c(n,"hour").some(function(p){return p.kind==="range"})&&!n.analyses.clockSecond)return Pt(n,e,t)+a(n,t);let m={minute:e.minute,second:n.analyses.clockSecond};return oe(n,t)+"at "+Q(n,m,!0,t)+Bn(n,t)}let r=L(c(n,"minute"),"minute","hour",t)??P(T(c(n,"minute"),t),"minute","hour",t),i=$(n,t),u=i?r+", "+i+a(n,t):r+", at "+Q(n,{minute:0,second:null},!0,t)+a(n,t);return n.analyses.clockSecond?H(n,t)+", "+u:u}function Pt(n,e,t){let r=e.minute,i=[],u=Xn(n).map(function(m){return f({hour:m,minute:r},t)});return c(n,"hour").forEach(function(m){m.kind==="range"&&i.push(V({continuous:!1,from:+m.bounds[0],throughMinute:r,to:+m.bounds[1]},t))}),Zn(n,t)+" "+y(i,t)+_n(u,t)}function Xn(n){let e=[];return c(n,"hour").forEach(function(r){r.kind==="step"?e.push(...r.fires):r.kind!=="range"&&e.push(+r.value)}),e}function _n(n,e){return n.length?" and at "+y(n,e):""}function M(n){return n==="*"||n.startsWith("*/")&&n.indexOf("-")===-1}function Ct(n,e){let{second:t,minute:r}=n.pattern;return M(t)?{secondLead:!0,text:x(n,"minute",e)}:t==="0"&&M(r)?{secondLead:!1,text:r==="*"?"every minute":bn(z(n,"minute"),"minute","hour",e)}:null}function It(n,e){let t=n.pattern.minute;if(t==="*")return"";if(M(t))return" of every other minute";let r=c(n,"minute");if(n.shapes.minute==="single")return" during minute :"+R(t);if(n.shapes.minute==="range"){let u=t.split("-");return" during minutes :"+R(u[0])+g(e)+":"+R(u[1])}let i=T(r,e).map(function(o){return":"+R(o)});return" during minutes "+y(i,e)}function xt(n,e){let t=n.pattern.hour;if(t==="*")return n.pattern.minute!=="*"&&!M(n.pattern.minute)?" of every hour":"";if(M(t))return t==="*/2"?" of every other hour":"";if(n.shapes.hour==="single"){let r=+t;return n.shapes.minute==="step"?" from "+f({hour:r,minute:0},e)+" until "+f({hour:(r+1)%24,minute:0},e):n.pattern.minute!=="*"&&!M(n.pattern.minute)?" at "+f({hour:r,minute:0},e):" of the "+f({hour:r,minute:0},e)+" hour"}if(n.shapes.hour==="range"){let r=t.split("-");return" "+V({continuous:n.pattern.minute==="*",from:+r[0],throughMinute:0,to:+r[1]},e)}return" during the "+Q(n,{minute:0,second:null},!1,e)+" hours"}function Mt(n){return n.shapes.hour==="range"}function Tt(n){if(n.shapes.hour!=="step")return!0;let e=z(n,"hour");return n.pattern.hour==="*/2"||e.startToken.indexOf("-")!==-1}function Ft(n){if(n.shapes.minute!=="list")return!1;let e=Y(c(n,"minute"));return e!==null&&tn(e)!==null}function Wt(n,e){let{minute:t,hour:r}=n.pattern,i=M(t)&&t!=="*";return Tt(n)?e.secondLead?i?t==="*/2"&&!Mt(n):!(Ft(n)||n.shapes.minute==="list"&&n.shapes.hour==="list"):r==="*/2"?!0:n.shapes.hour==="single"&&t==="*/2":!1}function Ht(n,e){if(!e.style.untilWindow||e.short||n.pattern.minute==="*"&&n.pattern.hour==="*")return null;let t=Ct(n,e);if(!t||!Wt(n,t))return null;let r=t.secondLead?It(n,e):"";return t.text+r+xt(n,e)+a(n,e)}var Lt={clockTimes:vt,compactClockTimes:wt,composeSeconds:lt,everyHour:St,everyMinute:mt,everySecond:rt,hourRange:Ot,hourStep:Nt,minuteFrequency:pt,minuteSpanAcrossHourStep:kt,minuteSpanInHour:yt,minutesAcrossHours:bt,multipleMinutes:gt,rangeOfMinutes:ht,secondPastMinute:ut,secondsWithinMinute:ot,singleMinute:dt,standaloneSeconds:it};function ne(n,e){let{interval:t,start:r,last:i,cycle:u,unit:o,anchor:s}=n,m="every "+h(t,e)+" "+o+"s",k=u%t===0;if(r===0&&k)return m;if(r<t&&k)return m+" from "+h(r,e)+" "+N(r,o)+" past the "+s;let p=Nn();return m+" from "+p(r)+g(e)+p(i)+" "+N(i,o)+" past the "+s}function L(n,e,t,r){let i=Y(n),u=i&&tn(i);return u?ne({...u,cycle:60,unit:e,anchor:t},r):null}function bn(n,e,t,r){if(n.startToken.indexOf("-")!==-1)return P(Kn(n.fires,r),e,t,r);let i=n.startToken==="*"?0:+n.startToken;return i!==0&&n.fires.length<=3?P(Kn(n.fires,r),e,t,r):ne({interval:n.interval,start:i,last:n.fires[n.fires.length-1],cycle:60,unit:e,anchor:t},r)}function ee(n,e){if(n.startToken.indexOf("-")!==-1)return"at "+hn(n.fires,e);let t=n.startToken==="*"?0:+n.startToken,r=n.interval;return t===0?"every "+h(r,e)+" hours":n.fires.length<=3?"at "+hn(n.fires,e):"every "+h(r,e)+" hours from "+f({hour:t,minute:0},e)}function dn(n,e){let{start:t,interval:r,last:i}=n,u="every "+h(r,e)+" hours",o=24%r===0;return t===0&&o?u:t<r&&o?u+" from "+f({hour:t,minute:0},e):u+" from "+f({hour:t,minute:0},e)+g(e)+f({hour:i,minute:0},e)}function $(n,e){let t=te(n);return!t||rn(t)?null:dn(t,e)}function te(n){let e=c(n,"hour");if(e.length===1&&e[0].kind==="step"){let r=e[0];if(r.fires.length<2)return null;let i=r.startToken==="*"?0:+r.startToken.split("-")[0];return{interval:r.interval,last:r.fires[r.fires.length-1],start:i}}let t=Y(e);return t&&In(t)}function kn(n){return n.pattern.second==="*"||n.shapes.second==="step"}function re(n,e,t){if(e===0)return kn(n)?x(n,"minute",t)+" for one minute":x(n,"hour",t);let r=h(e,t)+" "+N(e,"minute")+" past the hour";return n.pattern.second==="0"?r:x(n,"minute",t)+", "+r}function Sn(n,e,t){let r=te(n);if(!r)return null;let i=(r.last-r.start)/r.interval+1;if(n.pattern.second==="0"&&i<=E&&rn(r))return null;let u=e===0&&kn(n)&&Et(n);return u?x(n,"minute",t)+" for one minute "+yn(u,t)+a(n,t):e===0&&n.pattern.second==="0"?dn(r,t)+a(n,t):re(n,e,t)+", "+dn(r,t)+a(n,t)}function Et(n){let e=c(n,"hour"),t=e.length===1&&e[0];return!t||t.kind!=="step"||t.startToken.indexOf("-")!==-1||!(t.interval in Gn)?null:t}function Dt(n){return c(n,"hour").some(function(t){return t.kind==="range"})}function jt(n,e){let t=[],r=Xn(n);c(n,"hour").forEach(function(s){s.kind==="range"&&t.push(V({continuous:!1,from:+s.bounds[0],throughMinute:0,to:+s.bounds[1]},e))});let i="every hour "+y(t,e),u=r.map(function(s){return f({hour:s,minute:0},e)});return i+_n(u,e)}function On(n,e,t){return e!==0||!Dt(n)||n.pattern.second==="0"?null:kn(n)?x(n,"minute",t)+" for one minute during the "+Q(n,{minute:0,second:null},!1,t)+" hours"+a(n,t):re(n,e,t)+", "+jt(n,t)+a(n,t)}function Nn(){return function(e){return""+e}}function ie(n,e){return n>1?function(r){return""+r}:function(r){return h(r,e)}}function Kn(n,e){return n.map(ie(n.length,e))}function T(n,e){let t=n.reduce(function(u,o){return o.kind==="range"?u+1:u+(o.kind==="step"?o.fires.length:1)},0),r=ie(t,e);return n.flatMap(function(u){return u.kind==="range"?[r(u.bounds[0])+g(e)+r(u.bounds[1])]:u.kind==="step"?u.fires.map(r):[r(u.value)]})}function P(n,e,t,r){return"at "+y(n,r)+" "+e+"s past the "+t}function At(n,e,t){return(+n==0||+n==12)&&+e==0&&!(typeof t=="number"&&t>0)}function zn(n){let e=n.filter(function(r){return At(r.hour,r.minute,r.second)});return e.length>0&&e.length<n.length}function hn(n,e){let t=zn(n.map(function(u){return{hour:u,minute:0}})),r=n.map(function(u){return f({hour:u,minute:0,plain:t},e)});return y(r,e)}function Ut(n){return n.kind==="fires"&&n.fires.length===1}function q(n,e,t,r){return e.kind==="fires"?hn(e.fires,r):Q(n,{minute:0,second:null},t,r)}function qt(n){return n.kind==="range"?n.bounds:n.kind==="step"?n.fires:[n.value]}function Q(n,e,t,r){let{minute:i,second:u}=e,o=c(n,"hour"),s=zn(o.flatMap(function(p){return qt(p).map(function(nn){return{hour:+nn,minute:i,second:u}})})),m=[];return o.forEach(function(p){p.kind==="step"?m.push(...p.fires.map(function(nn){return f({hour:nn,minute:i,second:u,plain:s},r)})):p.kind==="range"?m.push(f({hour:p.bounds[0],minute:i,second:u,plain:s},r)+g(r)+f({hour:p.bounds[1],minute:i,second:u,plain:s},r)):m.push(f({hour:p.value,minute:i,second:u,plain:s},r))}),y(Qt(m,o,t),r)}function Qt(n,e,t){let r=e.some(function(u){return u.kind==="range"});return!t||!r?n:n.map(function(u,o){return o===0?u:"at "+u})}function ue(n,e,t){if(n.length<=1)return n.join("");if(n.length===2)return n[0]+e+n[1];let r=t.style.serialComma?","+e:e;return n.slice(0,-1).join(", ")+r+n[n.length-1]}function y(n,e){return ue(n," and ",e)}function Vt(n,e){return ue(n," or ",e)}var $t={all:"",month:"in ",recurringWeekday:!0,stepDate:"on ",weekday:"on "},Rn={all:"every day",month:"every day in ",recurringWeekday:!1,stepDate:"",weekday:"every "};function a(n,e){if(B(n,e))return ae(n,e);let t=Z(n,$t,e);return t&&" "+t}function oe(n,e){return B(n,e)?"":Z(n,Rn,e)+" "}function Z(n,e,t){let r=n.pattern;if(r.date!=="*"&&r.weekday!=="*")return Bt(n,t);if(r.date!=="*")return Jt(n,e,t);if(r.weekday!=="*"){let i=vn(r.weekday,t);return i?gn(i,n,t):e.weekday+de(n,e.recurringWeekday,t)+ce(n,t)}return r.month!=="*"?e.month+O(n,t):e.all}function Jt(n,e,t){let r=n.pattern,i=X(r.date,t);return i?gn(i,n,t):W(r.date)?gn(e.stepDate+fe(r.date),n,t):r.month!=="*"&&!se(n)?"on the "+pn(n,t)+ce(n,t):r.month!=="*"?"on "+le(n,t):"on the "+pn(n,t)}function se(n){return!me(n.pattern.month)&&c(n,"month").every(function(t){return t.kind!=="range"})}function B(n,e){return n.pattern.date!=="*"&&n.pattern.weekday!=="*"&&!!e.style.untilWindow&&!e.short}function ae(n,e){let t=[...Yt(n,e),...Gt(n,e)];return" whenever the day is "+Vt(t,e)}function Kt(n,e){return n.pattern.month==="*"?"":"in "+O(n,e)+" "}function Yt(n,e){let t=n.pattern.date,r=X(t,e);if(r)return[r.replace(/^on /,"")];let i=Zt(t);if(i)return[i];let u=[];return c(n,"date").forEach(function(s){s.kind==="range"?u.push("from the "+b(s.bounds[0])+g(e)+"the "+b(s.bounds[1])):s.kind==="step"?s.fires.forEach(function(k){u.push("the "+b(k))}):u.push("the "+b(s.value))}),u}function Gt(n,e){let t=n.pattern.weekday,r=vn(t,e);if(r)return[r.replace(/^on /,"")];let i=[];return c(n,"weekday").forEach(function(o){o.kind==="range"&&o.bounds[0]==="1"&&o.bounds[1]==="5"?i.push("a weekday"):o.kind==="range"?i.push("a "+w(o.bounds[0],e)+g(e)+"a "+w(o.bounds[1],e)):o.kind==="step"?o.fires.forEach(function(m){i.push("a "+w(m,e))}):i.push("a "+w(o.value,e))}),i}function Zt(n){if(!W(n))return null;let[e,t]=n.split("/");return+t!=2?null:e==="*"||e==="1"?"an odd-numbered day":e==="2"?"an even-numbered day":null}function Bt(n,e){let t=n.pattern,r=vn(t.weekday,e)||"on "+de(n,!1,e);return t.month!=="*"&&se(n)&&!X(t.date,e)&&!W(t.date)?"on "+le(n,e)+" or "+r+" in "+O(n,e):Xt(n,e)+" or "+r+_t(n,e)}function Xt(n,e){let t=n.pattern,r=X(t.date,e);return r||(W(t.date)?fe(t.date):"on the "+pn(n,e))}function _t(n,e){return n.pattern.month==="*"?"":", in "+O(n,e)}function X(n,e){if(n==="L")return"on the last day of the month";if(n==="LW"||n==="WL")return"on the last weekday of the month";let t=/^L-(\d{1,2})$/.exec(n);if(t)return h(+t[1],e)+" "+N(t[1],"day")+" before the last day of the month";let r=/^(\d{1,2})W$|^W(\d{1,2})$/.exec(n);if(r)return"on the weekday nearest the "+b(r[1]||r[2])}function vn(n,e){let t=n.split("#");if(t.length===2)return"on the "+nt[+t[1]]+" "+w(t[0],e)+" of the month";if(/L$/.test(n))return"on the last "+w(n.slice(0,-1),e)+" of the month"}function le(n,e){let t=O(n,e),r=_(c(n,"date"),e.style.ordinals?b:nr,e);return e.style.dayFirst&&n.shapes.date==="single"&&n.shapes.month!=="single"?"the "+b(n.pattern.date)+" of "+t:e.style.dayFirst?r+" "+t:t+" "+r}function nr(n){return""+n}function ce(n,e){return n.pattern.month==="*"?"":" in "+O(n,e)}function gn(n,e,t){if(e.pattern.month==="*")return n;let r=n.indexOf(" of the month")!==-1;return r&&e.shapes.month==="range"?n.replace(" of the month"," of each month")+" from "+O(e,t):r&&(e.shapes.month==="single"||e.shapes.month==="step")?n.replace(" of the month","")+" in "+O(e,t):n+" in "+O(e,t)}function fe(n){let e=n.split("/"),t=+e[1],r=e[0],u=(t===2?"every other":"every "+b(t))+" day of the month";return r!=="*"&&r!=="1"&&(u+=" from the "+b(r)),u}function pn(n,e){return _(c(n,"date"),b,e)}function O(n,e){let t=me(n.pattern.month);return t||_(c(n,"month"),function(i){return or(i,e)},e)}function me(n){if(!W(n))return null;let[e,t]=n.split("/");return+t!=2?null:e==="*"||e==="1"?"every odd-numbered month":e==="2"?"every even-numbered month":null}function de(n,e,t){let r=Cn(c(n,"weekday")),i=r.some(function(s){return s.kind==="range"});return _(r,e&&!i?function(s){return er(s,t)}:function(s){return w(s,t)},t)}function er(n,e){let t=w(n,e);return e.short?t:t+"s"}function _(n,e,t){let r=[];return n.forEach(function(u){u.kind==="step"?r.push(...u.fires.map(e)):u.kind==="range"?r.push(u.bounds.map(e).join(g(t))):r.push(e(u.value))}),y(r,t)}function tr(n,e,t){let r=e.pattern.year;if(r==="*")return n;if(r.indexOf("/")!==-1)return n+", "+ir(r,t);let i=rr(r,t);if(r.indexOf("-")===-1&&r.indexOf(",")===-1&&e.pattern.date!=="*"&&n.indexOf(" at ")!==-1){let u=t.style.dayFirst?" ":", ";return n.replace(" at ",u+i+" at ")}return n+" in "+i}function rr(n,e){return n.indexOf(",")!==-1?y(n.split(","),e):n.indexOf("-")!==-1?n.split("-").join(g(e)):n}function ir(n,e){let t=n.split("/"),r=+t[1],i=t[0];if(r<=1)return"every year";let u=r===2?"every other year":"every "+h(r,e)+" years";return i!=="*"&&i!=="0"&&(u+=" from "+i),u}function f(n,e){let{hour:t,minute:r,plain:i,explicit:u}=n,o=typeof n.second=="number"&&n.second>0?n.second:0;return e.ampm?ur({hour:t,minute:r,second:o,plain:i,explicit:u},e):cn({hour:t,minute:r,second:o},{pad:!0,sep:e.style.sep})}function ur(n,e){let{hour:t,minute:r,second:i,plain:u,explicit:o}=n,s=e.style;if(!u&&!o&&+r==0&&!i){if(+t==0)return s.midnight;if(+t==12)return s.midday}return cn({hour:t%12||12,minute:r,second:i},{lean:!o,sep:s.sep})+(s.closeUp?"":" ")+(t<12?s.am:s.pm)}function h(n,e){return $n(n,Be,e)}function N(n,e){return+n==1?e:e+"s"}function g(n){return n.short?"-":n.style.through}function b(n){let e=Math.abs(n),t=mn[e];return t||(e=(e%100-20)%10,t=mn[e]||mn[0]),n+t}function or(n,e){let t=Xe[+n];return t&&t[e.short?1:0]}function w(n,e){let t=n===7||n==="7"?0:n,r=v[t]||_e[t];return r&&r[e.short?1:0]}var sr={describe:tt,fallback:"an unrecognizable cron pattern",options:et,reboot:"at system startup",sentence:n=>"Runs "+n+(n.endsWith(".")?"":".")},he=sr;/**
2
2
  * @license MIT, Copyright (c) 2026 Andrew Brož
3
- */function or(n,e){let t=e&&e.lang||fe,r=t.options(e);if(!r.lenient)return de(ge(n,t,r),t,e);try{return de(ge(n,t,r),t,e)}catch{return t.fallback}}function de(n,e,t){return t&&t.sentence?e.sentence(n):n}function ge(n,e,t){if(typeof n=="string"&&n.trim().toLowerCase()==="@reboot")return e.reboot;let r=En(An(n,t)),i=e.strategy?e.strategy(r,r.plan):r.plan;return e.describe({...r,plan:i},t)}var zn=or;typeof globalThis<"u"&&Object.assign(globalThis,{cronli5:zn});var Vr=zn;})();
3
+ */function ar(n,e){let t=e&&e.lang||he,r=t.options(e);if(!r.lenient)return ge(pe(n,t,r),t,e);try{return ge(pe(n,t,r),t,e)}catch{return t.fallback}}function ge(n,e,t){return t&&t.sentence?e.sentence(n):n}function pe(n,e,t){if(typeof n=="string"&&n.trim().toLowerCase()==="@reboot")return e.reboot;let r=Un(Vn(n,t)),i=e.plan?e.plan(r,r.plan):r.plan;return e.describe({...r,plan:i},t)}var wn=ar;typeof globalThis<"u"&&Object.assign(globalThis,{cronli5:wn});var Kr=wn;})();